Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Storensteuerung

    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

    Storensteuerung

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      cainam last edited by cainam

      Hallo zusammen
      Ich habe für meinen Wohnzimmerstoren ein Skrypt (in Blockly) gemacht. Grundsätzlich funktioniert es, doch teilweise erhalte ich alle 15min eine Meldung das der Storen auf 100% geöffnet wurde und dann wieder auf 30%... dies wollte ich eigentlich mit der Variabel Auto_ausgelöst verhindern..

      Seht ihr bei meinem Skript fehler / Optimierungsmöglichkeiten

      Danke und Gruss

      Screenshot 2020-07-05 at 23.10.38.png ![alt text](image url)

      als code:

      var timeout5, timeout3, timeout, timeout2, timeout6, Auto_ausgel_C3_B6st, timeout4;
      
      /**
       * Beschreibe diese Funktion …
       */
      function Beschattungsprozess() {
        setState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position"/*Position*/, 29);
        timeout5 = setTimeout(function () {
          setState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position"/*Position*/, 30);
          console.log((['Der linker Storen ist zu: ',getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val,'geöffnet'].join('')));
          Telegrammeldung();
          timeout4 = setTimeout(function () {
            Auto_ausgel_C3_B6st = 1;
            (function () {if (timeout4) {clearTimeout(timeout4); timeout4 = null;}})();
          }, 1800000);
          (function () {if (timeout5) {clearTimeout(timeout5); timeout5 = null;}})();
        }, 60000);
      }
      
      /**
       * Beschreibe diese Funktion …
       */
      function Telegrammeldung() {
        // Mitteilung an Telegram
        timeout3 = setTimeout(function () {
          sendTo("telegram", "send", {
              text: (['Der linke Storen ist zu: ',getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val,'% geöffnet!'].join(''))
          });
          (function () {if (timeout3) {clearTimeout(timeout3); timeout3 = null;}})();
        }, 40000);
      }
      
      /**
       * Beschreibe diese Funktion …
       */
      function Aufmachen_voll() {
        setState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position"/*Position*/, 100);
        console.log((['Der linker Storen ist zu: ',getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val,'geöffnet!'].join('')));
        Telegrammeldung();
        timeout6 = setTimeout(function () {
          Auto_ausgel_C3_B6st = 0;
          (function () {if (timeout6) {clearTimeout(timeout6); timeout6 = null;}})();
        }, 600000);
      }
      
      
      // Manuelle Steuerung
      on({id: "EigeneDatenpunkte.0.Storensteuerung"/*Storensteuerung*/, change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if ((obj.state ? obj.state.val : "") != getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val) {
          setStateDelayed("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position"/*Position*/, (obj.state ? obj.state.val : ""), 2000, false);
          Telegrammeldung();
        }
      });
      
      // Automatische Steuerung bei Sonnenlicht
      on({id: "deconz.0.Sensors.25.lux"/*LightLevel 25 lux*/, change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if ((obj.state ? obj.state.val : "") > 60000 && getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val >= 100 && compareTime("13:30", "18:00", "between") && getState("deconz.0.Sensors.10.temperature").val > 18 && getState("deconz.0.Sensors.13.temperature").val > 23) {
          timeout = setTimeout(function () {
            if ((obj.state ? obj.state.val : "") > 55000 && getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val >= 100 && getState("deconz.0.Sensors.13.temperature").val > 23) {
              Beschattungsprozess();
              (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
            } else {
              (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})();
            }
          }, 300000);
        }
      });
      
      // Automatische Steuerung auf
      on({id: "deconz.0.Sensors.25.lux"/*LightLevel 25 lux*/, change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (Auto_ausgel_C3_B6st == 1 && (obj.state ? obj.state.val : "") < 45000 && getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val != 100) {
          timeout2 = setTimeout(function () {
            if ((obj.state ? obj.state.val : "") < 45000 && getState("shelly.0.SHSW-25#BA6DC5#1.Shutter.Position").val != 100 || compareTime("18:31", "null", ">=")) {
              Aufmachen_voll();
              (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})();
            } else {
              (function () {if (timeout2) {clearTimeout(timeout2); timeout2 = null;}})();
            }
          }, 1200000);
        }
      });
      
      1 Reply Last reply Reply Quote 0
      • First post
        Last post

      Support us

      ioBroker
      Community Adapters
      Donate

      462
      Online

      31.9k
      Users

      80.2k
      Topics

      1.3m
      Posts

      blockly javascript
      1
      1
      184
      Loading More Posts
      • Oldest to Newest
      • Newest to Oldest
      • Most Votes
      Reply
      • Reply as topic
      Log in to reply
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
      The ioBroker Community 2014-2023
      logo