based on the solution provided by gazoodle (GitHub - gazoodle/geckolib: Library to interface with Gecko Alliance spa pack systems via in.touch2 module) I have created a simple service that pushes the most important values to a broker. It works fine for my in.YT.
As the library was in python, I did not look into a way to create a binding. The second reason was to be in depended from OpenHab life-cycle, there for broker solution.
So far values for water header, with the possibility to set the target temperature, status of light including to switch them on and off, status of pumps, water care and filters and the reminders (only tested with rinse and clean filter, change water and check SPA) are included
host: The IP/Hostname of the MQTT broker. Be aware that this binding allows only one bridge / one connection per unique host:port.
port: The optional port of the MQTT broker. If none is provided, the typical ports 1883 and 8883 (SSL) are used. Be aware that this binding allows only one bridge / one connection per unique host:port.
username: The MQTT username (since MQTT 3.1). Defaults to empty.
password: The MQTT password (since MQTT 3.1). Defaults to empty.
clientID: Use a fixed client ID. Defaults to empty which means a user ID is generated for this connection.
Would that be the correct mapping? Anything missing?
May I kindlky ask you to share you configs for the in.YT? (things/channels/items)
Hello Marcus,
glad to read that you have installed the geckolib successfully.
From what I see in the posted error message it seems that you have forgotten to install the paho-mqtt library.
client.py crashed with ModuleNotFoundError in /opt/geckoclient/mqtt.py: No module named âpahoâ
Can you please check, if you have installed the needed libraries:
pip install paho-mqtt
You can also run the client manually first, to see any client output by executing:
python3 /opt/geckoclient/client.py
Please do not forget to patch the geckoclient as my mqtt bridge client is need of the additional features.
Unluckily I still fight with getting the target temperature in case it is set directly on the pool. And sometimes setting of the temperature is not working. I hope to be able to improve that in the coming month.
Dec 28 21:07:14 NUC8i3BEK systemd[1]: Started Gecko client service.
Dec 28 21:07:14 NUC8i3BEK python3[26828]: Traceback (most recent call last):
Dec 28 21:07:14 NUC8i3BEK python3[26828]: File "/opt/geckoclient/client.py", line 19, in <module>
Dec 28 21:07:14 NUC8i3BEK python3[26828]: from mqtt import Mqtt
Dec 28 21:07:14 NUC8i3BEK python3[26828]: File "/opt/geckoclient/mqtt.py", line 9, in <module>
Dec 28 21:07:14 NUC8i3BEK python3[26828]: import paho.mqtt.client as paho
Dec 28 21:07:14 NUC8i3BEK python3[26828]: ModuleNotFoundError: No module named 'paho'
Dec 28 21:07:14 NUC8i3BEK systemd[1]: gecko.service: Main process exited, code=exited, status=1/FAILURE
Dec 28 21:07:14 NUC8i3BEK systemd[1]: gecko.service: Failed with result 'exit-code'.
Dec 28 21:07:14 NUC8i3BEK systemd[1]: gecko.service: Scheduled restart job, restart counter is at 5.
Dec 28 21:07:14 NUC8i3BEK systemd[1]: Stopped Gecko client service.
Dec 28 21:07:14 NUC8i3BEK systemd[1]: gecko.service: Start request repeated too quickly.
Dec 28 21:07:14 NUC8i3BEK systemd[1]: gecko.service: Failed with result 'exit-code'.
Dec 28 21:07:14 NUC8i3BEK systemd[1]: Failed to start Gecko client service.
user@NUC8i3BEK:~/.local/lib/python3.8/site-packages/geckolib/automation$ ls -l
total 64
-rw-rw-r-- 1 user user 948 Dez 28 20:48 base.py
-rw-rw-r-- 1 user user 197 Dez 28 20:48 blower.py
-rw-rw-r-- 1 user user 10108 Dez 28 20:57 facade.py
-rw-rw-r-- 1 user user 6568 Dez 28 20:48 heater.py
-rw-rw-r-- 1 user user 694 Dez 28 20:57 __init__.py
-rw-rw-r-- 1 user user 300 Dez 28 20:48 keypad.py
-rw-rw-r-- 1 user user 182 Dez 28 20:48 light.py
-rw-rw-r-- 1 user user 1329 Dez 28 20:48 pump.py
drwxrwxr-x 2 user user 4096 Dez 28 20:57 __pycache__
-rw-rw-r-- 1 user user 1748 Dez 28 20:57 reminders.py
-rw-rw-r-- 1 user user 1731 Dez 28 20:48 sensors.py
-rw-rw-r-- 1 user user 1663 Dez 28 20:48 switches.py
-rw-rw-r-- 1 user user 2328 Dez 28 20:48 watercare.py
user@NUC8i3BEK:~/.local/lib/python3.8/site-packages/geckolib/driver/protocol$ ls -l
total 52
-rw-rw-r-- 1 user user 2585 Dez 28 20:48 configfile.py
-rw-rw-r-- 1 user user 1338 Dez 28 20:48 firmware.py
-rw-rw-r-- 1 user user 1844 Dez 28 20:48 getchannel.py
-rw-rw-r-- 1 user user 2374 Dez 28 20:48 hello.py
-rw-rw-r-- 1 user user 1356 Dez 28 20:48 __init__.py
-rw-rw-r-- 1 user user 3255 Dez 28 20:48 packcommand.py
-rw-rw-r-- 1 user user 2786 Dez 28 20:48 packet.py
-rw-rw-r-- 1 user user 830 Dez 28 20:48 ping.py
drwxrwxr-x 2 user user 4096 Dez 28 20:57 __pycache__
-rw-rw-r-- 1 user user 2082 Dez 28 20:57 reminders.py
-rw-rw-r-- 1 user user 4087 Dez 28 20:48 statusblock.py
-rw-rw-r-- 1 user user 1987 Dez 28 20:48 version.py
-rw-rw-r-- 1 user user 2878 Dez 28 20:48 watercare.py
This is a bit strangeâŠ
edit 23:01:
Could be related to config.pyâŠ
What are the correct broker settings?
###########
# configuration of SPA and BROKER
#
# SPA values
SPA_NAME = "Whirlpool"
SPA_IDENTIFIER = "SPA68:27:19:xx:xx:xx"
# Replace with your own UUID, see https://www.uuidgenerator.net/>
CLIENT_ID = "d265xxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# BROKER values
BROKER_ADDRESS = "192.168.0.13"
BROKER_PORT = 1883
BROKER_USERNAME = "xxx"
BROKER_PASSWORD = "xxx"
BROKER_ID = "geckoclient"
# Topic
TOPIC = "whirlpool"
# Log file
LOGFILE = "/var/log/geckoclient.log"
# Debug level
# can be one of the following strings
# 'CRITICAL','FATAL', 'ERROR', 'WARN', 'INFO', 'DEBUG', 'NOTSET'
DEBUG_LEVEL = 'INFO'
Broker address would be the IP of the machine running GeckoClient, correct?
Do I need to set BROKER_USERNAME and BROKER_PASSWORD to something specific?
Then you need to put either 127.0.0.1 (if the broker and the geckoclient is on the same machine) or the IP of the machine the broker is running on else and depending if you have setup a user and password the values.
But that should not be a problem. At least the client should start, the log file should be created and something should be logged in there. Do you see anything inside when starting the client from the command line?
Some success - connection to broker successful and subscribed to water-heater and lights!
However, there is an error message when running client.py.
gecko.service still fails to start with the same message as in my previous post.
Maybe worth to mention:
I use SpaPackStruct.xml v33 (link) to connect to my in.YE-5-H3.6. I couldnât get it running with v19 and v24.
The iOS app refers to in.YT, thatâs why I Initially thought that my SPA has an in.YT.
MQTT broker set up as per instruction with the following result:
gecko_client.log:
2021-12-29 11:01:12,194 - mqtt - INFO - Subscribing to whirlpool/water_heater/cmnd
2021-12-29 11:01:12,194 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-29 11:01:12,194 - mqtt - INFO - Subscribing to whirlpool/lights/cmnd
user@NUC8i3BEK:~$ python3 /opt/geckoclient/client.py
Traceback (most recent call last):
File "/opt/geckoclient/client.py", line 324, in <module>
json = get_pumps_payload()
File "/opt/geckoclient/client.py", line 89, in get_pumps_payload
json += f'"{facade.pumps[2].name}":"{facade.pumps[2].mode}",'
IndexError: list index out of range
Output when running GeckoShell.run():
user@NUC8i3BEK:~$ python
Python 3.8.10 (default, Nov 26 2021, 20:14:08)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from geckolib import GeckoShell
>>> GeckoShell.run()
<Disclaimer>
----------------------------- USE AT YOUR OWN RISK -----------------------------
This code will allow you to make changes to your spa configuration that is
outside of what the app, top panel and side panel settings allow. I've not
tested every setting and it might be that you prevent your spa pack from
operating as it used to do.
Configuration is declared in the file SpaPackStruct.xml which is downloaded the
first time you run this program. Settings marked as RW="ALL" seem to indicate
that any process can write them, so you ought to be able to revert the settings
to their original ones.
I strongly suggest dumping the configuration values with the "config" command
and recording them somewhere safe.
</Disclaimer>
Starting discovery process...Found 1 spas
Connecting to spa `Whirlpool` at 192.168.0.8 ... connected!
Heater: Temperature 38.0°C, SetPoint 38.0°C, Real SetPoint 38.0°C, Operation Idle
Waterfall: ON
Pump 1: OFF
Blower: OFF
Lights: OFF
WaterCare: Waiting...
Smart Winter Mode:Risk = NO
Circulating Pump = ON
Ozone = OFF
Smart Winter Mode:Active = False
Filter Status:Clean = True
Filter Status:Purge = False
Welcome to the Gecko shell. Type help or ? to list commands.
Whirlpool$ state
Heater: Temperature 38.0°C, SetPoint 38.0°C, Real SetPoint 38.0°C, Operation Idle
Waterfall: ON
Pump 1: OFF
Blower: OFF
Lights: OFF
('Time', '29.12.2021, 11:16:52')
('RinseFilter', 23)
('CleanFilter', 53)
('ChangeWater', 83)
('CheckSpa', 723)
WaterCare: Standard
Smart Winter Mode:Risk = NO
Circulating Pump = ON
Ozone = OFF
Smart Winter Mode:Active = False
Filter Status:Clean = True
Filter Status:Purge = False
gecko.service:
As far as I know services in systemd are started as root whereas geckolib and paho-mqtt are installed in the user directory (site-packages). Maybe the path to paho.mqtt.client is unknown when running:
Why not share your things/channels/items while troubleshooting errors and gecko.service⊠it would probably help to have the end2end view for the stuff for which the subscription worked.
you found a real bug .
In my code I read 3 pumps and the script of course crashed as you have only 1 pump. Its is in an early stateâŠ
I have uploaded a new version of the script. Can you please replace the client.py with the new version fro the git repository? I now loops over all pumps instead of statically read3 pumps. Then I hope the rest should work and you will see some topic posted on mqtt. BTW, if not already installed, MQTT Explorer is a great tool to check what is ongoing on your broker.
Sorry I over read in your first post your question about the items and and things file. Here they are:
mqtt.things
Bridge mqtt:broker:mySecureBroker "OpenHAB Bridge" [ host="192.168.x.x", secure=false, username="xxx", password="yyy" ]
{
...
// Whirlpool
Thing topic whirlpool "Whirlpool" @ "Garten" {
Channels:
Type string : current_operation "Aktelle Modus" [stateTopic="garten/whirlpool/water_heater/state", transformationPattern="JSONPATH:$.current_operation" ]
Type string : temperature_unit "Temperatureinheit" [stateTopic="garten/whirlpool/water_heater/state", transformationPattern="JSONPATH:$.temperature_unit" ]
Type number : current_temperature "Aktelle Temperatur" [stateTopic="garten/whirlpool/water_heater/state", transformationPattern="JSONPATH:$.current_temperature" ]
Type number : target_temperature "Eingestellte Temperatur" [stateTopic="garten/whirlpool/water_heater/state", transformationPattern="JSONPATH:$.target_temperature",
commandTopic="garten/whirlpool/water_heater/cmnd", min=30, max=41, step=0.5, formatBeforePublish="set_temp=%s"]
Type number : real_target_temperature "Berechnete Temperatur" [stateTopic="garten/whirlpool/water_heater/state", transformationPattern="JSONPATH:$.real_target_temperature" ] Type string : reachable "Online" [ stateTopic="haus/sonoff-basic-0102/tele/LWT"]
Type string : watercare_time "Wasserpflege Modus" [stateTopic="garten/whirlpool/water_care/state", transformationPattern="JSONPATH:$.Time"]
Type number : watercare_mode_i "Wasserpflege Modus" [stateTopic="garten/whirlpool/water_care/state", transformationPattern="JSONPATH:$.['mode']"]
Type string : watercare_mode "Wasserpflege Modus" [stateTopic="garten/whirlpool/water_care/state", transformationPattern="JSONPATH:$.['mode(txt)']"]
Type string : test "Test " [stateTopic="garten/whirlpool/water_care/state", transformationPattern="JSONPATH:$"]
Type switch : pump1 "Pumpe 1" [stateTopic="garten/whirlpool/pumps/state", transformationPattern="JSONPATH:$.['Pump 1']", on="HIGH", off="OFF"]
Type switch : pump2 "Pumpe 2" [stateTopic="garten/whirlpool/pumps/state", transformationPattern="JSONPATH:$.['Pump 2']", on="HIGH", off="OFF"]
Type switch : pump3 "Pumpe 3" [stateTopic="garten/whirlpool/pumps/state", transformationPattern="JSONPATH:$.['Pump 3']", on="HIGH", off="OFF"]
Type switch : circulation_pump "UmwÀlzpumpe" [stateTopic="garten/whirlpool/pumps/state", transformationPattern="JSONPATH:$.['Circulating Pump']", on="ON", off="OFF"]
Type switch : lights "Beleuchtung" [stateTopic="garten/whirlpool/lights/state", transformationPattern="JSONPATH:$.Lights", on="HI", off="OFF",
commandTopic="garten/whirlpool/lights/cmnd", formatBeforePublish="set_lights=%s"]
Type number : rinse_filter "Filter spĂŒhlen" [stateTopic="garten/whirlpool/reminders/state", transformationPattern="JSONPATH:$.RinseFilter" ]
Type number : clean_filter "Filter reinigen" [stateTopic="garten/whirlpool/reminders/state", transformationPattern="JSONPATH:$.CleanFilter" ]
Type number : change_water "Wasserwechsel" [stateTopic="garten/whirlpool/reminders/state", transformationPattern="JSONPATH:$.ChangeWater" ]
Type number : check_spa "Spa kontrollieren" [stateTopic="garten/whirlpool/reminders/state", transformationPattern="JSONPATH:$.CheckSpa" ]
Type switch : filter_status_clean "Filter Status:Clean" [stateTopic="garten/whirlpool/filter_status/state", transformationPattern="JSONPATH:$.['Filter Status:Clean']", on="true", off="false"]
Type switch : filter_status_purge "Filter Status:Purge" [stateTopic="garten/whirlpool/filter_status/state", transformationPattern="JSONPATH:$.['Filter Status:Purge']", on="true", off="false"]
}
....
}
done with the following result - worth noting that I stopped the program using CTRL-C after about 2 min. Not sure how long the program would run in a normal cycle without errors.
BTW I also used CTRL-C yesterday, then the pump error came up in the terminal.
2021-12-30 14:18:16,950 - mqtt - INFO - Subscribing to whirlpool/water_heater/cmnd
2021-12-30 14:18:16,951 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-30 14:18:16,951 - mqtt - INFO - Subscribing to whirlpool/lights/cmnd
2021-12-30 14:18:26,953 - mqtt - ERROR - Connection error number 7 occured
2021-12-30 14:18:27,956 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-30 14:18:37,958 - mqtt - ERROR - Connection error number 7 occured
2021-12-30 14:18:38,960 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-30 14:18:48,963 - mqtt - ERROR - Connection error number 7 occured
2021-12-30 14:18:49,967 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-30 14:18:59,970 - mqtt - ERROR - Connection error number 7 occured
2021-12-30 14:19:00,972 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-30 14:19:10,975 - mqtt - ERROR - Connection error number 7 occured
2021-12-30 14:19:11,977 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-30 14:19:21,979 - mqtt - ERROR - Connection error number 7 occured
2021-12-30 14:19:22,981 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-30 14:19:32,985 - mqtt - ERROR - Connection error number 7 occured
2021-12-30 14:19:33,987 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-30 14:19:43,990 - mqtt - ERROR - Connection error number 7 occured
2021-12-30 14:19:44,992 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-30 14:19:54,996 - mqtt - ERROR - Connection error number 7 occured
2021-12-30 14:19:55,999 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-30 14:20:06,002 - mqtt - ERROR - Connection error number 7 occured
2021-12-30 14:20:07,004 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-30 14:20:17,007 - mqtt - ERROR - Connection error number 7 occured
2021-12-30 14:20:18,012 - mqtt - INFO - MQTT successfull connected to broker 127.0.0.1
2021-12-30 14:20:24,649 - geckolib.driver.udp_socket - WARNING - Couldn't find new handler for b'WCGET\x01'
Thx for info - will take a look at it.
Thx for sharing - will set them up probably later today.
Maybe some progress there as well but maybe Iâm wrong.
I inserted User=user to run the service as âuserâ instead of ârootâ.
Dec 30 14:12:19 NUC8i3BEK systemd[1]: Started Gecko client service.
Dec 30 14:12:19 NUC8i3BEK python3[273388]: Traceback (most recent call last):
Dec 30 14:12:19 NUC8i3BEK python3[273388]: File "/opt/geckoclient/client.py", line 57, in prepare_logger
Dec 30 14:12:19 NUC8i3BEK python3[273388]: rfh = logging.handlers.RotatingFileHandler(
Dec 30 14:12:19 NUC8i3BEK python3[273388]: File "/usr/lib/python3.8/logging/handlers.py", line 148, in __init__
Dec 30 14:12:19 NUC8i3BEK python3[273388]: BaseRotatingHandler.__init__(self, filename, mode, encoding, delay)
Dec 30 14:12:19 NUC8i3BEK python3[273388]: File "/usr/lib/python3.8/logging/handlers.py", line 55, in __init__
Dec 30 14:12:19 NUC8i3BEK python3[273388]: logging.FileHandler.__init__(self, filename, mode, encoding, delay)
Dec 30 14:12:19 NUC8i3BEK python3[273388]: File "/usr/lib/python3.8/logging/__init__.py", line 1147, in __init__
Dec 30 14:12:19 NUC8i3BEK python3[273388]: StreamHandler.__init__(self, self._open())
Dec 30 14:12:19 NUC8i3BEK python3[273388]: File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
Dec 30 14:12:19 NUC8i3BEK python3[273388]: return open(self.baseFilename, self.mode, encoding=self.encoding)
Dec 30 14:12:19 NUC8i3BEK python3[273388]: PermissionError: [Errno 13] Permission denied: '/var/log/geckoclient.log'
Dec 30 14:12:19 NUC8i3BEK python3[273388]: During handling of the above exception, another exception occurred:
Dec 30 14:12:19 NUC8i3BEK python3[273388]: Traceback (most recent call last):
Dec 30 14:12:19 NUC8i3BEK python3[273388]: File "/opt/geckoclient/client.py", line 263, in <module>
Dec 30 14:12:19 NUC8i3BEK python3[273388]: prepare_logger()
Dec 30 14:12:19 NUC8i3BEK python3[273388]: File "/opt/geckoclient/client.py", line 60, in prepare_logger
Dec 30 14:12:19 NUC8i3BEK python3[273388]: rfh = logging.handlers.RotatingFileHandler(
Dec 30 14:12:19 NUC8i3BEK python3[273388]: File "/usr/lib/python3.8/logging/handlers.py", line 148, in __init__
Dec 30 14:12:19 NUC8i3BEK python3[273388]: BaseRotatingHandler.__init__(self, filename, mode, encoding, delay)
Dec 30 14:12:19 NUC8i3BEK python3[273388]: File "/usr/lib/python3.8/logging/handlers.py", line 55, in __init__
Dec 30 14:12:19 NUC8i3BEK python3[273388]: logging.FileHandler.__init__(self, filename, mode, encoding, delay)
Dec 30 14:12:19 NUC8i3BEK python3[273388]: File "/usr/lib/python3.8/logging/__init__.py", line 1147, in __init__
Dec 30 14:12:19 NUC8i3BEK python3[273388]: StreamHandler.__init__(self, self._open())
Dec 30 14:12:19 NUC8i3BEK python3[273388]: File "/usr/lib/python3.8/logging/__init__.py", line 1176, in _open
Dec 30 14:12:19 NUC8i3BEK python3[273388]: return open(self.baseFilename, self.mode, encoding=self.encoding)
Dec 30 14:12:19 NUC8i3BEK python3[273388]: PermissionError: [Errno 13] Permission denied: '/gecko_client.log'
Dec 30 14:12:19 NUC8i3BEK systemd[1]: gecko.service: Main process exited, code=exited, status=1/FAILURE
Dec 30 14:12:19 NUC8i3BEK systemd[1]: gecko.service: Failed with result 'exit-code'.
Dec 30 14:12:20 NUC8i3BEK systemd[1]: gecko.service: Scheduled restart job, restart counter is at 5.
Dec 30 14:12:20 NUC8i3BEK systemd[1]: Stopped Gecko client service.
Dec 30 14:12:20 NUC8i3BEK systemd[1]: gecko.service: Start request repeated too quickly.
Dec 30 14:12:20 NUC8i3BEK systemd[1]: gecko.service: Failed with result 'exit-code'.
Dec 30 14:12:20 NUC8i3BEK systemd[1]: Failed to start Gecko client service.
It seems as if âimport paho.mqtt.client as pahoâ is working now - need to take a look whatâs wrong with the permissions of /gecko_client.log.
Dec 30 14:53:41 NUC8i3BEK systemd[1]: Started Gecko client service.
Dec 30 14:53:42 NUC8i3BEK python3[278846]: Traceback (most recent call last):
Dec 30 14:53:42 NUC8i3BEK python3[278846]: File "/opt/geckoclient/client.py", line 289, in <module>
Dec 30 14:53:42 NUC8i3BEK python3[278846]: s = GeckoSpa(locator.get_spa_from_name(config.SPA_NAME))
Dec 30 14:53:42 NUC8i3BEK python3[278846]: File "/home/user/.local/lib/python3.8/site-packages/geckolib/spa.py", line 73, in __init__
Dec 30 14:53:42 NUC8i3BEK python3[278846]: GeckoSpaPack.__init__(self)
Dec 30 14:53:42 NUC8i3BEK python3[278846]: File "/home/user/.local/lib/python3.8/site-packages/geckolib/driver/spapack.py", line 15, in __init__
Dec 30 14:53:42 NUC8i3BEK python3[278846]: GeckoSpaPack.download_if_needed()
Dec 30 14:53:42 NUC8i3BEK python3[278846]: File "/home/user/.local/lib/python3.8/site-packages/geckolib/driver/spapack.py", line 32, in download_if_needed
Dec 30 14:53:42 NUC8i3BEK python3[278846]: GeckoSpaPack.download()
Dec 30 14:53:42 NUC8i3BEK python3[278846]: File "/home/user/.local/lib/python3.8/site-packages/geckolib/driver/spapack.py", line 43, in download
Dec 30 14:53:42 NUC8i3BEK python3[278846]: with open(GeckoConstants.SPA_PACK_STRUCT_FILE, "wb") as out:
Dec 30 14:53:42 NUC8i3BEK python3[278846]: PermissionError: [Errno 13] Permission denied: 'SpaPackStruct.xml'
Dec 30 14:53:42 NUC8i3BEK systemd[1]: gecko.service: Main process exited, code=exited, status=1/FAILURE
Dec 30 14:53:42 NUC8i3BEK systemd[1]: gecko.service: Failed with result 'exit-code'.
Dec 30 14:53:42 NUC8i3BEK systemd[1]: gecko.service: Scheduled restart job, restart counter is at 5.
Dec 30 14:53:42 NUC8i3BEK systemd[1]: Stopped Gecko client service.
Dec 30 14:53:42 NUC8i3BEK systemd[1]: gecko.service: Start request repeated too quickly.
Dec 30 14:53:42 NUC8i3BEK systemd[1]: gecko.service: Failed with result 'exit-code'.
Dec 30 14:53:42 NUC8i3BEK systemd[1]: Failed to start Gecko client service.
Well, improvement is that client.py runs till line 289 compared to line 57 earlier today and line 19 yesterday
However, again failing with a permission error⊠it seems there is an attempt to download SpaPackStruct.xml âif neededâ⊠why that? SpaPackStruct.xml is located in /home/user.
Permissions should allow everyone to read the file and nobody should write anything to that file (I think).
glad to see that you made some progress. Indeed I forgot that I have done the installation on a stupid Proxmox container with root. So maybe a bit more configuration work is needed in case the service should not run under root rights.
Regarding the two locations of the error log, that is on purpose. In case /var/log cannot be used it falls back into the folder the script had been called from. That explains why you have two log files.
Finally the error message is wrong (copy/paste error) The message occurs because of an unexpected disconnection. Unluckily the error number are not documented. I expect something is wrong with your broker setup.
Can you please change in the config.py file the log level to DEBUG. Maybe that will bring some more light.
Can you please also check, if you have allowed anonymous access to the broker. I assume you have mosquitto installed and with the last major version update anonymous access is disabled by default.
I added a new conf file for mosquitto - hope this is the correct way to allow anonymous accessâŠ
/etc/mosquitto/conf.d/mosquitto_local.conf
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example
allow_anonymous true
Then I restarted mosquitto.service and started client.py again After some time I interrupted client.py using CTRL-C.
Just need to double check whether all data matches the output from GeckoShell.run().
The errors reported in the logfile keep going onâŠ
Next step will be to set up things/items, etc in openhab.
This will take a bit more time, since I will be away from home next week - will try to connect remotely from time to time.
Hi Marcus,
at least the data are there. I checked in my log file. I have the same
WARNING - Couldn't find new handler for b'WCGET\x01'
entries, but not the connection errors. I guess there is still something wrong with your mosquitto setup. Iâm using a authentication, so maybe there is something in that direction. You can also have a look at the mosquitto log file under (default under /var/log/mosquitto/mosquitto.log), but can be configured in /etc/mosquitto/mosquitto.conf
I have also written a small mqtt test script. Only to check if publishing and subscribing is working, but I guess that is not needed any more. Anyhow you can give it a try
created password_file and activated authentication.
The error messages below seem to be gone - with and without authenticationâŠ
In the meantime I restarted gecko, mosquitto and openhab - this might be the reason.
Anyway, now struggling to get switching the lights from openhab working againâŠ
Edit 16:57:
Switching lights is working again after a reboot of the server.
Is this something you would consider implementing in the nearer future?
glad to see that most seems to work now.
My main intention was to have the temperature, light and remainders working. Personally I do not see a big advantage to switch the pumps or blowers as I donât carry my mobile inside the pool and at least until do not have my Rhasspy near to the pool to use speak control
I can have a look and do a blind development of the blower state as I do not have a blower. That might be not so difficult.
Originally I also wanted to add the ability to switch the watercare mode. But so far I have only changed that mode once in 6 month we have our pool now. Thus implementing will cost much more time than walking to the pool and change the value by hand
Today setting the temperature is working again for me. Honestly I do not know why it sometimes work and sometimes not⊠maybe there is a bug in the underlying geckolibâŠ
Best regards
Frank
Whichever temperature I set in openhab - it always pushes the current temperature (38°) to the broker.
Any idea why this is the case.
Settings are as per your channel/item data.