Hi,

That error is telling you that the field dateTime does not exist in your 
loop packet so I doubt the issue is whether dateTime is an integer or a 
float, its more fundamental than that. I would be looking at the wxMesh 
driver; do you have it configured properly, are there any field maps that 
need to be configured, typos? Remember case matters. If you can't spot a 
config error turn debug up as high as you can, both in WeeWX and the driver 
(if it is supported). I would set debug=2 in weewx.conf. Have a read of the 
wxMesh driver file, are there any comments up front about setting debug 
levels or troubleshooting, it might not be setting a option named debug, it 
could be debug_read etc. What you want is to get the driver to spit out the 
loop packet to screen/log so you can see if the driver is doing what it 
should or if the issue is further up the processing tree.

Gary

On Sunday, 9 September 2018 09:37:45 UTC+10, Louis De Lange wrote:
>
> Pat,
>
> Thank you for the insight.  I already understood most of what you 
> described, but your point that the data should be on weather/loop 
> worked.  
>
> So changing that now the loop is activated when data arrives, but I am 
> getting an error about data type for dateTime.  
>
>   File "/usr/bin/weewxd", line 64, in <module>
>     weewx.engine.main(options, args)
>   File "/usr/share/weewx/weewx/engine.py", line 877, in main
>     engine.run()
>   File "/usr/share/weewx/weewx/engine.py", line 191, in run
>     self.dispatchEvent(weewx.Event(weewx.NEW_LOOP_PACKET, packet=packet))
>   File "/usr/share/weewx/weewx/engine.py", line 224, in dispatchEvent
>     callback(event)
>   File "/usr/share/weewx/weewx/wxservices.py", line 45, in new_loop_packet
>     self.calc.do_calculations(event.packet, 'loop')
>   File "/usr/share/weewx/weewx/wxservices.py", line 191, in do_calculations
>     getattr(self, 'calc_' + obs)(data_us, data_type)
>   File "/usr/share/weewx/weewx/wxservices.py", line 300, in 
> calc_maxSolarRad
>     data['dateTime'], self.atc)
> KeyError: 'dateTime'
>
>
> I suspect the driver reads it in as a REAL number, not an integer.  I'll 
> dig into that a bit further and report back.
>
>  
>
> On Saturday, 8 September 2018 15:53:02 UTC-7, Pat wrote:
>>
>> Hi Louis, I don't have any specific experience with wxMesh, but maybe I 
>> can help a little with MQTT. 
>>
>> In general, the # in a topic ID means "I want to see everything in this 
>> topic". This is good for debugging, but typically bad practice for anything 
>> else. For example if my broker is available to the public and anonymous 
>> users can publish (hopefully you're using an ACL if your broker is publicly 
>> available!), then they can post to weather/hello, or weather/mywebsite, 
>> etc. and your driver will ingest everything on weather because you're 
>> subscribed to weather/#. 
>>
>> Depending on your weewx.conf configuration, your data is probably on 
>> weather/loop. Try to subscribe to that in your mosquitto_sub client to 
>> verify. 
>>
>> Also, my guess would be you want aggregate since that will put all 
>> observations in 1 published message, as opposed to individual topics like 
>> weather/outTemp, weather/humidity, weather/barometer, etc. 
>>
>> Hope this helps a little bit. 
>>
>>
>> On Saturday, September 8, 2018 at 5:51:02 PM UTC-4, Louis De Lange wrote:
>>>
>>> I  have a remote site that I want to connect to my home network using 
>>> MQTT and utilize minimal data transfer.  
>>>
>>> The plan is to have weewx on one Raspberry Pi Zero at the remote site 
>>> receiving the data from the weather station, archive it and publish to a 
>>> MQTT broker using mwall's MQTT uploader.   The MQTT broker will be 
>>> Mosquitto running on my home network.  Finally, I want to have another 
>>> instance of weewx running on a raspberry pi on my home network using Bill 
>>> Morrow's MQTT driver as input.
>>>
>>> Right now I am trying to test the arrangement using multiple PI's on my 
>>> home network in a simulation.  
>>>
>>> I am able to successfully publish the data from my local station to the 
>>> MQTT broker running on a different PI, and subscribe to it  with mosquitto 
>>> tool mosquitto-sub - so we know publishing works..
>>>
>>> Where things fall apart is that I cannot get Bill Morrow's MQTT driver 
>>> tor work.  Weewx starts OK, but it just waits for an archive loop and 
>>> nothing else happens.
>>>
>>> The following is the log output from starting weewx.
>>>
>>> Sep 08 14:37:12 testpi systemd[1]: Starting LSB: weewx weather system...
>>> Sep 08 14:37:13 testpi weewx[21197]: engine: Initializing weewx version 
>>> 3.8.2
>>> Sep 08 14:37:13 testpi weewx[21197]: engine: Using Python 2.7.13 
>>> (default, Nov 24 2017, 17:33:09)
>>>                                      [GCC 6.3.0 20170516]
>>> Sep 08 14:37:13 testpi weewx[21197]: engine: Platform 
>>> Linux-4.14.50+-armv6l-with-debian-9.4
>>> Sep 08 14:37:13 testpi weewx[21197]: engine: Locale is 'en_CA.UTF-8'
>>> Sep 08 14:37:13 testpi weewx[21197]: engine: pid file is 
>>> /var/run/weewx.pid
>>> Sep 08 14:37:13 testpi weewx[21186]: Starting weewx weather system: 
>>> weewx.
>>> Sep 08 14:37:13 testpi systemd[1]: Started LSB: weewx weather system.
>>> Sep 08 14:37:13 testpi weewx[21201]: engine: Using configuration file 
>>> /etc/weewx/weewx.conf
>>> Sep 08 14:37:13 testpi weewx[21201]: engine: Loading station type wxMesh 
>>> (user.wxMesh)
>>> Sep 08 14:37:14 testpi weewx[21201]: wxMesh: MQTT host is localhost
>>> Sep 08 14:37:14 testpi weewx[21201]: wxMesh: MQTT topic is weather
>>> Sep 08 14:37:14 testpi weewx[21201]: wxMesh: MQTT client is wxclient
>>> Sep 08 14:37:14 testpi weewx[21201]: wxMesh: polling interval is 1.0
>>> Sep 08 14:37:14 testpi weewx[21201]: wxMesh: label map is {'dateTime': 
>>> 'dateTime', 'outTemp': 'outTemp', 'outHumidity': 'outHumidity', 'inTemp': 
>>> 'inTemp', 'i
>>> Sep 08 14:37:14 testpi weewx[21201]: engine: StdConvert target unit is 
>>> 0x1
>>> Sep 08 14:37:14 testpi weewx[21201]: wxcalculate: The following values 
>>> will be calculated: barometer=prefer_hardware, windchill=prefer_hardware, 
>>> dewpoint=pre
>>> Sep 08 14:37:14 testpi weewx[21201]: wxcalculate: The following 
>>> algorithms will be used for calculations: altimeter=aaNOAA, maxSolarRad=RS
>>> Sep 08 14:37:14 testpi weewx[21201]: engine: Archive will use data 
>>> binding wx_binding
>>> Sep 08 14:37:14 testpi weewx[21201]: engine: Record generation will be 
>>> attempted in 'hardware'
>>> Sep 08 14:37:14 testpi weewx[21201]: engine: Using archive interval of 
>>> 300 seconds (specified in weewx configuration)
>>> Sep 08 14:37:14 testpi weewx[21201]: engine: Using binding 'wx_binding' 
>>> to database 'weewx.sdb'
>>> Sep 08 14:37:14 testpi weewx[21201]: manager: Starting backfill of daily 
>>> summaries
>>> Sep 08 14:37:14 testpi weewx[21201]: restx: StationRegistry: 
>>> Registration not requested.
>>> Sep 08 14:37:14 testpi weewx[21201]: restx: Wunderground: Posting not 
>>> enabled.
>>> Sep 08 14:37:14 testpi weewx[21201]: restx: PWSweather: Posting not 
>>> enabled.
>>> Sep 08 14:37:14 testpi weewx[21201]: restx: CWOP: Posting not enabled.
>>> Sep 08 14:37:14 testpi weewx[21201]: restx: WOW: Posting not enabled.
>>> Sep 08 14:37:14 testpi weewx[21201]: restx: AWEKAS: Posting not enabled.
>>> Sep 08 14:37:14 testpi weewx[21201]: restx: MQTT: service version is 0.18
>>> Sep 08 14:37:14 testpi weewx[21201]: engine: Starting up weewx version 
>>> 3.8.2
>>> Sep 08 14:37:14 testpi weewx[21201]: engine: Starting main packet loop.
>>>
>>>
>>>
>>> The following is the wxMesh section of the weewx.conf file.  
>>>
>>> [wxMesh]
>>>     driver = user.wxMesh
>>>
>>>     # MQTT specifics
>>>     host = localhost    # MQTT broker hostname
>>>         username = XXXXXXX    # MQTT broker user name. Assumption is 
>>> your broker requires authentication
>>>     password = XXXXXXXX
>>>     topic = weather    # topic is all weather (indoor and outdoor, e.g.)
>>>
>>>     poll_interval = 1
>>>
>>>     [[label_map]]
>>>         dateTime = dateTime
>>>         outTemp = outTemp
>>>         outHumidity = outHumidity
>>>         inTemp = inTemp
>>>         inHumidity = inHumidity
>>>         barometer = barometer
>>>
>>>
>>> I am not sure about the following things in the wxMesh section of the 
>>> weewx.conf file
>>>
>>> 1. Is the topic "weather" correct?  When I subscribe to the feed using 
>>> mosquitto-sub the correct syntax is "weather/#"
>>> 2. In the MQTT uploader  I can select "individual" or "aggregate" 
>>> records to upload.  What does the MQTT input driver expect?
>>>
>>>
>>> Any help from Bill or anyone else would be appreciated.
>>>
>>> Louis  
>>>
>>

-- 
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].
For more options, visit https://groups.google.com/d/optout.

Reply via email to