Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Einsteigerfragen
    4. Steuerung Gecko in Touch 2 per iob möglich? (Wellis)

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Steuerung Gecko in Touch 2 per iob möglich? (Wellis)

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      tklein @rrov1 last edited by

      @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}")
      
      
      rrov1 1 Reply Last reply Reply Quote 0
      • T
        tklein @rrov1 last edited by

        @rrov1

        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.

        rrov1 1 Reply Last reply Reply Quote 0
        • rrov1
          rrov1 @tklein last edited by

          @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).

          T 2 Replies Last reply Reply Quote 0
          • rrov1
            rrov1 @tklein last edited by

            @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

            T 1 Reply Last reply Reply Quote 0
            • T
              tklein @rrov1 last edited by

              @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 🙂

              1 Reply Last reply Reply Quote 0
              • T
                tklein @rrov1 last edited by

                @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'
                
                
                1 Reply Last reply Reply Quote 0
                • T
                  tklein @rrov1 last edited by

                  @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

                  rrov1 1 Reply Last reply Reply Quote 0
                  • rrov1
                    rrov1 @tklein last edited by

                    @tklein Sorry, das ich das mit der Bibliothek vergessen habe, aber schön das es läuft.

                    T 1 Reply Last reply Reply Quote 0
                    • T
                      tklein @rrov1 last edited by

                      @rrov1 was allerdings komisch ist, dass

                      1. trotz logginparameter bein influxdb "nur änderungen aufzeichnen" zwei identische werte zeitlich gefolgt sind (A)
                      2. 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)
                      3. 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

                      fe81871e-eea8-4271-b2f5-ab3fe13474e4-grafik.png

                      rrov1 1 Reply Last reply Reply Quote 0
                      • rrov1
                        rrov1 @tklein last edited by

                        @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 😉 .

                        T 3 Replies Last reply Reply Quote 0
                        • T
                          tklein @rrov1 last edited by

                          @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 wurde

                          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 😉 .

                          Bin gespannt, wie es weitergeht 🙂

                          1 Reply Last reply Reply Quote 0
                          • T
                            tklein @rrov1 last edited by tklein

                            @rrov1 zu 2)

                            219bf503-5e0e-467c-bf4d-1445af4ea6f5-grafik.png

                            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  - warn: 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  - debug: 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  - debug: 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  - debug: simple-api.0 (28218) 0: "javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit"
                            2023-01-17 00:00:10.211  - debug: simple-api.0 (28218) 1: "javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur"
                            2023-01-17 00:00:10.211  - debug: simple-api.0 (28218) 2: "javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur"
                            2023-01-17 00:00:10.211  - debug: simple-api.0 (28218) 3: "javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur"
                            2023-01-17 00:00:10.211  - debug: simple-api.0 (28218) 4: "javascript.0.Datenpunkte.SwimSpa.0.Heizer"
                            2023-01-17 00:00:10.211  - debug: simple-api.0 (28218) 5: "javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege"
                            2023-01-17 00:00:10.211  - debug: simple-api.0 (28218) 6: "javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi"
                            2023-01-17 00:00:10.212  - debug: simple-api.0 (28218) 7: "javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex"
                            2023-01-17 00:00:10.212  - debug: simple-api.0 (28218) 8: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus"
                            2023-01-17 00:00:10.212  - debug: simple-api.0 (28218) 9: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus"
                            2023-01-17 00:00:10.212  - debug: simple-api.0 (28218) 10: "javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On"
                            2023-01-17 00:00:10.212  - debug: simple-api.0 (28218) 11: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State"
                            2023-01-17 00:00:10.212  - debug: simple-api.0 (28218) 12: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State"
                            2023-01-17 00:00:10.212  - debug: simple-api.0 (28218) 13: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State"
                            2023-01-17 00:00:10.213  - debug: simple-api.0 (28218) 14: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State"
                            2023-01-17 00:00:10.213  - debug: simple-api.0 (28218) 15: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State"
                            2023-01-17 00:00:10.218  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - error: javascript.0 (25569) script.js.common.Draussen.Wellis_Whirlpool.status_licht_update: Spalicht wurde geschaltet: on
                            
                            2023-01-17 00:00:11.039  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit","val":"°C"}
                            2023-01-17 00:00:11.040  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur","val":37}
                            2023-01-17 00:00:11.041  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur","val":37}
                            2023-01-17 00:00:11.041  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur","val":37}
                            2023-01-17 00:00:11.041  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Heizer","val":"Idle"}
                            2023-01-17 00:00:11.042  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege","val":"Standard"}
                            2023-01-17 00:00:11.042  - debug: 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  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex","val":1}
                            2023-01-17 00:00:11.043  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: javascript.0 (25569) script.js.common.Draussen.Wellis_Whirlpool.get_updates_by_cron:  connected 200
                            
                            2023-01-17 00:01:00.094  - warn: 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  - debug: 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  - debug: 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  - debug: simple-api.0 (28218) 0: "javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit"
                            2023-01-17 00:01:10.064  - debug: simple-api.0 (28218) 1: "javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur"
                            2023-01-17 00:01:10.064  - debug: simple-api.0 (28218) 2: "javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur"
                            2023-01-17 00:01:10.065  - debug: simple-api.0 (28218) 3: "javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur"
                            2023-01-17 00:01:10.065  - debug: simple-api.0 (28218) 4: "javascript.0.Datenpunkte.SwimSpa.0.Heizer"
                            2023-01-17 00:01:10.065  - debug: simple-api.0 (28218) 5: "javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege"
                            2023-01-17 00:01:10.065  - debug: simple-api.0 (28218) 6: "javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeModi"
                            2023-01-17 00:01:10.066  - debug: simple-api.0 (28218) 7: "javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex"
                            2023-01-17 00:01:10.066  - debug: simple-api.0 (28218) 8: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus"
                            2023-01-17 00:01:10.066  - debug: simple-api.0 (28218) 9: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus"
                            2023-01-17 00:01:10.066  - debug: simple-api.0 (28218) 10: "javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On"
                            2023-01-17 00:01:10.066  - debug: simple-api.0 (28218) 11: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State"
                            2023-01-17 00:01:10.066  - debug: simple-api.0 (28218) 12: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State"
                            2023-01-17 00:01:10.067  - debug: simple-api.0 (28218) 13: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State"
                            2023-01-17 00:01:10.067  - debug: simple-api.0 (28218) 14: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State"
                            2023-01-17 00:01:10.067  - debug: simple-api.0 (28218) 15: "javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State"
                            2023-01-17 00:01:10.068  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit","val":"°C"}
                            2023-01-17 00:01:10.285  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur","val":37}
                            2023-01-17 00:01:10.286  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur","val":37}
                            2023-01-17 00:01:10.286  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur","val":37}
                            2023-01-17 00:01:10.287  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Heizer","val":"Idle"}
                            2023-01-17 00:01:10.287  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.Wasserpflege","val":"Standard"}
                            2023-01-17 00:01:10.287  - debug: 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  - debug: simple-api.0 (28218) Add to Response: {"id":"javascript.0.Datenpunkte.SwimSpa.0.WasserpflegeIndex","val":1}
                            2023-01-17 00:01:10.297  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: 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  - debug: javascript.0 (25569) script.js.common.Draussen.Wellis_Whirlpool.get_updates_by_cron:  connected 200
                            

                            Vielleicht wirst du daraus schlau.
                            log_0_00.txt

                            Brauchst du sonst weitere Infos?

                            Gruß
                            Thomas

                            1 Reply Last reply Reply Quote 0
                            • T
                              tklein @rrov1 last edited by

                              @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.

                              1 Reply Last reply Reply Quote 0
                              • rrov1
                                rrov1 last edited by

                                @tklein Hallo,
                                zu 1: Das Logfile ist leider zu kurz, es enthält nur etwas mehr als 1 Minute, aber keinen Wechsel z.B. von der Filterpumpe. Bei mir im Testsetup mit Influx DB sehe ich "doppelte Datensätze" innerhalb von 1 Minute auch (aber ganz selten). Ich denke das lässt sich das hängt mit dem Intervall zusammen in dem das Script läuft. Ich vermute, die Pumpe läuft nur eine Minute. Deswegen siehst du:
                                t == off
                                t+1 == on
                                t+2 == on
                                t+3 == off
                                Stell mal probehalber den Intervall im cron auf 15 Sekunden. Damit werden die Datenpunkte häufiger aktualisiert. Rein rechnerisch sollten dann mehrere Auslesevorgänge stattfinden zwischen den Werteänderungen.

                                zu 2: 😁, kann schon mal passieren bei den vielen Datenpunkten. Damit wäre ja auch 3) schon geklärt. Vergiss nicht den Adapter wieder in den Loglevel INFO zurückzustellen.

                                War aber trotzdem gut, das ich gleich mal ein neues Testsystem hochgezogen habe, das Script zum erstellen der Datenpunkte ist an mancher Stelle sagen wir mal unsauber (Warnungen bzgl. falscher Datentypen bei den Defaultwerten) und ich habe gesehen, das ein paar States nicht gesetzt sind. Um letzteres zu erreichen lege ich dir mal ein Script bei, welches du sagen wir mal 1x die Woche aufrufen kannst: spa_config.py. Weiterhin habe ich gesehen, das die Reminder noch fehlen, die baue ich mal am WE mit ein und schick ein Update.

                                T 1 Reply Last reply Reply Quote 0
                                • T
                                  tklein @rrov1 last edited by

                                  @rrov1 mein Loggingscript kommt auch somit damit klar. (täglicher Reset)

                                  da39564f-82e0-4b2c-8219-3fd72a0d5202-grafik.png

                                  Bei der Laufzeit von der Zirkulationspumpe habe ich mir eine andere gekauft, die bei identischer Leistung die Hälfte verbraucht.

                                  Danke für das wöchentliche Updatescript. Werde ich mir mal anschauen und versuchen zu verstehen, was es macht. Ebenfalls Danke für die zukünftigen Erweiterungen. Eine Steuerung hast du nicht zufällig vor, oder? 🙂

                                  Der DP "javascript.0.Datenpunkte.SwimSpa.actualPowerConsumption" wird bei dir separat von einem Script aktualisiert, oder?
                                  Der DP "javascript.0.Datenpunkte.SwimSpa.preferredHeating" ist vorhanden, falls mehrere SPA in einem Netzwerk sind?

                                  Gruß
                                  Thomas

                                  rrov1 1 Reply Last reply Reply Quote 0
                                  • rrov1
                                    rrov1 @tklein last edited by

                                    @tklein Hallo, ich habe hier einen SwimSpa stehen, der 2 unabhängige Steuerungen hat. Der DP:

                                    • actualPowerConsumption wird von einem anderen Script gesetzt (ich fand es nur praktisch den Wert gleich hier mit anzusiedeln),
                                    • automaticHeating, preferredHeating und preferredHeatingName brauche ich für ein separates Script mit dem ich je nach Verfügbarkeit von Solarstrom die Heizung aktiviere (automaticHeating), steuere welche der beiden Heizungen aktiviert wird (preferredHeating) und preferredHeatingName ist nur für die Visualiserung.

                                    Mit dem letzten Punkt geht eine Steuerung schon einher, sprich ich habe aktuell Python Scripte, die den Wasserpflegemodus setzen (Standard oder Abwesend). Ich hatte sogar die Nachführung der Temperatur schon mit drinnen, hat sich aber als nicht so praktisch erwiesen (der leidige WAF).

                                    Was möchtest du denn steuern? Pumpen, Licht? Sollte nicht das Problem darstellen, Template habe ich, muss es nur aufhübschen. Ist alles noch so auf dem Level, geschrieben, getestet, läuft.

                                    T 2 Replies Last reply Reply Quote 0
                                    • T
                                      tklein @rrov1 last edited by

                                      @rrov1 alles klar.

                                      für die Steuerung wären folgende Befehle top:

                                      • Pumpe 1 an/aus
                                      • Pumpe 2 an/aus
                                      • Zirkulation an/aus
                                      • Setzen der Zieltemperatur
                                      • evtl global Heizung an/aus
                                      • Licht an/aus
                                      • Farbe/Helligkeit je Zone (bei Nutzung des Moduls "in mix 300")

                                      LG
                                      Thomas

                                      1 Reply Last reply Reply Quote 0
                                      • T
                                        tklein @rrov1 last edited by

                                        @rrov1 Moinsen,

                                        so wie es aussieht, kann der kapazitive Sensor TTP223 an einem ESP z.B. mit Tasmota manuelles Schalten erkennen. Werde jeweils 2x3 unter dem Acryl festkleben. Dann per MQTT kommen die Daten an und ich könnte Pumpe 1 etc steuern ohne mich immer zum Display bewegen zu müssen oder alternativ den Alexabefehl geben zu müssen.

                                        rrov1 1 Reply Last reply Reply Quote 0
                                        • rrov1
                                          rrov1 @tklein last edited by

                                          @tklein Könnte ein Lösung sein. Ich habe am WE ein bisschen gebastelt, ich bin aber noch nicht so glücklich mit dem Ergebnis, denn mir fehlt noch die nötige Stabilität, nicht jeder Aufruf des Python API führt tatsächlich zu einem erfolgreichen Schaltvorgang an der Pumpe 😐 .
                                          Zum aktuellen Stand:

                                          • ich habe mal auf github ein kleines Repo angelegt: https://github.com/rrov1/SwimSpa - jedes mal hier das Script hochladen ist mir zu mühsam
                                          • Doku hat das Repo noch keine, kommt noch
                                          • im Ordner Javascript ist das Script zum anlegen bzw. aktualisieren der Datenpunkte - bitte führe es mal aus, damit du den aktuellen Stand der Datenpunkte bekommst, ich habe welche hinzugefügt bzw. auch Anpassungen an den bestehenden vorgenommen (nur bei der Datenpunktdefinition, die DP selbst bleiben alle bestehen)
                                          • im Ordner Python findest du die Python Scripte, wenn du die Datenpunkte aktualisierst musst du unbedingt auch spa_updateBulk.py und spa_config.py austauschen (sonst meckert ioBroker im Log über fehlende ack-Attribute beim setzen)
                                          • Wenn du die Scripte austauschst, denk denk bitte dran Konstanten im Script anzupassen (hier habe ich etwas optimiert, es ist jetzt alles an einer Stelle am Anfang)
                                          • spa_config.py am besten einmal täglich ausführen, damit du die Erinnerungen tagesaktuell hast, einmal die Woche wäre glaube ich zu wenig
                                          • das spa_switchPump.py funktioniert, benötigt ein paar Parameter. Die bekommt es von einen Javascript, das bei Veränderung des Datenpunktes über on() getriggert wird, das ist noch nicht fertig, gib mir mal noch etwas Zeit.
                                          • in.mix 300 steuern scheint übrigens nicht mit der bestehenden Version der geckolib zu gehen, das Licht an/aus war im ersten Versuch unwillig, den Rest (Temperatur/Heizung) werde ich nach und nach noch ergänzen
                                          T 1 Reply Last reply Reply Quote 0
                                          • T
                                            tklein @rrov1 last edited by

                                            @rrov1 klasse, vielen dank dafür.

                                            anbei meine Infos/Bemerkungen/Fragen

                                            Zur Info hier ein paar Ausgaben nach dem Aufruf der python skripte:

                                            python3.10 spa_updateBulk.py

                                            Connecting to Wellness ....... connected
                                            Water heater : Heater: Temperature 37.5°C, SetPoint 37.5°C, Real SetPoint 37.5°C, Operation Idle
                                            sending temp and heater ops
                                            sending water care
                                            sending pumps
                                            Pump 1
                                            Pump 2
                                            Waterfall
                                            sending lights
                                            Lights
                                            sending sensors
                                            Circulating Pump
                                            Ozone
                                            Smart Winter Mode:Active
                                            Filter Status:Clean
                                            Filter Status:Purge
                                            javascript.0.Datenpunkte.SwimSpa.0.Temperatureinheit=%C2%B0C&ack=true& javascript.0.Datenpunkte.SwimSpa.0.AktuelleTemperatur=37.5&ack=true& javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur=37.5&ack=true& javascript.0.Datenpunkte.SwimSpa.0.EchteZielTemperatur=37.5&ack=true& javascript.0.Datenpunkte.SwimSpa.0.Heizer=Idle&ack=true& javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Modus=OFF&ack=true& javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Modus=OFF&ack=true& javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Is_On=false&ack=true& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State=off&ack=true& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.OZONE.State=off&ack=true& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.SMART_WINTER_MODE_ACTIVE.State=true&ack=true& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_CLEAN.State=false&ack=true& javascript.0.Datenpunkte.SwimSpa.0.Sensoren.FILTER_STATUS_PURGE.State=false&ack=true
                                            200
                                            

                                            python3.10 spa_config.py

                                            Connecting to Wellness ...... connected
                                            identifier Wellness
                                            identifier SPAe8:eb:1b:1c:5e:46
                                            uid: SPAe8eb1b1c5e46
                                            Temperatureinheit °C
                                            anzahl pumpen: 3
                                            P1
                                            Pump 1
                                            ['OFF', 'LO', 'HI']
                                            P2
                                            Pump 2
                                            ['OFF', 'LO', 'HI']
                                            Waterfall
                                            Waterfall
                                            ['OFF', 'ON']
                                            anzahl blowers: 0
                                            anzahl lichter: 1
                                            LI
                                            Lights
                                            ***anzahl Sensoren: 1
                                            SMART WINTER MODE:RISK
                                            Smart Winter Mode:Risk
                                            NO
                                            ***anzahl bin. Sensoren: 5
                                            CIRCULATING PUMP
                                            Circulating Pump
                                            OZONE
                                            Ozone
                                            SMART WINTER MODE:ACTIVE
                                            Smart Winter Mode:Active
                                            FILTER STATUS:CLEAN
                                            Filter Status:Clean
                                            FILTER STATUS:PURGE
                                            Filter Status:Purge
                                            anzahl user devices: 4
                                            anzahl reminders: 5
                                            reminder: ('Time', '24.01.2023, 08:15:23')
                                            reminder: ('RinseFilter', 28)
                                            reminder: ('CleanFilter', 26)
                                            reminder: ('ChangeWater', 56)
                                            reminder: ('CheckSpa', 728)
                                            
                                            

                                            Hier noch ein paar Fragen:

                                            1. Wofür wird dieser Wert aus dem DP "javascript.0.Datenpunkte.SwimSpa.ClientGUID" benötigt? In den Dateien habi ch meine drinstehen gelassen

                                            2. In der spa_config.py werden die Reminderinfos geladen. Die willst du bei den minütlichen Anfragen in der spa_updateBulk.py nicht jedes mal anfragen, Daher hier die sep Datei/Aufruf?

                                            3. @in mix 300: Da habe ich auf Github diesbezüglich eine Frage gestellt aber noch keine Info bekommen. Wenn ich das Licht per Display/App schalte, bekommt das der DP L1 mit

                                            4. Fehlen da die Werte? Im "Log" waren welche drin.

                                            d937e2bc-56e2-4044-bc8c-0198a96fb17b-grafik.png
                                            Muss am Ende des Aufrufs von spa_config.py normalerweise auch ein 200er stehen?

                                            1. Zirkuation ist gleich Wasserfall?

                                            2. Kannst du deinen Pumpen mit "LO" ansteuern? Das gilt bestimmt nur für mehrstufige Pumpen. Ich habe 0/1, soweit mir bekannt 🙂

                                            Ich bin gespannt auf die Updates 🙂
                                            Lass es mich wissen, wenn/wie ich dir helfen kann

                                            Bis denne
                                            Thomas

                                            rrov1 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            167
                                            15478
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo