Hi Franz,

It's also pretty frustrating for us to that we cannot find :(, but let's 
try again !

I see 2 things that may help or at least rise some questions :

1/ 
in label map you have:   [[label_map]]
       HUMT = outTemp

if you use my version of driver, This mean the MQTT topic shall look like 
this:  weewx/HUMT

but in the mean time in mosquitto sub I see: 

Client mosqsub|1398-raspberryp received PUBLISH (d0, q0, r0, m0, 
'weewx/outTemp', ... (4 bytes)) 


I'm not sure it cause the crash, because, as far as I remember, the driver 
shall just ignore the unknown topics (for example if you publish in 
weewx/spiderman, it shall be ignored by the driver) (it may need to be 
checked)



2/ I'm not sure at all, but I'm confused by the crash message you have: 
May 24 15:44:31 raspberrypi weewx[1358]:     ****    File 
"/home/weewx/bin/weewx/station.py", line 35, in __init__
May 24 15:44:31 raspberrypi weewx[1358]:     ****      self.altitude_vt = 
weewx.units.ValueTuple(float(altitude_t[0]), altitude_t[1], 
"group_altitude") 

The crash is not in the driver anymore ? I have no clue why, but it might 
be something completely different ? 
You may try to set back the station_type to simulator in weewx.conf to 
check if you still have the crash. If yes, something else than the driver 
is wrong.



Last comment: it may not be critical as it's on your LAN, but you disclosed 
your mqtt broker user & password...

Best regards,
Frederic.








Le jeudi 24 mai 2018 16:15:25 UTC+2, Franz a écrit :
>
> Hello Wysiwyg, hello Bill,
> Thank you for the hints. I used the framework for my ESP8266 from Wysiwyg. 
> That is well suited. For the test run, I deactivated all sensors and the 
> deep sleep function. I use the AM2320 for temperature and humidity. In the 
> loop, I send the data to the broker. Unfortunately wewx has problems with 
> the data. I convert float to char in the ESP (see code example) or manually 
> text like "39.5" returns the same error message. It takes a lot of patience 
> ...
> As a control, I use MQTT.fx on a Mac. Works perfectly. All data is 
> displayed. In the configuration of MQTT.fx I entered the client ID 
> (a020a60cc73b) of the ESP. Could this be a cause for the little problem? 
> According to Bill, all location data has been deleted (see weewx.conf). 
> Nevertheless problems.
> Many thanks for the help!!!
> Franz
>
> ESP8266
> ----------------
> void loop() {
> // not used due to deepsleep
> //
> char tmp[20];   // String temp
> char dtmpst[20];
> float temp;
> //
> //
> char tmh[20];   // String temp
> char dthust[20];
> float humi;
>
> temp = am2320.readTemperature();
> dtostrf(temp, 2, 2, dtmpst);   //float in str
>
> humi = am2320.readHumidity();
> dtostrf(humi, 2, 2, dthust);
>
>
>
>
> if ((temp > -40) && (temp < 80)) {
>  //  outTemp_pub.publish(dtmpst);
>  outTemp_pub.publish("39.5");      //TEST manuell
>  //  Serial.println(dtmpst);       // Normal
>    delay(2000);
> }
>
>
>
> //if ( humi >= 0 && humi <= 100 ) {
> //   outHumidity_pub.publish(dthust);
> //   Serial.println(dthust);
> //   delay(2000);
> //}
>
>
>   }
>
>
>
> mosquitto -log
> ------------------
> pi@raspberrypi ~ $ sudo tail -f /var/log/mosquitto/mosquitto.log
> 1527169098: mosquitto version 1.4.15 terminating
> 1527169103: mosquitto version 1.4.15 (build date Sat, 07 Apr 2018 11:13:41 
> +0100) starting
> 1527169103: Config loaded from /etc/mosquitto/mosquitto.conf.
> 1527169105: Opening ipv4 listen socket on port 1883.
> 1527169105: Opening ipv6 listen socket on port 1883.
> 1527169178: New connection from ::1 on port 1883.
> 1527169178: New client connected from ::1 as mosqsub|1092-raspberryp (c1, 
> k60, u'AX700').
> 1527169191: New connection from 192.168.1.20 on port 1883.
> 1527169191: New client connected from 192.168.1.20 as 
> b825d276-27a1-4692-9fe3-0c3db0f850ca (c1, k300, u'AX700').
> 1527169216: New connection from 192.168.1.30 on port 1883.
> 1527169216: New client connected from 192.168.1.30 as weewx_mqttc (c1, 
> k60, u'AX700').
> 1527169216: Socket error on client weewx_mqttc, disconnecting.
> 1527169471: New connection from 192.168.1.30 on port 1883.
>
> weewx- log
> ---------------------
> pi@raspberrypi ~ $ tail -f /var/log/syslog
> May 24 15:40:16 raspberrypi weewx[1196]:     ****      engine = 
> engine_class(config_dict)
> May 24 15:40:16 raspberrypi weewx[1196]:     ****    File 
> "/home/weewx/bin/weewx/engine.py", line 74, in __init__
> May 24 15:40:16 raspberrypi weewx[1196]:     ****      
> self.preLoadServices(config_dict)
> May 24 15:40:16 raspberrypi weewx[1196]:     ****    File 
> "/home/weewx/bin/weewx/engine.py", line 115, in preLoadServices
> May 24 15:40:16 raspberrypi weewx[1196]:     ****      self.stn_info = 
> weewx.station.StationInfo(self.console, **config_dict['Station'])
> May 24 15:40:16 raspberrypi weewx[1196]:     ****    File 
> "/home/weewx/bin/weewx/station.py", line 35, in __init__
> May 24 15:40:16 raspberrypi weewx[1196]:     ****      self.altitude_vt = 
> weewx.units.ValueTuple(float(altitude_t[0]), altitude_t[1], 
> "group_altitude")
> May 24 15:40:16 raspberrypi weewx[1196]:     ****  TypeError: float() 
> argument must be a string or a number
> May 24 15:40:16 raspberrypi weewx[1196]:     ****  Exiting.
> May 24 15:41:35 raspberrypi rsyslogd-2007: action 'action 17' suspended, 
> next retry is Thu May 24 15:42:05 2018 [try http://www.rsyslog.com/e/2007 
> ]
> May 24 15:43:26 raspberrypi wpa_supplicant[461]: wlan0: WPA: Group 
> rekeying completed with 6c:70:9f:e2:fe:56 [GTK=CCMP]
> May 24 15:43:26 raspberrypi rsyslogd-2007: action 'action 17' suspended, 
> next retry is Thu May 24 15:43:56 2018 [try http://www.rsyslog.com/e/2007 
> ]
> May 24 15:44:21 raspberrypi rsyslogd-2007: action 'action 17' suspended, 
> next retry is Thu May 24 15:44:51 2018 [try http://www.rsyslog.com/e/2007 
> ]
> May 24 15:44:21 raspberrypi systemd[1]: Stopping LSB: weewx weather 
> system...
> May 24 15:44:21 raspberrypi weewx[1291]: Stopping weewx weather system: 
> weewx not running....
> May 24 15:44:21 raspberrypi systemd[1]: Stopped LSB: weewx weather system.
> May 24 15:44:30 raspberrypi systemd[1]: Starting LSB: weewx weather 
> system...
> May 24 15:44:31 raspberrypi weewx[1354]: engine: Initializing weewx 
> version 3.8.0
> May 24 15:44:31 raspberrypi weewx[1354]: engine: Using Python 2.7.9 
> (default, Sep 17 2016, 20:26:04) #012[GCC 4.9.2]
> May 24 15:44:31 raspberrypi weewx[1354]: engine: Platform 
> Linux-4.1.7-v7+-armv7l-with-debian-8.0
> May 24 15:44:31 raspberrypi weewx[1354]: engine: Locale is 'de_DE.UTF-8'
> May 24 15:44:31 raspberrypi weewx[1354]: engine: pid file is 
> /var/run/weewx.pid
> May 24 15:44:31 raspberrypi weewx[1358]: engine: Using configuration file 
> /home/weewx/weewx.conf
> May 24 15:44:31 raspberrypi weewx[1358]: engine: debug is 1
> May 24 15:44:31 raspberrypi weewx[1358]: engine: Initializing engine
> May 24 15:44:31 raspberrypi weewx[1358]: engine: Loading station type 
> wxMesh (user.wxMesh)
> May 24 15:44:31 raspberrypi systemd[1]: Started LSB: weewx weather system.
> May 24 15:44:31 raspberrypi weewx[1344]: Starting weewx weather system: 
> weewx.
> May 24 15:44:31 raspberrypi weewx[1358]: wxMesh: host is 192.168.1.30
> May 24 15:44:31 raspberrypi weewx[1358]: wxMesh: topic is weewx//#
> May 24 15:44:31 raspberrypi weewx[1358]: wxMesh: polling interval is 3.0
> May 24 15:44:31 raspberrypi weewx[1358]: wxMesh: label map is {'HUMT': 
> 'outTemp'}
> May 24 15:44:31 raspberrypi weewx[1358]: engine: Caught unrecoverable 
> exception in engine:
> May 24 15:44:31 raspberrypi weewx[1358]:     ****  float() argument must 
> be a string or a number
> May 24 15:44:31 raspberrypi weewx[1358]:     ****  Traceback (most recent 
> call last):
> May 24 15:44:31 raspberrypi weewx[1358]:     ****    File 
> "/home/weewx/bin/weewx/engine.py", line 865, in main
> May 24 15:44:31 raspberrypi weewx[1358]:     ****      engine = 
> engine_class(config_dict)
> May 24 15:44:31 raspberrypi weewx[1358]:     ****    File 
> "/home/weewx/bin/weewx/engine.py", line 74, in __init__
> May 24 15:44:31 raspberrypi weewx[1358]:     ****      
> self.preLoadServices(config_dict)
> May 24 15:44:31 raspberrypi weewx[1358]:     ****    File 
> "/home/weewx/bin/weewx/engine.py", line 115, in preLoadServices
> May 24 15:44:31 raspberrypi weewx[1358]:     ****      self.stn_info = 
> weewx.station.StationInfo(self.console, **config_dict['Station'])
> May 24 15:44:31 raspberrypi weewx[1358]:     ****    File 
> "/home/weewx/bin/weewx/station.py", line 35, in __init__
> May 24 15:44:31 raspberrypi weewx[1358]:     ****      self.altitude_vt = 
> weewx.units.ValueTuple(float(altitude_t[0]), altitude_t[1], 
> "group_altitude")
> May 24 15:44:31 raspberrypi weewx[1358]:     ****  TypeError: float() 
> argument must be a string or a number
> May 24 15:44:31 raspberrypi weewx[1358]:     ****  Exiting.
> May 24 15:44:42 raspberrypi wpa_supplicant[461]: wlan0: WPA: Group 
> rekeying completed with 6c:70:9f:e2:fe:56 [GTK=CCMP]
> May 24 15:47:27 raspberrypi rsyslogd-2007: action 'action 17' suspended, 
> next retry is Thu May 24 15:47:57 2018 [try http://www.rsyslog.com/e/2007 
> ]
> May 24 15:47:56 raspberrypi wpa_supplicant[461]: CTRL_IFACE: Detach 
> monitor /tmp/libdhcpcd-wpa-933.1\x00 that cannot receive messages
>
> mosquitto
> ------------------------
> pi@raspberrypi ~ $ mosquitto_sub -d -u AX700 -P 84N7601 -t "weewx/#" -v
> Client mosqsub|1398-raspberryp sending CONNECT
> Client mosqsub|1398-raspberryp received CONNACK
> Client mosqsub|1398-raspberryp sending SUBSCRIBE (Mid: 1, Topic: weewx/#, 
> QoS: 0)
> Client mosqsub|1398-raspberryp received SUBACK
> Subscribed (mid: 1): 0
> Client mosqsub|1398-raspberryp received PUBLISH (d0, q0, r0, m0, 
> 'weewx/outTemp', ... (4 bytes))
> weewx/outTemp 39.5
> Client mosqsub|1398-raspberryp received PUBLISH (d0, q0, r0, m0, 
> 'weewx/outTemp', ... (4 bytes))
> weewx/outTemp 39.5
>
> weewx.conf
> -------------------
> # WEEWX CONFIGURATION FILE
> #
> # Copyright (c) 2009-2015 Tom Keffer <[email protected] <javascript:>>
> # See the file LICENSE.txt for your rights.
>
>
> ##############################################################################
>
> # This section is for general configuration information.
>
> # Set to 1 for extra debug info, otherwise comment it out or set to zero
> debug = 1
>
> # Root directory of the weewx data file hierarchy for this station
> WEEWX_ROOT = /home/weewx
>
> # How long to wait before timing out a socket (FTP, HTTP) connection
> socket_timeout = 20
>
> # Do not modify this. It is used when installing and updating weewx.
> version = 3.8.0
>
>
> ##############################################################################
>
> #   This section is for information about the station.
> [Station]
>    station_type = wxMesh
>
> [wxMesh]
>     host = 192.168.1.30
>     username = AX700
>     password = 84N7601
>     topic = weewx/
>     driver = user.wxMesh
>     poll_interval = 3
>     loop_on_init = true
>
>     [[label_map]]
>        HUMT = outTemp
>       # RHUM = outHumidity
>
>     #Description of the station location
>     #location = Wetter Rheinbach Voreifel
>     #
>     #Latitude and longitude in decimal degrees
>     #latitude = 50.3552
>     #longitude = 6.5346
>     
>     # Altitude of the station, with unit it is in. This is downloaded from
>     # from the station if the hardware supports it.
>     # altitude = 270, meter    # Choose 'foot' or 'meter' for unit
>     
>     # Set to type of station hardware. There must be a corresponding stanza
>     # in this file with a 'driver' parameter indicating the driver to be 
> used.
>     # station_type = Simulator
>     
>     # If you have a website, you may specify an URL
>     #station_url = http://www.example.com
>     
>     # The start of the rain year (1=January; 10=October, etc.). This is
>     # downloaded from the station if the hardware supports it.
>     # rain_year_start = 1
>     
>     # Start of week (0=Monday, 6=Sunday)
>     # week_start = 6
>
>
> ##############################################################################
>
> [Simulator]
>     # This section is for the weewx weather station simulator
>     
>     # The time (in seconds) between LOOP packets.
>     loop_interval = 2.5
>     
>     # The simulator mode can be either 'simulator' or 'generator'.
>     # Real-time simulator. Sleep between each LOOP packet.
>     mode = simulator
>     # Generator.  Emit LOOP packets as fast as possible (useful for 
> testing).
>     #mode = generator
>     
>     # The start time. Format is YYYY-mm-ddTHH:MM. If not specified, the 
> default 
>     # is to use the present time.
>     #start = 2011-01-01T00:00
>     
>     # The driver to use:
>     # driver = weewx.drivers.simulator
>
>
> ##############################################################################
>
> #   This section is for uploading data to Internet sites
>
> [StdRESTful]
>     
>   [[MQTT]]
>        topic = weewx
>        append_units_label = True
>        retain = False
>        aggregation = individual
>        unit_system = METRIC
>        binding = loop
>   
>   [[StationRegistry]]
>         # To register this weather station with weewx, set this to true
>         register_this_station = false
>     
>
> Am Mittwoch, 23. Mai 2018 14:22:31 UTC+2 schrieb Wysiwyg:
>>
>> Hi There!
>>
>> Sorry for confusion between wxMQTT.py & wxMesh.py.
>>
>>  wxMesh.py => Original naming from Bill's driver.
>> When I discussed with Bill and modified his driver for my own use, Bill 
>> mention the name should be updated.
>> I named it wxMQTT.py, but I didnt finalized the job correctly  :-(
>> I shall change the name in weewx.conf and also I think there are some 
>> mention in the python code.
>> Anyway, if all is name wxMesh. it shall work.
>>
>>
>>
>> regarding "float".
>> My arduino/ESP8266 code also publish some float. you can see here: 
>> https://github.com/bonjour81/station_meteo/blob/master/sensors/MQTT_TH_UV_rain/src/main.cpp
>> .
>> The values are truncated at 2 digit after dot.
>> I also added a bit of checks in my arduino code to confirm validity of 
>> values before publishing
>>
>> You can use an other subscriber to check the content of your messages in 
>> parallel to weewx (like mosquitto_sub), but for more comfortable use, you 
>> can try mqtt dash on android. ( 
>> https://play.google.com/store/apps/details?id=net.routix.mqttdash&hl=fr 
>> ).
>> You just have to setup your mqtt server once, and you can define some 
>> tiles for each topic.
>> I use "text" tiles for my weewx topics (ex: weewx/outTemp). 
>> It also display since how much time last publish was received.
>> it's pretty nice for debugging.
>>
>>
>> in parallel to 
>> tail -f /var/log/syslog
>> you may also try:
>> tail -f /var/log/mosquitto/mosquitto.conf
>>
>>
>>
>>
>>
>>
>> Le mercredi 23 mai 2018 13:32:29 UTC+2, Bill Morrow a écrit :
>>>
>>> Hi Franz, progress! It looks like you have fixed the file corruption 
>>> issue.
>>>
>>> Some comments below...
>>>
>>> On Wednesday, 23 May 2018 08:17:13 UTC-3, Franz wrote:
>>>>
>>>> Hello Vince,
>>>> with wget https: // ... copied the file wxMQTT.py. Checksum is ok.
>>>> Are the wxMesh.py and wxMQTT.py files the same?
>>>>
>>>
>>> I think you have configuration in weewx.conf such that your file should 
>>> be named wxMesh.py. Namely these configuration parameters::
>>>
>>>     station_type = wxMesh
>>> ...
>>> [wxMesh]
>>>     driver = user.wxMesh
>>>
>>>
>>> The error messages have changed (see log file). I suspect it's because 
>>>> of the MQTT data. MQTT sends float values with me. I have to change the 
>>>> Arduino program. Many thanks for the help. I'm probably a little further.
>>>>
>>>
>>> Consider editing your weewx.conf file and changing the debug setting from
>>>
>>> # Set to 1 for extra debug info, otherwise comment it out or set to zero.
>>> debug = 0
>>>
>>> to
>>>
>>> # Set to 1 for extra debug info, otherwise comment it out or set to zero.
>>> debug =1
>>>
>>> and then restart weewx. Watch the log file with
>>>
>>> tail -f /var/log/syslog
>>>
>>> This should give more information on how the driver is attempting to 
>>> turn some part of the MQTT payload to a floating point number. 
>>>
>>>
>>> ---
>>>> pi@raspberrypi /home/weewx/bin/user $ ls
>>>> extensions.py   __init__.py   installer  wxMesh.pyc
>>>> extensions.pyc  __init__.pyc  wxMesh.py
>>>> pi@raspberrypi /home/weewx/bin/user $ sudo sha1sum wxMesh.py
>>>> 826d007e040b540cb5c6092842667c9966852db9  wxMesh.py
>>>> pi@raspberrypi /home/weewx/bin/user $ 
>>>> ----
>>>> pi@raspberrypi ~ $ sudo /etc/init.d/weewx start
>>>> [ ok ] Starting weewx (via systemctl): weewx.service.
>>>> pi@raspberrypi ~ $ sudo /etc/init.d/weewx status -l
>>>> ● weewx.service - LSB: weewx weather system
>>>>    Loaded: loaded (/etc/init.d/weewx)
>>>>    Active: active (exited) since Mi 2018-05-23 11:52:38 CEST; 6s ago
>>>>   Process: 1396 ExecStop=/etc/init.d/weewx stop (code=exited, 
>>>> status=0/SUCCESS)
>>>>   Process: 1591 ExecStart=/etc/init.d/weewx start (code=exited, 
>>>> status=0/SUCCESS)
>>>>
>>>> Mai 23 11:52:38 raspberrypi weewx[1605]: ****    File 
>>>> "/home/weewx/bin/weewx/engine.py", line 865, in main
>>>> Mai 23 11:52:38 raspberrypi weewx[1605]: ****      engine = 
>>>> engine_class(config_dict)
>>>> Mai 23 11:52:38 raspberrypi weewx[1605]: ****    File 
>>>> "/home/weewx/bin/weewx/engine.py", line 74, in __init__
>>>> Mai 23 11:52:38 raspberrypi weewx[1605]: ****      
>>>> self.preLoadServices(config_dict)
>>>> Mai 23 11:52:38 raspberrypi weewx[1605]: ****    File 
>>>> "/home/weewx/bin/weewx/engine.py", line 115, in ...ices
>>>> Mai 23 11:52:38 raspberrypi weewx[1605]: ****      self.stn_info = 
>>>> weewx.station.StationInfo(self.cons...n'])
>>>> Mai 23 11:52:38 raspberrypi weewx[1605]: ****    File 
>>>> "/home/weewx/bin/weewx/station.py", line 35, in ...it__
>>>> Mai 23 11:52:38 raspberrypi weewx[1605]: ****      self.altitude_vt = 
>>>> weewx.units.ValueTuple(float(alt...de")
>>>> Mai 23 11:52:38 raspberrypi weewx[1605]: ****  TypeError: float() 
>>>> argument must be a string or a number
>>>> Mai 23 11:52:38 raspberrypi weewx[1605]: ****  Exiting.
>>>> Hint: Some lines were ellipsized, use -l to show in full.
>>>> pi@raspberrypi ~ $ 
>>>> -----------
>>>>
>>>>
>>>> Am Dienstag, 22. Mai 2018 21:42:24 UTC+2 schrieb Vince Skahan:
>>>>>
>>>>> On Tuesday, May 22, 2018 at 10:45:58 AM UTC-7, Bill Morrow wrote:
>>>>>>
>>>>>>
>>>>>> Try going in to your bin/user/ directory and run these commands at 
>>>>>> your shell prompt
>>>>>>
>>>>>> wget https://
>>>>>> raw.githubusercontent.com/bonjour81/ESP8266-MQTT-WEEWX/master/weewx/wxMQTT.py
>>>>>> mv wxMQTT.py wxMesh.py
>>>>>>
>>>>>
>>>>>
>>>>> You might also check the checksums on the file to verify it's the same 
>>>>> as the master copy.
>>>>> Mine looks like:
>>>>>
>>>>> pi@pi3:/tmp $ sha1sum wxMQTT.py
>>>>> 826d007e040b540cb5c6092842667c9966852db9  wxMQTT.py
>>>>>
>>>>>
>>>>> pi@pi3:/tmp $ sha256sum wxMQTT.py
>>>>> e99e86a15f3315eb1dd0db38f4ce759c4af2cb4965f71e031000a380c087d32b 
>>>>>  wxMQTT.py
>>>>>
>>>>>
>>>>>
>>>>>

Reply via email to