Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Werte verleichen und State in Fis ändern

    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

    Werte verleichen und State in Fis ändern

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

      Hallo,

      Ich bräuchte mal Eure Hilfe. Ich habe ein paar Temperatur/Feuchtigkeits Fühler wobei einer im keller und einer Outdoor installiert ist. Da wir erhöhte Feuchtigkeitswerte im Keller haben möchte ich gerne die Feuchtigkeitswerte der Fühler miteinander vergleichen und wenn der Wert draußen niedriger ist eine Signalisierung in Vis auslösen. In Blockly kann ich ja auch Werte vergleichen. Nur wie erzeuge ich eine Änderung in Vis?

      Danke schon mal.

      1 Reply Last reply Reply Quote 0
      • K
        karstent last edited by

        War dann doch einfacher als gedacht. Habe es hinbekommen. 😄

        1 Reply Last reply Reply Quote 0
        • lobomau
          lobomau last edited by

          Trotzdem zur Sicherheit die Anmerkung: nicht relative Luftfeuchten, sondern nur absolute Luftfeuchten miteinander vergleichen.

          Falls du umrechnen musst in absolute Feuchtigkeit, dazu gibt es hier im Forum ein gutes Script "Raumklima" von Paul53/ruhr70.

          1 Reply Last reply Reply Quote 0
          • K
            karstent last edited by

            Irgendwie scheint es dann doch nicht zu funktionieren. Ha be folgendes Script gebaut:
            4848_01.jpg

            Humidity Keller und Humidity aussen sind die feuchtigkeitswerte die mir der Xiaomi Temp/Feuchtigkeitsmelder ausgibt. "Feuchtigkeit" ist ein Datenpunkt unter Objekte–> Jacascript den ich angelegt habe. Was mir allerdings auffällt sind die Werte die hier ausgegeben werden. Wenn ich mir die Werte unter Objekte --> mihome--> Devices ansehe, sind es nicht sie selben die ich unter anklicken und zuweisen der Objekt ID erhalte. Diese unterscheiden sich um mehrere Prozent. Als würden sie nicht aktualisiert werden. Das ist doch nicht normal, oder?

            Und was zeigt mir das Device den nun an? Absolute oder relative Feuchtigkeit. :shock:

            1 Reply Last reply Reply Quote 0
            • K
              karstent last edited by

              ok, habe mir den Unterschied erlesen. Aber nur noch mal zum Verständnis. Warum sind die Werte andere als unter Objekte?

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

                @karstent:

                Und was zeigt mir das Device den nun an? Absolute oder relative Feuchtigkeit. `
                Das Gerät liefert die relative Feuchtigkeit. Die absolute Feuchtigkeit (Wassergehalt) muss http://www.iobroker.net/docu/?page_id=3651&lang=de werden.
                @karstent:

                Ha be folgendes Script gebaut: `
                In dem Skript werden die IDs der Datenpunkte verglichen, nicht die Werte !

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

                  Anbei ein komplettes Skript, in dem nur die ersten 7 Zeilen und evtl. der Wert für die Höhe über NN angepasst werden müssen. In der Konfiguration der Javascript-Instanz muss unter "Zusätzliche NPM-Module" dewpoint eingetragen werden. Das Modul wird dann automatisch installiert.

                  const idTi = '...'; // Datepunkt-ID Temperatur Keller
                  const idTa = '...'; // Datepunkt-ID Temperatur Aussen
                  const idFi = '...'; // Datepunkt-ID rel. Feuchte Keller
                  const idFa = '...'; // Datepunkt-ID rel. Feuchte Aussen
                  const idVis = '...'; //Datenpunkt-ID für Anzeige "Lüften" in VIS
                  const timin = 10; // minimale Kellertemperatur in °C
                  const timax = 20; // maximale Kellertemperatur in °C
                  
                  const  DP = require('dewpoint');
                  
                  var ti = getState(idTi).val;  // Raumtemperatur in °C
                  var ta = getState(idTa).val;  // Aussentemperatur in °C
                  var fi = getState(idFi).val;  // Raumfeuchte in %rH
                  var fa = getState(idFa).val;  // Aussenfeuchte in %rH
                  
                  // 70 m über NN
                  var xdp = new DP(70); 
                  
                  // Feuchtegehalt berechnen
                  function calcx(t, rh) {
                     var y = xdp.Calc(t, rh);
                     return y.x;
                  }
                  
                  var xi = calcx(ti, fi);  // Feuchtegehalt innen
                  var xa = calcx(ta, fa);  // Feuchtegehalt außen 
                  
                  // Lüftung steuern mit 0,3 g/kg und 0,5 K Hysterese
                  function lueften() {
                     if (xa <= (xi - 0.4) && ti <= (timax - 0.5) && ti >= (timin + 0.5)) {
                        setState(idVis, true, true);
                     }
                     else if (xa >= (xi - 0.1) || ti >= timax || ti <= timin) {
                        setState(idVis, false, true);
                     }	
                  }
                  
                  lueften();  // Skriptstart
                  
                  on(idFi, function (dp) {
                     fi = dp.state.val;
                     xi = calcx(ti, fi);
                     lueften();
                  });
                  
                  on(idFa, function (dp) {
                     fa = dp.state.val;
                     xa = calcx(ta, fa);
                     lueften();
                  });
                  
                  on(idTi, function (dp) {
                     ti = dp.state.val;
                     xi = calcx(ti, fi);
                     lueften();
                  });
                  
                  on(idTa, function (dp) {
                     ta = dp.state.val;
                     xa = calcx(ta, fa);
                     lueften();
                  });
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • K
                    karstent last edited by

                    Danke für Deine Hilfe. Bin gestern beim recherchieren über dein Script gestolpert und habe es auch schon angepasst und in Benutzung. Soweit scheint alles gut zu funktionieren. Das einzige ist das ich die Tabelle in Vis nicht gut angepasst bekomme ist die Json Table in Vis mit der Ausgabe aller Werte. Die passt einfach nicht auf den Screen 😞 Oder gibt es da eine bessere Lösung?

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

                      @karstent:

                      die Tabelle in Vis nicht gut angepasst bekomme ist die Json Table in Vis mit der Ausgabe aller Werte. Die passt einfach nicht auf den Screen 😞 Oder gibt es da eine bessere Lösung? `
                      Die Frage stelle besser unter der Rubrik "VIS Adapter" und poste einen Screenshot der jetzigen Lösung.

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

                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      876
                      Online

                      31.7k
                      Users

                      79.9k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      847
                      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