Central ventilation - prevent same flow to start twice

I want to achieve something, but my brains are failing me :frowning:

I have an Itho ventilation box with 3 speeds (low-mid-high). The plug is a perilex plug which I connected to a Fibaro ZWAVE 2-way switch.
The low speed is ALWAY on and switching to mid or high, one (or both) of the switches needs to be turned on/off.

I have created 3 virtual switches (low / mid / high) in HA and add them to the Lovelace dashboard.

In Node red I have created a flow

  • when switch low is pressed, both Fibaro entities needs to be switched OFF and virtual switch mid and high needs to be switched OFF
  • when switch mid is pressed, 1 Fibaro entitie needs to be switched ON and the other needs to be switched OFF and virtual switch low and high needs to be switched OFF
  • when switch high is pressed, both fibaro entities needs to be switched ON and virtual switch mid and high needs to be switched OFF.

This is working as needed (which will not implicate it is the best optionā€¦ there are more ways to Rome)

Butā€¦ the thing I canā€™t resolve is the following:
When I push (by accident) a button twice the button turns off and I canā€™t tell which speed the fan is set to.

Who has a smart solution for me to prevent a button to be pushed twiceā€¦

[{"id":"95453356.055cb","type":"tab","label":"Flow 2","disabled":false,"info":""},{"id":"b6ff11d5.363dc","type":"server-state-changed","z":"95453356.055cb","name":"LOW","server":"3c5076fb.e901ba","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.fan_low","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":190,"y":160,"wires":[["d604dd32.f2343"],[]]},{"id":"d604dd32.f2343","type":"switch","z":"95453356.055cb","name":"MID-CA OFF and HIGH-CA OFF","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":670,"y":160,"wires":[["5c064e7a.9f5f5","c457269c.e78a58","bfc4308e.88dd1"]]},{"id":"5c064e7a.9f5f5","type":"api-call-service","z":"95453356.055cb","name":"MID-CA OFF","server":"3c5076fb.e901ba","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.binary_power_switch_instance_1_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1010,"y":120,"wires":[[]]},{"id":"c457269c.e78a58","type":"api-call-service","z":"95453356.055cb","name":"HIGH-CA OFF","server":"3c5076fb.e901ba","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.binary_power_switch_instance_2_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1020,"y":200,"wires":[[]]},{"id":"1e3ffd0d.bf73e3","type":"server-state-changed","z":"95453356.055cb","name":"MID","server":"3c5076fb.e901ba","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.fan_mid","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":190,"y":240,"wires":[["b7d7c8db.c72528"],[]]},{"id":"b7d7c8db.c72528","type":"switch","z":"95453356.055cb","name":"MID-CA ON and HIGH-CA OFF","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":670,"y":240,"wires":[["abc0bc04.a5f95","c457269c.e78a58","d7348c8c.ac5c4"]]},{"id":"abc0bc04.a5f95","type":"api-call-service","z":"95453356.055cb","name":"MID-CA ON","server":"3c5076fb.e901ba","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.binary_power_switch_instance_1_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1010,"y":280,"wires":[[]]},{"id":"d6547194.afc26","type":"api-call-service","z":"95453356.055cb","name":"HIGH-CA ON","server":"3c5076fb.e901ba","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.binary_power_switch_instance_2_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1010,"y":360,"wires":[[]]},{"id":"44830f4.b53eff","type":"server-state-changed","z":"95453356.055cb","name":"HIGH","server":"3c5076fb.e901ba","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.fan_high","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":190,"y":320,"wires":[["953d3c8e.acec8"],[]]},{"id":"953d3c8e.acec8","type":"switch","z":"95453356.055cb","name":"MID-CA ON and HIGH-CA ON","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":670,"y":320,"wires":[["abc0bc04.a5f95","d6547194.afc26","2fd490dc.8a2f4"]]},{"id":"d7348c8c.ac5c4","type":"api-call-service","z":"95453356.055cb","name":"Toggle status low + high off","server":"3c5076fb.e901ba","version":1,"debugenabled":false,"service_domain":"homeassistant","service":"turn_off","entityId":"input_boolean.fan_low, input_boolean.fan_high","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1260,"y":240,"wires":[[]]},{"id":"2fd490dc.8a2f4","type":"api-call-service","z":"95453356.055cb","name":"Toggle status low + mid off","server":"3c5076fb.e901ba","version":1,"debugenabled":false,"service_domain":"homeassistant","service":"turn_off","entityId":"input_boolean.fan_low, input_boolean.fan_mid","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1260,"y":320,"wires":[[]]},{"id":"bfc4308e.88dd1","type":"api-call-service","z":"95453356.055cb","name":"Toggle status mid + high off","server":"3c5076fb.e901ba","version":1,"debugenabled":false,"service_domain":"homeassistant","service":"turn_off","entityId":"input_boolean.fan_mid, input_boolean.fan_high","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1260,"y":160,"wires":[[]]},{"id":"3c5076fb.e901ba","type":"server","name":"HomeAssistant@vanHeems","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

Use a limit node?

1 Like

Please explainā€¦ never heard of it and never used itā€¦ it might be a solution but I canā€™t tell

Use a ā€œdelay nodeā€ with action ā€œrate limitā€.

You can limit 1 button press within e.g. 1 or 2 seconds, or more to overcome multiple presses in the same flow.

I have not seen the flow I type from my phone.

Another option is to use trigger and block nodes.
Each button press makes the sequence not work again and the only way to ā€œunblockā€ it is to reset the trigger and block node.

The reset should probably be done when you press one of the other buttons.

So button mid resets low and high sequences.
Button high resets mid and low.
And so on.

That way you can wait hours between the button presses, but you still canā€™t push the same button twice.

Delay node will not prevent me from pushing the button after the delay has ended.
In any case when a button is ā€˜ONā€™ it should no be pushed again and result in ā€˜OFFā€™. OFF should only be the result of pushing one of the other buttons.

i think I now what this should like and I guess it is somewhere the same as a gate node, where the open/close status is triggered by pushing on of the other buttonsā€¦
But my issue is not the automation behind pushing the button (if I turn off manually a button nothing is triggered)ā€¦ my only concern is the button in lovelaceā€¦ the behavior is good based upon the node red flow, but only in case of manually switching off the button needs to return in on position

Sorry I donā€™t understand what you are saying.

If the ventilationbox you have is the same as I have, please be aware with the system you are working with. there are 3 connections to 3 capacitors
L1, L2 and L3.

As you say L3 is always on, that is correct.
But take care you do never have L1 + L2 on together for long periods!!!
Correct options are: ( L3 ) or ( L3 + L2 ) or ( L3 + L1 ).
Never L1 + L2 + L3.
See the diagram in the picture.
This will likely kill the motor sooner or later due to a higher voltage supply than its designed operating windows. It can handle it for a short while, is quite robust. But it is not something to have running 24/7 by design.
To prevent this, I have created two additional automation that does if ( L2 goed from 0to1 > L1 to 0 ) and ( L1 goed from 0to1 > L2 to 0 )

For safety, better to double check if the above also applies for your box.

[edit]
And more towards you question.

  • I have created a boolean in Home Assistant, Ventillation POS1
  • I have created an automation in node red that if L1 AND L2 are off for 5 seconds (that means switch to LOW), the boolean POS1 is toggle to on.
  • I have created an automation in node red that if L1 OR L2 are turned on (that means switch to MID/HIGH), the boolean POS1 is toggle to off.
  • I have created a flow that if Ventillation POS1 is switched on, L1 AND L2 are turned off.

This will result in:
L3 = (LOW) boolean
L2 = (MID) power switch 1 on the fibaro
L1 = (HIGH) power switch 2 on the fibaro
I have changed the icon of the boolean to be the same as the switches inside HA, to make it look good.

The nodered flow I use look like this:

[{"id":"1cb6fbb8.9c5dd4","type":"server-state-changed","z":"60dbc815.eaf0c8","name":"Schakelaar MV - stand 2","server":"a244206a.52df3","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"switch.fibaro_system_fgs223_double_relay_switch","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"x":190,"y":760,"wires":[["70ca62e4.79369c"]]},{"id":"70ca62e4.79369c","type":"switch","z":"60dbc815.eaf0c8","name":"On / Off","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":400,"y":760,"wires":[["6bb1aca2.449da4","ed4e2371.8e49b","e5615a7f.7eaf38"],["ed4e2371.8e49b"]]},{"id":"4ba3f450.73127c","type":"api-call-service","z":"60dbc815.eaf0c8","name":"Stand 3 uit","server":"a244206a.52df3","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.fibaro_system_fgs223_double_relay_switch_2","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":830,"y":700,"wires":[[]]},{"id":"6bb1aca2.449da4","type":"api-call-service","z":"60dbc815.eaf0c8","name":"Boolean Stand 1 uit","server":"a244206a.52df3","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.mechanische_ventilatie_stand_1","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":650,"y":760,"wires":[[]]},{"id":"65173e8a.a5d5a","type":"server-state-changed","z":"60dbc815.eaf0c8","name":"Schakelaar MV - stand 3","server":"a244206a.52df3","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"switch.fibaro_system_fgs223_double_relay_switch_2","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"x":190,"y":1080,"wires":[["8e65bb01.f7f708"]]},{"id":"8e65bb01.f7f708","type":"switch","z":"60dbc815.eaf0c8","name":"On / Off","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":410,"y":1080,"wires":[["eeefc42a.37c418","ed4e2371.8e49b","f67ba90c.172528"],["ed4e2371.8e49b"]]},{"id":"75995b3e.61bcf4","type":"api-call-service","z":"60dbc815.eaf0c8","name":"Stand 2 uit","server":"a244206a.52df3","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.fibaro_system_fgs223_double_relay_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":830,"y":1080,"wires":[[]]},{"id":"eeefc42a.37c418","type":"api-call-service","z":"60dbc815.eaf0c8","name":"Boolean Stand 1 uit","server":"a244206a.52df3","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.mechanische_ventilatie_stand_1","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":650,"y":1140,"wires":[[]]},{"id":"1adc3d04.3b02e3","type":"api-current-state","z":"60dbc815.eaf0c8","name":"Is stand 3 ook uit?","server":"a244206a.52df3","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.fibaro_system_fgs223_double_relay_switch_2","state_type":"str","state_location":"","override_payload":"none","entity_location":"","override_data":"none","blockInputOverrides":false,"x":850,"y":920,"wires":[["4f2fff76.e9c88"],[]]},{"id":"4f2fff76.e9c88","type":"api-call-service","z":"60dbc815.eaf0c8","name":"Boolean - Stand 1 aan","server":"a244206a.52df3","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_on","entityId":"input_boolean.mechanische_ventilatie_stand_1","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1080,"y":920,"wires":[[]]},{"id":"ed4e2371.8e49b","type":"trigger","z":"60dbc815.eaf0c8","name":"5s Delay Off","op1":"","op2":"","op1type":"nul","op2type":"payl","duration":"5","extend":true,"units":"s","reset":"On","bytopic":"all","outputs":1,"x":230,"y":920,"wires":[["1055cff3.7efd4"]]},{"id":"5edb3dfa.1686a4","type":"api-current-state","z":"60dbc815.eaf0c8","name":"Is stand 2 uit?","server":"a244206a.52df3","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.fibaro_system_fgs223_double_relay_switch","state_type":"str","state_location":"","override_payload":"none","entity_location":"","override_data":"none","blockInputOverrides":false,"x":640,"y":920,"wires":[["1adc3d04.3b02e3"],[]]},{"id":"e8388eb7.735b3","type":"server-state-changed","z":"60dbc815.eaf0c8","name":"Boolean MV - stand 1","server":"a244206a.52df3","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.mechanische_ventilatie_stand_1","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"x":180,"y":1280,"wires":[["6e17c1b2.7a3ba","e55156c7.176438"],[]]},{"id":"6e17c1b2.7a3ba","type":"api-call-service","z":"60dbc815.eaf0c8","name":"Stand 2 uit","server":"a244206a.52df3","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.fibaro_system_fgs223_double_relay_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":630,"y":1280,"wires":[[]]},{"id":"e55156c7.176438","type":"api-call-service","z":"60dbc815.eaf0c8","name":"Stand 3 uit","server":"a244206a.52df3","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.fibaro_system_fgs223_double_relay_switch_2","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":630,"y":1340,"wires":[[]]},{"id":"ad87d8ab.1d01b8","type":"comment","z":"60dbc815.eaf0c8","name":"Mechanische ventilatie","info":"","x":140,"y":700,"wires":[]},{"id":"1055cff3.7efd4","type":"switch","z":"60dbc815.eaf0c8","name":"Off","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":390,"y":920,"wires":[[],["5edb3dfa.1686a4"]]},{"id":"e5615a7f.7eaf38","type":"api-current-state","z":"60dbc815.eaf0c8","name":"MV3 aan?","server":"a244206a.52df3","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.fibaro_system_fgs223_double_relay_switch_2","state_type":"str","state_location":"","override_payload":"none","entity_location":"","override_data":"none","blockInputOverrides":false,"x":630,"y":700,"wires":[["4ba3f450.73127c"],[]]},{"id":"f67ba90c.172528","type":"api-current-state","z":"60dbc815.eaf0c8","name":"MV2 aan?","server":"a244206a.52df3","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.fibaro_system_fgs223_double_relay_switch","state_type":"str","state_location":"","override_payload":"none","entity_location":"","override_data":"none","blockInputOverrides":false,"x":630,"y":1080,"wires":[["75995b3e.61bcf4"],[]]},{"id":"a244206a.52df3","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

a suggestion: :slight_smile:
When showering the humidity rises quickly. You could now use a humidity sensor in your bathroom to trigger the ventillation to HIGH settings. For this I have created a binary sensor which goes to ON if the humidity increase is faster than one would expect by normal weather influences.
I use a philio multisensor and I am happy with it, but you can use any I would expect.

binary sensor:

- platform: trend
  sensors:
    badkamer_relative_humidity_trigger_vochtig:
      entity_id: sensor.philio_technology_corp_ph_pat02_b_eu_multisensor_2in1_relative_humidity
      min_gradient: 0.08
      device_class: moisture

In node red I have created this flow

Thnx for your reply and flows you shared. Funny thing is we are doing the same, but with a different approach. I will check your solution later today to see if this is the answer to my problem (hopefully)ā€¦

An in regards to the humidityā€¦ I was indeed also looking for a solution to have the box respond on the humidity (both shower and tumble dryer are in the same room)
The only thing I now control is the tumble dryer which is plugged into a smart plug (when it requests powerā€¦ bla bla.
When someone is taking a shower we need to manually change the position of the box.

The easiest one was to buy a new box with the humidity sensor integrated (but also most expensive, so not a real option)
Also an option is to buy the Humidity sensor of Itho and to connect it with the box (but also approx 100ā‚¬)

So I will definitely take a close look at your solution

Keep you posted

I have tried your flow and it looks like you are facing the same problemā€¦
when lowest speed is on and you (accidentally) push it off it remains off and nothing happensā€¦

Thanks to you I fixed the positions of mid and highā€¦ I wrongly used the switch position in high so at least thatā€™s fixed.

Now Iā€™m going back to the drawing board and will try to figure out how to solve the issue

Ah, now I understand your issue better. I tested it, and your right. I can turn boolean 1 off, so everying if off, which looks weird and is not the reality ofcourse. But this problem (if you can call it a problem) is solved when you select Pos2 or 3 again.

I never ever experienced this situations for two reasons.
1, I never touch the software buttons of HA. no need, because the automation works flawless.
2, I use the buttons as indicator mostly, to solve the visual issue. I use an overlay of images of the buttonimage. On 1 button!. So image 1 is the base, 2 or 3 ontop of it. I use this in picture element view.
LOW Boolean 1: image on+off are identical
MID switch 1 image on (image off opacity so its transparent)
HIGH switch 2 image on (image off opacity so its transparent)
I attached the images I use, the idea is clear I guess.
fan_stand_3 fan_stand_1 fan_stand_2

You could make a Flow which looks at the low boolean off state. If boolean Goes from on to off, and switch 1+2 are not turned on, switch boolean to on again after a second or 2 delay. That should be easy enough and should work. I can create a draft for you this evening. If you like

Sometimes things are more easier than expectedā€¦ Sometimes you only need a push in the right directionā€¦

Andā€¦ yes, in case it is set to off it is not a real problem, you only canā€™t tell in which state it is in (that solved now).

Reason for having it on my dashboard is for my wife when she starts cooking ( and when someone is taking a shower as this is not automated yet :slight_smile:) I have an Zigbee Aqara temp/hum sensor and will try to use thisā€¦

Thnx for the tips and tricks :+1:

1 Like

I will create the change as i suggested anyway and use it myself, and post it here.
Good luck! :slightly_smiling_face:

1 Like

This works. I have it running now and it seems robust.

[{"id":"6e17c1b2.7a3ba","type":"api-call-service","z":"60dbc815.eaf0c8","name":"Stand 2 uit","server":"a244206a.52df3","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.fibaro_system_fgs223_double_relay_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":630,"y":1320,"wires":[["a539de57.abf32"]]},{"id":"e55156c7.176438","type":"api-call-service","z":"60dbc815.eaf0c8","name":"Stand 3 uit","server":"a244206a.52df3","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.fibaro_system_fgs223_double_relay_switch_2","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":970,"y":1320,"wires":[[]]},{"id":"ee8a3b5a.f38b98","type":"server-state-changed","z":"60dbc815.eaf0c8","name":"Boolean MV - stand 1","server":"a244206a.52df3","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.mechanische_ventilatie_stand_1","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":"","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":180,"y":1400,"wires":[["3540cabe.9cf3b6"]]},{"id":"3540cabe.9cf3b6","type":"switch","z":"60dbc815.eaf0c8","name":"On / Off","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":380,"y":1400,"wires":[["6e17c1b2.7a3ba"],["d8326edc.e7fd9"]]},{"id":"d8326edc.e7fd9","type":"delay","z":"60dbc815.eaf0c8","name":"","pauseType":"delay","timeout":"3","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":400,"y":1480,"wires":[["c5f99bbe.1c6a38"]]},{"id":"c5f99bbe.1c6a38","type":"api-current-state","z":"60dbc815.eaf0c8","name":"Is stand 2 off?","server":"a244206a.52df3","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.fibaro_system_fgs223_double_relay_switch","state_type":"str","state_location":"","override_payload":"none","entity_location":"","override_data":"none","blockInputOverrides":false,"x":600,"y":1480,"wires":[["8d73d122.e9f73"],[]]},{"id":"8d73d122.e9f73","type":"api-current-state","z":"60dbc815.eaf0c8","name":"Is stand 3 off?","server":"a244206a.52df3","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"switch.fibaro_system_fgs223_double_relay_switch_2","state_type":"str","state_location":"","override_payload":"none","entity_location":"","override_data":"none","blockInputOverrides":false,"x":820,"y":1480,"wires":[["2ca0eec9.285f72"],[]]},{"id":"2ca0eec9.285f72","type":"api-call-service","z":"60dbc815.eaf0c8","name":"Boolean - Stand 1 aan","server":"a244206a.52df3","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_on","entityId":"input_boolean.mechanische_ventilatie_stand_1","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1040,"y":1480,"wires":[[]]},{"id":"a539de57.abf32","type":"delay","z":"60dbc815.eaf0c8","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":800,"y":1320,"wires":[["e55156c7.176438"]]},{"id":"a244206a.52df3","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

note: this is a replacement for the other Boolean MV - Stand 1 I posted earlier.

I think what youā€™re looking for is this: you have 3 input booleans for the speed. You make an automation/NR flow that only one of those 3 can be ā€˜onā€™ at any given time.

Instead of toggling the button on a press, you call the input_boolean.turn_on service. This way, you cannot accidently turn the button off anymore, it can only be turned off by pressing on another button.

Preferably though, you should solve this with an input_select :wink:

Hi, I think you are talking about the HA GUI side correct?
That is smart to do as well, so you can only turn buttons on, not off. good idea. under the hood, it is still possible to toggle directly, but if you dont present that toggle, issue solved :slight_smile:

Iā€™m new (how long can I use this excuse :yum:) to HA and NR. I have it running now for approx a month and Iā€™m now trying to ā€˜fixā€™ some issues (for me an issue, for others notā€¦ but if something is possible I will try to find a solution and this helps me with my learning curve)

The solution nontijt provided is a working oneā€¦ the last addition was the same as I have
I have added a timer to low and mid as the box is in a closet on my daughters room and donā€™t want to have it noticeable when she is trying to sleep.

Iā€™m curious how you humidity solution works. It should also be working with my Aqara sensor but I need to know the logic behind it. Will this automatically used as a trigger?

Yes, the UI. Turning off the booleans is done via automations or NR.

1 Like