THANKS RICH!! It really helped to see my actual JSON message get translated into the weewx.conf file format!
WeeWX got it's first barometer reading shortly after I made the edits and retstarted weewx at 2:59pm today! [image: image.png] *Quick question:* Since I removed the line "units = hPa" from the confg file, how does weewx know that my pressure sensor reading is hPa rather than kPa? An educated guess, based on the magnitude? THANKS ALL! With a barometer reading, my WeeWX setup is now complete!! Eric On Thu, May 13, 2021 at 12:03 PM [email protected] <[email protected]> wrote: > Using this data point that you posted earlier, I formatted it a bit to > better show the json structure. > 21:54:27.154 MQT: sensors/BMP280/SENSOR = > { > "Time":"2021-05-12T21:54:27", > " BMP280": > { > "Temperature":22.0, > "Pressure":990.8 > }, > "PressureUnit":"hPa", > "TempUnit":"C" > } > > You’ve got one topic, ‘sensors/BMP280/SENSOR’ that is publishing json data. > You’ve got four top level fields, ‘Time’, ‘BMP280’, ‘PressureUnit’, and > ‘TempUnit’. > ‘BMP280’ is an object consisting of two fields, ‘ Temperature’, and > ‘Pressure’. I am calling this ‘nested json’. This will result in 2 fields > named ‘BMP280_Temperature’ and ‘BMP280_Pressure’. > > So, your configuration should be something like this. > # The message handler to use > [[message_callback]] > # The format of the MQTT payload. > # Currently support: individual, json, keyword > # Must be specified. > type = json > > # The topics to subscribe to. > [[topics]] > # Units for MQTT payloads without unit value. > # Valid values: US, METRIC, METRICWX > # Default is: US > unit_system = METRIC > > [[[sensors/BMP280/SENSOR]]] > [[[[Time]]]] > ignore = true > > [[[[BMP280_Temperature]]]] > # The WeeWX name. > # Default is the name from MQTT. > name = appTemp1 > > [[[[BMP280_Pressure]]]] > # The WeeWX name. > # Default is the name from MQTT. > name = barometer > > # The incoming field name from MQTT. > [[[[PressureUnit]]]] > ignore = true > > # The incoming field name from MQTT. > [[[[TemperatureUnit]]]] > ignore = true > > rich > On Thursday, 13 May 2021 at 10:37:54 UTC-4 [email protected] wrote: > >> I've been looking at Rich Bell's nested json example here: >> https://github.com/bellrichm/WeeWX-MQTTSubscribe/wiki/json-example >> He shows a first topic, second topic, third topic, etc. >> >> If you include the time, I think this BMP280 has 5 topics? (Time, >> Temperature, Pressure, PressureUnit, TempUnit) >> Here's what I've got now: in my weewx.conf file: >> >> # The message handler to use >> [[message_callback]] >> # The format of the MQTT payload. >> # Currently support: individual, json, keyword >> # Must be specified. >> type = json >> >> # When the json is nested, the delimiter between the hierarchies. >> # Default is _. >> flatten_delimiter = "_" >> >> # The topics to subscribe to. >> [[topics]] >> # Units for MQTT payloads without unit value. >> # Valid values: US, METRIC, METRICWX >> # Default is: US >> unit_system = METRIC >> >> use_server_datetime = True >> ignore_start_time = True >> ignore_end_time = True >> >> [[[first/topic]]] >> # The incoming field name from MQTT. >> [[[[Time]]]] >> ignore = true >> >> [[[second/topic]]] >> [[[[BME280_Temperature]]]] >> # The WeeWX name. >> # Default is the name from MQTT. >> name = appTemp1 >> units = degree_C >> >> [[[[BME280_Pressure]]]] >> # The WeeWX name. >> # Default is the name from MQTT. >> name = barometer >> units = hPa >> >> [[[third/topic]]] >> # The incoming field name from MQTT. >> [[[[PressureUnit]]]] >> ignore = true >> >> [[[fourth/topic]]] >> # The incoming field name from MQTT. >> [[[[TemperatureUnit]]]] >> ignore = true >> >> >>> Op donderdag 13 mei 2021 om 05:32:15 UTC+2 schreef [email protected]: >>> >>>> Here's what I've got in my weewx.conf file thus far. >>>> Does this look close to correct, when you compare it to the MQTT >>>> message from the Tasmota log? >>>> >>>> >>>> 21:54:27.154 MQT: sensors/BMP280/SENSOR = >>>> {"Time":"2021-05-12T21:54:27","BMP280":{"Temperature":22.0,"Pressure":990.8},"PressureUnit":"hPa","TempUnit":"C"} >>>> >>>> >>>> ############################################################################ >>>> # Options for 'MQTTSubscribeService' >>>> [MQTTSubscribeService] >>>> # This section is for the MQTTSubscribe service. >>>> >>>> # Turn the service on and off. >>>> # Default is: true >>>> # Only used by the service. >>>> enable = false >>>> >>>> # The MQTT server. >>>> # Default is localhost. >>>> host = localhost >>>> >>>> # The port to connect to. >>>> # Default is 1883. >>>> port = 1883 >>>> >>>> # 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 >>>> >>>> # The binding, loop or archive. >>>> # Default is: loop >>>> # Only used by the service. >>>> binding = loop >>>> >>>> # The message handler to use >>>> [[message_callback]] >>>> # The format of the MQTT payload. >>>> # Currently support: individual, json, keyword >>>> # Must be specified. >>>> type = json >>>> >>>> # When the json is nested, the delimiter between the >>>> hierarchies. >>>> # Default is _. >>>> flatten_delimiter = "_" >>>> >>>> # The topics to subscribe to. >>>> [[topics]] >>>> # Units for MQTT payloads without unit value. >>>> # Valid values: US, METRIC, METRICWX >>>> # Default is: US >>>> unit_system = METRIC >>>> >>>> [[[first/topic]]] >>>> # The incoming field name from MQTT. >>>> [[[[Time]]]] >>>> # left side is the name from MQTT. >>>> # right side is the WeeWX name. >>>> Time = dateTime >>>> >>>> [[[second/topic]]] >>>> # The incoming field name from MQTT. >>>> [[[[BME280_Temperature]]]] >>>> # left side is the name from MQTT. >>>> # right side is the WeeWX name. >>>> Temperature = extraTemp1 >>>> >>>> [[[[BME280_Pressure]]]] >>>> # left side is the name from MQTT. >>>> # right side is the WeeWX name. >>>> Pressure = barometer >>>> >>>> [[[third/topic]]] >>>> # The incoming field name from MQTT. >>>> [[[[PressureUnit]]]] >>>> # left side is the name from MQTT. >>>> # right side is the WeeWX name. >>>> PressureUnit = ?? >>>> >>>> [[[fourth/topic]]] >>>> # The incoming field name from MQTT. >>>> [[[[TemperatureUnit]]]] >>>> # left side is the name from MQTT. >>>> # right side is the WeeWX name. >>>> TempUnit = ?? >>>> >>>> On Wednesday, May 12, 2021 at 10:05:22 PM UTC-5 Eric Koester wrote: >>>> >>>>> Maybe this line from the Tasmota Console (log) is a clue? >>>>> >>>>> 21:54:27.154 MQT: sensors/BMP280/SENSOR = >>>>> {"Time":"2021-05-12T21:54:27","BMP280":{"Temperature":22.0,"Pressure":990.8},"PressureUnit":"hPa","TempUnit":"C"} >>>>> >>>>> On Wed, May 12, 2021 at 9:54 PM Eric Koester <[email protected]> >>>>> wrote: >>>>> >>>>>> I've got a BMP280 sensor (only 2 internal sensors) connected to an >>>>>> ESP-12F module, running Tasmota firmware. >>>>>> The example I'm following is a BME280 which has 3 internal sensors. >>>>>> https://tasmota.github.io/docs/BME280/ >>>>>> Rich Bell mentioned that the BME280 (and BMP280) data is json and >>>>>> nested and that the data would come through as BMP280_Temperature, >>>>>> BMP280_Pressure. >>>>>> [image: Tasmota_Main-screen_BMP280.jpg] >>>>>> >>>>>> I roughly configured the MQTT settings in Tasmota and you can see >>>>>> it's made connection with the mosquitto broker. >>>>>> section of /var/log/mosquitto/mosquitto.log file: >>>>>> *1620871934: New connection from 192.168.7.132 on port 1883.* >>>>>> *1620871934: New client connected from 192.168.7.132 as ESP-12F_1 >>>>>> (p2, c1, k30, u'ESP-12F_USER').* >>>>>> *1620872759: Saving in-memory database to >>>>>> /var/lib/mosquitto/mosquitto.db.* >>>>>> >>>>>> I'm not clear what I should set the Topic and Full Topic fields to in >>>>>> the Tasmota MQTT screen. >>>>>> >>>>>> [image: Tasmota_MQTT-settings_1.jpg] >>>>>> >>>>>> >>>>>> On Wednesday, May 12, 2021 at 6:24:46 PM UTC-5 Eric Koester wrote: >>>>>> >>>>>>> For those following along, I discovered that the mosquitto_pub & >>>>>>> mosquitto_sub clients were automatically installed when I installed >>>>>>> mosquitto into Ubuntu. Here was the tip-off: >>>>>>> *weewx@Ubuntu20-WEEWX:~$ sudo apt install mosquitto-clients* >>>>>>> *Reading package lists... Done* >>>>>>> *Building dependency tree * >>>>>>> *Reading state information... Done* >>>>>>> *mosquitto-clients is already the newest version (1.6.12-1).* >>>>>>> *0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.* >>>>>>> >>>>>>> I found some Youtube videos by Steve Cope which show examples of >>>>>>> using the commands. >>>>>>> https://youtu.be/J4pqv9__uzE >>>>>>> >>>>>>> He mentions using the debug switch (-d) so you can see that the >>>>>>> commands are doing something - very useful! >>>>>>> >>>>>>> Running mosquitto_pub in one terminal window and mosquitto_sub in >>>>>>> another is showing feedback of success! >>>>>>> >>>>>>> *weewx@Ubuntu20-WEEWX:~$ mosquitto_pub -h 192.168.7.22 -p 1883 -t >>>>>>> sensors/temperature -m "1266193804 32" -d* >>>>>>> *Client mosq-6o6U1MqsMVovfxfZta sending CONNECT* >>>>>>> *Client mosq-6o6U1MqsMVovfxfZta received CONNACK (0)* >>>>>>> *Client mosq-6o6U1MqsMVovfxfZta sending PUBLISH (d0, q0, r0, m1, >>>>>>> 'sensors/temperature', ... (13 bytes))* >>>>>>> *Client mosq-6o6U1MqsMVovfxfZta sending DISCONNECT* >>>>>>> >>>>>>> *weewx@Ubuntu20-WEEWX:/etc/mosquitto$ mosquitto_sub -h 192.168.7.22 >>>>>>> -p 1883 -t sensors/temperature -d* >>>>>>> *Client mosq-VJoHFtTvE0io4OBXfe sending CONNECT* >>>>>>> *Client mosq-VJoHFtTvE0io4OBXfe received CONNACK (0)* >>>>>>> *Client mosq-VJoHFtTvE0io4OBXfe sending SUBSCRIBE (Mid: 1, Topic: >>>>>>> sensors/temperature, QoS: 0, Options: 0x00)* >>>>>>> *Client mosq-VJoHFtTvE0io4OBXfe received SUBACK* >>>>>>> *Subscribed (mid: 1): 0* >>>>>>> *Client mosq-VJoHFtTvE0io4OBXfe received PUBLISH (d0, q0, r0, m0, >>>>>>> 'sensors/temperature', ... (13 bytes))* >>>>>>> *1266193804 32* >>>>>>> *Client mosq-VJoHFtTvE0io4OBXfe sending PINGREQ* >>>>>>> *Client mosq-VJoHFtTvE0io4OBXfe received PINGRESP* >>>>>>> >>>>>> >>>> >>>>> On Wednesday, May 12, 2021 at 3:20:05 PM UTC-5 [email protected] >>>>>>> wrote: >>>>>>> >>>>>>>> As Greg said, make sure your MQTT infrastructure is up and running >>>>>>>> correctly. Since you installed your own broker, a first check is to use >>>>>>>> mosquitto_sub and mosquitto_pub to a test topic. Once that is working, >>>>>>>> use >>>>>>>> mosquitto_sub to subscribe to the broker and topic(s) that you want >>>>>>>> MQTTSubscribe to subscribe to. This will also provide you with the MQTT >>>>>>>> message. The actual message will be useful as you configure >>>>>>>> WeeWX/MQTTSubscribe. >>>>>>>> >>>>>>>> Next read https://github.com/bellrichm/WeeWX-MQTTSubscribe/wiki. >>>>>>>> This will outline the install steps and point you to >>>>>>>> https://github.com/bellrichm/WeeWX-MQTTSubscribe/wiki/Configuring, >>>>>>>> which has the information on configuring WeeWX/MQTTSubscribe. This page >>>>>>>> will also provide you with links to configuration examples by payload >>>>>>>> ‘type’. >>>>>>>> rich >>>>>>>> >>>>>>> >>>>>> -- > You received this message because you are subscribed to a topic in the > Google Groups "weewx-user" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/weewx-user/JOBL7t-m5M0/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/weewx-user/472f3a4b-26a8-462a-be77-5357fff6a989n%40googlegroups.com > <https://groups.google.com/d/msgid/weewx-user/472f3a4b-26a8-462a-be77-5357fff6a989n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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/CADh_orjSHg6dKQS52O4UFvkME373T_ah595AQeua7OzPPA1RKA%40mail.gmail.com.
