Navigation

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

    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

    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 5
    • Best 0
    • Groups 1

    ThomasBahn

    @ThomasBahn

    0
    Reputation
    7
    Profile views
    5
    Posts
    0
    Followers
    0
    Following
    Joined Last Online
    Location Heikendorf Age 54

    ThomasBahn Follow
    Starter

    Latest posts made by ThomasBahn

    • RE: KNX-Adapter als Schnittstelle für ETS5

      @Celestine Nein, ich denke nicht, dass man aus der ETS5 (Software) auf den KNX-Adapter (Modul im ioBroker-Server) zugreifen kann. Was würdest du denn gerne machen?

      Für mich funktioniert dieser Weg:
      Ich erstelle in der ETS5 mein Projekt.
      Dann exportiere ich aus der ETS5 das Projekt als knxproj-Datei.
      In ioBroker habe ich den KNX-Adapter installiert und eine Instanz knx.0 erzeugt.
      Lizenz für den KNX-Adapter besorgt und eingetragen.
      Wenn man in der knx-Instanz auf die Eigenschaften geht, kann man die knxproj-Datei importieren.
      Dabei werden unter knx.0 Objekte für die Gruppenadressen erstellt.

      Jetzt kann man auf diese knx-Objekte z. B. aus Blockly zugreifen:
      Trigger definieren, so dass ein Block ausgeführt wird, wenn auf dem KNX-Bus eine Nachricht verschickt mit einer bestimmten Gruppenadresse verschickt wird, oder
      den Wert eines knx-Objekts ändern, so dass eine Nachricht für die zugehörige Gruppenadresse auf den KNX-Bus geschickt wird.

      posted in ioBroker Allgemein
      ThomasBahn
      ThomasBahn
    • RE: Blockly Logik verstehen

      @tcfigge Vielleicht solltest du die Variable "vorheriger Wert" am Ende - also noch im Falls Objekt-Block, nach dem falls/mache-Block - auf den aktuellen Wert setzen.

      Und wenn das Skript startet, könntest du "vorheriger Wert" noch mit dem aktuellen Helligkeitswert initialisieren.

      posted in Skripten / Logik
      ThomasBahn
      ThomasBahn
    • RE: clearInterval funktioniert nicht

      Da das Problem nicht mehr auftritt, gehe ich davon aus, dass es nichts Systematisches war. Falls es wieder passieren sollte, mache ich das Thema hier wieder auf.

      posted in Blockly
      ThomasBahn
      ThomasBahn
    • RE: clearInterval funktioniert nicht

      Ich habe zum X-ten Male die Script-Engine durchgestartet (hat nie etwas gebracht - nur die vielen Log-Ausgaben von all den noch laufenden Intervallen nerven mit der Zeit) 😉

      Jetzt plötzlich schein alles zu funktionieren?!?

      posted in Blockly
      ThomasBahn
      ThomasBahn
    • clearInterval funktioniert nicht

      Hat jemand (in der aktuellen Version) ein Blockly-Script am laufen, wo das Intervall mit clearInterval wirklich beendet wird?

      Es geht darum, dass ich mich warnen lassen möchte, wenn ich vergessen sollte, das Garagentor zu schließen. Dazu soll nach dem Öffnen des Garagentors (wenn der Status sich ändert und nicht mehr = 1 = vollständig geschlossen ist) ein 20 min-Intervall starten und mir per Telegram eine Nachricht schicken. Wenn das Tor wieder vollständig geschlossen wurde, soll das Intervall natürlich gelöscht werden.

      Den Block rechts Mitte habe ich später noch ergänzt, weil er direkt auf das KNX-Event reagiert statt über den Status-Code im Virtual Device. Hat aber keine Verbesserung gebracht.

      Script Engine ist Version 4.3.3 (heute aktuellste Version im Latest).

      8b76c6f1-d14f-42f5-9376-81d14b71b664-grafik.png

      bzw. das erzeugte JavaScript:

      var counter, Intervall;
      
      on({id: 'virtual-devices.0.garage-door.control.state-code', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        counter = (typeof counter == 'number' ? counter : 0) + 1;
        console.log((['state-code wurde geändert in: ',getState("virtual-devices.0.garage-door.control.state-code").val,', counter: ',counter].join('')));
        if (getState("virtual-devices.0.garage-door.control.state-code").val == 1) {
          (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
          console.log('Garagentor wurde eben geschlossen, deaktiviere intervall');
          sendTo("telegram.0", "send", {
              text: 'Garagentor wurde eben geschlossen, deaktiviere intervall',
              chatId: '-**********',
              disable_notification: true
          });
        } else {
          Intervall = setInterval(function () {
            console.log((['Starte Schleifendurchlauf, state-code:',getState("virtual-devices.0.garage-door.control.state-code").val,', counter: ',counter].join('')));
            if (getState("virtual-devices.0.garage-door.control.state-code").val == 1) {
              (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
              console.log('Garagentor ist nicht mehr offen, deaktiviere intervall');
              sendTo("telegram.0", "send", {
                  text: 'Garagentor ist nicht mehr offen',
                  chatId: '-**********',
                  disable_notification: true
              });
            } else {
              console.log('Garagentor ist noch offen');
              sendTo("telegram.0", "send", {
                  text: 'Garagentor ist noch offen',
                  user: '**********'
              });
              console.log("telegram['ThomasBahn']: " + 'Garagentor ist noch offen');
              sendTo("telegram.0", "send", {
                  text: 'Garagentor ist noch offen',
                  chatId: '-**********'
              });
            }
          }, 1200000);
        }
      });
      
      counter = 0;
      console.log(('counter: ' + String(counter)));
      
      on({id: "knx.0.Tore.Tore_EG.TK-A2b_IST_UNTEN_Garagentor"/*TK-A2b IST UNTEN Garagentor*/, val: true}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        (function () {if (Intervall) {clearInterval(Intervall); Intervall = null;}})();
        console.log('Garagentor wurde gerade vollständig geschlossen, deaktiviere intervall');
      });
      
      posted in Blockly
      ThomasBahn
      ThomasBahn
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo