NEWS
Javascript Adapter 2.03, Feedback
-
paul53,
ich habe das jetzt halbwegs hinbekommen, und lasse mir die absolute Feuchte ausgeben.
Jedoch kommt dort ein anderer Wert heraus als ihn mir CUxD liefert.
Keller rel Feuchte: 64 %
Keller Temperatur: 15,80 °C
****Ergebnis:
CUxD: 8,62 g/m³
Script: 7,17 g/m³****
Das ist schon eine erhebliche Differenz.
Liegt das an meiner umprogrammierten Anzeige?
Ich habe Dein Script erweitert um:
createState('Keller.Temperatur', 0); createState('Keller.rel_Feuchte', 0); createState('Keller.Feuchtegehalt', 0); createState('Keller.Taupunkt', 0); createState('Keller.Klima', 0);und die var ersetzt mit
var tsid = "hm-rpc.0.LEQ1082995.1.TEMPERATURE"/*Keller.WT-Temperatur*/; var hsid = "hm-rpc.0.LEQ1082995.1.HUMIDITY"/*Keller.WT-rel.Feuchte*/; var tid = "Keller.Temperatur"; var rhid = "Keller.rel_Feuchte" var xid = "Keller.Feuchtegehalt"; var dpid = "Keller.Taupunkt"; var aid = "Keller.Klima";Also sozusagen meine Fühler direkt als Gerät eingebunden.
Dann noch die korrigierte Temperatur und relFeuchtigkeit angezeigt.
Hier der gesamte Code
! ````
// Sensorwerte um Offset korrigieren, abs. Feuchte und Taupunkt berechnen und (inkl. Enthalpie) anzeigen
! // Raumkurzname am Anfang des Datenpunktnamen und als JS-Gruppenname
var raum = name.split(".")[2];
createState('Keller.Temperatur', 0);
createState('Keller.rel_Feuchte', 0);
createState('Keller.Feuchtegehalt', 0);
createState('Keller.Taupunkt', 0);
createState('Keller.Klima', 0);
! // Offsets
var toffset = 0.0; // in K
var rhoffset = 0; // in %
! var tsid = "hm-rpc.0.LEQ1082995.1.TEMPERATURE"/Keller.WT-Temperatur/;
var hsid = "hm-rpc.0.LEQ1082995.1.HUMIDITY"/Keller.WT-rel.Feuchte/;
var tid = "Keller.Temperatur";
var rhid = "Keller.rel_Feuchte"
var xid = "Keller.Feuchtegehalt";
var dpid = "Keller.Taupunkt";
var aid = "Keller.Klima";
! var t = getState(tsid).val + toffset; // Temperatur, korrigiert in °C
var rh = getState(hsid).val + rhoffset; // rel. Feuchte, korrigiert in %
var x; // Feuchtegehalt in g/kg
var dp; // Taupunkt in °C
! var DP = require('dewpoint');
! // 70 m über NN
var xdp = new DP(70);
! function calc() {
var y = xdp.Calc(t, rh);
x = y.x;
dp = y.dp;
setState(xid, x);
setState(dpid, dp);
}
! function anzeige() {
// Enthalpie berechnen
var h = (1.00545 * t + (2.500827 + 0.00185894 * t) * x).toFixed(1) + " kJ/kg";
var tanz = t.toFixed(1) + "°C";
dp = dp.toFixed(1) + "°C";
var rhanz = rh.toFixed(0) + " %";
x = x.toFixed(2) + " g/kg";
var anz = '';
anz = anz + '
! | Temper. | rel.F. | Feuchtegeh. | Taupunkt | Enthalpie |
| ' + tanz + ' | ' + rhanz + ' | ' + x + ' | ' + dp + ' | ' + h + ' |
! ';
setState(aid, anz);
setState(tid, t);
setState(rhid, rh);
}
! function klima() {
calc();
anzeige();
}
! klima(); // Script start
! on(tsid, function (dp) {
t = dp.state.val + toffset;
setState(tid, t);
klima();
});
! on(hsid, function (dp) {
rh = dp.state.val + rhoffset;
setState(rhid, rh);
klima();
});Nicht schön, sondern nur pragmatisch versucht umzusetzen. Aber wo kommt die Differenz zum CUxD - Wert her? Offset-Werte bei allen Einstellungen auf Null gestellt. Die NN-Höhe habe ich auch mal von 70 auf 0 gestellt, aber die daraus folgende Änderung ist ja nur minimal. Mir ist klar, dass die errechneten Werte zum abs. Feuchte alle nur Näherungswerte sind, aber der Unterschied ist schon heftig (ca 1,5 g/m³). Wo ist mein (Denk-)Fehler? Vielen Dank!