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. Skripten / Logik
  4. Node-Red
  5. Alexa-Anbindung eines Dimmers mit Node-RED

NEWS

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

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

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

Alexa-Anbindung eines Dimmers mit Node-RED

Geplant Angeheftet Gesperrt Verschoben Node-Red
11 Beiträge 3 Kommentatoren 386 Aufrufe 3 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.
  • S schnipsel71

    Aus irgendeinem Grund schaffe ich es nicht, die Dimmfunktion meiner Spots im Wohnzimmer über Alexa mit Node-RED zu realisieren.

    8beda449-826f-4638-a43e-e7114bc7a7f6-image.png

    Wo liegt der Fehler?

    ? Offline
    ? Offline
    Ein ehemaliger Benutzer
    schrieb am zuletzt editiert von
    #2

    @schnipsel71
    leider verrätst Du ja nicht viel wie weit du kommst, oder wo es hakt.
    Man sieht ja den bewährten Skill "Node-RED Contrib Amazon Echo module", aber auch den Nachfolger "dulonode".
    Wird denn dein Smart-Gerät (Spots) überhaupt bei einer Alexa Suche gefunden? Das wäre ja der erste Schritt. Ich hatte immer Schwierigkeiten (nach jedem iobroker Neustart) das ganze funktionabel zu halten, solange Port 80 benutzt wurde. es musste immer auf der Konsole "erlaubt" werden unterhalb von Port 1000 was zu machen.

    sudo setcap ‚cap_net_bind_service=+ep‘ which node
    

    Leider keine Lösung die "Bootsicher" ist
    Nutze seither einen anderen Port und "biege" mir den Port 80 dahin um.
    Damit Alexa dein Gerät(e) findet, müsste so ein Aufruf funktionieren:

    http://youraddr:80/description.xml
    und so ein Ergebnis liefern:

    fc5a6bec-fd3d-4754-a245-66636ed1ed8e-image.png

    Solange das nicht funktioniert, brauchst du gar nicht weiter machen.
    Hier mal meine alten Notizen, die ich mir mal gemacht hatte:


    Deshalb „biegen wir den Port um“ und zwar von Port 80 auf Port 8095. So schickt das Echo Device die Befehle an Port 80, diese „landen“ aber auf Port 8095. Der hier gezeigte Weg scheint kompliziert und aufwendig, aber nur auf den ersten Blick und ist eigentlich einfach und schnell in 4 Schritten erledigt. Als root User per SSH auf der Iobroker Maschine wird festgestellt wie die Netzwerkkarte heißt:

    ifconfig

    gibt ifconfig eine Fehlermeldung aus, ist es noch nicht installiert, das holt man nach mit:

    apt-get install net-tools und versucht es nochmal mit dem Befehl ifconfig. Die Ausgabe sieht dann ungefähr so aus:

    425c3447-745a-4c8d-9429-bca72b97f0c8-image.png

    Von dieser Ausgabe brauchen wir nur den Namen der Netzwerkkarte z.B ETH0, oder wie in diesem Fall ens18.

    Zuerst „befehlen“ wir, dass unsere „Portumbiegung“ akzeptiert werden soll:

    iptables -I INPUT 1 -p tcp –dport 80 -j ACCEPT

    Dann kommt die eigentliche „Umbiegung“ von Port80 auf Port 8095:

    iptables -A PREROUTING -t nat -i ens18 -p tcp –dport 80 -j REDIRECT –to-port 8095

    Wobei für ens18 evtl. der eigene Name der Netzwerkkarte eingesetzt werden muss (zB. ETH0). Mit diesen 3 schritten wäre die Umbiegung bereits fertig, allerdings nur bis zum nächsten Neustart der Maschine. Deswegen müssen wir das ganze noch „permanent“ machen:

    apt install iptables-persistent

    Damit ist die Port Einrichtung auch schon beendet und wir kommen zu den einfacheren Schritten. Zuerst installieren wir unter Adapter node-red und fügen eine Instanz hinzu....


    In der Konfiguration vom Echo-Hub in Node-Red wird dann der port 8095 eingetragen, durch die "Umbiegung" findet Alexa den Hub aber trotzdem auf Port 80 (siehe Link von oben)

    330a38e6-defe-48d9-b33e-90aa28d93701-image.png

    Auseinander getüddelt hatte ich mir das Ganze von hier (Solution 2)

    https://github.com/datech/node-red-contrib-amazon-echo/wiki/Troubleshooting

    Wenn Du bis da gekommen bist und es dann bei den weiteren Schritten klemmt, sag Bescheid.

    Es ist extrem entspannend unbeteiligt die Diskussionen rund um IOT, Matter, Alexa Skills (v2, v3) mit zu verfolgen und gleichzeitig zu wissen, dass alles weiter funktioniert und weiter funktionieren wird, ohne Gedöns.

    e324a8de-fe04-47c3-82ee-a2432e344413-image.png

    KISS. Was man nicht benutzt, kann auch nicht kaputt gehen.

    S 1 Antwort Letzte Antwort
    0
    • ? Ein ehemaliger Benutzer

      @schnipsel71
      leider verrätst Du ja nicht viel wie weit du kommst, oder wo es hakt.
      Man sieht ja den bewährten Skill "Node-RED Contrib Amazon Echo module", aber auch den Nachfolger "dulonode".
      Wird denn dein Smart-Gerät (Spots) überhaupt bei einer Alexa Suche gefunden? Das wäre ja der erste Schritt. Ich hatte immer Schwierigkeiten (nach jedem iobroker Neustart) das ganze funktionabel zu halten, solange Port 80 benutzt wurde. es musste immer auf der Konsole "erlaubt" werden unterhalb von Port 1000 was zu machen.

      sudo setcap ‚cap_net_bind_service=+ep‘ which node
      

      Leider keine Lösung die "Bootsicher" ist
      Nutze seither einen anderen Port und "biege" mir den Port 80 dahin um.
      Damit Alexa dein Gerät(e) findet, müsste so ein Aufruf funktionieren:

      http://youraddr:80/description.xml
      und so ein Ergebnis liefern:

      fc5a6bec-fd3d-4754-a245-66636ed1ed8e-image.png

      Solange das nicht funktioniert, brauchst du gar nicht weiter machen.
      Hier mal meine alten Notizen, die ich mir mal gemacht hatte:


      Deshalb „biegen wir den Port um“ und zwar von Port 80 auf Port 8095. So schickt das Echo Device die Befehle an Port 80, diese „landen“ aber auf Port 8095. Der hier gezeigte Weg scheint kompliziert und aufwendig, aber nur auf den ersten Blick und ist eigentlich einfach und schnell in 4 Schritten erledigt. Als root User per SSH auf der Iobroker Maschine wird festgestellt wie die Netzwerkkarte heißt:

      ifconfig

      gibt ifconfig eine Fehlermeldung aus, ist es noch nicht installiert, das holt man nach mit:

      apt-get install net-tools und versucht es nochmal mit dem Befehl ifconfig. Die Ausgabe sieht dann ungefähr so aus:

      425c3447-745a-4c8d-9429-bca72b97f0c8-image.png

      Von dieser Ausgabe brauchen wir nur den Namen der Netzwerkkarte z.B ETH0, oder wie in diesem Fall ens18.

      Zuerst „befehlen“ wir, dass unsere „Portumbiegung“ akzeptiert werden soll:

      iptables -I INPUT 1 -p tcp –dport 80 -j ACCEPT

      Dann kommt die eigentliche „Umbiegung“ von Port80 auf Port 8095:

      iptables -A PREROUTING -t nat -i ens18 -p tcp –dport 80 -j REDIRECT –to-port 8095

      Wobei für ens18 evtl. der eigene Name der Netzwerkkarte eingesetzt werden muss (zB. ETH0). Mit diesen 3 schritten wäre die Umbiegung bereits fertig, allerdings nur bis zum nächsten Neustart der Maschine. Deswegen müssen wir das ganze noch „permanent“ machen:

      apt install iptables-persistent

      Damit ist die Port Einrichtung auch schon beendet und wir kommen zu den einfacheren Schritten. Zuerst installieren wir unter Adapter node-red und fügen eine Instanz hinzu....


      In der Konfiguration vom Echo-Hub in Node-Red wird dann der port 8095 eingetragen, durch die "Umbiegung" findet Alexa den Hub aber trotzdem auf Port 80 (siehe Link von oben)

      330a38e6-defe-48d9-b33e-90aa28d93701-image.png

      Auseinander getüddelt hatte ich mir das Ganze von hier (Solution 2)

      https://github.com/datech/node-red-contrib-amazon-echo/wiki/Troubleshooting

      Wenn Du bis da gekommen bist und es dann bei den weiteren Schritten klemmt, sag Bescheid.

      Es ist extrem entspannend unbeteiligt die Diskussionen rund um IOT, Matter, Alexa Skills (v2, v3) mit zu verfolgen und gleichzeitig zu wissen, dass alles weiter funktioniert und weiter funktionieren wird, ohne Gedöns.

      e324a8de-fe04-47c3-82ee-a2432e344413-image.png

      KISS. Was man nicht benutzt, kann auch nicht kaputt gehen.

      S Offline
      S Offline
      schnipsel71
      schrieb am zuletzt editiert von
      #3

      @j_paul Ja, du hast Recht - ich muss noch nachtragen:

      Die Spots kann ich über Alexa erreichen, indem ich beispielsweise sage "Spots aus" oder "Spots an". Aber das Dimmen mit "Spots dimmen auf 30%" funktioniert leider nicht.

      Vielen Dank für den Tipp mit dem Port, aber an dem hängt es anscheinend nicht.

      Hast du noch eine andere Idee?

      ? 1 Antwort Letzte Antwort
      0
      • S schnipsel71

        @j_paul Ja, du hast Recht - ich muss noch nachtragen:

        Die Spots kann ich über Alexa erreichen, indem ich beispielsweise sage "Spots aus" oder "Spots an". Aber das Dimmen mit "Spots dimmen auf 30%" funktioniert leider nicht.

        Vielen Dank für den Tipp mit dem Port, aber an dem hängt es anscheinend nicht.

        Hast du noch eine andere Idee?

        ? Offline
        ? Offline
        Ein ehemaliger Benutzer
        schrieb am zuletzt editiert von
        #4

        @schnipsel71

        542e6318-9ce9-4dab-835e-711b2979ea99-image.png

        Die Funktion fürs dimmen:

        msg.payload = parseInt(msg.bri / 254 * 100);
        return msg;
        

        zum (sicheren) Auschalten hatte ich noch den Switch

        b576db63-8ecb-461e-a8c0-659ee5b0ad3e-image.png

        Mit der angehängten Funktion

        msg.payload = 0;
        return msg;
        

        Sag mal bitte, ob das so klappt.

        S 1 Antwort Letzte Antwort
        0
        • ? Ein ehemaliger Benutzer

          @schnipsel71

          542e6318-9ce9-4dab-835e-711b2979ea99-image.png

          Die Funktion fürs dimmen:

          msg.payload = parseInt(msg.bri / 254 * 100);
          return msg;
          

          zum (sicheren) Auschalten hatte ich noch den Switch

          b576db63-8ecb-461e-a8c0-659ee5b0ad3e-image.png

          Mit der angehängten Funktion

          msg.payload = 0;
          return msg;
          

          Sag mal bitte, ob das so klappt.

          S Offline
          S Offline
          schnipsel71
          schrieb am zuletzt editiert von
          #5

          @j_paul Leider funktioniert das auch nicht. Die Spots schalten immer grundsätzlich auf 50%, gleich welche Zahl ich sage zwischen 1% und 100%. Nur bei 0% schalten die Spots komplett aus. Genauso, wie wenn ich sage "Spots aus".

          ? 1 Antwort Letzte Antwort
          0
          • S schnipsel71

            @j_paul Leider funktioniert das auch nicht. Die Spots schalten immer grundsätzlich auf 50%, gleich welche Zahl ich sage zwischen 1% und 100%. Nur bei 0% schalten die Spots komplett aus. Genauso, wie wenn ich sage "Spots aus".

            ? Offline
            ? Offline
            Ein ehemaliger Benutzer
            schrieb am zuletzt editiert von
            #6

            @schnipsel71
            Könntest du mal (um das Problem einzukreisen) auf einen anderen Datenpunkt lenken? Irgend ein State im 0_User Verzeichnis vom Typ Number würde ja reichen.
            Nur zum Testen mal….

            P 1 Antwort Letzte Antwort
            0
            • ? Ein ehemaliger Benutzer

              @schnipsel71
              Könntest du mal (um das Problem einzukreisen) auf einen anderen Datenpunkt lenken? Irgend ein State im 0_User Verzeichnis vom Typ Number würde ja reichen.
              Nur zum Testen mal….

              P Offline
              P Offline
              peterfido
              schrieb am zuletzt editiert von peterfido
              #7

              @j_paul Alexa kennt den aktuellen Wert nicht. Der wird auf der linken Seite mit Angabe der Node-ID an Alexa gemeldet. Da kommen alle Istwerte hin, damit Alexa weiß, dass der letzte Befehl auch eingetrudelt ist. Die Hilfe zu dem Node gibt da Details zu preis.
              Screenshot_20251029_193146_Vivaldi.jpg

              Ansosnten sollte man auch alle angelernten Geräte in der Alexa-App sehen und steuern können, wenn die Anbindung in Ordnung ist.

              Gruß

              Peterfido


              Proxmox auf Intel NUC12WSHi5
              ioBroker: Debian (VM)
              CCU: Debmatic (VM)
              Influx: Debian (VM)
              Grafana: Debian (VM)
              eBus: Debian (VM)
              Zigbee: Debian (VM) mit zigbee2mqtt

              ? 1 Antwort Letzte Antwort
              0
              • P peterfido

                @j_paul Alexa kennt den aktuellen Wert nicht. Der wird auf der linken Seite mit Angabe der Node-ID an Alexa gemeldet. Da kommen alle Istwerte hin, damit Alexa weiß, dass der letzte Befehl auch eingetrudelt ist. Die Hilfe zu dem Node gibt da Details zu preis.
                Screenshot_20251029_193146_Vivaldi.jpg

                Ansosnten sollte man auch alle angelernten Geräte in der Alexa-App sehen und steuern können, wenn die Anbindung in Ordnung ist.

                ? Offline
                ? Offline
                Ein ehemaliger Benutzer
                schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                #8

                @peterfido
                Weiß jetzt nicht, ob Du den Beitrag nicht richtig gelesen hast, oder wo das Missverständnis herrührt.

                Es geht darum, dass bei @schnipsel71 das Dimmen über die (siehe oben) "Dimm Funktion" nicht funktioniert, bei mir aber schon:
                "Alexa, schalte Kronleuchter auf 18 Prozent"
                wird im Datenpunkt über das "Iobroker-Node-Out" 18 geschrieben, siehe:
                1f0b0275-acb3-4216-abfc-934211ac182b-image.png
                Um auszuschließen, dass etwas externes (Das Gerät von Schnipsel, oder ein Skript o.ä.) den Datenpunkt mit 50 beschreibt, war mein Vorschlag es mal mit einem frisch angelegtem Datenpunkt im 0_Userverzeichnis zu probieren, zum testen/ausschließen.
                @peterfido, zumindest kann ich nicht erkennen, wie Deine Antwort zur Fragestellung passen könnte.
                @schnipsel71 Konntest Du das mal testen?
                und bist du sicher, dass dies in der Dimmer Funktion steht?

                msg.payload = parseInt(msg.bri / 254 * 100);
                return msg;
                
                P S 2 Antworten Letzte Antwort
                0
                • ? Ein ehemaliger Benutzer

                  @peterfido
                  Weiß jetzt nicht, ob Du den Beitrag nicht richtig gelesen hast, oder wo das Missverständnis herrührt.

                  Es geht darum, dass bei @schnipsel71 das Dimmen über die (siehe oben) "Dimm Funktion" nicht funktioniert, bei mir aber schon:
                  "Alexa, schalte Kronleuchter auf 18 Prozent"
                  wird im Datenpunkt über das "Iobroker-Node-Out" 18 geschrieben, siehe:
                  1f0b0275-acb3-4216-abfc-934211ac182b-image.png
                  Um auszuschließen, dass etwas externes (Das Gerät von Schnipsel, oder ein Skript o.ä.) den Datenpunkt mit 50 beschreibt, war mein Vorschlag es mal mit einem frisch angelegtem Datenpunkt im 0_Userverzeichnis zu probieren, zum testen/ausschließen.
                  @peterfido, zumindest kann ich nicht erkennen, wie Deine Antwort zur Fragestellung passen könnte.
                  @schnipsel71 Konntest Du das mal testen?
                  und bist du sicher, dass dies in der Dimmer Funktion steht?

                  msg.payload = parseInt(msg.bri / 254 * 100);
                  return msg;
                  
                  P Offline
                  P Offline
                  peterfido
                  schrieb am zuletzt editiert von peterfido
                  #9

                  @j_paul Zumindest mein Hinweis und der App. Da kann man dann sehen, was tatsächlich bei Alexa ankommt.

                  Zum Testen würde ich einfach ein oder mehrere Inject nehmen, und den Wert manuell vorgeben. Mit einem Debug-Node kann man schauen, was Alexa da sendet. Dafür das komplette Nachrichtenobjekt ausgeben. Wenn das klappt, dann weiterschauen.

                  Ich kann mich erinnern, dass anfangs immer 50% an Alexa gesendet wurden, um den Befehl heller oder dunkler mit fixen Werten zu erkennen. Evtl. nehmen die Spots auch Werte bei bri bis 255 direkt an.

                  Das Zurückmelden des Ist-Zustands an Alexa ist auch notwendig, um die Schalterpositionen in der Alexa App korrekt vorzugeben und einem "reagiert nicht" vorzubeugen.

                  Gruß

                  Peterfido


                  Proxmox auf Intel NUC12WSHi5
                  ioBroker: Debian (VM)
                  CCU: Debmatic (VM)
                  Influx: Debian (VM)
                  Grafana: Debian (VM)
                  eBus: Debian (VM)
                  Zigbee: Debian (VM) mit zigbee2mqtt

                  1 Antwort Letzte Antwort
                  0
                  • ? Ein ehemaliger Benutzer

                    @peterfido
                    Weiß jetzt nicht, ob Du den Beitrag nicht richtig gelesen hast, oder wo das Missverständnis herrührt.

                    Es geht darum, dass bei @schnipsel71 das Dimmen über die (siehe oben) "Dimm Funktion" nicht funktioniert, bei mir aber schon:
                    "Alexa, schalte Kronleuchter auf 18 Prozent"
                    wird im Datenpunkt über das "Iobroker-Node-Out" 18 geschrieben, siehe:
                    1f0b0275-acb3-4216-abfc-934211ac182b-image.png
                    Um auszuschließen, dass etwas externes (Das Gerät von Schnipsel, oder ein Skript o.ä.) den Datenpunkt mit 50 beschreibt, war mein Vorschlag es mal mit einem frisch angelegtem Datenpunkt im 0_Userverzeichnis zu probieren, zum testen/ausschließen.
                    @peterfido, zumindest kann ich nicht erkennen, wie Deine Antwort zur Fragestellung passen könnte.
                    @schnipsel71 Konntest Du das mal testen?
                    und bist du sicher, dass dies in der Dimmer Funktion steht?

                    msg.payload = parseInt(msg.bri / 254 * 100);
                    return msg;
                    
                    S Offline
                    S Offline
                    schnipsel71
                    schrieb am zuletzt editiert von
                    #10

                    @j_paul Leider wird meinem, zu Testzwecken definierten Datenpunkt "Probewert" auch nur 0 oder 50 übergeben.

                    34f40d12-3a1d-4b70-90b9-3f52575f52cf-image.png

                    P 1 Antwort Letzte Antwort
                    0
                    • S schnipsel71

                      @j_paul Leider wird meinem, zu Testzwecken definierten Datenpunkt "Probewert" auch nur 0 oder 50 übergeben.

                      34f40d12-3a1d-4b70-90b9-3f52575f52cf-image.png

                      P Offline
                      P Offline
                      peterfido
                      schrieb am zuletzt editiert von peterfido
                      #11

                      @schnipsel71 Häng mal hinter Spots ein Debug-Node mit der Konfig komplettes Nachrichtenobjekt. Dann Alexa bitten, die Helligkeit auf 33 Prozent zu setzen. Die Ausgabe des Debug-Nodes hier posten.

                      Beispiel: Wenn ich sage, Alexa, Gartenlicht 30 Prozent, kommt Folgendes raus:

                      fb545bab-a095-455b-b86f-ad9759d6bdcb-image.png

                      Meine Rückmeldung an Alexa sieht so aus:

                      bfd627c6-ff85-46e1-9475-0786afab94b2-image.png

                      var nodeid = "idDesNodesGartenLicht";
                      var obj = JSON.parse(msg.payload);
                      var ison=obj.on;
                      var proz=obj.percentage;
                      var hex=obj.rgb;
                      var hell=parseInt(obj.bri*255/100);
                      var color = [];
                      color[0] = parseInt (hex.substring (0, 2), 16);
                      color[1] = parseInt (hex.substring (2, 4), 16);
                      color[2] = parseInt (hex.substring (4, 6), 16);
                      
                      var newMsg={
                          payload: ''
                      }
                      
                      newMsg.payload= {
                          nodeid: nodeid,
                          on: ison,
                          bri: hell,
                          rgb: color
                          }
                      
                      node.status({text:"on: "+ison+", proz:"+proz});
                      return newMsg;
                      

                      Gruß

                      Peterfido


                      Proxmox auf Intel NUC12WSHi5
                      ioBroker: Debian (VM)
                      CCU: Debmatic (VM)
                      Influx: Debian (VM)
                      Grafana: Debian (VM)
                      eBus: Debian (VM)
                      Zigbee: Debian (VM) mit zigbee2mqtt

                      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

                      814

                      Online

                      32.4k

                      Benutzer

                      81.6k

                      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