See attached.

On Sunday, October 11, 2020 at 5:45:43 PM UTC-6 bell...@gmail.com wrote:

> Sorry, I didn’t get the config quite right. I don’t subscribe to 
> ‘individual’ topics, so this is untested, but should work.  If it doesn’t, 
> I’ll spin up a debug environment to figure it out.
> [[topics]]
>   Keep the current settings, unit_system, ignore_start_time, 
> ignore_end_time, etc.
>
>   # The next option will take the tail end of the topic and use it as the 
> MQTT field name
>   # So, if the topic is snow/snowDepth, the MQTT field name is snowDepth
>   # Only valid when the payload is type ‘individual’
>   use_topic_as_fieldname = true
>   [[[snow/snowDepth]]]
>     # Because snowDepth is the WeeWX name and the defaults work for you, 
> nothing else is needed.
>    [[[snow/snowRate]]]
>      # Not sure, but the defaults should probably work here...
>
> Again, if this doesn’t work; post the log and I’ll spin up a debug 
> environment to figure out what is going on.  
> rich
> On Sunday, 11 October 2020 at 16:43:58 UTC-4 timothye...@gmail.com wrote:
>
>> After moving the ignore lines, I am happy to report that the time problem 
>> is solved; that is, it is no longer rejecting the topic. However, it is 
>> still not making it into the database. I think this is because it is not 
>> converting from snow/snowDepth to snowDepth. See attached syslog extract 
>> and weewx.conf for section where topic is configured. Is there a mistake in 
>> this topic configuration?
>>
>> On Sunday, October 11, 2020 at 11:26:27 AM UTC-6 bell...@gmail.com wrote:
>>
>>> I've run both extensions off and on, so I don't think there is any 
>>> conflict. The root-root cause is time skew between your pi and weather 
>>> station and MQTTSubscribe being a bit overly aggressive on its quality 
>>> control. Setting ignore_start_time and ignore_end_time should turn this off 
>>> completely. Since the incoming data has no dateTime, this seems the most 
>>> logical approach.
>>>
>>> I noticed in the latest attached config, those options are in the wrong 
>>> place. Move them under [[topics]] after 
>>>   unit_system = US
>>>   ignore_start_time = true 
>>>   ignore_end_time = true
>>> Also, Ignore_end_time has a capital "I".
>>> If it is still not working, please attach the log from startup. That way 
>>> we can see how the options are being processed.
>>> I think we are real close. -rich
>>>
>>> On Sunday, 11 October 2020 at 12:20:32 UTC-4 timothye...@gmail.com 
>>> wrote:
>>>
>>>> I used wee_extension to uninstall the old version then install the new. 
>>>> I used the configuration as shown in the attached file. When I publish to 
>>>> a 
>>>> topic, Topic Manager still ignores it as outside of interval (syslog 
>>>> extract in attached file).
>>>>
>>>> I'm thinking that MQTTSubscribe is not compatible with the mqtt 
>>>> extension. I note that MQTTSubscribe is publishing records of data that it 
>>>> is not subscribed to, but which are published by mqtt. Have you tried 
>>>> running MQTTSubscribe and mqtt together?
>>>>
>>>> On Saturday, October 10, 2020 at 5:10:34 PM UTC-6 bell...@gmail.com 
>>>> wrote:
>>>>
>>>>> I created a pre-release with the fix. It is here, 
>>>>> https://github.com/bellrichm/WeeWX-MQTTSubscribe/releases/tag/v1.6.2-rc03
>>>>> Hopefully this is it. 
>>>>> rich
>>>>> On Saturday, 10 October 2020 at 10:15:29 UTC-4 timothye...@gmail.com 
>>>>> wrote:
>>>>>
>>>>>> OK, thanks  for your help.
>>>>>>
>>>>>> On Saturday, October 10, 2020 at 7:22:18 AM UTC-6 bell...@gmail.com 
>>>>>> wrote:
>>>>>>
>>>>>>> Thanks for the log. Looks like there is a bug with the 
>>>>>>> ignore_start_time option.  Fix looks easy, I just need to make sure 
>>>>>>> there 
>>>>>>> are no side effects.
>>>>>>> I’ll let you know when the fix is available. 
>>>>>>> - rich
>>>>>>>
>>>>>>> On Friday, 9 October 2020 at 22:55:11 UTC-4 timothye...@gmail.com 
>>>>>>> wrote:
>>>>>>>
>>>>>>>> I added those this way:
>>>>>>>>
>>>>>>>> # The topics to subscribe to.
>>>>>>>>     [[topics]]
>>>>>>>>         # Units for MQTT payloads without unit value.
>>>>>>>>         # Valid values: US, METRIC, METRICWX
>>>>>>>>         # Default is: US
>>>>>>>>         unit_system = US
>>>>>>>> ignore_start_time = true
>>>>>>>> Ignore_end_time = true
>>>>>>>>
>>>>>>>> but I still get this:
>>>>>>>>
>>>>>>>> Oct  9 20:38:29 raspberrypi weewx[30461] INFO weewx.restx: MQTT: 
>>>>>>>> Published record 2020-10-09 20:38:47 MDT (1602297527)
>>>>>>>> Oct  9 20:38:30 raspberrypi weewx[30461] DEBUG user.MQTTSubscribe: 
>>>>>>>> (Service) MessageCallbackProvider data-> incoming topic: 
>>>>>>>> snow/snowDepth, 
>>>>>>>> QOS: 0, retain: 0, payload: b'7'
>>>>>>>> Oct  9 20:38:30 raspberrypi weewx[30461] DEBUG user.MQTTSubscribe: 
>>>>>>>> (Service) TopicManager data-> incoming snow/snowDepth: snow/snowDepth: 
>>>>>>>> 7.0
>>>>>>>> Oct  9 20:38:31 raspberrypi weewx[30461] DEBUG user.MQTTSubscribe: 
>>>>>>>> (Service) TopicManager data-> outgoing snow/snowDepth: dateTime: 
>>>>>>>> 1602297510.2596123, snow/snowDepth: 7.0, usUnits: 1
>>>>>>>> Oct  9 20:38:31 raspberrypi weewx[30461] INFO user.MQTTSubscribe: 
>>>>>>>> (Service) TopicManager ignoring record outside of interval 
>>>>>>>> 1602297510.259612 1602297529.000000 1602297510.259612 dateTime: 
>>>>>>>> 1602297510.2596123, snow/snowDepth: 7.0, usUnits: 1
>>>>>>>> Oct  9 20:38:31 raspberrypi weewx[30461] DEBUG user.MQTTSubscribe: 
>>>>>>>> (Service) TopicManager data-> outgoing accumulated snow/snowDepth: 
>>>>>>>> Oct  9 20:38:31 raspberrypi weewx[30461] DEBUG user.MQTTSubscribe: 
>>>>>>>> (Service) data-> final packet is 2020-10-09 20:38:49 MDT (1602297529): 
>>>>>>>> avg_distance: 0, dateTime: 1602297529, lightning_strikes: 0, 
>>>>>>>> outHumidity: 
>>>>>>>> 23, outTemp: 13.34, outTempBatteryStatus: 2.919, pressure: 744.7, 
>>>>>>>> usUnits: 
>>>>>>>> 17
>>>>>>>> Oct  9 20:38:31 raspberrypi weewx[30461] INFO weewx.restx: MQTT: 
>>>>>>>> Published record 2020-10-09 20:38:49 MDT (1602297529)
>>>>>>>> Oct  9 20:38:32 raspberrypi weewx[30461] DEBUG user.MQTTSubscribe: 
>>>>>>>> (Service) data-> final packet is 2020-10-09 20:38:50 MDT (1602297530): 
>>>>>>>> dateTime: 1602297530, usUnits: 17, windDir: 336, windSpeed: 0.72
>>>>>>>> Oct  9 20:38:32 raspberrypi weewx[30461] INFO weewx.restx: MQTT: 
>>>>>>>> Published record 2020-10-09 20:38:50 MDT (1602297530)
>>>>>>>>
>>>>>>>> On Friday, October 9, 2020 at 5:13:41 PM UTC-6 bell...@gmail.com 
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Ah, crap.  This has to do with an attempt to quality control data 
>>>>>>>>> by time. Next major release, I really need to rework it...
>>>>>>>>> Since you have individual payloads (no timestamp from the origin) 
>>>>>>>>> add the following under [[topics]]
>>>>>>>>> ignore_start_time = true
>>>>>>>>> Ignore_end_time = true
>>>>>>>>>
>>>>>>>>> We are getting close.  Sorry for the pain.
>>>>>>>>> rich
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Friday, 9 October 2020 at 18:36:27 UTC-4 timothye...@gmail.com 
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> syslog extract posted. weewx is loading the service, though it 
>>>>>>>>>> also seems to subscribe to the data which MQTT is publishing from 
>>>>>>>>>> weewx. 
>>>>>>>>>> the second section shows that subscribe receives the data I 
>>>>>>>>>> published from 
>>>>>>>>>> the terminal (6 inches of snow), but rejects it as outside of 
>>>>>>>>>> interval. Is 
>>>>>>>>>> there an entry to be made somewhere to sync incoming data? I note 
>>>>>>>>>> that 
>>>>>>>>>> another extension I use (GW1000) needed dateTime = datetime in a 
>>>>>>>>>> field map 
>>>>>>>>>> to work properly.
>>>>>>>>>>
>>>>>>>>>> On Friday, October 9, 2020 at 2:54:56 PM UTC-6 bell...@gmail.com 
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> That could be simplified, but looks like it should work. The 
>>>>>>>>>>> quickest and easiest way to proceed is to set debug to 1, restart 
>>>>>>>>>>> WeeWX, 
>>>>>>>>>>> let it run through an archive cycle during which you published to 
>>>>>>>>>>> that 
>>>>>>>>>>> topic and then post the log.
>>>>>>>>>>>
>>>>>>>>>>> Re: snowBatteryStatus - The units config option is only needed 
>>>>>>>>>>> if the field units do not match the units expected by the 
>>>>>>>>>>> unit_system. So 
>>>>>>>>>>> eliminating will at least get the data in the DB. 
>>>>>>>>>>> Note, units is not needed for snowDepth because inches is the 
>>>>>>>>>>> Units for that field in the US unit_system.
>>>>>>>>>>> rich
>>>>>>>>>>> On Friday, 9 October 2020 at 14:23:01 UTC-4 
>>>>>>>>>>> timothye...@gmail.com wrote:
>>>>>>>>>>>
>>>>>>>>>>>> I've attached a syslog extract showing where weewx crashed. it 
>>>>>>>>>>>> seems that "volt" is an invalid unit for my topic. i don't know 
>>>>>>>>>>>> why but for 
>>>>>>>>>>>> now I commented out that topic and its parameters. Now, weewx will 
>>>>>>>>>>>> continue 
>>>>>>>>>>>> running when subscribe is enabled, but subscribed topics are not 
>>>>>>>>>>>> being 
>>>>>>>>>>>> posted to the database. Here is the first topic in weewx.conf:
>>>>>>>>>>>>
>>>>>>>>>>>>         # The first topic
>>>>>>>>>>>> # MQTT Topic
>>>>>>>>>>>> [[[snow/snowDepth]]]
>>>>>>>>>>>> # MQTT name
>>>>>>>>>>>> [[[[snowDepth]]]]
>>>>>>>>>>>> # weewx name
>>>>>>>>>>>> name = snowDepth
>>>>>>>>>>>> ignore = false
>>>>>>>>>>>> contains_total = false
>>>>>>>>>>>> conversion_type = float
>>>>>>>>>>>> units = inch
>>>>>>>>>>>>
>>>>>>>>>>>> I used a terminal to publish "6" to snow/snowDepth on 
>>>>>>>>>>>> Mosquitto. Another terminal window command to subscribe to 
>>>>>>>>>>>> snow/snowDepth 
>>>>>>>>>>>> received the "6" but the database entries for snowDepth are null. 
>>>>>>>>>>>> Is this 
>>>>>>>>>>>> configuration of topics still not correct. Thanks.
>>>>>>>>>>>> On Tuesday, October 6, 2020 at 1:43:31 PM UTC-6 Timothy 
>>>>>>>>>>>> Buchanan wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks, Rich. I'll try it when I get back. I'll be in our 
>>>>>>>>>>>>> second home for a few days: going to the gun range and the 
>>>>>>>>>>>>> clothing-optional resort (not at the same time!).
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Tuesday, October 6, 2020 at 1:19:26 PM UTC-6 
>>>>>>>>>>>>> bell...@gmail.com wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> So, the [[[first/topic]]] are meant to be replaced with the 
>>>>>>>>>>>>>> actual topic. So it would be something like this
>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>> [[Topics]]
>>>>>>>>>>>>>>   [[[topic name that snowDepth is published on]]]
>>>>>>>>>>>>>>     [[[[topic name that snowDepth is published on]]]]
>>>>>>>>>>>>>>       name = snowDepth
>>>>>>>>>>>>>>   [[[topic name that snowRate is published on]]]
>>>>>>>>>>>>>>     [[[[topic name that snowRate is published on]]]]
>>>>>>>>>>>>>>       name = snowRate
>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>> The duplication is an artifact of dealing with json and 
>>>>>>>>>>>>>> keyword payloads. The ```use_topic_as_fieldname``` option 
>>>>>>>>>>>>>> can be used to make the config a bit prettier.
>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>> [[Topics]]
>>>>>>>>>>>>>>   use_topic_as_fieldname = true
>>>>>>>>>>>>>>   [[[topic name that snowDepth is published on]]]
>>>>>>>>>>>>>>     name = snowDepth
>>>>>>>>>>>>>>   [[[topic name that snowRate is published on]]]
>>>>>>>>>>>>>>     name = snowRate
>>>>>>>>>>>>>> ```
>>>>>>>>>>>>>> Note, if snowDepth is actually published on the topic 
>>>>>>>>>>>>>> snowDepth, the ```name``` option can be left off.
>>>>>>>>>>>>>> I don’t think that you want to set contains_total=true for 
>>>>>>>>>>>>>> snowDepth. This is used when the field contains a total and it 
>>>>>>>>>>>>>> needs to be 
>>>>>>>>>>>>>> converted into an increment for WeeWX.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I’ll work on clarifying the wiki.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> With that said, it shouldn’t have broken WeeWX. If you are up 
>>>>>>>>>>>>>> for it, before changing the config, setting debug=1, restarting 
>>>>>>>>>>>>>> WeeWX for a 
>>>>>>>>>>>>>> couple of archive intervals and attaching the log would be 
>>>>>>>>>>>>>> appreciated .
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> rich
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Tuesday, 6 October 2020 at 13:28:34 UTC-4 
>>>>>>>>>>>>>> timothye...@gmail.com wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Attached is the extension material that I put into 
>>>>>>>>>>>>>>> weewx.conf. But when I set enable = true, weewx stops archiving 
>>>>>>>>>>>>>>> data. Is 
>>>>>>>>>>>>>>> there an error in this configuration, or could subscribe be 
>>>>>>>>>>>>>>> incompatible 
>>>>>>>>>>>>>>> with another service? I'm using the Weatherflowudp driver with 
>>>>>>>>>>>>>>> mqtt and 
>>>>>>>>>>>>>>> GW1000 extensions.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Tuesday, October 6, 2020 at 9:17:07 AM UTC-6 Timothy 
>>>>>>>>>>>>>>> Buchanan wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thanks, Rich, I should be able to edit weewx.conf based on 
>>>>>>>>>>>>>>>> the example at the bottom of that page.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I am using an ESP8266 board with an ultrasonic sensor and a 
>>>>>>>>>>>>>>>> temperature sensor (to calibrate the speed of sound), and 
>>>>>>>>>>>>>>>> programming in 
>>>>>>>>>>>>>>>> the Arduino IDE. I'll 3D print a case and mount it above my 
>>>>>>>>>>>>>>>> deck. The 
>>>>>>>>>>>>>>>> materials cost about $15.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I'd be happy to post the code here, under a new topic, once 
>>>>>>>>>>>>>>>> I get it working.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Timothy
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Tuesday, October 6, 2020 at 8:53:45 AM UTC-6 
>>>>>>>>>>>>>>>> storm...@gmail.com wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> What type of sensor are you using for measuring snow depth?
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>

-- 
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 weewx-user+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/f1f286dd-9d27-4da8-821d-b015bc609aa6n%40googlegroups.com.
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__: Caught 
unrecoverable exception:
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****  
MQTTSubscribe: use_topic_as_fieldname is mutually exclusive with 
[[[[fieldname]]]] configuring
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****  Traceback 
(most recent call last):
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****    File 
"/usr/share/weewx/weewxd", line 148, in main
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****      
engine = weewx.engine.StdEngine(config_dict)
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****    File 
"/usr/share/weewx/weewx/engine.py", line 75, in __init__
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****      
self.loadServices(config_dict)
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****    File 
"/usr/share/weewx/weewx/engine.py", line 138, in loadServices
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****      obj = 
weeutil.weeutil.get_object(svc)(self,config_dict)
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****    File 
"/usr/share/weewx/user/MQTTSubscribe.py", line 1528, in __init__
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****      
self.subscriber = MQTTSubscriber(service_dict, self.logger)
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****    File 
"/usr/share/weewx/user/MQTTSubscribe.py", line 1305, in __init__
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****      
self.manager = TopicManager(topics_dict, self.logger)
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****    File 
"/usr/share/weewx/user/MQTTSubscribe.py", line 679, in __init__
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****      raise 
ValueError("MQTTSubscribe: use_topic_as_fieldname is mutually exclusive with 
[[[[fieldname]]]] configuring")
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****  
ValueError: MQTTSubscribe: use_topic_as_fieldname is mutually exclusive with 
[[[[fieldname]]]] configuring
Oct 11 19:17:08 raspberrypi weewx[25990] CRITICAL __main__:     ****  Exiting.

    # The topics to subscribe to.
    [[topics]]
        # Units for MQTT payloads without unit value.
        # Valid values: US, METRIC, METRICWX
        # Default is: US
        unit_system = US    
        ignore_start_time = true
        ignore_end_time = true
        use_topic_as_fieldname = true
        
        # The first topic
        # MQTT Topic
        [[[snow/snowDepth]]]
            # MQTT name
            [[[[snowDepth]]]]
                # weewx name
                name = snowDepth
                ignore = false
                contains_total = false
                conversion_type = float
                units = inch

Reply via email to