NEWS
[Skript] Absolute Feuchte berechnen
-
Geilomat….
aber warum erhalte ich denn diese Warnung. Der Aussensensor ist belegt, da nutze ich das Objekt des Netatmo Adapters...
javascript-0 2016-06-15 20:02:03.087 warn script.js.Klima.Raumklima_v0_6_2: weatherunderground: kein Aussensensor angegeben. Messpunkte werden als Aussensensoren behandelt. javascript-0 2016-06-15 20:02:03.081 warn script.js.Klima.Raumklima_v0_6_2: Aussen: kein Aussensensor angegeben. Messpunkte werden als Aussensensoren behandelt.
:shock: :?
-
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); ...
-
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
-
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
-
…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.
-
// 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 tiefDie 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
-
Ja, stimmt. Wird geändert.
Danke, dass Du mit drauf guckst!
-
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: 8Komisch
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"
! }
! }; -
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
-
-
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
-
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
-
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.
-
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?
-
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.
-
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!!
-
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.
-
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
-
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.
-
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?
-
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";