Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Cloud Dienste
  4. Script "LichtAn": Erkennt von welchem Echo-Gerät Befehl kommt

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    12
    2
    229

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

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

Script "LichtAn": Erkennt von welchem Echo-Gerät Befehl kommt

Script "LichtAn": Erkennt von welchem Echo-Gerät Befehl kommt

Scheduled Pinned Locked Moved Cloud Dienste
104 Posts 24 Posters 25.1k Views 6 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Stefan.Franke
    wrote on last edited by
    #1

    Update

    Mittlerweile hat es Amazon hinbekommen, dass das Licht je Raum (bzw. Echo-Gerät) gesteuert werden kann. Dazu muss man in der App Gruppen anlegen und dann die Echo-Geräte und Lampen in die Gruppe einfügen, die zusammen geschaltet werden sollen. Insofern ist das untenaufgeführte Script für das Thema Licht schalten nur noch in Randfällen nötig (z.B. Schalter, die Alexa nicht als Lampe gemeldet werden), oder wenn man das Lichtschalten um eigene Funktionen erweitern möchte.

    Darüber hinaus kann das Script aber angepasst werden, so dass es Geräte pro Raum steuert, die Amazon bisher noch nicht implementiert hat: Fernseher, Thermostate, Rolladen, Sensoren uvm.

    Dafür muss in der Konfiguration im 3. Punkt der SmartName entsprechend angepasst werden (z.B. "Licht" -> "Fernseher").

    Original:

    Hallo zusammen,

    ich bin neu hier im Forum und auch neu beim ganzen Thema Haussteuerung 😉

    Seit ein paar Tagen habe ich mehrere Echo Dots; außerdem habe ich Fire TV, Harmony, Hue Lampen und vieles mehr an Technikspielzeug. Aber bisher alles einzeln verwendet. Um diesen Fuhrpark nach und nach steuern/verbinden zu können, habe ich mir ioBroker auf einem Pi installiert.

    Die erste Sache, die mir vorschwebte, ist Licht in jedem Raum direkt schalten/dimmen zu können ("Licht An!"). In der Standardkonfiguration kann Alexa das leider nicht (trotz Smart Groups, geht es bei mir nicht). Man muss immer den Raum dazusagen, was auf die Dauer nervig ist.

    Also habe ich mir die APIs angeschaut, ob es eine Möglichkeit gibt, zu erfahren, welches Echo-Gerät angesprochen wurde. Zum Glück hat Amazon diese Funktion in Form der History. Noch bevor Alexa eine Antwort gibt, steht der History-Eintrag der Anfrage über die API zur Verfügung. Man kann ihn also auslesen, wenn in ioBroker das Event ausgelöst wird. Das Event ist das Ändern eines Datenpunkt durch Alexa (in meinem Fall "Licht"). Dazu später mehr.

    Update: Das Script verwendet jetzt in der zweiten Version mein AlexaLogOn Script, womit das Cookie automatisch heruntergeladen werden kann. Das LogOn-Script findet ihr hier: http://forum.iobroker.net/viewtopic.php?f=37&t=9237. Außerdem habe ich jetzt verschiedenes weiteres Feedback eingebaut. Zum einen wird jetzt auch automatisch das Smart-Gerät "Licht" im Cloud Adapter angelegt, zum anderen unterstützt das Script jetzt auch Switch-States, also Geräte, die nur die Werte true/false haben.

    Hier der Code:

    ! ```
    `//------------------------------------------------------------------------------
    // LichtAn
    //------------------------------------------------------------------------------
    // Dieses Script ermöglicht es für Sprachbefehle (wie "Licht an!") zu ermitteln,
    // welches Echo-Gerät angesprochen wurde, und dann nur die Smart Home Geräte
    // (z.B. Lampen) zu aktivieren, die im Script für dieses Echo-Gerät hinterlegt
    // sind. Eine Angabe des Raumes (wie "Licht an im Wohnzimmer!") ist mit dem
    // Script nicht mehr notwendig.
    //
    // Skript arbeitet unabhängig vom Cloud Adapter.
    //
    // Version: v0.5
    // Feedback: http://forum.iobroker.net/viewtopic.php?f=37&t=9115
    ! //------------------------------------------------------------------------------
    // Changelog:
    // v0.5: Unterstützung von Switch-States (true/false)
    // v0.4: Automatisches Anlegen des Smart-Gerät im Cloud Adapter
    // v0.3: Einsatz des require modules
    // v0.2: Nutze Datenpunkt von AlexaLogOn-Script für Cookie
    // v0.1: initialer Release
    ! //------------------------------------------------------------------------------
    // Einrichtung:
    // 1. Starte AlexaLogOn-Script, um LogOn-Cookie zu erhalten.
    //
    // http://forum.iobroker.net/viewtopic.php?f=37&t=9237
    //
    ! var cookie = getState('productive.alexalogon.cookie').val;
    cookie = cookie.replace(/\/g, "");
    ! // 2. Mapping-Tabelle konfigurieren
    //
    // Mapping-Tabelle der Echo-Geräte zu den Smart Home Geräten (z.B. Lampen).
    // Die SerialNr der Echo-Geräte sind in der Alexa-App unter
    // Settings->[Echo-Gerät]->Serial Number (vorletzter Eintrag)
    // zu finden.
    //
    // Die Object-IDs in der Aufzählung "deviceIDs" kommen aus ioBroker und können
    // direkt aus dem Objects-Reiter kopiert werden.
    //
    // Es können mehrere Smart Home Geräte jedem Echo zugeordnet werden. In der
    // Aufzählung "deviceIDs" mit Komma trennen.
    ! var mappingTable = [
    { "deviceSerialNr" : "G040FL60XXXXXXXX", "deviceIDs": ["hue.0.Philips_hue.Wohnzimmer_Stehlampe.level" ] },
    { "deviceSerialNr" : "G080FL20XXXXXXXX", "deviceIDs": ["hue.0.Philips_hue.Bad_Deckenlampe.level" ] }
    ];
    ! // 3. Datenpunkt konfigurieren (optional)
    ! var forecreation = false;
    ! // Wenn gewünscht, Pfad und Name nach eigenen Vorstellungen anpassen.
    var idAlexaTrigger = 'productive.lichtan.alexa_trigger';
    ! // Wenn gewünscht, Name und desc für den Datenpunkt anpassen.
    // Außerdem kann der Smart Name im CloudAdapter angepasst werden.
    createState(idAlexaTrigger, 0, forecreation, {
    name: 'Trigger für Alexa',
    desc: 'Trigger mit Level für Alexa',
    type: 'number',
    unit: '',
    role: 'value',
    smartName: {
    de: 'Licht',
    en: 'Licht'
    }
    });
    ! // 4. Logging konfigurieren (optional)
    //
    // true schreibt in den Log, was das Script macht.
    var logOn = true;
    ! // Ende der Einrichtung.
    // Nachfolgend der eigentliche Source Code des Scripts.
    //------------------------------------------------------------------------------
    ! //------------------------------------------------------------------------------
    // Global Variables
    ! var request = require('request');
    ! //------------------------------------------------------------------------------
    // Funktionen
    ! function main() {

    var options = {
        url : "https://layla.amazon.de/api/activities?startTime=&size=1&offset=1",
        method : "GET",
        headers : {
            'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36',
            'Content-Type': 'text/plain',
            'Accept-Language': 'de,en',
            'DNT' : '1',
            'Connection': 'keep-alive',
            'Upgrade-Insecure-Requests' : '1',
            'Referer' : 'https://layla.amazon.de/spa/index.html/',
            'Cookie' : cookie
        }
    };
    

    ! request.get(options, function(err, res, body){

        // durchsuche Mapping-Table und schalte die verknüpften Geräte
        for (var i = 0; i < mappingTable.length; i++ ) {
            if (body.indexOf(mappingTable[i].deviceSerialNr) != -1 ) {
    
                for (var j = 0; j < mappingTable[i].deviceIDs.length; j++) {
                    if(logOn) log("Set new value for device " + mappingTable[i].deviceIDs[j]);
    
                    var oldValue = "" + getState(mappingTable[i].deviceIDs[j]).val;
                    if(logOn) log("Old Value: " + oldValue);
                    if (oldValue === 'true' || oldValue === 'false') {
                        var newValue = "" + getState("javascript."+instance+"."+idAlexaTrigger).val;
                        if(logOn) log("New Value: " + newValue);
                        if (newValue === '0') {
                            setState(mappingTable[i].deviceIDs[j], false);
                        } else {
                            setState(mappingTable[i].deviceIDs[j], true);
                        }
                    } else {
                        setState(mappingTable[i].deviceIDs[j], getState("javascript."+instance+"."+idAlexaTrigger));
                    }
                }
    
            }
        }
    
    });
    

    }

    ! // Subscriptions
    // -----------------------------------------------------------------------------
    ! on({id: "javascript."+instance+"."+idAlexaTrigger ,change:'any'}, function (obj) {
    if(logOn) log("Alexa Trigger changed: " + obj.state.val);
    main();
    });`
    ! Desweiteren muss man die Verknüpfung von Echo-Gerät und Smart Home Gerät hinterlegen. Sprich, welcher Echo schaltet welche Geräte. Das passiert auch direkt am Anfang des Scripts im Bereich Einrichtung (Punkt 2). Diese Konfiguration könnte man auch automatisch aus den Smart Groups auslesen, was ich bei Interesse noch einbauen könnte. Habe ich jetzt aber erstmal weggelassen.
    ! Es wird automatisch ein Datenpunkt "Trigger für Alexa" erstellt. Dieser kann beliebig benannt werden. Dieser Datenpunkt wird dann über den Cloud-Adapter für Alexa sichtbar gemacht werden. Der Name dort wird automatisch "Licht" genannt. Sage ich also "Alexa, Licht an!", dann wird der Datenpunkt in ioBroker auf den Wert 100 gesetzt. Durch die Subscription auf diesen Datenpunkt, wird das Script gestartet (oder eigentlich die Funktion im Script; das script muss natürlich in der Script-Verwaltung von ioBroker vorher gestartet worden sein).
    ! Das Script liest die History von Alexa aus und kann über die SerialNr des Echos erkennen, welcher angesprochen wurde. Dann muss nur noch in der Mapping-Tabelle nachgeschaut werden, welche Geräte an/ausgeschaltet werden sollen.
    ! Für die Lampen habe ich den Statuswert "level" verwendet, um auch dimmen zu können. Sage ich "Licht an" sendet Alexa 100, aus ist 0, ich kann aber auch Prozentzahlen hinzufügen: "stell das Licht auf 50%". Außerdem geht so auch noch "heller"/"dunkler". Insgesamt also genauso, wie ich mir es vorstelle.
    ! Wie ich anfangs schon geschrieben habe, bin ich noch neu in dem ganzen Thema. Was mir zum Beispiel noch nicht ganz klar ist, wie ioBroker mit den subscription umgeht bzw. wie lange das Script läuft. Ich frage mich, ob ich noch irgendwas anderes tun muss, als es zu starten und dann läuft es für immer? Oder muss ich mit der letzten Zeile im Script Timeouts festlegen und dann per cron wieder neu starten? Würd mich freuen, wenn die Fragen jemand beantworten würde.
    ! Abschließend noch einige Danksagungen. Habe hier im Forum gestern Abend zwei Threads im besonderen hoch und runter gelesen und Code/Struktur/etc in mein Script übernommen:
    ! http://forum.iobroker.net/viewtopic.php?f=37&t=6035 (Script zum Steuern von Echos von rohr70)
    ! http://forum.iobroker.net/viewtopic.php?f=37&t=5943 (Script Template auch von rohr70)
    ! Falls ihr auch mehrere Echos habt, und eine solche Steuerung pro Raum haben wollt, die im Moment mit Smart Groups nicht funktioniert, probiert das Script einfach mal aus.
    ! Freue mich auf Euer Feedback und Anregungen![/i][/i][/i][/i][/i][/i][/i]

    1 Reply Last reply
    0
    • BluefoxB Offline
      BluefoxB Offline
      Bluefox
      wrote on last edited by
      #2

      @Stefan.Franke:

      Hallo zusammen,

      ich bin neu hier im Forum und auch neu beim ganzen Thema Haussteuerung 😉

      Seit ein paar Tagen habe ich mehrere Echo Dots; außerdem habe ich Fire TV, Harmony, Hue Lampen und vieles mehr an Technikspielzeug. Aber bisher alles einzeln verwendet. Um diesen Fuhrpark nach und nach steuern/verbinden zu können, habe ich mir ioBroker auf einem Pi installiert.

      Die erste Sache, die mir vorschwebte, ist Licht in jedem Raum direkt schalten/dimmen zu können ("Licht An!"). In der Standardkonfiguration kann Alexa das leider nicht (trotz Smart Groups, geht es bei mir nicht). Man muss immer den Raum dazusagen, was auf die Dauer nervig ist.

      Also habe ich mir die APIs angeschaut, ob es eine Möglichkeit gibt, zu erfahren, welches Echo-Gerät angesprochen wurde. Zum Glück hat Amazon diese Funktion in Form der History. Noch bevor Alexa eine Antwort gibt, steht der History-Eintrag der Anfrage über die API zur Verfügung. Man kann ihn also auslesen, wenn in ioBroker das Event ausgelöst wird. Das Event ist das Ändern eines Datenpunkt durch Alexa (in meinem Fall "Licht"). Dazu später mehr.

      Hier erstmal der Code:

      ! ```
      `//------------------------------------------------------------------------------
      // LichtAn
      //------------------------------------------------------------------------------
      // Dieses Script ermöglicht es für Sprachbefehle (wie "Licht an!") zu ermitteln,
      // welches Echo-Gerät angesprochen wurde, und dann nur die Smart Home Geräte
      // (z.B. Lampen) zu aktivieren, die im Script für dieses Echo-Gerät hinterlegt
      // sind. Eine Angabe des Raumes (wie "Licht an im Wohnzimmer!") ist mit dem
      // Script nicht mehr notwendig.
      //
      // Skript arbeitet unabhängig vom Cloud Adapter.
      //
      // Version: v0.1
      ! //------------------------------------------------------------------------------
      // Changelog:
      // v0.1: initialer Release
      ! //------------------------------------------------------------------------------
      // Einrichtung:
      // 1. cURL extrahieren, siehe
      // https://www.gehrig.info/alexa/Alexa.html
      //
      ! var csrf = 'xxxxxxxx';
      ! var cookie = 'x-amzn-dat- xxxxxxxxxxxxxx';
      ! // 2. Mapping-Tabelle konfigurieren
      //
      // Mapping-Tabelle der Echo-Geräte zu den Smart Home Geräten (z.B. Lampen).
      // Die SerialNr der Echo-Geräte sind in der Alexa-App unter
      // Settings->[Echo-Gerät]->Serial Number (vorletzter Eintrag)
      // zu finden.
      //
      // Die Object-IDs in der Aufzählung "deviceIDs" kommen aus ioBroker und können
      // direkt aus dem Objects-Reiter kopiert werden.
      //
      // Es können mehrere Smart Home Geräte jedem Echo zugeordnet werden. In der
      // Aufzählung "deviceIDs" mit Komma trennen.
      ! var mappingTable = [
      { "deviceSerialNr" : "G040FL60XXXXXXXX", "deviceIDs": ["hue.0.Philips_hue.Wohnzimmer_Stehlampe.level" ] },
      { "deviceSerialNr" : "G080FL20XXXXXXXX", "deviceIDs": ["hue.0.Philips_hue.Bad_Deckenlampe.level" ] }
      ];
      ! // 3. Datenpunkt konfigurieren (optional)
      //
      // Wenn gewünscht, Pfad und Name nach eigenen Vorstellungen anpassen.
      var idAlexaTrigger = 'productive.lichtan.alexa_trigger';
      ! // Wenn gewünscht, Name und Beschreibung (desc) für den Datenpunkt anpassen.
      createState(idAlexaTrigger, 0, forecreation, {
      name: 'Trigger für Alexa',
      desc: 'Trigger mit Level für Alexa',
      type: 'number',
      unit: '',
      role: 'value'
      });
      ! // Ende der Einrichtung.
      // Nachfolgend der eigentliche Source Code des Scripts.
      //------------------------------------------------------------------------------
      ! //------------------------------------------------------------------------------
      // Global Variables
      ! var logOn = true;
      var forecreation = false;
      ! // Node Module https verwenden
      var https = require('https');
      ! // OPTIONAL: regelmässige Wiederholungen der Abfrage
      // var cronStr = "* */6 * * *";
      ! //------------------------------------------------------------------------------
      // Funktionen
      ! // setzt die Options für den https Request
      function setOptions(path,method) {
      var options = {
      host: 'layla.amazon.de',
      path: path,
      method: method,
      timeout:10000,
      headers: {
      'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36',
      'Content-Type': 'text/plain',
      'csrf' : csrf,
      'Cookie' : cookie
      }
      };
      return options;
      }
      ! // führe den https Request aus und starte callback für Verarbeitung
      function httpsReqGet(path,callback) {
      if(logOn) log("Request " + path + " sent.");
      options = setOptions(path,"GET");
      var req = https.get(options, function getDevices(res) {
      if(logOn) log('HEADERS: ' + JSON.stringify(res.headers));
      // Buffer the body entirely for processing as a whole.
      var body = "";
      ! res.on('data', function(chunk) {
      body += chunk;
      ! });

          res.on('end', function() {
              if(!body) log("No data retrieved.","warn");
              if(logOn) log('BODY: ' + body);
      

      ! if(callback !== undefined && typeof callback === 'function') return callback(null, body);
      ! log("No valid callback.","warn");
      return log(body,"warn");
      });
      ! });
      ! req.on('error', function(e) {
      log('ERROR: ' + e.message,"warn");
      if(callback !== undefined && typeof callback === 'function') return callback(e.message, null);
      log("No valid callback.","warn");
      ok = false;
      return log("error: " + e.message,"warn");
      });
      req.end();
      }
      ! function processHistory (err,result) {
      if (err) {
      log("Error reading Alexa history.","warn");
      log("Error: " + err);
      ok = false;
      return log("No Mapping possible.","warn");
      }

      if(!result) return log("No data retrieved! Cookie incorrect?","warn");
      if(logOn) log(result);
      
      // durchsuche Mapping-Table und schalte die verknüpten Geräte
      for (var i = 0; i < mappingTable.length; i++ ) {
          if (result.indexOf(mappingTable[i].deviceSerialNr) != -1 ) {
              
              for (var j = 0; j < mappingTable[i].deviceIDs.length; j++) {
                  if(logOn) log("Set new value for device " + mappingTable[i].deviceIDs[j]);
                  setState(mappingTable[i].deviceIDs[j], getState("javascript."+instance+"."+idAlexaTrigger));
              }
              
          }
      }
      

      }

      ! // Subscriptions
      // -----------------------------------------------------------------------------
      ! on({id: "javascript."+instance+"."+idAlexaTrigger ,change:'any'}, function (obj) {
      if(logOn) log("Alexa Trigger changed: " + obj.state.val);
      main();
      });
      ! // OPTIONAL: regelmässige Wiederholungen
      // -----------------------------------------------------------------------------
      // Kommentar entfernen, wenn regelmässige Wiederholungen gewünscht sind:
      // schedule(cronStr, main);
      ! // main
      // -----------------------------------------------------------------------------
      function main() {
      httpsReqGet('/api/activities?startTime=&size=1&offset=1', processHistory);
      }
      ! // Start Skript:
      // -----------------------------------------------------------------------------
      ! // Kommentar entfernen, wenn die Abfrage zum Skriptstart ausgeführt werden soll:
      setTimeout(main, 7000); ! Wie bei anderen Scripten zu Alexa auch, muss man csrf und cookie aus dem Browser auslesen und dann ganz oben im Script im Bereich Einrichtung (Punkt 1) eintragen. Ich habe ein Script/Module für FHEM gesehen, dass sich mit Username/Passwort anmelden kann und dann das Cookie automatisch erhält. Sowas wäre natürlich besser, aber vielleicht schafft es Amazon die Funktion in nächster Zeit ohnehin einzubauen, dann bräuchte man das Script -zumindest für Lampen - nicht mehr. Insofern kann ich im moment mit dem Ansatz über Cookie leben. ! Desweiteren muss man die Verknüpfung von Echo-Gerät und Smart Home Gerät hinterlegen. Sprich, welcher Echo schaltet welche Geräte. Das passiert auch direkt am Anfang des Scripts im Bereich Einrichtung (Punkt 2). Diese Konfiguration könnte man auch automatisch aus den Smart Groups auslesen, was ich bei Interesse noch einbauen könnte. Habe ich jetzt aber erstmal weggelassen. ! Es wird automatisch ein Datenpunkt "Trigger für Alexa" erstellt. Dieser kann beliebig benannt werden. Dieser Datenpunkt muss dann über den Cloud-Adapter für Alexa sichtbar gemacht werden. Auch dort ist der Name egal. Dann in der Alexa App nach neuen Geräten suchen. Dann sollte der Schalter in der Liste der Geräte auftauchen. ! Dieses Gerät kann man dann mit Alexa steuern. Ich habe das Gerät "Licht" genannt (in der Alexa App). Sage ich also "Alexa, Licht an!", dann wird der Datenpunkt in ioBroker auf den Wert 100 gesetzt. Durch die Subscription auf diesen Datenpunkt, wird das Script gestartet (oder eigentlich die Funktion im Script; das script muss natürlich in der Script-Verwaltung von ioBroker vorher gestartet worden sein). ! Das Script liest die History von Alexa aus und kann über die SerialNr des Echos erkennen, welcher angesprochen wurde. Dann muss nur noch in der Mapping-Tabelle nachgeschaut werden, welche Geräte an/ausgeschaltet werden sollen. ! Für die Lampen habe ich den Statuswert "level" verwendet, um auch dimmen zu können. Sage ich "Licht an" sendet Alexa 100, aus ist 0, ich kann aber auch Prozentzahlen hinzufügen: "stell das Licht auf 50%". Außerdem geht so auch noch "heller"/"dunkler". Insgesamt also genauso, wie ich mir es vorstelle. ! Wie ich anfangs schon geschrieben habe, bin ich noch neu in dem ganzen Thema. Was mir zum Beispiel noch nicht ganz klar ist, wie ioBroker mit den subscription umgeht bzw. wie lange das Script läuft. Ich frage mich, ob ich noch irgendwas anderes tun muss, als es zu starten und dann läuft es für immer? Oder muss ich mit der letzten Zeile im Script Timeouts festlegen und dann per cron wieder neu starten? Würd mich freuen, wenn die Fragen jemand beantworten würde. ! Abschließend noch einige Danksagungen. Habe hier im Forum gestern Abend zwei Threads im besonderen hoch und runter gelesen und Code/Struktur/etc in mein Script übernommen: ! [http://forum.iobroker.net/viewtopic.php?f=37&amp;t=6035](http://forum.iobroker.net/viewtopic.php?f=37&amp;t=6035) (Script zum Steuern von Echos von rohr70) ! [http://forum.iobroker.net/viewtopic.php?f=37&amp;t=5943](http://forum.iobroker.net/viewtopic.php?f=37&amp;t=5943) (Script Template auch von rohr70) ! Falls ihr auch mehrere Echos habt, und eine solche Steuerung pro Raum haben wollt, die im Moment mit Smart Groups nicht funktioniert, probiert das Script einfach mal aus. ! Freue mich auf Euer Feedback und Anregungen! Sieht sehr interessant aus. :) Wozu braucht man die regelmässige Wiederholungen?[/i][/i][/i][/i] ```

      1 Reply Last reply
      0
      • S Offline
        S Offline
        Stefan.Franke
        wrote on last edited by
        #3

        Das mit den Wiederholungen ist im Script auskommentiert. Also cron.

        War für mich jetzt eher eine Verständnisfrage, ob es ausreicht subscription im Script anzulegen und dann einfach in iobroker das script zu starten? Läuft das Script dann für immer?

        Wenn ja, dann kann setimeout am ende und auch die auskommentierten cron-sachen aus dem script löschen, richtig?

        1 Reply Last reply
        0
        • DutchmanD Offline
          DutchmanD Offline
          Dutchman
          Developer Most Active Administrators
          wrote on last edited by
          #4

          Subscriptions reichen die lösen ja das Script aus eine Art von "lauschen".

          Sieht interessant aus

          –-----------------------

          Send from mobile device

          1 Reply Last reply
          0
          • BluefoxB Offline
            BluefoxB Offline
            Bluefox
            wrote on last edited by
            #5

            Jetzt nur noch rausfinden, wie man über API eine Szene anlegen kann und dann kann das ganze automatisch Laufen.

            Obwohl wenn ich ein Gerät "Licht" erzeuge, dann braucht man keine Szene. Nur noch die Namen von Echo irgendwie finden und dann braucht man gar nichts machen.

            1 Reply Last reply
            0
            • ruhr70R Offline
              ruhr70R Offline
              ruhr70
              wrote on last edited by
              #6

              Top!

              Nach der Funktion wurde hier im Forum schon oft gefragt.

              Jetzt müsste man es "nur" noch hinbekommen, dass das mit der Anmeldung funktioniert und man den Coockie nicht mehr manuell auslesen muss.

              Adapter: Fritzbox, Unify Circuit
              Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

              1 Reply Last reply
              0
              • S Offline
                S Offline
                Stefan.Franke
                wrote on last edited by
                #7

                Danke für die positiven Rückmeldungen!

                Das mit dem Login hatte ich erstmal als nicht so schlimm angesehen, weil Amazon die Funktion für "Licht An" ohnehin in Planung hat.

                Aber mittlerweile habe ich noch ein weiteres Script geschrieben, dass die History nutzt, um den gesprochenen Befehl auszuwerten (so sollte es möglich sein, "an" und "aus" in manchen Situationen nicht sagen zu müssen; werde ich hier veröffentlichen, wenn es fertig ist).

                Soetwas wird Amazon wahrscheinlich nicht in nächster Zeit zur Verfügung stellen, so dass für solche Script die automatische Einwahl wirklich wichtig wird. Insofern werde ich da nochmal genauer recherchieren, wie man das hinkriegen kann.

                1 Reply Last reply
                0
                • B Offline
                  B Offline
                  bz7i
                  wrote on last edited by
                  #8

                  Sauber :!: :!: :!:

                  Funktioniert super…. Danke :mrgreen:

                  1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    Stefan.Franke
                    wrote on last edited by
                    #9

                    Ich habe einen kleinen Bug behoben, der mir beim kopieren von ioBroker ins Forum unterlaufen ist.

                    Die CSRF wird für das Script nicht benötigt, wurde aber noch in dem Script referenziert, was zu einem Fehler führte.

                    1 Reply Last reply
                    0
                    • ruhr70R Offline
                      ruhr70R Offline
                      ruhr70
                      wrote on last edited by
                      #10

                      Danke!

                      Ich habe die aktuelle Version installiert und es funktioniert prima. Etwas Verzögerung gegenüber den direkten Kommandos ist festzustellen.

                      Ich schalte damit auch eine Homematic Komponente mit der Endung .STATE. Funktioniert auch 😉

                      Nicht getestet, aber ich vermute auch der Szenenadapter wird damit funktionieren.

                      Begeistert!

                      Adapter: Fritzbox, Unify Circuit
                      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                      1 Reply Last reply
                      0
                      • ruhr70R Offline
                        ruhr70R Offline
                        ruhr70
                        wrote on last edited by
                        #11

                        OK. Kleine Ergänzung.

                        Daran hatte ich nicht gedacht. .STATE funktioniert. Allerdings meckert logischerweise der Javascript-Adapter:

                        javascript.0	2017-12-07 21:56:53.635	warn	Wrong type of hm-rpc.1.GEQ0134711.1.STATE: "number". Please fix, while deprecated and will not work in next versions.
                        

                        Falls Du Dein Skript noch einmal anpackst…

                        Vielleicht kannst Du prüfen, ob der Datenpunkt .LEVEL ist (dann wird wie bisher gesendet) oder .STATE (z.B. Szenen-Adapter oder Homematic). Und dann true (bei > 0) oder false (bei 0) setzen.

                        Wenn es bei Dir längere Zeit keine Änderungen gibt, bzw. Du da nichts mehr planst, passe ich das bei mir an.

                        Die Zeile

                        // Skript im Forum: http://forum.iobroker.net/posting.php?mode=reply&f=37&t=9115#pr97396
                        
                        

                        habe ich im Kopf des Skripts für mich schon ergänzt 😉

                        Adapter: Fritzbox, Unify Circuit
                        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                        1 Reply Last reply
                        0
                        • ruhr70R Offline
                          ruhr70R Offline
                          ruhr70
                          wrote on last edited by
                          #12

                          @Bluefox:

                          Nur noch die Namen von Echo irgendwie finden und dann braucht man gar nichts machen. `

                          Was meinst DU damit?

                          Die Seriennummern der Echos kann man z.B. mit dem Alexa Kommando Skript auslesen.

                          Adapter: Fritzbox, Unify Circuit
                          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                          1 Reply Last reply
                          0
                          • S Offline
                            S Offline
                            Stefan.Franke
                            wrote on last edited by
                            #13

                            @ruhr70:

                            Falls Du Dein Skript noch einmal anpackst…

                            Vielleicht kannst Du prüfen, ob der Datenpunkt .LEVEL ist (dann wird wie bisher gesendet) oder .STATE (z.B. Szenen-Adapter oder Homematic). Und dann true (bei > 0) oder false (bei 0) setzen.

                            Wenn es bei Dir längere Zeit keine Änderungen gibt, bzw. Du da nichts mehr planst, passe ich das bei mir an.

                            Die Zeile

                            // Skript im Forum: http://forum.iobroker.net/posting.php?mode=reply&f=37&t=9115#pr97396
                            
                            

                            habe ich im Kopf des Skripts für mich schon ergänzt 😉 `

                            OK, kommt in die nächste Version. Hab auch noch einige Aufräumaktionen vor…

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              Stefan.Franke
                              wrote on last edited by
                              #14

                              @ruhr70:

                              OK. Kleine Ergänzung.

                              Daran hatte ich nicht gedacht. .STATE funktioniert. Allerdings meckert logischerweise der Javascript-Adapter:

                              javascript.0	2017-12-07 21:56:53.635	warn	Wrong type of hm-rpc.1.GEQ0134711.1.STATE: "number". Please fix, while deprecated and will not work in next versions.
                              

                              Falls Du Dein Skript noch einmal anpackst…

                              Vielleicht kannst Du prüfen, ob der Datenpunkt .LEVEL ist (dann wird wie bisher gesendet) oder .STATE (z.B. Szenen-Adapter oder Homematic). Und dann true (bei > 0) oder false (bei 0) setzen.

                              Wenn es bei Dir längere Zeit keine Änderungen gibt, bzw. Du da nichts mehr planst, passe ich das bei mir an.

                              Die Zeile

                              // Skript im Forum: http://forum.iobroker.net/posting.php?mode=reply&f=37&t=9115#pr97396
                              
                              

                              habe ich im Kopf des Skripts für mich schon ergänzt 😉 `

                              Habe ich jetzt in der neusten Version alles eingebaut. Probier es mal aus;-)

                              1 Reply Last reply
                              0
                              • ruhr70R Offline
                                ruhr70R Offline
                                ruhr70
                                wrote on last edited by
                                #15

                                @Stefan.Franke:

                                Habe ich jetzt in der neusten Version alles eingebaut. Probier es mal aus;-) `

                                Top! Danke 🙂

                                Adapter: Fritzbox, Unify Circuit
                                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                1 Reply Last reply
                                0
                                • E Offline
                                  E Offline
                                  Erti1337
                                  wrote on last edited by
                                  #16

                                  Ich muss hier einfach mal was dazu sagen :

                                  IHR SEIT BOMBE JUNGS ! 🙂

                                  Weiter so !

                                  1 Reply Last reply
                                  0
                                  • D Offline
                                    D Offline
                                    Dirk
                                    wrote on last edited by
                                    #17

                                    Guten Tag und herzlichen Dank für das Script es funktioniert hervorragend.

                                    Ich habe mehrere Alexa´s die auch "gut" genutzt werden mit dieser Funktion ist es noch etwas einfacher geworden.

                                    Da ja bald Weihnachten ist 🙂 hätte ich noch Ergänzungswünsche.

                                    Ich würde mir wünschen, dass ich bei einem Dimmer (.level) auch noch den Dimmwert mitgeben kann.

                                    Jetzt habe ich das im Cloud-Adapter gelöst - dort auf 65% gestellt. Das gilt dann aber für alle Lampen.

                                    Richtig komfortabel wäre es dann noch wenn man zu unterschiedlichen Zeiten - unterschiedliche Dimmwerte einstellen könnte.

                                    Ich versuch das an einem Beispiel zu erklären:

                                    In unserem Flur haben wir Bewegungsmelder um das Licht an zu schalten. Hier habe ich es jetzt so eingestellt, dass der Dimmwert am Tag bei 70% ist und in der Nacht bei 25%.

                                    Das hat den Vorteil wenn jemand in der Nacht mal auf das WC muss oder sich etwas zu trinken holt - im Flur nicht "Blind" wird, sondern nur eine Beleuchtung hat um den "Weg zu finden".

                                    Hoffe ich konnte das verständlich erklären.

                                    Gruß

                                    Dirk

                                    1 Reply Last reply
                                    0
                                    • S Offline
                                      S Offline
                                      Stefan.Franke
                                      wrote on last edited by
                                      #18

                                      @Dirk:

                                      Guten Tag und herzlichen Dank für das Script es funktioniert hervorragend.

                                      Ich habe mehrere Alexa´s die auch "gut" genutzt werden mit dieser Funktion ist es noch etwas einfacher geworden. `

                                      Freut mich!

                                      @Dirk:

                                      Ich würde mir wünschen, dass ich bei einem Dimmer (.level) auch noch den Dimmwert mitgeben kann.

                                      Jetzt habe ich das im Cloud-Adapter gelöst - dort auf 65% gestellt. Das gilt dann aber für alle Lampen.

                                      Richtig komfortabel wäre es dann noch wenn man zu unterschiedlichen Zeiten - unterschiedliche Dimmwerte einstellen könnte.

                                      Ich versuch das an einem Beispiel zu erklären:

                                      In unserem Flur haben wir Bewegungsmelder um das Licht an zu schalten. Hier habe ich es jetzt so eingestellt, dass der Dimmwert am Tag bei 70% ist und in der Nacht bei 25%.

                                      Das hat den Vorteil wenn jemand in der Nacht mal auf das WC muss oder sich etwas zu trinken holt - im Flur nicht "Blind" wird, sondern nur eine Beleuchtung hat um den "Weg zu finden". `

                                      Soweit verstanden. Wenn Du sagst "Licht An", soll es pro Gerät einen Level geben, der dann genutzt wird. (was jetzt schon geht, ist die %-Zahl mit zu sagen "Licht auf 70%")

                                      Tag und Nacht andere Level zu haben, kann ich nachvollziehen.

                                      Aber wenn Du einen Bewegungsmelder hast, brauchst Du dann überhaupt einen Sprachbefehl dafür?

                                      1 Reply Last reply
                                      0
                                      • D Offline
                                        D Offline
                                        Dirk
                                        wrote on last edited by
                                        #19

                                        @Stefan.Franke:

                                        Soweit verstanden. Wenn Du sagst "Licht An", soll es pro Gerät einen Level geben, der dann genutzt wird. (was jetzt schon geht, ist die %-Zahl mit zu sagen "Licht auf 70%") `

                                        Ja genau richtig. Das ist jetzt ein hoher (vielleicht auch übertriebener) Anspruch aber ich möchte - wenn möglich - auch die % nicht sagen müssen.

                                        @Stefan.Franke:

                                        Tag und Nacht andere Level zu haben, kann ich nachvollziehen.

                                        Aber wenn Du einen Bewegungsmelder hast, brauchst Du dann überhaupt einen Sprachbefehl dafür? `

                                        Einen Bewegungsmelder habe ich nur in den Fluren. Da steht auch kein ECHO. Habe ich nur als Beispiel genutzt.

                                        In den anderen Zimmern stehen ECHOs und keine Bewegungsmelder.

                                        Gruß

                                        Dirk

                                        1 Reply Last reply
                                        0
                                        • N Offline
                                          N Offline
                                          Nepomukl
                                          wrote on last edited by
                                          #20

                                          Guten Abend allerseits,

                                          bin jetzt umgestiegen auf Cloud-Pro, nun möchte das einfache "Licht an" nicht mehr laufen.

                                          Muss da eventuell noch etwas angepasst werden?

                                          Gruß Andreas

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          56

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe