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. Praktische Anwendungen (Showcase)
  4. Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

Alexa in Node Red ohne contrib-alexa-home oder Ähnliches

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
alexanode redalexa ohne cloudalexa skill
82 Beiträge 14 Kommentatoren 12.2k Aufrufe 25 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.
  • Z zzippo

    @Marsx79
    Natürlich kannst Du das prüfen. Am besten erst einmal Debug Nodes in NodeRed anlegen, z.B. wie hier:
    NodeRedDebug.png
    Die debug nodes sollten so konfiguriert sein, das sie immer das gesammte Telegramm anzeigen:
    NodeRedDebug2.png
    Wenn Du es deploy'st und dann Alexa einen Schaltbefehl gibst solltest Du in etwa folgenden Output im Debug Tab sehen:
    NodeRedDebug3.png
    Hier wird eine Steckdose geschatltet, welche keiner speziellen Alexa zugeordnet ist.
    Wenn z.B. kein Output im Debug erscheint, dann kommt auch der HTTP request nicht bei NodeRed an.

    M Offline
    M Offline
    Marsx79
    schrieb am zuletzt editiert von
    #51

    @zzippo
    NodeRed.jpg

    Bei mir sieht das so aus.

    Z 1 Antwort Letzte Antwort
    0
    • M Marsx79

      @zzippo
      NodeRed.jpg

      Bei mir sieht das so aus.

      Z Offline
      Z Offline
      zzippo
      schrieb am zuletzt editiert von zzippo
      #52

      @Marsx79
      Dann liegt es am Eintrag in der Datenbank, ich nehme nicht an das Du dort 'test' falsch geschrieben hast. Eher ist das Feld 'WelcheAlexa' nicht NULL sondert 'Leer'.
      Zeig mal einen Screenshot.

      M 1 Antwort Letzte Antwort
      0
      • Z zzippo

        @Marsx79
        Dann liegt es am Eintrag in der Datenbank, ich nehme nicht an das Du dort 'test' falsch geschrieben hast. Eher ist das Feld 'WelcheAlexa' nicht NULL sondert 'Leer'.
        Zeig mal einen Screenshot.

        M Offline
        M Offline
        Marsx79
        schrieb am zuletzt editiert von
        #53

        @zzippo

        sql.jpg

        Dürfen die Felder nicht leer sein? Muss ich dort "Null" eintragen? Mir ist auch noch nicht ganz klar für was die einzelnen Felder sind.

        Z 1 Antwort Letzte Antwort
        0
        • M Marsx79

          @zzippo

          sql.jpg

          Dürfen die Felder nicht leer sein? Muss ich dort "Null" eintragen? Mir ist auch noch nicht ganz klar für was die einzelnen Felder sind.

          Z Offline
          Z Offline
          zzippo
          schrieb am zuletzt editiert von zzippo
          #54

          @Marsx79 OK, dann erkläre ich das mal.
          Also bei einfügen einer neuen Zeile sind erst einmal alle Felder auf NULL. Wobei das kein Text ist, sondern heisst, das es keinen Eintrag gibt.
          Da Du den DB-Browser benutzt, passiert es schnell das ein NULL Eintrag überschrieben wird. z.B. wenn Du mit Tab durch die Felder läufst.

          • Lösungsmöglichkeit 1:
            Du setzt das Feld wieder auf NULL (rechte Maustaste auf dem Feld, und 'Auf NULL setzten' anwählen)

          • Lösungsmöglichkeit 2:
            Das Script im Node-Red in der Node:'SQL for any Alexa' so ändern, das nicht nur auf NULL sondern auch auf Leerstring abgefragt wird. (siehe Zeile 14)

          var instance = '';
          if (typeof msg.FromSkill.payload.directive.header.instance !== 'undefined')
          { instance = "' AND instance = '" + msg.FromSkill.payload.directive.header.instance;}
          
          
          var mode = '';
          if (typeof msg.FromSkill.payload.directive.payload.mode !== 'undefined')
          { mode = "' AND mode = '" + msg.FromSkill.payload.directive.payload.mode;}
          
          msg.topic =    "SELECT topic,value,AlexaSpeakOn,AlexaSpeakOff FROM AlexaEndpoints WHERE endpointId = '"  + 
                          msg.FromSkill.payload.directive.endpoint.endpointId + 
                          instance + 
                          mode + 
                          "' AND (WelcheAlexa IS NULL OR WelcheAlexa = '');";
          return msg;
          

          Zu den Einzelnen Feldern der Datenbank:

          • EndpointID: Das ist die ID des Gerätes, diese hast Du beim Anlegen im Device generator definiert.
            Sie wird von der Alexa App übertragen, damit Du weisst welches Gerät angesprochen wird.
          • Controller: ist nur für Dich als Info welche Art controller es ist, wird sonst (noch) nirgends benutzt.
          • comment: Nur ein Kommentar für Dich, wird sonst nicht benutzt.
          • instance: Dies ist für Mode Controller, da eine Endpoint ID mehrere Mode-Controller haben kann. ist sozusagen auch eine ID. Z.B. hast Du einen Enpoint Kueche, dieser hat einen Mode-Controller für Rollos und einen für ein farbiges Licht.
            Du könntest dann Deine instancen z.B. 'kueche.rollo' und 'kueche.farbe' nennen.
            Hier trägst Du also den Namen ein welchen Du im Device Generator vergeben hast.
            Bei nicht Mode-Controllern einfach das Feld leer lassen.
          • mode: Das ist der mode für die instance, z.B. hast du die Instance 'kueche.rollo' und dann jeweils einen mode für 'auf' und 'ab', wieder Die ID eintagen welche Du im Device Generator vergeben hast.Bei nicht Mode-Controllern einfach das Feld leer lassen.
          • topic: Das ist die IO-Broker Variable, welche Du schalten möchtest. Bitte immer darauf achten welchen Typen die Variable haben will. Aus dem Power-Controller kommt standardmässig immer true/false
          • value: Bei Power-Controller wird automatisch true/false übertragen, Bei Percentage und anderen der gesprochene Wert. In diesen Fällen kann also der Wert freigelassen werden. Bei Mode-Controllern kannst Du hier den Wert eintragen der an die topic variable gesendet werden soll.
          • WelcheAlexa: Du kannst zum Beispiel im Device-Generator ein Gerät anlegen, welches Stehlampe heißt, Du hast aber 3 Stehlampen im Haus, über die Angabe der Alexa kannst Du dann steuern welche Stehlampe geschaltet wird.
            Du machst also 3 Zeilen in der Datenbank mit jeweils dem gleichen Endpoint, aber mit unterschiedlichen Alexas.
          • AlexaSpeakOn: Für Powercontroller, Antwort von Alexa bei 'Ein', für Alle anderen Contoller: Antwort von Alexa,
            -AlexaSpeakOff: Nur für Powercontroller, Antwort von Alexa bei 'Aus'

          Ausserdem kannst Du mehrere Geräte gleichzeitig schalten, indem du einfach in mehreren Zeilen die gleiche Enpoint-ID, mit unterschiedlichen topics benutzt.
          z.B habe ich ein Kommando 'alles Aus' welches diverse Lampen und Steckdosen ausschaltet.

          Ich hoffe das hilft ersteinmal weiter.

          M M 2 Antworten Letzte Antwort
          0
          • Z zzippo

            @Marsx79 OK, dann erkläre ich das mal.
            Also bei einfügen einer neuen Zeile sind erst einmal alle Felder auf NULL. Wobei das kein Text ist, sondern heisst, das es keinen Eintrag gibt.
            Da Du den DB-Browser benutzt, passiert es schnell das ein NULL Eintrag überschrieben wird. z.B. wenn Du mit Tab durch die Felder läufst.

            • Lösungsmöglichkeit 1:
              Du setzt das Feld wieder auf NULL (rechte Maustaste auf dem Feld, und 'Auf NULL setzten' anwählen)

            • Lösungsmöglichkeit 2:
              Das Script im Node-Red in der Node:'SQL for any Alexa' so ändern, das nicht nur auf NULL sondern auch auf Leerstring abgefragt wird. (siehe Zeile 14)

            var instance = '';
            if (typeof msg.FromSkill.payload.directive.header.instance !== 'undefined')
            { instance = "' AND instance = '" + msg.FromSkill.payload.directive.header.instance;}
            
            
            var mode = '';
            if (typeof msg.FromSkill.payload.directive.payload.mode !== 'undefined')
            { mode = "' AND mode = '" + msg.FromSkill.payload.directive.payload.mode;}
            
            msg.topic =    "SELECT topic,value,AlexaSpeakOn,AlexaSpeakOff FROM AlexaEndpoints WHERE endpointId = '"  + 
                            msg.FromSkill.payload.directive.endpoint.endpointId + 
                            instance + 
                            mode + 
                            "' AND (WelcheAlexa IS NULL OR WelcheAlexa = '');";
            return msg;
            

            Zu den Einzelnen Feldern der Datenbank:

            • EndpointID: Das ist die ID des Gerätes, diese hast Du beim Anlegen im Device generator definiert.
              Sie wird von der Alexa App übertragen, damit Du weisst welches Gerät angesprochen wird.
            • Controller: ist nur für Dich als Info welche Art controller es ist, wird sonst (noch) nirgends benutzt.
            • comment: Nur ein Kommentar für Dich, wird sonst nicht benutzt.
            • instance: Dies ist für Mode Controller, da eine Endpoint ID mehrere Mode-Controller haben kann. ist sozusagen auch eine ID. Z.B. hast Du einen Enpoint Kueche, dieser hat einen Mode-Controller für Rollos und einen für ein farbiges Licht.
              Du könntest dann Deine instancen z.B. 'kueche.rollo' und 'kueche.farbe' nennen.
              Hier trägst Du also den Namen ein welchen Du im Device Generator vergeben hast.
              Bei nicht Mode-Controllern einfach das Feld leer lassen.
            • mode: Das ist der mode für die instance, z.B. hast du die Instance 'kueche.rollo' und dann jeweils einen mode für 'auf' und 'ab', wieder Die ID eintagen welche Du im Device Generator vergeben hast.Bei nicht Mode-Controllern einfach das Feld leer lassen.
            • topic: Das ist die IO-Broker Variable, welche Du schalten möchtest. Bitte immer darauf achten welchen Typen die Variable haben will. Aus dem Power-Controller kommt standardmässig immer true/false
            • value: Bei Power-Controller wird automatisch true/false übertragen, Bei Percentage und anderen der gesprochene Wert. In diesen Fällen kann also der Wert freigelassen werden. Bei Mode-Controllern kannst Du hier den Wert eintragen der an die topic variable gesendet werden soll.
            • WelcheAlexa: Du kannst zum Beispiel im Device-Generator ein Gerät anlegen, welches Stehlampe heißt, Du hast aber 3 Stehlampen im Haus, über die Angabe der Alexa kannst Du dann steuern welche Stehlampe geschaltet wird.
              Du machst also 3 Zeilen in der Datenbank mit jeweils dem gleichen Endpoint, aber mit unterschiedlichen Alexas.
            • AlexaSpeakOn: Für Powercontroller, Antwort von Alexa bei 'Ein', für Alle anderen Contoller: Antwort von Alexa,
              -AlexaSpeakOff: Nur für Powercontroller, Antwort von Alexa bei 'Aus'

            Ausserdem kannst Du mehrere Geräte gleichzeitig schalten, indem du einfach in mehreren Zeilen die gleiche Enpoint-ID, mit unterschiedlichen topics benutzt.
            z.B habe ich ein Kommando 'alles Aus' welches diverse Lampen und Steckdosen ausschaltet.

            Ich hoffe das hilft ersteinmal weiter.

            M Offline
            M Offline
            mech
            schrieb am zuletzt editiert von
            #55

            @zzippo danke für diese tolle Möglichkeit. Ich komme leider aktuell nicht zum ausprobieren, freue mich aber darauf hier weiter zu lesen.

            Weiter so!

            Gruß

            1 Antwort Letzte Antwort
            0
            • Z zzippo

              @Marsx79 OK, dann erkläre ich das mal.
              Also bei einfügen einer neuen Zeile sind erst einmal alle Felder auf NULL. Wobei das kein Text ist, sondern heisst, das es keinen Eintrag gibt.
              Da Du den DB-Browser benutzt, passiert es schnell das ein NULL Eintrag überschrieben wird. z.B. wenn Du mit Tab durch die Felder läufst.

              • Lösungsmöglichkeit 1:
                Du setzt das Feld wieder auf NULL (rechte Maustaste auf dem Feld, und 'Auf NULL setzten' anwählen)

              • Lösungsmöglichkeit 2:
                Das Script im Node-Red in der Node:'SQL for any Alexa' so ändern, das nicht nur auf NULL sondern auch auf Leerstring abgefragt wird. (siehe Zeile 14)

              var instance = '';
              if (typeof msg.FromSkill.payload.directive.header.instance !== 'undefined')
              { instance = "' AND instance = '" + msg.FromSkill.payload.directive.header.instance;}
              
              
              var mode = '';
              if (typeof msg.FromSkill.payload.directive.payload.mode !== 'undefined')
              { mode = "' AND mode = '" + msg.FromSkill.payload.directive.payload.mode;}
              
              msg.topic =    "SELECT topic,value,AlexaSpeakOn,AlexaSpeakOff FROM AlexaEndpoints WHERE endpointId = '"  + 
                              msg.FromSkill.payload.directive.endpoint.endpointId + 
                              instance + 
                              mode + 
                              "' AND (WelcheAlexa IS NULL OR WelcheAlexa = '');";
              return msg;
              

              Zu den Einzelnen Feldern der Datenbank:

              • EndpointID: Das ist die ID des Gerätes, diese hast Du beim Anlegen im Device generator definiert.
                Sie wird von der Alexa App übertragen, damit Du weisst welches Gerät angesprochen wird.
              • Controller: ist nur für Dich als Info welche Art controller es ist, wird sonst (noch) nirgends benutzt.
              • comment: Nur ein Kommentar für Dich, wird sonst nicht benutzt.
              • instance: Dies ist für Mode Controller, da eine Endpoint ID mehrere Mode-Controller haben kann. ist sozusagen auch eine ID. Z.B. hast Du einen Enpoint Kueche, dieser hat einen Mode-Controller für Rollos und einen für ein farbiges Licht.
                Du könntest dann Deine instancen z.B. 'kueche.rollo' und 'kueche.farbe' nennen.
                Hier trägst Du also den Namen ein welchen Du im Device Generator vergeben hast.
                Bei nicht Mode-Controllern einfach das Feld leer lassen.
              • mode: Das ist der mode für die instance, z.B. hast du die Instance 'kueche.rollo' und dann jeweils einen mode für 'auf' und 'ab', wieder Die ID eintagen welche Du im Device Generator vergeben hast.Bei nicht Mode-Controllern einfach das Feld leer lassen.
              • topic: Das ist die IO-Broker Variable, welche Du schalten möchtest. Bitte immer darauf achten welchen Typen die Variable haben will. Aus dem Power-Controller kommt standardmässig immer true/false
              • value: Bei Power-Controller wird automatisch true/false übertragen, Bei Percentage und anderen der gesprochene Wert. In diesen Fällen kann also der Wert freigelassen werden. Bei Mode-Controllern kannst Du hier den Wert eintragen der an die topic variable gesendet werden soll.
              • WelcheAlexa: Du kannst zum Beispiel im Device-Generator ein Gerät anlegen, welches Stehlampe heißt, Du hast aber 3 Stehlampen im Haus, über die Angabe der Alexa kannst Du dann steuern welche Stehlampe geschaltet wird.
                Du machst also 3 Zeilen in der Datenbank mit jeweils dem gleichen Endpoint, aber mit unterschiedlichen Alexas.
              • AlexaSpeakOn: Für Powercontroller, Antwort von Alexa bei 'Ein', für Alle anderen Contoller: Antwort von Alexa,
                -AlexaSpeakOff: Nur für Powercontroller, Antwort von Alexa bei 'Aus'

              Ausserdem kannst Du mehrere Geräte gleichzeitig schalten, indem du einfach in mehreren Zeilen die gleiche Enpoint-ID, mit unterschiedlichen topics benutzt.
              z.B habe ich ein Kommando 'alles Aus' welches diverse Lampen und Steckdosen ausschaltet.

              Ich hoffe das hilft ersteinmal weiter.

              M Offline
              M Offline
              Marsx79
              schrieb am zuletzt editiert von Marsx79
              #56

              @zzippo

              Super es funktioniert! Danke für die tolle Erklärung!

              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                Marsx79
                schrieb am zuletzt editiert von Marsx79
                #57

                Ich hätte da aber noch zwei weitere Fragen:

                1. Hat schon jemand "Thermostat Regler" probiert? Die Alexa App findet zwar das Gerät aber wenn ich dann da drauf gehe sagt diese nur "Warte auf Verbindung..." und dann geht es nicht weiter.

                2. Wenn ich eine dimmbare Lampe habe die keinen Datenpunkt für "an und aus" (also true und false) hat, sondern nur einen Datenpunkt für 0 - 99 (wobei 0 aus und 99 an ist) hat. Wie kann ich das machen? "Helligkeits Regler" funktioniert zwar für die Prozentangabe aber nicht für an/aus.

                Z 1 Antwort Letzte Antwort
                0
                • M Marsx79

                  Ich hätte da aber noch zwei weitere Fragen:

                  1. Hat schon jemand "Thermostat Regler" probiert? Die Alexa App findet zwar das Gerät aber wenn ich dann da drauf gehe sagt diese nur "Warte auf Verbindung..." und dann geht es nicht weiter.

                  2. Wenn ich eine dimmbare Lampe habe die keinen Datenpunkt für "an und aus" (also true und false) hat, sondern nur einen Datenpunkt für 0 - 99 (wobei 0 aus und 99 an ist) hat. Wie kann ich das machen? "Helligkeits Regler" funktioniert zwar für die Prozentangabe aber nicht für an/aus.

                  Z Offline
                  Z Offline
                  zzippo
                  schrieb am zuletzt editiert von zzippo
                  #58

                  @Marsx79 said in Alexa in Node Red ohne contrib-alexa-home oder Ähnliches:

                  Ich hätte da aber noch zwei weitere Fragen:

                  1. Hat schon jemand "Thermostat Regler" probiert? Die Alexa App findet zwar das Gerät aber wenn ich dann da drauf gehe sagt diese nur "Warte auf Verbindung..." und dann geht es nicht weiter.

                  den Thermostat Regler habe ich noch nicht implementiert, ersteinmal könnte man sich mit den anderen Reglern behelfen, (Mode, Prozent, Helligkeit)

                  1. Wenn ich eine dimmbare Lampe habe die keinen Datenpunkt für "an und aus" (also true und false) hat, sondern nur einen Datenpunkt für 0 - 99 (wobei 0 aus und 99 an ist) hat. Wie kann ich das machen? "Helligkeits Regler" funktioniert zwar für die Prozentangabe aber nicht für an/aus.

                  Hier kannst Du z.B folgendes machen, Du erstellst das Gerät mit einem Helligkeits und einem power controller. Beim Power-Controller trägst Du in der Datenbank unter value: '0-99' ein
                  diesen Wert können wir dann im Script abfragen und dementsprechend anders reagieren.

                  Du müsstes also node 'Move vals' z.B. so ändern:

                  //Set the output values to the given IO Broker variable
                  
                  switch (msg.FromSkill.payload.directive.header.namespace) {
                    case "Alexa.PowerController":
                      switch (msg.original_payload.value) {
                        // field value in Database is '0-99' then use 0 as Off and 99 as ON 
                        case "0-99":
                          msg.value = 0;
                          if (msg.FromSkill.payload.directive.header.name == "TurnOn") {
                            msg.value = 99;
                          }
                          break;
                        default:
                          // The Powercontroler sends the value (TurnOn/TurnOff), database value is NULL
                          msg.value = false;
                          if (msg.FromSkill.payload.directive.header.name == "TurnOn") {
                            msg.value = true;
                          }
                          break;
                      }
                      break;
                  
                    case "Alexa.ModeController":
                      // Value comes from the database
                      msg.value = msg.payload.value;
                      msg.value = msg.original_payload.value;
                      break;
                  
                    case "Alexa.ColorController":
                      msg.value = HSVtoRGBHEX(
                        msg.FromSkill.payload.directive.payload.color.hue,
                        msg.FromSkill.payload.directive.payload.color.saturation,
                        msg.FromSkill.payload.directive.payload.color.brightness
                      );
                      break;
                  
                    case "Alexa.BrightnessController":
                      if (msg.FromSkill.payload.directive.header.name == "AdjustBrightness") {
                        // value is in msg.FromSkill.payload.directive.payload.brightnessDelta
                        msg.value =
                          parseInt(msg.payload) +
                          parseInt(msg.FromSkill.payload.directive.payload.brightnessDelta);
                      } else {
                        // value is in msg.FromSkill.payload.directive.payload.brightness
                        msg.value = msg.FromSkill.payload.directive.payload.brightness;
                      }
                      break;
                  }
                  
                  var newmsg2 = { payload: msg.value, topic: msg.topic };
                  return [newmsg2];
                  
                  // Alexa Color.Controler input is HSB(HSV). We need RGB value (0xRRGGBB00)
                  function HSVtoRGBHEX(h, s, v) {
                    var r, g, b, i, f, p, q, t;
                  
                    h = h / 360;
                  
                    i = Math.floor(h * 6);
                    f = h * 6 - i;
                    p = v * (1 - s);
                    q = v * (1 - f * s);
                    t = v * (1 - (1 - f) * s);
                  
                    switch (i % 6) {
                      case 0:
                        r = v;
                        g = t;
                        b = p;
                        break;
                      case 1:
                        r = q;
                        g = v;
                        b = p;
                        break;
                      case 2:
                        r = p;
                        g = v;
                        b = t;
                        break;
                      case 3:
                        r = p;
                        g = q;
                        b = v;
                        break;
                      case 4:
                        r = t;
                        g = p;
                        b = v;
                        break;
                      case 5:
                        r = v;
                        g = p;
                        b = q;
                        break;
                    }
                    r = Math.round(r * 255);
                    g = Math.round(g * 255);
                    b = Math.round(b * 255);
                  
                    var rgb = (r << 16) + (g << 8) + b;
                    var srgb = "000000" + (rgb.toString(16) + "00").toUpperCase();
                    return srgb.slice(-8);
                  }
                  
                  
                  M 1 Antwort Letzte Antwort
                  0
                  • Z zzippo

                    @Marsx79 said in Alexa in Node Red ohne contrib-alexa-home oder Ähnliches:

                    Ich hätte da aber noch zwei weitere Fragen:

                    1. Hat schon jemand "Thermostat Regler" probiert? Die Alexa App findet zwar das Gerät aber wenn ich dann da drauf gehe sagt diese nur "Warte auf Verbindung..." und dann geht es nicht weiter.

                    den Thermostat Regler habe ich noch nicht implementiert, ersteinmal könnte man sich mit den anderen Reglern behelfen, (Mode, Prozent, Helligkeit)

                    1. Wenn ich eine dimmbare Lampe habe die keinen Datenpunkt für "an und aus" (also true und false) hat, sondern nur einen Datenpunkt für 0 - 99 (wobei 0 aus und 99 an ist) hat. Wie kann ich das machen? "Helligkeits Regler" funktioniert zwar für die Prozentangabe aber nicht für an/aus.

                    Hier kannst Du z.B folgendes machen, Du erstellst das Gerät mit einem Helligkeits und einem power controller. Beim Power-Controller trägst Du in der Datenbank unter value: '0-99' ein
                    diesen Wert können wir dann im Script abfragen und dementsprechend anders reagieren.

                    Du müsstes also node 'Move vals' z.B. so ändern:

                    //Set the output values to the given IO Broker variable
                    
                    switch (msg.FromSkill.payload.directive.header.namespace) {
                      case "Alexa.PowerController":
                        switch (msg.original_payload.value) {
                          // field value in Database is '0-99' then use 0 as Off and 99 as ON 
                          case "0-99":
                            msg.value = 0;
                            if (msg.FromSkill.payload.directive.header.name == "TurnOn") {
                              msg.value = 99;
                            }
                            break;
                          default:
                            // The Powercontroler sends the value (TurnOn/TurnOff), database value is NULL
                            msg.value = false;
                            if (msg.FromSkill.payload.directive.header.name == "TurnOn") {
                              msg.value = true;
                            }
                            break;
                        }
                        break;
                    
                      case "Alexa.ModeController":
                        // Value comes from the database
                        msg.value = msg.payload.value;
                        msg.value = msg.original_payload.value;
                        break;
                    
                      case "Alexa.ColorController":
                        msg.value = HSVtoRGBHEX(
                          msg.FromSkill.payload.directive.payload.color.hue,
                          msg.FromSkill.payload.directive.payload.color.saturation,
                          msg.FromSkill.payload.directive.payload.color.brightness
                        );
                        break;
                    
                      case "Alexa.BrightnessController":
                        if (msg.FromSkill.payload.directive.header.name == "AdjustBrightness") {
                          // value is in msg.FromSkill.payload.directive.payload.brightnessDelta
                          msg.value =
                            parseInt(msg.payload) +
                            parseInt(msg.FromSkill.payload.directive.payload.brightnessDelta);
                        } else {
                          // value is in msg.FromSkill.payload.directive.payload.brightness
                          msg.value = msg.FromSkill.payload.directive.payload.brightness;
                        }
                        break;
                    }
                    
                    var newmsg2 = { payload: msg.value, topic: msg.topic };
                    return [newmsg2];
                    
                    // Alexa Color.Controler input is HSB(HSV). We need RGB value (0xRRGGBB00)
                    function HSVtoRGBHEX(h, s, v) {
                      var r, g, b, i, f, p, q, t;
                    
                      h = h / 360;
                    
                      i = Math.floor(h * 6);
                      f = h * 6 - i;
                      p = v * (1 - s);
                      q = v * (1 - f * s);
                      t = v * (1 - (1 - f) * s);
                    
                      switch (i % 6) {
                        case 0:
                          r = v;
                          g = t;
                          b = p;
                          break;
                        case 1:
                          r = q;
                          g = v;
                          b = p;
                          break;
                        case 2:
                          r = p;
                          g = v;
                          b = t;
                          break;
                        case 3:
                          r = p;
                          g = q;
                          b = v;
                          break;
                        case 4:
                          r = t;
                          g = p;
                          b = v;
                          break;
                        case 5:
                          r = v;
                          g = p;
                          b = q;
                          break;
                      }
                      r = Math.round(r * 255);
                      g = Math.round(g * 255);
                      b = Math.round(b * 255);
                    
                      var rgb = (r << 16) + (g << 8) + b;
                      var srgb = "000000" + (rgb.toString(16) + "00").toUpperCase();
                      return srgb.slice(-8);
                    }
                    
                    
                    M Offline
                    M Offline
                    Marsx79
                    schrieb am zuletzt editiert von
                    #59

                    @zzippo

                    Auch das hat wieder super funktioniert! Danke!!!

                    Arbeitest du eigentlich noch weiter an dem Projekt? Ist echt mega!

                    Z 1 Antwort Letzte Antwort
                    0
                    • M Marsx79

                      @zzippo

                      Auch das hat wieder super funktioniert! Danke!!!

                      Arbeitest du eigentlich noch weiter an dem Projekt? Ist echt mega!

                      Z Offline
                      Z Offline
                      zzippo
                      schrieb am zuletzt editiert von
                      #60

                      @Marsx79
                      Ja, ich arbeite weiter daran, zur Zeit habe ich aber ganz andere Sorgen.... Ein Todesfall in der Familie.

                      M 1 Antwort Letzte Antwort
                      0
                      • Z zzippo

                        @Marsx79
                        Ja, ich arbeite weiter daran, zur Zeit habe ich aber ganz andere Sorgen.... Ein Todesfall in der Familie.

                        M Offline
                        M Offline
                        mech
                        schrieb am zuletzt editiert von
                        #61

                        @zzippo Dann nimm dir auch die Zeit für deine Familie, das hier ist Hobby. Kopf hoch und Gruß

                        Z 1 Antwort Letzte Antwort
                        0
                        • M mech

                          @zzippo Dann nimm dir auch die Zeit für deine Familie, das hier ist Hobby. Kopf hoch und Gruß

                          Z Offline
                          Z Offline
                          zzippo
                          schrieb am zuletzt editiert von
                          #62

                          @mech
                          Danke für die freundlichen Worte.
                          Ich bin aber jederzeit für Fragen offen, Ablenkung kann ich gut gebrauchen.

                          1 Antwort Letzte Antwort
                          0
                          • Z zzippo

                            Hallo, ich wollte kurz vorstellen, wie ich die Sprachsteuerung meiner Heimautomatisierung gelöst habe.
                            Am Anfang habe ich mit den alt bekannten Mitteln gearbeitet, also z.B. mit node-red-contrib-alexa-home.
                            Nach einer Weile habe ich gemerkt, dass doch zu viele Einschränkungen vorhanden sind und mich auf die Suche nach einer neuen Lösung gemacht.
                            Herausgekommen ist folgendes:

                            • Ein eigener Smarthome Skill bei Amazon welcher über einen Raspi Reverse Proxy auf Node Red geleitet wird.
                            • Ein Windows Programm mit dem ich beliebige Geräte konfigurieren kann, und das auf die Amazon Gerätesuche reagiert.
                            • Eine SqLite Datenbank auf dem IOBroker Raspi, über die alle Geräte mit den entsprechenden IOBroker Datenpunkten verbunden werden.
                            • Ein recht kurzer Node-Red Flow, der dann alle Dinge behandelt.

                            Die Großen Vorteile an der Sache sind:

                            • Alexa kann individuelle Antworten geben (zum Beispiel wenn ich sage Gäste WLAN ein. Antwortet mir Alexa mit der SSID und dem Passwort)
                            • Ich kann mit gleichen Sprachbefehlen in verschiedenen Räumen arbeiten (z.B. Licht ein)
                            • Ich kann alle Alexa Controller verwenden (z.B. mode, precentage, color etc.)
                            • Neue Geräte erfordern keine Programmierung sondern lediglich eine Zeile in der Datenbank

                            Bei Interesse kann ich das gerne einmal genauer vorstellen.

                            AlexaDeviceGenerator.jpg
                            db.jpg
                            Flow.jpg

                            M Offline
                            M Offline
                            matit2000
                            schrieb am zuletzt editiert von
                            #63

                            @zzippo super schöne Lösung, werde ich zu Weihnachten mal nachbauen... weiter so!
                            :+1: :+1: :+1:

                            Z 1 Antwort Letzte Antwort
                            0
                            • M matit2000

                              @zzippo super schöne Lösung, werde ich zu Weihnachten mal nachbauen... weiter so!
                              :+1: :+1: :+1:

                              Z Offline
                              Z Offline
                              zzippo
                              schrieb am zuletzt editiert von
                              #64

                              @matit2000
                              So super schön finde ich es noch nicht. Ich bin grad am forschen, wie es besser gehen könnte. Ich wollte das ganze in den ioBroker integrieren, aber dafür muss ich noch viel lernen.... vs-code, node.js, html, css, express, adapter...., und, und, und.
                              für einen 56 Jährigen nicht mehr ganz so einfach :-)

                              1 Antwort Letzte Antwort
                              0
                              • C Offline
                                C Offline
                                Christoph_12
                                schrieb am zuletzt editiert von
                                #65

                                Hallo @zzippo,
                                sehr schönes Projekt. Ich hatte bisher Alexa über einen Customskill eingebunden, da ich mit den Smart-Home-Skills zu eingeschränkt bin. Lediglich die Geräte, die nur ein- oder ausgeschaltet werden müssen habe ich über ein Smart-Home_Skill geschaltet.

                                Scheinbar hast Du die Einschränkungen überwunden. Das würde ich bei mir auch gerne einbinden. Bisher muss ich die Rollladen noch über den Custom-Skill steuern.

                                Ich habe jetzt im ersten Schritt einen neuen Smart-Home-Skill angelegt und aktiviert. Eine URL für das Einlesen der Geräte habe ich auch angelegt. Ich sehe, dass die URL auch abgerufen wird, es werden aber keine neuen Geräte gefunden.
                                Für den Test habe ich einfach das JSON für zwei Geräte (hund und katze) angelegt, welches bei der Abfrage der neuen Geräte zurückgeliefert wird. Hat sich hier etwas geändert? Ich kann die neuen Geräte nicht finden.
                                Folgender Code wird zurückgeliefert:

                                {"endpoints":
                                [
                                
                                    {
                                        "endpointId": "eg_esstisch_lampe_1",
                                        "manufacturerName": "HM Switsch",
                                        "friendlyName": "hund",
                                        "description": "hund",
                                        "displayCategories": ["SWITCH"],
                                        "cookie": {
                                            "devicename": "hund",
                                            "TurnOn"    : "einschalten",
                                            "TurnOff"   : "ausschalten"
                                        },
                                        "capabilities":
                                        [
                                            {
                                                "type": "AlexaInterface",
                                                "interface": "Alexa",
                                                "version": "3"
                                            },
                                            {
                                                "interface": "Alexa.PowerController",
                                                "version": "3",
                                                "type": "AlexaInterface",
                                                "properties": {
                                                    "supported": [{
                                                        "name": "powerState"
                                                    }],
                                                        "retrievable": true
                                                }
                                            }
                                        ]
                                    },
                                    
                                    {
                                        "endpointId": "eg_leselampe",
                                        "manufacturerName": "HM Switsch",
                                        "friendlyName": "katze",
                                        "description": "katze",
                                        "displayCategories": ["SWITCH"],
                                        "cookie": {
                                            "devicename": "katze",
                                            "TurnOn"    : "einschalten",
                                            "TurnOff"   : "ausschalten"
                                        },
                                        "capabilities":
                                        [
                                            {
                                                "type": "AlexaInterface",
                                                "interface": "Alexa",
                                                "version": "3"
                                            },
                                            {
                                                "interface": "Alexa.PowerController",
                                                "version": "3",
                                                "type": "AlexaInterface",
                                                "properties": {
                                                    "supported": [{
                                                        "name": "powerState"
                                                    }],
                                                        "retrievable": true
                                                }
                                            }
                                        ]
                                    }
                                ]
                                }
                                

                                Kannst Du mir einmal ein Beispiel-JSON für ein Gerät zeigen, welches funktionieren müsste? Ich kann leider Deine Tools nicht verwenden, da ich kein ioBroker verwende.

                                Lassen sich bei den Rollladen auch mehrere Worte für die Aktion einstellen (hoch, runter, öffnen, schließen, auf und zu)?

                                Z 2 Antworten Letzte Antwort
                                0
                                • C Christoph_12

                                  Hallo @zzippo,
                                  sehr schönes Projekt. Ich hatte bisher Alexa über einen Customskill eingebunden, da ich mit den Smart-Home-Skills zu eingeschränkt bin. Lediglich die Geräte, die nur ein- oder ausgeschaltet werden müssen habe ich über ein Smart-Home_Skill geschaltet.

                                  Scheinbar hast Du die Einschränkungen überwunden. Das würde ich bei mir auch gerne einbinden. Bisher muss ich die Rollladen noch über den Custom-Skill steuern.

                                  Ich habe jetzt im ersten Schritt einen neuen Smart-Home-Skill angelegt und aktiviert. Eine URL für das Einlesen der Geräte habe ich auch angelegt. Ich sehe, dass die URL auch abgerufen wird, es werden aber keine neuen Geräte gefunden.
                                  Für den Test habe ich einfach das JSON für zwei Geräte (hund und katze) angelegt, welches bei der Abfrage der neuen Geräte zurückgeliefert wird. Hat sich hier etwas geändert? Ich kann die neuen Geräte nicht finden.
                                  Folgender Code wird zurückgeliefert:

                                  {"endpoints":
                                  [
                                  
                                      {
                                          "endpointId": "eg_esstisch_lampe_1",
                                          "manufacturerName": "HM Switsch",
                                          "friendlyName": "hund",
                                          "description": "hund",
                                          "displayCategories": ["SWITCH"],
                                          "cookie": {
                                              "devicename": "hund",
                                              "TurnOn"    : "einschalten",
                                              "TurnOff"   : "ausschalten"
                                          },
                                          "capabilities":
                                          [
                                              {
                                                  "type": "AlexaInterface",
                                                  "interface": "Alexa",
                                                  "version": "3"
                                              },
                                              {
                                                  "interface": "Alexa.PowerController",
                                                  "version": "3",
                                                  "type": "AlexaInterface",
                                                  "properties": {
                                                      "supported": [{
                                                          "name": "powerState"
                                                      }],
                                                          "retrievable": true
                                                  }
                                              }
                                          ]
                                      },
                                      
                                      {
                                          "endpointId": "eg_leselampe",
                                          "manufacturerName": "HM Switsch",
                                          "friendlyName": "katze",
                                          "description": "katze",
                                          "displayCategories": ["SWITCH"],
                                          "cookie": {
                                              "devicename": "katze",
                                              "TurnOn"    : "einschalten",
                                              "TurnOff"   : "ausschalten"
                                          },
                                          "capabilities":
                                          [
                                              {
                                                  "type": "AlexaInterface",
                                                  "interface": "Alexa",
                                                  "version": "3"
                                              },
                                              {
                                                  "interface": "Alexa.PowerController",
                                                  "version": "3",
                                                  "type": "AlexaInterface",
                                                  "properties": {
                                                      "supported": [{
                                                          "name": "powerState"
                                                      }],
                                                          "retrievable": true
                                                  }
                                              }
                                          ]
                                      }
                                  ]
                                  }
                                  

                                  Kannst Du mir einmal ein Beispiel-JSON für ein Gerät zeigen, welches funktionieren müsste? Ich kann leider Deine Tools nicht verwenden, da ich kein ioBroker verwende.

                                  Lassen sich bei den Rollladen auch mehrere Worte für die Aktion einstellen (hoch, runter, öffnen, schließen, auf und zu)?

                                  Z Offline
                                  Z Offline
                                  zzippo
                                  schrieb am zuletzt editiert von zzippo
                                  #66

                                  @Christoph_12

                                  Hallo Christoph,
                                  ein Kompletter Response für einen Power Controller muss so aussehen:
                                  (Die MessageId ist generiert)

                                  {
                                    "event": {
                                      "header": {
                                        "namespace": "Alexa.Discovery",
                                        "name": "Discover.Response",
                                        "payloadVersion": "3",
                                        "messageId": "11339ec1-6c30-45bb-a7bf-12e113ebfc7c" 
                                      },
                                      "payload": {
                                        "endpoints": [
                                          {
                                            "friendlyName": "hund",
                                            "endpointId": "eg_esstisch_lampe_1",
                                            "manufacturerName": "HM Switch",
                                            "description": "hund",
                                            "displayCategories": [
                                              "SWITCH"
                                            ],
                                            "capabilities": [
                                              {
                                                "properties": {
                                                  "supported": [
                                                    {
                                                      "name": "powerState"
                                                    }
                                                  ],
                                                  "proactivelyReported": false,
                                                  "retrievable": false
                                                },
                                                "type": "AlexaInterface",
                                                "interface": "Alexa.PowerController",
                                                "version": "3"
                                              }
                                            ]
                                          }
                                        ]
                                      }
                                    }
                                  }
                                  

                                  zu Deiner Frage mit den Rollos, ja mit ModeController kannst Du beliebig viele Kommandos angeben.

                                  C 1 Antwort Letzte Antwort
                                  0
                                  • C Christoph_12

                                    Hallo @zzippo,
                                    sehr schönes Projekt. Ich hatte bisher Alexa über einen Customskill eingebunden, da ich mit den Smart-Home-Skills zu eingeschränkt bin. Lediglich die Geräte, die nur ein- oder ausgeschaltet werden müssen habe ich über ein Smart-Home_Skill geschaltet.

                                    Scheinbar hast Du die Einschränkungen überwunden. Das würde ich bei mir auch gerne einbinden. Bisher muss ich die Rollladen noch über den Custom-Skill steuern.

                                    Ich habe jetzt im ersten Schritt einen neuen Smart-Home-Skill angelegt und aktiviert. Eine URL für das Einlesen der Geräte habe ich auch angelegt. Ich sehe, dass die URL auch abgerufen wird, es werden aber keine neuen Geräte gefunden.
                                    Für den Test habe ich einfach das JSON für zwei Geräte (hund und katze) angelegt, welches bei der Abfrage der neuen Geräte zurückgeliefert wird. Hat sich hier etwas geändert? Ich kann die neuen Geräte nicht finden.
                                    Folgender Code wird zurückgeliefert:

                                    {"endpoints":
                                    [
                                    
                                        {
                                            "endpointId": "eg_esstisch_lampe_1",
                                            "manufacturerName": "HM Switsch",
                                            "friendlyName": "hund",
                                            "description": "hund",
                                            "displayCategories": ["SWITCH"],
                                            "cookie": {
                                                "devicename": "hund",
                                                "TurnOn"    : "einschalten",
                                                "TurnOff"   : "ausschalten"
                                            },
                                            "capabilities":
                                            [
                                                {
                                                    "type": "AlexaInterface",
                                                    "interface": "Alexa",
                                                    "version": "3"
                                                },
                                                {
                                                    "interface": "Alexa.PowerController",
                                                    "version": "3",
                                                    "type": "AlexaInterface",
                                                    "properties": {
                                                        "supported": [{
                                                            "name": "powerState"
                                                        }],
                                                            "retrievable": true
                                                    }
                                                }
                                            ]
                                        },
                                        
                                        {
                                            "endpointId": "eg_leselampe",
                                            "manufacturerName": "HM Switsch",
                                            "friendlyName": "katze",
                                            "description": "katze",
                                            "displayCategories": ["SWITCH"],
                                            "cookie": {
                                                "devicename": "katze",
                                                "TurnOn"    : "einschalten",
                                                "TurnOff"   : "ausschalten"
                                            },
                                            "capabilities":
                                            [
                                                {
                                                    "type": "AlexaInterface",
                                                    "interface": "Alexa",
                                                    "version": "3"
                                                },
                                                {
                                                    "interface": "Alexa.PowerController",
                                                    "version": "3",
                                                    "type": "AlexaInterface",
                                                    "properties": {
                                                        "supported": [{
                                                            "name": "powerState"
                                                        }],
                                                            "retrievable": true
                                                    }
                                                }
                                            ]
                                        }
                                    ]
                                    }
                                    

                                    Kannst Du mir einmal ein Beispiel-JSON für ein Gerät zeigen, welches funktionieren müsste? Ich kann leider Deine Tools nicht verwenden, da ich kein ioBroker verwende.

                                    Lassen sich bei den Rollladen auch mehrere Worte für die Aktion einstellen (hoch, runter, öffnen, schließen, auf und zu)?

                                    Z Offline
                                    Z Offline
                                    zzippo
                                    schrieb am zuletzt editiert von
                                    #67

                                    Ich wollte noch einmal ein Update geben. Bin dabei den Device Generator als HTML/Javascript umzusetzen. Sieht schon ganz gut aus, und ich habe noch neue Ideen implementiert.

                                    new adg.png

                                    new adg2.png

                                    new adg3.png

                                    M 1 Antwort Letzte Antwort
                                    0
                                    • Z zzippo

                                      @Christoph_12

                                      Hallo Christoph,
                                      ein Kompletter Response für einen Power Controller muss so aussehen:
                                      (Die MessageId ist generiert)

                                      {
                                        "event": {
                                          "header": {
                                            "namespace": "Alexa.Discovery",
                                            "name": "Discover.Response",
                                            "payloadVersion": "3",
                                            "messageId": "11339ec1-6c30-45bb-a7bf-12e113ebfc7c" 
                                          },
                                          "payload": {
                                            "endpoints": [
                                              {
                                                "friendlyName": "hund",
                                                "endpointId": "eg_esstisch_lampe_1",
                                                "manufacturerName": "HM Switch",
                                                "description": "hund",
                                                "displayCategories": [
                                                  "SWITCH"
                                                ],
                                                "capabilities": [
                                                  {
                                                    "properties": {
                                                      "supported": [
                                                        {
                                                          "name": "powerState"
                                                        }
                                                      ],
                                                      "proactivelyReported": false,
                                                      "retrievable": false
                                                    },
                                                    "type": "AlexaInterface",
                                                    "interface": "Alexa.PowerController",
                                                    "version": "3"
                                                  }
                                                ]
                                              }
                                            ]
                                          }
                                        }
                                      }
                                      

                                      zu Deiner Frage mit den Rollos, ja mit ModeController kannst Du beliebig viele Kommandos angeben.

                                      C Offline
                                      C Offline
                                      Christoph_12
                                      schrieb am zuletzt editiert von
                                      #68

                                      Danke @zzippo, das funktioniert jetzt.
                                      Jetzt wird an mein Script folgendes übergeben:

                                       [data] => Array
                                              (
                                                  [directive] => Array
                                                      (
                                                          [header] => Array
                                                              (
                                                                  [namespace] => Alexa.PowerController
                                                                  [name] => TurnOff
                                                                  [payloadVersion] => 3
                                                                  [messageId] => 067b0ff4-47a5-4017-bd6e-20093ebd44ba
                                                                  [correlationToken] => AAAAAAAAAQCdkRvyue7L1Qq0qi/...Qc5nVN0TSG5ee
                                                              )
                                      
                                                          [endpoint] => Array
                                                              (
                                                                  [scope] => Array
                                                                      (
                                                                          [type] => BearerToken
                                                                          [token] => Atza|IwEGNZBZz....YDa2Mx_czIbpTjwpu0fzM
                                                                      )
                                      
                                                                  [endpointId] => maus_1
                                                                  [cookie] => Array
                                                                      (
                                                                      )
                                      
                                                              )
                                      
                                                          [payload] => Array
                                                              (
                                                              )
                                      
                                                      )
                                      
                                              )
                                      

                                      Ich hatte das Gerät maus_1 genannt. Schalten kann ich also damit. Ich frage mich nur:
                                      Wie komme ich an die Info, welcher Echo die Anfrage geschickt hat?
                                      Wie kann ich den Text, der als Bestätigung ausgegben wird vorgeben? Wird das im Response mit angegeben?

                                      C 1 Antwort Letzte Antwort
                                      0
                                      • C Christoph_12

                                        Danke @zzippo, das funktioniert jetzt.
                                        Jetzt wird an mein Script folgendes übergeben:

                                         [data] => Array
                                                (
                                                    [directive] => Array
                                                        (
                                                            [header] => Array
                                                                (
                                                                    [namespace] => Alexa.PowerController
                                                                    [name] => TurnOff
                                                                    [payloadVersion] => 3
                                                                    [messageId] => 067b0ff4-47a5-4017-bd6e-20093ebd44ba
                                                                    [correlationToken] => AAAAAAAAAQCdkRvyue7L1Qq0qi/...Qc5nVN0TSG5ee
                                                                )
                                        
                                                            [endpoint] => Array
                                                                (
                                                                    [scope] => Array
                                                                        (
                                                                            [type] => BearerToken
                                                                            [token] => Atza|IwEGNZBZz....YDa2Mx_czIbpTjwpu0fzM
                                                                        )
                                        
                                                                    [endpointId] => maus_1
                                                                    [cookie] => Array
                                                                        (
                                                                        )
                                        
                                                                )
                                        
                                                            [payload] => Array
                                                                (
                                                                )
                                        
                                                        )
                                        
                                                )
                                        

                                        Ich hatte das Gerät maus_1 genannt. Schalten kann ich also damit. Ich frage mich nur:
                                        Wie komme ich an die Info, welcher Echo die Anfrage geschickt hat?
                                        Wie kann ich den Text, der als Bestätigung ausgegben wird vorgeben? Wird das im Response mit angegeben?

                                        C Offline
                                        C Offline
                                        Christoph_12
                                        schrieb am zuletzt editiert von
                                        #69

                                        Hi,
                                        ich konnte die Rolllade einbinden per:

                                        {
                                          "event": {
                                            "header": {
                                              "namespace": "Alexa.Discovery",
                                              "name": "Discover.Response",
                                              "payloadVersion": "3",
                                              "messageId": "maus_message"
                                            },
                                            "payload": {
                                              "endpoints": [
                                                
                                        
                                                {
                                                  "endpointId": "dach_rolllade",
                                                  "manufacturerName": "HM",
                                                  "description": "Rolllade Giebelwand",
                                                  "friendlyName": "Giebelrolllade",
                                                  "displayCategories": ["ROLLLADE"],
                                                  "cookie": {},
                                                  "capabilities": [
                                                    {
                                                      "type": "AlexaInterface",
                                                      "interface": "Alexa.ModeController",
                                                      "instance": "Rolllade.Position",
                                                      "version": "3",
                                                      "properties": {
                                                        "supported": [
                                                          {
                                                            "name": "mode"
                                                          }
                                                        ],
                                                        "retrievable": true,
                                                        "proactivelyReported": true
                                                      },
                                                      "capabilityResources": {
                                                        "friendlyNames": [
                                                          {
                                                            "@type": "asset",
                                                            "value": {
                                                              "assetId": "Alexa.Setting.Opening"
                                                            }
                                                          },
                                                          {
                                                            "@type": "text",
                                                            "value": {
                                                                "text": "hoch",
                                                                "locale": "de-DE"
                                                                }
                                                            }                  
                                                        ]
                                                      },
                                                      "configuration": {
                                                        "ordered": false,
                                                        "supportedModes": [
                                                          {
                                                            "value": "Position.Up",
                                                            "modeResources": {
                                                              "friendlyNames": [
                                                                {
                                                                  "@type": "asset",
                                                                  "value": {
                                                                    "assetId": "Alexa.Value.Open"
                                                                  }
                                                                },
                                                                {
                                                                "@type": "text",
                                                                    "value": {
                                                                        "text": "hoch",
                                                                        "locale": "de-DE"
                                                                        }
                                                                }                          
                                                              ]
                                                            }
                                                          },
                                                          {
                                                            "value": "Position.Down",
                                                            "modeResources": {
                                                              "friendlyNames": [
                                                                {
                                                                  "@type": "asset",
                                                                  "value": {
                                                                    "assetId": "Alexa.Value.Close"
                                                                  }
                                                                }
                                                              ]
                                                            }
                                                          }
                                                        ]
                                                      },
                                                      "semantics": {
                                                        "actionMappings": [
                                                          {
                                                            "@type": "ActionsToDirective",
                                                            "actions": ["Alexa.Actions.Close", "Alexa.Actions.Lower"],
                                                            "directive": {
                                                              "name": "SetMode",
                                                              "payload": {
                                                                "mode": "Position.Down"
                                                              }
                                                            }
                                                          },
                                                          {
                                                            "@type": "ActionsToDirective",
                                                            "actions": ["Alexa.Actions.Open", "Alexa.Actions.Raise"],
                                                            "directive": {
                                                              "name": "SetMode",
                                                              "payload": {
                                                                "mode": "Position.Up"
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "stateMappings": [
                                                          {
                                                            "@type": "StatesToValue",
                                                            "states": ["Alexa.States.Closed"],
                                                            "value": "Position.Down"
                                                          },
                                                          {
                                                            "@type": "StatesToValue",
                                                            "states": ["Alexa.States.Open"],
                                                            "value": "Position.Up"
                                                          }  
                                                        ]
                                                      }
                                                    },
                                                    {
                                                      "type": "AlexaInterface",
                                                      "interface": "Alexa",
                                                      "version": "3"
                                                    }
                                                  ]
                                                }
                                        
                                        
                                        
                                        
                                              ]
                                            }
                                          }
                                        }
                                        

                                        Der Befehl, die Rolllade zu bewegen wird bei den Befehlen "öffnen" und "schließen" ausgeführt und korrekt mit ok vom Echo quittiert.

                                        Sage ich aber "Giebelrolllade hoch", dann kommt als Antwort "Giebelrolllade unterstützt das nicht." Der Befehl wird aber dennoch korrekt an mein Verarbeitungsscript geschickt.

                                        Kann mir mal jemand seine Rollladendefinition senden, der außer öffnen und schließen weitere Befehle angelernt hat?
                                        Mich würde auch die Definition interessieren, für ein Gerät, bei dem eine alternative Antwort gegeben wird.
                                        Also den Inhalt aus MeineAdresse.de:443/alexaDisc (sh. Post#19)

                                        Z 1 Antwort Letzte Antwort
                                        0
                                        • C Christoph_12

                                          Hi,
                                          ich konnte die Rolllade einbinden per:

                                          {
                                            "event": {
                                              "header": {
                                                "namespace": "Alexa.Discovery",
                                                "name": "Discover.Response",
                                                "payloadVersion": "3",
                                                "messageId": "maus_message"
                                              },
                                              "payload": {
                                                "endpoints": [
                                                  
                                          
                                                  {
                                                    "endpointId": "dach_rolllade",
                                                    "manufacturerName": "HM",
                                                    "description": "Rolllade Giebelwand",
                                                    "friendlyName": "Giebelrolllade",
                                                    "displayCategories": ["ROLLLADE"],
                                                    "cookie": {},
                                                    "capabilities": [
                                                      {
                                                        "type": "AlexaInterface",
                                                        "interface": "Alexa.ModeController",
                                                        "instance": "Rolllade.Position",
                                                        "version": "3",
                                                        "properties": {
                                                          "supported": [
                                                            {
                                                              "name": "mode"
                                                            }
                                                          ],
                                                          "retrievable": true,
                                                          "proactivelyReported": true
                                                        },
                                                        "capabilityResources": {
                                                          "friendlyNames": [
                                                            {
                                                              "@type": "asset",
                                                              "value": {
                                                                "assetId": "Alexa.Setting.Opening"
                                                              }
                                                            },
                                                            {
                                                              "@type": "text",
                                                              "value": {
                                                                  "text": "hoch",
                                                                  "locale": "de-DE"
                                                                  }
                                                              }                  
                                                          ]
                                                        },
                                                        "configuration": {
                                                          "ordered": false,
                                                          "supportedModes": [
                                                            {
                                                              "value": "Position.Up",
                                                              "modeResources": {
                                                                "friendlyNames": [
                                                                  {
                                                                    "@type": "asset",
                                                                    "value": {
                                                                      "assetId": "Alexa.Value.Open"
                                                                    }
                                                                  },
                                                                  {
                                                                  "@type": "text",
                                                                      "value": {
                                                                          "text": "hoch",
                                                                          "locale": "de-DE"
                                                                          }
                                                                  }                          
                                                                ]
                                                              }
                                                            },
                                                            {
                                                              "value": "Position.Down",
                                                              "modeResources": {
                                                                "friendlyNames": [
                                                                  {
                                                                    "@type": "asset",
                                                                    "value": {
                                                                      "assetId": "Alexa.Value.Close"
                                                                    }
                                                                  }
                                                                ]
                                                              }
                                                            }
                                                          ]
                                                        },
                                                        "semantics": {
                                                          "actionMappings": [
                                                            {
                                                              "@type": "ActionsToDirective",
                                                              "actions": ["Alexa.Actions.Close", "Alexa.Actions.Lower"],
                                                              "directive": {
                                                                "name": "SetMode",
                                                                "payload": {
                                                                  "mode": "Position.Down"
                                                                }
                                                              }
                                                            },
                                                            {
                                                              "@type": "ActionsToDirective",
                                                              "actions": ["Alexa.Actions.Open", "Alexa.Actions.Raise"],
                                                              "directive": {
                                                                "name": "SetMode",
                                                                "payload": {
                                                                  "mode": "Position.Up"
                                                                }
                                                              }
                                                            }
                                                          ],
                                                          "stateMappings": [
                                                            {
                                                              "@type": "StatesToValue",
                                                              "states": ["Alexa.States.Closed"],
                                                              "value": "Position.Down"
                                                            },
                                                            {
                                                              "@type": "StatesToValue",
                                                              "states": ["Alexa.States.Open"],
                                                              "value": "Position.Up"
                                                            }  
                                                          ]
                                                        }
                                                      },
                                                      {
                                                        "type": "AlexaInterface",
                                                        "interface": "Alexa",
                                                        "version": "3"
                                                      }
                                                    ]
                                                  }
                                          
                                          
                                          
                                          
                                                ]
                                              }
                                            }
                                          }
                                          

                                          Der Befehl, die Rolllade zu bewegen wird bei den Befehlen "öffnen" und "schließen" ausgeführt und korrekt mit ok vom Echo quittiert.

                                          Sage ich aber "Giebelrolllade hoch", dann kommt als Antwort "Giebelrolllade unterstützt das nicht." Der Befehl wird aber dennoch korrekt an mein Verarbeitungsscript geschickt.

                                          Kann mir mal jemand seine Rollladendefinition senden, der außer öffnen und schließen weitere Befehle angelernt hat?
                                          Mich würde auch die Definition interessieren, für ein Gerät, bei dem eine alternative Antwort gegeben wird.
                                          Also den Inhalt aus MeineAdresse.de:443/alexaDisc (sh. Post#19)

                                          Z Offline
                                          Z Offline
                                          zzippo
                                          schrieb am zuletzt editiert von
                                          #70

                                          @Christoph_12

                                          Hallo Christoph, ich habe das für meine Rollos so gemacht:

                                          {
                                                        "type": "AlexaInterface",
                                                        "interface": "Alexa.ModeController",
                                                        "instance": "kueche.rollo",
                                                        "version": "3",
                                                        "capabilityResources": {
                                                          "friendlyNames": [
                                                            {
                                                              "@type": "text",
                                                              "value": {
                                                                "text": "Rolll\u00E4den",
                                                                "locale": "de-DE"
                                                              }
                                                            },
                                                            {
                                                              "@type": "text",
                                                              "value": {
                                                                "text": "Rollladen",
                                                                "locale": "de-DE"
                                                              }
                                                            },
                                                            {
                                                              "@type": "text",
                                                              "value": {
                                                                "text": "Rollo",
                                                                "locale": "de-DE"
                                                              }
                                                            },
                                                            {
                                                              "@type": "text",
                                                              "value": {
                                                                "text": "Rollos",
                                                                "locale": "de-DE"
                                                              }
                                                            }
                                                          ]
                                                        },
                                                        "properties": {
                                                          "supported": [
                                                            {
                                                              "name": "mode"
                                                            }
                                                          ],
                                                          "proactivelyReported": false,
                                                          "retrievable": false,
                                                          "nonControllable": false
                                                        },
                                                        "configuration": {
                                                          "ordered": false,
                                                          "supportedModes": [
                                                            {
                                                              "value": "kueche.rollo.hoch",
                                                              "modeResources": {
                                                                "friendlyNames": [
                                                                  {
                                                                    "@type": "text",
                                                                    "value": {
                                                                      "text": "hoch",
                                                                      "locale": "de-DE"
                                                                    }
                                                                  },
                                                                  {
                                                                    "@type": "text",
                                                                    "value": {
                                                                      "text": "Auf",
                                                                      "locale": "de-DE"
                                                                    }
                                                                  }
                                                                ]
                                                              }
                                                            },
                                                            {
                                                              "value": "kueche.rollo.runter",
                                                              "modeResources": {
                                                                "friendlyNames": [
                                                                  {
                                                                    "@type": "text",
                                                                    "value": {
                                                                      "text": "Runter",
                                                                      "locale": "de-DE"
                                                                    }
                                                                  },
                                                                  {
                                                                    "@type": "text",
                                                                    "value": {
                                                                      "text": "zu",
                                                                      "locale": "de-DE"
                                                                    }
                                                                  }
                                                                ]
                                                              }
                                                            }
                                                          ]
                                                        }
                                          
                                          

                                          sowohl mit der Sprachausgabe als auch der Ermittlung welche Alexa angesprochen wurde wird es ohne IOBroker schwer. Ich habe dafür den Alexa2 Adapter benutzt, welcher sich, wie ich glaube in die AlexaApp einklinkt.

                                          C 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

                                          972

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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