BME280 und Taupunkt

Ich habe mir gedacht das ich da mal ein neues Topic öffne.
Das meiste dazu steht unter Mosfetboard - Licht per Taster steuern
Anders wie in der Beschreibung node-red-contrib-bme280 steht, gibt der Sensor keinen Taupunkt heraus.
Taupunkt bzw. Taupunkdifferenz aber zum Steuern eines Lüfter (Bad) wichtig wäre.
Deshalb habe ich mal ein paar Formeln zusammen gesucht um das zu berechnen.
Und für die Thermikflieger unter uns gibt es dann auch noch die theoretische Wolkenbasis.(dazu muss der Sensor natürlich Aussen montiert werden).
Natürlich könnte man für den Taupunkt auch “Temperatur/100*Feuchte” rechnen, aber das könnte zu ungenau werden.


[{"id":"0e694dfcbb29785b","type":"inject","z":"e361b386bb2b9c95","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"20","crontab":"","once":true,"onceDelay":0.1,"topic":"","payloadType":"date","x":1470,"y":320,"wires":[["c7ee44f44d8543ae"]]},{"id":"8c82135dd7e2331e","type":"ui_gauge","z":"e361b386bb2b9c95","name":"","group":"3b6ad61d87ca07d7","order":1,"width":6,"height":6,"gtype":"gage","title":"Temperatur BME280","label":"°C","format":"{{payload.temperature_C}}°C","min":0,"max":"50","colors":["#0080c0","#00ff00","#ca3838"],"seg1":"19","seg2":"23","className":"","x":1920,"y":280,"wires":[]},{"id":"25dd3a2da431729b","type":"ui_gauge","z":"e361b386bb2b9c95","name":"","group":"3b6ad61d87ca07d7","order":3,"width":6,"height":6,"gtype":"gage","title":"Luftdruck BME280","label":"hPa","format":"{{payload.pressure_hPa | number: 2}} hPa","min":"900","max":"1060","colors":["#ff0000","#00ff00","#00ff00"],"seg1":"980","seg2":"1100","className":"","x":1910,"y":320,"wires":[]},{"id":"c7ee44f44d8543ae","type":"Bme280","z":"e361b386bb2b9c95","name":"BME 280","bus":"1","address":"0x76","topic":"bme280","extra":false,"x":1640,"y":320,"wires":[["8c82135dd7e2331e","25dd3a2da431729b","daa531a85d78001a","06354fa52f6e9a52","ffe3f92edaa64cfd","b14b15fa7643382a","08a4ab2a23526bbd","912f17c43aab9c18"]],"icon":"node-red/trigger.svg"},{"id":"daa531a85d78001a","type":"ui_text","z":"e361b386bb2b9c95","group":"b8db3199.f0dbe","order":11,"width":0,"height":0,"name":"","label":"Temperatur BME280","format":"{{payload.temperature_C}}°C","layout":"row-spread","className":"","x":2140,"y":280,"wires":[]},{"id":"06354fa52f6e9a52","type":"ui_text","z":"e361b386bb2b9c95","group":"b8db3199.f0dbe","order":12,"width":0,"height":0,"name":"","label":"Luftdruck BME280","format":"{{payload.pressure_hPa | number: 2}}.hPa","layout":"row-spread","className":"","x":2130,"y":320,"wires":[]},{"id":"f4cae36195083531","type":"ui_chart","z":"e361b386bb2b9c95","name":"Luftdruck","group":"3b6ad61d87ca07d7","order":8,"width":7,"height":4,"label":"{{topic}}: {{msg.payload}} hPa","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"cubic","nodata":"waiting for readings","dot":false,"ymin":"900","ymax":"1060","removeOlder":"3","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":2160,"y":360,"wires":[[]]},{"id":"b14b15fa7643382a","type":"ui_gauge","z":"e361b386bb2b9c95","name":"","group":"3b6ad61d87ca07d7","order":4,"width":6,"height":6,"gtype":"gage","title":"Feuchte BME280","label":"hPa","format":"{{payload.humidity| number: 2}} %","min":"0","max":"100","colors":["#ff0000","#00ff00","#00ff00"],"seg1":"980","seg2":"1100","className":"","x":1930,"y":400,"wires":[]},{"id":"ffe3f92edaa64cfd","type":"ui_text","z":"e361b386bb2b9c95","group":"b8db3199.f0dbe","order":13,"width":0,"height":0,"name":"","label":"Feuchte BME280","format":"{{payload.humidity | number: 2}}.%","layout":"row-spread","className":"","x":2150,"y":400,"wires":[]},{"id":"08a4ab2a23526bbd","type":"function","z":"e361b386bb2b9c95","name":"","func":"\nmsg.payload = msg.payload.pressure_hPa | 2;\nvar name = \"BME280\";\nmsg.topic = name; \n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1960,"y":360,"wires":[["f4cae36195083531"]]},{"id":"4aea3b225fe45265","type":"ui_gauge","z":"e361b386bb2b9c95","name":"","group":"3b6ad61d87ca07d7","order":2,"width":6,"height":6,"gtype":"gage","title":"Taupunkt BME280","label":"°C","format":"{{payload.Taupunkt}}°C","min":0,"max":"50","colors":["#0080c0","#00ff00","#ca3838"],"seg1":"19","seg2":"23","className":"","x":1910,"y":240,"wires":[]},{"id":"cc56cb43f336a3f6","type":"ui_text","z":"e361b386bb2b9c95","group":"b8db3199.f0dbe","order":11,"width":0,"height":0,"name":"","label":"Taupunkt BME280","format":"{{payload.Taupunkt}}°C","layout":"row-spread","className":"","x":2130,"y":240,"wires":[]},{"id":"912f17c43aab9c18","type":"function","z":"e361b386bb2b9c95","name":"function 2","func":"var r = msg.payload.humidity ;\nvar t = msg.payload.temperature_C;\nvar tp = 0.000;\n// Konstante\nvar mw = 18.016; //Molekulargewicht des Wasserdampfes (kg/kmol)\nvar gk = 8314.3; // universelle Gaskonstante (J/(kmol*K))\nvar t0 = 273.15; // Absolute Temperatur von 0 °C (Kelvin)\nvar tk = t + t0; // Temperatur in Kelvin\n\nvar a ;\nvar b ;\nif (t >= 0) {\n    a = 7.5;\n    b = 237.3;\n} else if (t < 0) {\n    a = 7.6;\n    b = 240.7;\n}\n\n\n// Sättigungsdampfdruck (hPa)\nvar sdd = 6.1078 * Math.pow(10, (a * t) / (b + t));\n\n// Dampfdruck (hPa)\nvar dd = sdd * (r / 100);\n\n// Wasserdampfdichte bzw. absolute Feuchte (g/m3)\nvar af = Math.pow(10, 5) * mw / gk * dd / tk;\n\n// v-Parameter\nvar v = Math.log10(dd / 6.1078);\n\n// Taupunkttemperatur (°C)\ntp = Math.round(((b * v) / (a - v)) * 100) / 100 |2;\n\n//Taupunktdifferenz (°C)\nvar Spread = t - tp | 2;\n\n//Trockenadiabate Abkühlung 0, 98°C / 100m\nvar TA = 0.89;\n\n//Hebungskondesationsniveau(Wolkenbasis)\nvar HKN = Spread / TA * 100 |2;\n\n\nmsg.payload = {}\nmsg.payload.Temperatur = t\nmsg.payload.Luftfeuchtigkeit = r\nmsg.payload.Taupunkt =tp\nmsg.payload.Taupunktdifferenz = Spread\nmsg.payload.Wolkenbasis = HKN\n\nreturn msg;\n\n\n\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1640,"y":280,"wires":[["cc56cb43f336a3f6","4aea3b225fe45265","67b9c462d1af5a02","9e5ad0b58e86d65e","ef27d861415ceac6","da1113f3a3850f1e","954859888e97b439"]]},{"id":"67b9c462d1af5a02","type":"debug","z":"e361b386bb2b9c95","name":"debug 62","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","statusVal":"payload","statusType":"auto","x":1640,"y":240,"wires":[]},{"id":"9e5ad0b58e86d65e","type":"ui_gauge","z":"e361b386bb2b9c95","name":"","group":"3b6ad61d87ca07d7","order":5,"width":6,"height":6,"gtype":"gage","title":"Wolkenbasis BME280","label":"°C","format":"{{payload.Wolkenbasis}}m","min":0,"max":"3000","colors":["#0080c0","#00ff00","#ca3838"],"seg1":"1000","seg2":"2000","className":"","x":1940,"y":200,"wires":[]},{"id":"ef27d861415ceac6","type":"ui_text","z":"e361b386bb2b9c95","group":"b8db3199.f0dbe","order":11,"width":0,"height":0,"name":"","label":"Wolkenbasis BME280","format":"{{payload.Wolkenbasis}}m","layout":"row-spread","className":"","x":2160,"y":200,"wires":[]},{"id":"da1113f3a3850f1e","type":"ui_gauge","z":"e361b386bb2b9c95","name":"","group":"3b6ad61d87ca07d7","order":6,"width":6,"height":6,"gtype":"gage","title":"Taupunktdiff BME280","label":"°C","format":"{{payload.Taupunktdifferenz}}°C","min":0,"max":"50","colors":["#0080c0","#00ff00","#ca3838"],"seg1":"19","seg2":"23","className":"","x":1940,"y":160,"wires":[]},{"id":"954859888e97b439","type":"ui_text","z":"e361b386bb2b9c95","group":"b8db3199.f0dbe","order":11,"width":0,"height":0,"name":"","label":"Taupunktdiff BME280","format":"{{payload.Taupunktdifferenz}}°C","layout":"row-spread","className":"","x":2160,"y":160,"wires":[]},{"id":"3b6ad61d87ca07d7","type":"ui_group","name":"Test","tab":"c90a4b846a216fa4","order":2,"disp":true,"width":12,"collapse":false,"className":""},{"id":"b8db3199.f0dbe","type":"ui_group","name":"Temperature","tab":"deee53a800de461d","order":3,"disp":true,"width":"6","collapse":false,"className":""},{"id":"c90a4b846a216fa4","type":"ui_tab","name":"Test","icon":"build","order":22,"disabled":false,"hidden":false},{"id":"deee53a800de461d","type":"ui_tab","name":"Info","icon":"mi-info","order":1,"disabled":false,"hidden":false}]

LG Arno

Hi Arno, super!
Könnte man das Relay welches zum ansteuern des Lüfters gewählt wird in einer “Taupunkt” config aus wählbar machen ?

Schön wäre es wenn man zusätzlich auch den Lüfter PWM Ausgang vom Dimmy board auswählen könnte.

Moin Stefan,
natürlich könnte man das machen, mit so einem Konstrukt, oder so wie das Relay für die Heizung ausgewählt wird, oder so wie ich das bei den LiLyGo Relays gemacht habe.


Aber lohnt sich das???
Du setzt einmal das Relay, oder dem PWM für den Lüfter, und dann bleibt es so.
Und du musst bedenken, alles was nicht fest im Programm verankert ist, ist bei einem Update weg, und muss neu eingetragen werden. Bei der Heizung macht es Sinn, weil PEKAWAY nicht bestimmen möchte welchen Temperaturfühler und welches Relay du nimmst, oder ob du überhaupt eine kompatible Heizung hast. Aber bei allem was du selber baust, hast du ja eine Idee, und die würde ich direkt verwirklichen.
Gruß Arno

Hallo Arno, hast du denn dieses “Konstrukt” bereits so zusammen gebaut oder ist das nur mal so grafisch entstanden??
Kannst du es mir geben ?

Gruß, Stefan

Das ist von der Nachtlicht Steuerung, Dimmer, Bewegungsmelder, Luxmeter

Guten Morgen Stefan
Konstrukt findest du hier

Gruß Arno

Hi,
ich habe mir ein BME280 Modul besorgt und wollte es in meinem VanPi System ausprobieren. Leider bin ich schon beim Installieren der Palette für das BME gescheitert.

Ich habe die aktuelle 1.1.2 Version auf meinem VanPi board installiert und habe in Nodered unter Einstellungen/Palette/Installation nach dem BME280 gesucht und von den 4 Ergebnissen das Oberste ausgewählt. Es kam leider nur eine Fehlermeldung mit folgendem Protokoll heraus:

2024-06-15T16:09:27.183Z Installieren : node-red-contrib-bme280 1.1.0
2024-06-15T16:09:27.674Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict node-red-contrib-bme280@1.1.0
2024-06-15T16:09:30.352Z [err] npm
2024-06-15T16:09:30.355Z [err]
2024-06-15T16:09:30.355Z [err] WARN config production Use --omit=dev instead.
2024-06-15T16:09:31.085Z [err] npm
2024-06-15T16:09:31.086Z [err] ERR!
2024-06-15T16:09:31.087Z [err]
2024-06-15T16:09:31.087Z [err] code EJSONPARSE
2024-06-15T16:09:31.088Z [err] npm
2024-06-15T16:09:31.088Z [err]
2024-06-15T16:09:31.089Z [err] ERR!
2024-06-15T16:09:31.089Z [err] path /home/pi/.node-red/package.json
2024-06-15T16:09:31.104Z [err] npm
2024-06-15T16:09:31.104Z [err] ERR!
2024-06-15T16:09:31.105Z [err] JSON.parse
2024-06-15T16:09:31.105Z [err] Unexpected token “v” (0x76) in JSON at position 0 while parsing near “version https://git-…”
2024-06-15T16:09:31.105Z [err] npm
2024-06-15T16:09:31.105Z [err] ERR! JSON.parse Failed to parse JSON data.
2024-06-15T16:09:31.105Z [err] npm
2024-06-15T16:09:31.106Z [err] ERR! JSON.parse Note: package.json must be actual JSON, not just JavaScript.
2024-06-15T16:09:31.119Z [err]
2024-06-15T16:09:31.120Z [err] npm
2024-06-15T16:09:31.120Z [err] ERR! A complete log of this run can be found in:
2024-06-15T16:09:31.120Z [err] npm ERR!
2024-06-15T16:09:31.120Z [err] /home/pi/.npm/_logs/2024-06-15T16_09_30_202Z-debug-0.log
2024-06-15T16:09:31.142Z rc=1

Bei den anderen 3 Versionen sah es genauso aus…
Was bedeutet das und was kann ich tun?
Kann jemand die Fehlermeldung entschlüsseln?
Vielen Dank für jede Antwort!

node-red-contrib-bme280 1.1.0
ist die richtige Version.
versuch mal direkt vom Raspberry mit npm zu installieren.
hab sonst keine Idee
wenn das in die tiefen des PIs geht bin ich auch überfragt.
ich hatte das Problem mit dem Chatbot, bin dann auf Telegram Bot umgestiegen, das hat dann funktioniert. ???
nichtaufgeben :wink:

Vielen Dank für die schnelle Antwort!
Könntest du mir einen kleinen Tipp geben, was das bedeutet:
“versuch mal direkt vom Raspberry mit npm zu installieren.”
Muss ich dafür Bildschirm und Tastatur am Pi anschließen?

Ich bin nun dabei, über Putty draufzugehen. Der Pi verlangt ein login, welches ich nicht weiß. Gibt es da ein Standard für den VanPi?

Benutzername ist pi
passwort ist rapberry

npm install node-red-contrib-bme280 müsste der befehl sein ???
du musst aber zuerst in das richtige vwerzeichnis wechseln.
cd .node-red müsste as sein. ich hab ein fürchterliches Netz und kann nicht googeln, müsstest du mal selber versuchen.

Ja danke. Ich musste
$HOME/.node-red und dann
npm install node-red-contrib-bme280 eingeben.
Ergab aber auch nur eine Error-Meldung. Trotzdem vielen Dank.
Ich würde gern mal von einem Admin hören, ob das so gewollt ist von Pekaway. Ich lese halt package-lock.json und denke mir, dass da etwas absichtlich geblockt wird. Kann ja aus gutem Grund sein, aber wie installiert man dann solche Nodes?

und wieso hat es bei dir einfach so geklappt?..

Neeee da wird nix absichtlich geblockt. Eventuell ist eine Datei zu alt, oder…
Vieleicht hat Vincent ne Antwort

Ja, das wäre gut. Ich habe festgestellt, dass ich überhaupt keine Nodes installieren kann. Die Fehlermeldung ist im Prinzip immer die Gleiche. :wink:

OK. Ich habe die SD Karte letztendlich neu mit dem VanPi Os geflasht und jetzt funktioniert es.

1 Like

Die package-lock.json wird automatisch erstellt und ist dafür da, dass die genauen Versionen und wo sie runtergeladen wurden festgeschrieben wird, damit jeder wieder auf den genau gleichen Download kommt.

Normalerweise hilft bei so einem Fehelr wie du ihn hattest, diese Datei zu löschen und mit npm install neu generieren zu lassen. Ansonsten könnte man auch den cache löschen npm cache clean --force und schauen ob es hilft.
Laut Fehlermeldung begann deine package-lock.json oder package.json mit “version…” anstatt mit einer geschweiften Klammer für ein JSON, das hätte man noch checken können.
Aber das Problem wurde ja bereits gelöst.

Hi Arno,

ich implementier gerade einen BME680. Dein Script läuft mit einer kleinen Adaption.
Dabei ist mir aufgefallen, dass Du für 0° Kelvin 273,15 °C setzt. Müsste das nicht -273,15 °C (Also Negativ!!) sein?

Moin Lutz
Ja du Hast recht das sind -273.15°C.
ich weiß im moment aber nicht in welchem Zusammenhang ich das berechne.
:wink:
Aber der BME680 ist auch ne gute Idee :+1:
Gruß
Arno
edit
aber 0°C = 273K