Thank you for your reply Andrew

i assume its my error on how i have tried to make the changes to pond py
now its is generating this error

Apr  8 13:23:37 pi-X2 OWFS[21349]:     ****      
self.loadServices(config_dict)
Apr  8 13:23:37 pi-X2 OWFS[21349]:     ****    File 
"/home/weewx/bin/weewx/engine.py", line 141, in loadServices
Apr  8 13:23:37 pi-X2 OWFS[21349]:     ****      
self.service_obj.append(weeutil.weeutil._get_object(svc)(self, config_dict))
Apr  8 13:23:37 pi-X2 OWFS[21349]:     ****    File 
"/home/weewx/bin/weeutil/weeutil.py", line 1132, in _get_object
Apr  8 13:23:37 pi-X2 OWFS[21349]:     ****      mod = __import__(module)
Apr  8 13:23:37 pi-X2 OWFS[21349]:     ****    File 
"/home/weewx/bin/user/pond.py", line 24
Apr  8 13:23:37 pi-X2 OWFS[21349]:     ****      value = line.split(',')
Apr  8 13:23:37 pi-X2 OWFS[21349]:     ****                            ^
Apr  8 13:23:37 pi-X2 OWFS[21349]:     ****  IndentationError: unindent 
does not match any outer indentation level
Apr  8 13:23:37 pi-X2 OWFS[21349]:     ****  Exiting.


I have tried to alter pond.py as follows obviously incorrectly could you 
define were please

thanks

import syslog
import weewx
from weewx.wxengine import StdService

class PondService(StdService):
    def __init__(self, engine, config_dict):
        super(PondService, self).__init__(engine, config_dict)
        d = config_dict.get('PondService', {})
        self.filename = d.get('filename', '/var/www/html/data/reading.txt')
        syslog.syslog(syslog.LOG_INFO, "pond: 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:
                #value = f.read()
#######                line = f.readline()

                        f.seek(-max_line_length, os.SEEK_END)
                        line = f.readline()[-1]

                value = line.split(',')
            syslog.syslog(syslog.LOG_DEBUG, "pond: found value of %s" % 
value)
            event.record['ccwatt'] = float(value[0])
            event.record['cctemp'] = float(value[1])
        except Exception, e:
            syslog.syslog(syslog.LOG_ERR, "pond: cannot read value: %s" % e)







On Saturday, April 7, 2018 at 9:51:39 PM UTC+1, vigilancewx wrote:
>
> Hello
>
>
> I have a current cost electricity meter connect to a linux computer via a 
> usb cable
>
> On the linux computer is a script that every 20seconds loggs the watt and 
> temp readings from the current cost meter to a txt file and RRD file
>
>
> I can generate the RRD graphs into the weewx public_html directory and 
> display them accrodingly
>
>
> I know that weewx is predominatly for displaying weather data but I would 
> like weewx to handle the watt data, so I have tried to save the readings 
> into the weewx.sdb 
>
>
> I found this version of pond.py from the weewx user groups and it works 
> with no errors
>
>
>
> Following advice given in the weewx help files I can now display the data 
> in the various html files display graphs etc
>
>
> I have one problem, pond.py takes the readings from the first line in the 
> txt file (readings.txt)
>
>
> how do I modify pond.py to take its readings from the last line of the txt 
> file, because file the last line of my txt file holds the latest data
>
>
> thank you for any help
>
>
> import syslog
>
> import weewx
>
> from weewx.wxengine import StdService
>
>
> class PondService(StdService):
>
> def __init__(self, engine, config_dict):
>
> super(PondService, self).__init__(engine, config_dict)
>
> d = config_dict.get('PondService', {})
>
> self.filename = d.get('filename', '/var/www/html/data/reading.txt')
>
> syslog.syslog(syslog.LOG_INFO, "pond: 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:
>
> #value = f.read()
>
> line = f.readline()
>
> value = line.split(',')
>
> syslog.syslog(syslog.LOG_DEBUG, "pond: found value of %s" % value)
>
> event.record['ccwatt'] = float(value[0])
>
> event.record['cctemp'] = float(value[1])
>
> except Exception, e:
>
> syslog.syslog(syslog.LOG_ERR, "pond: cannot read value: %s" % e)
>

-- 
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 weewx-user+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to