Bob,
You are right that the topic that you have configured for MQTTSubscribe is
still getting extra data. This is what I pulled from the log you just posted
{
"applicationID": "18",
"applicationName": "CO2app",
"deviceName": "CO2device",
"devEUI": "2cf7f12122500013",
"txInfo": {
"frequency": 904900000,
"dr": 0
},
"adr": true,
"fCnt": 247,
"fPort": 2,
"data": "AQQQICoGAPuQ",
"object": {
"err": 0,
"messages": [
{
"CO2_Value_PPM": 404,
"measurementId": 4100,
"type": "report_telemetry"
}
],
"payload": "010410202A0600FB90",
"valid": true
}
}
I'm not going to be any help on the publishing end, so I'll leave that to
the experts.
Once you get that straightened out, if you have any problems with
MQTTSubscribe I'll be available.
rich
On Monday, 29 November 2021 at 11:51:30 UTC-5 [email protected] wrote:
> Storm et al.,
> I have attempted to setup my node-red and weewx.conf according to your
> email. I'm still getting errors which I have attached. My weewx.conf file:
>
> ##############################################################################
> # Options for 'MQTTSubscribeService'
> [MQTTSubscribeService]
> enable = true # false
> # The MQTT server.
>
> host = 192.168.1.10 [this is the LoRa server, N-R is running on the
> weewx machine 192.168.1.119. Should N-R be on the LoRa server?]
> port = 1883
> keepalive = 60
> username = None #admin #None
> password = None #admin #None
> binding = loop
>
> [[message_callback]]
>
> type = json #REPLACE_ME
>
> # The application/18/device/2cf7f12122500013/rx topics to subscribe
> to.
> [[topics]]
> unit_system = US
> [[[application/18/device/2cf7f12122500013/rx]]]
>
> #data sent from RAK7244
> #ignore = true
> [[[[CO2_Value_PPM]]]]
> #weewx db field name
> name = co2
> ignore = false
> contains total = false
> conversion type = float
> #units = ppm
> #[[[SECOND/REPLACE_ME]]]
>
> The function in N-R seems to be putting out the correct data
> "CO2_Value_PPM: 404" but something isn't connecting properly.
> Even though N-R (on weewx machine) says it's sending the parsed data, it
> seems to getting the whole data set. Should I be running
> N-R on the LoRa server where the data is coming from?
> Sorry for the naive questions but I'm really not a programmer (but
> learning!)
> Much appreciated for the help from everyone!
> Cheers,
> Bob
>
>
> On Sunday, November 28, 2021 at 7:09:31 PM UTC-5 [email protected] wrote:
>
>> 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/2e1d4fa0-b77d-41de-9893-e8bad4274301n%40googlegroups.com.