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. Mehrere Befehle an Alexa und Hue - wie am besten?

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    299

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.7k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Mehrere Befehle an Alexa und Hue - wie am besten?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
3 Beiträge 2 Kommentatoren 360 Aufrufe 2 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.
  • M Offline
    M Offline
    MarkusMac
    schrieb am zuletzt editiert von
    #1

    Hi, ich habe immer mal wieder Probleme, wenn ich in meinen Skripten mehrere Befehle an Alexa oder Hue schicke und würde gerne mal wissen, was ich da besser machen kann.

    Beispiel 1:
    Ich habe mehrere Echos und möchte beispielsweise auf allen im 1. Stock ein Announcement machen. In meinem Skript habe ich dann:

    setState("alexa2.0.Echo-Devices.xxxxxxxx.Commands.announcement", "irgendein Text");
    setState("alexa2.0.Echo-Devices.yyyyyyyy.Commands.announcement", "irgendein Text");
    setState("alexa2.0.Echo-Devices.zzzzzzzz.Commands.announcement", "irgendein Text");
    

    Manchmal kommt es dann vor, dass nur ein oder zwei der Befehle ausgeführt werden und nicht alle drei Echos das Announcement sprechen. (klar, ich könnte hier die drei Echos zu einer Gruppe zusammenfassen, aber mir geht es ums Prinzip.)

    Beispiel 2:
    Ich habe in drei verschiedenen Zimmern Hue-Strips und sie sollen bei einem bestimmten Ereignis 5 Sekunden lang in einer bestimmten Farbe blinken. Wenn sie vorher eingeschaltet werden, will ich mir das jeweilige Setting merken und nach dem Blinken wiederherstellen. Ich habe dazu eine Funktion geschrieben, die ich für die drei Zimmer aufrufe:

    function blinkHueStrip(room) {
        if (room == "wzVorne") {
            var stripID = "hue.0.Fernsehlicht";
        } else if (room == "wzHinten") {
            var stripID = "hue.0.Wandlicht";
        } else if (room == "büro") {
            var stripID = "hue.0.Schreibtisch";
        } 
    
        var stripOn = getState(stripID+".on").val;
        var stripColormode = getState(stripID+".colormode").val;
        var stripLevel = getState(stripID+".level").val;
      
        if (stripColormode == "ct") {
            var stripCT = getState(stripID+".ct").val;
        } else {
            var stripR = getState(stripID+".r").val;
            var stripB = getState(stripID+".b").val;
            var stripG = getState(stripID+".g").val;
        }
    
        setState(stripID+".command", '{"transitiontime": 0, "ct": 3200, "level":90}');    
        setStateDelayed(stripID+".alert", "lselect", 700, false);
        setStateDelayed(stripID+".alert", "none", 5700, false);
    
        if (stripOn == false) {
            setStateDelayed(stripID+".command", '{"transitiontime": 5, "on":false}', 5750, false); 
        } else {
            if (stripColormode == "ct") {
                setStateDelayed(stripID+".command", '{"transitiontime": 25, "level":' + stripLevel + ', "ct":' + stripCT + '}', 5750, false);    
            } else {
                setStateDelayed(stripID+".command", '{"transitiontime": 25, "level":' + stripLevel + ', "r":' + stripR +', "b":' + stripB +', "g":' + stripG + '}', 5750, false);
            }
        }
    }
    

    In den meisten Fällen funktioniert das, aber immer wieder scheint es so, als werden manche Befehle verschluckt und nicht ausgeführt.

    Ich habe auch schon mit setStateDelayed gearbeitet und die Funktion etwas zeitversetzt für die drei verschiedenen Zimmer aufgerufen, aber das hat nicht wirklich etwas gebracht.

    Wie kann ich das denn besser machen? Wie geht ihr damit um, wenn ihr mehrere Befehle an Alexa oder Hue senden wollt? Hab schon von den asynchronen Befehlen gelesen - kann das vielleicht helfen?

    1 Antwort Letzte Antwort
    0
    • BananaJoeB Online
      BananaJoeB Online
      BananaJoe
      Most Active
      schrieb am zuletzt editiert von
      #2

      @markusmac
      Ich habe das bei mir oft gelöst das ich eher viele kleine Skripte statt einem großen einsetze.

      Also hängt an einem Datenpunkt nicht ein Skript das bei einer Änderung 3 andere Geräte ansteuert sondern 3 Skripte, für jedes Gerät eines (on - Befehl)

      Ja, das widerspricht auch meinem inneren Monk, dafür arbeiten die Skripte parallel. Die Pflege macht das natürlich nicht einfacher.

      Unabhängig davon: Du setzt die Werte in deinen Beispielen nur, versuch es doch mal mit steuern (Acknowledge), eventuell bekommt die andere Seite es sonst nicht richtig mit.

      setState("alexa2.0.Echo-Devices.xxxxxxxx.Commands.announcement", "irgendein Text", true);
      

      So wie ich die Hilfe verstanden habe wird damit ein Adapter aktiv zur Ausführung/Beachtung aufgefordert.

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 10 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV APC 750W kaskadiert || Creality CR-10 SE 3D-Drucker

      M 1 Antwort Letzte Antwort
      0
      • BananaJoeB BananaJoe

        @markusmac
        Ich habe das bei mir oft gelöst das ich eher viele kleine Skripte statt einem großen einsetze.

        Also hängt an einem Datenpunkt nicht ein Skript das bei einer Änderung 3 andere Geräte ansteuert sondern 3 Skripte, für jedes Gerät eines (on - Befehl)

        Ja, das widerspricht auch meinem inneren Monk, dafür arbeiten die Skripte parallel. Die Pflege macht das natürlich nicht einfacher.

        Unabhängig davon: Du setzt die Werte in deinen Beispielen nur, versuch es doch mal mit steuern (Acknowledge), eventuell bekommt die andere Seite es sonst nicht richtig mit.

        setState("alexa2.0.Echo-Devices.xxxxxxxx.Commands.announcement", "irgendein Text", true);
        

        So wie ich die Hilfe verstanden habe wird damit ein Adapter aktiv zur Ausführung/Beachtung aufgefordert.

        M Offline
        M Offline
        MarkusMac
        schrieb am zuletzt editiert von
        #3

        @bananajoe Danke für den Hinweis, das probiere ich mal aus! :-)

        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

        582

        Online

        32.7k

        Benutzer

        82.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