Rich - I'm seeing a very high percentage of failures now that reasonably heavy rain started which must be affecting my wifi somehow. Uncertain why that matters with the transmitting pi 20 feet through a couple windows from the access point, and the weewx system wired ethernet, but that is the pattern.
I have ignore start+end time set to true per the other long thread here in the last week or so. Note the timestamps are off just a second if that... Dec 11 10:25:06 debian weewx[13013] INFO user.MQTTSubscribe: (Service) TopicManager ignoring record outside of interval 1639247105.000000 1639247107.000000 1639247104.739378 dateTime: 1639247104.7393782, extraTemp1: 47.41, extraTemp2: 46.74, usUnits: 1 My weewx system is very weak and slow, so it's likely sensitive to any delays in processing things. Let me try use_server_datetime and see if that has any effect. I 'am' running 2.0.0 of MQTTSubscribe so if I need to upgrade please let me know. On Saturday, December 11, 2021 at 10:27:52 AM UTC-8 [email protected] wrote: > Thanks for the detailed information and telling me were to look! I think > this is also due to the date/time processing of MQTTSubscribe. It is > creating packets 'out of order', which not surprisingly is confusing WeeWX. > At a high level, MQTTSubscribe puts out a packet that makes WeeWX think its > time to create the 14:11 record (data for the 14:12 record). Then a packet > is created that 'belongs in the 14:11' record is created. This 'jumping > around' is across the different topics you are subscribed to. > I think the following should fix it. > > [[topics]] > # Even if the payload has a datetime, ignore it and use the server > datetime. > use_server_datetime = True > unit_system = METRIC > > rich > > On Saturday, 11 December 2021 at 08:43:12 UTC-5 Michael wrote: > >> Hi Rich, >> thanks for looking. Enclosed is the data... >> And yes, the database does not contain any data if the report does not >> show any data either. >> But what I have just noticed: >> Between 14:10:xx and 14:11:24 extraTemp4 is present several times in the >> loop values, but not in the REC value 14:11:00? >> >> >> Michael >> >> >> [email protected] schrieb am Samstag, 11. Dezember 2021 um 13:34:29 >> UTC+1: >> >>> This is definitely something different, so thanks for starting a new >>> thread. I am a bit stumped at the moment. I assume that when you query the >>> database that you don't see the data in the database. Could you run WeeWX >>> from the console for a couple of archive periods and attach the output? >>> rich >>> >>> On Friday, 10 December 2021 at 14:17:00 UTC-5 Michael wrote: >>> >>>> Hello, >>>> >>>> I have a similar problem as already described in "Some missing data in >>>> Current Conditions on Standard skin". But only similar, so I am opening a >>>> new topic: >>>> >>>> I am using this version of weewx (4.6.0b7) as a data collector from 2 >>>> other weewx installations. The 2 other weewx versions send their data as >>>> MQTT data and this version fetches the data with MQTTSubscribeDriver. >>>> I keep seeing non-existent data being displayed as N/A, even though I >>>> believe this data is being received. >>>> Was MQTTSubscribeDriver configured incorrectly by me? I use: >>>> archive_interval = 60 >>>> For example, I find the following line in the log: >>>> >>>> Dec 10 19:12:18 vmweewx weewx[2412940] DEBUG user.MQTTSubscribe: >>>> (Driver) data-> final loop packet is weather-tfa/loop 2021-12-10 19:12:17 >>>> CET (1639159937): altimeter: 1000.0909966542512, appTemp: >>>> 3.181978086226991, barometer: 1000.875, cloudbase: 524.4088821544462, >>>> dateTime: 1639159937.0, dayRain: 0.0, dewpoint: 2.3278081421957504, >>>> extraBatteryStatus3: 0.0, extraBatteryStatus4: 0.0, extraBatteryStatus8: >>>> 0.0, extraHumid3: 37.0, extraHumid4: 90.0, extraHumid8: 48.0, >>>> extraLinkStatus2: 0.0, extraLinkStatus3: 0.0, extraLinkStatus4: 0.0, >>>> extraTemp3: 23.2, *extraTemp4: 4.3*, extraTemp8: 6.7, forecast: 4.0, >>>> heatindex: 3.528888888888887, hourRain: 0.0, humidex: 4.8, inDewpoint: >>>> 7.414870881918784, inHumidity: 44.0, inTemp: 20.05, maxSolarRad: 0.0, >>>> outHumidity: 84.0, outLinkStatus: 0.0, outTemp: 4.8, outTempBatteryStatus: >>>> 0.0, pressure: 973.7792986048581, rain: 0.0, rain24: 0.0, >>>> rainBatteryStatus: 0.0, rainLinkStatus: 0.0, rainRate: 0.0, rainTotal: >>>> 133.0677778616, storm: 0.0, usUnits: 16.0, uvBatteryStatus: 0.0, >>>> uvLinkStatus: 1.0, windBatteryStatus: 0.0, windchill: 14.7, windGust: 0.0, >>>> windLinkStatus: 0.0, windSpeed: 0.0 >>>> >>>> means to me that there is a value for extraTemp4. >>>> But in the screenshot you only see N/A for extraTemp4. >>>> >>>> [image: 2021-12-10 19_13_23-FRE-Sammler.png] >>>> >>>> the report is generated 19:12:18: >>>> >>>> Dec 10 19:12:18 vmweewx weewx[2412940] DEBUG weewx.manager: Daily >>>> summary version is 4.0 >>>> >>>> Dec 10 19:12:20 vmweewx weewx[2412940] INFO weewx.cheetahgenerator: >>>> Generated 8 files for report SeasonsReport in 1.93 seconds >>>> >>>> I also already took the idea from "Some missing data in Current >>>> Conditions on Standard skin" and modified the current.inc file a bit by >>>> adding $hour.extraTemp4.last. But even here I had N/A. >>>> My goal is this: I want the "archive-interval" to stay at 60 seconds. >>>> If there is no current value (because there really is no sensor data in >>>> this interval), the last existing value of the last 5 minutes should be >>>> used. Currently I have configured the last value of the last hour, right? >>>> Does this also work for the last 5 minutes, or the last 10 minutes? >>>> >>>> Or can I get MQTTSubscribe to use the last existing value of e.g. the >>>> last 5 minutes for the current "archive-interval" at weewx? >>>> >>>> >>>> >>>> My configuration from weewx.conf: >>>> >>>> [MQTTSubscribeDriver] >>>> >>>> # This section is for the MQTTSubscribe driver. >>>> >>>> >>>> >>>> # The driver to use: >>>> >>>> driver = user.MQTTSubscribe >>>> >>>> >>>> >>>> # The MQTT server. >>>> >>>> # Default is localhost. >>>> >>>> # host = 192.168.10.17 >>>> >>>> >>>> >>>> # The port to connect to. >>>> >>>> # Default is 1883. >>>> >>>> port = 1883 >>>> >>>> >>>> >>>> log = true >>>> >>>> # Maximum period in seconds allowed between communications with >>>> the broker. >>>> >>>> # Default is 60. >>>> >>>> keepalive = 60 >>>> >>>> >>>> >>>> # username for broker authentication. >>>> >>>> # Default is None. >>>> >>>> # username = None >>>> >>>> >>>> >>>> # password for broker authentication. >>>> >>>> # Default is None. >>>> >>>> # password = None >>>> >>>> >>>> >>>> # Configuration for the message callback. >>>> >>>> [[message_callback]] >>>> >>>> type = json >>>> >>>> >>>> >>>> # The topics to subscribe to. >>>> >>>> [[topics]] >>>> >>>> unit_system = METRIC >>>> >>>> [[[weather-tfa/loop]]] >>>> >>>> >>>> >>>> [[[weather-sdr1/loop]]] >>>> >>>> [[[[rainRate]]]] >>>> >>>> ignore = true >>>> >>>> [[[[maxSolarRad]]]] >>>> >>>> ignore = true >>>> >>>> [[[[hourRain]]]] >>>> >>>> ignore = true >>>> >>>> [[[[rain24]]]] >>>> >>>> ignore = true >>>> >>>> [[[[dayRain]]]] >>>> >>>> ignore = true >>>> >>>> [[[[rain_total]]]] >>>> >>>> ignore = true >>>> >>>> [[[[rain]]]] >>>> >>>> ignore = true >>>> >>>> [[[[heatindex]]]] >>>> >>>> ignore = true >>>> >>>> >>>> >>>> [[[weather-sdr2/loop]]] >>>> >>>> [[[[extraTemp2]]]] >>>> >>>> # expires_after = None >>>> >>>> >>>> >>>> >>>> >>>> >>>> ############################################################################## >>>> >>>> >>>> >>>> >>>> >>>> a part from current.inc: >>>> >>>> >>>> >>>> #if 'observations_current' in $DisplayOptions >>>> >>>> #for $x in $DisplayOptions.observations_current >>>> >>>> #if $getVar('year.%s.has_data' % $x) >>>> >>>> #if $x == 'outTemp' >>>> >>>> <tr> >>>> >>>> <td class="label">$obs.label.outTemp</td> >>>> >>>> <td class="data">$current.outTemp ($trend.outTemp.formatted) / >>>> $current.outHumidity</td> >>>> >>>> <td class="data">$hour.outTemp.last ($trend.outTemp.formatted) >>>> / $hour.outHumidity.last</td> >>>> >>>> </tr> >>>> >>>> #elif $x == 'extraTemp4' >>>> >>>> <tr> >>>> >>>> <td class="label">$obs.label.extraTemp4</td> >>>> >>>> <td class="data">$current.extraTemp4 >>>> ($trend.extraTemp4.formatted) / $current.extraHumid4</td> >>>> >>>> <td class="data">$hour.extraTemp4.last >>>> ($trend.extraTemp4.formatted) / $hour.extraHumid4.last</td> >>>> >>>> </tr> >>>> >>>> #elif $x == 'extraTemp2' >>>> >>>> <tr> >>>> >>>> <td class="label">$obs.label.extraTemp2</td> >>>> >>>> <td class="data">$current.extraTemp2 >>>> ($trend.extraTemp2.formatted) / $current.extraHumid2</td> >>>> >>>> <td class="data">$hour.extraTemp2.last >>>> ($trend.extraTemp2.formatted) / $hour.extraHumid2.last</td> >>>> >>>> </tr> >>>> >>>> #elif $x == 'extraTemp6' >>>> >>>> <tr> >>>> >>>> <td class="label">$obs.label.extraTemp6</td> >>>> >>>> <td class="data">$current.extraTemp6 >>>> ($trend.extraTemp6.formatted) / $current.extraHumid6</td> >>>> >>>> <td class="data">$hour.extraTemp6.last >>>> ($trend.extraTemp6.formatted) / $hour.extraHumid6.last</td> >>>> >>>> </tr> >>>> >>>> #elif $x == 'extraTemp9' >>>> >>>> <tr> >>>> >>>> <td class="label">$obs.label.extraTemp9</td> >>>> >>>> <td class="data">$current.extraTemp9 >>>> ($trend.extraTemp9.formatted) / $current.extraHumid9</td> >>>> >>>> <td class="data">$hour.extraTemp9.last >>>> ($trend.extraTemp9.formatted) / $hour.extraHumid9.last</td> >>>> >>>> </tr> >>>> >>>> #elif $x == 'extraTemp10' >>>> >>>> <tr> >>>> >>>> <td class="label">$obs.label.extraTemp10</td> >>>> >>>> <td class="data">$current.extraTemp10 >>>> ($trend.extraTemp10.formatted) / $current.extraHumid10</td> >>>> >>>> <td class="data">$hour.extraTemp10.last >>>> ($trend.extraTemp10.formatted) / $hour.extraHumid10.last</td> >>>> >>>> </tr> >>>> >>>> #elif $x == 'barometer' >>>> >>>> <tr> >>>> >>>> <td class="label">$obs.label.barometer</td> >>>> >>>> <td class="data">$current.barometer >>>> ($trend.barometer.formatted)</td> >>>> >>>> </tr> >>>> >>>> #elif $x == 'windSpeed' >>>> >>>> <tr> >>>> >>>> <td class="label">$obs.label.wind</td> >>>> >>>> <td class="data">$current.windSpeed >>>> $current.windDir.ordinal_compass ($current.windDir)</td> >>>> >>>> </tr> >>>> >>>> #elif $x == 'rain' >>>> >>>> <tr> >>>> >>>> <td class="label">$gettext("Rain Today")</td> >>>> >>>> <td class="data">$day.rain.sum</td> >>>> >>>> </tr> >>>> >>>> #else >>>> >>>> <tr> >>>> >>>> <td class="label">$obs.label[$x]</td> >>>> >>>> <td class="data">$getVar('current.' + $x)</td> >>>> >>>> </tr> >>>> >>>> #end if >>>> >>>> #end if >>>> >>>> #end for >>>> >>>> #else >>>> >>>> <tr><td>No observations specified</td></tr> >>>> >>>> #end if >>>> >>>> >>>> I would be very grateful for any suggestions or hints >>>> >>>> Michael >>>> >>>> >>>> >>>> >>>> -- 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/305146d8-89cf-43f1-a564-0e55cb9728e2n%40googlegroups.com.
