Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    T
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 4
    • Best 0
    • Groups 0

    toto

    @toto

    0
    Reputation
    18
    Profile views
    4
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    toto Follow

    Latest posts made by toto

    • RE: Adapter für Broadlink RM 3 Mini/RM3 Pro - Infrarot/IR

      @Hansi:

      :?:

      Hallo,

      könnte mir eventuell doch jemand auf die Sprünge helfen ??

      Ich kann zwar mit dem RM3 Pro alle Fernbedienungen / Befehle, die ich brauche einlernen, mir ist aber immer noch nicht klar, wie ich die benennen und in den Cloudadapter einbinden muss, damit Alexa ein Gerät (zum Beispiel: Lüfter) ein <u>und</u> aus schalten kann wenn dafür auf der Fernbedienung <u>jeweils eine Taste</u> vorhanden ist.

      Wenn ich den Befehlen verschiedene Namen gebe wie "Lüftung Wohnzimmer" zum einschalten und "keine Lüftung" zum Ausschalten ist das kein Problem. Ich würde aber gerne die ein/aus Funktion von Alexa nutzen also: … schalte die Lüftung im Wohnzimmer ein und ... schalte die Lüftung im Wohnzimmer aus.

      Das bekomme ich aber nur bei Geräten hin, die für ein und aus die gleiche Taste verwenden.

      Hat eventuell jemand einen Tip für mich ??

      :?: `

      Das geht mit Javascript Adapter.

      Hier ein Beispielcode von mir für PC mit Alexa An- bzw. Ausschalten:

      ! ````
      createState("javascript.0.PC1starten", 0); // Generiert beim starten den Datenpunkt, wenn nicht vorhanden
      var wol = require('wake_on_lan'); // Lädt von ioBroker die das nötige Paket
      var myPC1 = "00-23-54-3C-D3-8D"; // MAC definieren
      ! // Ab hier automatisch
      on({id: "javascript.0.PC1starten", change: 'any'},
      ! function (obj) {
      var s = obj.state.val; //Wert vom Objekt abfragen
      log(s);
      if (s === true) {
      wol.wake(myPC1);
      log("Script WOL - PC1 aufgeweckt", "info");

      } else if (s === false) {
      exec ('sudo net rpc SHUTDOWN -C "pc aus" -f -I 192.168.178.51 -U pi%xxxx');

      }
      

      });

      
      Das funktioniert auch mit Broadlink Objekten. Siehe: [http://forum.iobroker.net/viewtopic.php?f=21&amp;t=6182](http://forum.iobroker.net/viewtopic.php?f=21&amp;t=6182)
      posted in Entwicklung
      T
      toto
    • RE: [Gelöst] Schleife langsamer ausführen

      VIELEN DANK ^^ Funktioniert bestens.

      Noch eine Frage nebenbei. Ich habe einen Datenpunkt als Zahl, die Unit habe ich leer gelassen, da nicht nötig. Min 0 Max 100. So kann ich sagen Alexa Stelle Stufe auf 7. Das komische ist, dass dann als Wert 7.0000001 übergeben wird. Aber warum??? Bei 3 ist es genau 3. Habe das im Code mit Math.round gelöst. Kann man einem Objekt im vorraus Nachkommastellen streichen lassen? Ist das mit der 1 am Ende ein Fehler von Alexa oder dem Cloud Adapter?

      Falls noch jemand Infrarot Geräte hat und so ein Code benötigt:

      ! ````
      var Stufe;
      var interval;
      var timer = null;
      var anzahl;
      function CountDownPlus(s) { //Funktion Taste Plus im Abstand 1 Sekunde drücken.
      setState("broadlink.0.learnedSignals.Ventiplus",true);
      s--;
      timer = setInterval(function () {
      if (s > 0) {
      setState("broadlink.0.learnedSignals.Ventiplus",true);
      s--;
      } else {
      if(timer) clearInterval(timer);
      }
      }, 1000);
      }
      ! function CountDownMinus(s) { //Funktion Taste Minus im Abstand 1 Sekunde drücken.
      setState("broadlink.0.learnedSignals.Ventiminus",true);
      s--;
      timer = setInterval(function () {
      if (s > 0) {
      setState("broadlink.0.learnedSignals.Ventiminus",true);
      s--;
      } else {
      if(timer) clearInterval(timer);
      }
      }, 1000);
      }
      ! on({id: "javascript.0.Wind"/javascript.0.Wind/, change: "any"},
      ! function (obj) {
      var x = obj.state.val; //Übergebener Wert von der .Wind ID
      x = Math.round(x); //Nachkommastellen wegkürzen
      Stufe = (getState("javascript.0.Stufe").val); //Aktuelle Stufe
      Stufe = Math.round(Stufe);
      ! if (Stufe < x) {
      anzahl = x - Stufe;
      ! CountDownPlus(anzahl);
      ! Stufe = x;
      setState("javascript.0.Stufe", Stufe); //Neue aktuelle Stufe
      ! } else if (Stufe > x) {
      anzahl = Stufe - x;

      CountDownMinus(anzahl);

      Stufe = x;
      setState("javascript.0.Stufe", Stufe);
      

      }});

      posted in Skripten / Logik
      T
      toto
    • RE: [Gelöst] Schleife langsamer ausführen

      Es soll das gleiche Kommando mehrmals ausgeführt werden. Im Abstand von einer Sekunde. Zeile mit broadlink. Die sendet ein IR Signal zum Ventilator, um die Luftstärke zu erhöhen bzw. niedriger. Habe dazu Variablen die die aktuelle Stufe speichern, so das der Wert ausgerechnet wird für x mal hoch oder runter schalten. Da die while Schleife aber z. B. 5 mal sofort hintereinander sendet, kommt höchstens 3 mal an. Da der Ventilator 10 Stufen hat und ich das mit Alexa steuer, wäre es super die Signale im richtigen Abstand zu senden.

      posted in Skripten / Logik
      T
      toto
    • [Gelöst] Schleife langsamer ausführen

      Hallo,

      ich versuche vergebens eine Schleife langsamer ablaufen zu lassen. In der Schleife wird ein IR Signal gesendet, aber leider so schnell hintereinander dass das Gerät es nicht regestriert.

      Schön wäre das einmal pro Sekunde gedrückt wird. Habe schon geguckt wegen Timeout, aber das bezieht sich wohl eher auf knopf gedrückt x sekunden später ausführen oder?

      Wenn ich versuche die Schleife mit einer Schleife auszubremsen so:

      while (k <= i){

      setState("broadlink.0.learnedSignals.Ventiplus",true);

      for(z = 1;z <= 50000; z++) {}

      k++;

      }

      Dann wird einmal gedrückt, für eine zeit gewartet und dann wieder schnell gedrückt…. also würde die zweite Schleife nur 1 mal ausgeführt.

      Gibt es da eine einfache Lösung?

      posted in Skripten / Logik
      T
      toto
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo