Hi Rich, thank you very much. It works like a charm! :-)
I set up a temporary mapping to values already available in the databae. For the temp and humid values it works out of the box, for CPM, CPS and radiation I have to setup unit groups later. This is my working setup - just to have that written down for others: my data form the MQTT broker: radiation:0.17,cpm:31,cps:0,temp_2m:25.97,temp_5cm:27.24,temp_dht22:34.30,hum_dht22:45.30,rain:0.00 weewx.conf: [MQTTSubscribeService] host = xxx.xxx.xxx.xxx # IP of the broker payload_type = keyword console = True [[topics]] [[[weather]]] # The topic you are subscribing to unit_system = METRICWX # Not sure weather you want METRICWX or METRIC. See http://weewx.com/docs/customizing.htm#units [[[[temp_2m]]]] # Name in the MQTT message name = extraTemp1 # WeeWX name [[[[temp_5cm]]]] name = extraTemp2 [[[[temp_dht22]]]] name = extraTemp3 [[[[hum_dht22]]]] name = extraHumid3 [[[[rain]]]] name = hail [[[[radiation]]]] name = signal1 [[[[cpm]]]] name = signal2 [[[[cps]]]] name = signal3 [[message_callback]] type = keyword keyword_delimiter = "," # The delimiter between the name/value pairs keyword_separator = ":" # The separator between the name and the value [[Services]] data_services = user.MQTTSubscribe.MQTTSubscribeService That's quite nice and more elegant as to set up a second weewx instance with a MQTT driver! Thank you very much. My MQTT broker runs on a BananaPi which is located in the garden near the sensors (Temp2m, Temp5cm, raingauge, temp and hum sensor inside the controlbox and a MightyOhm Geiger Counter Kit). I can't figure out why...but somtimes I lost the WLAN connection (after 7-30 days). Then I restart the BananPi, start the mosquitto deamon...but the weewx instance running the wxMesh driver didn't reconnect. I have to start and stop this instance, then it works again. But I saw a post in weewx-development that someone pointed out the connection was setup once at initialisation...maybe there is no check of the connection and a reconnect condition? If the setup goes online (at the moment I run the simulator whil mograting all sensors and tweak the new webpage) and the VanatgeVP2 is connected, I will check the behavior of your drriver in my setup. Thanks again for the excellent support. If I run into some problems I will contact you again. :-) Regards, Christian P.S. Ken, thanks for you fix...it works..! :-) But the MQTTSubscribeService works great and I will prefer to run only one weewx instance to deal with all sensors. Am Mittwoch, 24. Juni 2020 19:25:05 UTC+2 schrieb Rich Bell: > > > Well, I haven't heard of having to restart WeeWX when the connection is > lost, and if that happens I would certainly want to look into fixing that. > I'll do some experiments to see if I can recreate. > > Sounds like picking the service might be the best long term choice, with > the caveat about the reconnect logic needing to be verified. But if you > want to get your feet wet, I would suggest that we get it up and running as > a driver - perhaps even running from the command line for a bit. The actual > configuration work is really the same. So you could migrate to the service > as you get more comfortable or after we prove that lost connections are not > a problem. > > The following assumes that you install 1.5.4-rc01. This changed the way to > configure MQTTSubscribe. Once installed, there will be three key sections > the [MQTTSubscribeDriver]/[MQTTSubscribeService] section. This is the MQTT > connection information, and I believe this is pretty straight forward. But > after looking at it, if you have questions let me know. > > Next up is the [[topics]] section. Based on the information you posted, I > think this is what you would want > > [[topics]] > [[[weather]]] # The topic you are subscribing to > unit_system = METRICWX # Not sure weather you want METRICWX or METRIC. > See http://weewx.com/docs/customizing.htm#units > [[[[temp_2m]]]] # Name in the MQTT message > name = extraTemp1 # WeeWX name > [[[[temp_5cm]]]] > name = extraTemp2 > [[[[temp_dht22]]]] > name = inTemp > [[[[hum_dht22]]]] > name = inHumidity > [[[[rain]]]] > name = rain > [[[[geiger]]]] > name = radiation > > Not sure about your TIME field and the value of 0. I left it out and since > it is missing MQTTSubscribe will use the date/time from the server it is > running on. There are other options for converting the incoming data, but > yours looks pretty straight forward. > > Last is the [[message_callback]] section. I would call your data > 'keyword'. If it was json, I would expect quotes around the fieldnames. So, > something like this > > [[message_callback]] > type = keyword > keyword_delimiter = "," # The delimiter between the name/value pairs > keyword_separator = ":" # The separator between the name and the value > > There are some additional options when running as a service to attempt to > only process data that belongs to the loop packet or archive record that is > being augmented. Over time I have found the defaults to be a bit too > restrictive, so we might need to configure those a bit. > > I haven't tried to run a second instance of WeeWX, so I can't help there. > But, if you need any more help with MQTTSubscribe, just let me know. > -rich > > On Wednesday, 24 June 2020 12:51:43 UTC-4, Christian Peters wrote: >> >> Rich, >> >> that's great. I'm not sure whether I should stay on the driver version or >> switch to the service version....which could make it maybe more easy. >> But if the MQTTSubscribe as service lost connection and wouldn't >> reconnect I have to restart the main weewx prog to get it up again!? So >> maybe a second running instance >> with MQTTSubscribe is the better choice...? >> Difficult...I would perfer one instance as I struggle to get a second >> weewx instance up with systemd at the moment.... >> >> So with mosquitto_sub -h 192.168.1.143 -t weather >> >> I got this ( in JSON format I think) : >> >> >> TIME:0,radiation:0.17,cpm:31,cps:0,temp_2m:25.97,temp_5cm:27.24,temp_dht22:34.30,hum_dht22:45.30,rain:0.00 >> >> I mapped in my Python 2 env (weewx2.9, second instance with sql databse) >> and wxMesh: >> >> [[label_map]] >> TIME = dateTime >> temp_2m = extraTemp1 >> temp_5cm = extraTemp2 >> temp_dht22 = inTemp >> hum_dht22 = inHumidity >> rain = rain >> geiger = radiation >> >> So do you know the syntax for the mapping for MQTTSubscribe? >> >> As I send the data to the MQTT broker by myself it would be maybe best to >> use a second instance and tweak the mapping to entrys which are already in >> the schema. >> So I could stay in the mapping posted above? >> >> Do you set up a second instance of weewx with systemd already...? >> Any help or syntax examples would be welcome, especially for the format >> of the label mapping of >> MQTTSubscribe. I tried weew-multi but dont get the second instance up... >> Not sure its systemd ready... >> >> Thanks in advance, >> >> Christian >> >> >> >> Am Mittwoch, 24. Juni 2020 16:12:12 UTC+2 schrieb Rich Bell: >>> >>> Christian, >>> >>> MQTTSubscribe should be able to meet your needs. I know the >>> documentation is a bit sparse, but I can help get you up and running. >>> >>> The first question you need to answer is whether to run as a service or >>> driver? From what I am understanding. If you ran as a driver it would >>> essentially be a replacement for wxmesh. Meaning it would the database >>> configured for that WeeWX instance. If you ran MQTTSubscribe as a service, >>> you could augment the data in your other WeeWX instance. >>> >>> The next question is the format of the incoming data. Is it json, >>> keyword (name=value), or individual (single observation per topic)? Lastly, >>> what name mapping do you need to? >>> >>> -rich >>> >>> On Wednesday, 24 June 2020 08:59:25 UTC-4, Christian Peters wrote: >>>> >>>> Hi, >>>> >>>> I ran a weewx 3.9. station with Python 2 and a seperate weewx instance >>>> with the wxMesh.py driver. >>>> This works very nice (as far as the broker isn't down or the connection >>>> breaks - then a restart of the weewx instance which holds the wxMesh >>>> driver >>>> is needed...!). >>>> As I now switch to Python 3 and weewx 4.x I figured out that the >>>> wxMesh.py driver isn't Python 3 ready? :-( >>>> >>>> How can I catch MQTT data into the weewx database from an external >>>> broker ilocated n my home lan? >>>> >>>> Is this the right extension to use: >>>> >>>> https://github.com/bellrichm/WeeWX-MQTTSubscribe >>>> ....? >>>> >>>> What I don't understand: if I will use it as a sevice, in which >>>> database will it put my values? >>>> Is there a mapping needed!? Can I use a seperate database? >>>> Is there a configuration example available or does anybody set up such >>>> a station and could provide the config or give me some advice >>>> howto get the data form the MQTT broker into weewx and the database to >>>> show the values and graphs!? >>>> That would be great! >>>> >>>> Thanks in advance! >>>> >>>> Regards, >>>> >>>> Christian >>>> >>> -- 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 weewx-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/ac6ed641-d761-4e7d-bdff-2a9f1b4e1c0co%40googlegroups.com.