Thank you Tom the service file is doing exactly what we needed. GOD bless you
On Wednesday, October 18, 2023 at 7:01:27 AM UTC+3 Mks Mk wrote: > > added import weewx to the top of file > it worked > > On Wednesday, October 18, 2023 at 6:50:58 AM UTC+3 Mks Mk wrote: > >> there is nothing in the log file related to the correction >> >> we tried the service but it failed twice >> >> 1st run failed with error: >> >> Oct 18 06:37:20 debian weewx[3413] CRITICAL __main__: **** File >> "/usr/share/weewx/user/myservice.py", line 10 >> Oct 18 06:37:20 debian weewx[3413] CRITICAL __main__: **** def >> new_archive_record(self, event) >> Oct 18 06:37:20 debian weewx[3413] CRITICAL __main__: **** >> ^ >> Oct 18 06:37:20 debian weewx[3413] CRITICAL __main__: **** >> SyntaxError: invalid syntax >> Oct 18 06:37:20 debian weewx[3413] CRITICAL __main__: **** Exiting. >> >> changed to >> >> def new_archive_record(self, event): >> >> run weewx again but failed with error >> >> >> Oct 18 06:42:20 debian weewx[3603] CRITICAL __main__: **** File >> "/usr/share/weewx/weewxd", line 148, in main >> Oct 18 06:42:20 debian weewx[3603] CRITICAL __main__: **** >> engine = weewx.engine.StdEngine(config_dict) >> Oct 18 06:42:20 debian weewx[3603] CRITICAL __main__: **** File >> "/usr/share/weewx/weewx/engine.py", line 93, in __init__ >> Oct 18 06:42:20 debian weewx[3603] CRITICAL __main__: **** >> self.loadServices(config_dict) >> Oct 18 06:42:20 debian weewx[3603] CRITICAL __main__: **** File >> "/usr/share/weewx/weewx/engine.py", line 161, in loadServices >> Oct 18 06:42:20 debian weewx[3603] CRITICAL __main__: **** obj = >> weeutil.weeutil.get_object(svc)(self, config_dict) >> Oct 18 06:42:20 debian weewx[3603] CRITICAL __main__: **** File >> "/usr/share/weewx/user/myservice.py", line 8, in __init__ >> Oct 18 06:42:20 debian weewx[3603] CRITICAL __main__: **** >> self.bind(weewx.NEW_ARCHIVE_RECORD, self.new_archive_record) >> Oct 18 06:42:20 debian weewx[3603] CRITICAL __main__: **** >> NameError: name 'weewx' is not defined >> Oct 18 06:42:20 debian weewx[3603] CRITICAL __main__: **** Exiting. >> >> On Wednesday, October 18, 2023 at 4:42:59 AM UTC+3 Tom Keffer wrote: >> >>> Just had a thought. >>> >>> I assume that weewxd is using software record generation. Check in the >>> log. If so, [[Corrections]] does not apply the corrections to archive >>> records because, in theory, the correction should have already been applied >>> in the LOOP packets. Obviously that's not happening here. >>> >>> I've created issue #895 <https://github.com/weewx/weewx/issues/895> to >>> track. >>> >>> In the meantime, what you can do is create a simple service >>> <https://www.weewx.com/docs/customizing.htm#Adding_a_service> to do the >>> calculation. It would look something like this (NOT TESTED): >>> >>> from weewx.engine import StdService >>> >>> class Power(StdService): >>> >>> def __init__(self, engine, config_dict): >>> super(Power, self).__init__(engine, config_dict) >>> >>> self.bind(weewx.NEW_ARCHIVE_RECORD, self.new_archive_record) >>> >>> def new_archive_record(self, event) >>> ampere = event.record.get('ampere') >>> linevoltage = event.record.get('linevoltage') >>> if ampere is not None and linevoltage is not None: >>> event.record['consumption'] = ampere * linevoltage >>> else: >>> event.record['consumption'] = None >>> >>> This will work provided that linevoltage and ampere do not vary too much >>> over the archive interval. Because you are using short intervals (60 >>> seconds), this is probably not much of a problem. >>> >>> >>> >>> >>> >>> >>> >>> On Tue, Oct 17, 2023 at 6:12 PM Mks Mk <[email protected]> wrote: >>> >>>> from database >>>> >>>> dateTime usUnits interval consumption ampere >>>> linevoltage pf >>>> 1697583060 1 1 90.84233333 >>>> 141 0.9 >>>> 1697583120 1 1 110.3686667 >>>> 141 0.9 >>>> 1697583180 1 1 77.51766667 >>>> 140.5 0.9 >>>> 1697583240 1 1 101.4843333 >>>> 141 0.9 >>>> 1697583300 1 1 100.0026667 >>>> 141 0.9 >>>> 1697583360 1 1 4.977666667 >>>> 141 0.9 >>>> 1697583420 1 1 4.907666667 142 >>>> 0.9 >>>> 1697583480 1 1 4.927666667 141.5 >>>> 0.9 >>>> 1697583540 1 1 4.886 >>>> 141.3333333 0.9 >>>> 1697583600 1 1 4.867666667 >>>> 141 0.9 >>>> 1697583660 1 1 4.877666667 >>>> 141 0.9 >>>> 1697583720 1 1 78.94533333 >>>> 141 0.9 >>>> 1697583780 1 1 90.26166667 >>>> 140.6666667 0.9 >>>> >>>> >>>> On Wednesday, October 18, 2023 at 3:35:05 AM UTC+3 Mks Mk wrote: >>>> >>>>> Hi Gary >>>>> >>>>> it all started here >>>>> https://groups.google.com/g/weewx-user/c/ltOVkcY1fKc/m/7sQSVGN_AQAJ >>>>> >>>>> we were using fixed value for the incoming grid line to calculate the >>>>> consumption but it was not accurate enough so we added new sensor to read >>>>> the grid incoming line voltage. >>>>> earlier this formula worked consumption = ampere * 117 / 1000 * 0.88 >>>>> but consumption = ampere * linevoltage / 1000 * 0.88 did not work >>>>> the linevoltage input comes from different sensor than ampere, these >>>>> two reading are generated in different loops, so based on Tom advice the >>>>> weewx correction will not work >>>>> thank you >>>>> >>>>> On Wednesday, October 18, 2023 at 1:28:55 AM UTC+3 gjr80 wrote: >>>>> >>>>>> So what does >>>>>> >>>>>> consumption = ((ampere * linevoltage) /1000) * 0.88 >>>>>> >>>>>> do? >>>>>> >>>>>> Gary >>>>>> On Wednesday, 18 October 2023 at 08:26:25 UTC+10 [email protected] >>>>>> wrote: >>>>>> >>>>>>> Hi Tom >>>>>>> >>>>>>> we run weewx directly and found that 'ampere' & 'linevoltage' are >>>>>>> in different loop because the data are coming from two different >>>>>>> sensors by >>>>>>> sdr.py driver. >>>>>>> how we can combine these loops into one so weewx can process this >>>>>>> formula, or what can we do to get this calculation done.? >>>>>>> >>>>>>> Thank you for your support >>>>>>> >>>>>>> On Tuesday, October 17, 2023 at 9:26:38 PM UTC+3 Tom Keffer wrote: >>>>>>> >>>>>>>> The only symbols that can be used in the [[Corrections]] formula >>>>>>>> are other types in the archive record. So unless 'ampere', >>>>>>>> 'linevoltage', >>>>>>>> and 'pf' all appear in the record, the correction will not work. >>>>>>>> >>>>>>>> On Tue, Oct 17, 2023 at 9:48 AM Mks Mk <[email protected]> wrote: >>>>>>>> >>>>>>>>> we want to improve the accuracy of our home energy monitor and we >>>>>>>>> added new sensor to read the main line voltage so we got two sensors >>>>>>>>> and >>>>>>>>> the data is logged in weewx database. >>>>>>>>> >>>>>>>>> [[sensor_map]] >>>>>>>>> >>>>>>>>> ampere = current.***.EfPacket >>>>>>>>> linevoltage = payload5.*****.RadioHeadASKPacket >>>>>>>>> >>>>>>>>> the database have these columns which we created >>>>>>>>> >>>>>>>>> consumption >>>>>>>>> ampere >>>>>>>>> linevoltage >>>>>>>>> pf >>>>>>>>> >>>>>>>>> we want to calculate the energy consumption so we added this >>>>>>>>> correction >>>>>>>>> >>>>>>>>> [StdCalibrate] >>>>>>>>> >>>>>>>>> [[Corrections]] >>>>>>>>> # For each type, an arbitrary calibration expression can >>>>>>>>> be given. >>>>>>>>> # It should be in the units defined in the StdConvert >>>>>>>>> section. >>>>>>>>> # Example: >>>>>>>>> foo = foo + 0.2 >>>>>>>>> pf = 0.88 >>>>>>>>> consumption = ((ampere * linevoltage) /1000) * pf >>>>>>>>> >>>>>>>>> unfortunately weewx did nothing nor it complained about it. can >>>>>>>>> weewx process such formula? >>>>>>>>> >>>>>>>>> thanks >>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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/26effb7c-ad33-4de8-a9a0-f1390012ec5an%40googlegroups.com >>>>>>>>> >>>>>>>>> <https://groups.google.com/d/msgid/weewx-user/26effb7c-ad33-4de8-a9a0-f1390012ec5an%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/fa342793-222a-4773-9bde-5bf97cf88dddn%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/weewx-user/fa342793-222a-4773-9bde-5bf97cf88dddn%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/312b8a78-d433-4585-8514-cbc24ad65b1dn%40googlegroups.com.
