bonjour81 / ESP8266-MQTT-WEEWX

ESP8266 code for WEEWX MQTT sensors
6 stars 5 forks source link

cannot read value for 'weather': could not convert string to float: #1

Open vg8020 opened 6 years ago

vg8020 commented 6 years ago

weewx outputs messages below (see log at the botton) regarding error in date and time conversion string to float when reading data via: pi@raspberrypi:~ $ rtl_433 -F json -U | mosquitto_pub -t weather -l -u user -P password

The goal is pushing wireless temperature station data via rtl_433 in JSON format to weewx.

mqtt broker is publishing correctly as tested via: pi@raspberrypi:~ $ mosquitto_sub -t weather -u user -P password

I have moved wxMQTT.py to /usr/share/weewx/user/wxMesh.py hoping that file rename is correct as per weewx.conf

/etc/weewx/weewx.conf
[Station]
  station_type = wxMesh
[wxMesh]
    host = localhost           # MQTT broker hostname
    topic = weather            # topic
    driver = user.wxMesh
    [[label_map]]
        dateTime = dateTime
        outTemp = outTemp
/usr/share/weewx/user/wxMesh.py
        self.topic = stn_dict.get('topic', 'weather') + "/#"
        self.username = stn_dict.get('username', 'user')
        self.password = stn_dict.get('password', 'password')
Jul 12 00:40:29 raspberrypi weewx[1315]: wxMesh: dateTime 1531348830
Jul 12 00:40:29 raspberrypi weewx[1315]: wxMesh: cannot read value for 'weather': could not convert string to float: {"time" : "2018-07-11 22:40:26", "model" : "Nexus Temperature", "id" : 55, "battery" : "OK", "channel" : 1, "outTemp" : 30.500}
Jul 12 00:40:29 raspberrypi weewx[1315]: wxMesh: packet content: weather =  {"time" : "2018-07-11 22:40:26", "model" : "Nexus Temperature", "id" : 55, "battery" : "OK", "channel" : 1, "outTemp" : 30.500}

Jul 12 00:40:59 raspberrypi weewx[1315]: wxMesh: dateTime 1531348860
Jul 12 00:40:59 raspberrypi weewx[1315]: wxMesh: cannot read value for 'weather': could not convert string to float: {"time" : "2018-07-11 22:40:57", "model" : "Nexus Temperature", "id" : 55, "battery" : "OK", "channel" : 1, "outTemp" : 30.500}
Jul 12 00:40:59 raspberrypi weewx[1315]: wxMesh: packet content: weather =  {"time" : "2018-07-11 22:40:57", "model" : "Nexus Temperature", "id" : 55, "battery" : "OK", "channel" : 1, "outTemp" : 30.500}
Jul 12 00:41:29 raspberrypi weewx[1315]: wxMesh: dateTime 1531348890
Jul 12 00:41:29 raspberrypi weewx[1315]: wxMesh: cannot read value for 'weather': could not convert string to float: {"time" : "2018-07-11 22:41:27", "model" : "Nexus Temperature", "id" : 55, "battery" : "OK", "channel" : 1, "outTemp" : 30.500}
Jul 12 00:41:29 raspberrypi weewx[1315]: wxMesh: packet content: weather =  {"time" : "2018-07-11 22:41:27", "model" : "Nexus Temperature", "id" : 55, "battery" : "OK", "channel" : 1, "outTemp" : 30.500}
Jul 12 00:41:59 raspberrypi weewx[1315]: wxMesh: dateTime 1531348920
Jul 12 00:41:59 raspberrypi weewx[1315]: wxMesh: cannot read value for 'weather': could not convert string to float: {"time" : "2018-07-11 22:41:58", "model" : "Nexus Temperature", "id" : 55, "battery" : "OK", "channel" : 1, "outTemp" : 30.500}
Jul 12 00:41:59 raspberrypi weewx[1315]: wxMesh: packet content: weather =  {"time" : "2018-07-11 22:41:58", "model" : "Nexus Temperature", "id" : 55, "battery" : "OK", "channel" : 1, "outTemp" : 30.500}

I have even edited nexus.c file in rtl_433 before compilation to amend time to timeDate and temperature_C to outTemp:

Jul 12 00:56:28 raspberrypi weewx[1805]: wxMesh: dateTime 1531349789
Jul 12 00:56:28 raspberrypi weewx[1805]: wxMesh: cannot read value for 'weather': could not convert string to float: {"dateTime" : "2018-07-11 22:56:27", "model" : "Nexus Temperature", "id" : 55, "battery" : "OK", "channel" : 1, "outTemp" : 30.400}
Jul 12 00:56:28 raspberrypi weewx[1805]: wxMesh: packet content: weather =  {"dateTime" : "2018-07-11 22:56:27", "model" : "Nexus Temperature", "id" : 55, "battery" : "OK", "channel" : 1, "outTemp" : 30.400}

Thank you in advance,

Hofstad commented 6 years ago

Hi Have you testet the driver with the mosquitto client? Do you know how to send the data over mqtt to test if weewx receive the sensor data??