Alexa Plugin

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Gast

    Alexa Plugin

    Hallo zusammen,

    ich bin gerade dabei ein Plugin für Alexa Ansteuerung zu schreiben.
    Im ersten Schritt habe ich mir gedacht ich möchte nur die aktuellen Lichtszenen über den Namen ansprechen.
    Das erweist sich aber als äußerst schwierig, da die Namen der Szenen anscheinend nicht in der LoxApp3.json gespeichert sind..
    Weiß jemand wo ich die Namen der einzelnen Szenen abfragen kann?

    Anbei noch ein Bild (ist nicht von mir, bitte auch den roten Text ignorieren) das zeigt wie der Lichszenenbaustein dargestellt wird.
    Die einzelnen Ausgänge sind sehr wohl mit Namen angeben, nur die Szenenliste ist nur mit einer UUID vermerkt.

    Ich hoffe ihr könnt mir dabei helfen.
    Danke.
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11200

    #2
    Das json bekommst du so:
    Code:
    http://<ms>/data/LoxAPP3.json
    Ich hab mir das gerade angeschaut, und lt. Doku soll es für die Lichtsteuerung v1 in den States die sceneList geben, die (lt.) Doku eine komma-separierte Auflistung der Szenen ist.
    Bei mir ist das nur eine weitere ID, die man wahrscheinlich abrufen muss, aber ich weiß auch noch nicht, wie.

    Code:
    "0e4fbd25-005c-945e-ffff9830180c3036" : {
                "name" : "Lichtsteuerung",
                "type" : "LightController",
                "uuidAction" : "0e4fbd25-005c-945e-ffff9830180c3036",
                "room" : "0b2c7aea-007e-0029-0f00000000000000",
                "cat" : "0b2c7aea-007c-0002-0d00000000000000",
                "defaultRating" : 0,
                "isFavorite" : false,
                "isSecured" : false,
                "details" : {
                    "movementScene" : 1
                },
                "states" : {
                    "activeScene" : "0e4fbd25-005c-945b-ffff862894cb65ca",
                    "sceneList" : "0e4fbd25-005c-9420-ffff862894cb65ca"
                },
                "subControls" : {
                    "0e4fbd25-005c-945e-ffff9830180c3036/AI1" : {
                        "name" : "Reihe1 Tür",
    usw.
    Hier steht auch ein bisschen was über WS Anmeldung.
    Hallo zusammen Ich möchte ein bisschen mit der API von Loxone herumspielen, schaffe es aber nicht mich anzumelden. Ich benutzte POSTMAN als Client zum

    lg, Christian
    Zuletzt geändert von Christian Fenzl; 30.11.2017, 01:04.
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar

    • Gast

      #3
      Genau das hab ich mir eben auch gedacht..
      Nur suche ich noch nach der Stelle wo ich mit dieser UUID die Namen raussuchen kann..

      Kommentar

      • svethi
        Lebende Foren Legende
        • 25.08.2015
        • 6289

        #4
        Kann sein dass Du da nur über Websocket rannkommst.
        Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

        Kommentar

        • Christian Fenzl
          Lebende Foren Legende
          • 31.08.2015
          • 11200

          #5
          Nur wie? In der API-Beschreibung ist es ja falsch (dort steht, dass das eine Liste ist). Bei der RGB-Lichtszene ist das auch noch so, dokumentiert ist es aber auch so bei der Lichtsteuerung.
          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

          Kommentar

          • svethi
            Lebende Foren Legende
            • 25.08.2015
            • 6289

            #6
            Keine Ahnung ;-) müsste ich mal über node-red auslesen
            Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

            Kommentar

            • svethi
              Lebende Foren Legende
              • 25.08.2015
              • 6289

              #7
              Fackt ist ja, dass alles was die App kann, jeder können muss, da die auch nur die Websockets verwenden
              Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

              Kommentar

              • Gast

                #8
                Naja ich habe ja schon eine Websocket Anwendung geschrieben, die auf die Strukturdatei zugreift..
                Nur ist dort natürlich auch nur die UUID drinnen und nicht die Liste von Namen..
                Also meiner Meinung nach muss es da noch eine Datei oder ein Script geben mit dem man die Namen abrufen kann.

                Kommentar

                • svethi
                  Lebende Foren Legende
                  • 25.08.2015
                  • 6289

                  #9
                  Nee, dann wohl nicht in einer Datei. Du musst über Websocket den Baustein befragen, oder Dich für die Events registrieren
                  Miniserver; KNX; Vitogate; EnOcean (EnOceanPi); Loxone Air; Caldav-Kalenderanbindung; RaspberryPi und für keine Frickellösung zu schade :-)

                  Kommentar

                  • Gast

                    #10
                    Wie kann ich über den Websocket den Baustein befragen? Das habe ich aus der API Doku noch nicht rausgelesen.

                    Kommentar

                    • Christian Fenzl
                      Lebende Foren Legende
                      • 31.08.2015
                      • 11200

                      #11
                      pmayer Du hast nicht zufällig eine Idee, wie man eine UUID explizit abfragen kann, eben diese UUID die bei der sceneList steht?
                      Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                      Kommentar

                      • pmayer
                        LoxBus Spammer
                        • 27.02.2017
                        • 379

                        #12
                        Hmmm, mir ist keine direkte Art bekannt. In node-red-contrib-loxone wird beim Verbinden das Structure-File geholt und ich speicher es mir zwischen um dann, bei ankommendem event mit uuid, den Namen, Raumnamen und Kategorienamen zurück zu geben.

                        Hab jetzt eben nur mal kurz ins structure File geschaut, aber sollten die Szenennamen nicht im SubControl des Lichtmoduls sein? Ah nein, das sind die Ausgänge (AQ1...), die dort zu finden sind.

                        Ich habe mein eine Szene mit Namen "Testzene" angelegt... leider ist im kompletten Structure-File nichts dergleichen zu finden.... gibt es irgendwas bei den Webservices um die zu holen?
                        https://allgeek.de/

                        https://twitter.com/pregopm, https://github.com/codmpm/
                        https://github.com/codmpm/node-red-contrib-loxone
                        https://github.com/codm/wled-controller

                        Kommentar

                        • Christian Fenzl
                          Lebende Foren Legende
                          • 31.08.2015
                          • 11200

                          #13
                          Ich habe kein explizites Kommando gefunden.

                          Wenn ich /jdev/sps/changes abrufe, bekomme ich bei den Änderungen interessanterweise die Szenennamen mit, allerdings nur einmal.
                          Code:
                           
                            "output120": { "name": "extern", "uuid": "0e4fbd25-005c-9420-ffff862894cb65ca", "value": "2="Standard",3="Gemütlich",4="Stripes",5="Küche",6="Bunt",8="Beamer""},
                          Wiederhole ich den Abruf, kommen wirklich nur noch die Änderungen und keine Szenen. Auch wenn ich das jeweils in einer neuen Session (Inkognito-Fenster) mache. Bei Websockets reicht das so, aber bei REST ist das blöd, weil ja (z.B. am LoxBerry) niemand weiß, ob sich wer anderer diesen Erststatus geholt hat. Irgendeine Bedeutung, die nicht dokumentiert ist, muss diese UUID haben. Einen Befehl, um die Changes zurückzusetzen, habe ich auch nicht gefunden.

                          Wie machst du in node-red den Erstabruf des aktuellen Status, oder sammelst du nur Änderungen, die eintreffen?

                          lg, Christian


                          Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                          Kommentar

                          • pmayer
                            LoxBus Spammer
                            • 27.02.2017
                            • 379

                            #14
                            Ich speichere wie gesagt alles aus dem Structure-File zwischen.

                            Das Event kommt über den Websocket referenziert per uuid - die kann ich dann zum Control zuweisen (uuid <-> structfile) worin dann wieder die uuid's für Raum und Kategorie drin sind, die ich beim initialisieren bereits in die Namen überführt habe.

                            Ich arbeite komplett nur mit den daten aus dem Structure-File.

                            Oder wie meinst du?
                            https://allgeek.de/

                            https://twitter.com/pregopm, https://github.com/codmpm/
                            https://github.com/codmpm/node-red-contrib-loxone
                            https://github.com/codm/wled-controller

                            Kommentar

                            • Christian Fenzl
                              Lebende Foren Legende
                              • 31.08.2015
                              • 11200

                              #15
                              btw, mit /data/LoxAPP2.json kommen die Szenennamen noch mit.
                              Ich bin aber noch auf V7, und ich weiß nicht. ob es LoxAPP2 in V9 überhaupt noch gibt. Und wenn, ist die Datenstruktur etwas anders.
                              Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                              Kommentar

                              Lädt...