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/86916aa1-d983-482c-ba11-b64126ddc79an%40googlegroups.com.
