OK, assuming (and you know what happens when one assumes) that your payload 
is:
{
   "CO2_Value_PPM": 430
}

And yout topic is:
application/18/device/2cf7f12122500013/rx

Then this should work:
    [[topics]]
        [[[application/18/device/2cf7f12122500013/rx]]]
    [[[[CO2_Value_PPM]]]]
        name = co2

If it doesn't, post the debug log.
rich


On Sunday, 28 November 2021 at 15:50:53 UTC-5 [email protected] wrote:

> Thanks for the replies. Here is where I am.
>
> bg@n4mrv:~$ mosquitto_sub -t application/18/device/2cf7f12122500013/rx -h 
> 192.168.1.10 | jq .
> {
>   "applicationID": "18",
>   "applicationName": "CO2app",
>   "deviceName": "CO2device",
>   "devEUI": "2cf7f12122500013",
>   "txInfo": {
>     "frequency": 905300000,
>     "dr": 0
>   },
>   "adr": true,
>   "fCnt": 226,
>   "fPort": 2,
>   "data": "AQQQsI8GAF5I",
>   "object": {
>     "err": 0,
>     "messages": [
>       {
>         "CO2_Value_PPM": 430,
>         "measurementId": 4100,
>         "type": "report_telemetry"
>       }
>     ],
>     "payload": "010410B08F06005E48",
>     "valid": true
>   }
> }
>
>
> I was using node-red but thought it was conflicting with something else on 
> Mosquitto-subscribe-weewx so I turned it off. I wasn't sure how to connect 
> weewx to the output of n-r.
>
> When setting the CO2 sensor up with emoncms (another server) a kind and 
> knowledgeable soul gave me the following code for a function in n-r:
> ```
> // Test to see if CO2 measurement is present in uplink // Assumption is 
> msg.payload.object.messages[] array is always present // if not then we 
> need to test in different way // why do we do this to ensure we don't send 
> rubbish to emoncms if ("CO2_Value_PPM" in msg.payload.object.messages[0]){ 
> msg = 
> {payload:{"CO2_Value_PPM":msg.payload.object.messages[0].CO2_Value_PPM}}; 
> return msg; }
> ```
> This cut down the extra data and produced something like:  "CO2_Value_PPM: 
> 430" other data was omitted.
> You may have an idea about connecting n-r.
> Cheers,
> Bob
>
> On Sunday, November 28, 2021 at 2:21:01 PM UTC-5 [email protected] wrote:
>
>> From the log extract, this what I see as the payload
>>
>> {
>>     "applicationID": "18",
>>     "applicationName": "CO2app",
>>     "deviceName": "CO2device",
>>     "devEUI": "2cf7f12122500013",
>>     "txInfo": {
>>         "frequency": 903900000,
>>         "dr": 0
>>     },
>>     "adr": true,
>>     "fCnt": 220,
>>     "fPort": 2,
>>     "data": "AQQQaJsGAAqz",
>>     "object": {
>>         "err": 0,
>>         "messages": [
>>             {
>>                 "CO2_Value_PPM": 433,
>>                 "measurementId": 4100,
>>                 "type": "report_telemetry"
>>             }
>>         ],
>>         "payload": "010410689B06000AB3",
>>         "valid": true
>>     }
>> }
>>
>> On Sunday, 28 November 2021 at 14:07:59 UTC-5 vince wrote:
>>
>>> Agree.  Pre-process it to a format that works with weewx.
>>>
>>> Again, can you give us a vanilla "mosquitto_sub -t whatever -h the_host" 
>>> output so we can see what you have a little more clearly ?   Piping it to " 
>>> | 
>>>  jq . " sometimes helps show the nesting and structure a little better 
>>> for the eyes.
>>>
>>> On Sunday, November 28, 2021 at 10:51:17 AM UTC-8 [email protected] 
>>> wrote:
>>>
>>>> Since you are using Node Red, a possible solution is to use a Change 
>>>> Node and delete the payload that you don't want to include in weewx.
>>>>
>>>> On Sunday, November 28, 2021 at 1:41:56 PM UTC-5 [email protected] 
>>>> wrote:
>>>>
>>>>> I looked more closely at the payload format and I don't think that 
>>>>> format is currently supported. specifically the 'nested array'..
>>>>>
>>>>> "object":{"err":0,"messages":[{"CO2_Value_PPM":433,"measurementId":4100,"type":"report_telemetry"}]
>>>>> Busy time of the year, so not sure when I'll have time to delve into a 
>>>>> solution.
>>>>> rich
>>>>> On Sunday, 28 November 2021 at 12:22:22 UTC-5 [email protected] wrote:
>>>>>
>>>>>>
>>>>>> Bob,
>>>>>> Since you have a lot of fields that you want to ignore, try setting 
>>>>>> the ignore flag to true at the 'topic' level. Also I don’t think you 
>>>>>> want 
>>>>>> to set contains_total.  So you would end up with something like this, 
>>>>>>     [[topics]]
>>>>>>         [[[application/18/device/2cf7f12122500013/rx]]]
>>>>>>             ignore = true
>>>>>>     [[[[CO2_Value_PPM]]]]
>>>>>>         name = co2
>>>>>>                         ignore = false
>>>>>>
>>>>>> Since the data is published so infrequently, once you get the basic 
>>>>>> configuration working, you might want to look into the expires_after 
>>>>>> option. This will cache the value between publications. For additional 
>>>>>> information see, 
>>>>>> https://github.com/bellrichm/WeeWX-MQTTSubscribe/wiki/Configuring-additional-options#expires_after
>>>>>>
>>>>>> rich
>>>>>>
>>>>>> On Sunday, 28 November 2021 at 11:21:43 UTC-5 [email protected] wrote:
>>>>>>
>>>>>>> Thanks for coming back so soon with help Storm and Vince.
>>>>>>> I am attaching three things in a .txt file rather than pasting in as 
>>>>>>> the format seems messy and I'm not sure how to make it easier to read.
>>>>>>>
>>>>>>> 1.  My modified section of weewx.conf . Among other things, there 
>>>>>>> seems to be a problem with float.
>>>>>>>
>>>>>>> 2.  The data sent from the LoRa server when I subscribe 
>>>>>>> to applications/18/devices/2cf7f12122500013/rx  (using MQTT-explorer). 
>>>>>>> Lots 
>>>>>>> of unneeded things  but it contains the CO2_Value_PPM data.
>>>>>>>
>>>>>>> 3.  A listing of weewx.log in debug mode showing the problems (I 
>>>>>>> hope). The data seems to be getting there but is not being parsed out 
>>>>>>> for 
>>>>>>> what I need.
>>>>>>>
>>>>>>> Hopefully this will give you an idea of what's going on.  Thanks 
>>>>>>> again for your help.
>>>>>>> Bob
>>>>>>>
>>>>>>> On Saturday, November 27, 2021 at 5:36:51 PM UTC-5 vince wrote:
>>>>>>>
>>>>>>>> My example:
>>>>>>>>
>>>>>>>> [MQTTSubscribeService]
>>>>>>>>     enable = True
>>>>>>>>     host = 192.168.1.171
>>>>>>>>     port = 1883
>>>>>>>>     keepalive = 60
>>>>>>>>     username = None
>>>>>>>>     password = None
>>>>>>>>     binding = loop
>>>>>>>>     [[message_callback]]
>>>>>>>>         type = json
>>>>>>>>     [[topics]]
>>>>>>>>         unit_system = US
>>>>>>>>         #
>>>>>>>>         #--- these are emitted every 5 minutes ---
>>>>>>>>         # mosquitto_sub -t BaseballRoomConditions -h nuc2
>>>>>>>>         #     {"dateTime": 1621715702, "extraTemp1": 63.16, 
>>>>>>>> "extraTemp2": 63.5, "pi": 100.28}
>>>>>>>>         #
>>>>>>>>         [[[BaseballRoomConditions]]]    <=== the topic to subscribe 
>>>>>>>> to
>>>>>>>>             [[[[dateTime]]]]            <=== the element in that 
>>>>>>>> topic
>>>>>>>>                 ignore = True           <=== optionally ignore this 
>>>>>>>> item within the topic
>>>>>>>>             [[[[extraTemp1]]]]
>>>>>>>>                 name = extraTemp1       <=== db element to map the 
>>>>>>>> item to
>>>>>>>>                 units = degree_F        <=== its units
>>>>>>>>             [[[[extraTemp2]]]]
>>>>>>>>                 name = extraTemp2
>>>>>>>>                 units = degree_F
>>>>>>>>             [[[[pi]]]]
>>>>>>>>                 ignore = True
>>>>>>>>
>>>>>>>>
>>>>>>>> On Saturday, November 27, 2021 at 2:26:46 PM UTC-8 
>>>>>>>> [email protected] wrote:
>>>>>>>>
>>>>>>>>>  I believe you need to add the topic you subscribing to in 
>>>>>>>>> [[[first/topic]]]. 
>>>>>>>>>
>>>>>>>>> Example:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ##########################################################################################
>>>>>>>>>   #              Acurite-5n1 Sensors
>>>>>>>>>   #              SDR # 1 
>>>>>>>>>   #              433 MHz
>>>>>>>>>   
>>>>>>>>> ##########################################################################################
>>>>>>>>>   
>>>>>>>>>      
>>>>>>>>>
>>>>>>>>>         
>>>>>>>>>         [[[Acurite-Tower/8785/]]]
>>>>>>>>>            
>>>>>>>>>            [[[[temperature_F]]]]
>>>>>>>>>             name = extraTemp7
>>>>>>>>>             ignore = False
>>>>>>>>>             contains_total = False
>>>>>>>>>             conversion_type = float
>>>>>>>>>             units = degree_F
>>>>>>>>>
>>>>>>>>> On Saturday, November 27, 2021 at 5:15:24 PM UTC-5 [email protected] 
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hello,
>>>>>>>>>> I'm running a RAK7244 LoRaWAN server/gateway on a local network 
>>>>>>>>>> to which my weewx server is connected. Weeex is the latest stable on 
>>>>>>>>>> Ubuntu 
>>>>>>>>>> with extended db.
>>>>>>>>>>
>>>>>>>>>> A CO2 sensor is sending data to the LoRa server. I have node-red 
>>>>>>>>>> on my weewx server with a flow  connecting to the RAK7244. I want to 
>>>>>>>>>> have 
>>>>>>>>>> the CO2 data put into the co2 slot that is available on the weewx db.
>>>>>>>>>>
>>>>>>>>>> I have installed the weewx extension Mosquitto-subscribe and 
>>>>>>>>>> attempted to configure weewx.conf as:
>>>>>>>>>> #################################################
>>>>>>>>>> # 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 = true    # false
>>>>>>>>>>     
>>>>>>>>>>     # The MQTT server.
>>>>>>>>>>     # Default is localhost.
>>>>>>>>>>     host = localhost  #192.168.1.10    #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    #REPLACE_ME
>>>>>>>>>>     
>>>>>>>>>>     # The application/18/device/2cf7f12122500013/rx  topics to 
>>>>>>>>>> subscribe to.
>>>>>>>>>>     [[topics]]
>>>>>>>>>>         # Units for MQTT payloads without unit value.
>>>>>>>>>>         # Valid values: US, METRIC, METRICWX
>>>>>>>>>>         # Default is: US
>>>>>>>>>>         unit_system = US
>>>>>>>>>>         
>>>>>>>>>>         [[[first/topic]]]
>>>>>>>>>>
>>>>>>>>>> #value sent from RAK7244
>>>>>>>>>>
>>>>>>>>>> [[[[CO2_Value_PPM]]]]
>>>>>>>>>>         #weewx db name
>>>>>>>>>> name = co2
>>>>>>>>>> ignore = false
>>>>>>>>>>                 contains total = True
>>>>>>>>>> conversion type = float
>>>>>>>>>>                 
>>>>>>>>>>         #[[[SECOND/REPLACE_ME]]]
>>>>>>>>>> ################################################
>>>>>>>>>>
>>>>>>>>>> The message (data) every 60 minutes coming from the node-red 
>>>>>>>>>> function is:
>>>>>>>>>>
>>>>>>>>>> {"CO2_Value_PPM":401} 
>>>>>>>>>>
>>>>>>>>>> I may have too many things going here but, as I'm not a 
>>>>>>>>>> programmer, I'm stuck trying to figure out the problem. The node-red 
>>>>>>>>>> flow 
>>>>>>>>>> is connected on both ends (RAK7244-->weewx) but I don't see any data 
>>>>>>>>>> reaching the db.
>>>>>>>>>>
>>>>>>>>>> Thanks in advance if anyone can help on this.
>>>>>>>>>> Cheers'
>>>>>>>>>> Bob
>>>>>>>>>>
>>>>>>>>>>

-- 
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/ff4478fc-2c91-495d-97f9-a13b8d626e03n%40googlegroups.com.

Reply via email to