Einbinden von Somfy IO Rollos in Loxone

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • udgesbou
    Dumb Home'r
    • 24.07.2022
    • 20

    #46
    Hey romildo,
    danke für deine Rückmeldung, ich glaube wir nähern uns Stück für Stück an einen kleinen Erfolg
    Zitat von romildo
    Beispiel aus Bild 2 in Post 42:

    Virtueller Ausgang Adresse:
    Code:
    http://IP-FEHME:PORT-FHEM
    Virtueller Ausgangs Befehl, Befehl bei EIN:
    Code:
    /fhem?cmd=set Velux_2 <v>
    gehen wir mal davon aus,
    die IP von FEHM wäre: 192.168.1.10
    der Port: 5000
    der Wert den du schicken möchtest: 42
    dann wäre die "komplette Adresse":
    Code:
    http://192.168.1.10:5000/fhem?cmd=set Velux_2 42
    Alles klar soweit verstanden.
    Velux _2 ist dann entsprechend das Rollo, welches in FHEM so verzeichnet ist, richtig?

    Zitat von romildo
    Diese kann so direkt im Browser eingegeben werden.
    ​​​​Beispielsweise in Firefox richtig? Aber gibt es auch eine Möglichkeit das aus Loxone-Config zu testen, damit ich merke ob auch Loxone mit FHEM spricht und umgedreht?​

    Zitat von bluemevo
    Code:
    define VeluxToLoxone notify .*:pct:.* {\
    my $position=ReadingsVal("$NAME","pct","-1");;\
    UDP_Msg("[I]Loxone-IP[/I]" , "[I]UDP-Port[/I]" , "$NAME:pct.$position");;\
    }
    attr VeluxToLoxone room Velux
    -> könnt ihr so Zeile für Zeile in FHEM eingeben oder in der fhem.cfg direkt ergänzen
    Und hierzu auch noch eine Frage, setze ich den Code genauso ein oder ersetze ich hier "LOXONE-IP" und UDP-Port gegen die entsprechenden Werte? Wenn ja, in welcher Schreibweise? "192.168.178.101" oder "192.168.178.101" oder nur 192.168.178.101? Gleiches dann natürlich beim Port und welchen Port müsste ich hier dann angeben?

    Grüße


    EDIT:

    Zitat von romildo
    gehen wir mal davon aus,
    die IP von FEHM wäre: 192.168.1.10
    der Port: 5000
    der Wert den du schicken möchtest: 42
    dann wäre die "komplette Adresse":
    Code:
    http://192.168.1.10:5000/fhem?cmd=set Velux_2 42
    Diese kann so direkt im Browser eingegeben werden.
    Also das habe ich getestet über den Browser und es funktioniert auch, allerdings nur über die Vergabe eines csrf-Tokens in der fhem.cfg, wie hier beschrieben:

    https://www.meintechblog.de/2018/02/...en-und-nutzen/

    Sprich die Adresse die ich aufrufe lautet: http://192.168.178.101:8083/fhem?cmd...csrf=MeinToken

    Damit fährt der Rollo dann wie gewünscht bis zur entsprechenden Prozentzahl.​

    Von einem Token in der Art und Weise habe ich bis jetzt hier in den Anleitungen aber noch nichts gelesen, braucht man diesen zwingend?
    Ich könnte ihn mit
    Code:
    attr WEB.* csrfToken none
    ja auch deaktivieren?

    Und wie kann ich das ganze nun zum Beispiel aus Loxone-Config testen, ob es genauso gut funktioniert, wie aus dem Browser heraus?


    Grüße


    EDIT 2:

    Also nach viel Google und Lesen habe ich es nun tatsächlich geschafft, das Rolle auch über Loxone Config mit rechter Maustaste auf den Befehl im virtuellen Ausgang und dann unter "Testbefehl" einfach die gewünschte Prozentzahl eingegeben und sie da, das Rollo fährt.

    Wenn ich dann allerdings die Logs in FHEM anschaue, schaut das nicht aus, als hätte ich alles richtig konfiguriert?

    2023.01.04 17:16:45 1: ERROR evaluating my $EVENT= $evalSpecials->{'%EVENT'};my $EVTPART0= $evalSpecials->{'%EVTPART0'};my $EVTPART1= $evalSpecials->{'%EVTPART1'};my $NAME= $evalSpecials->{'%NAME'};my $SELF= $evalSpecials->{'%SELF'};my $TYPE= $evalSpecials->{'%TYPE'};{
    my $position=ReadingsVal("$NAME","pct","-1");
    UDP_Msg(192.168.178.101 , 8083 , "$NAMEct.$position");
    }: Could not create socket: Invalid argument

    2023.01.04 17:16:45 3: VeluxToLoxone return value: Could not create socket: Invalid argument​
    Bei Loxone Config schauen die Logs so aus, dabei ist die erste Zeile Grau, die zweite Zeile Weiß und die dritte Zeile Rot hinterlegt:
    11 16:16:35.233 Loxone Info Befehl VCQ1: Sende 100 to http://192.168.178.101:8083

    12 16:16:35.243 Loxone Request 192.168.178.101:8083 /fhem?cmd=set%20Velux_19%20100 GET /fhem?cmd=set%20Velux_19%20100 HTTP/1.1\r\nHost: 192.168.178.101:8083\r\nUser-Agent: [en]\r\nContent-Type: text/plain; charset=utf-8\r\nConnection: close

    13 16:16:35.243 Loxone Response 192.168.178.101:8083 /fhem?cmd=set%20Velux_19%20100 HTTP/1.1 302 Found\r\nContent-Length: 0\r\nLocation: /fhem?fw_id=


    Grüße


    EDIT 3:

    Diese Zeile habe ich nun von

    UDP_Msg(192.168.178.101 , 8083 , "$NAMEct.$position");​
    zu

    UDP_Msg("192.168.178.101","8083","$NAMEct.$position");​
    jetzt sieht das was mir FHEM in den Logs ausgibt schon besser aus denke ich:

    2023.01.04 18:10:53 3: VeluxToLoxone return value: send Velux_19ct.30
    2023.01.04 18:11:55 3: VeluxToLoxone return value: send Velux_19ct.100
    Die Loxone Config-Logausgabe ist analog der oberen.

    Für jedes Rollo muss ich jetzt einen eigenen Befehl unten den virtuellen Ausgängen UND Eingängen erstellen richtig? Oder reicht es bei einem von beiden?


    Zitat von bluemevo
    Und nun geht's an Basteln:

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Rollo komplett.JPG Ansichten: 2374 Größe: 105,7 KB ID: 288784

    Timings:

    Merker ungleich - Verzögerung: 100
    Verzögerter Impuls - D: 1 / T: 0,5
    Monoflop: T: 1,1​
    Und am Ende möchte ich das ganze ja mit dem MDT-Glastastern steuern, die ich bereits in der ETS einlernt habe, ist das ganze wirklich so kompliziert aufgebaut wie in dieser Grafik oder geht das bei dem Glastastern etwas einfacher, wenn ich einfach nur hoch- und runterfahren möchte?


    Grüße
    Zuletzt geändert von udgesbou; 04.01.2023, 17:33.

    Kommentar

    • udgesbou
      Dumb Home'r
      • 24.07.2022
      • 20

      #47
      Zitat von bluemevo

      Und nun geht's an Basteln:

      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Rollo komplett.JPG Ansichten: 2407 Größe: 105,7 KB ID: 288784

      Timings:

      Merker ungleich - Verzögerung: 100
      Verzögerter Impuls - D: 1 / T: 0,5
      Monoflop: T: 1,1
      Mahlzeit, nun wollte ich mich mal selbst ans "Basteln" machen.
      Allerdings scheitere ich schon recht zu Beginn, wenn ich ein "Ungleich"-Modul einfügen möchte, hat dies nur die Bezeichnung V1, V2 und U, nicht wie auf dem Bild zu sehen AI1, AI2 und Q

      Bestimmt ist es nur eine Kleinigkeit die man hier irgendwoändern muss und bestimmt lacht ihr euch kaputt über das "Problem" aber ich komme einfach nicht drauf

      Wie gesagt, ich möchte erstmal nichts mit automatischer Beschattung umsetzen, sondern die Rollos erstmal aus Loxone bzw. mit den MDT-Glastastern fahren lassen, eventuell kann ich mir hier ein paar Bausteine sparen?


      Grüße
      Zuletzt geändert von udgesbou; 05.01.2023, 11:23.

      Kommentar


      • udgesbou
        udgesbou kommentierte
        Kommentar bearbeiten
        Okay dank dir, wenn das so ist, machts das ganze für mich als Neuling glaube nicht wirklich einfacher :-(

      • Loxtom577
        Loxtom577 kommentierte
        Kommentar bearbeiten
        Ai1=v1, ai2=v2, q=u
        Zuletzt geändert von Loxtom577; 05.01.2023, 12:43.

      • udgesbou
        udgesbou kommentierte
        Kommentar bearbeiten
        Okay, aber dann haben sich beim nächsten Modul "Analogspeicher" aber auch die Bezeichnungen geändert, richtig? AI = V, Tr = Set, AQ = V?

        Ich kann allerdings in dem Fall V2 nicht mit dem linken V verbinden, da öffnet sich immer eine Meldung mit "Seitenauswahl und dann muss ich eine Seite angeben?
    • bluemevo
      Smart Home'r
      • 27.01.2019
      • 63

      #48
      Wenn ich jetzt auf alle Frage eingehe, bin ich 2h beschäftigt. Sry die Zeit bring ich nicht auf. Daher eine Antwort frei Schnauze...

      Velux_2 ist der Name des Geräts (Rollo) in FHEM, ist aber nicht mit Alias verwechseln.

      Auf das Thema Token bin ich nicht weiter eingegangen. Da gibt es genug Infos im FHEM Forum. Man kann die Token Authentifizierung deaktivieren.
      Die Einstellung dafür hast du ja schon gefunden. Um etwas mehr Sicherheit ins Netzwerk zu bekommen, kann Loxone einen Verbindung mit einem eigenen Port in FHEM bekommen. Diese Verbindung darf dann nur von der IP von Loxone aufgebaut werden. Dafür kann den der Token deaktiviert werden. Das aber nur ein Vorschlag, das muss nicht sein.

      Der UDP Port für die Rückmeldungen an Loxone kann frei vergeben werden. Muss aber im FHEM Script und in der Loxone Config übereinstimmen. Der Port ist nicht der Standardport 8083 von FHEM. Und ja, IP und Port im Script werden immer mit " " geschrieben.

      In Loxone sieht man dann über den UDP Monitor ob etwas ankommt.

      Jeder Rollo bekommt einen HTTP Befehlt und einen UDP Baustein.

      Der Aufwand wird betrieben um den jeweiligen Rollobaustein immer an der Position zu haben, wo er Rollo wirklich steht - ähnlich wie die Geiger-Rollomotoren.
      Wenn eine Abweichung aber völlig egal ist, kann die komplette Steuerung auf den Rollo-Baustein an sich, die Formel und der Status-Befehle reduziert werden.

      So oder so ist die Art und Weise wie der Rollobaustein angesteuert wird, jedoch völlig egal.
      Falls der MDT die Rollo-Position verarbeiten kann (weiß nich was der alles kann), dann wäre eine genau Position jedoch wünschenswert.

      Da ich eine Google Sprachbedienung nutze und Google die Rollos direkt im FHEM steuert, pflege ich die Rückmeldungen in den Rollobaustein ein.
      Ist nicht die schönste Lösung, funktioniert bei mir aber seit Jahren zu 95% zuverlässig, zumindest seit dem Wechsel von der Tahoma-Box auf das Velux Interface.

      Kommentar

      • udgesbou
        Dumb Home'r
        • 24.07.2022
        • 20

        #49
        Servus bluemevo,
        dank dir für deine Erläuterungen.

        Gibt es vielleicht die Möglichkeit, dass du mir eine exemplarische Datei von von dir zukommen lässt, die ich dann versuchen würde für meine Ansprüche nachzubauen? Damit ich die Rollos zumindest per Webinterface o. Ä. steuern kann.

        Denn wenn ich das V2 vom Ungleichmodul mit dem V vom Analogspeichermodul verbinden möchten, öffnet sich bei mir solch ein Fenster und hier komme ich schon nicht weiter

        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Unbenannt.png
Ansichten: 1408
Größe: 21,7 KB
ID: 374599


        Grüße
        Zuletzt geändert von udgesbou; 08.01.2023, 15:17.

        Kommentar

        • Integrator
          Azubi
          • 13.02.2024
          • 2

          #50
          Hallo Zusammen,

          habe meine Tahoma Box nun erfolgreich in Loxone integriert ohne FHEM oder LoxBerry.
          Die API und das Token habe ich mittels der Webseite: https://github.com/Somfy-Developer/S...Developer-Mode aktiviert / generiert.

          Die API Beschreibung hilft beim finden der Devices:
          https://somfy-developer.github.io/So...eveloper-Mode/
          • Auflisten der Geräte: /enduser-mobile-web/1/enduserAPI/setup/devices
          • Eigenschaften eines Gerätes: /enduser-mobile-web/1/enduserAPI/setup/devices/<Device URL>
          In Loxone wird das Steuern mittels einem virtuellen Ausgang möglich. Die Parameter <IP>, <token>, <Label> und Device URL> müssen angepasst werden,

          Virtueller Ausgang:
          https://<IP>:8443/enduser-mobile-web/1/enduserAPI

          Ausgang Befehl:
          Befehl bei Ein: /enduser-mobile-web/1/enduserAPI/exec/apply
          Http Header bei Ein: Authorization: Bearer <token>
          Content-Type: application/json​
          HTTP body bei Ein: {
          "label": "<Label>",
          "actions": [
          {
          "commands": [
          {
          "name": "up"
          }
          ],
          "deviceURL": "<Device URL>"
          }
          ]
          }​
          HTTP Methode bei Ein POST
          Mit dem Wechsel des Befehls "up", "down" und "stop" kann ich die Storen erfolgreich Steuern.

          Kommentar


          • MarkusCosi
            MarkusCosi kommentierte
            Kommentar bearbeiten
            Lieber Integrator, das klingt vielversprechend. Zwar habe ich bis jetzt meine einzige Somfy IO Markise per Somfy IO Funkmodul und 2 Shellys gesteuert (https://www.loxforum.com/forum/hardw...one-somfy-funk). Aber zeitnah kommen 2 weitere Somfy IO Motoren dazu. Daher würde ich gerne auf die Tahoma Switch Variante wechseln, und zwar am liebsten ohne fhem etc., also gern per API lokal. Jedoch: gibt es auch entsprechende http-Eingänge die den Status verraten? Danke!
        • samke
          Extension Master
          • 27.09.2019
          • 197

          #51
          Zitat von Integrator
          Die API und das Token habe ich mittels der Webseite: https://github.com/Somfy-Developer/S...Developer-Mode aktiviert / generiert.
          Hi, weißt du ob das mit allen Tahoma Boxen geht? Bzw. welche hast du? Ich habe die "erste" Tahoma, glaube die wird "classic" genannt.
          Finde jetzt auf dem ersten Blick dort keine Einstellung, den Developer Mode zu aktivieren.
          Hast du hier evtl. ein Screenshot, wo das bei dir zu aktivieren war?

          Noch eine Frage zur Steuerung in Loxone. Steuerst du deine Rollläden damit? Steuerst du die jetzt nur noch in Loxone, oder auch noch per Tahoma/Alexa/Somfy Fernbedienung?
          Wenn nicht nur per Loxone, wie hast du das in Loxone gelöst, das der Status der Rollläden synchron ist?

          Danke!

          Kommentar


          • Integrator
            Integrator kommentierte
            Kommentar bearbeiten
            Bei meiner Box handelt es sich um die TaHoma Switch.
            Leider kann ich mich aktuell nicht auf der Somfy Webseite einloggen da sobald ich die Tahoma App aktiv habe das Einloggen auf der Webseite nicht mehr möglich ist.

            Schau mal hier: https://forum.iobroker.net/topic/816...io-adapter/338
            Gemäss Forum Post "24. Juni 2022, 10:55" sollte der Entwicklermodus auch für die Classic Box möglich sein.

            Bezüglich Steuerung ist dies aktuell ein absoluter mix: Somfy Fernsteuerung / Tahoma / Loxone.
            Bei io Motoren könnte der Status ausgelesen werden (abfrage und file abspeichern). Jedoch habe ich lediglich RTS Motoren und arbeite somti mit absoluten Kommandos ohne Beschattungsbausteine von Loxone. Sobald ich alles in Loxone integriert habe und dies nur noch darüber läuft, werde ich den Status benutzen.
        • Integrator
          Azubi
          • 13.02.2024
          • 2

          #52
          Anbei die Screenshots vom Somfy Portal.



          Kommentar

        • samke
          Extension Master
          • 27.09.2019
          • 197

          #53
          Danke für die Bilder/Links.
          Das erste Bild schaut bei mir noch quasi gleich aus. Nach dem Klick auf die drei Punkte, habe ich aber keine Möglichkeit den Entwicklermodus zu aktivieren.

          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 1169
Größe: 18,5 KB
ID: 423223

          Könnte mir vorstellen, das meine Box zu alt ist.
          In dem Forum Link sehe ich keine Info, dass das mit der ersten TaHoma Box auch gehen sollte.
          Da geht es ja um die "Connexoon" Version, die ist auch neuer, als meine.

          Ich habe Somfy mal angeschrieben, schauen wir mal.

          Allerdings ob mir der Api Modus überhaupt weiterhilft, bezeifel ich jetzt im Nachhinein auch.
          Es ändert eigentlich ja nichts in der Verwendung in Loxone und dem Problem, das man den Statuswert vom Rollladen garnicht, bzw. nur sehr schwer abbilden kann (wenn man den Rollladen abseits von Loxone bedient, das Loxone den aktuellen Stand dann mitbekommt).
          Hatte gehofft, dass das hier vielleicht irgendwie hilft. Aber meine jetzige Variante per klf200 und ioBroker zu Loxone stellt mir denke ich die gleichen Daten zur Verfügung.
          Es fehlt einfach weiterhin eine richtige, vollwertige Schnittstelle inkl. Übernahme der Statuswerte in die Bausteine :-)

          Kommentar

          • Tüftler8854
            Azubi
            • 30.10.2022
            • 2

            #54
            Hallo zusammen

            Vielleicht hilft dies noch weiteren. Ich konnte es mit dem Tool Insomnia auch als ungebübter den Token generieren.

            Grüsse
            Zuletzt geändert von Tüftler8854; 19.05.2024, 15:47. Grund: Erledigt. Mit dem Tool Insomnia

            Kommentar

            • René Erler
              Azubi
              • 29.05.2024
              • 1

              #55
              Hallo zusammen,

              Ich hab jetzt letzte Woche meine IO Raffstore mittels der Developer API eingebunden jedoch ist mir die Steuerung nicht filigran genug.

              Entweder hängt es an der Latency bei der Kommunikation Loxone -> Netzwerk -> Tahoma Switch -> Raffstore oder die API kann nur in größeren Abständen die Befehle weitergeben.

              Hat da jemand schon Erfahrungen oder Tipps wie man das am besten für die Automatikbeschattung einstellt? Ansonsten ist die Einbindung ja ziemlich nutzlos weil auch die minimum travel duration macht praktisch keinen Unterschied...

              Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Screenshot 2024-05-29 161812.png
Ansichten: 802
Größe: 16,6 KB
ID: 433436

              Kommentar

              • thomaswa
                Azubi
                • 16.01.2022
                • 3

                #56
                Hallo

                Ich habe das Phänomene auch immer wieder. Ein Neustart der Box bringt einige Zeit eine Besserung. Nicht gerade die beste Lösung...

                Anscheinend gibt haben dieses Problem mehrere.

                After some time, the Tahoma Switch Box is unavailable in my local network. Unavailable in my Home Assistant (Overkiz / Local API) and also in Apple Homekit. Can't ping and did not get an answer whe...

                Kommentar

                • Davidmei
                  MS Profi
                  • 06.02.2017
                  • 569

                  #57
                  Lassen sich an den Velux KLF 200 auch RTS Motoren andocken?
                  Habe die Kombination aus RTS und IO

                  Kommentar

                  • Tüftler8854
                    Azubi
                    • 30.10.2022
                    • 2

                    #58
                    Hallo Integrator und Forum

                    Ich kann mit cURL im INSOMNIA Tool alle meine SOMFY Sonnenstorren sowie die VELUX Fenster ansprechen.
                    Mit Swagger kann ich mich auch anmelden. Daher darf ich davon ausgehen, dass der Bearer korrekt sein wird.
                    DEV Mode beim TaHoma muss auch aktiv sein, da sonst kein ansprechen ausserhalb......
                    Bei der Device URL könnte die Formatierung nicht stimmen oder LOXONE benötigt dies anderst?

                    Leider Schaffe ich dies im LOXONE nicht. Meldung : 400 Bad Request

                    Ich habe alle Vorgaben von Itegrator befolgt, so denke ich.

                    Virtueller Ausgang:
                    https://<IP>:8443/enduser-mobile-web/1/enduserAPI

                    Befehl bei EIN:
                    /enduser-mobile-web/1/enduserAPI/exec/apply

                    HTTP Header bei EIN:
                    Authorization: Bearer xxxxxxxxxxxxxxxxxxxx
                    Content-Type: application/json

                    HTTP Body bei EIN:
                    {
                    "label": "<Geräte Name>",
                    "actions": [
                    {
                    "commands": [
                    {
                    "name": "open"
                    }
                    ],
                    "deviceURL": "io://xxxx-xxxx-xxxx/xxxxxxx"
                    }
                    ]
                    }

                    HTTP Methode bei EIN:
                    POST
                    Zuletzt geändert von Tüftler8854; 12.06.2024, 13:00.

                    Kommentar


                    • MarkusCosi
                      MarkusCosi kommentierte
                      Kommentar bearbeiten
                      Hallo Tüftler8854,

                      hast du dein Problem lösen können? Ich stehe an ähnlicher Stelle, siehe Post weiter unten. Ich kann per Terminal und curl-Befehl die Storen steuern. Aber von Loxone aus will es mir nicht direkt gelingen. Per AnyPlugin und Loxberry geht es wieder mit dem curl-Befehl. Bei deinem Setup denke ich ist einmal "/enduser-mobile-web/1/enduserAPI" zu viel, d.h. dieser teil der URL vom curl sollte entweder im virt. Ausgang stehen oder aber im Befehl, nicht aber bei beiden?

                      Edit: bei mir war tatsächlich das Problem die Aufteilung des Befehls auf die virt. Eingangs URL und den nachfolgenden Befehl, siehe unten.
                      Zuletzt geändert von MarkusCosi; 11.09.2024, 07:54.
                  • Davidmei
                    MS Profi
                    • 06.02.2017
                    • 569

                    #59
                    Hallo,

                    kannst du damit sowohl RTS als auch die IO einbinden von Somfy?

                    Kommentar


                    • stoeff99
                      stoeff99 kommentierte
                      Kommentar bearbeiten
                      Das sagt KI:
                      Die Velux Schnittstelle KLF 200 ermöglicht die Steuerung von io-homecontrol-Produkten über ein nicht zu io-homecontrol gehöriges Gerät. Es gibt jedoch keine direkte Unterstützung für RTS (Remote Terminal Server) über die KLF 200. Die Suche nach Informationen hat gezeigt, dass die KLF 200 eine lokale API bereitstellt, über die man gepairte IO-Geräte steuern kann, ohne ins Internet zu müssen. Es gibt jedoch keine spezifische Erwähnung von RTS-Unterstützung in den beschriebenen Funktionen.

                      Ein mögliche Weg wird via ein ESP32 Board sein. Siehe z.B. https://github.com/rstrouse/ESPSomfy-RTS
                      Zuletzt geändert von stoeff99; 04.08.2024, 15:24.

                    • Davidmei
                      Davidmei kommentierte
                      Kommentar bearbeiten
                      Wobei ja die Station es eigentich können müsste also RTS und IO
                  • MarkusCosi
                    LoxBus Spammer
                    • 28.09.2023
                    • 220

                    #60
                    Update:

                    nun funktioniert es auch bei mir. Die Beschreibungen zum Generieren der Tokens die man online findet sind leider meist nicht sehr hilfreich. Etwas ausführlicher fand ich diese hier.

                    Die Erzeugung des Tokens ist ein 3-stufiger Prozess, wobei Schritt 2) und 3) kurz nach 1) folgen müssen (ca.< 10min). Die Schritte führt man z.B. in einer Kommando-Zeile aus, e.g. bei MacOS im Terminal, oder unter Windows im cmd.exe. Dabei musste ich bei den json-payload Kommandos aufpassen die Anführungszeichen und forward slashes zu escapen mit einem backslash. Auch für die lokalen Befehle an die Motoren musste ich das tun, später in Loxone dann nicht mehr!

                    0) im Somfy Portal account anlegen und für die Tahoma Box den DeveloperMode aktivieren. Danach lokal mit der TaHoma Smartphone app die Rollläden / Markisen / Screens einlernen und so mit der TaHoma Switch Box bzw. dem Account verknüpfen.

                    1) JSESSIONID cookie erhalten (Login to get JSESSIONID, mit den Credentials e-mail / pwd vom somfy portal):
                    curl -X POST -H 'Content-Type: application/x-www-form-urlencoded' -d 'userId=Your@Mail.com&userPassword=YourPW' -c 'SomfCookie.txt' https://ha101-1.overkiz.com/enduser-...duserAPI/login
                    → in der txt-Datei findet man einen Eintrag: JSESSIONID=XXXX (remove “E1~”-part, siehe hier). Das XXXX braucht man in Schritt 2).

                    2) Generierung eines Token: (<<POD>> findet sich auf der Tahoma Box):
                    curl -X GET -H 'Content-Type: application/json' -H 'Cookie: JSESSIONID=XXXX' https://ha101-1.overkiz.com/enduser-mobile-web/enduserAPI/config/<<POD>>/local/tokens/generate
                    → {“token":"YYYY"}

                    3) Token aktivieren (hier musste ich die Anführungszeichen in der payload (-d) per escape-character anführen. Den "label", hier "Test token", braucht man eigentlich nie wieder, es geht nur um die Aktivierung):
                    curl https://ha101-1.overkiz.com/enduser-mobile-web/enduserAPI/config/<<POD>>/local/tokens -H "Content: application/json" -b "JSESSIONID=XXXX" -H "Content-Type:application/json" -d "{"label":"Test token","token":"YYYY","scope":"devmode"}"

                    Infos beziehen für die gezielte Steuerung einzelner Motoren:
                    Danach kann man mit dem aktivierten Token YYYY (der sollte lange/für immer halten) ein json-file mit den Device URL beziehen ("gateway-POD.local" kann man durch die feste IP der Tahoma-Box ersetzen):
                    curl --insecure https://gateway-POD.local:8443/endus.../setup/devices -H "Authorization: Bearer YYYY" -H "accept: application/json" -H "Content-Type: application/json"
                    → das resultierende json kann man online aufbereiten: https://jsongrid.com/json-parser um die <<DeviceURL>> der Motoren auszulesen (sieht aus wie io://<<POD>>/<<DeviceURLID>>). Diese braucht man zum Ansprechen der Motoren. Zusätzlich stehen im json auch die nutzbaren Kommandos (commandNames) wie z.B.: up, down, my, setPosition, open, close, stop.

                    Testen:
                    Jetzt kann man die Motoren endlich steuern, und zwar lokal ohne Cloud (<<label>> ist so wie es scheint beliebig, die deviceURL musste ich abermals mit escape-Characters modifizieren) zB per Kommandozeile:
                    curl --insecure https://<<IP>>:8443/enduser-mobile-web/1/enduserAPI/exec/apply -H "Authorization: Bearer YYYY" -H "accept: application/json" -H "Content-Type: application/json" -d "{"label":"<<label>>","actions":[{"commands":[{"name":"open"}],"deviceURL":"io:\/\/<<POD>>\/<<DeviceURLID>>"}]}"

                    den aktuellen Status der Screens/Markisen kann man wie folgt abfragen (man beachte: die "://" und der "/" müssen im DeviceURL String der URL ersetzt werden durch %3A%2F%2F und %2F):
                    curl --insecure https://<<IP>>:8443/enduser-mobile-web/1/enduserAPI/setup/devices/io%3A%2F%2F<<POD>>%2F<<DeviceURLID>>/states/core: DeploymentState -H "Authorization: Bearer YYYY" -H "accept: application/json" -H "Content-Type: application/json"
                    → liefert z.B. 37%: {"value":37,"type":1,"name":"coreDeploymentState"} . In der Kommandozeile kann man mit dem tool jq den Wert aus der Antwort auch direkt auslesen: eifach | jq -r '.value' ergänzen.

                    jetzt zu Loxone Config:
                    per virtuellem Ausgang wie oben beschrieben (header mit zwei Zeilen, getrennt durch Zeilenumbruch oder \r\n), abgewandelt jedoch dahingehend, dass im virt. Ausgang zunächst nur https://<IP>:8443, und dann im Befehl "/enduser-mobile-web/1/enduserAPI/exec/apply" steht, kann man dann einen Automatikbeschattungs-Baustein basteln. Dabei nutze ich "down", "up" und "stop", jeweils getriggert durch eine Flankenerkennung die 0,3s Pulse gibt. Damit kann man die Beschattung auch im Fahren durch nochmaliges Klicken wie bei den sonstigen Rollos stoppen. Die escape-Characters habe ich nun bei den payloads der Befehlen entfernt, und einige doppelte Anführungszeichen (abgesehen vom json-Inhalt) zu einfachen.

                    Zusätzlich frage ich bei jedem Start / Stopp der Bewegung (also Ausgang "P" der Flankenerkennung) mit obigen AnyPlugin den Status ab (obiger Befehl ergänzt um | jq -r '.value', und mit vorangestelltem "<Name> udp command"). Das passiert über einen auch sonst betätigbaren Taster, welcher eine Impulsverzögerung von 1s noch vor die Abfrage-Befehle setzt um die Endlagen nach der Betätigung richtig zu erhalten. Der Status-Wert kommt aktuell per UDP-Befehlserkennung (<Name>:"\v, wobei <Name> der udp Befehlsname des curl-Befehls beim AnyPlugin-Aufruf ist) in einen mit den Automatikbeschattungsbausteinen verlinken virtuellen Status-Baustein zurück...

                    Falls jemand eine Idee hat wie man den Status der API geschickter abfragen kann, bitte her damit (? per virt. Ausgang und "http Antwort speichern?").

                    Vllt. wäre auch der EIB-Beschattungsbaustein mit POS Eingang sinnvoll? Schließlich hat man ja die Information zum Zustand der Screens.

                    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Somfy1.jpg Ansichten: 0 Größe: 45,6 KB ID: 441066
                    Zuletzt geändert von MarkusCosi; 12.09.2024, 07:45.

                    Kommentar

                    Lädt...