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.

Reply via email to