Absolute Luftfeutchtigkeit mit Node-RED

Hi,

ich habe gerade die Berechung der absoluten Luftfeuchtigkeit sowie die speicherung von global nützlichen Werten in Node RED implementiert und möchte sie gerne euch zur verfügung stellen:

Und hier der JSON export:

[{"id":"4148730afcd1904a","type":"tab","label":"Global","disabled":false,"info":"","env":[]},{"id":"1b11a45d03bf6295","type":"api-current-state","z":"4148730afcd1904a","name":"Outside Temperature","server":"c3a45c85.6da17","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.outdoor_thermometer","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"},{"property":"topic","propertyType":"msg","value":"temperature","valueType":"str"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":120,"y":140,"wires":[["57e0b7ca224f09f1","fb2f3abf566744bc"]]},{"id":"853a50aba22b8e79","type":"inject","z":"4148730afcd1904a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"900","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":40,"wires":[["1b11a45d03bf6295","1d7166ccf1a3c87c"]]},{"id":"52a2b6e63dfa5839","type":"switch","z":"4148730afcd1904a","name":"Heat or cool","property":"payload","propertyType":"msg","rules":[{"t":"gt","v":"20","vt":"num"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":370,"y":80,"wires":[["a3823f70777212ce"],["11c6fcf28bc086d0"]]},{"id":"a3823f70777212ce","type":"change","z":"4148730afcd1904a","name":"cool","rules":[{"t":"set","p":"ac_mode","pt":"global","to":"cool","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":550,"y":40,"wires":[[]]},{"id":"11c6fcf28bc086d0","type":"change","z":"4148730afcd1904a","name":"heat","rules":[{"t":"set","p":"ac_mode","pt":"global","to":"heat","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":550,"y":120,"wires":[[]]},{"id":"57e0b7ca224f09f1","type":"change","z":"4148730afcd1904a","name":"Save outside temp","rules":[{"t":"set","p":"outside_temp","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":200,"wires":[["52a2b6e63dfa5839"]]},{"id":"f65a5f0e7a6489f2","type":"function","z":"4148730afcd1904a","name":"absoluteLuftfeuchtigkeit","func":"let rF = Number(msg.payload.humidity);\nlet t = Number(msg.payload.temperature);\nlet mw = 18.016; //Molekulargewicht des Wasserdampfes\nlet R = 8314.3; //universelle Gaskonstante \n\nlet a, b;\nif (t >= 0) {\n    a = 7.5;\n    b = 237.4;\n}\nelse {\n    a = 7.6;\n    b = 240.7;\n}\nlet DD = (rF / 100) * 6.1078 * (10 ** ((a * t) / (b + t)));\n\nlet absLuftFeuchtigkeit = (10 ** 5) * (mw / R) * DD / (t + 273.15);\n\nmsg.payload = absLuftFeuchtigkeit;\nreturn msg; ","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":280,"wires":[["a97c89bfff2dd65d"]]},{"id":"a97c89bfff2dd65d","type":"change","z":"4148730afcd1904a","name":"","rules":[{"t":"set","p":"abs_humidity","pt":"global","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":550,"y":360,"wires":[[]]},{"id":"fb2f3abf566744bc","type":"join","z":"4148730afcd1904a","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":170,"y":340,"wires":[["f65a5f0e7a6489f2"]]},{"id":"1d7166ccf1a3c87c","type":"api-current-state","z":"4148730afcd1904a","name":"Outside Humitidy","server":"c3a45c85.6da17","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"sensor.outdoor_thermometer_humidity","state_type":"str","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"humidity","valueType":"str"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":110,"y":220,"wires":[["fb2f3abf566744bc"]]},{"id":"c3a45c85.6da17","type":"server","name":"Home Assistant","addon":true}]

Freue mich auch über Hinweise wie man es besser machen könnte.

3 „Gefällt mir“