Navigation

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

    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

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

    cpt-pommes

    @cpt-pommes

    Starter

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

    cpt-pommes Follow
    Starter

    Latest posts made by cpt-pommes

    • RE: Thermostat Automatisierung mit mehreren Bedingungen

      @mickym Okay, also es wird ein array als input reduziert anhand der folgenden Funktion. Ich musste zunächst einmal noch verstehen, dass der "or" Operator nur true herausgibt, wenn mindestens einer der Werte true ist, da hat es bei mir noch am Grundwissen gefehlt.

      Habe ein bisschen mit dem Exerciser rumgespielt.

      Die folgende Funktion würde also jeden einzelnen Wert mit allen übrigen vergleichen und sobald eine dieser Kombinationen/Verknüpfungen aus dem kompletten array true ist, true herausgeben? Damit könnte man also auch noch mehr Personen zur Anwesenheitskontrolle hinzufügen und es würde immer die Heizung eingeschaltet werden, sobald mindestens eine Person da ist?

      $reduce (function($i, $j){$i or $j})
      

      Mit dieser hier sollte dann das vorherige Kombinationsergebnis mit dem nächsten Wert verglichen werden, wobei der erste $A undefined ist, da es nur einen Wert gibt, also kein Vergleich möglich.

      $reduce (function($A, $i){$A or $i})
      

      Würde auch so eine Funktion Sinn machen? Habe noch nicht ganz verstanden, wofür $j steht.

      $reduce (function($A, $j){$A or $j})
      

      Noch eine andere Frage: Was bewirkt beim "Zeitfenster Heizen" an Wochentagen die erste change Regel? Also "Setze msg.payload auf/nach []" Wird dadurch soetwas wie ein Vektor erstellt, der dann mit den folgenden Regeln gefüllt wird und für [0],[1],[2],[3] usw wird eine neue Variable hinzugefügt?

      Diese ist super um das ganze mit der CHange Node zu lösen. Wird hier 'minute' dafür herangezogen um den Abgleich anhand der Minuten zu machen? Wenn zB "08:05" dort stehen würde anstatt "08:00" und 'hour' am Ende, dann würde bereits ab 08:01 Uhr false herausgegeben werden?

      [
         $moment().isBetween(
             $moment("06:00", "HH:mm"),
             $moment("08:00", "HH:mm"),
             'minute',
             '[)'
         ),
         $moment().isBetween(
             $moment("11:00", "HH:mm"),
             $moment("13:00", "HH:mm"),
             'minute',
             '[)'
         ),
         $moment().isBetween(
             $moment("18:00", "HH:mm"),
             $moment("23:00", "HH:mm"),
             'minute',
             '[)'
         )
      ]~> $reduce (function($A, $i){$A or $i})
      

      Meine Heizungen machen jedenfalls was sie sollen und ich verstehe so langsam auch warum 😬

      posted in Node-Red
      C
      cpt-pommes
    • RE: Thermostat Automatisierung mit mehreren Bedingungen

      @cpt-pommes Die Funktionen der Nodes sind mir soweit klar. Ich bin im Lightscheduler Flow jedoch über eine Sache gestolpert:

      In der Change-Node "OR ?" wird das Paket der join-Node so aufgetrennt, dass nur true für die Anwesenheit mindestens einer Person herausgegeben wird, ansonsten false.
      Wie ergibt sich das aus der folgenden Zeile ?

      $reduce(payload.*,function($i, $j){$i or $j})
      

      Wofür stehen i und j hierbei?

      Das ganze taucht in dem Standard-Node Flow auch nochmal in ähnlicher Weise auf:

      payload ~> $reduce (function($A, $i){$A or $i})
      

      Hier wird mir die Funktion der Zeile in der Change-Node nicht klar.

      posted in Node-Red
      C
      cpt-pommes
    • RE: Thermostat Automatisierung mit mehreren Bedingungen

      @mickym Danke erstmal für diese ausführliche Antwort und Hilfe! Wie auf dem Silbertablett serviert und dann auch noch Auswahlmöglichkeiten.

      Ich werde mich erstmal daransetzen die einzelnen Möglichkeiten nachzuvollziehen, hätte anfangs nicht gedacht, dass es mit den Standard Nodes doch so übersichtlich möglich ist. Die light-scheduler Nodes sind auch ein super Extra dafür.

      Du hast natürlich recht, wenn ich alles mit der Function-Node mache, geht am Ende der Sinn hinter Node-Red verloren. Ich habe mir das so überlegt, da ich mir allgemein mehr Erfahrungen in Sachen programmieren aneignen möchte, aber die Function-Node ist da wirklich nicht der beste Ansatz.

      Ich werde berichten, ob alles geklappt hat, vielen Dank nochmals!

      posted in Node-Red
      C
      cpt-pommes
    • RE: Thermostat Automatisierung mit mehreren Bedingungen

      @mickym Danke für den Tipp! Ich habe mich mal etwas zum Thema Kontext eingelesen, da ich es vorher noch nicht benutzt habe und ich denke, dass es einiges vereinfachen wird.

      Wie könnte ich es denn am besten handhaben, wenn ich nur bei der Abwesenheit von allen Personen die Heizung herunterfahre und bei allen anderen Zuständen (einer von beiden ist da bzw. beide sind da) hochfahre. Kann ich diese Bedingungen auch gleichzeitig abfragen oder muss das hintereinander passieren?

      posted in Node-Red
      C
      cpt-pommes
    • Thermostat Automatisierung mit mehreren Bedingungen

      Hallo zusammen,

      mein Ziel ist es momentan mittels Node-Red meine Heizkörperthermostate so zu programmieren, dass sie morgens ein- und abends wieder ausschalten und dabei bei zwischen Wochenenden und Arbeitswoche zu unterscheiden. Dafür nutze ich zur Zeit die Inject Nodes als Timer und gebe die Target-Temperature Werte an meine Thermostate weiter. Das funktioniert auch soweit.

      Zusätzlich würde ich nun gerne eine Anwesenheitskontrolle integrieren. Mit der FRITZ!Box-Node bin ich jetzt soweit, dass ich erkenne, sobald die Smartphones von meiner Freundin und mir im WLAN verbunden sind.

      Ich habe nun versucht mit verschiedenen switch und change-Nodes einen Flow zu erstellen, der nun die Zeitabfrage mit der Anwesenheitskontrolle verknüpft und somit die Thermostate steuert, jedoch wird das Ganze mit meinen "Standard" Nodes sehr unübersichtlich und ich habe es nicht geschafft alles nach meinen Vorstellungen funktionsfähig zu kriegen.

      Ich könnte mir gut vorstellen, dass ich mithilfe der function-Node vieles vereinfachen könnte, indem ich dort die Bedingungen hineinschreibe und verknüpfe. Leider habe ich so gut wie keine Progammiererfahrung und habe mich daher noch nicht daran getraut. Es würde mir sehr helfen, wenn jemand beispielhaft ein kleines Script für die function-Node schreiben könnte, welches die oben genannten Bedingungen erfassen kann und mir am Ende als Resultat die gewünschte Soll-Temperatur für die Thermostate rausgibt.

      Gibt es sonst noch einen guten Weg, wie ich mich als Programmieranfänger mit der function-Node vertraut machen kann?

      Gerne gebe ich noch weitere Infos über mein System an, falls das benötigt wird.

      Liebe Grüße
      cpt-pommes

      posted in Node-Red
      C
      cpt-pommes
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo