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 @Chris 1 last edited by

      @chris-1 das hat derzeit nix mit zigbee zu tun.

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

        @tklein Hast Du ggf ebenso nur eine "config.py_template" statt "config.py"?

        Hab mit python auch nix am Hut

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

          @chris-1 jup

          pi@raspberrypi-iob:/opt/geckoclient $ ls -la
          total 52
          drwxr-xr-x 2 root root  4096 Dec 28 11:45 .
          drwxr-xr-x 7 root root  4096 Dec 23 12:42 ..
          -rw-r--r-- 1 root root  4701 Dec 28 08:37 client.py
          -rw-r--r-- 1 root root   704 Dec 28 09:02 config.py_template
          -rw-r--r-- 1 root root   529 Dec 28 08:37 const.py
          -rw-r--r-- 1 root root  3912 Dec 28 08:37 mqtt.py
          -rw-r--r-- 1 root root  1286 Dec 28 08:37 mqtt_test.py
          -rw-r--r-- 1 root root 17252 Dec 28 08:37 mySpa.py
          
          
          1 Reply Last reply Reply Quote 0
          • T
            tklein @Chris 1 last edited by tklein

            @chris-1 thx für den hinweis. Leider hat auch das nicht viel gebracht.

            Ich muss jetzt noch herausfinden wie ich die Fehlermelung beim Installieren einer benötigten Lib wegbekomme.
            Bin halt nicht so der Linuxspezi:

            pi@raspberrypi-iob:~/spa/geckoclient/src $ sudo pip3 install asyncio-paho 
            Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple Collecting asyncio-paho 
            Could not find a version that satisfies the requirement asyncio-paho (from versions: ) 
            No matching distribution found for asyncio-paho 
            

            Werde evtl. Python auf >= 3.8 Installieren müssen

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

              @chris-1

              hi nochmal,

              hast du vielleicht eine Ahnung, wie ich die benötigte lib installieren kann. Habe python 3.10 installiert.

              c8ce1933-145c-49f4-870e-a5c0f6ace2f2-grafik.png

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

                @tklein Du musst Python auf jeden Fall auf mind. 3.8 aktualisieren (siehe dependencies). Ich habe auf meinem Test-Raspi eben mal schnell ein frisches Raspbian mit python 3.9.2 aufgesetzt, dort lässt es sich installieren.

                Ich bin übrigens einen leicht anderen Weg gegangen. Ich habe mir ein paar states definiert und lasse via cron ein python Script laufen, das ständig meine Gecko Steuerungen abfragt und aktualisiere dann die States per Bulk update (benötigt noch den Simple Rest API Adapter). Den Whirlpool steuern tue ich tatsächlich aus der Ferne nicht (könnte man aber auch machen).

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

                  @rrov1 said in Steuerung Gecko in Touch 2 per iob möglich? (Wellis):

                  @tklein Du musst Python auf jeden Fall auf mind. 3.8 aktualisieren (siehe dependencies). Ich habe auf meinem Test-Raspi eben mal schnell ein frisches Raspbian mit python 3.9.2 aufgesetzt, dort lässt es sich installieren.

                  -->Vielen Dank für die Info. Python 3.10 habe ich ja bereits installiert, wird aber anscheiniend "nicht genutzt"

                  Ich bin übrigens einen leicht anderen Weg gegangen. Ich habe mir ein paar states definiert und lasse via cron ein python Script laufen, das ständig meine Gecko Steuerungen abfragt und aktualisiere dann die States per Bulk update (benötigt noch den Simple Rest API Adapter). Den Whirlpool steuern tue ich tatsächlich aus der Ferne nicht (könnte man aber auch machen).

                  --> sorry, da konnte ich dir leider nicht folgen.

                  hast du das in mix 300 modul im einsatz? wird das auch supported (brightness/zones etc)?

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

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

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

                      @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

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

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

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

                          @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/5

                          Meinen Intex Octagon habe ich schneller im iob zum laufen bekommen 🙂 Da habe ich zumindest beim Testing des Adapters geholfen.

                          thomasklein1975 created this issue in kalinrow/geckoclient

                          open running gecko service is killed #5

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

                            @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

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

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

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

                                @tklein Dafür habe ich einen Datenpunkt (Datenpunkte.SwimSpa.0.Sensoren.CIRCULATING_PUMP.State) vorgesehen. Die Laufzeiten musst du dir dann separat ausrechnen :-).

                                T 1 Reply Last reply Reply Quote 0
                                • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            897
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            8
                                            167
                                            15452
                                            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