Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Trigger auf zwei Datenpunkte

    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

    Trigger auf zwei Datenpunkte

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

      Hi, ich versuche aktuell einen Lüfter (Heizkörperbooster) im Bad anzusteuern. Das klappt im Grunde ganz gut, aber ich möchte den gerne auf zwei verschiedene Ereignisse triggern.
      Allerdings habe ich keine so wirkliche Ahnung wie das in Blockly gehen kann.
      Mein Entwurf sieht so aus:
      TriggerBad.jpg
      Oder umgesetzt auf JS:

      on({ id: [].concat(['fritzdect.0.DECT_099950744271.tist']), change: 'ne' }, async (obj) => {
       let value = obj.state.val;
       let oldValue = obj.oldState.val;
       if (getState('fritzdect.0.DECT_099950744271.tist').val > getState('fritzdect.0.DECT_099950744271.tsoll').val) {
         setState('sonoff.0.LuefterBad.POWER' /* LuefterBad POWER */, false);
       } else if (getState('fritzdect.0.DECT_099950744271.tist').val <= getState('fritzdect.0.DECT_099950744271.tsoll').val) {
         setState('sonoff.0.LuefterBad.POWER' /* LuefterBad POWER */, true);
       }
      });
      on({ id: 'fritzdect.0.DECT_099950744271.boostactive' /* Boost active status and cmd */, change: 'ne' }, async (obj) => {
       let value = obj.state.val;
       let oldValue = obj.oldState.val;
       if (getState('fritzdect.0.DECT_099950744271.boostactive').val == false) {
         setState('sonoff.0.LuefterBad.POWER' /* LuefterBad POWER */, false);
       } else if (getState('fritzdect.0.DECT_099950744271.boostactive').val == true) {
         setState('sonoff.0.LuefterBad.POWER' /* LuefterBad POWER */, true);
       }
      });
      

      Bei der Konfiguration ist es ja so, dass sich die Steuerbefehle aufheben würden. Also wenn der "Boost" Datenpunkt auf "false" geht geht der Lüfter aus, unabhängig davon was der Temeraturdatenpunkt ergibt.
      Wie kann ich eine "oder" Abfrage realisieren? Ich bin entweder zu blöd das zu suchen oder der Punkt ist da versteckt wo ich bisher noch nicht nachgeschaut habe.

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @Chaot last edited by

        @chaot sagte: Wie kann ich eine "oder" Abfrage realisieren?

        Was soll per "oder" verknüpft werden? Temperatur < Sollwert ODER Boost?

        Blockly_temp.JPG

        Chaot 1 Reply Last reply Reply Quote 0
        • Chaot
          Chaot @paul53 last edited by

          @paul53 Bei Boot wird der Sollwert nicht verändert.
          Ich müsste also prüfen ob "Boost" geschaltet wurde und dann den Lüfter steuern. Wenn kein "Boost" dann per Temperaturdifferenz.

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @Chaot last edited by paul53

            @chaot sagte: ob "Boost" geschaltet wurde und dann den Lüfter steuern. Wenn kein "Boost" dann per Temperaturdifferenz.

            Genau das passiert in dem gezeigten Blockly. Nach Skriptstart muss sich allerdings erst ein Trigger-Wert ändern.

            EDIT: So wird auch bei Skriptstart geprüft und geschaltet:

            Blockly_temp.JPG

            Chaot 1 Reply Last reply Reply Quote 0
            • Chaot
              Chaot @paul53 last edited by Chaot

              @paul53 Danke für die Hilfestellung.
              Ich habe noch ein Verständnisproblem.
              Der Wert Boost ist true oder false, bei Temperatur oder Sollwert steht eine Zahl.
              In die Variable Luefter schreibe ich doch dann entweder eine Zahl oder einem Wert und den schreibe ich dann in den Datenpunkt Lüfter, der true oder false erwartet. Stimmt das so oder mache ich da einen Denkfehler?
              Das Script läuft übrigens.

              Ach, und noch eine Frage. Woher bekomme den Block "boost" aus deinem letzten Bild?

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @Chaot last edited by paul53

                @chaot sagte: In die Variable Luefter schreibe ich doch dann entweder eine Zahl oder einem Wert

                Das Ergebnis eines Vergleichs und somit auch der Oder-Verknüpfung ist false oder true, wird also in den Lüfter-DP geschrieben.

                Chaot 1 Reply Last reply Reply Quote 0
                • Chaot
                  Chaot @paul53 last edited by

                  @paul53 Ah! Jetzt hat es Klick gemacht.
                  Ganz herzlichen Dank für deine Hilfe.

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  873
                  Online

                  31.9k
                  Users

                  80.2k
                  Topics

                  1.3m
                  Posts

                  blockly heating javascript ventilation
                  2
                  7
                  283
                  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