Sorry for the late reply. I don't have much time to work on my original wxMesh driver.
>From what I have seen of MQTTSubscribe, it's a much more complete implementation of an MQTT subscriber, and offers the features I was planning on adding some day. When I get a chance, I plan on switching to using MQTTSubscribe. On Wednesday, 24 June 2020 18:00:44 UTC-3, Rich Bell wrote: > > Great to hear. Just give a shout if you run into any other difficulties. > rich > > On Wednesday, 24 June 2020 16:50:26 UTC-4, Christian Peters wrote: >> >> 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/ddaa30d4-a24e-44e4-a2e7-3414344d8546o%40googlegroups.com.