Glad you have it working now.  What type of CO2 sensor are you using?

On Tuesday, November 30, 2021 at 5:38:43 PM UTC-5 [email protected] wrote:

> Good work Bob, well done getting it sorted :)
>
> Cheers
> Colin
>
> On Wed, 1 Dec 2021 at 09:21, [email protected] <[email protected]> wrote:
>
>> I'm very happy to say that I have three successful (hourly) readings of 
>> CO2 in the weewx db, thanks to everyone who has been patient and helpful 
>> with an 81-year-old retired librarian attempting to do something that was 
>> beyond his reach. 
>>                         [I just heard a cumulative sigh of relief circle 
>> the globe]
>> In the end, my main problem was adjusting the elements in weewx.conf with 
>> a combination of some of the last suggestions. I found that the sensor, 
>> once every 24 hours, sends out a different string of data with battery 
>> information which doesn't include any CO2 data. My next step is setting 
>> up a display of the data with a graph on my main page. 
>>
>> Many thanks again to everyone who helped solve my problem. I now have 
>> another window into the ills that plague our planet....
>>
>> Cheers,
>> Bob
>> http://grattans.org/wx
>>
>> On Tuesday, November 30, 2021 at 12:15:33 AM UTC-5 vince wrote:
>>
>>> I'd go with something like......
>>>
>>> [[topics]]
>>>     [[[mytopic]]]
>>>        [[[[CO2_Value_PPM]]]]
>>>        name = co2
>>>        contains total = false
>>>        conversion type = float
>>>        [[[[measurementID]]]]
>>>        ignore = true
>>>        [[[[report_telemetry]]]]
>>>        ignore = true
>>>
>>> Define the topic to subscribe to.
>>> Do not ignore the one element therein that you want.
>>> Ignore the elements you don't want.
>>>
>>> On Monday, November 29, 2021 at 6:20:28 PM UTC-8 [email protected] 
>>> wrote:
>>>
>>>>  *"Is it possible to have weewx ignore these elements and only process 
>>>> the  "CO2_Value_PPM": 419 ?"  *Yes, Rich provided the possible 
>>>> solution.
>>>>
>>>> * "I'm not sure what "float" does but mayve that's a problem...?"  *A 
>>>> float is a real number.  It is trying to convert  'report_telemetry' which 
>>>> is a string to a real number causing the failure.
>>>>
>>>> On Monday, November 29, 2021 at 9:05:54 PM UTC-5 [email protected] 
>>>> wrote:
>>>>
>>>>> Bob,
>>>>> You are correct. The extra data is causing the problem. Due to a poor 
>>>>> early design decision, MQTTSubscribe defaults to converting everything to 
>>>>> float. Obviously, 'report_telemetry' cannot be converted to float. The 
>>>>> following configuration should work. It ignores all but 'CO2_Value_PPM'.
>>>>>     [[topics]]
>>>>>         [[[mytopic]]]
>>>>>             ignore = true
>>>>>             [[[[CO2_Value_PPM]]]]
>>>>>                 name = co2
>>>>>                 ignore = false
>>>>> If that doesn't work, let me know and I can give a different 
>>>>> configuration.
>>>>> rich
>>>>>
>>>>> On Monday, 29 November 2021 at 19:53:46 UTC-5 [email protected] wrote:
>>>>>
>>>>>> Last post of the day, I promise!
>>>>>> I think the node-red flow is working the way it should and reporting 
>>>>>> the parsed message as in my last post.
>>>>>>
>>>>>> weewx.conf configuration (changed topic to "mytopic" in the flow and 
>>>>>> in weewx).
>>>>>>
>>>>>> [MQTTSubscribeService]
>>>>>>     # This section is for the MQTTSubscribe service.
>>>>>>     enable = true    # false
>>>>>>
>>>>>>     # The MQTT server.
>>>>>>     # Default is localhost.
>>>>>>     host = localhost
>>>>>>         port = 1883
>>>>>>         keepalive = 60
>>>>>>
>>>>>>         username = None #admin    #None
>>>>>>        password = None  #admin    #None
>>>>>>       binding = loop
>>>>>>
>>>>>>        [[message_callback]]
>>>>>>                 type = json    #REPLACE_ME
>>>>>>
>>>>>>     #  mytopic  is the topic to subscribe to.
>>>>>>     [[topics]]
>>>>>>        
>>>>>>         unit_system = US
>>>>>>
>>>>>>         [[[mytopic]]]
>>>>>>
>>>>>>         #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]]]
>>>>>>
>>>>>> *This is the weewx.log debug info:*
>>>>>>
>>>>>> Nov 29 19:20:58 n4mrv weewx[17143] DEBUG user.MQTTSubscribe: 
>>>>>> (Service) MessageCallbackProvider data-> incoming topic: mytopic, QOS: 
>>>>>> 0, 
>>>>>> retain: 0, payload: b'{\n    "CO2_Value_PPM": 419,\n    "measurementId": 
>>>>>> 4100,\n    "type": "report_telemetry"\n}'
>>>>>> Nov 29 19:20:58 n4mrv weewx[17143] ERROR user.MQTTSubscribe: 
>>>>>> (Service) MessageCallbackProvider on_message_json failed with <class 
>>>>>> 'user.MQTTSubscribe.ConversionError'> and reason Failed converting field 
>>>>>> type with value report_telemetry using 'lambda x: to_float(x)' with 
>>>>>> reason 
>>>>>> could not convert string to float: 'report_telemetry'..
>>>>>> Nov 29 19:20:58 n4mrv weewx[17143] ERROR user.MQTTSubscribe: 
>>>>>> (Service) **** MessageCallbackProvider Ignoring topic=mytopic and 
>>>>>> payload=b'{\n    "CO2_Value_PPM": 419,\n    "measurementId": 4100,\n   
>>>>>>  "type": "report_telemetry"\n}'
>>>>>> Nov 29 19:20:58 n4mrv weewx[17143] ERROR user.MQTTSubscribe: 
>>>>>> (Service) **** MessageCallbackProvider Traceback (most recent call 
>>>>>> last):#012  File "/home/weewx/bin/user/MQTTSubscribe.py", line 1263, in 
>>>>>> _convert_value#012    return conversion_func['compiled'](value)#012  
>>>>>> File 
>>>>>> "<string>", line 1, in <lambda>#012  File 
>>>>>> "/home/weewx/bin/weeutil/weeutil.py", line 1276, in to_float#012    
>>>>>> return 
>>>>>> float(x) if x is not None else None#012ValueError: could not convert 
>>>>>> string 
>>>>>> to float: 'report_telemetry'#012#012During handling of the above 
>>>>>> exception, 
>>>>>> another exception occurred:#012#012Traceback (most recent call 
>>>>>> last):#012 
>>>>>>  File "/home/weewx/bin/user/MQTTSubscribe.py", line 1427, in 
>>>>>> _on_message_json#012    (fieldname, value) = self._update_data(fields, 
>>>>>> fields_conversion_func, lookup_key, data_flattened[key], 
>>>>>> unit_system)#012 
>>>>>>  File "/home/weewx/bin/user/MQTTSubscribe.py", line 1230, in 
>>>>>> _update_data#012    value = self._convert_value(fields, 
>>>>>> default_field_conversion_func, orig_name, orig_value)#012  File 
>>>>>> "/home/weewx/bin/user/MQTTSubscribe.py", line 1268, in 
>>>>>> _convert_value#012   
>>>>>>  raise ConversionError("Failed converting field %s with value %s using 
>>>>>> '%s' 
>>>>>> with reason %s." \#012user.MQTTSubscribe.ConversionError: Failed 
>>>>>> converting 
>>>>>> field type with value report_telemetry using 'lambda x: to_float(x)' 
>>>>>> with 
>>>>>> reason could not convert string to float: 'report_telemetry'.
>>>>>> Nov 29 19:20:59 n4mrv weewx[17143] DEBUG user.purple: 
>>>>>> new_loop_packet(Event type: <class 'weewx.NEW_LOOP_PACKET'> | packet: 
>>>>>> {'dateTime': 1638231660, 'usUnits': 1, 'barometer': 30.091, 'inTemp': 
>>>>>> 79.0, 
>>>>>> 'inHumidity': 27.0, 'outTemp': 33.7, 'windSpeed': 0.0, 'windSpeed10': 
>>>>>> 0.0, 
>>>>>> 'windDir': 0, 'extraTemp1': 72.0, 'soilTemp1': 51.0, 'soilTemp2': 97.0, 
>>>>>> 'soilTemp4': 47.0, 'leafTemp1': 51.0, 'leafTemp2': 97.0, 'outHumidity': 
>>>>>> 74.0, 'rainRate': 0.0, 'UV': 0.0, 'radiation': 0.0, 'stormRain': 0.0, 
>>>>>> 'dayRain': 0.0, 'monthRain': 0.6, 'yearRain': 41.65, 'dayET': 0.051, 
>>>>>> 'monthET': 1.15, 'yearET': 24.95, 'leafWet4': 0.0, 'insideAlarm': 0, 
>>>>>> 'rainAlarm': 0, 'outsideAlarm1': 0, 'outsideAlarm2': 0, 'extraAlarm1': 
>>>>>> 0, 
>>>>>> 'extraAlarm2': 0, 'extraAlarm3': 0, 'extraAlarm4': 0, 'extraAlarm5': 0, 
>>>>>> 'extraAlarm6': 0, 'extraAlarm7': 0, 'extraAlarm8': 0, 'soilLeafAlarm1': 
>>>>>> 0, 
>>>>>> 'soilLeafAlarm2': 0, 'soilLeafAlarm3': 0, 'soilLeafAlarm4': 0, 
>>>>>> 'txBatteryStatus': 0, 'consBatteryVoltage': 4.72, 'forecastIcon': 6, 
>>>>>> 'forecastRule': 44, 'sunrise': 1638187560, 'sunset': 1638222720, 'rain': 
>>>>>> 0.0, 'windGust': 0.0, 'windGustDir': None})
>>>>>> Nov 29 19:20:59 n4mrv weewx[17143] DEBUG user.purple: 
>>>>>> new_loop_packet: self.cfg.concentrations: 
>>>>>> Concentrations(timestamp=1638231655, pm1_0=4.425, 
>>>>>> pm10_0=6.5649999999999995, pm2_5_cf_1=5.39, pm2_5_cf_1_b=7.39, 
>>>>>> current_temp_f=42, current_humidity=45)
>>>>>> Nov 29 19:20:59 n4mrv weewx[17143] DEBUG user.purple: Time of reading 
>>>>>> being inserted: 2021-11-29 19:20:55 EST (1638231655)
>>>>>> Nov 29 19:20:59 n4mrv weewx[17143] DEBUG user.purple: Inserted 
>>>>>> packet[pm1_0]: 4.425000 into packet.
>>>>>> Nov 29 19:20:59 n4mrv weewx[17143] DEBUG user.purple: Inserted 
>>>>>> packet[pm2_5]: 4.534270 into packet.
>>>>>> Nov 29 19:20:59 n4mrv weewx[17143] DEBUG user.purple: Inserted 
>>>>>> packet[pm10_0]: 6.565000 into packet.
>>>>>> Nov 29 19:20:59 n4mrv weewx[17143] DEBUG user.MQTTSubscribe: 
>>>>>> (Service) data-> final packet is 2021-11-29 19:21:00 EST (1638231660): 
>>>>>> barometer: 30.091, consBatteryVoltage: 4.72, dateTime: 1638231660, 
>>>>>> dayET: 
>>>>>> 0.051, dayRain: 0.0, extraAlarm1: 0, extraAlarm2: 0, extraAlarm3: 0, 
>>>>>> extraAlarm4: 0, extraAlarm5: 0, extraAlarm6: 0, extraAlarm7: 0, 
>>>>>> extraAlarm8: 0, extraTemp1: 72.0, forecastIcon: 6, forecastRule: 44, 
>>>>>> inHumidity: 27.0, insideAlarm: 0, inTemp: 79.0, leafTemp1: 51.0, 
>>>>>> leafTemp2: 
>>>>>> 97.0, leafWet4: 0.0, monthET: 1.15, monthRain: 0.6, outHumidity: 74.0, 
>>>>>> outsideAlarm1: 0, outsideAlarm2: 0, outTemp: 33.7, pm1_0: 4.425, pm10_0: 
>>>>>> 6.5649999999999995, pm2_5: 4.53427, pm2_5_aqi: 18.75, pm2_5_aqi_color: 
>>>>>> 32768, radiation: 0.0, rain: 0.0, rainAlarm: 0, rainRate: 0.0, 
>>>>>> soilLeafAlarm1: 0, soilLeafAlarm2: 0, soilLeafAlarm3: 0, soilLeafAlarm4: 
>>>>>> 0, 
>>>>>> soilTemp1: 51.0, soilTemp2: 97.0, soilTemp4: 47.0, stormRain: 0.0, 
>>>>>> sunrise: 
>>>>>> 1638187560, sunset: 1638222720, txBatteryStatus: 0, usUnits: 1, UV: 0.0, 
>>>>>> windDir: 0, windGust: 0.0, windGustDir: None, windSpeed: 0.0, 
>>>>>> windSpeed10: 
>>>>>> 0.0, yearET: 24.95, yearRain: 41.65
>>>>>>
>>>>>> It seems that there is something wrong with the format coming into 
>>>>>> weewx from the flow. It may be confused by the other two 
>>>>>> elements "measurementId": 4100, and "type": "report_telemetry" which 
>>>>>> cause 
>>>>>> the whole thing to fail. Is it possible to have weewx ignore these 
>>>>>> elements 
>>>>>> and only process the  "CO2_Value_PPM": 419 ? I'm not sure what "float" 
>>>>>> does 
>>>>>> but mayve that's a problem...?
>>>>>> Thanks again and I'll have another look tomorrow.
>>>>>> Cheers,
>>>>>> Bob
>>>>>> On Monday, November 29, 2021 at 5:38:37 PM UTC-5 vince wrote:
>>>>>>
>>>>>>> On Monday, November 29, 2021 at 2:05:05 PM UTC-8 [email protected] 
>>>>>>> wrote:
>>>>>>>
>>>>>>>> I removed the function and it looks better. Last debug going into 
>>>>>>>> mqtt_publish:
>>>>>>>>
>>>>>>>> 11/29/2021, 4:17:17 PMnode: mqtt_payload 
>>>>>>>> <http://localhost:1880/#>application/18/device/2cf7f12122500013/rx 
>>>>>>>> : msg.payload : string[87]
>>>>>>>> string[87]
>>>>>>>> { "CO2_Value_PPM": 399, "measurementId": 4100, "type": 
>>>>>>>> "report_telemetry" }
>>>>>>>> <http://localhost:1880/#>
>>>>>>>>
>>>>>>>> However, weewx still doesn't seem to like it. I'll try changing 
>>>>>>>> topics to "mytopic" and see what happens.
>>>>>>>>
>>>>>>>
>>>>>>> Sigh - just set the topic in weewx.conf to whatever you are 
>>>>>>> publishing via node-red, and reset weewx.
>>>>>>> Until you do that, it's not going to work.
>>>>>>>
>>>>>>> It does not matter what topic you publish to, just keep your naming 
>>>>>>> consistent and theoretically relevant so you can figure it out a year 
>>>>>>> from 
>>>>>>> now when you want to decipher what the heck you did :-)
>>>>>>>
>>>>>>> -- 
>> 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/a777ce3b-7e97-411c-b800-093641163d6en%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/weewx-user/a777ce3b-7e97-411c-b800-093641163d6en%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/00200f1c-9a9d-4559-98c8-746ec612e7b3n%40googlegroups.com.

Reply via email to