Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. giessener

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    G
    • Profile
    • Following 0
    • Followers 0
    • Topics 0
    • Posts 3
    • Best 0
    • Groups 1

    giessener

    @giessener

    0
    Reputation
    5
    Profile views
    3
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    giessener Follow
    Starter

    Latest posts made by giessener

    • RE: zigbee bindings

      @holzlenkrad
      Ich habe es jetzt ohne die Bindings im Adapter für mich gelöst. Wenn die Ikea Bulb und die Fernbedienung am Zigbee Netzwerk angelernt ist, kannst du sie trotzdem noch direkt mit der Lampe koppeln (Daneben halten Koppelnknopf drücken). Die FB redet dann direkt mit der Lampe teilt aber den Knopfdruck trotzdem noch dem iobroker mit.
      Einziger Nachteil: Der Status der Lampe wird eben nicht mehr im iobroker gesetzt.
      Hierzu verwende ich ein Polling-Skript auf der Basis von Garfonso. Ich triggere es allerdings über die Tradfri-Fernbedienung.
      Edit: Habe gerade entdeckt, dass der neue Adapter einen Polling Button eingebaut hat. Dieser funktioniert bei mir aber nicht ganz zuverlässig...

      posted in ioBroker Allgemein
      G
      giessener
    • RE: [Vorlage] Anwesenheitssimulation - Script

      Hallo,
      ich habe hierzu eine alternatives Skript für mich gebastelt. Es verwendet keine Zufallszeiten, sondern einfach die Daten aus einem definierten Zeitraum aus der Historyinstanz (bei mir SQL). Fahre ich eine Woche weg, spiele ich einfach die letzte Woche ab und habe damit auch logische Lichtabfolgen. Ich habe es für 10 ids gebaut und es gibt keine Fehlerabfragen. Vielleicht hilft das ja auch jemandem von euch. Meine Scriptingfähigkeiten sind eher so Copy-Paste. Deshalb wiederholt sich hier auch 10mal der Code da ich sonst nicht wusste wie ich die asynchronen Arrays zusammen bekomme. Wer also Ideen zur Verbesserung hat, darf da gerne dran basteln. 😉

      //Das Script lädt eine Liste der Schaltvorgänge der angegebenen Datenpunkte für einen definierten Zeitraum und spielt diese dann nocheinmal ab. 
      
      
      var Zeitspanne = 604800000;                           //Wie weit in der Vergangenheit mit dem Replay begonnen werden soll in ms (Tag:86400000, Woche: 604800000 )
      var id1 ='sonoff.0.EG-KUECHE-Oberschranklicht.POWER';         //ids der zu Schaltenden Geraete
      var id2 ='sonoff.0.EG-KUECHE-Vitrinenlicht.POWER';
      var id3 ='sonoff.0.EG-HWR-Deckenlicht.POWER';
      var id4 ='sonoff.0.EG-FLUR-Deckenlicht.POWER';
      var id5 ='sonoff.0.EG-WZ-Wandlicht.POWER';
      var id6 ='sonoff.0.EG-WZ-Stehlampe.POWER';
      var id7 ='sonoff.0.EG-BAD-Deckenlicht.POWER';
      var id8 ='sonoff.0.OG-FLUR-Deckenlicht.POWER';
      var id9 ='sonoff.0.OG-BAD-Deckenlicht.POWER';
      var id10 ='sonoff.0.OG-OST-Deckenlicht.POWER';
      
      //id1
      var Pause1;
      sendTo('sql.0', 'getHistory', {                 //einlesen der Werte aus der History Instanz. Hier SQL
          id: id1,
          options: {
              start: new Date().getTime() - Zeitspanne,      //Ermitteln ab wann die Daten eingelesen werden sollen
              aggregate:  'onchange'
          }
      }, function (result) {
             
          j = 0;
          function schalten(j) {
              setState(id1 ,result.result[j].val);                                       //Schalten der id mit dem Wert nr j aus der Liste
              j++;
              if (j < result.result.length) {                                             //Falls Ende der Liste erreicht, aufhoeren
                  Pause1 = result.result[j].ts +Zeitspanne- new Date().getTime();          //Pause bis zum naesten Stateupdate berechnen
                  console.log('Zeit bis zum naesten Statusupdate von '+ id1 +' : ' + Pause1 + ' ms');
                  setTimeout (function () {schalten (j);}, Pause1);}                       //wieder aufrufen der Funktion verzoegert um die Pause
          }
          
          schalten (0);
          
      });
      //id2
      var Pause2;
      sendTo('sql.0', 'getHistory', {                 //einlesen der Werte aus der History Instanz. Hier SQL
          id: id2,
          options: {
              start: new Date().getTime() - Zeitspanne,      //Ermitteln ab wann die Daten eingelesen werden sollen
              aggregate:  'onchange'
          }
      }, function (result) {
             
          j = 0;
          function schalten(j) {
              setState(id2 ,result.result[j].val);                                       //Schalten der id mit dem Wert nr j aus der Liste
              j++;
              if (j < result.result.length) {                                             //Falls Ende der Liste erreicht, aufhoeren
                  Pause2 = result.result[j].ts +Zeitspanne- new Date().getTime();          //Pause bis zum naesten Stateupdate berechnen
                  console.log('Zeit bis zum naesten Statusupdate von '+ id2 +' : ' + Pause2 + ' ms');
                  setTimeout (function () {schalten (j);}, Pause2);}                       //wieder aufrufen der Funktion verzoegert um die Pause
          }
          
          schalten (0);
          
      });
      //id3
      var Pause3;
      sendTo('sql.0', 'getHistory', {                 //einlesen der Werte aus der History Instanz. Hier SQL
          id: id3,
          options: {
              start: new Date().getTime() - Zeitspanne,      //Ermitteln ab wann die Daten eingelesen werden sollen
              aggregate:  'onchange'
          }
      }, function (result) {
             
          j = 0;
          function schalten(j) {
              setState(id3 ,result.result[j].val);                                       //Schalten der id mit dem Wert nr j aus der Liste
              j++;
              if (j < result.result.length) {                                             //Falls Ende der Liste erreicht, aufhoeren
                  Pause3 = result.result[j].ts +Zeitspanne- new Date().getTime();          //Pause bis zum naesten Stateupdate berechnen
                  console.log('Zeit bis zum naesten Statusupdate von '+ id3 +' : ' + Pause3 + ' ms');
                  setTimeout (function () {schalten (j);}, Pause3);}                       //wieder aufrufen der Funktion verzoegert um die Pause
          }
          
          schalten (0);
          
      });
      //id4
      var Pause4;
      sendTo('sql.0', 'getHistory', {                 //einlesen der Werte aus der History Instanz. Hier SQL
          id: id4,
          options: {
              start: new Date().getTime() - Zeitspanne,      //Ermitteln ab wann die Daten eingelesen werden sollen
              aggregate:  'onchange'
          }
      }, function (result) {
             
          j = 0;
          function schalten(j) {
              setState(id4 ,result.result[j].val);                                       //Schalten der id mit dem Wert nr j aus der Liste
              j++;
              if (j < result.result.length) {                                             //Falls Ende der Liste erreicht, aufhoeren
                  Pause4 = result.result[j].ts +Zeitspanne- new Date().getTime();          //Pause bis zum naesten Stateupdate berechnen
                  console.log('Zeit bis zum naesten Statusupdate von '+ id4 +' : ' + Pause4 + ' ms');
                  setTimeout (function () {schalten (j);}, Pause4);}                       //wieder aufrufen der Funktion verzoegert um die Pause
          }
          
          schalten (0);
          
      });
      //id5
      var Pause5;
      sendTo('sql.0', 'getHistory', {                 //einlesen der Werte aus der History Instanz. Hier SQL
          id: id5,
          options: {
              start: new Date().getTime() - Zeitspanne,      //Ermitteln ab wann die Daten eingelesen werden sollen
              aggregate:  'onchange'
          }
      }, function (result) {
             
          j = 0;
          function schalten(j) {
              setState(id5 ,result.result[j].val);                                       //Schalten der id mit dem Wert nr j aus der Liste
              j++;
              if (j < result.result.length) {                                             //Falls Ende der Liste erreicht, aufhoeren
                  Pause5 = result.result[j].ts +Zeitspanne- new Date().getTime();          //Pause bis zum naesten Stateupdate berechnen
                  console.log('Zeit bis zum naesten Statusupdate von '+ id5 +' : ' + Pause5 + ' ms');
                  setTimeout (function () {schalten (j);}, Pause5);}                       //wieder aufrufen der Funktion verzoegert um die Pause
          }
          
          schalten (0);
          
      });
      //id6
      var Pause6;
      sendTo('sql.0', 'getHistory', {                 //einlesen der Werte aus der History Instanz. Hier SQL
          id: id6,
          options: {
              start: new Date().getTime() - Zeitspanne,      //Ermitteln ab wann die Daten eingelesen werden sollen
              aggregate:  'onchange'
          }
      }, function (result) {
             
          j = 0;
          function schalten(j) {
              setState(id6 ,result.result[j].val);                                       //Schalten der id mit dem Wert nr j aus der Liste
              j++;
              if (j < result.result.length) {                                             //Falls Ende der Liste erreicht, aufhoeren
                  Pause6 = result.result[j].ts +Zeitspanne- new Date().getTime();          //Pause bis zum naesten Stateupdate berechnen
                  console.log('Zeit bis zum naesten Statusupdate von '+ id6 +' : ' + Pause6 + ' ms');
                  setTimeout (function () {schalten (j);}, Pause6);}                       //wieder aufrufen der Funktion verzoegert um die Pause
          }
          
          schalten (0);
          
      });
      //id7
      var Pause7;
      sendTo('sql.0', 'getHistory', {                 //einlesen der Werte aus der History Instanz. Hier SQL
          id: id7,
          options: {
              start: new Date().getTime() - Zeitspanne,      //Ermitteln ab wann die Daten eingelesen werden sollen
              aggregate:  'onchange'
          }
      }, function (result) {
             
          j = 0;
          function schalten(j) {
              setState(id7 ,result.result[j].val);                                       //Schalten der id mit dem Wert nr j aus der Liste
              j++;
              if (j < result.result.length) {                                             //Falls Ende der Liste erreicht, aufhoeren
                  Pause7 = result.result[j].ts +Zeitspanne- new Date().getTime();          //Pause bis zum naesten Stateupdate berechnen
                  console.log('Zeit bis zum naesten Statusupdate von '+ id7 +' : ' + Pause7 + ' ms');
                  setTimeout (function () {schalten (j);}, Pause7);}                       //wieder aufrufen der Funktion verzoegert um die Pause
          }
          
          schalten (0);
          
      });
      //id8
      var Pause8;
      sendTo('sql.0', 'getHistory', {                 //einlesen der Werte aus der History Instanz. Hier SQL
          id: id8,
          options: {
              start: new Date().getTime() - Zeitspanne,      //Ermitteln ab wann die Daten eingelesen werden sollen
              aggregate:  'onchange'
          }
      }, function (result) {
             
          j = 0;
          function schalten(j) {
              setState(id8 ,result.result[j].val);                                       //Schalten der id mit dem Wert nr j aus der Liste
              j++;
              if (j < result.result.length) {                                             //Falls Ende der Liste erreicht, aufhoeren
                  Pause8 = result.result[j].ts +Zeitspanne- new Date().getTime();          //Pause bis zum naesten Stateupdate berechnen
                  console.log('Zeit bis zum naesten Statusupdate von '+ id8 +' : ' + Pause8 + ' ms');
                  setTimeout (function () {schalten (j);}, Pause8);}                       //wieder aufrufen der Funktion verzoegert um die Pause
          }
          
          schalten (0);
          
      });
      //id9
      var Pause9;
      sendTo('sql.0', 'getHistory', {                 //einlesen der Werte aus der History Instanz. Hier SQL
          id: id9,
          options: {
              start: new Date().getTime() - Zeitspanne,      //Ermitteln ab wann die Daten eingelesen werden sollen
              aggregate:  'onchange'
          }
      }, function (result) {
             
          j = 0;
          function schalten(j) {
              setState(id9 ,result.result[j].val);                                       //Schalten der id mit dem Wert nr j aus der Liste
              j++;
              if (j < result.result.length) {                                             //Falls Ende der Liste erreicht, aufhoeren
                  Pause9 = result.result[j].ts +Zeitspanne- new Date().getTime();          //Pause bis zum naesten Stateupdate berechnen
                  console.log('Zeit bis zum naesten Statusupdate von '+ id9 +' : ' + Pause9 + ' ms');
                  setTimeout (function () {schalten (j);}, Pause9);}                       //wieder aufrufen der Funktion verzoegert um die Pause
          }
          
          schalten (0);
          
      });
      //id10
      var Pause10;
      sendTo('sql.0', 'getHistory', {                 //einlesen der Werte aus der History Instanz. Hier SQL
          id: id10,
          options: {
              start: new Date().getTime() - Zeitspanne,      //Ermitteln ab wann die Daten eingelesen werden sollen
              aggregate:  'onchange'
          }
      }, function (result) {
             
          j = 0;
          function schalten(j) {
              setState(id10 ,result.result[j].val);                                       //Schalten der id mit dem Wert nr j aus der Liste
              j++;
              if (j < result.result.length) {                                             //Falls Ende der Liste erreicht, aufhoeren
                  Pause10 = result.result[j].ts +Zeitspanne- new Date().getTime();          //Pause bis zum naesten Stateupdate berechnen
                  console.log('Zeit bis zum naesten Statusupdate von '+ id10 +' : ' + Pause10 + ' ms');
                  setTimeout (function () {schalten (j);}, Pause10);}                       //wieder aufrufen der Funktion verzoegert um die Pause
          }
          
          schalten (0);
          
      });
      
      posted in Skripten / Logik
      G
      giessener
    • RE: Sonoff Adapter: old client with secret send pingreq

      Das Problem hängt mit dem 2.4.2 core zusammen. Wenn man seine sonoff Version selber compiliert kann man dabei einen anderen core verwenden. Entweder den stabilen 2.3.0 oder den etwas experimentellen 2.5.0.

      Ich hatte das gleiche Problem seit ich (wieder) den 2.3.0 core verwende habe ich keine Probleme mehr.

      posted in Error/Bug
      G
      giessener
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo