I think i am not handling the options correctly and the keepalive is a string and not an integer. For now, leave it out of weewx.conf and let it default to 60. - rich
On Thu, Apr 25, 2019 at 11:14 AM Eugen66 <hagea...@gmail.com> wrote: > Thank you so much for helping :) > I have used the apt.. > > When I run, in folder etc/weewx, I get this : > :/etc/weewx# PYTHONPATH=/usr/share/weewx python > /usr/share/weewx//user/MQTTSubscribe.py --type service --binding archive > --interval 300 --delay 15 --records 2 weewx.conf > Simulation is service > Creating 2 archive records > Interval is 300 seconds > Delay is 15 seconds > Traceback (most recent call last): > File "/usr/share/weewx//user/MQTTSubscribe.py", line 557, in <module> > main() > File "/usr/share/weewx//user/MQTTSubscribe.py", line 479, in main > simulate_service(engine, config_dict, binding, record_count, interval, > delay, units) > File "/usr/share/weewx//user/MQTTSubscribe.py", line 523, in > simulate_service > service = MQTTSubscribeService(engine, config_dict) > File "/usr/share/weewx//user/MQTTSubscribe.py", line 263, in __init__ > self.thread = MQTTSubscribeServiceThread(self, self.client, > self.queue, self.archive_queue, label_map, unit_system, payload_type, host, > keepalive, por t, username, password, topic, archive_topic) > File "/usr/share/weewx//user/MQTTSubscribe.py", line 326, in __init__ > MQTTSubscribe.__init__(self, client, queue, archive_queue, label_map, > unit_system, payload_type, host, keepalive, port, username, password, > topic, arc hive_topic) > File "/usr/share/weewx//user/MQTTSubscribe.py", line 135, in __init__ > self.client.connect(host, port, keepalive) > File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line > 839, in connect > return self.reconnect() > File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line > 1009, in reconnect > return self._send_connect(self._keepalive, self._clean_session) > File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line > 2361, in _send_connect > keepalive)) > struct.error: cannot convert argument to integer > > And trying with 60 > > Apr 25 17:11:20 weewx-hyggebu weewx[14390]: MQTTSS: Keep alive is 60 > Apr 25 17:11:20 weewx-hyggebu weewx[14390]: MQTTSS: Username is openhabian > Apr 25 17:11:20 weewx-hyggebu weewx[14390]: MQTTSS: Password is set > Apr 25 17:11:20 weewx-hyggebu weewx[14390]: MQTTSS: Topic is Weather/ > Apr 25 17:11:20 weewx-hyggebu weewx[14390]: MQTTSS: Archive topic is None > Apr 25 17:11:20 weewx-hyggebu weewx[14390]: MQTTSS: Payload type is > individual > Apr 25 17:11:20 weewx-hyggebu weewx[14390]: MQTTSS: Default units is 1 > Apr 25 17:11:20 weewx-hyggebu weewx[14390]: MQTTSS: Label map is > {'outHumidity': 'outHumidity', 'overlap': '20', 'binding': 'loop'} > Apr 25 17:11:20 weewx-hyggebu weewx[14390]: sdr: MainThread: shutdown > process rtl_433 -M utc -F json -G > Apr 25 17:11:20 weewx-hyggebu weewx[14390]: sdr: MainThread: waiting for > stdout-thread > Apr 25 17:11:24 weewx-hyggebu weewx[14390]: sdr: MainThread: waiting for > stderr-thread > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: sdr: MainThread: timed out > waiting for stderr-thread > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: sdr: MainThread: close stdout > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: sdr: MainThread: close stderr > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: engine: Caught unrecoverable > exception in engine: > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** cannot convert > argument to integer > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** Traceback (most > recent call last): > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** File > "/usr/share/weewx/weewx/engine.py", line 884, in main > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** engine = > engine_class(config_dict) > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** File > "/usr/share/weewx/weewx/engine.py", line 78, in __init__ > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** > self.loadServices(config_dict) > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** File > "/usr/share/weewx/weewx/engine.py", line 142, in loadServices > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** > self.service_obj.append(weeutil.weeutil._get_object(svc)(self, config_dict)) > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** File > "/usr/share/weewx/user/MQTTSubscribe.py", line 263, in __init__ > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** self.thread = > MQTTSubscribeServiceThread(self, self.client, self.queue, > self.archive_queue, label_map, unit_system, payload_type, host, keepalive, > port, username, password, topic, archive_topic) > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** File > "/usr/share/weewx/user/MQTTSubscribe.py", line 326, in __init__ > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** > MQTTSubscribe.__init__(self, client, queue, archive_queue, label_map, > unit_system, payload_type, host, keepalive, port, username, password, > topic, archive_topic) > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** File > "/usr/share/weewx/user/MQTTSubscribe.py", line 135, in __init__ > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** > self.client.connect(host, port, keepalive) > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** File > "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 839, in > connect > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** return > self.reconnect() > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** File > "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 1009, in > reconnect > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** return > self._send_connect(self._keepalive, self._clean_session) > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** File > "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 2361, in > _send_connect > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** keepalive)) > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** error: cannot > convert argument to integer > Apr 25 17:11:34 weewx-hyggebu weewx[14390]: **** Exiting. > > > torsdag 25. april 2019 16.47.02 UTC+2 skrev bell...@gmail.com følgende: >> >> Hi, >> I have only installed via setup.py, but I think the problem with running >> standalone is that after the PYTHONPATH= it should be /usr/share/*weewx* >> PYTHONPATH=/usr/share/*weewx* python >> /usr/share/weewx//user/MQTTSubscribe.py --type service --binding archive >> --interval 300 --delay 15 --records 2 weewx.conf >> >> As for the real error, it appears that the keepalive value might need to >> be divisible by 60. I can reproduce the error when I set it to 70, but I am >> still researching. >> - Rich >> >> >> On Thursday, 25 April 2019 10:08:22 UTC-4, Eugen66 wrote: >>> >>> Hi, >>> really trying to get your MQTT subscription to work, this is a very >>> useful way of adding values to a great weather software :) >>> I use (for the moment SDR as driver) >>> When I try to run it stand alone I get this: >>> >>> PYTHONPATH=/usr/share/ python /usr/share/weewx//user/MQTTSubscribe.py >>> --type service --binding archive --interval 300 --delay 15 --records 2 >>> weewx.conf >>> Traceback (most recent call last): >>> File "/usr/share/weewx//user/MQTTSubscribe.py", line 75, in <module> >>> import weeutil.weeutil >>> ImportError: No module named weeutil.weeutil >>> >>> and Weewx fail to start when I add MQTTSubscribe.... to weewx.conf >>> >>> Any suggestion? >>> >>> this is the log: >>> Apr 25 15:50:26 weewx-hyggebu systemd[1]: Starting LSB: weewx weather >>> system... >>> Apr 25 15:50:27 weewx-hyggebu weewx[9314]: engine: Initializing weewx >>> version 3.9.1 >>> Apr 25 15:50:27 weewx-hyggebu weewx[9314]: engine: Using Python 2.7.13 >>> (default, Sep 26 2018, 18:42:22) #012[GCC 6.3.0 20170516] >>> Apr 25 15:50:27 weewx-hyggebu weewx[9314]: engine: Platform >>> Linux-4.14.98-v7+-armv7l-with-debian-9.8 >>> Apr 25 15:50:27 weewx-hyggebu weewx[9314]: engine: Locale is >>> 'en_GB.UTF-8' >>> Apr 25 15:50:27 weewx-hyggebu weewx[9314]: engine: pid file is >>> /var/run/weewx.pid >>> Apr 25 15:50:27 weewx-hyggebu weewx[9303]: Starting weewx weather >>> system: weewx. >>> Apr 25 15:50:27 weewx-hyggebu systemd[1]: Started LSB: weewx weather >>> system. >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: engine: Using configuration >>> file /etc/weewx/weewx.conf >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: engine: Debug is 1 >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: engine: Initializing engine >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: engine: Loading station type >>> SDR (user.sdr) >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: sdr: MainThread: driver >>> version is 0.62 >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: sdr: MainThread: sensor map >>> is {'inTemp': 'temperature.8:1.AcuriteWT450Packet', 'outTemp': >>> 'temperature.1:1.AcuriteWT450Packet', 'outHumidity': '', 'extraTemp1': >>> 'temperature.4:5.HidekiWindPacket', 'extraHumidity1': '', 'extraTemp2': '', >>> 'extraHumidity3': '', 'rain': 'rain_total.4:0.HidekiRainPacket', >>> 'rainBatteryStatus': 'battery.4:0.HidekiRainPacket', 'UV': >>> 'uv_index.1:137.OSUV800Packet', 'outTempBatteryStatus': >>> 'battery.1:137.OSUV800Packet', 'windDir': 'wind_dir.4:5.HidekiWindPacket', >>> 'windGust': 'wind_gust.4:5.HidekiWindPacket', 'windSpeed': >>> 'wind_speed.4:5.HidekiWindPacket', 'windBatteryStatus': >>> 'battery.4:5.HidekiWindPacket'} >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: sdr: MainThread: deltas is >>> {'strikes': 'strikes_total', 'rain': 'rain_total'} >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: sdr: MainThread: startup >>> process 'rtl_433 -M utc -F json -G' >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: sdr: stdout-thread: start >>> async reader for stdout-thread >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: sdr: stderr-thread: start >>> async reader for stderr-thread >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: engine: Loading service >>> weewx.engine.StdTimeSynch >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: engine: Finished loading >>> service weewx.engine.StdTimeSynch >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: engine: Loading service >>> user.MQTTSubscribe.MQTTSubscribeService >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Client id is weewx >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Binding is loop >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Default units is US 1 >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Overlap is 0.0 >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Host is 10.0.10.165 >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Port is 1883 >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Keep alive is 70 >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Username is xxxxxx >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Password is set >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Topic is Weather/ >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Archive topic is None >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Payload type is >>> individual >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Default units is 1 >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: MQTTSS: Label map is >>> {'outHumidity': 'outHumidity', 'overlap': '20', 'binding': 'loop'} >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: sdr: MainThread: shutdown >>> process rtl_433 -M utc -F json -G >>> Apr 25 15:50:27 weewx-hyggebu weewx[9318]: sdr: MainThread: waiting for >>> stdout-thread >>> Apr 25 15:50:31 weewx-hyggebu weewx[9318]: sdr: MainThread: waiting for >>> stderr-thread >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: sdr: MainThread: timed out >>> waiting for stderr-thread >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: sdr: MainThread: close stdout >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: sdr: MainThread: close stderr >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: engine: Caught unrecoverable >>> exception in engine: >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** cannot convert >>> argument to integer >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** Traceback (most >>> recent call last): >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** File >>> "/usr/share/weewx/weewx/engine.py", line 884, in main >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** engine = >>> engine_class(config_dict) >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** File >>> "/usr/share/weewx/weewx/engine.py", line 78, in __init__ >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** >>> self.loadServices(config_dict) >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** File >>> "/usr/share/weewx/weewx/engine.py", line 142, in loadServices >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** >>> self.service_obj.append(weeutil.weeutil._get_object(svc)(self, config_dict)) >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** File >>> "/usr/share/weewx/user/MQTTSubscribe.py", line 263, in __init__ >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** self.thread = >>> MQTTSubscribeServiceThread(self, self.client, self.queue, >>> self.archive_queue, label_map, unit_system, payload_type, host, keepalive, >>> port, username, password, topic, archive_topic) >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** File >>> "/usr/share/weewx/user/MQTTSubscribe.py", line 326, in __init__ >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** >>> MQTTSubscribe.__init__(self, client, queue, archive_queue, label_map, >>> unit_system, payload_type, host, keepalive, port, username, password, >>> topic, archive_topic) >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** File >>> "/usr/share/weewx/user/MQTTSubscribe.py", line 135, in __init__ >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** >>> self.client.connect(host, port, keepalive) >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** File >>> "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 839, in >>> connect >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** return >>> self.reconnect() >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** File >>> "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 1009, in >>> reconnect >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** return >>> self._send_connect(self._keepalive, self._clean_session) >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** File >>> "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 2361, in >>> _send_connect >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** keepalive)) >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** error: cannot >>> convert argument to integer >>> Apr 25 15:50:41 weewx-hyggebu weewx[9318]: **** Exiting. >>> >>> >>> >>> onsdag 24. april 2019 01.36.17 UTC+2 skrev bell...@gmail.com følgende: >>>> >>>> After experimenting and developing more, I decided this needs it own >>>> repository. You can now find it here, >>>> https://github.com/bellrichm/WeeWX-MQTTSubscribe >>>> >>>> The service now supports binding to either new loop packets or new >>>> archive records. Since much of the code was similar to my MQTT driver, this >>>> has been added to the module. It is still a manual install process, but >>>> some documentation has been added. >>>> -rich >>>> >>> -- > 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. > For more options, visit https://groups.google.com/d/optout. > -- 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. For more options, visit https://groups.google.com/d/optout.