See attached.
On Sunday, October 11, 2020 at 5:45:43 PM UTC-6 [email protected] 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 [email protected] 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 [email protected] 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 [email protected]
>>> 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 [email protected]
>>>> 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 [email protected]
>>>>> wrote:
>>>>>
>>>>>> OK, thanks for your help.
>>>>>>
>>>>>> On Saturday, October 10, 2020 at 7:22:18 AM UTC-6 [email protected]
>>>>>> 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 [email protected]
>>>>>>> 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 [email protected]
>>>>>>>> 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 [email protected]
>>>>>>>>> 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 [email protected]
>>>>>>>>>> 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
>>>>>>>>>>> [email protected] 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
>>>>>>>>>>>>> [email protected] 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
>>>>>>>>>>>>>> [email protected] 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
>>>>>>>>>>>>>>>> [email protected] 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 [email protected].
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