NEWS
Steuerung Gecko in Touch 2 per iob möglich? (Wellis)
-
@rrov1
Danke,
so Waterfall / Zirkulations Pumpe sind das gleiche in meinem Fall.
ok SpaMoveTargetTemp.js den Datenpunkt hab ich auf false gesetzt.Ich hab mal beobachtet bei OZON Status wird auch immer off angezeigt. Setzt er den nicht ein zur Reinigung wenn Zirkulationspumpe an ist und Filterdurchlauf läuft?
Dann noch eine Sache zu Wasserpflege Modi,
dort steht auch immer " Away from home" . Bei Wasserpflege Switch hab ich nun mal auf Standart (1) gesetzt manuell. Der ist immer aktiv (APP). Sollte sich dann aber nicht auch Der Modi Name ändern? -
@stefan-berlin1 Hallo Stefan,
OZON Status immer OFF: Das habe ich auch schon beobachtet. Das war bei mir noch nie ON. Ich vermute die zugrundeliegende geckolib liefert den Wert nicht. Der Entwickler hat aber leider nur ganz wenig Zeit.
WasserpflegeModi: Der Status ändert sich nicht, das ist eine Liste der verfügbaren Wasserpflegestatusnamen, bei mir: ['Away From Home', 'Standard', 'Energy Saving', 'Super Energy Saving', 'Weekender']. Das ist vorgesehen, falls das jemand zur Visualisierung braucht.
-
Kannst Du mir irgendwie ein Rat geben für die Loxone Bausteine
Wenn PV Überschuss dann stell die temperatur auf z.b 38 Grad
Wenn kein Überschuss ist stell die Temeratur auf 25 Grad. -
@stefan-berlin1
Hallo Stefan,das habe ich tatsächlich nicht mit Loxone geregelt sondern mit einem Script oder besser mit 2 Scripten.
Script 1: SpaMoveTargetTemp.js (im Repo enthalten), das führt die Zieltemperatur immer 5 Grad höher als die aktuelle Temperatur nach und zwar zwischen der Minimaltemperatur von 12 Grad (Konstante im Script) und einer gewünschten Maximaltemperatur wie z.B. 38 Grad). Das Script läuft einfach aller 20 Minuten. Wenn du das einsetzt, dann schau in die schedule-Funktion, Zeilen 5 & 6, das ist für meine 2 Spa's du brauchst nur Zeile 5, Zieltemperatur natürlich anpassen nach Wunsch.
Script 2: Ist nicht im Repo enthalten. Das Script ist spezifisch für meine Solaranlage und Schaltet den Wasserpflegemodus ein, wenn meine Batterie in den letzten 10 Minuten über 70% gefüllt ist und genug Überschuss da ist. Natürlich schaltet das dann den Wasserpflegemodus auch wieder aus.Vieleicht reicht dir aber schon das Script mit der Zieltemperatur.
rrov1
-
@rrov1
danke Dir, ich hab das schon relativ hinbekommen.Ich habe irgendwie jedoch im io ne Fehlermeldung:
script.js.common.Spa.SpaUpdateValues: *** stderr: Error: Command failed: python3 /SpaController/spa_updateBulk.py 54657**********a2d3-7b6acda379a4 http://172.17.0.4:8087 SPA80:********:2c 192.168.188.68 javascript.0.Datenpunkte.SwimSpa 2025-07-09 21:48:42,362> ERROR Cannot get full struct, protocol retry count exceeded 2025-07-09 21:49:30,203> ERROR Exception during spa connection Traceback (most recent call last): File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in run_until_complete self.run_forever() File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever self._run_once() File "/usr/lib/python3.11/asyncio/base_events.py", line 1884, in _run_once event_list = self._selector.select(timeout) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/selectors.py", line 468, in select fd_event_list = self._selector.poll(timeout, max_ev) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/SpaController/spa_updateBulk.py", line 52, in alarm raise SystemExit("Timed out: Maximum script runtime reached.") SystemExit: Timed out: Maximum script runtime reached. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/local/lib/python3.11/dist-packages/geckolib/async_spa.py", line 367, in connect await self._connect() File "/usr/local/lib/python3.11/dist-packages/geckolib/async_spa.py", line 239, in _connect config_file_handler = await self._protocol.get( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/dist-packages/geckolib/driver/async_udp_protocol.py", line 146, in get await config_sleep(GeckoConfig.PAUSE_BETWEEN_RETRIES_IN_SECONDS) File "/usr/local/lib/python3.11/dist-packages/geckolib/config.py", line 105, in config_sleep await asyncio.wait([ConfigChange], timeout=delay) File "/usr/lib/python3.11/asyncio/tasks.py", line 418, in wait return await _wait(fs, timeout, return_when, loop) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/asyncio/tasks.py", line 525, in _wait await waiter asyncio.exceptions.CancelledError Timed out: Maximum script runtime reached.Kannst Du damit zufällig was anfangen?
-
@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
-
@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. -
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.