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.