Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Skript] Absolute Feuchte berechnen

    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

    [Skript] Absolute Feuchte berechnen

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

      So viele Datenpunkte 😉

      Bei den Datenpunkten für die Einzelbedingungen ist keine Hysterese berücksichtigt:

          setState(idLueftenB1,b1lp);
          setState(idLueftenB2,b2lp);
          setState(idLueftenB3,b3lp);
      
      

      Wenn man schon einzelne Datenpunkte (als Speicher) hat, kann man die Gesamtlüftungsbedingung auch zusammenfassen:

      // Initialisierung bei Script start
      var b1 = getState(idLueftenB1).val;
      var b2 = getState(idLueftenB2).val;
      var b3 = getState(idLueftenB3).val;
      
      function calc(raum) {
      	...
      	var lastb = b1;
      	if(xa <= (xi - 0.4)) b1 = true;
      	else if(xa >= (xi - 0.1)) b1 = false;
      	(if lastb != b1) setState(idLueftenB1, b1);
      
      	lastb = b2;
      	if(ta <= (ti - 0.6)) b2 = true;
      	else if(ta >= (ti - 0.1)) b2 = false;
      	(if lastb != b2) setState(idLueftenB2, b2);
      
      	lastb = b3;
      	if(ti >= mih) b3 = true;
      	else if(ti <= mit) b3 = false;
      	(if lastb != b3) setState(idLueftenB3, b3);
      
      	if(b1 && b2 && b3) setState(idLueften, true);
      	else setState(idLueften, false);
      	...
      
      
      1 Reply Last reply Reply Quote 0
      • eric2905
        eric2905 last edited by

        @simpixo:

        aber warum erhalte ich denn diese Warnung. Der Aussensensor ist belegt, da nutze ich das Objekt des Netatmo Adapters… `
        Weil Du zum Aussensensor "weatherunderground" keinen Aussensensor angegeben hast (was ja auch logisch ist).

        Gleiches gilt für den anderen Aussensensor ("Aussen").

        Ist nur ein Hinweis, das für diese beiden Sensoren kein Aussensenor definiert wurde und diese daher als Aussensensor genommen werden.

        Alles gut. 😄

        Gruß,

        Eric

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

          @paul53:

          So viele Datenpunkte 😉

          Bei den Datenpunkten für die Einzelbedingungen ist keine Hysterese berücksichtigt:

              setState(idLueftenB1,b1lp);
              setState(idLueftenB2,b2lp);
              setState(idLueftenB3,b3lp);
          
          

          Wenn man schon einzelne Datenpunkte (als Speicher) hat, kann man die Gesamtlüftungsbedingung auch zusammenfassen:

          // Initialisierung bei Script start
          var b1 = getState(idLueftenB1).val;
          var b2 = getState(idLueftenB2).val;
          var b3 = getState(idLueftenB3).val;
          
          function calc(raum) {
          	...
          	var lastb = b1;
          	if(xa <= (xi - 0.4)) b1 = true;
          	else if(xa >= (xi - 0.1)) b1 = false;
          	(if lastb != b1) setState(idLueftenB1, b1);
          	
          	lastb = b2;
          	if(ta <= (ti - 0.6)) b2 = true;
          	else if(ta >= (ti - 0.1)) b2 = false;
          	(if lastb != b2) setState(idLueftenB2, b2);
          
          	lastb = b3;
          	if(ti >= mih) b3 = true;
          	else if(ti <= mit) b3 = false;
          	(if lastb != b3) setState(idLueftenB3, b3);
          
          	if(b1 && b2 && b3) setState(idLueften, true);
          	else setState(idLueften, false);
          	...
          
          ```` `  
          

          Hallo Paul,

          danke für Deinen Hinweis.

          Die Datenpunkte waren bewusst so angelegt. So wie die drei Bedingungen, die in Deiner Formel erfüllt werden müssen, um zu sehen, welche Bedingung fürs lüften erfüllt sind und welche nicht (so wie im Log bei der Debug Ausgabe). Eigentlich wollte ich noch die drei "oder"-Bedingungen für "nicht lüften" mit ausgeben, dann wäre es klar gewesen.

          Du hast recht. Ohne diese Info sieht es nur ein Eingeweiter. Ich hatte mir eigentlich gedacht, dass man anhand der Punkte sieht, warum es keine Lüftungsempfehlung gibt (welche der Punkte Fälle ist).

          Der Gedanke von Dir macht natürlich absolut Sinn, dass man drei Einzelwerten inkl. hysterese hat.

          Ich schaue mir das an, wenn ich zurück bin.Entweder die Punkte fürs lüften und die Punkte dagegen. Oder wie in Deinem Beispiel nur die Einzelpunkte inkl. Hysterese.

          Gruß.

          Michael

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

            @ruhr70:

            …dass man anhand der Punkte sieht, warum es keine Lüftungsempfehlung gibt

            Wenn die Einzelbedingungen ohne Hysterese angezeigt werden, die Lüftungsempfehlung aber mit Hysterese, passiert es, dass alle Einzelbedingungen "nicht lüften" anzeigen, die Gesamtempfehlung aber "lüften". Das ist ein Widerspruch, der mit Sicherheit Fragen bei den Nutzern provoziert.

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

              @eric2905:

              // Auskühlschutz, 0,5 Grad Hysterese. Tiefer darf die Innentemperatur nciht sinken
              var mih = mi + 0.25; // Temperaturmindestwert hoch
              var mit = mi - 0.25; // Temperaturmindestwert tief

              Die Aussage im Kommentar passt nicht zum Programm, denn mi enthält die Mindestraumtemperatur. Besser:

                  // Auskühlschutz, 0,5 Grad Hysterese. Tiefer darf die Innentemperatur nicht sinken
                  var mih = mi + 0.5;   // Temperaturmindestwert hoch
                  var mit = mi;         // Temperaturmindestwert tief
              
              
              1 Reply Last reply Reply Quote 0
              • ruhr70
                ruhr70 last edited by

                Ja, stimmt. Wird geändert.

                Danke, dass Du mit drauf guckst! 🙂

                1 Reply Last reply Reply Quote 0
                • D
                  DiJaexxl last edited by

                  Hallo zusammen,

                  bei mir wird die Java Instanz abgeschaltet :oops:

                  Mein Log

                  ! host-ioBroker 2016-06-18 17:54:58.770 info Restart adapter system.adapter.javascript.0 because enabled
                  ! host-ioBroker 2016-06-18 17:54:58.769 error instance system.adapter.javascript.0 terminated with code 0 (OK)
                  ! javascript-0 2016-06-18 17:54:58.676 info script.js.Test.Lüften: –---- Wohnzimmer ------- Aussensensor: Aussen -----------
                  ! javascript-0 2016-06-18 17:54:58.676 info script.js.Test.Lüften: Wohnzimmer, ti:21.8, ta: 17.4, xi:10.25, xa: 10.2, mih:18.25, mit:17.75
                  ! javascript-0 2016-06-18 17:54:58.676 info script.js.Test.Lüften: Wohnzimmer: Lüftungsempfehlung (alle Bedingungen auf true):
                  ! javascript-0 2016-06-18 17:54:58.675 info script.js.Test.Lüften: Wohnzimmer:false Außenluft ist mind. 0,4° trockener als Innen (b1lp): xa: 10.2 <= (xi - 0.4) 9.85
                  ! javascript-0 2016-06-18 17:54:58.675 info script.js.Test.Lüften: Wohnzimmer:true Außentemperatur ist mindestens 0,6 Grad kühler als innen (b2lp):
                  ! javascript-0 2016-06-18 17:54:58.675 info script.js.Test.Lüften: Wohnzimmer:true Innentemperatur ist höher als die Mindesttemperatur (b3lp):
                  ! javascript-0 2016-06-18 17:54:58.675 info script.js.Test.Lüften: Wohnzimmer: Fenster zu (ein true reicht):
                  ! javascript-0 2016-06-18 17:54:58.675 info script.js.Test.Lüften: Wohnzimmer:true Außenluft ist zu feucht (b1ln): : xa: 10.2 >= (xi - 0.1) 10.15
                  ! javascript-0 2016-06-18 17:54:58.674 info script.js.Test.Lüften: Wohnzimmer:false Außentemperatur zu warm (b2ln):
                  ! javascript-0 2016-06-18 17:54:58.674 info script.js.Test.Lüften: Wohnzimmer:false Außenluft ist zu feucht (b3ln):
                  ! javascript-0 2016-06-18 17:54:58.674 info script.js.Test.Lüften: Wohnzimmer: Empfehlung Fenster zu
                  ! javascript-0 2016-06-18 17:54:58.671 info script.js.Test.Lüften: ------ Schlafzimmer ------- Aussensensor: Aussen -----------
                  ! javascript-0 2016-06-18 17:54:58.671 info script.js.Test.Lüften: Schlafzimmer, ti:21.3, ta: 17.4, xi:10.1, xa: 10.2, mih:18.25, mit:17.75
                  ! javascript-0 2016-06-18 17:54:58.671 info script.js.Test.Lüften: Schlafzimmer: Lüftungsempfehlung (alle Bedingungen auf true):
                  ! javascript-0 2016-06-18 17:54:58.670 info script.js.Test.Lüften: Schlafzimmer:false Außenluft ist mind. 0,4° trockener als Innen (b1lp): xa: 10.2 <= (xi - 0.4) 9.7
                  ! javascript-0 2016-06-18 17:54:58.670 info script.js.Test.Lüften: Schlafzimmer:true Außentemperatur ist mindestens 0,6 Grad kühler als innen (b2lp):
                  ! javascript-0 2016-06-18 17:54:58.669 info script.js.Test.Lüften: Schlafzimmer:true Innentemperatur ist höher als die Mindesttemperatur (b3lp):
                  ! javascript-0 2016-06-18 17:54:58.669 info script.js.Test.Lüften: Schlafzimmer: Fenster zu (ein true reicht):
                  ! javascript-0 2016-06-18 17:54:58.668 info script.js.Test.Lüften: Schlafzimmer:true Außenluft ist zu feucht (b1ln): : xa: 10.2 >= (xi - 0.1) 10
                  ! javascript-0 2016-06-18 17:54:58.668 info script.js.Test.Lüften: Schlafzimmer:false Außentemperatur zu warm (b2ln):
                  ! javascript-0 2016-06-18 17:54:58.667 info script.js.Test.Lüften: Schlafzimmer:false Außenluft ist zu feucht (b3ln):
                  ! javascript-0 2016-06-18 17:54:58.665 info script.js.Test.Lüften: Schlafzimmer: Empfehlung Fenster zu
                  ! TypeError: 2016-06-18 17:54:58.651 error at Timer.listOnTimeout (timers.js:92:15)
                  ! TypeError: 2016-06-18 17:54:58.651 error at ontimeout [as _onTimeout] (timers.js:209:34)
                  ! TypeError: 2016-06-18 17:54:58.651 error at null. (/opt/iobroker/node_modules/iobroker.javascript/javascript.js:1800:44)
                  ! TypeError: 2016-06-18 17:54:58.651 error at Object. (script.js.Test.Lüften:913:9)
                  ! TypeError: 2016-06-18 17:54:58.651 error at calc (script.js.Test.Lüften:644:57)
                  ! TypeError: 2016-06-18 17:54:58.651 error Cannot read property 'val' of null
                  ! uncaught 2016-06-18 17:54:58.632 error exception: Cannot read property 'val' of null
                  ! javascript-0 2016-06-18 17:54:58.620 warn State "weatherunderground.0.current.temp_c" not found
                  ! javascript-0 2016-06-18 17:54:58.614 info script.js.Test.Lüften: –---- Aussen ------- Aussen, keine Lüftungsempfehlung -----------
                  ! javascript-0 2016-06-18 17:54:56.108 info script.js.Test.Lüften: Subscriptions angelegt: 8

                  Komisch

                  Meine Konfig:

                  ! var raeume = { // Keine Leerzeichen (Name wird als Datenpunktname verwendet!)
                  ! // Sensoren Aussen
                  ! "Aussen" : {
                  ! "Sensor_TEMP" : "hm-rpc.0.LEQ0801229.1.TEMPERATURE"/Aussentemp Balkon:1.TEMPERATURE/,
                  ! "Sensor_HUM" : "hm-rpc.0.LEQ0801229.1.HUMIDITY"/Aussentemp Balkon:1.HUMIDITY/,
                  ! "Sensor_TEMP_OFFSET" : 0.0,
                  ! "Sensor_HUM_OFFSET" : 0
                  ! },
                  ! "weatherunderground" : {
                  ! "Sensor_TEMP" : "weatherunderground.0.current.temp_c"/Temperature/,
                  ! "Sensor_HUM" : "weatherunderground.0.current.relative_humidity"/Relative humidity/,
                  ! "Sensor_TEMP_OFFSET" : 0.0,
                  ! "Sensor_HUM_OFFSET" : 0
                  ! },
                  ! // Sensoren Innen
                  ! "Schlafzimmer" : {
                  ! "Sensor_TEMP" : "hm-rpc.0.LEQ1072499.1.TEMPERATURE"/SZ Heizungsregler:1.TEMPERATURE/,
                  ! "Sensor_HUM" : "hm-rpc.0.LEQ1072499.1.HUMIDITY"/SZ Heizungsregler:1.HUMIDITY/,
                  ! "Sensor_TEMP_OFFSET" : 0.0,
                  ! "Sensor_HUM_OFFSET" : 0,
                  ! "TEMP_Minimum" : defaultTemp, // oder Zieltemperatur in Form von: 20.00 angeben
                  ! "Aussensensor" : "Aussen"
                  ! },
                  ! "Wohnzimmer" : {
                  ! "Sensor_TEMP" : "hm-rpc.0.LEQ1460744.1.TEMPERATURE"/WZ Heizungsregler:1.TEMPERATURE/,
                  ! "Sensor_HUM" : "hm-rpc.0.LEQ1460744.1.HUMIDITY"/WZ Heizungsregler:1.HUMIDITY/,
                  ! "Sensor_TEMP_OFFSET" : 0.0,
                  ! "Sensor_HUM_OFFSET" : 0,
                  ! "TEMP_Minimum" : defaultTemp, // oder Zieltemperatur in Form von: 20.00 angeben
                  ! "Aussensensor" : "Aussen"
                  ! }
                  ! };

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

                    das ist bei mir ein extra Skript

                    der Hintergrund der Anzeige eines Fensters ändert sich bei mir auch farblich in Abhängigkeit der Lüftungsempfehlung.

                    Das Skript hier liefert die notwendigen Datenpunkte, die dann an anderer Stelle verarbeitet werden müssen, wie z.B.

                    • Sonos

                    • Email

                    • Fenster

                    • Türen

                    • pushover

                    • Vis

                    • …

                    das Skript wird mit seiner Kernaufgabe schon so einiges anwachsen

                    ein Skript für ein Fenster ist aber sehr kurz

                    Gesendet von iPhone mit Tapatalk

                    1 Reply Last reply Reply Quote 0
                    • D
                      DiJaexxl last edited by

                      Hallo Ruhr70,

                      da ich gerade gesehen habe, dass ich einen Fehler habe,

                      habe ich meinen Beitrag eben editiert und die Frage nach dem Fensterkontakt zurück gezogen.

                      Tschuldigung für das durcheinander

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

                        @DiJaexxl:

                        Hallo Ruhr70,

                        da ich gerade gesehen habe, dass ich einen Fehler habe,

                        habe ich meinen Beitrag eben editiert und die Frage nach dem Fensterkontakt zurück gezogen.

                        Tschuldigung für das durcheinander `

                        kein Thema.

                        Auf dem Handy konnte ich jetzt nichts sehen. Schaue ich mir nachher an

                        Gesendet von iPhone mit Tapatalk

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

                          @DiJaexxl:

                          da ich gerade gesehen habe, dass ich einen Fehler habe, `

                          Kann das sein, dass Du Weatherunderground benutzen willst und der Adapter nicht installiert ist oder im Datenpunkt Temperatur ein Problem hat?

                          javascript-0	2016-06-18 17:54:58.620	warn	State "weatherunderground.0.current.temp_c" not found
                          

                          Was steht denn bei Dir für ein Wert in dem Datenpunkt: weatherunderground.0.current.temp_c

                          Ich möchte das Skript noch so erweitern, dass solche Fehler abgefangen werden.

                          1 Reply Last reply Reply Quote 0
                          • D
                            DiJaexxl last edited by

                            Hallo und guten Morgen,

                            ich habe den Adapter nicht installiert :oops: .

                            Dann habe ich die Zeilen aus kommentiert, und jetzt geht es.

                            Aber ich sehe, ich brauche jetzt dringend meine Wetterstation. Nachdem wir in Kassel gelernt haben es gibt die Version 2, wird die wohl nächsten Monat einzug halten.

                            Was muss ich machen wenn ich Räume hinzufügen will?

                            Einfach nur die Räume im Kopf doppeln?

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

                              @DiJaexxl:

                              Was muss ich machen wenn ich Räume hinzufügen will?

                              Einfach nur die Räume im Kopf doppeln? `

                              Ja. Einfach den nächsten Raum im Bereich "Räume mit Sensoren, Parametrisierung" hinzufügen.

                              Kleiner Tipp. Auf die Kommas achten. Dass Du kein Komma zu wenig oder am Ende ein Komma zu viel drin hast.

                              1 Reply Last reply Reply Quote 0
                              • D
                                DiJaexxl last edited by

                                Hallo Ruhr70,

                                Das mit dem Komma habe ich gesehen.

                                Am Ende einer Gruppe kommt ein Komma, nur die letzte Gruppe hat keins.

                                Es läuft alles ohne Fehler.

                                Danke!!

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

                                  @DiJaexxl:

                                  Aber ich sehe, ich brauche jetzt dringend meine Wetterstation. Nachdem wir in Kassel gelernt haben es gibt die Version 2, wird die wohl nächsten Monat einzug halten. `

                                  Eine Wetterstation, ein Homematic Außensensor, ein Netamo, Weatherunderground oder irgendetwas halt, mit dem Du relativ genaue Außenwerte erhältst.

                                  Bei mir ist ein Homematic Außensensor im Einsatz.

                                  Für das Gästebad, welches kein Fenster hat, ist der Flur der "Außensensor".

                                  In Weatherunderground habe ich mir eine Netamo Station rausgesucht, die max. 300m entfernt ist. Die Werte passen ungefähr.

                                  Unbedingt kaufen muss man sich einen Sensor nicht. Ich werde mir für die andere Seite der Wohnung aber noch einen weiteren Messpunkt gönnen.

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    DiJaexxl last edited by

                                    Wir haben auf dem Balkon auch ein Homematic Aussensensor liegen. Aber so richtig gefällt der mir nicht.

                                    In 200m ist eine Weatherground Station. Aber ich kann mir zur Zeit keine API ziehen. Da scheint ein Fehler auf der WEB Seite zu sein.

                                    Jetzt erst verstehe ich die Feinheit mit dem Aussensensor!. Wenn ich mir auf der Rückseite des Hauses noch einen Messwert gönne, würde ich den dann für die Räume zur Rückseite nutzten.

                                    Ober cool

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

                                      @DiJaexxl:

                                      Wenn ich mir auf der Rückseite des Hauses noch einen Messwert gönne, würde ich den dann für die Räume zur Rückseite nutzten.

                                      Oder die Messwerte von dem Sensor (für alle Räume) verwenden, auf den nicht gerade die Sonne scheint.

                                      1 Reply Last reply Reply Quote 0
                                      • S
                                        simpixo last edited by

                                        Seit neustem erhalte ich folgende Fehlermeldung

                                        HQ-RASPI-00	2016-06-19 21:35:16.775	error	host.HQ-RASPI-00 instance system.adapter.javascript.0 terminated with code 0 (OK)
                                        javascript.0	2016-06-19 21:35:16.160	error	ReferenceError: b3lnText is not defined at calc (script.js.Klima.Raumklima_v0_6_2:871:34) at Object. (script.js.Klima.Raumklima_v0_6_2:999:9) at null. (/opt/iobroker/
                                        javascript.0	2016-06-19 21:35:16.159	error	uncaught exception: b3lnText is not defined
                                        
                                        

                                        Habe am Script eigentlich nichts geändert 😞

                                        Habt ihr eine Idee?

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

                                              var b2lnText = "Kühlen:         Außentemperatur zu warm";
                                              var b2lnText = "Auskühlschutz:  Innentemperatur niedriger als Mindestraumtemperatur";
                                          
                                          

                                          Korrigieren:

                                              var b2lnText = "Kühlen:         Außentemperatur zu warm";
                                              var b3lnText = "Auskühlschutz:  Innentemperatur niedriger als Mindestraumtemperatur";
                                          
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • ruhr70
                                            ruhr70 last edited by

                                            ups… danke Paul.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            637
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            95
                                            738
                                            186302
                                            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