i don’t know if readlines reads from current filepos or if it rewinds first, but if the former then your readlines will return no lines and the seek is harmful, or if the latter the seek is redundant → either way get rid of it, then see if you have a read problem
> On 8 Nov 2020, at 11:34 pm, vigilance wx <[email protected]> wrote: > > HI > I have a service running under weewx 3,9 its working fine connected to a > Davis vantage. On a second pi i have installed weewx 4.2 with view to > upgrading the 3.9 pi to the latest weewx version > the service i have on the weewx3.9 will not run under python 3 > > import syslog > import weewx > import os > import csv > from weewx.wxengine import StdService > class PlanetService(StdService): > def __init__(self, engine, config_dict): > super(PlanetService, self).__init__(engine, config_dict) > d = config_dict.get('PlanetService', {}) > self.filename = d.get('filename', '/home/pi/cc/allplanets.csv') > syslog.syslog(syslog.LOG_INFO, "planet: using %s" % self.filename) > self.bind(weewx.NEW_ARCHIVE_RECORD, self.read_file) > > def read_file(self, event): > try: > with open(self.filename) as f: > f.seek(-10, os.SEEK_END) > line = f.readlines()[-1] > value = line.split(',') > > syslog.syslog(syslog.LOG_DEBUG, "allplanets: found value of %s" % > value) > event.record['plutoAzi'] = float(value[3]) > except Exception as e: > syslog.syslog(syslog.LOG_ERR, "allplanets: cannot read value: %s" > % e) > > the above runs under weewx 3.9 but it will not run under weewx 4.2 > > i have tried to modify if but i am getting the error in the log file > "/weewxd: allplanets: cannot read value: read" > > import syslog > import weewx > import os > import csv > > from weewx.wxengine import StdService > > class PlanetService(StdService): > def __init__(self, engine, config_dict): > super(PlanetService, self).__init__(engine, config_dict) > d = config_dict.get('PlanetService', {}) > self.filename = d.get('filename', '/home/pi/cc/allplanets.csv') > syslog.syslog(syslog.LOG_INFO, "planet: using %s" % self.filename) > self.bind(weewx.NEW_ARCHIVE_RECORD, self.read_file) > > def read_file(self, event): > try: > with open(self.filename , 'ab') as f: > > f.seek(-10, 2) > line = f.readlines()[-1] > value = line.split(',') > > syslog.syslog(syslog.LOG_DEBUG, "allplanets: found value of %s" % > value) > event.record['extraTemp1'] = float(value[1]) > except Exception as e: > syslog.syslog(syslog.LOG_ERR, "allplanets: cannot read value: %s" > % e) > > could any one offer advice as to why it will not run? is it the seek function? > > thanks for any advice > > -- > You received this message because you are subscribed to the Google Groups > "weewx-user" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-user/52382be8-9031-4d4a-85da-9353aecf40f8n%40googlegroups.com > > <https://groups.google.com/d/msgid/weewx-user/52382be8-9031-4d4a-85da-9353aecf40f8n%40googlegroups.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/ABD038F8-BC71-4C75-9B9E-4C768B7EDC5A%40gmail.com.
