NEWS
Steuerung Gecko in Touch 2 per iob möglich? (Wellis)
-
@iobroker-neuling Wenn du die Datenpunkte schon erstellt hast, dann solltest du jetzt mit Schritt 3 der Anleitung weitermachen. Es müssen wie beschrieben 2 Skripte im Javascript Adapter laufen, eins was aller paar Stunden sich eher selten ändernde Werte ausliest und eins was jede Minute ein paar Werte holt.
Wenn du nicht damit zurecht kommst kannst du mir auch ein Nachricht schicken, dann helfe ich dir. Ich gebe zu das mit den Skripten ist komplizierter wie ein Adapter, aber auch nicht so kompliziert. Wenn's einmal läuft musst du nicht mehr viel dran machen, danach dann die Themen wie Historie und Überschussstromsteuerung .
-
Hallo,
ich bin nun auch stolzer Besitzer eines Wellis Whirlpools mit in Touch 2.
Ich benutze eine Synology mit IO Broker im Docker. Node 18.20.2 NPM10.5.0
Die Skripte und Datenpunkte haben Problemlos geklappt.
Python ist auch installiert.
Ich hab jedoch ein Problem das ich Pip nicht installiert bekomme:
Im Terminal sagt er mir dann folgendes:root@buanet-iobroker-1:/opt/iobroker# pip install geckolib bash: pip: command not found
wenn ich über den Github installer gehe kommt folgendes:
$ iobroker url https://github.com/gazoodle/geckolib --host buanet-iobroker-1 --debug Installing gazoodle/geckolib#973b04d56e93fa66dad95bfac8f00dc36d8057f1... (System call) npm WARN tarball tarball data for github:gazoodle/geckolib#973b04d56e93fa66dad95bfac8f00dc36d8057f1 (null) seems to be corrupted. Trying again. npm WARN tarball tarball data for github:gazoodle/geckolib#973b04d56e93fa66dad95bfac8f00dc36d8057f1 (null) seems to be corrupted. Trying again. npm ERR! syscall opennpm ERR! path /opt/iobroker/.npm/_cacache/tmp/git-cloneNuRZZ9/package.json host.buanet-iobroker-1 Cannot install gazoodle/geckolib#973b04d56e93fa66dad95bfac8f00dc36d8057f1: 254 ERROR: Process exited with code 25
Ansonsten sagt er mir beim Script Spa Update ausführen folgendes.
01:21:19.552 info start 01:21:19.557 info *** executing: python3 /SpaController/spa_config.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa 01:21:19.665 info *** stderr: Error: Command failed: python3 /SpaController/spa_config.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa Traceback (most recent call last): File "/SpaController/spa_config.py", line 4, in <module> import requests ModuleNotFoundError: No module named 'requests' 01:21:19.666 info end
Ich würde mich sehr freuen wenn ich es zum laufen bekomme da ich gerne Sonnenüberschuss der PV gern steuern würde
Gruß Stefan
-
@stefan-berlin1 Hallo Stefan,
ich würde mich der Einfachheit halber darauf konzentrieren, das wir pip ans laufen bekommen. Führe mal bitte mal folgendes aus (Quelle) :python3 --version python3 -m pip --version
aus und stelle das Ergebnis mal bereit.
-
@rrov1 sagte in Steuerung Gecko in Touch 2 per iob möglich? (Wellis):
python3 --version
Na klar das denke ich auch das dies erst laufen muss.
root@buanet-iobroker-1:/opt/iobroker# python3 --version Python 3.11.2 root@buanet-iobroker-1:/opt/iobroker# python3 -m pip --version pip 23.0.1 from /usr/lib/python3/dist-packages/pip (python 3.11)
Ich hoffe dies hilft?
hab auch nochmal probiert geckolib zu installieren
root@buanet-iobroker-1:/opt/iobroker# pip install geckolib error: externally-managed-environment × This environment is externally managed ╰─> To install Python packages system-wide, try apt install python3-xyz, where xyz is the package you are trying to install. If you wish to install a non-Debian-packaged Python package, create a virtual environment using python3 -m venv path/to/venv. Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make sure you have python3-full installed. If you wish to install a non-Debian packaged Python application, it may be easiest to use pipx install xyz, which will manage a virtual environment for you. Make sure you have pipx installed. See /usr/share/doc/python3.11/README.venv for more information. note: If you believe this is a mistake, please contact your Python installation o r OS distribution provider. You can override this, at the risk of breaking your P ython installation or OS, by passing --break-system-packages. hint: See PEP 668 for the detailed specification.
-
@stefan-berlin1 sagte in Steuerung Gecko in Touch 2 per iob möglich? (Wellis):
error: externally-managed-environment
der Fehler ist aufzuheben mit:
sudo rm /usr/lib/python3.11/EXTERNALLY-MANAGED
nun geht es auch geckolib lässt sich installieren.
So nun die IoBroker Logfile da hab ich noch 1 Fehler:
2024-04-29 22:19:00.062 - info: host.buanet-iobroker-1 instance system.adapter.javascript.0 started with pid 2577 2024-04-29 22:19:01.237 - info: javascript.0 (2577) starting. Version 7.8.0 in /opt/iobroker/node_modules/iobroker.javascript, node: v18.20.2, js-controller: 5.0.19 2024-04-29 22:19:01.881 - info: javascript.0 (2577) requesting all states 2024-04-29 22:19:01.882 - info: javascript.0 (2577) requesting all objects 2024-04-29 22:19:02.453 - info: javascript.0 (2577) received all objects 2024-04-29 22:19:02.456 - info: javascript.0 (2577) received all states 2024-04-29 22:19:04.540 - info: javascript.0 (2577) Start javascript script.js.common.Spa.SpaVariablen 2024-04-29 22:19:04.563 - info: javascript.0 (2577) script.js.common.Spa.SpaVariablen: *** start: createDatapoints(nDevCnt: 1, nPumpCnt: 3, createWaterfall: true) v0.2.5 2024-04-29 22:19:04.567 - info: javascript.0 (2577) script.js.common.Spa.SpaVariablen: *** end: createDatapoints 2024-04-29 22:19:04.567 - info: javascript.0 (2577) script.js.common.Spa.SpaVariablen: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2024-04-29 22:19:04.581 - info: javascript.0 (2577) Start javascript script.js.common.Spa.LightToggle 2024-04-29 22:19:04.583 - info: javascript.0 (2577) script.js.common.Spa.LightToggle: registered 2 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2024-04-29 22:19:04.589 - info: javascript.0 (2577) Start javascript script.js.common.Spa.PumpSwitches 2024-04-29 22:19:04.591 - info: javascript.0 (2577) script.js.common.Spa.PumpSwitches: registered 2 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2024-04-29 22:19:04.592 - info: javascript.0 (2577) Start javascript script.js.common.Spa.SpaMoveTargetTemp 2024-04-29 22:19:04.629 - info: javascript.0 (2577) script.js.common.Spa.SpaMoveTargetTemp: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 2024-04-29 22:19:04.629 - info: javascript.0 (2577) Start javascript script.js.common.Spa.SpaUpdateConfig 2024-04-29 22:19:04.633 - info: javascript.0 (2577) script.js.common.Spa.SpaUpdateConfig: start 2024-04-29 22:19:04.634 - info: javascript.0 (2577) script.js.common.Spa.SpaUpdateConfig: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 2024-04-29 22:19:04.636 - info: javascript.0 (2577) script.js.common.Spa.SpaUpdateConfig: *** executing: python3 /SpaController/spa_config.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa 2024-04-29 22:19:04.647 - info: javascript.0 (2577) script.js.common.Spa.SpaVariablen: *** leaving guid unchanged 2024-04-29 22:19:04.649 - info: javascript.0 (2577) Start javascript script.js.common.Spa.SpaUpdateValues 2024-04-29 22:19:04.657 - info: javascript.0 (2577) script.js.common.Spa.SpaUpdateValues: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 2024-04-29 22:19:04.658 - info: javascript.0 (2577) Start javascript script.js.common.Spa.SpaVariablen 2024-04-29 22:19:04.660 - info: javascript.0 (2577) script.js.common.Spa.SpaVariablen: *** start: createDatapoints(nDevCnt: 1, nPumpCnt: 3, createWaterfall: true) v0.2.5 2024-04-29 22:19:04.662 - info: javascript.0 (2577) script.js.common.Spa.SpaVariablen: *** end: createDatapoints 2024-04-29 22:19:04.662 - info: javascript.0 (2577) script.js.common.Spa.SpaVariablen: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2024-04-29 22:19:04.662 - info: javascript.0 (2577) Start javascript script.js.common.Spa.TargetTemp 2024-04-29 22:19:04.665 - info: javascript.0 (2577) script.js.common.Spa.TargetTemp: registered 2 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2024-04-29 22:19:04.717 - info: javascript.0 (2577) Start javascript script.js.common.Spa.WatercareMode 2024-04-29 22:19:04.719 - info: javascript.0 (2577) script.js.common.Spa.WatercareMode: registered 2 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2024-04-29 22:19:04.751 - info: javascript.0 (2577) script.js.common.Spa.SpaVariablen: *** leaving guid unchanged 2024-04-29 22:19:13.132 - info: admin.0 (142) <== Disconnect system.user.admin from ::ffff:172.17.0.1 javascript 2024-04-29 22:19:14.933 - info: javascript.0 (2577) script.js.common.Spa.SpaUpdateConfig: end 2024-04-29 22:20:00.012 - info: javascript.0 (2577) script.js.common.Spa.SpaUpdateValues: start 2024-04-29 22:20:00.022 - info: host.buanet-iobroker-1 instance system.adapter.dwd.0 started with pid 2594 2024-04-29 22:20:00.019 - info: javascript.0 (2577) script.js.common.Spa.SpaUpdateValues: *** executing: python3 /SpaController/spa_updateBulk.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa 2024-04-29 22:20:00.253 - info: javascript.0 (2577) script.js.common.Spa.SpaUpdateValues: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa 2024-04-29 22:20:00.253 - info: javascript.0 (2577) script.js.common.Spa.SpaUpdateValues: end
Dort macht er
python3 /SpaControllerEin Leerzeichen nach dem phyton3 hab in der SpaGlobal kein Leerzeichen drin:
// Pfade für die Datenpunkablage const BASE_ADAPTER = "javascript.0"; const BASE_FOLDER = "Datenpunkte.SwimSpa"; const SPA_EXECUTEABLE = "python3" const PY_SCRIPTS_FOLDER = "/SpaController"
wo ist noch etwas konfiguriert?
wie verbindet er sich mit dem Pool? -
Leider zeigt er mir in den Objekten noch keine Änderung:
Aktuell sieht der Log so aus:
2024-05-01 01:29:00.004 - info: javascript.0 (2931) script.js.common.Spa.SpaUpdateValues: start 2024-05-01 01:29:00.006 - info: javascript.0 (2931) script.js.common.Spa.SpaUpdateValues: *** executing: python3 /SpaController/spa_updateBulk.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa 2024-05-01 01:29:00.179 - info: javascript.0 (2931) script.js.common.Spa.SpaUpdateValues: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa 2024-05-01 01:29:00.179 - info: javascript.0 (2931) script.js.common.Spa.SpaUpdateValues: end 2024-05-01 01:30:00.008 - info: javascript.0 (2931) script.js.common.Spa.SpaUpdateValues: start 2024-05-01 01:30:00.012 - info: javascript.0 (2931) script.js.common.Spa.SpaUpdateValues: *** executing: python3 /SpaController/spa_updateBulk.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa 2024-05-01 01:30:00.021 - info: host.buanet-iobroker-1 instance system.adapter.dwd.0 started with pid 11321 2024-05-01 01:30:00.029 - info: javascript.0 (2931) script.js.common.Spa.SpaMoveTargetTemp: automatic temperature tracking target with 4 exceeds the min (12) or max (28) value 2024-05-01 01:30:00.029 - warn: javascript.0 (2931) getState "javascript.0.Datenpunkte.SwimSpa.1.AktuelleTemperatur" not found (3) 2024-05-01 01:30:00.030 - warn: javascript.0 (2931) at checkAndSetSpaTemp (script.js.common.Spa.SpaMoveTargetTemp:19:22) 2024-05-01 01:30:00.030 - warn: javascript.0 (2931) at Object. (script.js.common.Spa.SpaMoveTargetTemp:6:5) 2024-05-01 01:30:00.030 - warn: javascript.0 (2931) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1620:34) 2024-05-01 01:30:00.030 - warn: javascript.0 (2931) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/Job.js:171:15) 2024-05-01 01:30:00.030 - warn: javascript.0 (2931) at /opt/iobroker/node_modules/node-schedule/lib/Invocation.js:268:28 2024-05-01 01:30:00.030 - warn: javascript.0 (2931) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/Invocation.js:228:7) 2024-05-01 01:30:00.030 - warn: javascript.0 (2931) at listOnTimeout (node:internal/timers:569:17) 2024-05-01 01:30:00.030 - warn: javascript.0 (2931) at processTimers (node:internal/timers:512:7) 2024-05-01 01:30:00.031 - warn: javascript.0 (2931) getState "javascript.0.Datenpunkte.SwimSpa.1.ZielTemperatur" not found (3) 2024-05-01 01:30:00.031 - warn: javascript.0 (2931) at checkAndSetSpaTemp (script.js.common.Spa.SpaMoveTargetTemp:20:18) 2024-05-01 01:30:00.031 - warn: javascript.0 (2931) at Object. (script.js.common.Spa.SpaMoveTargetTemp:6:5) 2024-05-01 01:30:00.031 - warn: javascript.0 (2931) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1620:34) 2024-05-01 01:30:00.031 - warn: javascript.0 (2931) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/Job.js:171:15) 2024-05-01 01:30:00.031 - warn: javascript.0 (2931) at /opt/iobroker/node_modules/node-schedule/lib/Invocation.js:268:28 2024-05-01 01:30:00.032 - warn: javascript.0 (2931) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/Invocation.js:228:7) 2024-05-01 01:30:00.032 - warn: javascript.0 (2931) at listOnTimeout (node:internal/timers:569:17) 2024-05-01 01:30:00.032 - warn: javascript.0 (2931) at processTimers (node:internal/timers:512:7) 2024-05-01 01:30:00.032 - warn: javascript.0 (2931) State "javascript.0.Datenpunkte.SwimSpa.1.ZielTemperatur" not found 2024-05-01 01:30:00.032 - warn: javascript.0 (2931) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1819:20) 2024-05-01 01:30:00.032 - warn: javascript.0 (2931) at checkAndSetSpaTemp (script.js.common.Spa.SpaMoveTargetTemp:31:17) 2024-05-01 01:30:00.033 - warn: javascript.0 (2931) at Object. (script.js.common.Spa.SpaMoveTargetTemp:6:5) 2024-05-01 01:30:00.033 - warn: javascript.0 (2931) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1620:34) 2024-05-01 01:30:00.033 - warn: javascript.0 (2931) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/Job.js:171:15) 2024-05-01 01:30:00.033 - warn: javascript.0 (2931) at /opt/iobroker/node_modules/node-schedule/lib/Invocation.js:268:28 2024-05-01 01:30:00.033 - warn: javascript.0 (2931) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/Invocation.js:228:7) 2024-05-01 01:30:00.033 - warn: javascript.0 (2931) at listOnTimeout (node:internal/timers:569:17) 2024-05-01 01:30:00.033 - warn: javascript.0 (2931) at processTimers (node:internal/timers:512:7) 2024-05-01 01:30:00.033 - info: javascript.0 (2931) script.js.common.Spa.SpaMoveTargetTemp: automatic temperature tracking target with 5 exceeds the min (12) or max (37) value 2024-05-01 01:30:00.360 - info: javascript.0 (2931) script.js.common.Spa.SpaUpdateValues: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa 2024-05-01 01:30:00.361 - info: javascript.0 (2931) script.js.common.Spa.SpaUpdateValues: end
Ich hoffe wir nähern uns, Minütlich scheint er auch das Skript auszuführen
Danke für die Hilfe Gruß Stefan
-
@stefan-berlin1 Hallo Stefan,
hm, wir konzentrieren uns mal auf das Skript SpaUpdateValues, welches minütlich läuft. Es gibt jedes mal den Fehler:script.js.common.Spa.SpaUpdateValues: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087
zurück. Beim "Command failed" würde ich vermuten, das er "python3" auf deinem Zielsystem nicht findet (installiert ist es ja, das hat ja dein Beitrag vom 29.04. bewiesen). Melde dich mal lokal an der Shell an und führe mal aus:
which python3
das sollte dir den vollständigen Pfad ausgeben (bei mir: /usr/bin/python3). In der Datei SpaGlobal.js dann bitte in der Variable: SPA_EXECUTEABLE diesen Pfad eintragen und die Datei speichern (keine Leerzeichen am Ende nötig).
Danach 1 Minute warten und ins Log schauen ob sich der Zustand bessert, ggf. das Logfile noch mal hier bereitstellen.
PS: Wenn du gerade eine Shell zur Hand hast, kannst du den Python Aufruf auch mal direkt ausprobieren, also in deinem Fall:
python3 /SpaController/spa_updateBulk.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa
Dann siehst du gleich mal was passiert, die Werte an den Objekten sollten dadurch auch aktualisiert werden, wenn es läuft.
-
@rrov1 sagte in Steuerung Gecko in Touch 2 per iob möglich? (Wellis):
/SpaController/spa_updateBulk.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087
So es liegt unter:
/usr/bin/python3
was mich verwundert wo das Leerfeld herkommt zwischen phython3 und dem /SpaController
script.js.common.Spa.SpaUpdateValues: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py
angegeben hab ich es richtig:
const BASE_ADAPTER = "javascript.0"; const BASE_FOLDER = "Datenpunkte.SwimSpa"; const SPA_EXECUTEABLE = "python3" const PY_SCRIPTS_FOLDER = "/SpaController"
hab alle Java Skripte und Pyhton Scripte nochmals neu hochgeladen und auch die Hauptordner kontrolliert
Terminal Ausführung sagt:
root@buanet-iobroker-1:/opt/iobroker# python3 /SpaController/spa_updateBulk.py 7a 1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 /SpaController/spa_updateBulk.py Version: 0.2.5 *** Wrong number of script arguments. *** call example: /SpaController/spa_updateBulk.py clientId ioBrSimpleRestApiUrl spaIds dpBasePath root@buanet-iobroker-1:/opt/iobroker#
schreib ich die Abfrage python3/SpaController ..... ohne Leerzeichen kommt das raus:
root@buanet-iobroker-1:/opt/iobroker# python3/SpaController/spa_updateBulk.py 7a bash: python3/SpaController/spa_updateBulk.py: No such file or directory root@buanet-iobroker-1:/opt/iobroker# root@buanet-iobroker-1:/opt/iobroker# 1a567f-b6d9-411c-bff5-f81387a86134 http://1 72.17.0.4:8087 bash: 1a567f-b6d9-411c-bff5-f81387a86134: command not found root@buanet-iobroker-1:/opt/iobroker# python3/SpaController/spa_updateBulk.py 7a1 a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 bash: python3/SpaController/spa_updateBulk.py: No such file or directory
Hier auch gerne die Ordner Struktur als Bild
-
@stefan-berlin1 Hallo Stefan,
also das Leerzeichen zwischen "python3" und dem jeweiligen Skript füge ich ein. Das ist nicht steuerbar. Python ist eine interpretierte Sprache, sprich mit "python3" wird der Python-Interpreterprozess gestartet. Das erste Argument des Interpreterprozesses ist dann immer die Datei mit dem Code der ausgeführt werden soll. Danach kommen, Leerzeichen getrennt, weitere Parameter für das Skript.
Also bitte bei manuellen Tests immer ein Leerzeichen zwischen "python3" und dem "Skriptnamen" einfügen.Leider ist mir in meinem vorherigen Post ein Fehler unterlaufen beim Kommando zum Test an der Kommandozeile. Beim prüfen jetzt eben ist mir aufgefallen, das da noch mehr fehlt, weil der Aufruf zur Aktualisierung der Konfiguration auch nicht funktioniert hat.
Prüfe mal den Datenpunkt:
javascript.0.Datenpunkte.SwimSpa.0.ID
Enthält der schon einen Wert?Wenn nein, führe mal:
python3 /SpaController/spa_config.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa
an der Kommandozeile aus. Wenn das erfolgreich ist sollte in dem Datenpunkt ein Wert stehen.
Ich vermute aber, das geht nicht. Ich tue mich mangels Docker Kenntnissen/Erfahrungen etwas schwer mit der Interpretation der Pfade wo die Skripte liegen. Der Screenshot aus dem Datei-GUI zeigt einen Pfad docker/iobroker/SwimSpa/Python3/SpaController an. Das entspricht nicht dem was ich erwarte und zwar ein Ordner direkt unter der Wurzel des Dateisystems, aber vielleicht ist dem auch so, weil das im Docker da so hingemappt wird.
Wenn es nicht geht, wechsle in der Shell des Containers mal in das Verzeichnis wo die *.py Skripte liegen und schicke mir die Ausgabe von:pwd
-
@rrov1 sagte in Steuerung Gecko in Touch 2 per iob möglich? (Wellis):
python3 /SpaController/spa_config.py 7a1a567f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa
Mit dem Docker die Pfade verhalten sich als wären Sie nicht da.
In der ID steht nichts drin bei Objekten
Wenn ich den Befehl ausführe kommt:
root@buanet-iobroker-1:/opt/iobroker# python3 /SpaController/spa_config.py 7a1a56 7f-b6d9-411c-bff5-f81387a86134 http://172.17.0.4:8087 javascript.0.Datenpunkte.Sw imSpa /SpaController/spa_config.py Version: 0.2.2 total arguments passed: 4 Connect using client id: 7a1a567f-b6d9-411c-bff5-f81387a86134 ioBroker Simple Rest API URL: http://172.17.0.4:8087 Base path to datapoints: javascript.0.Datenpunkte.SwimSpa *** looking for spas on your network ... *** there were no spas found on your network.
muss ich irgendwo noch eine IP eingeben? oder ne Mac damit er den Spa findet?
so hier die Abfrage:
root@buanet-iobroker-1:/opt/iobroker/SwimSpa# cd Python3 root@buanet-iobroker-1:/opt/iobroker/SwimSpa/Python3# cd SpaController root@buanet-iobroker-1:/opt/iobroker/SwimSpa/Python3/SpaController# pwd /opt/iobroker/SwimSpa/Python3/SpaController root@buanet-iobroker-1:/opt/iobroker/SwimSpa/Python3/SpaController#
-
@stefan-berlin1 said in Steuerung Gecko in Touch 2 per iob möglich? (Wellis):
*** looking for spas on your network ...
*** there were no spas found on your network.Hallo Stefan,
die Fehlermeldung ist suboptimal. Normalerweise findet die geckolib den SpaController im lokalen Subnetz von ganz alleine. Dadurch, das es bei dir in einem Docker Container läuft scheitert das, weil nach meinem (bescheidenen) Wissen über Docker die Container in einem eigenen Subnetz laufen. Jetzt müssen wir erst kurz prinzipiell was Testen. Mit der geckolib kommt auch ein geckoshell. Starte mal eine shell im Container und dann führe da mal aus:python3
Dann sollte sich das Prompt ändern und:
from geckolib import GeckoShell GeckoShell.run(["logfile client.log", "discover IP.vom.Spa.Controller"])
Spannend wäre ob er mit der IP-Adresse den SpaController findet. Wenn nicht wäre es gut, wenn du mal das Logfile bereitstellen kannst.
Momentan habe ich keine Funktion vorgesehen um die IP-Adresse zu konfigurieren, aber wenn's sein soll kann ich das schon noch ergänzen.
-
ok folgendes spuckt er aus : hoffe hab alles
root@buanet-iobroker-1:/opt/iobroker# python3 Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from geckolib import GeckoShell >>> >>> GeckoShell.run(["logfile client.log", "discover IP.vom.Spa.Controller"]) <Disclaimer> ----------------------------- USE AT YOUR OWN RISK ---------------------- ------- This code will allow you to make changes to your spa configuration that i s outside of what the app, top panel and side panel settings allow. I've no t tested every setting and it might be that you prevent your spa pack from operating as it used to do. I strongly suggest dumping the configuration values with the "config" com mand and recording them somewhere safe. </Disclaimer> Starting discovery process...LOG> ERROR Exception during send processing Starting discovery process...LOG> ERROR Exception during send processing Traceback (most recent call last): File "/usr/local/lib/python3.11/dist-packages/geckolib/driver/udp_socket.py", l ine 162, in _process_send_requests self._socket.sendto(send_bytes, destination) socket.gaierror: [Errno -2] Name or service not known LOG> ERROR Exception during send processing Traceback (most recent call last): File "/usr/local/lib/python3.11/dist-packages/geckolib/driver/udp_socket.py", l ine 162, in _process_send_requests self._socket.sendto(send_bytes, destination) socket.gaierror: [Errno -2] Name or service not known LOG> ERROR Exception during send processing Traceback (most recent call last): File "/usr/local/lib/python3.11/dist-packages/geckolib/driver/udp_socket.py", l ine 162, in _process_send_requests self._socket.sendto(send_bytes, destination) socket.gaierror: [Errno -2] Name or service not known LOG> ERROR Exception during send processing Traceback (most recent call last): File "/usr/local/lib/python3.11/dist-packages/geckolib/driver/udp_socket.py", l ine 162, in _process_send_requests self._socket.sendto(send_bytes, destination) socket.gaierror: [Errno -2] Name or service not known LOG> ERROR Exception during send processing Traceback (most recent call last): self._socket.sendto(send_bytes, destination) socket.gaierror: [Errno -2] Name or service not known LOG> ERROR Exception during send processing Traceback (most recent call last): File "/usr/local/lib/python3.11/dist-packages/geckolib/driver/udp_socket.py", l ine 162, in _process_send_requests self._socket.sendto(send_bytes, destination) socket.gaierror: [Errno -2] Name or service not known LOG> ERROR Exception during send processing Traceback (most recent call last): File "/usr/local/lib/python3.11/dist-packages/geckolib/driver/udp_socket.py", l ine 162, in _process_send_requests self._socket.sendto(send_bytes, destination) socket.gaierror: [Errno -2] Name or service not known LOG> ERROR Exception during send processing Traceback (most recent call last): File "/usr/local/lib/python3.11/dist-packages/geckolib/driver/udp_socket.py", l ine 162, in _process_send_requests self._socket.sendto(send_bytes, destination) socket.gaierror: [Errno -2] Name or service not known LOG> ERROR Exception during send processing Traceback (most recent call last): File "/usr/local/lib/python3.11/dist-packages/geckolib/driver/udp_socket.py", l ine 162, in _process_send_requests self._socket.sendto(send_bytes, destination) socket.gaierror: [Errno -2] Name or service not known Found 0 spas LOG> WARNING Try using the iOS or Android app to confirm they are functioning cor rectly root@buanet-iobroker-1:/opt/iobroker#
Welches Logfile meinst Du direkt? bzw. wo finde ich dies?
-
@Stefan-Berlin1
Der Theorie nach sollte es eine Datei:client.log
im Ausführungsverzeichnis geben, aber die brauchen wir nicht. Bitte führe es noch mal aus, ersetze vor dem ausführen die Zeichenkette: IP.vom.Spa.Controller mit der richtigen IP von deinem SpaController. Hätte ich vielleicht dazuschreiben sollen .
-
@rrov1
Das hätte ich aber auch sehen können das die IP da rein kommtfrom geckolib import GeckoShell GeckoShell.run(["logfile client.log", "192.168.188.68"]) >>> >>> GeckoShell.run(["logfile client.log", "192.168.188.68"]) <Disclaimer> ----------------------------- USE AT YOUR OWN RISK ---------------------- ------- This code will allow you to make changes to your spa configuration that i s outside of what the app, top panel and side panel settings allow. I've no t tested every setting and it might be that you prevent your spa pack from operating as it used to do. I strongly suggest dumping the configuration values with the "config" com mand and recording them somewhere safe. </Disclaimer> *** Unknown syntax: 192.168.188.68 Starting discovery process...Found 0 spas LOG> WARNING Try using the iOS or Android app to confirm they are functioning cor rectly
Sieht irgendwie nicht gut aus das er ein findet. Aber vielleicht nicht richtig da ja syntax Error kommt :
*** Unknown syntax: 192.168.188.68 -
@stefan-berlin1 Wir kommen der Sache näher, vor die IP muss noch: "discover " (mit Leerzeichen).
-
@rrov1
JAAAAAAAA er hat Ihn gefunden. Du bist ein Genie.from geckolib import GeckoShell GeckoShell.run(["logfile client.log", "discover 192.168.188.68"]) Starting discovery process...Found 1 spas Connecting to spa `Kirschpool ??` at 192.168.188.68 ... connected! Heater: Temperature 38.0°C, SetPoint 38.0°C, Real SetPoint 26.9°C, Operation Cool ing Pump 1: OFF Waterfall: OFF Pump 2: OFF Lights: OFF WaterCare: Waiting... Suche 192.168.188.224, 172.30.32.1, 172.30.232.1 Starting discovery process...Found 1 spas Connecting to spa `Kirschpool ??` at 192.168.188.68 ... connected! Heater: Temperature 38.0°C, SetPoint 38.0°C, Real SetPoint 26.9°C, Operation Cool ing Pump 1: OFF Waterfall: OFF Pump 2: OFF Lights: OFF WaterCare: Waiting... Smart Winter Mode:Risk: NO Circulating Pump: OFF Ozone: OFF Smart Winter Mode:Active: False Filter Status:Clean: False Filter Status:Purge: False Economy Mode: True Error Sensor: VSP1CommLost, VSP2CommLost Welcome to the Gecko shell. Type help or ? to list commands. (Gecko) (Gecko) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python3.11/dist-packages/geckolib/utils/shared_command.py" , line 36, in run cmd.cmdloop() File "/usr/lib/python3.11/cmd.py", line 126, in cmdloop line = input(self.prompt) ^^^^^^^^^^^^^^^^^^ KeyboardInterrupt
-
@stefan-berlin1
OK, dann funktioniert erst mal die geckolib Installation bei dir im Container. Ich muss mir mal Gedanken machen wie ich die Scripte so anpasse, das es auch mit der IP-Adresse funktioniert. Außerdem brauche ich noch eine ioBroker Testinstanz im Container bei mir. Gib mir bitte mal ein paar Tage Zeit. -
@rrov1
Danke Dir vielmals. Ich glaube das es immer mehr werden die es im Docker laufen lassen.
Na klar verständlich das Du dafür Zeit brauchst. Aber das wäre wirklich sehr toll wenn Du das hinbekommst.Ich hab als erstes beim Pool geschaut ob es eine Schnittstelle gibt lach
-
@stefan-berlin1 Hallo Stefan,
ich habe einen ersten Wurf an Änderungen erstellt, damit das auch in einem ioBroker der in einem Docker Container läuft geht. Perfekt ist es noch nicht, an einer Stelle muss du momentan in einem Python Skript noch direkt was ändern. Praktisch ist ein Komplettupdate fast aller Skripte nötig (im Javascript Adapter, aber auch der Python Skripte) nötig. Bitte gehe wie folgt vor:- Alle Skripte im Ordner Spa pausieren (schalten wir nach und nach wieder an)
- im ioBroker anmelden, ins Verzeichnis SwimSpa wechseln und "git pull" aufrufen. Der git-Client sollte einige Skripte aktualisieren
- Python Skripte aktualisieren: "cp ./Python/*.py /SpaController/"
- Skript: spa_config.py anpassen, es muss an einer Stelle die IP des SpaController ergänzt werden (tausche einfach den ganzen Text aus und trage die IP von deinem SpaController ein):
- Zeile 34: async with SampleSpaMan(CLIENT_ID, spa_address="Deine.Spa.Controller.IP") as spaman:
- Damit wären wir mit den Python Skripten fertig, ab jetzt passiert alles im Javascript Adapter
- Als erstes muss ein neuer Datenpunkt für die IP-Adresse angelegt werden, öffne das Skript "SpaVariablen.js", lösche es komplett und füge den Inhalt aus SpaVariablen.js von git ein. Konfiguriere in Zeile 2 deine Werte (meist nur 1 SpaController), speichere es und führe es aus.
- Prüfe ob ein neuer Datenpunkt: javascript.0.Datenpunkte.SwimSpa.0.IPAddresse existiert, wenn ok, Skript schließen
- Skript: SpaUpdateConfig.js öffnen, Inhalt löschen und mit dem aus git: SpaUpdateConfig.js ersetzen, speichern und ausführen.
- Prüfe ob jetzt im Datenpunkt: javascript.0.Datenpunkte.SwimSpa.0.IPAddresse eine IP-Adresse hinterlegt ist, wenn ok, Skript schließen
- Skript: SpaUpdateValues.js öffnen, Inhalt löschen und mit dem aus git: SpaUpdateValues.js ersetzen, speichern und ausführen.
- Warten bis die nächste volle Minute angebrochen ist, dann wird es ausgeführt. Es sollten jetzt Werte wie die aktuelle Temperatur in den Datenpunkten stehen. Wenn Ok, Skript schließen.
- Jetzt das gleiche mit den restlichen Skripten im Ordner Spa machen. Ob sie funktionieren siehst du, wenn du Licht einschaltest, die Pumpen startest (meist nur OFF und HIGH, LOW geht bei mir nicht, ist aber als Option da), die Zieltemperatur anpasst oder den Wasserpflegemodus änderst.
Ich habe Ende nächster Woche Urlaub, da werde ich mich weiter mit den Anpassungen beschäftigen, damit es im Container läuft. Bis dahin sollte das aber so gehen (hoffe ich). Schreib mal ob du Erfolg hattest.
-
@rrov1
Hallo Stefan, wow so viel Dateien umgeändert. Super.den Datenpunkt IP Adresse hat er hinzugefügt. Bleibt aber auch leer der Wert.
Bekomme aber noch folgenden Fehler aus der Spa Update Value:
javascript.0 (31123) script.js.common.Spa.SpaUpdateValues: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py b7031c49-70a1-4f9b-917b-24df54c20973 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa *** Wrong number of script arguments. *** call example: /SpaController/spa_updateBulk.py clientId ioBrSimpleRestApiUrl spaIds spaIPs dpBasePath
und aus der Spa Update Config:
javascript.0 (31123) script.js.common.Spa.SpaUpdateConfig: *** stderr: Error: Command failed: python3 /SpaController/spa_config.py b7031c49-70a1-4f9b-917b-24df54c20973 http://172.17.0.4:8087 javascript.0.Datenpunkte.SwimSpa *** there were no spas found on your network.
bzw. der Fehler aus dem Skript ansicht debugger:
23:59:30.414 error javascript.0 (31302) script.js.common.Spa.SpaUpdateConfig: ReferenceError: BASE_ADAPTER is not defined 23:59:30.415 error javascript.0 (31302) at updateSpaConfig (script.js.common.Spa.SpaUpdateConfig:12:22) 23:59:30.415 error javascript.0 (31302) at script.js.common.Spa.SpaUpdateConfig:8:1 23:59:30.415 error javascript.0 (31302) at script.js.common.Spa.SpaUpdateConfig:49:3
Als IP übernimmt er scheinbar die Simple API aber nicht die manuelle IP aus der spa_config.py
Dort hab ich das eingetragen:
async with SampleSpaMan(CLIENT_ID, spa_address="192.168.188.68") as spaman: