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 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/d27b36c5-b67e-48d0-b30d-0a067f6380e3n%40googlegroups.com.

Reply via email to