I had the same problem. It seems to me that weewx does not know string
values. I tried to send an alarm color value that way, to no success.
Tarmo schrieb am Montag, 8. Februar 2021 um 10:46:40 UTC+1:
> Thank you!
>
> It seems that the attempt to convert string to float still happens. I will
> attach snippets from log and config here. The field name which is causing
> trouble is "phenomenon".
>
> [MQTTSubscribeDriver]
> # This section is for the MQTTSubscribe driver.
>
> # The driver to use:
> driver = user.MQTTSubscribe
>
> # The MQTT server.
> # Default is localhost.
> host = 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 = rtl
>
> # password for broker authentication.
> # Default is None.
> password = xx
>
> # Configuration for the message callback.
> [[message_callback]]
> type = individual
>
> # The topics to subscribe to.
> [[topics]]
> unit_system = METRIC
> use_topic_as_fieldname = true
> use_server_datetime = true
>
> [[[rtl_433/lab/devices/Solight-TE44/1/4/temperature_C]]]
> name = outTemp
> [[[emhi/26038/uvindex]]]
> name = UV
> [[[emhi/26038/airpressure]]]
> name = pressure
> [[[emhi/26038/precipitations]]]
> name = rain
> contains_total = true
> [[[emhi/26038/relativehumidity]]]
> name = outHumidity
> [[[emhi/26038/winddirection]]]
> name = windDir
> [[[emhi/26038/windspeed]]]
> name = windSpeed
> units = meter_per_second
> [[[emhi/26038/windspeedmax]]]
> name = windGust
> units = meter_per_second
> [[[emhi/26038/phenomenon]]]
> conversion_type = None
>
> [Accumulator]
> [[phenomenon]]
> accumulator = firstlast
> extractor = last
>
>
>
>
>
> Feb 8 11:21:38 pi3 systemd[1]: Starting LSB: weewx weather system...
> Feb 8 11:21:39 pi3 weewx[26841] INFO __main__: Initializing weewx version
> 4.4.0
> Feb 8 11:21:39 pi3 weewx[26841] INFO __main__: Using Python 3.5.3
> (default, Nov 18 2020, 21:09:16) #012[GCC 6.3.0 20170516]
> Feb 8 11:21:39 pi3 weewx[26841] INFO __main__: Platform
> Linux-4.19.66-v7+-armv7l-with-debian-9.13
> Feb 8 11:21:39 pi3 weewx[26841] INFO __main__: Locale is 'en_GB.UTF-8'
> Feb 8 11:21:39 pi3 weewx[26841] INFO __main__: PID file is
> /var/run/weewx.pid
> Feb 8 11:21:39 pi3 weewx[26845] INFO __main__: Using configuration file
> /home/weewx/weewx.conf
> Feb 8 11:21:39 pi3 weewx[26845] INFO __main__: Debug is 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO weewx.engine: Loading station type
> MQTTSubscribeDriver (user.MQTTSubscribe)
> Feb 8 11:21:39 pi3 weewx[26830]: Starting weewx weather system: weewx.
> Feb 8 11:21:39 pi3 systemd[1]: Started LSB: weewx weather system.
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver) Version
> is 1.6.2
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver) Log
> level: 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver) Log
> debug setting: 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver) Log
> console: False
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver) Log
> file: None
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver) overlap
> is 0.0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> message_callback_provider_name is user.MQTTSubscribe.MessageCallbackProvider
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> clientid is MQTTSubscribe-9835
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> client_session is True
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver) host is
> localhost
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver) port is
> 1883
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> keepalive is 60
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> username is rtl
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> password is set
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver) Archive
> topic is None
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver) Wait
> before retry is 2
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Connected with result code 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Connected flags {'session present': 0}
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Subscribed to mid: 1 is size 1 has a QOS of 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Subscribed to mid: 2 is size 1 has a QOS of 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Subscribed to mid: 3 is size 1 has a QOS of 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Subscribed to mid: 4 is size 1 has a QOS of 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Subscribed to mid: 5 is size 1 has a QOS of 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Subscribed to mid: 6 is size 1 has a QOS of 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Subscribed to mid: 7 is size 1 has a QOS of 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Subscribed to mid: 8 is size 1 has a QOS of 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Subscribed to mid: 9 is size 1 has a QOS of 0
> Feb 8 11:21:39 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Subscribed to mid: 10 is size 1 has a QOS of 0
> Feb 8 11:21:40 pi3 weewx[26845] INFO weewx.engine: StdConvert target unit
> is 0x1
> Feb 8 11:21:40 pi3 weewx[26845] INFO weewx.engine: Archive will use data
> binding wx_binding
> Feb 8 11:21:40 pi3 weewx[26845] INFO weewx.engine: Record generation will
> be attempted in 'hardware'
> Feb 8 11:21:40 pi3 weewx[26845] INFO weewx.engine: Using archive interval
> of 300 seconds (specified in weewx configuration)
> Feb 8 11:21:40 pi3 weewx[26845] INFO weewx.restx: StationRegistry:
> Station will be registered.
> Feb 8 11:21:40 pi3 weewx[26845] INFO user.mqtt: service version is 0.22
> Feb 8 11:21:40 pi3 weewx[26845] INFO user.mqtt: binding to loop
> Feb 8 11:21:40 pi3 weewx[26845] INFO user.mqtt: topic is weather
> Feb 8 11:21:40 pi3 weewx[26845] INFO user.mqtt: desired unit system is
> METRIC
> Feb 8 11:21:40 pi3 weewx[26845] INFO user.mqtt: data will be uploaded to
> mqtt://ilm:xxx@localhost:1883/
> Feb 8 11:21:40 pi3 weewx[26845] INFO weewx.restx: Wunderground-PWS: Data
> for station IHARJUMA19 will be posted
> Feb 8 11:21:40 pi3 weewx[26845] INFO user.windy: version is 0.7
> Feb 8 11:21:40 pi3 weewx[26845] INFO user.windy: Data will be uploaded to
> https://stations.windy.com/pws/update
> Feb 8 11:21:40 pi3 weewx[26845] INFO __main__: Starting up weewx version
> 4.4.0
> Feb 8 11:21:40 pi3 weewx[26845] INFO weewx.engine: Using binding
> 'wx_binding' to database 'weewx.sdb'
> Feb 8 11:21:40 pi3 weewx[26845] INFO weewx.manager: Starting backfill of
> daily summaries
> Feb 8 11:21:40 pi3 weewx[26845] INFO weewx.manager: Daily summaries up to
> date
> Feb 8 11:21:40 pi3 weewx[26845] INFO weewx.engine: Starting main packet
> loop.
> Feb 8 11:21:40 pi3 weewx[26845] INFO weewx.engine: Main loop exiting.
> Shutting engine down.
> Feb 8 11:21:40 pi3 weewx[26845] INFO user.MQTTSubscribe: (Driver)
> Disconnected with result code 0
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: Caught unrecoverable
> exception:
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** could not
> convert string to float: 'Light snowfall'
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** Traceback
> (most recent call last):
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** File
> "/home/weewx/bin/weewxd", line 157, in main
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: ****
> engine.run()
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** File
> "/home/weewx/bin/weewx/engine.py", line 210, in run
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: ****
> self.dispatchEvent(weewx.Event(weewx.NEW_LOOP_PACKET, packet=packet))
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** File
> "/home/weewx/bin/weewx/engine.py", line 245, in dispatchEvent
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: ****
> callback(event)
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** File
> "/home/weewx/bin/weewx/engine.py", line 594, in new_loop_packet
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: ****
> self.accumulator.addRecord(event.packet, add_hilo=self.loop_hilo)
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** File
> "/home/weewx/bin/weewx/accum.py", line 436, in addRecord
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: ****
> func(self, record, obs_type, add_hilo, weight)
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** File
> "/home/weewx/bin/weewx/accum.py", line 495, in add_value
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: ****
> self[obs_type].addHiLo(val, record['dateTime'])
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** File
> "/home/weewx/bin/weewx/accum.py", line 168, in addHiLo
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** val =
> to_float(val)
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** File
> "/home/weewx/bin/weeutil/weeutil.py", line 1250, in to_float
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** return
> float(x) if x is not None else None
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** ValueError:
> could not convert string to float: 'Light snowfall'
> Feb 8 11:21:40 pi3 weewx[26845] CRITICAL __main__: **** Exiting.
> On Monday, February 8, 2021 at 3:19:36 AM UTC+2 [email protected] wrote:
>
>> It should be doable. I do something similar with a few temperature
>> sensors/fields. The fact that you are dealing with string data does add
>> some complexity.
>> First, for the field configuration you will need to set the
>> conversion_type = None. Although it is not documented on the wiki, see
>> https://github.com/bellrichm/WeeWX-MQTTSubscribe/wiki/Configuring#conversion_type
>>
>> This will stop MQTTSubscribe from trying to convert the incoming data.
>>
>> Next, you will need to configure the accumulator for this field/type.
>> See, https://github.com/weewx/weewx/wiki/Accumulators. It looks like
>> for this field/type you want to set accumulator = firstlast and extractor =
>> last.
>>
>> Now you should be able to access it via $current. field/type name.
>>
>> If you get this working, I’d like to ‘steal’ the details/steps for a wiki
>> page.
>> -rich
>>
>> On Sunday, 7 February 2021 at 17:05:51 UTC-5 Tarmo wrote:
>>
>>> Can I do it? I have a text in MQTT like "Cloudy with clear spells" which
>>> I would like to display on my website. Although, there is no need to store
>>> it in the weewx database. I would like to just to update it at every
>>> archive interval.
>>>
>>
--
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/ca027ce1-b152-4a7f-aa5a-5ddaee2c7bean%40googlegroups.com.