Thanks Gary,
I have been investigating and found as much - but in the end could not get
it to work by config alone.
I have turned to a completely different technical solution and are able to
upload the remote data at approx 5kB / archive - so it solves my immediate
need.
I am still intrigued by the concept of doing this with MQTT and I will play
around until I get it to work. If I can shave off a few more kB per upload
using MQTT then I can upload loops rather than archives.
On Sunday, 9 September 2018 16:36:16 UTC-7, gjr80 wrote:
>
> 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.