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.

Reply via email to