NEWS
Luftfeuchtesensoren - nur welche?
-
@beowolf sagte in Luftfeuchtesensoren - nur welche?:
Die andere Liste stimmt nicht.
welche andere Liste
Da steht doch auch 16.7°C
Aber interessant sind auch die Werte in kleinen Zahlen bei der Werkstatt.
Dort habe ich noch die Temperaturen bei denen 80%rF und 70%rF erreicht werden.
Je nach baulichen Gegebenheiten und Dauer reicht das ja beteits zur Schimmelbildung. -
Wenn es jemand haben möchte hier mal mein Skript für eine Kellerlüftung.
// Ersetze diese Pfade durch die tatsächlichen Datenpunkte in deinem ioBroker-System //Aussensensor const AussensensortemperatureId = 'mqtt.0.Aussensensor.Aussensensor.Temperatur'; // Beispiel: 'javascript.0.sensor.temperature' const AussensensorhumidityId = 'mqtt.0.Aussensensor.Aussensensor.Luftfeuchte'; // Beispiel: 'javascript.0.sensor.humidity' const AussensensordewPointId = '0_userdata.0.Taupunktberechnung.Taupunkt_Aussen'; // Beispiel: 'javascript.0.sensor.dewPoint' //Kellersensor1 const Kellersensor1temperatureId = 'mqtt.0.Kellersensor-1.Kellersensor_1.Temperatur'; // Beispiel: 'javascript.0.sensor.temperature' const Kellersensor1humidityId = 'mqtt.0.Kellersensor-1.Kellersensor_1.Luftfeuchte'; // Beispiel: 'javascript.0.sensor.humidity' const Kellersensor1dewPointId = '0_userdata.0.Taupunktberechnung.Taupunkt_Keller_1'; // Beispiel: 'javascript.0.sensor.dewPoint' // Taupunktberechnung Aussen function calculateAussensensorDewPoint(Aussensensortemperature, Aussensensorhumidity) { const A = 17.27; const B = 237.7; const Aussensensoralpha = ((A * Aussensensortemperature) / (B + Aussensensortemperature)) + Math.log(Aussensensorhumidity / 100); const AussensensordewPoint = (B * Aussensensoralpha) / (A - Aussensensoralpha); return AussensensordewPoint; } // Taupunktberechnung Kellersensor1 function calculateKellersensor1DewPoint(Kellersensor1temperature, Kellersensor1humidity) { const A = 17.27; const B = 237.7; const Kellersensor1alpha = ((A * Kellersensor1temperature) / (B + Kellersensor1temperature)) + Math.log(Kellersensor1humidity / 100); const Kellersensor1dewPoint = (B * Kellersensor1alpha) / (A - Kellersensor1alpha); return Kellersensor1dewPoint; } // Funktion zur Aktualisierung des Taupunkts Aussen function updateAussensensorDewPoint() { const Aussensensortemperature = getState(AussensensortemperatureId).val; const Aussensensorhumidity = getState(AussensensorhumidityId).val; if (Aussensensortemperature !== null && Aussensensorhumidity !== null) { const AussensensordewPoint = calculateAussensensorDewPoint(Aussensensortemperature, Aussensensorhumidity); setState(AussensensordewPointId, Math.round(AussensensordewPoint * 100) / 100); // Taupunkt auf 2 Dezimalstellen gerundet log(`Temperatur: ${Aussensensortemperature}°C, Luftfeuchtigkeit: ${Aussensensorhumidity}%, Taupunkt: ${AussensensordewPoint.toFixed(2)}°C`); } else { log('Fehler: Konnte Aussensensortemperatur oder Aussensensorluftfeuchtigkeit nicht abrufen'); } } // Funktion zur Aktualisierung des Taupunkts Kellersensor1 function updateKellersensor1DewPoint() { const Kellersensor1temperature = getState(Kellersensor1temperatureId).val; const Kellersensor1humidity = getState(Kellersensor1humidityId).val; if (Kellersensor1temperature !== null && Kellersensor1humidity !== null) { const Kellersensor1dewPoint = calculateKellersensor1DewPoint(Kellersensor1temperature, Kellersensor1humidity); setState(Kellersensor1dewPointId, Math.round(Kellersensor1dewPoint * 100) / 100); // Taupunkt auf 2 Dezimalstellen gerundet log(`Temperatur: ${Kellersensor1temperature}°C, Luftfeuchtigkeit: ${Kellersensor1humidity}%, Taupunkt: ${Kellersensor1dewPoint.toFixed(2)}°C`); } else { log('Fehler: Konnte Kellersensor1temperatur oder Kellersensor1luftfeuchtigkeit nicht abrufen'); } } // Initiale Berechnung und Intervall festlegen Aussensensor updateAussensensorDewPoint(); schedule('*/5 * * * *', updateAussensensorDewPoint); // Alle 5 Minuten aktualisieren // Initiale Berechnung und Intervall festlegen Kellersensor1 updateKellersensor1DewPoint(); schedule('*/5 * * * *', updateKellersensor1DewPoint); // Alle 5 Minuten aktualisieren
-
@beowolf sagte: Laut Tabelle sollte er aber bei 13,8 °C liegen.
Diese Tabelle zeigt nicht den Taupunkt, sondern die absolute Luftfeuchtigkeit in g/m³.
In der Tabelle von Homoran ist der Wassergehalt in g Wasser pro kg trockene Luft angegeben. -
@homoran sagte in Luftfeuchtesensoren - nur welche?:
welche andere Liste
Das hatte ich doch ober geschrieben.
Die von MartinP nicht so die richtige für den Taupunkt.
-
@beowolf sagte in Luftfeuchtesensoren - nur welche?:
Also ist die von MartinP nicht so die richtige.
äähm, doch!
dort wird die absolute Feuchte in g/m³ angegeben, nicht in g/kg Luft.
da wird noch die temperaturabhängige Ausdehnung berücksichtigt.
Den Unterschied siehst du in meiner Tabelle oben bei der Außenluft. -
@homoran "Für den Taupunkt" ist sie nicht die Richtige (jedenfalls nicht so einfach anwendbar, als eine, wo er direkt abgetragen ist).
Die ist eher z. B. hilfreich, wenn man wissen will ob die Luft "draußen" weniger Wasser enthält, als "drinnen" um zu Entscheiden, ob Entfeuchtungslüften sinnvoll ist ...
-
Ok, alles gut.
ABER
Ist das nicht vollkommen egal? Wenn beide Sensoren die selbe kleine "Fehlmessung" haben, kommt doch am Ende wieder der "richtigen" Wert bzw. die richtige "Entscheidung" heraus.
Oder?
Lüften oder nicht Lüften.
-
@beowolf sagte: Wenn beide Sensoren die selbe kleine "Fehlmessung" haben, kommt doch am Ende wieder der "richtigen" Wert bzw. die richtige "Entscheidung" heraus.
Ja, die beiden Sensoren (außen / innen) müssen für die Entscheidung nur gleiche Werte liefern.
-
@beowolf sagte in Luftfeuchtesensoren - nur welche?:
Wenn beide Sensoren die selbe kleine "Fehlmessung" haben,
das wirst du wahrscheinlich nie hinbekommen.
Fehler potenzieren sich, nur im besten Fall heben sie sich auf.Was die Abweichung in absoluten Werten ergibt, kannst du ja mal mit deinem Skript und Datenpunkten von 2 Dummysensoren (Temp/rH) testen.
-
@paul53 sagte in Luftfeuchtesensoren - nur welche?:
Ja, die beiden Sensoren (außen / innen) müssen für die Entscheidung nur gleiche Werte liefern.
Hatte ich auch oben geschrieben. Ich hatte zwei Sensoren die fast zu 100% die selben Werte lieferten. Die waren direkt nebeneinaden montiert.
Ob die Sensoren jetzt wirklich den geeichten exakten Wert angezeigt haben, konnte ich nicht nachprüfen. Warum auch.
Hier mal eine Aufzeichung der Werte.
Der Lüfter geht bei einem Unterschied von 2° an.
-
@beowolf sagte in Luftfeuchtesensoren - nur welche?:
Ich hatte zwei Sensoren die fast zu 100% die selben Werte lieferten. Die waren direkt nebeneinaden montiert.
das ist natürlich ein Sonderfall!
nicht jeder kauft 10 Sensoren/Geräte und selektiert diese dann -
@homoran sagte: nicht jeder kauft 10 Sensoren/Geräte und selektiert diese dann
Andere gleichen über einen Offset an (Alias).
-
-
Ich habe die anderen Sensoren ja nicht entsorgt.
Nur, mache ich das nicht, kommt es zu dem was du selber gerade geschriebn hast. Ist halt immer eine Sache für was man solche Sensoren einsetzt.
Wenn ich nur die Luftfeuchte und Temperatur im Gewächshaus haben möchte reicht ein Sensor der mir das mehr oder weniger genau anzeigt.
Wie hier für meine Kellerlüftung habe ich mir eben etwas mehr Arbeit gemacht. Ich möchte ja auch nicht lüften wenn es dadurch noch schlimmer wird.
-
@homoran sagte: oder direkt im Lüftungsskript
Das war nötig, als es Alias noch nicht gab. Ich würde heute Alias bevorzugen.
-
@paul53 sagte in Luftfeuchtesensoren - nur welche?:
Andere gleichen über einen Offset an (Alias).
Offest ist so eine Sache. Solange es linear gleich "falsch" läuft ist das ok. Keine Ahnung ob das bei den Sensoren der Fall ist.
-
@beowolf sagte: Offest ist so eine Sache.
Wenn du zwei Sensoren nebeneinander anordnest, um sie zu vergleichen, machst du es auch bei einem bestimmten Luftzustand und nicht über die gesamte Kennlinie. Mit einem Offset ist die größte Abweichung i.d.R. kompensiert.
-
Wie gesagt, ich hatte zwei Sensoren über 10 Tage nebeneinander laufen lassen. Die aufgezeichneten Graphen waren fast deckungsgleich.
Bei einem Sensorpreis von untern einem Euro sind 10 oder 15 Sensoren doch vollkommen egal.
-
@beowolf Ich habe gerade das BME-Datenblatt gefunden ...
https://cdn-reichelt.de/documents/datenblatt/A300/BST-BME280-DS002-1509607.pdf
Es scheint, dass das Werksseitige "Kalibrieren" der Sensoren aufgrund mangelnder Ressourcen auf dem Sensor so erfolgt, dass im Werk ein nicht veränderbares NV-ROM auf dem Sensor mit Kalibrierwerten beschrieben wird (Drei Werte für Temperatur, Neun Werte für Luftdruck und sechs Werte für Feuchtigkeit).
Diese Werte muss die Ausleseroutine einlesen, und in einem Algorithmus einsetzen, um aus den gemessenen Roh-Werten die mit den Kalibrierdaten korrigierten Werte zu errechnen - eine Beispiel-Implementierung findet sich im Datenblatt ...Da kommt es wohl bei der Messgenauigkeit auch auf die Implementierung der Einlese-Routine an ... und natürlich, wie sorgfältig im Werk bei der Ermittlung der Kalibrierdaten vorgegangen wurde ...
Gibt es eigentlich vom BME260 China-Nachbauten (Plagiate)?
EDIT:
Hier wurde jemandem ein BMP280 (ohne Feuchtesensor) als BME280 angedreht ...
https://forum.arduino.cc/t/bme280-problem/451941 -
@beowolf sagte in Luftfeuchtesensoren - nur welche?:
Bei einem Sensorpreis von untern einem Euro
und den bindest du direkt in iobroker ein?
hier ging es um fertige Sensoren/Geräte