New bathroom ideas

Gavin these are the water leak detectors I use
https://www.audon.co.uk/digalm/ld12.html

audon.co.uk is good source for control kit

1 Like

The most important piece of advice, is that the wife is aware of all these modifications and is wholeheartedly supportive?

3 Likes

Darryl...of course you know I am on thin ice here...which is why I need good advice from this forum to ensure that whatever I put in the bathroom works without a hitch.

@ mtoko it's called

WAF wife acceptance factor

Of course, it is even better if she never even finds out because "it just works" TM. :rofl:

Are WIF wife invisibility factor

Sorry this is totally off topic but i like to warn everybody who lives in a climate like Germany to insulate their walls from the inside!

It maybe depends on the climate but from an architects point of view internal insulation is not a good idea especially not for bathrooms and normally only the last alternative when you have for example "heritage listed facade" where you cannot install external insulation.

image
And this is not the worst situation I know or you can google yourself

This is cause by the so-called dew point shift.The drew point is the temperature where the water in the air (steam) condensates to liquid water. With internal insulation you move this point to the interior - where it then condensates and feeds mold behind your insulation. With external insulation this point is on the outside and does no harm.
image
There are some (bad) solutions for this problem often advertised: A) steam proof layer protecting the insulation (difficult to build as it has to be steam proof totally on the most outer interior layer of the wall and bad for good room climate) or diffusion open insulation that the humidity is able to diffuse back)
Both solutions are only a compromise!

And you loose the capability of massive walls to buffer temperature and humidity. Problematic areas like corners and edges are moving right behind your internal insulation and you loose the protection against ice in your pipes.

Or forced ventilation (fan) where you loose a lot of energy: So you have to install a heat exchanger (which could be quite efficient using the same heat pipes as in your CPU cooler) but expensive.

Back to sensors and node-red: Measuring these effects to control a fan or inform the family to open the windows is in my experience quite a challenge: Relative Humidity in % is not enough this is highly related to the room and outside temperature. But the as explained above the wall temperature or better the location of the drew point inside the wall in retaliation to the amount of water in the air, inside and outside temperature ... So are edges and corners the most problematic areas as their area in relation to the outside area is much smaller and , or windows ...
Installing a IR-camera is perhaps a solution for everything but expensive too :crazy_face:

I know there were a lot of suggestions earlier about using temp sensor to control underfloor heating but we wont be getting underfloor heating and will only have a towel radiator.

Given that this will be controlled by a valve does anyone have experience with wireless thermostatic radiator valves and controlling these with a temp sensor and node red?

I have a bath fan automated with a humidity sensor. I get false readings from it. In hindsight I would have installed a DS128? Temp sensor on the hot water line to the shower. I think this would have been more reliable.
In the fan I suggest installing a 4-6ā€ duct fan in the attic and a hose to the ceiling. MUCH quieter this way.
I would do a button or something for the fan when needed for the toilet. Maybe even a temp sensor in the toilet line. I would assume it would have a slight but sudden change in temp when the tank is filled

Believe me, I know there is a lot of rubbish put around about damp and condensation & a lot of terrible builders without a clue. Done properly though, internal insulation isn't an issue at all and for many houses such as the terraces common to Northern England, it is the only realistic solution for most walls. You have to have the right gaps behind the insulation and the batons have to be mounted correctly. There are lots of good solutions available.

Not really a big issue, it takes around 3 days of no heating for our house to reach the same temperature as the outside (at around 10 deg C) not very different to what it did before, maybe an extra day. Humidity movement isn't an issue as there are lots of other ways for the humidity to move and we have an over-pressure fan which keeps things moving. This is, after all, a Victorian house, not a modern one where everything is sealed up. That costs about Ā£3 a year to run. It moves air from the attic space where it is already warmed by the house. Again, a very common solution to humidity in Victorian houses in cool, damp areas.

No pipes behind any of the insulated walls. Nor should there be.

Also, the insulation doesn't block the required air-bricks.

Yes, it is. You absolutely need to know the internal and external temperatures. Perceived comfort is massively difficult to measure. Thankfully, you don't really need to, you only need to know what works in your environment and then work around that. For example, I can have the house a lot colder in summer than in winter without anyone complaining. With half our house covered with thick stone and rubble filled walls, keeping the house cool is not an issue for us. :grinning:

The internal insulation has made a massive difference to us with humidity levels consistently lower now and no more wall condensation. Corners that used to be problematic due to lack of air movement are now no longer an issue as the warm humid air is kept away from the cold walls.

All humidity sensors include temperature sensors otherwise they don't work well at all. Of course, measuring humidity is also a very hard problem and practically, you don't get more than about +/- 5% accuracy no matter what the sensor claims. There are just too many variables such as air movement.

But finally, lets not get carried away with technicalities because most of this is simply not necessary and is a waste of money.

In a bathroom, if the humidity rises rapidly, turn on the fan. Or listen for noise and turn it on, or if the temperature goes up rapidly, turn it on. As I say, running a fan costs pennies and will always be cheaper and more reliable than any set of sensors and controllers.

The idea of running the fan duct via the attic and then outside with the fan removed from the bathroom is a nice idea - as long as you can get to it in case it fails. And do have an electric cover which keeps the noise, weather, cold and spiders out when not in use.

I use Homematic (German Brand) thermostats, battery based RF885mhz and have very good experience (11 Units so far for around 4 years i paIed 29ā‚¬ as a kit - no soldering only the manual finishes to be done)

demo table with the data acquisition you can find here:

2 years on 2xAA batteries. These reduced my heating costs about 30% and I managed to program them with a nice UI on the original dashboard to get a good acceptance factor from my family) I use them together with window sensors from the same brand. They talk together directly also the thermostats when you have more than one per room are directly synchronized without the Not so perfect but working hub called ccu. Even two in an outside building have good reception.

2 Likes

How do you get the thermostat to communicate with node red? Are you able to get MQTT messages or do you have to somehow go through their cloud services?

If you feed the temperature that you want back to the device does it adjsut the valve accordingly or is it more complicated?

Lucky to be kissed by the gulf stream :smiley: the -15C in the chart above is not uncommon for north east Central Europe (ok the last two winters where not below -10) and yes there are use cases and systems which work but in general for germany internal insulation is to be avoided. Even the romans had external insulation with mud and straw. The physics are agains it as you wear layers of cotton under your insulating jacket and a thin wetter protective layer on the outside in winter :snowflake: and not the other way around. :crazy_face:

You are right that too many sensors and two many automation do not help, especially from a money standpoint. But if you have to deal with a temperature delta of around 30C you start locking for intelligent ideas like heat pipes as heat exchangers. (In germany even simple steam extractors in kitchens pumping the kitchen air/steam simply outside are not allowed any more same as bathroom fans when you plan a new building). Affordable zero energy houses are really fascinating for me especially when they provide more comfort. I helped to plan and build one 30 years ago for a fried and it is still working perfectly with wall heating, simple concrete pavement tiles as thermal energy storage, solar electric and solar thermal panels on the roof hear exchangers and an emergency automatic wood pellets boiler fired with wast wood (bark and cutaways) out of the own forests. 100% self sustained and very comfortable. And self build with the help of many enthusiastic friends (and no, he paid for the labor)

And in the end it should be a lot of fun building your own system and learn how all this could work together and the physics behind it. Thatā€™s why many of us are here and not in a shop ordering an of the shelf system.

Buy/build it, break it, fix it, own it. And enjoy the experience and perhaps share it.

There is a contrib node called ccu for it exposing all values and parameters of the hole Homematic system. And yes you simply send the temperature you want to the correct datapoint and done. You can read/write the displayed parameters shown in the table (and more)

If you are interested in a particular system first take a look if a custom/contrib node exists and if it is well maintained, if the device is well documented (including the internals) and perhaps ask here for first hand experience before you buy.

in my daughters room is a sonoff th 10. it reads temp and humidity and has a switch to turn on or off a connected device.

i use this to control a dehimidifier.

this is the floiw for the th10 only.

[{"id":"8ba403b1.d6d42","type":"mqtt in","z":"ff0cc945.569628","name":"Sonoff TH10 Kinderzimmer  - State","topic":"sonofftemphumi/tele/SENSOR","qos":"0","datatype":"auto","broker":"330b0f73.614de","x":160,"y":100,"wires":[["e6f68f82.af8a8"]]},{"id":"e6f68f82.af8a8","type":"json","z":"ff0cc945.569628","name":"","property":"payload","action":"obj","pretty":false,"x":410,"y":100,"wires":[["1649fc38.b54aa4"]]},{"id":"eb5abf0c.24b09","type":"switch","z":"ff0cc945.569628","name":"","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"Wifi","vt":"str"},{"t":"eq","v":"SI7021","vt":"str"},{"t":"eq","v":"POWER","vt":"str"},{"t":"eq","v":"Humidity","vt":"str"},{"t":"eq","v":"Temperature","vt":"str"}],"checkall":"true","repair":false,"outputs":5,"x":750,"y":100,"wires":[["1649fc38.b54aa4"],["1649fc38.b54aa4"],["e221203e.8219f","c2f45936.d3f738"],["49890712.ffce08","6f8c920b.6dce6c"],["dfc16489.780118","4304702c.3c7de"]]},{"id":"1649fc38.b54aa4","type":"split","z":"ff0cc945.569628","name":"","splt":"\\n","spltType":"str","arraySplt":1,"arraySpltType":"len","stream":false,"addname":"topic","x":600,"y":100,"wires":[["eb5abf0c.24b09"]]},{"id":"e221203e.8219f","type":"ui_switch","z":"ff0cc945.569628","name":"Sonoff TH10 Kinderzimmer Ein / Aus","label":"Sonoff TH10 Kinderzimmer Ein / Aus","tooltip":"","group":"79cbaec2.dcb32","order":1,"width":"0","height":"0","passthru":false,"decouple":"true","topic":"POWER","style":"","onvalue":"ON","onvalueType":"str","onicon":"","oncolor":"","offvalue":"OFF","offvalueType":"str","officon":"","offcolor":"","x":1110,"y":40,"wires":[["b5b1d483.fd3328","c2f45936.d3f738"]]},{"id":"b5b1d483.fd3328","type":"mqtt out","z":"ff0cc945.569628","name":"Relais","topic":"sonofftemphumi/cmnd/POWER","qos":"0","retain":"","broker":"330b0f73.614de","x":1350,"y":40,"wires":[]},{"id":"2edb1cf3.68ac34","type":"mqtt in","z":"ff0cc945.569628","name":"RESULT","topic":"sonofftemphumi/stat/RESULT","qos":"0","datatype":"auto","broker":"330b0f73.614de","x":240,"y":220,"wires":[["e6f68f82.af8a8"]]},{"id":"dfc16489.780118","type":"ui_text","z":"ff0cc945.569628","group":"79cbaec2.dcb32","order":2,"width":"0","height":"0","name":"Temperature","label":"Temperature","format":"{{msg.payload}}Ā°C","layout":"row-spread","x":1030,"y":220,"wires":[]},{"id":"897afef1.38816","type":"mqtt in","z":"ff0cc945.569628","name":"SENSOR","topic":"sonofftemphumi/tele/SENSOR","qos":"0","datatype":"auto","broker":"330b0f73.614de","x":240,"y":180,"wires":[["e6f68f82.af8a8"]]},{"id":"4304702c.3c7de","type":"ui_chart","z":"ff0cc945.569628","name":"Temperature","group":"e9c7a01e.c0955","order":1,"width":0,"height":0,"label":"Temperature","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":1030,"y":268,"wires":[[]]},{"id":"49890712.ffce08","type":"ui_text","z":"ff0cc945.569628","group":"79cbaec2.dcb32","order":3,"width":"0","height":"0","name":"Humidity","label":"Humidity","format":"{{msg.payload}}%","layout":"row-spread","x":1020,"y":140,"wires":[]},{"id":"6f8c920b.6dce6c","type":"ui_chart","z":"ff0cc945.569628","name":"Humidity","group":"e9c7a01e.c0955","order":2,"width":0,"height":0,"label":"Humidity","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":1020,"y":180,"wires":[[]]},{"id":"36339221.35f4ae","type":"ui_chart","z":"ff0cc945.569628","name":"Einschalt","group":"e9c7a01e.c0955","order":3,"width":0,"height":0,"label":"Einschalt","chartType":"line","legend":"false","xformat":"HH:mm","interpolate":"step","nodata":"","dot":true,"ymin":"0","ymax":"1","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"604800","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":1200,"y":100,"wires":[[]]},{"id":"c2f45936.d3f738","type":"change","z":"ff0cc945.569628","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"ON","fromt":"str","to":"1","tot":"str"},{"t":"change","p":"payload","pt":"msg","from":"OFF","fromt":"str","to":"0","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1040,"y":100,"wires":[["36339221.35f4ae"]]},{"id":"817d0aeb.f3fa48","type":"inject","z":"ff0cc945.569628","name":"every 20s","topic":"","payload":"","payloadType":"date","repeat":"20","crontab":"","once":true,"onceDelay":0.1,"x":110,"y":300,"wires":[["e16f1345.eb53e"]]},{"id":"e16f1345.eb53e","type":"mqtt out","z":"ff0cc945.569628","name":"","topic":"sonofftemphumi/stat/POWER","qos":"","retain":"","broker":"330b0f73.614de","x":350,"y":300,"wires":[]},{"id":"c73f6d9.b74a89","type":"comment","z":"ff0cc945.569628","name":"TH10 Feuchtigkeitsmesser im Kinderzimmer","info":"","x":190,"y":40,"wires":[]},{"id":"330b0f73.614de","type":"mqtt-broker","z":"","name":"Mosquitto","broker":"192.168.178.33","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"79cbaec2.dcb32","type":"ui_group","z":"","name":"Sensoren","tab":"5a358c27.d35694","order":1,"disp":true,"width":"6","collapse":true},{"id":"e9c7a01e.c0955","type":"ui_group","z":"","name":"Chart","tab":"5a358c27.d35694","order":2,"disp":true,"width":"6","collapse":true},{"id":"5a358c27.d35694","type":"ui_tab","z":"","name":"Kinderzimmer","icon":"fa-child","order":5,"disabled":false,"hidden":false}]
2 Likes

Flow sensors can be a real problem for my project but yours is simple. Try this one.

I on the other-hand have to develop a new class of sensor not affected by Mach 4.5 shock wave on a 2" NPT line.

Here is my code on a Raspberry Pi 4 4GB processor using this sensor.

The code they provide....Sucks so I modified another Python code snippet to get what I wanted for my project.

I have the MQTT stuff writing to other nodes that write to zabbix as the long term sensor data and CSV files for the high speed capture runs.

When I figure out how to pass globals into the python from Node-Red then I will add the config data, Or write it to a config file and trigger a reload. Still new to node red.

[{"id":"1d5e81f2.ae544e","type":"inject","z":"352b627d.9c316e","name":"","topic":"","payload":"","payloadType":"date","repeat":"15","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":70,"wires":[["72c11be2.fdeb14"]]},{"id":"72c11be2.fdeb14","type":"python-function","z":"352b627d.9c316e","name":"MCP9808 I2C Inquiry","func":"import time\nimport Adafruit_MCP9808.MCP9808 as MCP9808\nimport os\n\nfrom unittest import TestCase, skipIf\nfrom time import time as now\n\n# Define a function to convert celsius to fahrenheit.\ndef c_to_f(c):\n\treturn c * 9.0 / 5.0 + 32.0\n\n# Default constructor will use the default I2C address (0x18) and pick a default I2C bus.\n#\n# For the Raspberry Pi this means you should hook up to the only exposed I2C bus\n# from the main GPIO header and the library will figure out the bus number based\n# on the Pi's revision.\n#\n# For the Beaglebone Black the library will assume bus 1 by default, which is\n# exposed with SCL = P9_19 and SDA = P9_20.\nsensor = MCP9808.MCP9808()\n\n# Optionally you can override the address and/or bus number:\n#sensor = MCP9808.MCP9808(address=0x20, busnum=2)\n\n# Initialize communication with the sensor.\nsensor.begin()\ntemp = sensor.readTempC()\n\ntempc = ('{0:0.3F}'.format(temp))\n\nmsg['topic'] = \"tempc\"\nmsg['payload'] = tempc\n\nreturn msg","outputs":1,"x":300,"y":70,"wires":[["9208f1fb.9caf8","c0562b67.8b2088"]]},{"id":"9208f1fb.9caf8","type":"unit-converter","z":"352b627d.9c316e","category":"temperature","inputUnit":"C","outputUnit":"F","inputField":"payload","outputField":"payload","inputFieldType":"msg","outputFieldType":"msg","name":"","x":520,"y":70,"wires":[["e1fb5802.838958"]]},{"id":"e1fb5802.838958","type":"function","z":"352b627d.9c316e","name":"Change Topic","func":"msg.topic = \"tempf\";\nreturn msg;\n","outputs":1,"noerr":0,"x":700,"y":70,"wires":[["a52abf09.6a8e5","5a5053b1.a96a4c"]]},{"id":"c0562b67.8b2088","type":"function","z":"352b627d.9c316e","name":"Zabbix local.MCP9808.tempc","func":"var payload=msg.payload;\nmsg.payload = ['Zabbix server', 'local.MCP9808.tempc', payload ]\nreturn msg;\n","outputs":1,"noerr":0,"x":560,"y":110,"wires":[[]]},{"id":"a52abf09.6a8e5","type":"function","z":"352b627d.9c316e","name":"Zabbix local.MCP9808.tempf","func":"var payload=msg.payload;\nmsg.payload = ['Zabbix server', 'local.MCP9808.tempf', payload ]\nreturn msg;","outputs":1,"noerr":0,"x":940,"y":70,"wires":[["ee209ac6.f77748"]]},{"id":"2878a89a.dfa418","type":"iot-datasource","z":"352b627d.9c316e","name":"local.MCP9808.tempf","tstampField":"","dataField":"data","disableDiscover":false,"x":1540,"y":70,"wires":[[]]},{"id":"ee209ac6.f77748","type":"function","z":"352b627d.9c316e","name":"Add Timestamp","func":"var now = ( new Date() ).getTime();\nvar value=msg.payload[2];\nmsg.payload = {\n    tstamp: now,\n    data: value\n};\nreturn msg;","outputs":1,"noerr":0,"x":1160,"y":70,"wires":[["6cf15555.e516dc"]]},{"id":"6cf15555.e516dc","type":"change","z":"352b627d.9c316e","name":"","rules":[{"t":"change","p":"topic","pt":"msg","from":"tempf","fromt":"str","to":"","tot":"str"},{"t":"delete","p":"_msgid","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1340,"y":70,"wires":[["2878a89a.dfa418"]]},{"id":"5a5053b1.a96a4c","type":"mqtt out","z":"352b627d.9c316e","name":"MCP9808 Temperature","topic":"home/temperature","qos":"","retain":"","broker":"6b8f56d7.82af78","x":930,"y":110,"wires":[]},{"id":"9fa72fd9.315c2","type":"mqtt in","z":"352b627d.9c316e","name":"Temperature - Farenheit","topic":"home/temperature","qos":"2","datatype":"auto","broker":"6b8f56d7.82af78","x":1270,"y":110,"wires":[["3e67068f.47d2fa"]]},{"id":"3e67068f.47d2fa","type":"ui_chart","z":"352b627d.9c316e","name":"Temperature - Farenheit","group":"ce13473e.f4756","order":1,"width":"38","height":"6","label":"Temperature - Farenheit","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"7","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"outputs":1,"x":1530,"y":110,"wires":[[]]},{"id":"6b8f56d7.82af78","type":"mqtt-broker","z":"","name":"PI","broker":"127.0.0.1","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"home/temperature","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"ce13473e.f4756","type":"ui_group","z":"","name":"Graphs","tab":"91b245b1.b4ed7","order":11,"disp":true,"width":"38","collapse":true},{"id":"91b245b1.b4ed7","type":"ui_tab","z":"","name":"Pump Control Dashboard","icon":"dashboard","order":3,"disabled":false,"hidden":false}]

I personally be fan of the BME280 working for years as a temperature/humidity and pressure sensor. These sensor is working in the outside for years now without any problems.
The pressure sensor is so sensitive that you can detect if a door of an otherwise closed room is opened or closed. You only have to catch the short peak. Or measure the efficiency of a fan.
Or the AM23xx (AM2305) with a fancy waterproof but humidity transmission case you can berry in the soil without problems for years.
All connected to ESP8266s sending data over wifi with mqtt.

2 Likes

You nailed it. This is the key point to keep track of. I have been monitoring this since years in certain areas in hour house (in the ground and in the attic) using sensors and related logic in Node-RED (earlier with EventGhost). I'm measuring the temperature & relative humidity, calculating the delta (difference from actual temperature to dew point). If delta goes negative there is a problem. Luckily we have never had any condensation so far, I have also verified this regularly with an instrument checking the relative humidity in the wooden construction. It might be surprising but highest risk is during warm summer days, at least here in the Nordics. Reason is because warm air can carry more water and when the air is cooled down (entering the ground or attic), the dew point is reached earlier

Many times you hear people are scared due to high relative humidity but is is not necessary dangerous with high relative humidity alone, it is condensation that is. So monitoring the relative humidity is not enough, you have to calculate the dew point (and delta) to know if you are close to condensation or not

This is my javascript code I use in a function node in Node-RED to calculate the delta:

// See: http://arduinotronics.blogspot.co.uk/2013/12/temp-humidity-w-dew-point-calcualtions.html
// delta max = 0.6544 wrt dewPoint()
// 6.9 x faster than dewPoint()
// reference: http://en.wikipedia.org/wiki/Dew_point
function dewPointFast(celsius, humidity) {
    var a = 17.271;
    var b = 237.7;
    var temp = Math.log(humidity * 0.01) + ((a * celsius) / (b + celsius));
    var Td = (b * temp) / (a - temp);
    return (celsius - Td).toPrecision(4);
}

1 Like

While there may be occasional shockwaves in the toilet I dont think we are up at Mach 4.5....:slight_smile:

1 Like