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/ecc955d7-f248-4e1e-bddd-949a1ae64e5dn%40googlegroups.com.