NEWS
Steuerung Gecko in Touch 2 per iob möglich? (Wellis)
-
@tklein Brauchst du wirklich zwei Python Versionen (2.x und 3.x) gleichzeitig auf deinem System? Wenn nicht deinstalliere das Python 2. Wenn du Phyton nur für die geckolib brauchst deinstalliere beide Version und danach nur Python 3. Danach sollte das eigentlich klappen.
>> hast du das in mix 300 modul im einsatz?
Nein, das habe ich nicht. -
@rrov1 ich bin da a bissl schissig. zumal mir mal ein dev ops gesagt hat, dass einige teile vom os mit/durch python laufen.
muss mal schauen, dass evtl. die default 3er version von 3.7 auf 3.10 angehoben wird. alternativ muu ich mal schauen, ob man bei der installation via pip3 die pythonversion mit angeben kann -
@tklein Hallo, nun dann mit Netz und doppeltem Boden. Du hast einen Raspberry ich vermute mal mit SD-Karte? In dem Fall:
- kaufe dir eine zweite, gleich große SD-Karte,
- erstelle eine Backup vom ioBroker und lege es erst mal auf ein anderes Medium (der dopplete Boden)
- schalte den Raspi aus und kopiere an deinem PC den Inhalt der SD Karte mit einem geeigneten Tool auf die neue SD-Karte.
- lege die neue SD-Karte ein und starte den Raspi - sollte laufen, falls nicht hier Stop.
- deinstalliere python 2.x (es ist m.W. eh EOL seit 01.01.2020, da läuft sicher nichts drüber wenn der Rest von deinem System aktuell ist).
- wenn python 2.x weg ist probiere alle Systemfunktionen aus.
Wenn alles geht, lass den Raspi laufen, deine alte SD-Karte ist dein fallback für den worst-case das du ein paar Tage später doch noch ein Problem feststellst.
-
@rrov1 danke,
habe die Lib jetzt mit "sudo pip3.10 install ..." installiert bekommen.
Sicherung der Daten von der SSD Platte hatte ich natürlich zuvor auch gemacht.Es wurden sogar die DP im MQTT Adapter angelegt/gefüllt. Es geht voran.
Nur leider wird der Geckoservice nach kurzer Zeit gekillt. Ein Issue habe ich auf Github dazu aufgemacht.
--> https://github.com/kalinrow/geckoclient/issues/5Meinen Intex Octagon habe ich schneller im iob zum laufen bekommen Da habe ich zumindest beim Testing des Adapters geholfen.
-
@tklein Hallo, habe eben mal schnell den geckoclient auf meinen Test-Raspi aufgesetzt - läuft (also 15 Minuten). Ich lasse ihn mal etwas laufen.
Ich habe das ganze etwas anders gelöst (ob das die effizienteste Lösung ist sei mal dahingestellt, es liest nur Daten aus, vielleicht auch nicht alle, aber für mich ist das genau das richtige ) :
Schritt 1: Ein paar Datenpunkte mit dem Javascript Adapter anlegen: Javasrcipt Datenpunkte erstellen.txt, nicht alle kommen von Gecko
Schritt 2: Adapter: Simple RESTful API installieren und starten
Schritt 3: Für das aktualisieren der Datenpunkte nutze ich ein selbstgestricktes Python-Script:- auf den Raspi kopieren spa_updateBulk.py
- Konfiguration anpassen (Zeile 6: eine UUID einfügen, Zeile 7: den Spa Identifier, Zeile 78: die IP vom ioBroker und ggf. den Port anpassen beim simple RESTful API
Schritt 4: Das Script vom cron aufrufen lassen (minütlich): crontab -e aufrufen und einfügen von "* * * * * python3 ~/spa_updateBulk.py >/dev/null 2>&1"
Du kannst das Script zum testen auch manuell aufrufen mit: python3 ~/spa_updateBulk.py
-
@rrov1 vielen lieben Dank für deine Skripte.
Werde ich mir anschauen und versuchen mal laufen zu lassen. Das Logging ist für mich auch wichtig.
Mich interessiert zb. wie lange die zirkulationspumpe ausserhalb der filterzeiten läuft. wollte evtl. eine stromsparendere laing pumpe verbauen. -
@tklein Dafür habe ich einen Datenpunkt (Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State) vorgesehen. Die Laufzeiten musst du dir dann separat ausrechnen :-).
-
@rrov1 klasse,
leider bekomme ich beim aufruf des pyton skript folgende meldung mit der ich als pythonlaie leider nicht viel anfangen kann:
pi@raspberrypi-iob:~/wellis $ python spa_updateBulk.py File "spa_updateBulk.py", line 19 print(f"Connecting to {facade.name} ", end="", flush=True) ^ SyntaxError: invalid syntax
der "configteil" sieht so aus:
#!/usr/bin/python3.10 import requests import urllib.parse from geckolib import GeckoLocator CLIENT_ID = "916b0096-ab56-4344-8728-..." lSpas = ["SPAe8:eb:1b:1c:5e:46"] dictEn2De = {'Away From Home': 'Abwesend', 'Standard': 'Standard', 'Energy Saving': 'Energiesparen', 'Super Energy Saving': 'Energiesparen Plus', 'Weekender': 'Wochenende' } for nSpaNum in range(len(lSpas)): facade = GeckoLocator.find_spa(CLIENT_ID, lSpas[nSpaNum]).get_facade(False) print(f"Connecting to {facade.name} ", end="", flush=True) while not facade.is_connected: # Could also be `await asyncio.sleep(1)` facade.wait(1) print(".", end="", flush=True) print(" connected") # Do some things with the facade print(f"Water heater : {facade.water_heater}")
-
beim manuellen Aufruf von http://192.168.0.20:8087/setBulk bekomme ich ein leeres array [] als return. liegt wahrscheinlich daran, dass die daten nnicht übergeben werden.
Allerdings ist mir auch nicht klar, wo die funktion oder der dp setBulk genau herkommt, welche aurgerufen wird.
-
@tklein Hallo, ich denke du hast wieder ein Problem mit den Python Versionen auf deinem Raspi. Ich habe mal kurz recherchiert, unter Python 2 war das ein Statement, seit Python 3 ist es eine Funktion (siehe hier). Aufgrund der Funktionsweise des Python Interpreters kann ich einen falschen Interpreter auch nicht abfangen, weil lt. Doku erst das ganze Script auf Syntaxfehler geprüft wird, bevor die erste Zeile Code überhaupt ausgeführt wird. Spontan hätte ich gesagt, tauschen im Aufruf "python spa_updateBulk.py" das "python" durch "python3". Dann sollte es laufen (bin leider auch nicht so der Python Profi, habe mich damit vor etwas mehr als 1 Jahr das erste mal wegen dem SwimSpa etwas beschäftigt).
-
@tklein Das Rest-API ist eigentlich recht simpel. Es gibt Funktionen zum setzen (set...) und abrufen (get...) von Datenpunkten via HTTP. Um genau einen Datenpunkt zu setzen nimmst du:
http://<<iobroker-ip>>:8087/set/javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur?value=20.5
Mein Script muss mehrere Datenpunkte setzen, um die Systemlast zu reduzieren habe ich mich deswegen für setBulk entschieden, da setze ich mit einem HTTP-Aufruf gleich mehrere Datenpunkte:
http://<<iobroker-ip>>:8087/setBulk/javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur=20.5&javascript.0.Datenpunkte.SwimSpa.1.EchteZielTemperatur=36
Doku siehe hier: https://github.com/ioBroker/ioBroker.simple-api
-
@rrov1 said in Steuerung Gecko in Touch 2 per iob möglich? (Wellis):
@tklein Das Rest-API ist eigentlich recht simpel. Es gibt Funktionen zum setzen (set...) und abrufen (get...) von Datenpunkten via HTTP. Um genau einen Datenpunkt zu setzen nimmst du:
http://<<iobroker-ip>>:8087/set/javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur?value=20.5
Mein Script muss mehrere Datenpunkte setzen, um die Systemlast zu reduzieren habe ich mich deswegen für setBulk entschieden, da setze ich mit einem HTTP-Aufruf gleich mehrere Datenpunkte:
http://<<iobroker-ip>>:8087/setBulk/javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur=20.5&javascript.0.Datenpunkte.SwimSpa.1.EchteZielTemperatur=36
Doku siehe hier: https://github.com/ioBroker/ioBroker.simple-api
ah, danke, die api nutze ich schon länge, (set/get )habe aber den "batchparametervariante" setBulk nicht auf dem Schirm gehabt bzw als Teil der Api angesehen. Ich hatte nach einem dp unter root geschaut mit dem Namen
-
@rrov1 said in Steuerung Gecko in Touch 2 per iob möglich? (Wellis):
@tklein Hallo, ich denke du hast wieder ein Problem mit den Python Versionen auf deinem Raspi. Ich habe mal kurz recherchiert, unter Python 2 war das ein Statement, seit Python 3 ist es eine Funktion (siehe hier). Aufgrund der Funktionsweise des Python Interpreters kann ich einen falschen Interpreter auch nicht abfangen, weil lt. Doku erst das ganze Script auf Syntaxfehler geprüft wird, bevor die erste Zeile Code überhaupt ausgeführt wird. Spontan hätte ich gesagt, tauschen im Aufruf "python spa_updateBulk.py" das "python" durch "python3". Dann sollte es laufen (bin leider auch nicht so der Python Profi, habe mich damit vor etwas mehr als 1 Jahr das erste mal wegen dem SwimSpa etwas beschäftigt).
Ich dachte mit
#!/usr/bin/python3.10
in der ersten Zeile könnte ich den Aufruf von der aktuellesten Pythonversion 3.10 erzwingen.
Nachdem ich alle print* auskommentiert hatte, kam folgende Meldung:
Traceback (most recent call last): File "/home/pi/wellis/spa_updateBulk.py", line 2, in <module> import requests ModuleNotFoundError: No module named 'requests'
-
@rrov1 es hat geklappt, nachdem ich die lib installiert hatte.
pi@raspberrypi-iob:~/wellis $ python3.10 spa_updateBulk.py connected 200 pi@raspberrypi-iob:~/wellis $
Die Daten wurden erfolgreich in die DP geschrieben.
Vielen lieben Dank für deine Geduld & Hilfe!
Grüße
Thomas -
@tklein Sorry, das ich das mit der Bibliothek vergessen habe, aber schön das es läuft.
-
@rrov1 was allerdings komisch ist, dass
- trotz logginparameter bein influxdb "nur änderungen aufzeichnen" zwei identische werte zeitlich gefolgt sind (A)
- mein trigger auf veränderung bei dem state licht etliche benachrichtungen in der nacht erfolgten, obwohl werder das log noch die entsprechenden db einträge finden konnte (B)
- im DB on/off ankommen, aber true/false geloggt werden
Kann es sein, dass auch mal werte != on/off bzw treu/false in die DP geschrieben werden?
Grüße
Thomas -
@tklein Hallo, ich habe mir mein "Machwerk" gleich noch mal angeschaut:
zu 1.: Du hast die Aufzeichnung intuitiv richtig konfiguriert (habe ich auch so, nur SQL-Adapter). Mein Script ist an der Stelle dumm, wenn es läuft, dann sendet es tatsächlich bei jedem Aufruf alle Werte des SwimSpa/Whirlpool an den ioBroker. Es weiß nicht was es im vorigen Aufruf gesendet hat und es fragt die States auch vor dem senden nicht ab und sendet nur die Änderungen. Da verlasse ich mich auf den ioBroker, das er echte Änderungen bemerkt.
Ich habe bei mir kein InfluxDB, sondern eine MariaDB (ist praktisch mySQL) im Einsatz. Damit ich mal testen kann, welche Version von InfluxDB und Adapter verwendest du?zu 2.: Ok, das ist suboptimal. Ich habe mal bei mir geprüft und festgestellt, dass ich das Licht zuletzt am 31.10. an hatte. Hier hätte ich folgende Idee:
- Ich gehe mal davon aus, das du den REST Api Adapter nur für mein Script nutzt
- Stelle die REST Api Instanz mal für eine Nacht in den Loglevel: DEBUG
- Check die Logfiles zu dem Zeitpunkt wo dein Trigger eine falsche Meldung macht, was über das REST Api für ein Wert reinkam.
Damit könne wir erst mal prüfen, ob die Werte vom Script sauber beim REST Api ankommen.
zu 3.: Die "Is_On"-States sind vom Datentyp her Boolean, sprich ioBroker hält true/false als Wert. Schon On/Off wäre nur eine Interpretation davon aus meiner Sicht. In mySQL landet wirklich nur true/false in der DB, das Python Script schickt auch nur diesen Wert an das REST Api.
>> Kann es sein, dass auch mal werte != on/off bzw treu/false in die DP geschrieben werden?
Theoretisch nein, also 99,99%, ist ein Stück Python Code drinnen, das ist nicht so meine Welt . -
@rrov1 said in Steuerung Gecko in Touch 2 per iob möglich? (Wellis):
@tklein Hallo, ich habe mir mein "Machwerk" gleich noch mal angeschaut:
zu 1.: Du hast die Aufzeichnung intuitiv richtig konfiguriert (habe ich auch so, nur SQL-Adapter). Mein Script ist an der Stelle dumm, wenn es läuft, dann sendet es tatsächlich bei jedem Aufruf alle Werte des SwimSpa/Whirlpool an den ioBroker. Es weiß nicht was es im vorigen Aufruf gesendet hat und es fragt die States auch vor dem senden nicht ab und sendet nur die Änderungen. Da verlasse ich mich auf den ioBroker, das er echte Änderungen bemerkt.
Ich habe bei mir kein InfluxDB, sondern eine MariaDB (ist praktisch mySQL) im Einsatz. Damit ich mal testen kann, welche Version von InfluxDB und Adapter verwendest du?--> Ich nutze Influx DB 1.6.4 und der Influxadapter v3.2.0. Sofern es keine Wertänderung gibt, sllte eigentlich kein Wert geschrieben werden. Soweit die Theorie
zu 2.: Ok, das ist suboptimal. Ich habe mal bei mir geprüft und festgestellt, dass ich das Licht zuletzt am 31.10. an hatte. Hier hätte ich folgende Idee:
- Ich gehe mal davon aus, das du den REST Api Adapter nur für mein Script nutzt
- Stelle die REST Api Instanz mal für eine Nacht in den Loglevel: DEBUG
- Check die Logfiles zu dem Zeitpunkt wo dein Trigger eine falsche Meldung macht, was über das REST Api für ein Wert reinkam.
Damit könne wir erst mal prüfen, ob die Werte vom Script sauber beim REST Api ankommen.
--> Habe auf Debug umgestellt. Nutzer die aber noch für weitere Services (geofancy, Shelly i3 triggert dp etc.)
"Damit könne wir erst mal prüfen, ob die Werte vom Script sauber beim REST Api ankommen" --> das log war ja "sauber" dennoch wurde der trigger block aufgerufen. was mir heute u.a aufgefallen ist, dass das licht öfters falsch an/aus per trigger geschaltet wurde, whrend zu der gleichen zeit die zirkuationspumpe wirklich geschaltet wurdezu 3.: Die "Is_On"-States sind vom Datentyp her Boolean, sprich ioBroker hält true/false als Wert. Schon On/Off wäre nur eine Interpretation davon aus meiner Sicht. In mySQL landet wirklich nur true/false in der DB, das Python Script schickt auch nur diesen Wert an das REST Api.
>> Kann es sein, dass auch mal werte != on/off bzw treu/false in die DP geschrieben werden?
Theoretisch nein, also 99,99%, ist ein Stück Python Code drinnen, das ist nicht so meine Welt .Bin gespannt, wie es weitergeht
-
@rrov1 zu 2)
Habe die den javascript error drin gelassen und jetzt auch für die zirkulation hinzugefügt (zukünftig sollte dann auch der eintrag "zirkulation wurde.." als eror im log stehen.
Nicht wundern, Ich trigger per blockly einen minütlichen cron zum aufruf deines scripts. den eintrag mach ich evtl. später in der crontab.
Hier die Logs dazu:
2023-01-17 00:00:00.127 - [33mwarn[39m: javascript.0 (25569) script.js.common.Draussen.Wellis_Whirlpool.get_updates_by_cron: exec: python3 /home/pi/wellis/spa_updateBulk.py 2023-01-17 00:00:10.205 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk: body = javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit=%C2%B0C& javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur=37.0& javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur=37.0& javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur=37.0& javascript.0.Datenpunkte.SwimSpa.0.Heizer=Idle& javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege=Standard& javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi=['Abwesend', 'Standard', 'Energiesparen', 'Energiesparen Plus', 'Wochenende']& javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex=1& javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus=OFF& javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus=OFF& javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On=false& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State=on& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State=off& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State=false& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State=false& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State=false 2023-01-17 00:00:10.210 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk: values = {"user":"system.user.admin","javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit":"°C","javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur":"37.0","javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur":"37.0","javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur":"37.0","javascript.0.Datenpunkte.SwimSpa.0.Heizer":"Idle","javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege":"Standard","javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi":"['Abwesend', 'Standard', 'Energiesparen', 'Energiesparen Plus', 'Wochenende']","javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex":"1","javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus":"OFF","javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus":"OFF","javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On":"false","javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State":"on","javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State":"off","javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State":"false","javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State":"false","javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State":"false"} 2023-01-17 00:00:10.211 - [34mdebug[39m: simple-api.0 (28218) 0: "javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit" 2023-01-17 00:00:10.211 - [34mdebug[39m: simple-api.0 (28218) 1: "javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur" 2023-01-17 00:00:10.211 - [34mdebug[39m: simple-api.0 (28218) 2: "javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur" 2023-01-17 00:00:10.211 - [34mdebug[39m: simple-api.0 (28218) 3: "javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur" 2023-01-17 00:00:10.211 - [34mdebug[39m: simple-api.0 (28218) 4: "javascript.0.Datenpunkte.SwimSpa.0.Heizer" 2023-01-17 00:00:10.211 - [34mdebug[39m: simple-api.0 (28218) 5: "javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege" 2023-01-17 00:00:10.211 - [34mdebug[39m: simple-api.0 (28218) 6: "javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi" 2023-01-17 00:00:10.212 - [34mdebug[39m: simple-api.0 (28218) 7: "javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex" 2023-01-17 00:00:10.212 - [34mdebug[39m: simple-api.0 (28218) 8: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus" 2023-01-17 00:00:10.212 - [34mdebug[39m: simple-api.0 (28218) 9: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus" 2023-01-17 00:00:10.212 - [34mdebug[39m: simple-api.0 (28218) 10: "javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On" 2023-01-17 00:00:10.212 - [34mdebug[39m: simple-api.0 (28218) 11: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State" 2023-01-17 00:00:10.212 - [34mdebug[39m: simple-api.0 (28218) 12: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State" 2023-01-17 00:00:10.212 - [34mdebug[39m: simple-api.0 (28218) 13: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State" 2023-01-17 00:00:10.213 - [34mdebug[39m: simple-api.0 (28218) 14: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State" 2023-01-17 00:00:10.213 - [34mdebug[39m: simple-api.0 (28218) 15: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State" 2023-01-17 00:00:10.218 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit, oid=Temperatureinheit, used=javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit, value=°C 2023-01-17 00:00:10.219 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur, oid=AktuelleTemperatur, used=javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur, value=37.0 2023-01-17 00:00:10.219 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur, oid=ZielTemperatur, used=javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur, value=37.0 2023-01-17 00:00:10.220 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur, oid=EchteZielTemperatur, used=javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur, value=37.0 2023-01-17 00:00:10.220 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Heizer, oid=Heizer, used=javascript.0.Datenpunkte.SwimSpa.0.Heizer, value=Idle 2023-01-17 00:00:10.221 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege, oid=Wasserpflege, used=javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege, value=Standard 2023-01-17 00:00:10.221 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi, oid=WasserpflegeModi, used=javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi, value=['Abwesend', 'Standard', 'Energiesparen', 'Energiesparen Plus', 'Wochenende'] 2023-01-17 00:00:10.222 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex, oid=WasserpflegeIndex, used=javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex, value=1 2023-01-17 00:00:10.223 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus, oid=Modus, used=javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus, value=OFF 2023-01-17 00:00:10.223 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus, oid=Modus, used=javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus, value=OFF 2023-01-17 00:00:10.224 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On, oid=Is_On, used=javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On, value=false 2023-01-17 00:00:10.224 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State, oid=State, used=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State, value=on 2023-01-17 00:00:10.225 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State, oid=State, used=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State, value=off 2023-01-17 00:00:10.225 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State, oid=State, used=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State, value=false 2023-01-17 00:00:10.226 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State, oid=State, used=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State, value=false 2023-01-17 00:00:10.227 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State, oid=State, used=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State, value=false 2023-01-17 00:00:10.973 - [31merror[39m: javascript.0 (25569) script.js.common.Draussen.Wellis_Whirlpool.status_licht_update: Spalicht wurde geschaltet: on 2023-01-17 00:00:11.039 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit","val":"°C"} 2023-01-17 00:00:11.040 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur","val":37} 2023-01-17 00:00:11.041 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur","val":37} 2023-01-17 00:00:11.041 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur","val":37} 2023-01-17 00:00:11.041 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Heizer","val":"Idle"} 2023-01-17 00:00:11.042 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege","val":"Standard"} 2023-01-17 00:00:11.042 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi","val":"['Abwesend', 'Standard', 'Energiesparen', 'Energiesparen Plus', 'Wochenende']"} 2023-01-17 00:00:11.043 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex","val":1} 2023-01-17 00:00:11.043 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus","val":"OFF"} 2023-01-17 00:00:11.043 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus","val":"OFF"} 2023-01-17 00:00:11.044 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On","val":false} 2023-01-17 00:00:11.045 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State","val":"on"} 2023-01-17 00:00:11.045 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State","val":"off"} 2023-01-17 00:00:11.046 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State","val":false} 2023-01-17 00:00:11.046 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State","val":false} 2023-01-17 00:00:11.047 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State","val":false} 2023-01-17 00:00:11.166 - [34mdebug[39m: javascript.0 (25569) script.js.common.Draussen.Wellis_Whirlpool.get_updates_by_cron: connected 200 2023-01-17 00:01:00.094 - [33mwarn[39m: javascript.0 (25569) script.js.common.Draussen.Wellis_Whirlpool.get_updates_by_cron: exec: python3 /home/pi/wellis/spa_updateBulk.py 2023-01-17 00:01:10.063 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk: body = javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit=%C2%B0C& javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur=37.0& javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur=37.0& javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur=37.0& javascript.0.Datenpunkte.SwimSpa.0.Heizer=Idle& javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege=Standard& javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi=['Abwesend', 'Standard', 'Energiesparen', 'Energiesparen Plus', 'Wochenende']& javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex=1& javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus=OFF& javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus=OFF& javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On=false& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State=on& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State=off& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State=false& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State=false& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State=false 2023-01-17 00:01:10.063 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk: values = {"user":"system.user.admin","javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit":"°C","javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur":"37.0","javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur":"37.0","javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur":"37.0","javascript.0.Datenpunkte.SwimSpa.0.Heizer":"Idle","javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege":"Standard","javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi":"['Abwesend', 'Standard', 'Energiesparen', 'Energiesparen Plus', 'Wochenende']","javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex":"1","javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus":"OFF","javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus":"OFF","javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On":"false","javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State":"on","javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State":"off","javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State":"false","javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State":"false","javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State":"false"} 2023-01-17 00:01:10.064 - [34mdebug[39m: simple-api.0 (28218) 0: "javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit" 2023-01-17 00:01:10.064 - [34mdebug[39m: simple-api.0 (28218) 1: "javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur" 2023-01-17 00:01:10.064 - [34mdebug[39m: simple-api.0 (28218) 2: "javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur" 2023-01-17 00:01:10.065 - [34mdebug[39m: simple-api.0 (28218) 3: "javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur" 2023-01-17 00:01:10.065 - [34mdebug[39m: simple-api.0 (28218) 4: "javascript.0.Datenpunkte.SwimSpa.0.Heizer" 2023-01-17 00:01:10.065 - [34mdebug[39m: simple-api.0 (28218) 5: "javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege" 2023-01-17 00:01:10.065 - [34mdebug[39m: simple-api.0 (28218) 6: "javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi" 2023-01-17 00:01:10.066 - [34mdebug[39m: simple-api.0 (28218) 7: "javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex" 2023-01-17 00:01:10.066 - [34mdebug[39m: simple-api.0 (28218) 8: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus" 2023-01-17 00:01:10.066 - [34mdebug[39m: simple-api.0 (28218) 9: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus" 2023-01-17 00:01:10.066 - [34mdebug[39m: simple-api.0 (28218) 10: "javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On" 2023-01-17 00:01:10.066 - [34mdebug[39m: simple-api.0 (28218) 11: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State" 2023-01-17 00:01:10.066 - [34mdebug[39m: simple-api.0 (28218) 12: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State" 2023-01-17 00:01:10.067 - [34mdebug[39m: simple-api.0 (28218) 13: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State" 2023-01-17 00:01:10.067 - [34mdebug[39m: simple-api.0 (28218) 14: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State" 2023-01-17 00:01:10.067 - [34mdebug[39m: simple-api.0 (28218) 15: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State" 2023-01-17 00:01:10.068 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit, oid=Temperatureinheit, used=javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit, value=°C 2023-01-17 00:01:10.069 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur, oid=AktuelleTemperatur, used=javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur, value=37.0 2023-01-17 00:01:10.069 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur, oid=ZielTemperatur, used=javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur, value=37.0 2023-01-17 00:01:10.070 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur, oid=EchteZielTemperatur, used=javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur, value=37.0 2023-01-17 00:01:10.070 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Heizer, oid=Heizer, used=javascript.0.Datenpunkte.SwimSpa.0.Heizer, value=Idle 2023-01-17 00:01:10.071 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege, oid=Wasserpflege, used=javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege, value=Standard 2023-01-17 00:01:10.072 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi, oid=WasserpflegeModi, used=javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi, value=['Abwesend', 'Standard', 'Energiesparen', 'Energiesparen Plus', 'Wochenende'] 2023-01-17 00:01:10.072 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex, oid=WasserpflegeIndex, used=javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex, value=1 2023-01-17 00:01:10.073 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus, oid=Modus, used=javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus, value=OFF 2023-01-17 00:01:10.073 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus, oid=Modus, used=javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus, value=OFF 2023-01-17 00:01:10.074 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On, oid=Is_On, used=javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On, value=false 2023-01-17 00:01:10.075 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State, oid=State, used=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State, value=on 2023-01-17 00:01:10.076 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State, oid=State, used=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State, value=off 2023-01-17 00:01:10.077 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State, oid=State, used=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State, value=false 2023-01-17 00:01:10.077 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State, oid=State, used=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State, value=false 2023-01-17 00:01:10.078 - [34mdebug[39m: simple-api.0 (28218) POST-setBulk for id=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State, oid=State, used=javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State, value=false 2023-01-17 00:01:10.285 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit","val":"°C"} 2023-01-17 00:01:10.285 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur","val":37} 2023-01-17 00:01:10.286 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur","val":37} 2023-01-17 00:01:10.286 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur","val":37} 2023-01-17 00:01:10.287 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Heizer","val":"Idle"} 2023-01-17 00:01:10.287 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege","val":"Standard"} 2023-01-17 00:01:10.287 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi","val":"['Abwesend', 'Standard', 'Energiesparen', 'Energiesparen Plus', 'Wochenende']"} 2023-01-17 00:01:10.292 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex","val":1} 2023-01-17 00:01:10.297 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus","val":"OFF"} 2023-01-17 00:01:10.298 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus","val":"OFF"} 2023-01-17 00:01:10.298 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On","val":false} 2023-01-17 00:01:10.298 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State","val":"on"} 2023-01-17 00:01:10.299 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State","val":"off"} 2023-01-17 00:01:10.299 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State","val":false} 2023-01-17 00:01:10.299 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State","val":false} 2023-01-17 00:01:10.299 - [34mdebug[39m: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State","val":false} 2023-01-17 00:01:10.445 - [34mdebug[39m: javascript.0 (25569) script.js.common.Draussen.Wellis_Whirlpool.get_updates_by_cron: connected 200
Vielleicht wirst du daraus schlau.
log_0_00.txtBrauchst du sonst weitere Infos?
Gruß
Thomas -
@rrov1 oh mann ich dummbatz. asche über mein haupt, sorry.
beim durchsehen der logs ist mir aufgefallen, dass ich beim spalicht den falschen trigger/db hatte. den von der zirkulationspumpe. ohje...
damit sollte der "bug" jetzt behoben sein.