NEWS
Steuerung Gecko in Touch 2 per iob möglich? (Wellis)
-
@stefan-berlin1 Hallo, "Timed out: Maximum script runtime reached." ist eine Sicherheitsmaßnahme in den Python-Skripten. Es gibt Situationen wo die geckolib nicht mit dem SpaController kommunizieren kann und dann "hängen bleibt". Da die Scripte aller 30 Sekunden aufgerufen werden, wäre das wie das Märchen vom süßen Brei. Es würden schnell, immer mehr Python-Prozesse gestartet die nie beendet werden, die irgendwann den ioBroker-Host vollstopfen. Um das zu verhindern, ist der Timeout nach 90 Sekunden eingebaut.
Jetzt wäre meine Frage, wie oft tritt der Fehler auf? 1-10x am Tag -> ignorieren. Häufiger -> da müssen wir die Ursache ermitteln.
rrov1
@rrov1
Sorry, hatte ich nicht gesehen das Du geantwortet hast. Ich war etwas beschäftigt, jetzt wollte ich nachdem ich die Daten Abfrage auch steuern. Die Pumpen kann ich anschalten, sowie Licht.Sag mal ich hab echtes Problem die Temperatur anzusteuern.
Ich versuche es erstmal über den Browser:
http://iobroker:****/set/javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur?value=37,5&ack=trueIch mache sogar bestätigen - trotzdem nimmt er es nur kurz an im IO Brocker Objekt. Trägt es ein es steht grün da und kurz danach geht es auf rot und ist wieder zurück geändert....
Der Punkt: javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur
dieser ist ja schreibgeschützt.funkt da das script rein?
Hab alles an bis auf das script : AutomatictargetTempWas mache ich falsch?
LG Stefan
-
@rrov1
Sorry, hatte ich nicht gesehen das Du geantwortet hast. Ich war etwas beschäftigt, jetzt wollte ich nachdem ich die Daten Abfrage auch steuern. Die Pumpen kann ich anschalten, sowie Licht.Sag mal ich hab echtes Problem die Temperatur anzusteuern.
Ich versuche es erstmal über den Browser:
http://iobroker:****/set/javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur?value=37,5&ack=trueIch mache sogar bestätigen - trotzdem nimmt er es nur kurz an im IO Brocker Objekt. Trägt es ein es steht grün da und kurz danach geht es auf rot und ist wieder zurück geändert....
Der Punkt: javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur
dieser ist ja schreibgeschützt.funkt da das script rein?
Hab alles an bis auf das script : AutomatictargetTempWas mache ich falsch?
LG Stefan
@stefan-berlin1 said in Steuerung Gecko in Touch 2 per iob möglich? (Wellis):
Hallo Stefan,bitte auf keinen Fall ack=true verwenden. In der Entwicklerdoku steht:
ack - Flag indicating that the value has been acknowledged by the target system
d.h. nur meine Scripte nutzen ack=true, wenn ich sicher bin, dass der SpaController den Wert übernommen hat. Meine Scripte reagieren auch nicht, wenn ack=true, auch VIS-Controls setzen den Wert ausschließlich mit ack=false.Als nächste ändere mal die Zieltemperatur und prüfe danach das ioBroker-Log. Filter setzen:
- Adapter: javascript und
- Message: TargetTemp
Es müssten dann 3 Einträge zu sehen sein:

Ist dem so?
-
@stefan-berlin1 said in Steuerung Gecko in Touch 2 per iob möglich? (Wellis):
Hallo Stefan,bitte auf keinen Fall ack=true verwenden. In der Entwicklerdoku steht:
ack - Flag indicating that the value has been acknowledged by the target system
d.h. nur meine Scripte nutzen ack=true, wenn ich sicher bin, dass der SpaController den Wert übernommen hat. Meine Scripte reagieren auch nicht, wenn ack=true, auch VIS-Controls setzen den Wert ausschließlich mit ack=false.Als nächste ändere mal die Zieltemperatur und prüfe danach das ioBroker-Log. Filter setzen:
- Adapter: javascript und
- Message: TargetTemp
Es müssten dann 3 Einträge zu sehen sein:

Ist dem so?
OK dann schaue ich mal ob das im Log kommt.
Muss target temp Script dann an sein?
Ja ich versucht mit ack weil er es zwar eingetragen hat aber es ist nie drin geblieben.Aber der Datenpunkt ist richtig zur Setzung der Temperatur ja?
Ich teste es heute Abend mal.
Für die PV überschuss programmierung hatte ich auch alles fertig. Ist quasi nur noch der heiz Befehl offen bzw. Die Temperatur Anhebung. -
OK dann schaue ich mal ob das im Log kommt.
Muss target temp Script dann an sein?
Ja ich versucht mit ack weil er es zwar eingetragen hat aber es ist nie drin geblieben.Aber der Datenpunkt ist richtig zur Setzung der Temperatur ja?
Ich teste es heute Abend mal.
Für die PV überschuss programmierung hatte ich auch alles fertig. Ist quasi nur noch der heiz Befehl offen bzw. Die Temperatur Anhebung.Aber der Datenpunkt ist richtig zur Setzung der Temperatur ja?
Ja!
Muss target temp Script dann an sein?
Ja, das Script TargetTemp.js ist dafür verantwortlich, dass die Änderung des Datenpunktes an den SpaController gesendet wird.
Ja ich versucht mit ack weil er es zwar eingetragen hat aber es ist nie drin geblieben.
Das Verhalten ist richtig so. Grundsätzlich steht im Datenpunkt die Temperatur, die der SpaController hat. Du könntest ja auch mal am Gerät die Temperatur verändern, das muss ioBroker ja mitbekommen und das würde dann in einer VIS auch mit angezeigt. Wenn du im ioBroker die Temperatur veränderst wird sie an den SpaController übertragen. Wenn das klappt dann wird der Datenpunkt mit ack=true bestätigt, falls das aber mal nicht klappt, wird wieder die im SpaController hinterlegte Temperatur eingetragen.
-
Gab wohl ein größeres Update?
Ich hab mein IOBroker geupdatet (zwangsmässig):docker (official image - v11.0.0) - buanet
js-controller: 7.1.0Dann dachte ich na das wird lustig.
Und es war auch so.
-
es hat sich was geändert laut Github....
Python3 mind. v3.13 & Pip
Wichtig: Die geckolib ab v1.0.0 benötigt Python 3.13So nun hab ich mal geupdatet:
python3 --version :Python 3.13.0
pip 25.3 from /usr/local/lib/python3.13/site-packages/pip (python 3.13)pip show geckolibName: geckolib
Version: 1.0.15
Summary: An async library to interface with Gecko Alliance products using in.touc
h2
Home-page: https://github.com/gazoodle/geckolib
Author: Gazoodle
Author-email:
License: GPLv3
Location: /usr/local/lib/python3.13/site-packages
Requires:
Required-by:Scripte alle geupdatet:
2025-12-16 03:19:00.245 - error: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py 182b4fed-6c8e-4ec3-b7ad-b33e60d4d5f3 http://172.17.0.3:8087 192.168.188.68 javascript.0.Datenpunkte.SwimSpa *** Wrong number of script arguments. *** call example: /SpaController/spa_updateBulk.py clientId ioBrSimpleRestApiUrl spaIds spaIPs dpBasePath 2025-12-16 03:19:00.245 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: endSpaUpdateConfig -> scheint sauber zu sein:
2025-12-16 03:27:00.317 - error: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py 182b4fed-6c8e-4ec3-b7ad-b33e60d4d5f3 http://172.17.0.3:8087 192.168.188.68 javascript.0.Datenpunkte.SwimSpa *** Wrong number of script arguments. *** call example: /SpaController/spa_updateBulk.py clientId ioBrSimpleRestApiUrl spaIds spaIPs dpBasePath 2025-12-16 03:27:00.318 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: end 2025-12-16 03:28:00.006 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: start 2025-12-16 03:28:00.010 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: *** executing: python3 /SpaController/spa_updateBulk.py 182b4fed-6c8e-4ec3-b7ad-b33e60d4d5f3 http://172.17.0.3:8087 192.168.188.68 javascript.0.Datenpunkte.SwimSpa 2025-12-16 03:28:00.247 - error: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py 182b4fed-6c8e-4ec3-b7ad-b33e60d4d5f3 http://172.17.0.3:8087 192.168.188.68 javascript.0.Datenpunkte.SwimSpa *** Wrong number of script arguments. *** call example: /SpaController/spa_updateBulk.py clientId ioBrSimpleRestApiUrl spaIds spaIPs dpBasePath 2025-12-16 03:28:00.247 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: end 2025-12-16 03:28:23.927 - info: admin.0 (173) ==> Connected system.user.admin from ::ffff:172.17.0.1 2025-12-16 03:28:35.744 - info: javascript.0 (2262) script.js.common.Spa.SpaMoveTargetTemp: Stopping script 2025-12-16 03:28:37.713 - info: javascript.0 (2262) script.js.common.Spa.TargetTemp: Stopping script 2025-12-16 03:28:39.021 - info: javascript.0 (2262) script.js.common.Spa.TargetTemp: start JavaScript (Javascript/js) 2025-12-16 03:28:39.034 - info: javascript.0 (2262) script.js.common.Spa.TargetTemp: registered 2 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 2025-12-16 03:28:40.504 - info: javascript.0 (2262) script.js.common.Spa.SpaMoveTargetTemp: start JavaScript (Javascript/js) 2025-12-16 03:28:40.508 - info: javascript.0 (2262) script.js.common.Spa.SpaMoveTargetTemp: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 2025-12-16 03:28:50.938 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateConfig: Stopping script 2025-12-16 03:28:50.944 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateConfig: start JavaScript (Javascript/js) 2025-12-16 03:28:50.947 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateConfig: start 2025-12-16 03:28:50.947 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateConfig: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 2025-12-16 03:28:50.952 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateConfig: *** IP(s) to disover: 192.168.188.68 2025-12-16 03:28:50.953 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateConfig: no disabled controller, doing standard discovery 2025-12-16 03:28:50.953 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateConfig: *** discovering IP: 0 => 192.168.188.68 2025-12-16 03:28:50.953 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateConfig: *** executing: python3 /SpaController/spa_config.py 182b4fed-6c8e-4ec3-b7ad-b33e60d4d5f3 http://172.17.0.3:8087 javascript.0.Datenpunkte.SwimSpa 0 192.168.188.68 2025-12-16 03:29:00.004 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: start 2025-12-16 03:29:20.018 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: timeout waiting for an execution timeslot 2025-12-16 03:30:00.004 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: start 2025-12-16 03:30:00.028 - info: javascript.0 (2262) script.js.common.Spa.SpaMoveTargetTemp: automatic temperature tracking target with 4 exceeds the min (12) or max (30) value 2025-12-16 03:30:00.031 - warn: javascript.0 (2262) getState "javascript.0.Datenpunkte.SwimSpa.1.AktuelleTemperatur" not found (3) 2025-12-16 03:30:00.182 - warn: javascript.0 (2262) at checkAndSetSpaTemp (script.js.common.Spa.SpaMoveTargetTemp:20:22) 2025-12-16 03:30:00.182 - warn: javascript.0 (2262) at Object. (script.js.common.Spa.SpaMoveTargetTemp:7:5) 2025-12-16 03:30:00.182 - warn: javascript.0 (2262) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/src/lib/sandbox.ts:2389:34) 2025-12-16 03:30:00.182 - warn: javascript.0 (2262) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/Job.js:171:15) 2025-12-16 03:30:00.182 - warn: javascript.0 (2262) at /opt/iobroker/node_modules/node-schedule/lib/Invocation.js:268:28 2025-12-16 03:30:00.182 - warn: javascript.0 (2262) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/Invocation.js:228:7) 2025-12-16 03:30:00.182 - warn: javascript.0 (2262) at listOnTimeout (node:internal/timers:588:17) 2025-12-16 03:30:00.182 - warn: javascript.0 (2262) at processTimers (node:internal/timers:523:7) 2025-12-16 03:30:00.183 - warn: javascript.0 (2262) getState "javascript.0.Datenpunkte.SwimSpa.1.ZielTemperatur" not found (3) 2025-12-16 03:30:00.183 - warn: javascript.0 (2262) at checkAndSetSpaTemp (script.js.common.Spa.SpaMoveTargetTemp:21:18) 2025-12-16 03:30:00.183 - warn: javascript.0 (2262) at Object. (script.js.common.Spa.SpaMoveTargetTemp:7:5) 2025-12-16 03:30:00.183 - warn: javascript.0 (2262) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/src/lib/sandbox.ts:2389:34) 2025-12-16 03:30:00.183 - warn: javascript.0 (2262) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/Job.js:171:15) 2025-12-16 03:30:00.183 - warn: javascript.0 (2262) at /opt/iobroker/node_modules/node-schedule/lib/Invocation.js:268:28 2025-12-16 03:30:00.183 - warn: javascript.0 (2262) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/Invocation.js:228:7) 2025-12-16 03:30:00.183 - warn: javascript.0 (2262) at listOnTimeout (node:internal/timers:588:17) 2025-12-16 03:30:00.184 - warn: javascript.0 (2262) at processTimers (node:internal/timers:523:7) 2025-12-16 03:30:00.184 - warn: javascript.0 (2262) State "javascript.0.Datenpunkte.SwimSpa.1.ZielTemperatur" not found 2025-12-16 03:30:00.184 - warn: javascript.0 (2262) at setState (/opt/iobroker/node_modules/iobroker.javascript/src/lib/sandbox.ts:2661:20) 2025-12-16 03:30:00.184 - warn: javascript.0 (2262) at checkAndSetSpaTemp (script.js.common.Spa.SpaMoveTargetTemp:32:17) 2025-12-16 03:30:00.184 - warn: javascript.0 (2262) at Object. (script.js.common.Spa.SpaMoveTargetTemp:7:5) 2025-12-16 03:30:00.184 - warn: javascript.0 (2262) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/src/lib/sandbox.ts:2389:34) 2025-12-16 03:30:00.184 - warn: javascript.0 (2262) at Job.invoke (/opt/iobroker/node_modules/node-schedule/lib/Job.js:171:15) 2025-12-16 03:30:00.184 - warn: javascript.0 (2262) at /opt/iobroker/node_modules/node-schedule/lib/Invocation.js:268:28 2025-12-16 03:30:00.184 - warn: javascript.0 (2262) at Timeout._onTimeout (/opt/iobroker/node_modules/node-schedule/lib/Invocation.js:228:7) 2025-12-16 03:30:00.184 - warn: javascript.0 (2262) at listOnTimeout (node:internal/timers:588:17) 2025-12-16 03:30:00.185 - info: javascript.0 (2262) script.js.common.Spa.SpaMoveTargetTemp: automatic temperature tracking target with 5 exceeds the min (12) or max (38) value 2025-12-16 03:30:00.196 - info: javascript.0 (2262) script.js.common.Spa.TargetTemp: start 2025-12-16 03:30:20.018 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: timeout waiting for an execution timeslot 2025-12-16 03:30:25.026 - debug: hass.0 (301) HASS-Message: State Changed: {"entity_id":"weather.forecast_home","state":"partlycloudy","attributes":{"temperature":2.3,"dew_point":0.4,"temperature_unit":"°C","humidity":86,"cloud_coverage":96.9,"uv_index":0,"pressure":1018.3,"pressure_unit":"hPa","wind_bearing":181.8,"wind_speed":10.4,"wind_speed_unit":"km/h","visibility_unit":"km","precipitation_unit":"mm","attribution":"Weather forecast from met.no, delivered by the Norwegian Meteorological Institute.","friendly_name":"Forecast Home","supported_features":3},"last_changed":"2025-12-15T23:36:25.020576+00:00","last_reported":"2025-12-16T02:30:25.026574+00:00","last_updated":"2025-12-16T02:30:25.026574+00:00","context":{"id":"01KCJFX7G2AN9CNT2P4MFK1BX5","parent_id":null,"user_id":null}} 2025-12-16 03:30:32.215 - info: javascript.0 (2262) script.js.common.Spa.TargetTemp: timeout waiting for an execution timeslot 2025-12-16 03:30:41.012 - info: host.buanet-iobroker-1 instance system.adapter.dwd.0 in version "2.8.5" started with pid 3088 2025-12-16 03:30:43.816 - info: host.buanet-iobroker-1 instance system.adapter.dwd.0 having pid 3088 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION) 2025-12-16 03:31:00.007 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: start 2025-12-16 03:31:20.021 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: timeout waiting for an execution timeslot 2025-12-16 03:32:00.004 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: start 2025-12-16 03:32:20.020 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: timeout waiting for an execution timeslot 2025-12-16 03:32:27.312 - info: admin.0 (173) <== Disconnect system.user.admin from ::ffff:172.17.0.1 javascript 2025-12-16 03:33:00.003 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: start 2025-12-16 03:33:20.015 - info: javascript.0 (2262) script.js.common.Spa.SpaUpdateValues: timeout waiting for an execution timeslotMir fällt auch auf das er "Datenpunkte.SwimSpa.1.AktuelleTemperatur" Dabei ist es doch eigentlich SwimSpa.0.
Mhmm sehr korrios was übersehe ich schon wieder?
Er findet auch den SPA:
mit dem befehl:python3
from geckolib import GeckoShell
GeckoShell.run(["logfile client.log", "discover 192.168.188.68"])kommen auch ein Paar werte und dann:
Welcome to the Gecko shell. Type help or ? to list commands. (Gecko) Starting discovery process...Found 1 spas Connecting to spa `Kirschpool ??` at 192.168.188.68 ... connected to Kirschpool ??! Smart Winter Mode:Risk: NO Pump 1 State: OFF Pump 2 State: OFF Waterfall State: ON Circulating Pump: True Ozone: False Heater: Tempe rature 31.0°C, SetPoint 27.5°C, Real SetPoint 27.5°C, Operation Cooling Pump 1: OFF Pump 2: OFF Waterfall: OFF Light: OFF WaterCare: W aiting... Smart Winter Mode:Active: False Filter Status:Clean: True Filter Status:Purge: False Heating: False Economy Mode: False Error Sensor: OverTemp, VSP1CommLost, VSP2CommLost Heating Management: Smart GeckoInMix watched by=[](name=inMix, parent=Kirschpool ?? k ey=INMIX) Kirschp(Gecko) exitLOG> WARNING Dropping packet from ('192.168.188.68', 10022, b'SPA80:3 4:28:20:e3:2c', b'IOS182b4fed-6c8e-4ec3-b7ad-b33e60d4d5f3') because it didn't mat ch ('192.168.188.68', 10022, b'SPA80:34:28:20:e3:2c', b'IOS02ac6d28-42d0-41e3-ad2 2-274d0aa491da') -
Scheinbar hat er ein Problem beim SpaUpdateValues:
javascript.0 13:44:00.007 info start javascript.0 13:44:00.011 info *** executing: python3 /SpaController/spa_updateBulk.py 360a38b2-93fb-42c7-9284-d67af6991a5a http://172.17.0.3:8087 192.168.188.68 javascript.0.Datenpunkte.SwimSpa javascript.0 13:44:00.235 error *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py 360a38b2-93fb-42c7-9284-d67af6991a5a http://172.17.0.3:8087 192.168.188.68 javascript.0.Datenpunkte.SwimSpa *** Wrong number of script arguments. *** call example: /SpaController/spa_updateBulk.py clientId ioBrSimpleRestApiUrl spaIds spaIPs dpBasePath javascript.0 13:44:00.235 info endDie anderen scheinen ohne Fehler zu laufen.
Aber hab auch keine Werte. Und alles nur wegen nem Update. Hätte ich das Bloß nicht mehr angefasst vor Weihnachten
-
Hallo,
oje, sorry wegen des suboptimalen Erlebnisses beim Update, aber besser im Winter denn im Sommer. Das bekommen wir schon wieder hin. Die Fehlermeldungen deuten darauf hin, das die Javascripts und die Python-Scripts unterschiedliche Versionsstände haben, die nicht kompatibel sind. Ich musste die Parameter die von Javascript an Python übergeben werden anpassen :-(.
Das Update funktioniert im Prinzip wie die Installation. Hast du im Zuge der Aktualisierung:
- im Javascript Adapter erst mal alle Script angehalten.
- im Dateisystem alle Python Scripte ausgetauscht?
- im Javascript Adapter alle Javascripts mit den aktuellen Versionen ersetzt? Auch bitte an global denken.
- Wenn du nach dem Update von SpaVariablen.js auf einmal 2 SpaController hast, dann hast du in diesem Script vergessen in Zeile 4 den Aufruf anzupassen. Das macht aber nix, lösche einfach den zusätzlichen Zweig (javascript.0.Datenpunkte.SwimSpa.1) mit Datenpunkten. Ich habe bei mir 2 Controller, deswegen ist das dort immer auf 2 :-/
- Danach als erstes SpaUpdateConfig aktivieren und (noch mal) ausführen.
- Danach die anderen Scripte wieder aktivieren. Wenn eins nen Fehler hat erst mal aufhören und die Meldung hier posten.
VG
-
Ja OK ich gehe alles nochmal akkurat durch die Tage.
Ja im Winter ist es besser als im Sommer da gebe ich Dir Recht. -
So heute hab ich es mal geschafft.
in der SpaVariablen angepasst:
SpaVariablen.js// Datenpunkte erstellen (2 SpaController, 3 Pumpen, mit Wasserfall) createDatapoints(1, 2, true);Ich habe 1 Controller,
1 Umwälzpumpe zum säubern
1 Pumpe Massage für 5 Plätze (und Wasserfall) haben die bei dem Modell echt ungünstig gelöst.
2 Pumpe Massage für den Liegeplatzalso hab ich mal draus gemacht 1,2 true
die Global gestartet.
Dann die SpaUpdateConfig:19.12.2025, 23:54:25.040 [info ]: javascript.0 (29392) script.js.common.Spa.SpaUpdateConfig_js: start JavaScript (Javascript/js) 19.12.2025, 23:54:25.080 [info ]: javascript.0 (29392) script.js.common.Spa.SpaUpdateConfig_js: start 19.12.2025, 23:54:25.081 [info ]: javascript.0 (29392) script.js.common.Spa.SpaUpdateConfig_js: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 19.12.2025, 23:54:25.085 [info ]: javascript.0 (29392) script.js.common.Spa.SpaUpdateConfig_js: *** IP(s) to disover: 192.168.188.68 19.12.2025, 23:54:25.085 [info ]: javascript.0 (29392) script.js.common.Spa.SpaUpdateConfig_js: resetting scriptRunning, because it's false since more than 5 minutes 19.12.2025, 23:54:25.086 [info ]: javascript.0 (29392) script.js.common.Spa.SpaUpdateConfig_js: no disabled controller, doing standard discovery 19.12.2025, 23:54:25.086 [info ]: javascript.0 (29392) script.js.common.Spa.SpaUpdateConfig_js: *** discovering IP: 0 => 192.168.188.68 19.12.2025, 23:54:25.087 [info ]: javascript.0 (29392) script.js.common.Spa.SpaUpdateConfig_js: *** executing: python3 /SpaController/spa_config.py 360a38b2-93fb-42c7-9284-d67af6991a5a http://172.17.0.3:8087 javascript.0.Datenpunkte.SwimSpa 0 192.168.188.68sieht ja erstmal gut aus würde ich sagen :-)
so dann zugeschaltet die :
Spaupdatevalue
Spavariablen
watercaremodedann sehe ich im iobroker schon:
javascript.0 2025-12-20 00:03:00.243 error script.js.common.Spa.SpaUpdateValues_js: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py 360a38b2-93fb-42c7-9284-d67af6991a5a http://172.17.0.3:8087 192.168.188.68 javascript.0.Datenpunkte.SwimSpa*** Wrong number of script arguments.*** call example: /SpaController/spa_updateBulk.py clientId ioBrSimpleRestApiUrl spaIds spaIPs dpBasePathAlso scheinbar die Spa.SpaUpdateValues_js bzw. spa_updateBulk.py
LG
P.s ich war schon so stolz die temperaturen in der Loxone darzustellen ^^ -
Alles lösbar, das Javascript: SpaUpdateValues.js ist nicht aktuell. Bitte ersetze es mit der aktuellen Version aus dem github-Repo. Die aktuelle Version enthält in Zeile 59&60 jeweils die Variable: spaIPList, in der vorherigen Variante gibt es diese Variable noch nicht. Danach sollte alles passen.
-
Doch hab ich gemacht,
schau mal. Ich hab komplett alle ausgetauscht.
hab auch mit GitPull alle anderen neu gemacht. nun nochmal selbst runter geladen und neu hochgeladen.
hab alles aus Link Text den Verzeichnissen geholt. :-(
kann es sein das er wieder ein Problem im Docker hat Quasi?
unter javascript.0.Datenpunkte.SwimSpa.discoverIP hab ich meine reale IP wieder eingetragen.
habs auch mal testweise hier eingetragen gehabt:
javascript.0.Datenpunkte.SwimSpa.0.IPAddresseAber keine Änderung
-
Hallo,
ja, kann ein Docker Problem sein, ich muss da zugeben, ich habe das nicht getestet. Ich vermute aber die Ursache liegt schon früher. Mir ist eben beim durchschauen der Fehlermeldungen im Post #176 von dir aufgefallen, das bei den Argumenten, zwischen der Rest-API URL und der IP-Adresse des SpaControllers 2 Leerzeichen sind (statt einem). Will heißen, es fehlt der Wert aus dem Datenpunkt ID.
Kannst du bitte mal einen Screenshot der Datenpunkte beisteuern? Ich brauche nur die, die direkt unter: javascript.0.Datenpunkte.SwimSpa.0 liegen, die Ordner kannst du zugeklappt lassen. Praktisch muss ich wissen ob in ID und IPAdresse was plausibles steht oder nicht. Wenn nicht ist beim SpaUpdateConfig.js irgendwas schief gegangen. Da muss ich mir noch mal über Weihnachten einen Containter aufsetzen.Weihnachtliche Grüße
-
Ja, kein Problem. Ich habe mal im 2 Bild noch die IP eingetragen.
Wenn Du mehr Bilder brauchst sag BEscheid.
Die GUID holt er sich ja scheinbar aber schon aus dem Pool oder?

Schöne Weihnachten :-)
-
Peinlich, ich frag mich manchmal wer das programmiert hat ;-) . Ich denke, ich habe den Fehler lokalisiert. Ich hatte bei mir selbst auch schon bemerkt, das die Erinnerungen nicht mehr aktualisiert werden, aber es hat nicht klick gemacht, das ich dem mal nachgehen sollte :-|.
Richtig war von dir unter Docker den Datenpunkt: javascript.0.Datenpunkte.SwimSpa.discoverIP mit der IP-Adresse des SpaControllers zu belegen.
Wenn danach SpaUpdateConfig läuft aber weder der Datenpunkt ID noch IPAddesse mit Werten belegt ist, dann läuft dort schon was schief. SpaUpdateValues produziert dann praktisch nur noch Folgefehler, die wegen mangelnder Prüfung auf plausible Werte in den Datenpunkten nur noch weiter in die irre führen. Sorry.
Ich muss dich bitten, noch mal 3 Scripte zu aktualisieren:
- spa_config.py
- SpaUpdateValues.js und SpaUpdateConfig.js
Danach als erstes SpaUpdateConfig ausführen und prüfen, ob Werte in den Datenpunkten ID und IPAddresse stehen (auch Wasserpflegemodi und U_ID sollten gesetzt sein, sowie die Erinnerungen und ein paar der Sensoren).
Nur wenn das funktioniert, dann den Rest wieder aktivieren.
-
Du hast nicht an den Feiertagen dran gearbeitet. Oh das wollte ich nicht.
So hab genau so alles gemacht leider nein
IP bei Discover IP eingetragen
Info.ip da schreibt er die IP automatisch dann reinWasserpflege Modi ist leer.
Erinnerungen Also 0
U_ID bleibt auch leer.
Client GUID da schreibt er was rein.Nur die SpaGlobal am laufen IP eingetragen und wenn ich spaUdateConfig starte ist das der Also keine Fehler:
LOG:
27.12.2025, 01:09:05.596 [info ]: javascript.0 (24749) script.js.common.Spa.SpaUpdateConfig_js: start JavaScript (Javascript/js) 27.12.2025, 01:09:05.654 [info ]: javascript.0 (24749) script.js.common.Spa.SpaUpdateConfig_js: start 27.12.2025, 01:09:05.654 [info ]: javascript.0 (24749) script.js.common.Spa.SpaUpdateConfig_js: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 27.12.2025, 01:09:05.660 [info ]: javascript.0 (24749) script.js.common.Spa.SpaUpdateConfig_js: *** IP(s) to disover: 192.168.188.68 27.12.2025, 01:09:05.660 [info ]: javascript.0 (24749) script.js.common.Spa.SpaUpdateConfig_js: resetting scriptRunning, because it's false since more than 5 minutes 27.12.2025, 01:09:05.661 [info ]: javascript.0 (24749) script.js.common.Spa.SpaUpdateConfig_js: no disabled controller, doing standard discovery 27.12.2025, 01:09:05.661 [info ]: javascript.0 (24749) script.js.common.Spa.SpaUpdateConfig_js: *** discovering IP: 0 => 192.168.188.68 27.12.2025, 01:09:05.662 [info ]: javascript.0 (24749) script.js.common.Spa.SpaUpdateConfig_js: *** executing: python3 /SpaController/spa_config.py d37e243f-9fba-4403-b441-df72cb3b1d84 http://172.17.0.3:8087 javascript.0.Datenpunkte.SwimSpa 0 192.168.188.68ich hab trotzdem weiter geschaut. Bei der SpaUpdateValue
Log:
27.12.2025, 01:42:43.011 [info ]: javascript.0 (25209) script.js.common.Spa.SpaUpdateValues_js: Stopping script 27.12.2025, 01:42:43.017 [info ]: javascript.0 (25209) script.js.common.Spa.SpaUpdateValues_js: start JavaScript (Javascript/js) 27.12.2025, 01:42:43.026 [info ]: javascript.0 (25209) script.js.common.Spa.SpaUpdateValues_js: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions 27.12.2025, 01:43:00.005 [info ]: javascript.0 (25209) script.js.common.Spa.SpaUpdateValues_js: start 27.12.2025, 01:43:00.007 **[warn ]: javascript.0 (25209) script.js.common.Spa.SpaUpdateValues_js: no ID set for spa controller: javascript.0.Datenpunkte.SwimSpa.0.ID try to run SpaUpdateConfig first!** 27.12.2025, 01:43:00.007 [info ]: javascript.0 (25209) script.js.common.Spa.SpaUpdateValues_js: no spa controller found 27.12.2025, 01:43:00.007 [info ]: javascript.0 (25209) script.js.common.Spa.SpaUpdateValues_js: endAllgemein Java Info:
2025-12-27 01:44:00.007 warn script.js.common.Spa.SpaUpdateValues_js: no ID set for spa controller: javascript.0.Datenpunkte.SwimSpa.0.ID try to run SpaUpdateConfig first! -
Io Broker 7.7.20
Als Docker von Buanet. Latestsimple-api
Einfache RESTful APIInstallierte Instanzen:
1
Verfügbare Version:
2.8.0
Installierte Version:
2.8.0Ich habe ihn nochmal neu gestartet.
Es geht es kommen Werte. :-)UID Erinnerungen alles drin plötzlich :-)
Dann schau ich mir das mal an und starte die Skripte alle mal bis auf targettemp, mag diese anpassung der temperatur nicht
-
Es scheint alles zugehen :-)
Ich hab aber nochmal ne Frage.
ich schicke den Befehl:
http://iobroker:8087/set/javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur?value=35dann gehts. Schicke ich es über die Loxone:
ich übertrage es mit /set/javascript.0.Datenpunkte.SwimSpa.0.Zieltemperatur?value=#V
wobei #V der wert ist all so 35
Es kommt dann
hast Du da ein Rat?
simple-api.0 2025-12-27 17:03:50.829 info State value to set for "javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur" has to be type "number" but received type "string"avascript.0 2025-12-27 17:04:05.364 error script.js.common.Spa.SpaUpdateValues_js: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py d37e243f-9fba-4403-b441-df72cb3b1d84 http://172.17.0.3:8087 SPA80:34:28:20:e3:2c 192.168.188.68 javascript.0.Datenpunkte.SwimSpa Traceback (most recent call last): File "/SpaController/spa_updateBulk.py", line 346, in <module> asyncio.run(main()) ~~~~~~~~~~~^^^^^^^^ File "/usr/local/lib/python3.13/asyncio/runners.py", line 194, in run return runner.run(main) ~~~~~~~~~~^^^^^^ File "/usr/local/lib/python3.13/asyncio/runners.py", line 118, in run return self._loop.run_until_complete(task) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^ File "/usr/local/lib/python3.13/asyncio/base_events.py", line 721, in run_until_complete return future.result() ~~~~~~~~~~~~~^^ File "/SpaController/spa_updateBulk.py", line 191, in main currentIoBrVal = float(searchForValue("id", ioBrDp, "val", currentStates)) ValueError: could not convert string to float: '#V'
fggg -
Es scheint alles zugehen :-)
Ich hab aber nochmal ne Frage.
ich schicke den Befehl:
http://iobroker:8087/set/javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur?value=35dann gehts. Schicke ich es über die Loxone:
ich übertrage es mit /set/javascript.0.Datenpunkte.SwimSpa.0.Zieltemperatur?value=#V
wobei #V der wert ist all so 35
Es kommt dann
hast Du da ein Rat?
simple-api.0 2025-12-27 17:03:50.829 info State value to set for "javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur" has to be type "number" but received type "string"avascript.0 2025-12-27 17:04:05.364 error script.js.common.Spa.SpaUpdateValues_js: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py d37e243f-9fba-4403-b441-df72cb3b1d84 http://172.17.0.3:8087 SPA80:34:28:20:e3:2c 192.168.188.68 javascript.0.Datenpunkte.SwimSpa Traceback (most recent call last): File "/SpaController/spa_updateBulk.py", line 346, in <module> asyncio.run(main()) ~~~~~~~~~~~^^^^^^^^ File "/usr/local/lib/python3.13/asyncio/runners.py", line 194, in run return runner.run(main) ~~~~~~~~~~^^^^^^ File "/usr/local/lib/python3.13/asyncio/runners.py", line 118, in run return self._loop.run_until_complete(task) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^ File "/usr/local/lib/python3.13/asyncio/base_events.py", line 721, in run_until_complete return future.result() ~~~~~~~~~~~~~^^ File "/SpaController/spa_updateBulk.py", line 191, in main currentIoBrVal = float(searchForValue("id", ioBrDp, "val", currentStates)) ValueError: could not convert string to float: '#V'
fggg@Stefan-Berlin1 sagte in Steuerung Gecko in Touch 2 per iob möglich? (Wellis):
Schön zu hören das es jetzt doch geht. Ich habe schon etwas drüber geknobelt und die Fehlerbehandlung noch weiter verbessert, aber lass das jetzt von den eingesetzten Scriptständen mal so wie es ist.Ich denke dein:
/set/javascript.0.Datenpunkte.SwimSpa.0.Zieltemperatur?value=#V
aus Loxone ist falsch. Ich vermute Loxone sendet wirklich den Wert "#V" und nicht die von dir erwartete Zahl "35". In der Folge schmiert auch spa_updateBulk.py ab, weil es jede Minute den Wert holt und an der Stelle eine Dezimalzahl und nicht "#V" erwartet...
Wechsle mal in die Objektansicht und stelle bei der Zieltemperatur manuell eine Zahl ein, sagen "33", dann:
- 1 Minute warten, spa_updateBulk.py sollte sauber laufen und ggf. die im SpaController eingestellte Zieltemperatur zurückschreiben.
- Jetzt mit Loxone deinen neuen Zielwert eintragen
Wenn in der Objektansicht jetzt "#V" steht, dann liegts an dem was Loxone sendet.
Wenn ich die Loxone Doku so lese müsste es "\v" sein um den Wert zu senden. Ich habe aber kein Beispiel zur Hand, da ich die Temperatur im Sommer komplett automatisch nachziehen lasse.