Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Steuerung Gecko in Touch 2 per iob möglich? (Wellis)

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    324

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

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

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
183 Beiträge 8 Kommentatoren 30.6k Aufrufe 6 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T tklein

    @rrov1 mal was anderes. hasr du auch solche extrmen Schwankungen in dem Wert für die aktuelle Temp?
    Scheint sich aber jetzt stabilisiert zu haben.

    e8108b2b-c425-4a26-a029-2b866e43e3ad-grafik.png

    rrov1R Online
    rrov1R Online
    rrov1
    schrieb am zuletzt editiert von
    #67

    @tklein Nein, solche Ausreißer habe ich überhaupt nicht. Das wäre ja dann mein spa_BulkUpdate.py Skript, welches aus welchem Grund auch immer solche Werte dem REST API übergibt. Das kann ich ein bisschen heilen und zwar sagt mir die geckolib die minimale und maximale Temperatur die man einstellen kann (je nach dem ob Celsius oder Farenheit). Ich bau im Pyhton Skript eine Prüfung der 3 Temperaturwerte ein, damit keine Temperaturen sagen wir mal unter 0 °C und 40 °C an ioBroker gemeldet werden. Ich denke mal in dem Fall keinen Wert zu senden ist besser als einen falschen. Ich würde die falschen Werte aus der DB löschen. Bei SQL könnte ich dir sagen wie, bei InfluxDB leider nicht.

    1 Antwort Letzte Antwort
    0
    • T tklein

      @rrov1

      Mhmmm ok.

      Zu1)
      von der Kommandozeile geht es, bekomme aber weitere logs:

      pi@raspberrypi-iob:~/wellis/v4 $ python3.10 spa_toggleLight.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 LI javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Switch
      Total arguments passed: 5
      Connecting using client id 916b0096-ab56-4344-8728-43a8259c63c2
      Connecting to spa id SPAe8:eb:1b:1c:5e:46
      Switching light: LI
      Got channel for update: javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Switch
      Looking for spas on your network ...
      2023-02-15 10:01:07,024> INFO Found 1 spas ... [Wellness(SPAe8:eb:1b:1c:5e:46)]
      *** connecting to spa
      *** light count: 1
      *** found light with key LI and name: Lights with state False
      *** switching light on
      2023-02-15 10:01:17,310> INFO Value for UdLightTime changed from 0 to 60
      2023-02-15 10:01:17,313> INFO Value for UdLi changed from OFF to HI
      2023-02-15 10:01:17,315> INFO Value for inTCipDelay changed from 1800 to 900
      *** light mode is now: True
      Traceback (most recent call last):
        File "/home/pi/.local/lib/python3.10/site-packages/requests/models.py", line 434, in prepare_url
          scheme, auth, host, port, path, query, fragment = parse_url(url)
        File "/home/pi/.local/lib/python3.10/site-packages/urllib3/util/url.py", line 397, in parse_url
          return six.raise_from(LocationParseError(source_url), None)
        File "<string>", line 3, in raise_from
      urllib3.exceptions.LocationParseError: Failed to parse: http://192:168:0:20:8087/set/javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Switch.Switch?value=true&ack=true
      
      During handling of the above exception, another exception occurred:
      
      Traceback (most recent call last):
        File "/home/pi/wellis/v4/spa_toggleLight.py", line 99, in <module>
          asyncio.run(main())
        File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
          return loop.run_until_complete(main)
        File "/usr/local/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
          return future.result()
        File "/home/pi/wellis/v4/spa_toggleLight.py", line 80, in main
          requests.get(f"{IOBROKER_BASE_URL}{IOBR_LIGHT_CHANNEL}.Switch?value={str(newLightMode).lower()}&ack=true")
        File "/home/pi/.local/lib/python3.10/site-packages/requests/api.py", line 73, in get
          return request("get", url, params=params, **kwargs)
        File "/home/pi/.local/lib/python3.10/site-packages/requests/api.py", line 59, in request
          return session.request(method=method, url=url, **kwargs)
        File "/home/pi/.local/lib/python3.10/site-packages/requests/sessions.py", line 573, in request
          prep = self.prepare_request(req)
        File "/home/pi/.local/lib/python3.10/site-packages/requests/sessions.py", line 484, in prepare_request
          p.prepare(
        File "/home/pi/.local/lib/python3.10/site-packages/requests/models.py", line 368, in prepare
          self.prepare_url(url, params)
        File "/home/pi/.local/lib/python3.10/site-packages/requests/models.py", line 436, in prepare_url
          raise InvalidURL(*e.args)
      requests.exceptions.InvalidURL: Failed to parse: http://192:168:0:20:8087/set/javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Switch.Switch?value=true&ack=true
      

      Ein erneuter Aufruf toggelt das Licht immer, egal was in dem DP steht.
      Mal sehen, obich die rechte korrekt gesetzt habe:

      pi@raspberrypi-iob:~/wellis/v4 $ ls -la
      total 40
      drwxrwxrwx 2 pi pi 4096 Feb 14 17:55 .
      drwxrwxrwx 5 pi pi 4096 Feb 14 17:50 ..
      -rwxr-xr-x 1 pi pi 4371 Feb 14 17:55 spa_config.py
      -rwxr-xr-x 1 pi pi 4064 Feb 14 17:55 spa_setTargetTemp.py
      -rwxr-xr-x 1 pi pi 4737 Feb 14 17:55 spa_switchPump.py
      -rwxr-xr-x 1 pi pi 3606 Feb 14 17:55 spa_toggleLight.py
      -rwxr-xr-x 1 pi pi 4704 Feb 14 17:55 spa_updateBulk.py
      

      Den Aufruf in der JS-Datei habe ich so angepasst:

      exec('python3.10 /home/pi/wellis/v4 spa_toggleLight.py ' + clientId + " " + spaId + " " + lightKey + " " + obj.channelId, function (error, stdout, stderr) {
      

      Zu2)

      Bei Update des DP wird nix getriggered. Keine Logausgabe.
      Bei der Konsoleneingabe sieht es so aus:

      Total arguments passed: 5
      Connecting using client id 916b0096-ab56-4344-8728-43a8259c63c2
      Connecting to spa id SPAe8:eb:1b:1c:5e:46
      New target temp: 34
      Got datapoint to update: javascript.0.Datenpunkte.SwimSpa.1.ZielTemperatur
      Traceback (most recent call last):
        File "spa_setTargetTemp.py", line 107, in <module>
          asyncio.run(main())
        File "/usr/lib/python3.7/asyncio/runners.py", line 43, in run
          return loop.run_until_complete(main)
        File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
          return future.result()
        File "spa_setTargetTemp.py", line 48, in main
          async with SampleSpaMan(CLIENT_ID, spa_identifier=SPA_ID) as spaman:
        File "/usr/local/lib/python3.7/dist-packages/geckolib/async_spa_manager.py", line 199, in __aenter__
          await AsyncTasks.__aenter__(self)
        File "/usr/local/lib/python3.7/dist-packages/geckolib/async_tasks.py", line 15, in __aenter__
          self.add_task(self._tidy(), "Tidy tasks", "ASYNC")
        File "/usr/local/lib/python3.7/dist-packages/geckolib/async_tasks.py", line 22, in add_task
          task = asyncio.create_task(coroutine, name=f"{key_}:{name_}")
      TypeError: create_task() got an unexpected keyword argument 'name'
      sys:1: RuntimeWarning: coroutine 'AsyncTasks._tidy' was never awaited`
      ``
      
      Der Wert wird aber nicht im Spa geupdatet (zumindest nicht mit der Info aus der Gecko App
      
      Zu3)
      Auch da wird nix getriggered wenn ich den DP mit "LO" oder "HI" steuer. Keine Logeinträge.
      
      Wie sieht da ein exemplarischer Aufruf auf der Kommandozeile aus? So korrekt?
      
      

      pi@raspberrypi-iob:~/wellis/v4 $ python3.10 spa_switchPump.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 1 1 javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Switch
      Total arguments passed: 6
      Connecting using client id 916b0096-ab56-4344-8728-43a8259c63c2
      Connecting to spa id SPAe8:eb:1b:1c:5e:46
      Switching pump id 1
      Switching pump to state id 1
      Got channel for update: javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Switch
      Looking for spas on your network ...
      2023-02-15 10:24:50,547> INFO Found 1 spas ... [Wellness(SPAe8:eb:1b:1c:5e:46)]
      *** connecting to spa
      *** pump name: Pump 2
      *** pump modes: ['OFF', 'LO', 'HI']
      *** current pump mode: OFF
      *** new pump state name: LO
      *** found: 3 pumps
      *** pump mode is now: OFF
      Traceback (most recent call last):
      File "/home/pi/.local/lib/python3.10/site-packages/requests/models.py", line 434, in prepare_url
      scheme, auth, host, port, path, query, fragment = parse_url(url)
      File "/home/pi/.local/lib/python3.10/site-packages/urllib3/util/url.py", line 397, in parse_url
      return six.raise_from(LocationParseError(source_url), None)
      File "<string>", line 3, in raise_from
      urllib3.exceptions.LocationParseError: Failed to parse: http://192:168:0:20:8087/set/javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Switch.Switch?value=0&ack=true

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
      File "/home/pi/wellis/v4/spa_switchPump.py", line 114, in <module>
      asyncio.run(main())
      File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
      return loop.run_until_complete(main)
      File "/usr/local/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete
      return future.result()
      File "/home/pi/wellis/v4/spa_switchPump.py", line 88, in main
      requests.get(f"{IOBROKER_BASE_URL}{IOBR_PUMP_CHANNEL}.Switch?value={SET_PUMP_STATE}&ack=true")
      File "/home/pi/.local/lib/python3.10/site-packages/requests/api.py", line 73, in get
      return request("get", url, params=params, **kwargs)
      File "/home/pi/.local/lib/python3.10/site-packages/requests/api.py", line 59, in request
      return session.request(method=method, url=url, **kwargs)
      File "/home/pi/.local/lib/python3.10/site-packages/requests/sessions.py", line 573, in request
      prep = self.prepare_request(req)
      File "/home/pi/.local/lib/python3.10/site-packages/requests/sessions.py", line 484, in prepare_request
      p.prepare(
      File "/home/pi/.local/lib/python3.10/site-packages/requests/models.py", line 368, in prepare
      self.prepare_url(url, params)
      File "/home/pi/.local/lib/python3.10/site-packages/requests/models.py", line 436, in prepare_url
      raise InvalidURL(*e.args)
      requests.exceptions.InvalidURL: Failed to parse: http://192:168:0:20:8087/set/javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Switch.Switch?value=0&ack=true
      pi@raspberrypi-iob:~/wellis/v4 $

      rrov1R Online
      rrov1R Online
      rrov1
      schrieb am zuletzt editiert von
      #68

      @tklein Hallo,
      zu 1.: ich sehe den Fehler :-) Du hast bei der IP-Adresse vom ioBroker als Trennzeichen einen ":" verwendet. Deswegen schaltet er zwar das Licht um kann den Datenpunkt aber nicht ändern. Dies betrifft auch spa_switchPump.py, dort ist der gleiche Fehler enthalten.

      zu 2: öffne mal das Skript TargetTemp.js im Javascript Editor. Zeile 2 müsste so lauten:

      on({id: /^javascript\.\d+\.Datenpunkte\.SwimSpa\.\d+\.ZielTemperatur$/, change: "ne", ack: false}, function (obj) {
      

      und drücke auf das "Restart" Icon oben drüber es müsste sowas im Protokoll stehen:

      20:25:16.549	info	javascript.0 (1349656) Stop script script.js.Spa.TargetTemp
      20:25:16.562	info	javascript.0 (1349656) Start javascript script.js.Spa.TargetTemp
      20:25:16.581	info	javascript.0 (1349656) script.js.Spa.TargetTemp: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
      

      Wichtig ist "registred 1 subscription"

      Was mich noch ein bisschen wundert, du hast doch nur einen gecko Controller. Der müsste unter javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur
      angesteuert werden und nicht unter: javascript.0.Datenpunkte.SwimSpa.1.ZielTemperatur. Wenn du unterhalb von javascript.0.Datenpunkte.SwimSpa zwei Zweige hat (also .0 und .1), dann lösche mal den .1er Zweig komplett im Objektbaum, den brauchst du nicht.

      zu 3: der Testaufruf ist fast korrekt:
      Argument 3: Pumpen ID 0 = Pumpe 1, 1 = Pumpe 2, 3 = Pumpe 3
      Argument 4: ist der Modus OFF = 0; LO = 1, HI = 2 -> da du geschrieben hast, deine Pumpen haben keinen LO-Mode, nimm dort bitte 0 oder 2
      Argument 5: ".Switch" weglassen
      Beispiel: Pumpe 2, HI

      python3.10 spa_switchPump.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 1 2 javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1
      

      Beispiel: Pumpe 2, OFF

      python3.10 spa_switchPump.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 1 0 javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1
      
      T 1 Antwort Letzte Antwort
      0
      • rrov1R rrov1

        @tklein Hallo,
        zu 1.: ich sehe den Fehler :-) Du hast bei der IP-Adresse vom ioBroker als Trennzeichen einen ":" verwendet. Deswegen schaltet er zwar das Licht um kann den Datenpunkt aber nicht ändern. Dies betrifft auch spa_switchPump.py, dort ist der gleiche Fehler enthalten.

        zu 2: öffne mal das Skript TargetTemp.js im Javascript Editor. Zeile 2 müsste so lauten:

        on({id: /^javascript\.\d+\.Datenpunkte\.SwimSpa\.\d+\.ZielTemperatur$/, change: "ne", ack: false}, function (obj) {
        

        und drücke auf das "Restart" Icon oben drüber es müsste sowas im Protokoll stehen:

        20:25:16.549	info	javascript.0 (1349656) Stop script script.js.Spa.TargetTemp
        20:25:16.562	info	javascript.0 (1349656) Start javascript script.js.Spa.TargetTemp
        20:25:16.581	info	javascript.0 (1349656) script.js.Spa.TargetTemp: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
        

        Wichtig ist "registred 1 subscription"

        Was mich noch ein bisschen wundert, du hast doch nur einen gecko Controller. Der müsste unter javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur
        angesteuert werden und nicht unter: javascript.0.Datenpunkte.SwimSpa.1.ZielTemperatur. Wenn du unterhalb von javascript.0.Datenpunkte.SwimSpa zwei Zweige hat (also .0 und .1), dann lösche mal den .1er Zweig komplett im Objektbaum, den brauchst du nicht.

        zu 3: der Testaufruf ist fast korrekt:
        Argument 3: Pumpen ID 0 = Pumpe 1, 1 = Pumpe 2, 3 = Pumpe 3
        Argument 4: ist der Modus OFF = 0; LO = 1, HI = 2 -> da du geschrieben hast, deine Pumpen haben keinen LO-Mode, nimm dort bitte 0 oder 2
        Argument 5: ".Switch" weglassen
        Beispiel: Pumpe 2, HI

        python3.10 spa_switchPump.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 1 2 javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1
        

        Beispiel: Pumpe 2, OFF

        python3.10 spa_switchPump.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 1 0 javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1
        
        T Offline
        T Offline
        tklein
        schrieb am zuletzt editiert von
        #69

        @rrov1 es wir langsam.

        Zu1)
        Oh man, Das sag ich besser nix zu....

        Zu2) Sieht bei mir auch so im Code und im Log aus mit dem subscription. Passiert aber immer noch nix wenn ich den DP unter Swim.Spa.0.Zieltemperatur ändere

        zu3) Danke für die Erklärung. Per Kommandozeile klappt es jetzt. Auch hier klappt das noch nicht per DP.

        rrov1R 1 Antwort Letzte Antwort
        0
        • T tklein

          @rrov1 es wir langsam.

          Zu1)
          Oh man, Das sag ich besser nix zu....

          Zu2) Sieht bei mir auch so im Code und im Log aus mit dem subscription. Passiert aber immer noch nix wenn ich den DP unter Swim.Spa.0.Zieltemperatur ändere

          zu3) Danke für die Erklärung. Per Kommandozeile klappt es jetzt. Auch hier klappt das noch nicht per DP.

          rrov1R Online
          rrov1R Online
          rrov1
          schrieb am zuletzt editiert von rrov1
          #70

          @tklein Merkwürdig, warum die beiden Subscriptions nicht laufen, habe extra einen regulären Ausdruck genommen, der bei uns beiden funktionieren sollte.

          Plan A: Bitte ändere in der Objektansicht mal den Datenpunkt z.B. für's Licht durch klick auf die Glocke in der Spalte Value und prüfe ob das Javascript ausgeführt wird. Wenn das geht, dann ist die Ursache, dass deine Visualisierung beim setzen des DP den ack-Wert mit auf true setzt. Warum kann ich dir nicht erklären, der Normalzustand ist, dass der ack-Wert false ist.
          So eine Subscription die ich nutze hat 3 Parameter:
          1: id == Pfad zum Datenpunkt (entweder ein regulärer Ausdruck oder halt der Pfad)
          2: change == die Art der Änderung: ne -> der neue Wert des Datenpunkt muss anders sein als der alte Wert bzw. any -> es ist jeder beliebige (auch der gleiche) Wert akzeptabel um eine Reaktion auszulösen
          3: ack == der ack-Wert, bei mir muss er unbedingt false sein, damit die Subscription reagiert, wenn der true wäre, dann reagiert nichts. Der Parameter kann auch weggelassen werden.

          Plan B: Wenn Plan A nicht fruchtet, dann trägst du den Datenpunkt erst mal direkt ein:

          zu 2: öffne mal das Skript TargetTemp.js im Javascript Editor. In Zeile 2 musst du den regulären Ausdruck, welche mit "/" beginnt und mit "/" endet durch den Pfad zum Datenpunkt ersetzen (welcher von zwei doppelten Hochkomma eingeschlossen sein muss).
          ALT:

          on({id: /^javascript\.\d+\.Datenpunkte\.SwimSpa\.\d+\.ZielTemperatur$/, change: "ne", ack: false}, function (obj) {
          

          NEU

          on({id: "javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur", change: "ne", ack: false}, function (obj) {
          

          zu 3: Das ist komplizierter, lösche im Skript PumpSwitches.js als erstes die Zeilen 2-4 und dann musst du, da du vmtl. ja auch 3 Pumpen hast folgendes einsetzen:

          on({id: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P0.Switch", change: "any", ack: false}, function (obj) {
              switchPump(obj);
          });
          on({id: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Switch", change: "any", ack: false}, function (obj) {
              switchPump(obj);
          });
          on({id: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Switch", change: "any", ack: false}, function (obj) {
              switchPump(obj);
          });
          

          Vergleiche bitte die Pfade die ich hier eingetragen habe bei dir nach, das die auch wirklich identisch sind. Damit muss das Javascript jetzt ausgeführt werden, wenn die den Datenpunkt in der Objektansicht änderst.

          T 1 Antwort Letzte Antwort
          0
          • rrov1R rrov1

            @tklein Merkwürdig, warum die beiden Subscriptions nicht laufen, habe extra einen regulären Ausdruck genommen, der bei uns beiden funktionieren sollte.

            Plan A: Bitte ändere in der Objektansicht mal den Datenpunkt z.B. für's Licht durch klick auf die Glocke in der Spalte Value und prüfe ob das Javascript ausgeführt wird. Wenn das geht, dann ist die Ursache, dass deine Visualisierung beim setzen des DP den ack-Wert mit auf true setzt. Warum kann ich dir nicht erklären, der Normalzustand ist, dass der ack-Wert false ist.
            So eine Subscription die ich nutze hat 3 Parameter:
            1: id == Pfad zum Datenpunkt (entweder ein regulärer Ausdruck oder halt der Pfad)
            2: change == die Art der Änderung: ne -> der neue Wert des Datenpunkt muss anders sein als der alte Wert bzw. any -> es ist jeder beliebige (auch der gleiche) Wert akzeptabel um eine Reaktion auszulösen
            3: ack == der ack-Wert, bei mir muss er unbedingt false sein, damit die Subscription reagiert, wenn der true wäre, dann reagiert nichts. Der Parameter kann auch weggelassen werden.

            Plan B: Wenn Plan A nicht fruchtet, dann trägst du den Datenpunkt erst mal direkt ein:

            zu 2: öffne mal das Skript TargetTemp.js im Javascript Editor. In Zeile 2 musst du den regulären Ausdruck, welche mit "/" beginnt und mit "/" endet durch den Pfad zum Datenpunkt ersetzen (welcher von zwei doppelten Hochkomma eingeschlossen sein muss).
            ALT:

            on({id: /^javascript\.\d+\.Datenpunkte\.SwimSpa\.\d+\.ZielTemperatur$/, change: "ne", ack: false}, function (obj) {
            

            NEU

            on({id: "javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur", change: "ne", ack: false}, function (obj) {
            

            zu 3: Das ist komplizierter, lösche im Skript PumpSwitches.js als erstes die Zeilen 2-4 und dann musst du, da du vmtl. ja auch 3 Pumpen hast folgendes einsetzen:

            on({id: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P0.Switch", change: "any", ack: false}, function (obj) {
                switchPump(obj);
            });
            on({id: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Switch", change: "any", ack: false}, function (obj) {
                switchPump(obj);
            });
            on({id: "javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P2.Switch", change: "any", ack: false}, function (obj) {
                switchPump(obj);
            });
            

            Vergleiche bitte die Pfade die ich hier eingetragen habe bei dir nach, das die auch wirklich identisch sind. Damit muss das Javascript jetzt ausgeführt werden, wenn die den Datenpunkt in der Objektansicht änderst.

            T Offline
            T Offline
            tklein
            schrieb am zuletzt editiert von
            #71

            @rrov1 ich rufe derzeit immer direkt die dp auf- habe noch keine vis.

            Danke für deine Top-Hilfe, aber das Problem liegt glaube ich eher beim Aufruf der Skripte. Selbst so kann ich die nicht starten.
            fc19a1e7-e276-4caa-bb17-47b35814558a-grafik.png

            Andere *.py kann ich per blockly ausführen. Ich muss erst schauen, was da im argen ist.

            rrov1R 1 Antwort Letzte Antwort
            0
            • T tklein

              @rrov1 ich rufe derzeit immer direkt die dp auf- habe noch keine vis.

              Danke für deine Top-Hilfe, aber das Problem liegt glaube ich eher beim Aufruf der Skripte. Selbst so kann ich die nicht starten.
              fc19a1e7-e276-4caa-bb17-47b35814558a-grafik.png

              Andere *.py kann ich per blockly ausführen. Ich muss erst schauen, was da im argen ist.

              rrov1R Online
              rrov1R Online
              rrov1
              schrieb am zuletzt editiert von
              #72

              @tklein Hm, die Lösung würde mich interessieren, auch wenn ich eher nicht mit Blockly arbeite, aber soweit ich weiß wird das auch nur in Javascript umgesetzt. Ich hätte ja spontan gesagt, das im Javascript Adapter "exec ausführen" nicht aktiv ist, aber das widerspricht ja dem, das du manche Python-Skripte ausführen kanns.

              T rrov1R 2 Antworten Letzte Antwort
              0
              • rrov1R rrov1

                @tklein Hm, die Lösung würde mich interessieren, auch wenn ich eher nicht mit Blockly arbeite, aber soweit ich weiß wird das auch nur in Javascript umgesetzt. Ich hätte ja spontan gesagt, das im Javascript Adapter "exec ausführen" nicht aktiv ist, aber das widerspricht ja dem, das du manche Python-Skripte ausführen kanns.

                T Offline
                T Offline
                tklein
                schrieb am zuletzt editiert von
                #73

                @rrov1 es sieht so aus, als wenn ich per blockly nicht python3.10 aufrufen kann. die datei spa_updateBulk.py kann ich mit python fehlerlos aufrufen. bei den steuerungen skripten bekomme ich bei der 3er version immer errors

                1 Antwort Letzte Antwort
                0
                • rrov1R rrov1

                  @tklein Hm, die Lösung würde mich interessieren, auch wenn ich eher nicht mit Blockly arbeite, aber soweit ich weiß wird das auch nur in Javascript umgesetzt. Ich hätte ja spontan gesagt, das im Javascript Adapter "exec ausführen" nicht aktiv ist, aber das widerspricht ja dem, das du manche Python-Skripte ausführen kanns.

                  rrov1R Online
                  rrov1R Online
                  rrov1
                  schrieb am zuletzt editiert von
                  #74

                  @rrov1 Aber warum gehen dann einige der Scripte!?
                  Ruf mal:

                  which python3.10
                  

                  auf, dann hast du den vollständigen Pfad. Dann bau mal ein Blockly mit einem exec wie folgt zusammen:

                  /vollständiger/pfad/zu/python3.10 -c "print('hello world.')"
                  

                  Im Ergebnis müsstest als Ausgabe in der Blockly Variable result dann "hello world" ausgegeben bekommen.

                  Wenn das funktioniert, dann könnte er die py-Skripte nicht finden, da könntest du vor den Skriptnamen auch noch den vollständigen Pfad einfügen.

                  T 2 Antworten Letzte Antwort
                  0
                  • rrov1R rrov1

                    @rrov1 Aber warum gehen dann einige der Scripte!?
                    Ruf mal:

                    which python3.10
                    

                    auf, dann hast du den vollständigen Pfad. Dann bau mal ein Blockly mit einem exec wie folgt zusammen:

                    /vollständiger/pfad/zu/python3.10 -c "print('hello world.')"
                    

                    Im Ergebnis müsstest als Ausgabe in der Blockly Variable result dann "hello world" ausgegeben bekommen.

                    Wenn das funktioniert, dann könnte er die py-Skripte nicht finden, da könntest du vor den Skriptnamen auch noch den vollständigen Pfad einfügen.

                    T Offline
                    T Offline
                    tklein
                    schrieb am zuletzt editiert von tklein
                    #75

                    @rrov1

                    Zwischenupdate:
                    es wird immer besser :-) an den Pfad habe ich gar nicht gedacht. Hatte eine Shebang am Anfang der PY-Dateien ohne Erfolg hinzugefügt gehabt.

                    Das klappt. Juhu!
                    30a30143-8bc0-462d-a744-ad9c15209c44-grafik.png

                    Aufrufen kann ich die Skripte immer noch nicht aus dem blockly. Mal sehen was es noch ist

                    Derzeit sieht es so aus inkl. vollständigen Pfad zur Datei:

                    8d2f3784-cf27-4802-80f2-c7ee7111edfd-grafik.png

                    pi@raspberrypi-iob:~/wellis/v4 $ python3.10 spa_switchPump.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 1 0 javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Switch
                    Total arguments passed: 6
                    Connecting using client id 916b0096-ab56-4344-8728-43a8259c63c2
                    Connecting to spa id SPAe8:eb:1b:1c:5e:46
                    Switching pump id 1
                    Switching pump to state id 0
                    Got channel for update: javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1.Switch
                    Looking for spas on your network ...
                    2023-02-19 11:04:01,189> INFO Found 1 spas ... [Wellness(SPAe8:eb:1b:1c:5e:46)]
                    *** connecting to spa
                    *** pump name: Pump 2
                    *** pump modes: ['OFF', 'LO', 'HI']
                    *** current pump mode: HI
                    *** new pump state name: OFF
                    *** found: 3 pumps
                    2023-02-19 11:04:11,461> INFO Value for UdP2 changed from HI to OFF
                    2023-02-19 11:04:11,464> INFO Value for P2 changed from HIGH to OFF
                    2023-02-19 11:04:11,467> INFO Value for UdPumpTime changed from 14 to 0
                    *** pump mode is now: OFF
                    *** end
                    pi@raspberrypi-iob:~/wellis/v4 $ pwd
                    /home/pi/wellis/v4
                    
                    
                    1 Antwort Letzte Antwort
                    0
                    • rrov1R rrov1

                      @rrov1 Aber warum gehen dann einige der Scripte!?
                      Ruf mal:

                      which python3.10
                      

                      auf, dann hast du den vollständigen Pfad. Dann bau mal ein Blockly mit einem exec wie folgt zusammen:

                      /vollständiger/pfad/zu/python3.10 -c "print('hello world.')"
                      

                      Im Ergebnis müsstest als Ausgabe in der Blockly Variable result dann "hello world" ausgegeben bekommen.

                      Wenn das funktioniert, dann könnte er die py-Skripte nicht finden, da könntest du vor den Skriptnamen auch noch den vollständigen Pfad einfügen.

                      T Offline
                      T Offline
                      tklein
                      schrieb am zuletzt editiert von
                      #76

                      @rrov1 habe den pythonpath in den *.py dateien erweitert.

                      Dennoch bekomme ich folgenden Log beim Update eines DP:

                      31288	2023-02-19 12:53:22.178	info	script.js.common.Draussen.Wellis_Whirlpool.PumpSwitches: *** stderr: Error: Command failed: /usr/local/bin/python3.10 /home/pi/wellis/v4 spa_switchPump.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 0 2 javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1 /usr/local/bin/python3.10: can't find '__main__' module in '/home/pi/wellis/v4'
                      
                      

                      Zugriff auf diesen Ordener ist möglich. Rufe per blockly cron minütlich spa_updateBulk.py auf. jedoch mit python3

                      rrov1R 1 Antwort Letzte Antwort
                      0
                      • T tklein

                        @rrov1 habe den pythonpath in den *.py dateien erweitert.

                        Dennoch bekomme ich folgenden Log beim Update eines DP:

                        31288	2023-02-19 12:53:22.178	info	script.js.common.Draussen.Wellis_Whirlpool.PumpSwitches: *** stderr: Error: Command failed: /usr/local/bin/python3.10 /home/pi/wellis/v4 spa_switchPump.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 0 2 javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1 /usr/local/bin/python3.10: can't find '__main__' module in '/home/pi/wellis/v4'
                        
                        

                        Zugriff auf diesen Ordener ist möglich. Rufe per blockly cron minütlich spa_updateBulk.py auf. jedoch mit python3

                        rrov1R Online
                        rrov1R Online
                        rrov1
                        schrieb am zuletzt editiert von
                        #77

                        @tklein Hallo, also ich würde sagen, dass die Ursache das Leerzeichen zwischen Pfad zum Skript und dem Skriptnamen ist. Der Aufruf müsste so lauten:

                        /usr/local/bin/python3.10 /home/pi/wellis/v4/spa_switchPump.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 0 2 javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1
                        

                        Du kannst nicht den Pfad zum Skript vom Skriptnamen durch ein Leerzeichen trennen, damit bekommt python3.10 2 Parameter und interpretiert den Verzeichnisnamen als aufzurufendes Skript - was zu der aus meiner Sicht unpassenden und irreführenden Fehlermeldung führt.

                        Hinweis zum Blockly Screenshot:
                        Das "-c" funktioniert so nicht, das "-c" sagt dem Python Interpreter, das im nächsten Parameter Python-Quellcode kommt (siehe auch hier). Du hast aber ein Skript.

                        Wahrscheinlich kannst du dir den vollständigen Pfad zu python3.10 wieder sparen.
                        Prüfe auch mal ob nicht python3 und python3.10 nicht auf das gleiche zeigen:

                        ls -la /usr/local/bin/python3*
                        

                        Bei mir sieht das Ergebnis so aus:

                        ls -la /usr/bin/python3*
                        lrwxrwxrwx 1 root root       9 Apr  5  2021 /usr/bin/python3 -> python3.9
                        -rwxr-xr-x 1 root root 5479736 Feb 28  2021 /usr/bin/python3.9
                        

                        python3 ist nur ein Link der auf python3.9 zeigt. Ich benutze den Link, denn wenn bei meiner Distro doch mal Python auf eine höhere Version aktualisiert, dann wird python3 immer noch funktionieren, wohingegen python3.9 dann nicht mehr geht.

                        T 1 Antwort Letzte Antwort
                        0
                        • rrov1R rrov1

                          @tklein Hallo, also ich würde sagen, dass die Ursache das Leerzeichen zwischen Pfad zum Skript und dem Skriptnamen ist. Der Aufruf müsste so lauten:

                          /usr/local/bin/python3.10 /home/pi/wellis/v4/spa_switchPump.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 0 2 javascript.0.Datenpunkte.SwimSpa.0.Pumpen.P1
                          

                          Du kannst nicht den Pfad zum Skript vom Skriptnamen durch ein Leerzeichen trennen, damit bekommt python3.10 2 Parameter und interpretiert den Verzeichnisnamen als aufzurufendes Skript - was zu der aus meiner Sicht unpassenden und irreführenden Fehlermeldung führt.

                          Hinweis zum Blockly Screenshot:
                          Das "-c" funktioniert so nicht, das "-c" sagt dem Python Interpreter, das im nächsten Parameter Python-Quellcode kommt (siehe auch hier). Du hast aber ein Skript.

                          Wahrscheinlich kannst du dir den vollständigen Pfad zu python3.10 wieder sparen.
                          Prüfe auch mal ob nicht python3 und python3.10 nicht auf das gleiche zeigen:

                          ls -la /usr/local/bin/python3*
                          

                          Bei mir sieht das Ergebnis so aus:

                          ls -la /usr/bin/python3*
                          lrwxrwxrwx 1 root root       9 Apr  5  2021 /usr/bin/python3 -> python3.9
                          -rwxr-xr-x 1 root root 5479736 Feb 28  2021 /usr/bin/python3.9
                          

                          python3 ist nur ein Link der auf python3.9 zeigt. Ich benutze den Link, denn wenn bei meiner Distro doch mal Python auf eine höhere Version aktualisiert, dann wird python3 immer noch funktionieren, wohingegen python3.9 dann nicht mehr geht.

                          T Offline
                          T Offline
                          tklein
                          schrieb am zuletzt editiert von tklein
                          #78

                          @rrov1 ok, jetzt sieht es so im log aus hne den blank:

                          script.js.common.Draussen.Wellis_Whirlpool.TargetTemp_js: *** stderr: Error: Command failed: /usr/local/bin/python3.10 /home/pi/wellis/v4/spa_setTargetTemp.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 37 javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur Traceback (most recent call last): File "/home/pi/wellis/v4/spa_setTargetTemp.py", line 5, in <module> import requests ModuleNotFoundError: No module named 'requests'
                          
                          

                          Es wir 3.10 wohl nicht aufgerufen?

                          pi@raspberrypi-iob:/usr/local/bin $ ls -la /usr/local/bin/python3*
                          -rwxr-xr-x 1 root root 17752176 Jan  7 17:21 /usr/local/bin/python3.10
                          -rwxr-xr-x 1 root root     3096 Jan  7 17:22 /usr/local/bin/python3.10-config
                          
                          

                          Anderer Ordner:

                          pi@raspberrypi-iob:/usr/local/bin $ ls -la /usr/bin/python3*
                          lrwxrwxrwx 1 root root       9 Mar 26  2019 /usr/bin/python3 -> python3.7
                          -rwxr-xr-x 2 root root 4275580 Oct 31 15:04 /usr/bin/python3.7
                          lrwxrwxrwx 1 root root      36 Oct 31 15:04 /usr/bin/python3.7-config -> arm-linux-gnueabihf-python3.7-config
                          -rwxr-xr-x 2 root root 4275580 Oct 31 15:04 /usr/bin/python3.7m
                          lrwxrwxrwx 1 root root      37 Oct 31 15:04 /usr/bin/python3.7m-config -> arm-linux-gnueabihf-python3.7m-config
                          lrwxrwxrwx 1 root root      16 Mar 26  2019 /usr/bin/python3-config -> python3.7-config
                          lrwxrwxrwx 1 root root      10 Mar 26  2019 /usr/bin/python3m -> python3.7m
                          lrwxrwxrwx 1 root root      17 Mar 26  2019 /usr/bin/python3m-config -> python3.7m-config
                          
                          
                          rrov1R 1 Antwort Letzte Antwort
                          0
                          • T tklein

                            @rrov1 ok, jetzt sieht es so im log aus hne den blank:

                            script.js.common.Draussen.Wellis_Whirlpool.TargetTemp_js: *** stderr: Error: Command failed: /usr/local/bin/python3.10 /home/pi/wellis/v4/spa_setTargetTemp.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 37 javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur Traceback (most recent call last): File "/home/pi/wellis/v4/spa_setTargetTemp.py", line 5, in <module> import requests ModuleNotFoundError: No module named 'requests'
                            
                            

                            Es wir 3.10 wohl nicht aufgerufen?

                            pi@raspberrypi-iob:/usr/local/bin $ ls -la /usr/local/bin/python3*
                            -rwxr-xr-x 1 root root 17752176 Jan  7 17:21 /usr/local/bin/python3.10
                            -rwxr-xr-x 1 root root     3096 Jan  7 17:22 /usr/local/bin/python3.10-config
                            
                            

                            Anderer Ordner:

                            pi@raspberrypi-iob:/usr/local/bin $ ls -la /usr/bin/python3*
                            lrwxrwxrwx 1 root root       9 Mar 26  2019 /usr/bin/python3 -> python3.7
                            -rwxr-xr-x 2 root root 4275580 Oct 31 15:04 /usr/bin/python3.7
                            lrwxrwxrwx 1 root root      36 Oct 31 15:04 /usr/bin/python3.7-config -> arm-linux-gnueabihf-python3.7-config
                            -rwxr-xr-x 2 root root 4275580 Oct 31 15:04 /usr/bin/python3.7m
                            lrwxrwxrwx 1 root root      37 Oct 31 15:04 /usr/bin/python3.7m-config -> arm-linux-gnueabihf-python3.7m-config
                            lrwxrwxrwx 1 root root      16 Mar 26  2019 /usr/bin/python3-config -> python3.7-config
                            lrwxrwxrwx 1 root root      10 Mar 26  2019 /usr/bin/python3m -> python3.7m
                            lrwxrwxrwx 1 root root      17 Mar 26  2019 /usr/bin/python3m-config -> python3.7m-config
                            
                            
                            rrov1R Online
                            rrov1R Online
                            rrov1
                            schrieb am zuletzt editiert von
                            #79

                            @tklein Na die Fehlermeldung ist "besser". Du hast praktisch immer noch 2 Python3 Installationen parallel auf deinem System. Die 3.10er Version hat entsprechend der Fehlermeldung das "requests"-Modul nicht installiert. Wenn ich dem hier folge, dann müsstest du:

                            python3.10 -m pip install requests
                            

                            aufrufen um auch in dieser Python-Installation das bereitzustellen. Ich vermute das dann noch andere Module fehlen, wenn dem so ist, findest du in der angenörgelten Quellcodezeile den Namen des Moduls das du noch installieren musst.

                            T 2 Antworten Letzte Antwort
                            0
                            • rrov1R rrov1

                              @tklein Na die Fehlermeldung ist "besser". Du hast praktisch immer noch 2 Python3 Installationen parallel auf deinem System. Die 3.10er Version hat entsprechend der Fehlermeldung das "requests"-Modul nicht installiert. Wenn ich dem hier folge, dann müsstest du:

                              python3.10 -m pip install requests
                              

                              aufrufen um auch in dieser Python-Installation das bereitzustellen. Ich vermute das dann noch andere Module fehlen, wenn dem so ist, findest du in der angenörgelten Quellcodezeile den Namen des Moduls das du noch installieren musst.

                              T Offline
                              T Offline
                              tklein
                              schrieb am zuletzt editiert von tklein
                              #80

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

                              python3.10 -m pip install requests

                              Dann dürfte es doch beim Aufruf direkt über die Kommandozeile auch nicht laufen. Das klappt ja:

                              pi@raspberrypi-iob:~/wellis/v4 $ python3.10 spa_setTargetTemp.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 34 javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur
                              Total arguments passed: 5
                              Connecting using client id 916b0096-ab56-4344-8728-43a8259c63c2
                              Connecting to spa id SPAe8:eb:1b:1c:5e:46
                              New target temp: 34
                              Got datapoint to update: javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur
                              Looking for spas on your network ...
                              2023-02-20 08:25:42,352> INFO Found 1 spas ... [Wellness(SPAe8:eb:1b:1c:5e:46)]
                              *** connecting to spa
                              *** water heater present
                              *** current target temp: 35.0
                              2023-02-20 08:25:52,609> INFO Value for SetpointG changed from 35.0 to 34.0
                              2023-02-20 08:25:52,995> INFO Value for CP changed from OFF to ON
                              2023-02-20 08:25:52,995> INFO Value for Waterfall changed from OFF to ON
                              2023-02-20 08:25:52,997> INFO Value for RealSetPointG changed from 35.0 to 34.0
                              2023-02-20 08:25:52,999> INFO Value for CheckFlo changed from False to True
                              2023-02-20 08:25:53,170> INFO Value for RhWaterTemp changed from 35.166666666666664 to 33.166666666666664
                              *** target temp is now: 34.0
                              *** end
                              
                              

                              Habe dennoch mal den Befehl aufgerufen:

                              pi@raspberrypi-iob:~ $ python3.10 -m pip install requests
                              Defaulting to user installation because normal site-packages is not writeable
                              Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
                              Requirement already satisfied: requests in ./.local/lib/python3.10/site-packages (2.28.2)
                              Requirement already satisfied: charset-normalizer<4,>=2 in ./.local/lib/python3.10/site-packages (from requests) (3.0.1)
                              Requirement already satisfied: idna<4,>=2.5 in ./.local/lib/python3.10/site-packages (from requests) (3.4)
                              Requirement already satisfied: urllib3<1.27,>=1.21.1 in ./.local/lib/python3.10/site-packages (from requests) (1.26.14)
                              Requirement already satisfied: certifi>=2017.4.17 in ./.local/lib/python3.10/site-packages (from requests) (2022.12.7)
                              
                              [notice] A new release of pip available: 22.3.1 -> 23.0.1
                              [notice] To update, run: pip3.10 install --upgrade pip
                              
                              

                              Kann man sich zur Lafzeit nicht als erstes die gerade verwendete Version von python ausgeben lassen? Habe das Gefühl, dass nicht die 3.10 genommen wird.

                              Beim Kommandozeilenaufruf mit 3.7 bekomme ich das:

                              pi@raspberrypi-iob:~/wellis/v4 $ python3.7 spa_setTargetTemp.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 34 javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur
                              Total arguments passed: 5
                              Connecting using client id 916b0096-ab56-4344-8728-43a8259c63c2
                              Connecting to spa id SPAe8:eb:1b:1c:5e:46
                              New target temp: 34
                              Got datapoint to update: javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur
                              Traceback (most recent call last):
                                File "spa_setTargetTemp.py", line 108, in <module>
                                  asyncio.run(main())
                                File "/usr/lib/python3.7/asyncio/runners.py", line 43, in run
                                  return loop.run_until_complete(main)
                                File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
                                  return future.result()
                                File "spa_setTargetTemp.py", line 49, in main
                                  async with SampleSpaMan(CLIENT_ID, spa_identifier=SPA_ID) as spaman:
                                File "/usr/local/lib/python3.7/dist-packages/geckolib/async_spa_manager.py", line 199, in __aenter__
                                  await AsyncTasks.__aenter__(self)
                                File "/usr/local/lib/python3.7/dist-packages/geckolib/async_tasks.py", line 15, in __aenter__
                                  self.add_task(self._tidy(), "Tidy tasks", "ASYNC")
                                File "/usr/local/lib/python3.7/dist-packages/geckolib/async_tasks.py", line 22, in add_task
                                  task = asyncio.create_task(coroutine, name=f"{key_}:{name_}")
                              TypeError: create_task() got an unexpected keyword argument 'name'
                              sys:1: RuntimeWarning: coroutine 'AsyncTasks._tidy' was never awaited
                              
                              
                              1 Antwort Letzte Antwort
                              0
                              • rrov1R rrov1

                                @tklein Na die Fehlermeldung ist "besser". Du hast praktisch immer noch 2 Python3 Installationen parallel auf deinem System. Die 3.10er Version hat entsprechend der Fehlermeldung das "requests"-Modul nicht installiert. Wenn ich dem hier folge, dann müsstest du:

                                python3.10 -m pip install requests
                                

                                aufrufen um auch in dieser Python-Installation das bereitzustellen. Ich vermute das dann noch andere Module fehlen, wenn dem so ist, findest du in der angenörgelten Quellcodezeile den Namen des Moduls das du noch installieren musst.

                                T Offline
                                T Offline
                                tklein
                                schrieb am zuletzt editiert von
                                #81

                                @rrov1 da hast du mit mir echt eine harte nuss :-)

                                rrov1R 1 Antwort Letzte Antwort
                                0
                                • T tklein

                                  @rrov1 da hast du mit mir echt eine harte nuss :-)

                                  rrov1R Online
                                  rrov1R Online
                                  rrov1
                                  schrieb am zuletzt editiert von
                                  #82

                                  @tklein Das bekommen wir schon noch raus, manchmal braucht es viel Geduld.

                                  Mit folgenden 2 Zeilen bekommst du die Python Version und das Verzeichnis des Interpreters raus:

                                  print(f"current version: {sys.version}")
                                  print(f"interpreter directory: {sys.executable}")
                                  

                                  Füge die Zeilen im Skript deiner Wahl gleich nach der Zeile "import sys" ein, bei spa_setTargetTemp.py z.B. gleich in Zeile 2.

                                  Du bekommst dann als Ausgabe sowas in der Art:

                                  current version: 3.9.2 (default, Feb 28 2021, 17:03:44)
                                  [GCC 10.2.1 20210110]
                                  interpreter directory: /usr/bin/python3
                                  

                                  ausgegeben.

                                  Ich bin mal gespannt. Nach der Fehlermeldung:

                                  script.js.common.Draussen.Wellis_Whirlpool.TargetTemp_js: *** stderr: Error: Command failed: /usr/local/bin/python3.10 /home/pi/wellis/v4/spa_setTargetTemp.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 37 javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur Traceback (most recent call last): File "/home/pi/wellis/v4/spa_setTargetTemp.py", line 5, in <module> import requests ModuleNotFoundError: No module named 'requests'
                                  

                                  Hätte ich schon die 3.10er Version in Verdacht gehabt.

                                  T 1 Antwort Letzte Antwort
                                  0
                                  • rrov1R rrov1

                                    @tklein Das bekommen wir schon noch raus, manchmal braucht es viel Geduld.

                                    Mit folgenden 2 Zeilen bekommst du die Python Version und das Verzeichnis des Interpreters raus:

                                    print(f"current version: {sys.version}")
                                    print(f"interpreter directory: {sys.executable}")
                                    

                                    Füge die Zeilen im Skript deiner Wahl gleich nach der Zeile "import sys" ein, bei spa_setTargetTemp.py z.B. gleich in Zeile 2.

                                    Du bekommst dann als Ausgabe sowas in der Art:

                                    current version: 3.9.2 (default, Feb 28 2021, 17:03:44)
                                    [GCC 10.2.1 20210110]
                                    interpreter directory: /usr/bin/python3
                                    

                                    ausgegeben.

                                    Ich bin mal gespannt. Nach der Fehlermeldung:

                                    script.js.common.Draussen.Wellis_Whirlpool.TargetTemp_js: *** stderr: Error: Command failed: /usr/local/bin/python3.10 /home/pi/wellis/v4/spa_setTargetTemp.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 37 javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur Traceback (most recent call last): File "/home/pi/wellis/v4/spa_setTargetTemp.py", line 5, in <module> import requests ModuleNotFoundError: No module named 'requests'
                                    

                                    Hätte ich schon die 3.10er Version in Verdacht gehabt.

                                    T Offline
                                    T Offline
                                    tklein
                                    schrieb am zuletzt editiert von
                                    #83

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

                                    print(f"current version: {sys.version}")

                                    da kann ich ja noch hoffen. :-)

                                    Hier der Log nach der Ergänzung:

                                    31288	2023-02-20 22:36:21.615	info	script.js.common.Draussen.Wellis_Whirlpool.TargetTemp_js: *** setting state of:javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur to old value: 33
                                    31288	2023-02-20 22:36:21.603	info	script.js.common.Draussen.Wellis_Whirlpool.TargetTemp_js: *** stderr: Error: Command failed: /usr/local/bin/python3.10 /home/pi/wellis/v4/spa_setTargetTemp.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 34 javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur Traceback (most recent call last): File "/home/pi/wellis/v4/spa_setTargetTemp.py", line 8, in <module> import requests ModuleNotFoundError: No module named 'requests'
                                    31288	2023-02-20 22:36:21.603	info	script.js.common.Draussen.Wellis_Whirlpool.TargetTemp_js: *** stdout: current version: 3.10.9 (main, Jan 7 2023, 17:15:23) [GCC 8.3.0] interpreter directory: /usr/local/bin/python3.10
                                    

                                    Hier der Log nach dem Kommandozeilenaufruf:

                                    pi@raspberrypi-iob:~/wellis/v4 $ python3.10 spa_setTargetTemp.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 34 javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur
                                    current version: 3.10.9 (main, Jan  7 2023, 17:15:23) [GCC 8.3.0]
                                    interpreter directory: /usr/local/bin/python3.10
                                    Total arguments passed: 5
                                    

                                    Echt spannend warum das via Kommandozeile klappt, aber per js nicht.

                                    rrov1R 1 Antwort Letzte Antwort
                                    0
                                    • T Offline
                                      T Offline
                                      tklein
                                      schrieb am zuletzt editiert von
                                      #84

                                      warum das mit dem dp für das licht nicht geklappt hat, habe ich herausgefunden.

                                      In meiner version stand noch das drin:
                                      on({id: /^javascript.\d+.Datenpunkte.SwimSpa.\d+.Lichter.LI.Switch**$**/, change: "any", ack: false}, function (obj) {

                                      Dennoch das gleiche problem wie bei den anderen skripten:

                                      31288	2023-02-21 15:43:34.559	info	script.js.common.Draussen.Wellis_Whirlpool.LightToggle: *** setting state of:javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Switch to old value: false
                                      31288	2023-02-21 15:43:34.559	info	script.js.common.Draussen.Wellis_Whirlpool.LightToggle: *** stderr: Error: Command failed: /usr/local/bin/python3.10 /home/pi/wellis/v4/spa_toggleLight.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 LI javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI Traceback (most recent call last): File "/home/pi/wellis/v4/spa_toggleLight.py", line 7, in <module> import requests ModuleNotFoundError: No module named 'requests'
                                      31288	2023-02-21 15:43:34.558	info	script.js.common.Draussen.Wellis_Whirlpool.LightToggle: *** stdout: current version: 3.10.9 (main, Jan 7 2023, 17:15:23) [GCC 8.3.0] interpreter directory: /usr/local/bin/python3.10
                                      
                                      
                                      rrov1R 1 Antwort Letzte Antwort
                                      0
                                      • T tklein

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

                                        print(f"current version: {sys.version}")

                                        da kann ich ja noch hoffen. :-)

                                        Hier der Log nach der Ergänzung:

                                        31288	2023-02-20 22:36:21.615	info	script.js.common.Draussen.Wellis_Whirlpool.TargetTemp_js: *** setting state of:javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur to old value: 33
                                        31288	2023-02-20 22:36:21.603	info	script.js.common.Draussen.Wellis_Whirlpool.TargetTemp_js: *** stderr: Error: Command failed: /usr/local/bin/python3.10 /home/pi/wellis/v4/spa_setTargetTemp.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 34 javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur Traceback (most recent call last): File "/home/pi/wellis/v4/spa_setTargetTemp.py", line 8, in <module> import requests ModuleNotFoundError: No module named 'requests'
                                        31288	2023-02-20 22:36:21.603	info	script.js.common.Draussen.Wellis_Whirlpool.TargetTemp_js: *** stdout: current version: 3.10.9 (main, Jan 7 2023, 17:15:23) [GCC 8.3.0] interpreter directory: /usr/local/bin/python3.10
                                        

                                        Hier der Log nach dem Kommandozeilenaufruf:

                                        pi@raspberrypi-iob:~/wellis/v4 $ python3.10 spa_setTargetTemp.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 34 javascript.0.Datenpunkte.SwimSpa.0.ZielTemperatur
                                        current version: 3.10.9 (main, Jan  7 2023, 17:15:23) [GCC 8.3.0]
                                        interpreter directory: /usr/local/bin/python3.10
                                        Total arguments passed: 5
                                        

                                        Echt spannend warum das via Kommandozeile klappt, aber per js nicht.

                                        rrov1R Online
                                        rrov1R Online
                                        rrov1
                                        schrieb am zuletzt editiert von
                                        #85

                                        @tklein Nun, mich beschleicht das Gefühl, das Python beim Aufruf aus ioBroker evtl. von der Kommandozeile abweichende Pfade mitgegeben bekommt und deswegen das Modul requests schlicht nicht findet. Ich bin tatsächlich nicht so fit mit Python und Zusatzmodulen.

                                        Füge mal nach "import sys" folgendes ein:

                                        print(f"pfad: {sys.path}")
                                        

                                        Führe das Script einmal per Commandline aus und poste die Ausgabe nach "pfad:" hier, sowie einmal per ioBroker.

                                        Weiterhin kannst du mal folgendes ausprobieren (Quelle: hier) :

                                        • ausführen von: pip3 install requests
                                        • Ergebnis müsste (mit natürlich abweichenden Pfad) lauten:
                                        Requirement already satisfied: requests in /usr/lib/python3/dist-packages (2.25.1)
                                        
                                        • poste bitte auch mal das Ergebnis bei dir
                                        • nach "import sys" fügst du ein (natürlich mit deinem Pfad):
                                        sys.path.append("/usr/lib/python3/dist-packages")
                                        

                                        Läuft's dann vom ioBroker aus?

                                        Kann es weiterhin sein, das du ioBroker unter einem anderen Useraccount ausführst, als du dich zum Testen anmeldest?

                                        T 1 Antwort Letzte Antwort
                                        0
                                        • T tklein

                                          warum das mit dem dp für das licht nicht geklappt hat, habe ich herausgefunden.

                                          In meiner version stand noch das drin:
                                          on({id: /^javascript.\d+.Datenpunkte.SwimSpa.\d+.Lichter.LI.Switch**$**/, change: "any", ack: false}, function (obj) {

                                          Dennoch das gleiche problem wie bei den anderen skripten:

                                          31288	2023-02-21 15:43:34.559	info	script.js.common.Draussen.Wellis_Whirlpool.LightToggle: *** setting state of:javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI.Switch to old value: false
                                          31288	2023-02-21 15:43:34.559	info	script.js.common.Draussen.Wellis_Whirlpool.LightToggle: *** stderr: Error: Command failed: /usr/local/bin/python3.10 /home/pi/wellis/v4/spa_toggleLight.py 916b0096-ab56-4344-8728-43a8259c63c2 SPAe8:eb:1b:1c:5e:46 LI javascript.0.Datenpunkte.SwimSpa.0.Lichter.LI Traceback (most recent call last): File "/home/pi/wellis/v4/spa_toggleLight.py", line 7, in <module> import requests ModuleNotFoundError: No module named 'requests'
                                          31288	2023-02-21 15:43:34.558	info	script.js.common.Draussen.Wellis_Whirlpool.LightToggle: *** stdout: current version: 3.10.9 (main, Jan 7 2023, 17:15:23) [GCC 8.3.0] interpreter directory: /usr/local/bin/python3.10
                                          
                                          
                                          rrov1R Online
                                          rrov1R Online
                                          rrov1
                                          schrieb am zuletzt editiert von
                                          #86

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

                                          **

                                          Ok, das mit den "**$**" im regulären Ausdruck ist schlecht. Wo die herkommen kann ich mir gerade nicht erklären auf github im Skript LightToggle.js schaut es fein aus.

                                          T 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          674

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe