Node-Red flow examples

I would suggest two flows.

  1. Simple presence (we use android devices and google maps)
    A. Input_boolean (for each person/device you want to trigger presence) (i.e. Mom_home or dad_home)
    B. input_boolean = House Occupied (turned on via node-red when any person is home (see The HookUp video talking about presence for the flow)
  2. Trigger your actions using a bigtimer for when to be open or close, then use current_state node with a halt if action to stop when your conditions aren’t met.

This should server you very well. Besides then you can use your presence detection in other flows also. I’d be happy to share more of this, as I use these flows myself and have 4 people tracked in our house plus guests.

1 Like

I have been using HA for a little while and it is been very useful. Primarily for the multi-vendor integration. For example, I have outside flood lights on a Shelly1, and two seperate outdoor carriage lights on individual wemo wall switches. Neither Shelly or Wemo (Belkin) have any way to tie the two together. I also prefer little or no cloud usage. HA to the rescue.

Anyway, my current task to solve is “wake-lights”. I have several Philips Hue multi-color bulbs. For various reasons I can share in another post, I didn’t have a use for them until now. They are in simple floor/desk fixtures/lamps. I want to trigger them to turn on (slowly increase brightness/set color over 5 minutes). I would like this to be triggered by an alarm or schedule (big timer?, light scheduler?) I got light scheduler to work. However, (THE PROBLEM), I would like the schedule/trigger to only occur if that individual is home (I already have presence working with booleans in HA for each person.

I cannot seem to get this working. I should mention, that I want to do this in node-red and currently use version v0.20.5.
Can someone please offer some thoughts or ideas, or assistance?

Thanks in advance.

CJ

Thanks for your reply, maybe on other flow I’ll try to check the eztimer palette, the main problem was that i only wanted to open the windows if it was during day and if someone was home, and open and close when we arrive/leave during day
For now, on this flow because it just work perfectly I will just leave it as it is

Hello, thanks for your feedback,

I use BLE and wifi presence detection through home assistant, and then a group for all the people that are tracked, you think it would be better to do it with input booleans?
tried to use bigtimer but couldn’t figure it out, so just used the time range node, can you share the config for the bigtimer node in a similiar use
because this flow just work probably will not change it, if ain’t broken don’t fix it.
Good luck with your “wake-lights”

Here’s how I do alarm clock. I have an input_datetime to schedule the alarm using the HA UI.

OR I can schedule on my personal calendar, which only runs if I’m home. Could set this up per-user.

I just use the caldav integration for calendar. When the calendar entity turns to ‘on’, run the alarm sequence for whatever you want (fade in lights etc).

calendar:
  - platform: caldav
    username: !secret caldav_user
    password: !secret caldav_pass
    url: !secret caldav_url
    custom_calendars:
      - name: 'Brad Scheduled Alarm'
        calendar: 'Personal'
        search: 'Alarm'
1 Like

Thanks for all the great ideas and flows! Here is a small contribution that i have been working on.

This allows you to say Alexa turn off the lamp to the living room echo
and only the lamp in the living room turn on. But say the same command
from the bedroom and only the lamp in the bedroom will turn on.
Works similar to using the context aware groups in the alexa app
and saying turn on or off the lights, except no cloud processing so much
faster response and can be applied to
locks, lights, lamps, doors anything really.

Enjoy!

[{"id":"9026737c.f80b3","type":"alexa-local","z":"a2b15e8b.e2456","devicename":"Br lmp","inputtrigger":true,"x":150,"y":1560,"wires":[["927904e.473f7f8","160a3941.f25ff7"]]},{"id":"bfa9c757.3e9c78","type":"alexa-local","z":"a2b15e8b.e2456","devicename":"chr lmp","inputtrigger":true,"x":140,"y":1640,"wires":[["9dda15d7.c66768","160a3941.f25ff7"]]},{"id":"927904e.473f7f8","type":"api-current-state","z":"a2b15e8b.e2456","name":"Last Alexa is\" Bedroom \"","server":"c5c66771.d1eb38","version":1,"outputs":2,"halt_if":"media_player.master_bedroom","halt_if_type":"str","halt_if_compare":"is","override_topic":true,"entity_id":"sensor.last_alexa","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":330,"y":1520,"wires":[["160a3941.f25ff7"],[]]},{"id":"160a3941.f25ff7","type":"switch","z":"a2b15e8b.e2456","name":"Echo, Dot Entity Id","property":"payload","propertyType":"msg","rules":[{"t":"regex","v":"media_player.master_bedroom","vt":"str","case":false},{"t":"regex","v":"media_player.front_room","vt":"str","case":false}],"checkall":"true","repair":false,"outputs":2,"x":570,"y":1600,"wires":[["1b924ec1.a882b1"],["4526517b.0c798"]]},{"id":"6dfa40e6.41d2b","type":"api-call-service","z":"a2b15e8b.e2456","name":"Shelbys Chair Lamp-- \" Off \"","server":"c5c66771.d1eb38","service_domain":"light","service":"turn_off","data":"{\"entity_id\":\"light.shelbys_chair_lamp\"}","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":960,"y":1640,"wires":[[]]},{"id":"1b924ec1.a882b1","type":"switch","z":"a2b15e8b.e2456","name":"on / off ","property":"bri","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"str"},{"t":"gte","v":"1","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":770,"y":1560,"wires":[["cf99d123.f456c"],["37973388.0d3bdc"]]},{"id":"9dda15d7.c66768","type":"api-current-state","z":"a2b15e8b.e2456","name":"Last Alexa is\" Living Room\"","server":"c5c66771.d1eb38","version":1,"outputs":2,"halt_if":"media_player.front_room","halt_if_type":"str","halt_if_compare":"is","override_topic":true,"entity_id":"sensor.last_alexa","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":340,"y":1680,"wires":[["160a3941.f25ff7"],[]]},{"id":"69ef35df.e46c5c","type":"api-call-service","z":"a2b15e8b.e2456","name":"Shelbys Chair Lamp-- \" On \"","server":"c5c66771.d1eb38","service_domain":"light","service":"turn_on","data":"{\"entity_id\":\"light.shelbys_chair_lamp\"}","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":960,"y":1700,"wires":[[]]},{"id":"37973388.0d3bdc","type":"api-call-service","z":"a2b15e8b.e2456","name":"Shelbys Bedside Lamp-- \" On\"","server":"c5c66771.d1eb38","service_domain":"light","service":"turn_on","data":"{\"entity_id\":\"light.shelbys_bedside_lamp\"}","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":970,"y":1580,"wires":[[]]},{"id":"cf99d123.f456c","type":"api-call-service","z":"a2b15e8b.e2456","name":"Shelbys Bedside Lamp-- \" Off \"","server":"c5c66771.d1eb38","service_domain":"light","service":"turn_off","data":"{\"entity_id\":\"light.shelbys_bedside_lamp\"}","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":970,"y":1520,"wires":[[]]},{"id":"4526517b.0c798","type":"switch","z":"a2b15e8b.e2456","name":"on / off ","property":"bri","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"str"},{"t":"gte","v":"1","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":770,"y":1660,"wires":[["6dfa40e6.41d2b"],["69ef35df.e46c5c"]]},{"id":"218bbd57.4764c2","type":"comment","z":"a2b15e8b.e2456","name":"Control Lamps, Locks, Etc... Based on Last Alexa Spoken to LOCAL NO CLOUD","info":"Request is called from echo \"alexa turn off the lamp\"\nAlexa local node fires into the Last Alexa Call Service Node\nWhere the echo spoken to is determined and sent out to the\n\"echo entity id\"  switch node\nAlexa local node also fires into the \"echo entity id\"  switch node\nwith the msg.bri value (100 for on and 0 for off, no dimming yet)\nOnly the echo entity id spoken to passes the msg.bri value \nout to the on / off switch node where 0 for off or 100 for on  \nis sent to the lamp on or lamp off call service node respectivly.\n\nThis allows you to say Alexa turn off the lamp to the living room echo \nand only the lamp in the living room turn on. But say the same command \nfrom the bedroom and only the lamp in the bedroom will turn on.\nWorks similar to useing the context aware groups in the alexa app \nand saying turn on or off the lights, except no cloud processing so much \nfaster responce and can be applied to \nlocks, lights, lamps, doors anything really.\n\nEnjoy!\n\n","x":620,"y":1440,"wires":[]},{"id":"c5c66771.d1eb38","type":"server","z":"","name":"Posting Server","legacy":false,"hassio":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true}]
3 Likes

Here is a small example of how I use my Lutron Pico remotes in Node-RED to control non-lutron lights (zigbee and z-wave lights). I’m using the Lutron Pro hub which exposed the remote buttons as sensors (using the custom component). Using the buttons was easy for calling events, but I wanted the brighten and dim buttons to work with holds like they do with Lutron switches:

The brighten and dim events call a 250ms loop that checks the button status and calls it again if the button is still held, the fires the level change command again.

You can change the steps for the brightness as well as the minimum and maximum brightness in the brighten or dim nodes.

pico_remote.json

[{"id":"9ce48951.f648a8","type":"server-state-changed","z":"cf4e273e.d72598","name":"Pico ON","server":"b3217b27.630be8","version":1,"entityidfilter":"sensor.master_bedroom_pico","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"1","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"x":140,"y":100,"wires":[["f6e76419.ba49b8"],[]]},{"id":"b9f6cd2f.5618","type":"server-state-changed","z":"cf4e273e.d72598","name":"Pico UP","server":"b3217b27.630be8","version":1,"entityidfilter":"sensor.master_bedroom_pico","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"8","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"x":140,"y":140,"wires":[["43e40cfb.92b664"],[]]},{"id":"e4f2a2d5.abd0d","type":"server-state-changed","z":"cf4e273e.d72598","name":"MIDDLE","server":"b3217b27.630be8","version":1,"entityidfilter":"sensor.master_bedroom_pico","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"2","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"x":140,"y":180,"wires":[["29083b07.59cda4"],[]]},{"id":"894a63a9.12fb7","type":"server-state-changed","z":"cf4e273e.d72598","name":"Pico DOWN","server":"b3217b27.630be8","version":1,"entityidfilter":"sensor.master_bedroom_pico","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"16","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"x":150,"y":220,"wires":[["1095e7f0.facfd8"],[]]},{"id":"3fb877df.4d1068","type":"server-state-changed","z":"cf4e273e.d72598","name":"Pico OFF","server":"b3217b27.630be8","version":1,"entityidfilter":"sensor.master_bedroom_pico","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"4","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"x":140,"y":260,"wires":[["3d849107.074ace"],[]]},{"id":"f6e76419.ba49b8","type":"api-call-service","z":"cf4e273e.d72598","name":"Ikea Night Light ON","server":"b3217b27.630be8","service_domain":"light","service":"turn_on","data":"{\"entity_id\":\"light.ikea_night_light\"}","mergecontext":"","output_location":"","output_location_type":"none","x":530,"y":100,"wires":[[]]},{"id":"3d849107.074ace","type":"api-call-service","z":"cf4e273e.d72598","name":"Ikea Night Light OFF","server":"b3217b27.630be8","service_domain":"light","service":"turn_off","data":"{\"entity_id\":\"light.ikea_night_light\"}","mergecontext":"","output_location":"","output_location_type":"none","x":540,"y":260,"wires":[[]]},{"id":"753670eb.f2772","type":"api-call-service","z":"cf4e273e.d72598","name":"Ikea Night Light UP","server":"b3217b27.630be8","service_domain":"light","service":"turn_on","data":"{\"entity_id\":\"light.ikea_night_light\",\"brightness\":\"{{payload}}\"}","mergecontext":"","output_location":"","output_location_type":"none","x":530,"y":140,"wires":[[]]},{"id":"e93c39ae.4f8b78","type":"api-call-service","z":"cf4e273e.d72598","name":"Ikea Night Light DOWN","server":"b3217b27.630be8","service_domain":"light","service":"turn_on","data":"{\"entity_id\":\"light.ikea_night_light\",\"brightness\":\"{{payload}}\"}","mergecontext":"","output_location":"","output_location_type":"none","x":550,"y":220,"wires":[[]]},{"id":"29083b07.59cda4","type":"api-call-service","z":"cf4e273e.d72598","name":"Ikea Night Light ON","server":"b3217b27.630be8","service_domain":"light","service":"turn_on","data":"{\"entity_id\":\"light.ikea_night_light\",\"brightness_pct\":\"20\"}","mergecontext":"","output_location":"","output_location_type":"none","x":530,"y":180,"wires":[[]]},{"id":"43e40cfb.92b664","type":"api-render-template","z":"cf4e273e.d72598","name":"Brighten","server":"b3217b27.630be8","template":"{{ [255, state_attr('light.ikea_night_light', 'brightness')|int(0) + 26]|min }}","resultsLocation":"payload","resultsLocationType":"msg","templateLocation":"template","templateLocationType":"msg","x":320,"y":140,"wires":[["753670eb.f2772","6f7693a8.c8334c"]]},{"id":"1095e7f0.facfd8","type":"api-render-template","z":"cf4e273e.d72598","name":"Dim","server":"b3217b27.630be8","template":"{{ [10, state_attr('light.ikea_night_light', 'brightness')|int(0) - 26]|max|int }}","resultsLocation":"payload","resultsLocationType":"msg","templateLocation":"template","templateLocationType":"msg","x":310,"y":220,"wires":[["e93c39ae.4f8b78","1c02f221.a2aa5e"]]},{"id":"8144f2b.7be6a1","type":"comment","z":"cf4e273e.d72598","name":"Master Bedroom Pico","info":"","x":180,"y":60,"wires":[]},{"id":"159407fd.3ba328","type":"api-current-state","z":"cf4e273e.d72598","name":"detect hold","server":"b3217b27.630be8","version":1,"outputs":2,"halt_if":"0","halt_if_type":"str","halt_if_compare":"is_not","override_topic":false,"entity_id":"sensor.master_bedroom_pico","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":670,"y":40,"wires":[["43e40cfb.92b664"],[]]},{"id":"6f7693a8.c8334c","type":"delay","z":"cf4e273e.d72598","name":"250ms delay","pauseType":"delay","timeout":"250","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":510,"y":40,"wires":[["159407fd.3ba328"]]},{"id":"669a2493.0e14cc","type":"api-current-state","z":"cf4e273e.d72598","name":"detect hold","server":"b3217b27.630be8","version":1,"outputs":2,"halt_if":"0","halt_if_type":"str","halt_if_compare":"is_not","override_topic":false,"entity_id":"sensor.master_bedroom_pico","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":670,"y":320,"wires":[["1095e7f0.facfd8"],[]]},{"id":"1c02f221.a2aa5e","type":"delay","z":"cf4e273e.d72598","name":"250ms delay","pauseType":"delay","timeout":"250","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":510,"y":320,"wires":[["669a2493.0e14cc"]]},{"id":"b3217b27.630be8","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true}]
1 Like

I really like how wallpanel is not just showing the UI but also part of my home assistant setup. here are 2 flows linked. first one, when a face is detected by the tablet’s camera, sends it to microsoft azure for recognition. I am using throttle because azure has api call limit.

[{"id":"8ffcc6f5.02a8a8","type":"trigger-state","z":"f56a3748.ec2fc8","name":"face detected","server":"e447d17a.16a64","entityid":"binary_sensor.wallpane_face_detection","entityidfiltertype":"exact","debugenabled":false,"constraints":[{"id":"kif29djc5g","targetType":"this_entity","targetValue":"","propertyType":"current_state","propertyValue":"new_state.state","comparatorType":"is","comparatorValueDatatype":"str","comparatorValue":"on"}],"constraintsmustmatch":"all","outputs":2,"customoutputs":[],"outputinitially":false,"state_type":"str","x":100,"y":440,"wires":[["c66664f9.cd4728"],[]]},{"id":"e7e10a62.d518c8","type":"api-call-service","z":"f56a3748.ec2fc8","name":"scan face","server":"e447d17a.16a64","service_domain":"image_processing","service":"scan","data":"{\"entity_id\":\"image_processing.microsoftface_wallpanel_camera\"}","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":480,"y":440,"wires":[[]]},{"id":"c66664f9.cd4728","type":"throttle","z":"f56a3748.ec2fc8","name":"","throttleType":"time","timeLimit":"10","timeLimitType":"seconds","countLimit":0,"blockSize":0,"locked":false,"x":300,"y":440,"wires":[["e7e10a62.d518c8"]]},{"id":"e447d17a.16a64","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false}]

and the second flow send command to tablet to speak. if it is in the morning (when I am leaving home), tells me the weather (multiple dark sky sensors) and in the afternoon (when I arrive home) tells me what is the average temp at home and how many steps (google fit step count) I did today.

[{"id":"2ec70ea3.8d3842","type":"function","z":"f56a3748.ec2fc8","name":"weather text","func":"varName = msg.name\nvarSummary = msg.payload.state[\"sensor.dark_sky_summary_0d\"]\nvarHourlySummary = msg.payload.state[\"sensor.dark_sky_hourly_summary\"]\nvarTemp = msg.payload.state[\"sensor.dark_sky_temperature\"]\nvarTempHigh = msg.payload.state[\"sensor.dark_sky_daytime_high_temperature_0d\"]\nvarPercipProb = msg.payload.state[\"sensor.dark_sky_precip_probability_0d\"]\n\nmsg.payload = {}\nmsg.payload.speak = \"Good morning \"+ varName +\". The weather is \" + \nvarSummary + \" \" + varHourlySummary + \" Currently it is \" + varTemp + \n\" degree celcius, maximum temperature will be \" + varTempHigh + \" and \" + \nvarPercipProb + \" percent chance of rain.\"\n\nreturn msg;","outputs":1,"noerr":0,"x":990,"y":520,"wires":[["66b2ebc4.856504"]]},{"id":"7d46b9bf.b6c508","type":"ha-get-entities","z":"f56a3748.ec2fc8","server":"e447d17a.16a64","name":"weather sensors","rules":[{"property":"entity_id","logic":"starts_with","value":"sensor.dark_sky","valueType":"str"}],"output_type":"split","output_empty_results":false,"output_location_type":"msg","output_location":"payload","output_results_count":1,"x":630,"y":580,"wires":[["6ff775ba.ecb54c"]]},{"id":"6ff775ba.ecb54c","type":"join","z":"f56a3748.ec2fc8","name":"","mode":"custom","build":"object","property":"payload.state","propertyType":"msg","key":"payload.entity_id","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"num","reduceFixup":"","x":830,"y":560,"wires":[["2ec70ea3.8d3842"]]},{"id":"af057a45.c8ab48","type":"time-range-switch","z":"f56a3748.ec2fc8","name":"","lat":"52.30808","lon":"4.94386","startTime":"07:00","endTime":"12:00","startOffset":0,"endOffset":0,"x":400,"y":620,"wires":[["7d46b9bf.b6c508"],["bc3db1b7.ed037"]]},{"id":"6c7a044b.ac4a8c","type":"trigger-state","z":"f56a3748.ec2fc8","name":"who is this","server":"e447d17a.16a64","entityid":"image_processing.microsoftface_wallpanel_camera","entityidfiltertype":"exact","debugenabled":false,"constraints":[{"id":"19gicrnj3w3","targetType":"this_entity","targetValue":"","propertyType":"current_state","propertyValue":"new_state.state","comparatorType":"is_not","comparatorValueDatatype":"str","comparatorValue":"unknown"}],"constraintsmustmatch":"all","outputs":2,"customoutputs":[],"outputinitially":false,"state_type":"str","x":90,"y":540,"wires":[["17c38007.2e296"],[]]},{"id":"6934328f.53a7cc","type":"change","z":"f56a3748.ec2fc8","name":"face","rules":[{"t":"move","p":"payload","pt":"msg","to":"name","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":450,"y":540,"wires":[["af057a45.c8ab48"]]},{"id":"4680dfbf.385f3","type":"api-current-state","z":"f56a3748.ec2fc8","name":"temperature","server":"e447d17a.16a64","version":"1","outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"sensor.average_temperature","state_type":"str","state_location":"temperature","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":830,"y":700,"wires":[["9a810830.fef898"]]},{"id":"9a810830.fef898","type":"function","z":"f56a3748.ec2fc8","name":"home temp text","func":"varName = msg.name;\nvarTemp = msg.temperature;\nvarSteps = msg.steps;\n\nif (varSteps === null) {\n  txtSteps = \"\";\n} else {\n  txtSteps = \"You made \" + varSteps + \" steps today. Good Job!\" ;    \n}\n\nmsg.payload = {};\nmsg.payload.speak = \"Good afternoon \"+ varName +\n\". The current temperature \" + \"at home is \" + varTemp + \n\" degree celcius. \" + txtSteps;\n\nreturn msg;","outputs":1,"noerr":0,"x":1000,"y":700,"wires":[["66b2ebc4.856504"]]},{"id":"66b2ebc4.856504","type":"mqtt out","z":"f56a3748.ec2fc8","name":"speak","topic":"wallpanel/mywallpanel/command","qos":"","retain":"","broker":"ea336ecd.70b63","x":1070,"y":600,"wires":[]},{"id":"17c38007.2e296","type":"ha-wait-until","z":"f56a3748.ec2fc8","name":"wait for alarm","server":"e447d17a.16a64","outputs":2,"entityId":"alarm_control_panel.ha_alarm","property":"state","comparator":"is","value":"disarmed","valueType":"str","timeout":"200","timeoutUnits":"milliseconds","entityLocation":"","entityLocationType":"none","checkCurrentState":true,"blockInputOverrides":true,"x":280,"y":540,"wires":[["6934328f.53a7cc"],["6934328f.53a7cc"]]},{"id":"18606ab5.7b7605","type":"api-current-state","z":"f56a3748.ec2fc8","name":"steps","server":"e447d17a.16a64","version":"1","outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"sensor.google_fit_steps","state_type":"str","state_location":"steps","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":670,"y":640,"wires":[["4680dfbf.385f3"]]},{"id":"bc3db1b7.ed037","type":"switch","z":"f56a3748.ec2fc8","name":"","property":"name","propertyType":"msg","rules":[{"t":"eq","v":"me","vt":"str"},{"t":"eq","v":"wife","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":550,"y":720,"wires":[["18606ab5.7b7605"],["4680dfbf.385f3"]]},{"id":"e447d17a.16a64","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false},{"id":"ea336ecd.70b63","type":"mqtt-broker","z":"","name":"home mqtt","broker":"192.168.178.15","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]

And the last one is for my daughter. Musical statues game :slight_smile:. I still need to move it to lovelace…

1 Like

@serkank great project!!!
Can you share more about code lines?

Not the cleanest but very helpfull for me.
I have in every room and outside a temp sensor and on every window a contact sensor

In the hot summer days i want to get a notification when i should open or close a Window.
This is my approve but with some extras:
No notification if a Window is already open/closed
Just one notification limited with the rbe node

[{"id":"716350e1.8af94","type":"server-state-changed","z":"7fcdb2.d28a925","name":"Wohnzimmer","server":"b2c8f7c4.782188","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.multi_wohnzimmer","entityidfiltertype":"exact","outputinitially":true,"state_type":"num","haltifstate":"","halt_if_type":"entity","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"x":110,"y":260,"wires":[["54e6e97a.6bea98"]]},{"id":"ada8b2b1.9527","type":"server-state-changed","z":"7fcdb2.d28a925","name":"Badezimmer","server":"b2c8f7c4.782188","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.multi_badezimmer","entityidfiltertype":"exact","outputinitially":true,"state_type":"num","haltifstate":"","halt_if_type":"entity","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"x":110,"y":367,"wires":[["4aa72c87.a3c384"]]},{"id":"1925a08c.43ad3f","type":"server-state-changed","z":"7fcdb2.d28a925","name":"balkon ","server":"b2c8f7c4.782188","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.multi_balkon","entityidfiltertype":"exact","outputinitially":true,"state_type":"num","haltifstate":"","halt_if_type":"entity","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"x":90,"y":207,"wires":[["4102f21a.42373c"]]},{"id":"54e6e97a.6bea98","type":"change","z":"7fcdb2.d28a925","name":"inside","rules":[{"t":"set","p":"topic","pt":"msg","to":"inside_temp","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":267,"wires":[["59a81a99.3e6e14"]]},{"id":"4102f21a.42373c","type":"change","z":"7fcdb2.d28a925","name":"outside","rules":[{"t":"set","p":"topic","pt":"msg","to":"outside_temp","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":300,"y":227,"wires":[["59a81a99.3e6e14","86600e9a.7f00f","818839d5.fad1f8"]]},{"id":"59a81a99.3e6e14","type":"join","z":"7fcdb2.d28a925","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":470,"y":247,"wires":[["92cac115.2d80e"]]},{"id":"92cac115.2d80e","type":"function","z":"7fcdb2.d28a925","name":"Comparatore","func":"// this is passed a payload which is an object with\n// properties outside_temp and inside_temp\nif (msg.payload.outside_temp > msg.payload.inside_temp) {\n    msg.payload = 0;\n} else\n{\n    msg.payload = 1;\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":630,"y":247,"wires":[["348df00e.b1377"]]},{"id":"86600e9a.7f00f","type":"join","z":"7fcdb2.d28a925","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":470,"y":287,"wires":[["ed562ff4.0c7de"]]},{"id":"ed562ff4.0c7de","type":"function","z":"7fcdb2.d28a925","name":"Comparatore","func":"// this is passed a payload which is an object with\n// properties outside_temp and inside_temp\nif (msg.payload.outside_temp > msg.payload.inside_temp) {\n    msg.payload = 0;\n} else\n{\n    msg.payload = 1;\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":630,"y":287,"wires":[["d37b4b9a.74b8e8"]]},{"id":"818839d5.fad1f8","type":"join","z":"7fcdb2.d28a925","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":470,"y":327,"wires":[["71083a3c.3b2c64"]]},{"id":"71083a3c.3b2c64","type":"function","z":"7fcdb2.d28a925","name":"Comparatore","func":"// this is passed a payload which is an object with\n// properties outside_temp and inside_temp\nif (msg.payload.outside_temp > msg.payload.inside_temp) {\n    msg.payload = 0;\n} else\n{\n    msg.payload = 1;\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":630,"y":327,"wires":[["2ad2aeaa.c5c7c2"]]},{"id":"78d82711.37e118","type":"change","z":"7fcdb2.d28a925","name":"inside","rules":[{"t":"set","p":"topic","pt":"msg","to":"inside_temp","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":307,"wires":[["86600e9a.7f00f"]]},{"id":"4aa72c87.a3c384","type":"change","z":"7fcdb2.d28a925","name":"inside","rules":[{"t":"set","p":"topic","pt":"msg","to":"inside_temp","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":310,"y":347,"wires":[["818839d5.fad1f8"]]},{"id":"348df00e.b1377","type":"rbe","z":"7fcdb2.d28a925","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":790,"y":247,"wires":[["ecbf886b.57d138"]]},{"id":"2ad2aeaa.c5c7c2","type":"rbe","z":"7fcdb2.d28a925","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":790,"y":327,"wires":[["b0d7c04f.dd738"]]},{"id":"d37b4b9a.74b8e8","type":"rbe","z":"7fcdb2.d28a925","name":"","func":"rbe","gap":"","start":"","inout":"out","property":"payload","x":790,"y":287,"wires":[["4c7e936c.6196dc"]]},{"id":"4c7e936c.6196dc","type":"switch","z":"7fcdb2.d28a925","name":"True","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"0","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":930,"y":287,"wires":[["5d530334.8cfc1c"],["6629919d.7d80f"]]},{"id":"98ffbf35.ed422","type":"function","z":"7fcdb2.d28a925","name":"Fenster Auf","func":"//msg.device = \"iPhone_Dennis\";\n\nvar _friendly_name = msg.data.new_state.attributes.friendly_name;\n//var _unit_of_measurement = msg.payload.attributes.unit_of_measurement;\n//var _state = msg.payload.state;\n\nmsg.payload = \"Das Fenster \" +  _friendly_name + \"kann geöffnet werden\"\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1550,"y":247,"wires":[["bbeb0e59.2897a","14cfe58e.0117ba"]]},{"id":"30a7afcd.04449","type":"function","z":"7fcdb2.d28a925","name":"Fenster Zu","func":"//msg.device = \"iPhone_Dennis\";\n\nvar _friendly_name = msg.data.new_state.attributes.friendly_name;\n//var _unit_of_measurement = msg.payload.attributes.unit_of_measurement;\n//var _state = msg.payload.state;\n\nmsg.payload = \"Das Fenster \" +  _friendly_name + \"sollte geschlossen werden\"\n\nreturn msg;\ndata.new_state.attributes.friendly_name","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1550,"y":327,"wires":[["bbeb0e59.2897a","14cfe58e.0117ba"]]},{"id":"6629919d.7d80f","type":"gate","z":"7fcdb2.d28a925","name":"","controlTopic":"control","defaultState":"open","openCmd":"open","closeCmd":"close","toggleCmd":"","defaultCmd":"","persist":true,"x":1410,"y":327,"wires":[["30a7afcd.04449"]]},{"id":"5d118540.d248cc","type":"change","z":"7fcdb2.d28a925","name":"Öffne Gate","rules":[{"t":"set","p":"payload","pt":"msg","to":"open","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1250,"y":307,"wires":[["6629919d.7d80f"]]},{"id":"5b7f17ed.1f22b8","type":"change","z":"7fcdb2.d28a925","name":"Schließe Gate","rules":[{"t":"set","p":"payload","pt":"msg","to":"close","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1260,"y":347,"wires":[["6629919d.7d80f"]]},{"id":"e7e1adc3.3696e","type":"server-state-changed","z":"7fcdb2.d28a925","name":"Küche ","server":"b2c8f7c4.782188","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.ts_kuche","entityidfiltertype":"exact","outputinitially":true,"state_type":"habool","haltifstate":"","halt_if_type":"entity","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"x":1050,"y":287,"wires":[["2347eb40.8ed6d4","1f6f6892.f84947"]]},{"id":"2347eb40.8ed6d4","type":"switch","z":"7fcdb2.d28a925","name":"Check","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":1070,"y":347,"wires":[["5d118540.d248cc"],["5b7f17ed.1f22b8"]]},{"id":"5d530334.8cfc1c","type":"gate","z":"7fcdb2.d28a925","name":"","controlTopic":"control","defaultState":"open","openCmd":"open","closeCmd":"close","toggleCmd":"","defaultCmd":"","persist":true,"x":1410,"y":247,"wires":[["98ffbf35.ed422"]]},{"id":"90165bdc.750338","type":"change","z":"7fcdb2.d28a925","name":"Öffne Gate","rules":[{"t":"set","p":"payload","pt":"msg","to":"open","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1250,"y":227,"wires":[["5d530334.8cfc1c"]]},{"id":"c672c416.a98228","type":"change","z":"7fcdb2.d28a925","name":"Schließe Gate","rules":[{"t":"set","p":"payload","pt":"msg","to":"close","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1260,"y":267,"wires":[["5d530334.8cfc1c"]]},{"id":"1f6f6892.f84947","type":"switch","z":"7fcdb2.d28a925","name":"Check","property":"payload","propertyType":"msg","rules":[{"t":"false"},{"t":"true"}],"checkall":"true","repair":false,"outputs":2,"x":1070,"y":247,"wires":[["90165bdc.750338"],["c672c416.a98228"]]},{"id":"ecbf886b.57d138","type":"switch","z":"7fcdb2.d28a925","name":"True","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"0","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":930,"y":127,"wires":[["715f469e.decc68"],["c52cadbe.4f4f4"]]},{"id":"b8a97697.3b35f8","type":"function","z":"7fcdb2.d28a925","name":"Fenster Auf","func":"//msg.device = \"iPhone_Dennis\";\n\nvar _friendly_name = msg.data.new_state.attributes.friendly_name;\n//var _unit_of_measurement = msg.payload.attributes.unit_of_measurement;\n//var _state = msg.payload.state;\n\nmsg.payload = \"Das Fenster \" +  _friendly_name + \"kann geöffnet werden\"\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1550,"y":87,"wires":[["bbeb0e59.2897a","14cfe58e.0117ba"]]},{"id":"a28febed.8fee78","type":"function","z":"7fcdb2.d28a925","name":"Fenster Zu","func":"//msg.device = \"iPhone_Dennis\";\n\nvar _friendly_name = msg.data.new_state.attributes.friendly_name;\n//var _unit_of_measurement = msg.payload.attributes.unit_of_measurement;\n//var _state = msg.payload.state;\n\nmsg.payload = \"Das Fenster \" +  _friendly_name + \"sollte geschlossen werden\"\n\nreturn msg;\ndata.new_state.attributes.friendly_name","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1550,"y":167,"wires":[["bbeb0e59.2897a","14cfe58e.0117ba"]]},{"id":"c52cadbe.4f4f4","type":"gate","z":"7fcdb2.d28a925","name":"","controlTopic":"control","defaultState":"open","openCmd":"open","closeCmd":"close","toggleCmd":"","defaultCmd":"","persist":true,"x":1410,"y":167,"wires":[["a28febed.8fee78"]]},{"id":"7aaa8e3a.994c8","type":"change","z":"7fcdb2.d28a925","name":"Öffne Gate","rules":[{"t":"set","p":"payload","pt":"msg","to":"open","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1250,"y":147,"wires":[["c52cadbe.4f4f4"]]},{"id":"7973bd8e.720fe4","type":"change","z":"7fcdb2.d28a925","name":"Schließe Gate","rules":[{"t":"set","p":"payload","pt":"msg","to":"close","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1260,"y":187,"wires":[["c52cadbe.4f4f4"]]},{"id":"70f02ee6.e1491","type":"server-state-changed","z":"7fcdb2.d28a925","name":"Wohnzimmer ","server":"b2c8f7c4.782188","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.ts_wohnzimmer","entityidfiltertype":"exact","outputinitially":true,"state_type":"habool","haltifstate":"","halt_if_type":"entity","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"x":1070,"y":127,"wires":[["4e87628e.bb630c","4b80d481.a93ffc"]]},{"id":"4e87628e.bb630c","type":"switch","z":"7fcdb2.d28a925","name":"Check","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":1070,"y":187,"wires":[["7aaa8e3a.994c8"],["7973bd8e.720fe4"]]},{"id":"715f469e.decc68","type":"gate","z":"7fcdb2.d28a925","name":"","controlTopic":"control","defaultState":"open","openCmd":"open","closeCmd":"close","toggleCmd":"","defaultCmd":"","persist":true,"x":1410,"y":87,"wires":[["b8a97697.3b35f8"]]},{"id":"d76acbd1.8e7598","type":"change","z":"7fcdb2.d28a925","name":"Öffne Gate","rules":[{"t":"set","p":"payload","pt":"msg","to":"open","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1250,"y":67,"wires":[["715f469e.decc68"]]},{"id":"dc907af5.6eb8a8","type":"change","z":"7fcdb2.d28a925","name":"Schließe Gate","rules":[{"t":"set","p":"payload","pt":"msg","to":"close","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1260,"y":107,"wires":[["715f469e.decc68"]]},{"id":"4b80d481.a93ffc","type":"switch","z":"7fcdb2.d28a925","name":"Check","property":"payload","propertyType":"msg","rules":[{"t":"false"},{"t":"true"}],"checkall":"true","repair":false,"outputs":2,"x":1070,"y":87,"wires":[["d76acbd1.8e7598"],["dc907af5.6eb8a8"]]},{"id":"b0d7c04f.dd738","type":"switch","z":"7fcdb2.d28a925","name":"True","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"num"},{"t":"eq","v":"0","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":930,"y":447,"wires":[["4b70a0dc.88d88"],["d2b46d3d.78f01"]]},{"id":"a3aa06b2.5735e8","type":"function","z":"7fcdb2.d28a925","name":"Fenster Auf","func":"//msg.device = \"iPhone_Dennis\";\n\nvar _friendly_name = msg.data.new_state.attributes.friendly_name;\n//var _unit_of_measurement = msg.payload.attributes.unit_of_measurement;\n//var _state = msg.payload.state;\n\nmsg.payload = \"Das Fenster \" +  _friendly_name + \"kann geöffnet werden\"\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1550,"y":407,"wires":[["bbeb0e59.2897a","14cfe58e.0117ba"]]},{"id":"efbb9ff9.9ce58","type":"function","z":"7fcdb2.d28a925","name":"Fenster Zu","func":"//msg.device = \"iPhone_Dennis\";\n\nvar _friendly_name = msg.data.new_state.attributes.friendly_name;\n//var _unit_of_measurement = msg.payload.attributes.unit_of_measurement;\n//var _state = msg.payload.state;\n\nmsg.payload = \"Das Fenster \" +  _friendly_name + \"sollte geschlossen werden\"\n\nreturn msg;\ndata.new_state.attributes.friendly_name","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1550,"y":487,"wires":[["bbeb0e59.2897a","14cfe58e.0117ba"]]},{"id":"d2b46d3d.78f01","type":"gate","z":"7fcdb2.d28a925","name":"","controlTopic":"control","defaultState":"open","openCmd":"open","closeCmd":"close","toggleCmd":"","defaultCmd":"","persist":true,"x":1410,"y":487,"wires":[["efbb9ff9.9ce58"]]},{"id":"4d6d3ee1.7837e","type":"change","z":"7fcdb2.d28a925","name":"Öffne Gate","rules":[{"t":"set","p":"payload","pt":"msg","to":"open","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1250,"y":467,"wires":[["d2b46d3d.78f01"]]},{"id":"4339b3ba.7e257c","type":"change","z":"7fcdb2.d28a925","name":"Schließe Gate","rules":[{"t":"set","p":"payload","pt":"msg","to":"close","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1260,"y":507,"wires":[["d2b46d3d.78f01"]]},{"id":"f39a59fb.aa0cd8","type":"server-state-changed","z":"7fcdb2.d28a925","name":"Badezimmer ","server":"b2c8f7c4.782188","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.ts_badezimmer","entityidfiltertype":"exact","outputinitially":true,"state_type":"habool","haltifstate":"","halt_if_type":"entity","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"x":1070,"y":447,"wires":[["d500cecb.71f8f","dc0a2167.0b448"]]},{"id":"d500cecb.71f8f","type":"switch","z":"7fcdb2.d28a925","name":"Check","property":"payload","propertyType":"msg","rules":[{"t":"true"},{"t":"false"}],"checkall":"true","repair":false,"outputs":2,"x":1070,"y":507,"wires":[["4d6d3ee1.7837e"],["4339b3ba.7e257c"]]},{"id":"4b70a0dc.88d88","type":"gate","z":"7fcdb2.d28a925","name":"","controlTopic":"control","defaultState":"open","openCmd":"open","closeCmd":"close","toggleCmd":"","defaultCmd":"","persist":true,"x":1410,"y":407,"wires":[["a3aa06b2.5735e8"]]},{"id":"7eb6a3c2.0e4f4c","type":"change","z":"7fcdb2.d28a925","name":"Öffne Gate","rules":[{"t":"set","p":"payload","pt":"msg","to":"open","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1250,"y":387,"wires":[["4b70a0dc.88d88"]]},{"id":"11cf1249.00483e","type":"change","z":"7fcdb2.d28a925","name":"Schließe Gate","rules":[{"t":"set","p":"payload","pt":"msg","to":"close","tot":"str"},{"t":"set","p":"topic","pt":"msg","to":"control","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1260,"y":427,"wires":[["4b70a0dc.88d88"]]},{"id":"dc0a2167.0b448","type":"switch","z":"7fcdb2.d28a925","name":"Check","property":"payload","propertyType":"msg","rules":[{"t":"false"},{"t":"true"}],"checkall":"true","repair":false,"outputs":2,"x":1070,"y":407,"wires":[["7eb6a3c2.0e4f4c"],["11cf1249.00483e"]]},{"id":"313143fa.b6fabc","type":"server-state-changed","z":"7fcdb2.d28a925","name":"Küche","server":"b2c8f7c4.782188","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.multi_kuche","entityidfiltertype":"exact","outputinitially":true,"state_type":"num","haltifstate":"","halt_if_type":"entity","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"x":90,"y":314,"wires":[["78d82711.37e118"]]},{"id":"6610487f.793908","type":"comment","z":"7fcdb2.d28a925","name":"Lüften nach Temp zum kühlen der Zimmer","info":"Logiken: \nCheck ob Fenster schon auf oder Zu ist\nGetrennt nach Seite der Wohnung\nSpam mit rbe unterbunden\n","x":200,"y":60,"wires":[]},{"id":"14cfe58e.0117ba","type":"pushover api","z":"7fcdb2.d28a925","keys":"","title":"","name":"","x":1747,"y":289,"wires":[]},{"id":"b2c8f7c4.782188","type":"server","z":"","name":"Home","legacy":false,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
2 Likes

Here is a simple flow notifies me via Google Home speakers than the Clothes Dryer has finished.
I use an input_booleen that turns on when the power is >4.0w and then off when the power is 0.0w
When the dryer is turned on but not started the power is less than 4.0w so the automation is only started when the dryer is started putting the power to >4.0w

When the dryer finishes the power is 0.0w and I check the state of the input_booleen. If it is on then I turn it off and send the voice notification to my three Google Home speakers.

[{"id":"b44cf62.6565d08","type":"tab","label":"Appliances","disabled":false,"info":""},{"id":"16eb64b8.a5220b","type":"server-state-changed","z":"b44cf62.6565d08","name":"Dryer Start","server":"561b6a99.74e1b4","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.kitchen_switch_electric_w","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":100,"y":80,"wires":[["3097a6c4.2ee6fa"]]},{"id":"6b549452.b4ed9c","type":"api-call-service","z":"b44cf62.6565d08","name":"Dryer on","server":"561b6a99.74e1b4","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_on","entityId":"input_boolean.dryer_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":520,"y":80,"wires":[[]]},{"id":"3097a6c4.2ee6fa","type":"switch","z":"b44cf62.6565d08","name":">4w or 0.0?","property":"payload","propertyType":"msg","rules":[{"t":"gt","v":"4.0","vt":"num"},{"t":"eq","v":"0.0","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":290,"y":120,"wires":[["6b549452.b4ed9c"],["197046f.ba6c5b9"]]},{"id":"f6d3f463.64ed88","type":"api-call-service","z":"b44cf62.6565d08","name":"Dryer off","server":"561b6a99.74e1b4","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.dryer_switch","data":"","dataType":"json","mergecontext":"","output_location":"payload","output_location_type":"msg","mustacheAltTags":false,"x":600,"y":240,"wires":[["f64b4e89.6e7b4","ee77942d.38a8b8","7242619b.d59ee"]]},{"id":"197046f.ba6c5b9","type":"api-current-state","z":"b44cf62.6565d08","name":"Check dryer booleen state","server":"561b6a99.74e1b4","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"input_boolean.dryer_switch","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":390,"y":240,"wires":[["f6d3f463.64ed88"],[]]},{"id":"f64b4e89.6e7b4","type":"cast-to-client","z":"b44cf62.6565d08","name":"Dryer is done Kitchen","url":"","contentType":"audio","message":"The dryer has  finished","language":"en","ip":"192.168.1.7","port":"","volume":"50","x":820,"y":200,"wires":[[]]},{"id":"7242619b.d59ee","type":"cast-to-client","z":"b44cf62.6565d08","name":"Dryer is done living room","url":"","contentType":"audio","message":"The dryer has  finished","language":"en","ip":"192.168.1.6","port":"","volume":"50","x":830,"y":320,"wires":[[]]},{"id":"ee77942d.38a8b8","type":"cast-to-client","z":"b44cf62.6565d08","name":"Dryer is done Bedroom","url":"","contentType":"audio","message":"The dryer has  finished","language":"en","ip":"192.168.1.10","port":"","volume":"50","x":830,"y":260,"wires":[[]]},{"id":"561b6a99.74e1b4","type":"server","z":"","name":"Home Assistant Biz","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
3 Likes

what component are you using for electrical readings?

I am using a Greenwave Smart Power Socket that can monitor power usage.

Since 2 weeks I’m trying to move away from my cloud based home automation device (Homey) and switching to Home Assistant. Although I’m not a technical guy and have no scripting experience I do like HA a lot. Since this week I’m focussing on automations and I was told to try Node Red.
So since yesterday I did some baby steps and I know I never will be a guru I was pround on my first working Flow, which I’ll share. Any comment is welcome, any improvement I can make please shout out…

The flow is for a central ventilation unit with a perilex plug. It has 3 positions (low - mid - high)
I created 3 boolean toggles with the names Low / Mid / High and used 2 different wall plugs to test.
So the wall plugs will be replaced by the actual fibaro switch module ( FGS-223) and the 3 virtual toggles will be used on the dashboard when needed.

And… this was my struggle with this flow… on the dashboard when I push one button, the other 2 buttons needs to toggle status.

[{"id":"c387524b.e3b6d","type":"tab","label":"Central ventilation","disabled":false,"info":""},{"id":"8a881094.1b71e","type":"server-state-changed","z":"c387524b.e3b6d","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":270,"y":260,"wires":[["1472e31f.39749d","f0fb96ef.202e38","de2b095e.a92338"],[]]},{"id":"1472e31f.39749d","type":"switch","z":"c387524b.e3b6d","name":"off mid-ca and high ca","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":720,"y":380,"wires":[["746221c3.32927","f10f197f.8d7248"]]},{"id":"746221c3.32927","type":"api-call-service","z":"c387524b.e3b6d","name":"MID-CA OFF","server":"3c5076fb.e901ba","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.nas_wr01ze_power_plug_12a_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1210,"y":440,"wires":[[]]},{"id":"526c2530.c1682c","type":"comment","z":"c387524b.e3b6d","name":"NEO = MID-CA and FIBARO = HIGH-CA ","info":"test","x":760,"y":100,"wires":[]},{"id":"f10f197f.8d7248","type":"api-call-service","z":"c387524b.e3b6d","name":"HIGH-CA OFF","server":"3c5076fb.e901ba","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_off","entityId":"switch.fgwpe_f_wall_plug_gen5_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1220,"y":700,"wires":[[]]},{"id":"ec02b483.b194a8","type":"server-state-changed","z":"c387524b.e3b6d","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":290,"y":520,"wires":[["8f8cac03.df54c","611a34b.1e2d8cc"],[]]},{"id":"8f8cac03.df54c","type":"switch","z":"c387524b.e3b6d","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":730,"y":520,"wires":[["3f0ff2a3.4c4e3e","f10f197f.8d7248"]]},{"id":"3f0ff2a3.4c4e3e","type":"api-call-service","z":"c387524b.e3b6d","name":"MID-CA ON","server":"3c5076fb.e901ba","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.nas_wr01ze_power_plug_12a_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1210,"y":340,"wires":[[]]},{"id":"7de1bf99.730ed","type":"api-call-service","z":"c387524b.e3b6d","name":"HIGH-CA ON","server":"3c5076fb.e901ba","version":1,"debugenabled":false,"service_domain":"switch","service":"turn_on","entityId":"switch.fgwpe_f_wall_plug_gen5_switch","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1210,"y":580,"wires":[[]]},{"id":"7c9c37cc.afd848","type":"server-state-changed","z":"c387524b.e3b6d","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":290,"y":760,"wires":[["1f5607cf.f6b8c8","4970dcbd.15ddd4"],[]]},{"id":"1f5607cf.f6b8c8","type":"switch","z":"c387524b.e3b6d","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":730,"y":660,"wires":[["3f0ff2a3.4c4e3e","7de1bf99.730ed"]]},{"id":"611a34b.1e2d8cc","type":"api-call-service","z":"c387524b.e3b6d","name":"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":270,"y":620,"wires":[[]]},{"id":"4970dcbd.15ddd4","type":"api-call-service","z":"c387524b.e3b6d","name":"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":290,"y":880,"wires":[[]]},{"id":"de2b095e.a92338","type":"debug","z":"c387524b.e3b6d","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":710,"y":160,"wires":[]},{"id":"f0fb96ef.202e38","type":"api-call-service","z":"c387524b.e3b6d","name":"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":300,"y":380,"wires":[[]]},{"id":"3c5076fb.e901ba","type":"server","name":"Home Assistant","addon":true}]

so you have 3 buttons. when you toggle one on, the other 2 should be toggle off?

image

if something like above, just create 2 more flow copying the logic.

For those of you that have a need for a somewhat full proof timer/counter with alexa integration, here ya go.
I have it set up for my medication but it could be used for anything.
The trigger is a door sensor on my medical case that sends an actionable notification to my phone if it is opened . Once i recieve the notification which asks "your med case just opened ,did you take a pill? If i select yes it fires the key “pill” back to home assistant where the timer and pills taken counter are fired and a new timer is started for whatever time you add to the “stop timer” node in node red. And well you can see what it does from there its pretty simple. I set up a Entities card in the frontend that has time started, time ended, pill count , pill counter reset, and pill counter manual increase for when i am out and away from my med case.
Enjoy!

Almost forgot!
You will need some custom nodes
Alexa Local
time compare and change
counter
countdown
and of course the home assistant node set that should be installed already if you are running node red inside home assistant.

Screenshot (78)

[{"id":"d9a0b896.98af98","type":"server-state-changed","z":"6a4da553.3cba1c","name":"Mikes Case","server":"8883c5ea.5f6948","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.mikes_case_2_2","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":90,"y":260,"wires":[["fd9f9893.ed4f68"]]},{"id":"fd9f9893.ed4f68","type":"switch","z":"6a4da553.3cba1c","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":230,"y":260,"wires":[["da2f4542.770b98"],[]]},{"id":"2d7a6ac8.15b426","type":"inject","z":"6a4da553.3cba1c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":200,"y":220,"wires":[["da2f4542.770b98"]]},{"id":"2f20e8dc.a092a8","type":"comment","z":"6a4da553.3cba1c","name":"Med Reminder Response - Response and Subsequent actions to Med Reminder Notification above.","info":"When you send the mikes phone node message\nReplace \"accept_notification\" field with the message that \nyou want returned to hassio when you click the \"Accept notification\" button on your phone\nThen that gets ran through a switch and triggers whatever entity or event you want at home.\n\n        \"actions\": [\n            {\n                \"action\": \"accept_notification\",\n                \"title\": \"Accept notification?\"","x":360,"y":460,"wires":[]},{"id":"cd523699.87b4a8","type":"comment","z":"6a4da553.3cba1c","name":"Med Reminder Notification - Sent any time mikes case is opened.","info":"When you send the mikes phone node message\nReplace \"accept_notification\" field with the message that \nyou want returned to hassio when you click the \"Accept notification\" button on your phone\nThen that gets ran through a switch and triggers whatever entity or event you want at home.\n\n        \"actions\": [\n            {\n                \"action\": \"accept_notification\",\n                \"title\": \"Accept notification?\"","x":250,"y":160,"wires":[]},{"id":"adc58c08.30ab1","type":"alexa-local","z":"6a4da553.3cba1c","devicename":"Pill Information","inputtrigger":false,"x":80,"y":1200,"wires":[["f3f51644.a49948"]]},{"id":"f3f51644.a49948","type":"api-current-state","z":"6a4da553.3cba1c","name":"Med Timer Start Time","server":"8883c5ea.5f6948","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"sensor.pill_timer_time_started","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":300,"y":1200,"wires":[["418a9a93.1ed1a4"]]},{"id":"fb4fa696.971398","type":"inject","z":"6a4da553.3cba1c","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"str","x":90,"y":1260,"wires":[["f3f51644.a49948"]]},{"id":"418a9a93.1ed1a4","type":"api-current-state","z":"6a4da553.3cba1c","name":"Last Alexa?","server":"8883c5ea.5f6948","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"sensor.last_alexa","state_type":"str","state_location":"data.state","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":510,"y":1200,"wires":[["84767da.f5aa58"]]},{"id":"84767da.f5aa58","type":"api-call-service","z":"6a4da553.3cba1c","name":"Alexa Speak -New TTS- not Announce - No Bell","server":"8883c5ea.5f6948","version":1,"debugenabled":false,"service_domain":"notify","service":"alexa_media","entityId":"","data":"{\"message\":\"{{payload}}\",\"title\":\"when did i take my meds\",\"data\":{\"type\":\"tts\",\"method\":\"all\"},\"target\":[\"{{data.state}}\"]}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":800,"y":1200,"wires":[[]]},{"id":"68ba3fec.87e37","type":"comment","z":"6a4da553.3cba1c","name":"Ask alexa \"when did i take my meds? And she checks the Med Timer Start time node and reports the time to the last alexa spoken to.","info":"","x":440,"y":1140,"wires":[]},{"id":"49074fa2.57874","type":"comment","z":"6a4da553.3cba1c","name":"Testing Area","info":"","x":410,"y":2520,"wires":[]},{"id":"59ee5eea.61155","type":"inject","z":"6a4da553.3cba1c","name":"Manual Reset","props":[{"p":"payload.event.action","v":"pill_restart","vt":"str"},{"p":"payload.time_fired","v":"","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payloadType":"str","x":790,"y":2700,"wires":[[]]},{"id":"acf45d47.84295","type":"inject","z":"6a4da553.3cba1c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":780,"y":2660,"wires":[[]]},{"id":"dc1e1ed9.c52aa","type":"debug","z":"6a4da553.3cba1c","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":522,"y":2766.666748046875,"wires":[]},{"id":"87c05c0b.ddc93","type":"api-current-state","z":"6a4da553.3cba1c","name":"mikes case","server":"8883c5ea.5f6948","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"binary_sensor.mikes_case_2_2","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":190,"y":2760,"wires":[[]]},{"id":"64553429.ae76fc","type":"inject","z":"6a4da553.3cba1c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"str","x":110,"y":2680,"wires":[["87c05c0b.ddc93"]]},{"id":"a8fa9dba.cfb67","type":"server-events","z":"6a4da553.3cba1c","name":"Pill Notify  Reply","server":"8883c5ea.5f6948","event_type":"mobile_app_notification_action","exposeToHomeAssistant":true,"haConfig":[{"property":"name","value":"pill_notification"},{"property":"icon","value":""}],"waitForRunning":true,"x":100,"y":780,"wires":[["16f3ce9b.a747d1"]]},{"id":"3a526b08.3e9894","type":"simpletime","z":"6a4da553.3cba1c","name":"Multiple Forms of Time Date Output","x":515,"y":640,"wires":[["acc1667d.26f1c8"]],"l":false},{"id":"acc1667d.26f1c8","type":"time-comp","z":"6a4da553.3cba1c","outputs":1,"name":"Time Conversion From Military","positionConfig":"cf4bfd8.c0a73","input":"mytimes","inputType":"msg","inputFormat":"98","inputOffset":0,"inputOffsetType":"none","inputOffsetMultiplier":60000,"rules":[],"checkall":"true","result1":"","result1Type":"msgPayload","result1Value":"","result1ValueType":"input","result1Format":"3","result1Offset":0,"result1OffsetType":"none","result1OffsetMultiplier":60000,"x":555,"y":640,"wires":[["d997f603.1c1858"]],"l":false},{"id":"d506c087.56067","type":"countdown","z":"6a4da553.3cba1c","name":"","topic":"","payloadTimerStart":"Pill Timer Started","payloadTimerStartType":"str","payloadTimerStop":"Pill Timer Ended","payloadTimerStopType":"str","timer":"21600","resetWhileRunning":true,"setTimeToNewWhileRunning":true,"startCountdownOnControlMessage":true,"x":315,"y":780,"wires":[["bfbf517c.1bd85"],["ce39452a.02d7b8"]],"l":false},{"id":"4b09d666.518eb8","type":"ha-entity","z":"6a4da553.3cba1c","name":"Pill Timer Remaining Time","server":"8883c5ea.5f6948","version":1,"debugenabled":false,"outputs":1,"entityType":"sensor","config":[{"property":"name","value":"pill_timer_time_remaining"},{"property":"device_class","value":"time"},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""}],"state":"payload","stateType":"msg","attributes":[],"resend":true,"outputLocation":"","outputLocationType":"none","inputOverride":"allow","x":710,"y":840,"wires":[[]]},{"id":"93e4941c.43b738","type":"ha-entity","z":"6a4da553.3cba1c","name":"Pill Timer End Time","server":"8883c5ea.5f6948","version":1,"debugenabled":false,"outputs":1,"entityType":"sensor","config":[{"property":"name","value":"pill_timer_time_ended"},{"property":"device_class","value":"time"},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""}],"state":"payload","stateType":"msg","attributes":[],"resend":true,"outputLocation":"","outputLocationType":"none","inputOverride":"allow","x":790,"y":700,"wires":[[]]},{"id":"d997f603.1c1858","type":"ha-entity","z":"6a4da553.3cba1c","name":"Pill Timer Start Time","server":"8883c5ea.5f6948","version":1,"debugenabled":false,"outputs":1,"entityType":"sensor","config":[{"property":"name","value":"pill_timer_time_started"},{"property":"device_class","value":"time"},{"property":"icon","value":""},{"property":"unit_of_measurement","value":""}],"state":"payload","stateType":"msg","attributes":[],"resend":true,"outputLocation":"","outputLocationType":"none","inputOverride":"allow","x":800,"y":640,"wires":[[]]},{"id":"9ccaa9ad.d712c8","type":"simpletime","z":"6a4da553.3cba1c","name":"Multiple Forms of Time Date Output","x":515,"y":700,"wires":[["c7665704.aeede8"]],"l":false},{"id":"c7665704.aeede8","type":"time-comp","z":"6a4da553.3cba1c","outputs":1,"name":"Time Conversion From Military","positionConfig":"cf4bfd8.c0a73","input":"mytimes","inputType":"msg","inputFormat":"98","inputOffset":0,"inputOffsetType":"none","inputOffsetMultiplier":60000,"rules":[],"checkall":"true","result1":"","result1Type":"msgPayload","result1Value":"","result1ValueType":"input","result1Format":"3","result1Offset":0,"result1OffsetType":"none","result1OffsetMultiplier":60000,"x":555,"y":700,"wires":[["93e4941c.43b738"]],"l":false},{"id":"16f3ce9b.a747d1","type":"switch","z":"6a4da553.3cba1c","name":"pill - no_pill","property":"payload.event.action","propertyType":"msg","rules":[{"t":"eq","v":"pill","vt":"str"},{"t":"eq","v":"pill_restart","vt":"str"},{"t":"eq","v":"no_pill","vt":"str"},{"t":"eq","v":"pill_test","vt":"str"},{"t":"eq","v":"pill_restart_test","vt":"str"},{"t":"eq","v":"no_pill_taken-test","vt":"str"},{"t":"eq","v":"reset","vt":"str"}],"checkall":"true","repair":false,"outputs":7,"x":215,"y":780,"wires":[[],[],[],["d506c087.56067"],["d506c087.56067"],[],["d506c087.56067"]],"l":false},{"id":"5a456b18.46ef14","type":"counter","z":"6a4da553.3cba1c","name":"Pill Counter","init":"0","step":"1","lower":null,"upper":"6","mode":"increment","outputs":2,"x":570,"y":580,"wires":[["cd4e9904.22e6e8","dee3462c.670378"],[]]},{"id":"cd4e9904.22e6e8","type":"ha-entity","z":"6a4da553.3cba1c","name":"Pill Counter ","server":"8883c5ea.5f6948","version":1,"debugenabled":false,"outputs":1,"entityType":"sensor","config":[{"property":"name","value":"pill_counter"},{"property":"device_class","value":""},{"property":"icon","value":"mdi:pill"},{"property":"unit_of_measurement","value":""}],"state":"payload","stateType":"msg","attributes":[],"resend":true,"outputLocation":"","outputLocationType":"none","inputOverride":"allow","x":770,"y":540,"wires":[[]]},{"id":"cf1c02b0.605a2","type":"api-call-service","z":"6a4da553.3cba1c","name":"Notify-Time for Pill","server":"8883c5ea.5f6948","version":1,"debugenabled":false,"service_domain":"notify","service":"mobile_app_mike_phone","entityId":"","data":"{\"title\":\"Med Alert\",\"message\":\"Time to take your meds, you last took them at {{ states('sensor.pill_timer_time_started') }}\",\"data\":{\"priority\":\"high\",\"ttl\":0,\"color\":\"red\",\"actions\":[{\"action\":\"pill_restart_test\",\"title\":\"Restart Med Timer?\"},{\"action\":\"no_restart_test\",\"title\":\"No\"}]}}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":true,"x":590,"y":760,"wires":[[]]},{"id":"bfbf517c.1bd85","type":"switch","z":"6a4da553.3cba1c","name":"Time to take a pill","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"Pill Timer Started","vt":"str"},{"t":"eq","v":"Pill Timer Ended","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":395,"y":660,"wires":[["3a526b08.3e9894","5a456b18.46ef14"],["cf1c02b0.605a2","9ccaa9ad.d712c8"]],"l":false},{"id":"682b9c31.a9c364","type":"server-state-changed","z":"6a4da553.3cba1c","name":"Pill Counter Reset","server":"8883c5ea.5f6948","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.pill_counter_reset","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":110,"y":720,"wires":[["a120d0e6.1a393"],[]]},{"id":"20aecfef.54241","type":"change","z":"6a4da553.3cba1c","name":"","rules":[{"t":"set","p":"reset","pt":"msg","to":"0","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":515,"y":540,"wires":[["5a456b18.46ef14"]],"l":false},{"id":"ba1c15e5.78a8c8","type":"api-call-service","z":"6a4da553.3cba1c","name":"Pill Counter reset OFF","server":"8883c5ea.5f6948","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.pill_counter_reset","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":155,"y":680,"wires":[["20aecfef.54241"]],"l":false},{"id":"69e101e7.3d4c3","type":"delay","z":"6a4da553.3cba1c","name":"","pauseType":"delay","timeout":"500","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":115,"y":680,"wires":[["ba1c15e5.78a8c8"]],"l":false},{"id":"a120d0e6.1a393","type":"change","z":"6a4da553.3cba1c","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":75,"y":680,"wires":[["69e101e7.3d4c3"]],"l":false},{"id":"dee3462c.670378","type":"switch","z":"6a4da553.3cba1c","name":"","property":"countUpperLimitReached","propertyType":"msg","rules":[{"t":"cont","v":"true","vt":"str"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":615,"y":540,"wires":[["20aecfef.54241"],[]],"l":false},{"id":"5203585c.2fdf28","type":"server-state-changed","z":"6a4da553.3cba1c","name":"Pill Counter Man Increase","server":"8883c5ea.5f6948","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.med_counter_manual_increase","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":130,"y":620,"wires":[["d7384ff2.cde74"],[]]},{"id":"7c1b75e2.7a406c","type":"api-call-service","z":"6a4da553.3cba1c","name":"Pill Counter reset OFF","server":"8883c5ea.5f6948","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.med_counter_manual_increase","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":155,"y":580,"wires":[["5a456b18.46ef14"]],"l":false},{"id":"5271a2f9.80befc","type":"delay","z":"6a4da553.3cba1c","name":"","pauseType":"delay","timeout":"500","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":115,"y":580,"wires":[["7c1b75e2.7a406c"]],"l":false},{"id":"d7384ff2.cde74","type":"change","z":"6a4da553.3cba1c","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":75,"y":580,"wires":[["5271a2f9.80befc"]],"l":false},{"id":"17cb9725.eca5d9","type":"server-state-changed","z":"6a4da553.3cba1c","name":"Med Timer Manual Reset","server":"8883c5ea.5f6948","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.med_timer_manual_reset","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":130,"y":940,"wires":[["93e8db2f.e13908","e8ef3ea7.9adcf"],[]]},{"id":"2c9417d9.a2cac8","type":"api-call-service","z":"6a4da553.3cba1c","name":"Med Timer Manual reset OFF","server":"8883c5ea.5f6948","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.med_timer_manual_reset","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":135,"y":900,"wires":[[]],"l":false},{"id":"28c65e28.0ac092","type":"delay","z":"6a4da553.3cba1c","name":"","pauseType":"delay","timeout":"500","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":95,"y":900,"wires":[["2c9417d9.a2cac8"]],"l":false},{"id":"93e8db2f.e13908","type":"change","z":"6a4da553.3cba1c","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":55,"y":900,"wires":[["28c65e28.0ac092"]],"l":false},{"id":"e8ef3ea7.9adcf","type":"change","z":"6a4da553.3cba1c","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"reset","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":215,"y":900,"wires":[["d506c087.56067"]],"l":false},{"id":"da2f4542.770b98","type":"api-call-service","z":"6a4da553.3cba1c","name":"Notify-Med Notification","server":"8883c5ea.5f6948","version":1,"debugenabled":false,"service_domain":"notify","service":"mobile_app_mike_phone","entityId":"","data":"{\"title\":\"Med Alert\",\"message\":\"Your case just opened, did you take a pill? Last Taken: {{ states('sensor.pill_timer_time_started') }} Pill Count: {{ states('sensor.pill_counter') }} \",\"data\":{\"priority\":\"high\",\"ttl\":0,\"color\":\"red\",\"actions\":[{\"action\":\"pill_test\",\"title\":\"Yes\"},{\"action\":\"no_pill_taken-test\",\"title\":\"No\"}]}}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":true,"x":400,"y":240,"wires":[[]]},{"id":"e6b1f8b5.ac6328","type":"moment","z":"6a4da553.3cba1c","name":"moment time formatter node","topic":"","input":"payload","inputType":"msg","inTz":"ETC/GMT","adjAmount":0,"adjType":"days","adjDir":"add","format":"hh:mm:ss","locale":"en_GB","output":"payload","outputType":"msg","outTz":"ETC/GMT","x":495,"y":820,"wires":[["4b09d666.518eb8"]],"l":false},{"id":"ce39452a.02d7b8","type":"change","z":"6a4da553.3cba1c","name":"To millisecs","rules":[{"t":"set","p":"payload","pt":"msg","to":"msg.payload*1000","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":455,"y":820,"wires":[["e6b1f8b5.ac6328"]],"l":false},{"id":"2d7d5534.e6b4da","type":"server-state-changed","z":"6a4da553.3cba1c","name":"Pill Timer Manual Stop","server":"8883c5ea.5f6948","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.pill_timer_man_stop","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":120,"y":1040,"wires":[["ac7e27e6.154238","376ff65f.07769a"]]},{"id":"6c99dab5.800c34","type":"api-call-service","z":"6a4da553.3cba1c","name":"Med Timer Manual stop off","server":"8883c5ea.5f6948","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.pill_timer_man_stop","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":185,"y":1000,"wires":[[]],"l":false},{"id":"32073223.b6b8ce","type":"delay","z":"6a4da553.3cba1c","name":"","pauseType":"delay","timeout":"500","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":145,"y":1000,"wires":[["6c99dab5.800c34"]],"l":false},{"id":"ac7e27e6.154238","type":"change","z":"6a4da553.3cba1c","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":105,"y":1000,"wires":[["32073223.b6b8ce"]],"l":false},{"id":"376ff65f.07769a","type":"change","z":"6a4da553.3cba1c","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":255,"y":1040,"wires":[["d506c087.56067"]],"l":false},{"id":"8883c5ea.5f6948","type":"server","name":"HA Main","legacy":false,"addon":false,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true},{"id":"cf4bfd8.c0a73","type":"position-config","name":"Pauls Valley","isValide":"true","longitude":"0","latitude":"0","angleType":"deg","timeZoneOffset":99,"timeZoneDST":0,"stateTimeFormat":"3","stateDateFormat":"12"}]
1 Like

My HA/Node-Red config have been updated and changed since this post.
Although too much to post directly, here is a link to my GitHub repo to share.

I use the alarm flow that was mentioned by DIY futurism among other things.

Here is my Node-Red flows updated to current. I use BigTimer all the time.

Ping me if you have any questions.

1 Like

I came from the same background and after a year I will never go back

1 Like

Hi !

As newbie to Node-Red, let me share with you this simple automation that uses Xiaomi Aqara to manage a rolling shutter : 1 click stops it + 2 click moves it + long click changes direction of the move… with more refinements on this (smart thing !).

Simplicity in the coding: no function, no JSON expression, only one flow variable upon few nodes.

Variable de direction

[{"id":"fb11c237.cdc0d","type":"tab","label":"Fenêtres","disabled":false,"info":""},{"id":"bf09c398.6404d","type":"server-state-changed","z":"fb11c237.cdc0d","name":"Double clic","server":"eb612605.cd9cc8","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.zigate_00158d0002c7f49e_multiclick","entityidfiltertype":"exact","outputinitially":false,"state_type":"num","haltifstate":"0","halt_if_type":"num","halt_if_compare":"gt","outputs":2,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":100,"y":420,"wires":[["21fb726a.e8c83e"],[]]},{"id":"e7618f52.c0c5","type":"api-call-service","z":"fb11c237.cdc0d","name":"Le volet se ferme","server":"eb612605.cd9cc8","version":1,"debugenabled":false,"service_domain":"cover","service":"close_cover","entityId":"cover.le_volet_du_bureau","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":630,"y":520,"wires":[[]]},{"id":"7429e731.df5de8","type":"server-state-changed","z":"fb11c237.cdc0d","name":"Long clic","server":"eb612605.cd9cc8","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.zigate_00158d0002c7f49e_onoff","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"off","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"500","forType":"num","forUnits":"milliseconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":100,"y":180,"wires":[["67d47ca3.591794"],[]]},{"id":"236540e6.55bf1","type":"change","z":"fb11c237.cdc0d","name":"Direction à 0% (fermer)","rules":[{"t":"set","p":"vdb_dir","pt":"flow","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":60,"wires":[["2becb992.b21596"]]},{"id":"21fb726a.e8c83e","type":"switch","z":"fb11c237.cdc0d","name":"Direction 100% ou 0% ?","property":"vdb_dir","propertyType":"flow","rules":[{"t":"eq","v":"100","vt":"num"},{"t":"eq","v":"0","vt":"num"}],"checkall":"true","repair":false,"outputs":2,"x":350,"y":460,"wires":[["fed7dda5.4c30f"],["e7618f52.c0c5"]]},{"id":"fed7dda5.4c30f","type":"api-call-service","z":"fb11c237.cdc0d","name":"Le volet s'ouvre","server":"eb612605.cd9cc8","version":1,"debugenabled":false,"service_domain":"cover","service":"open_cover","entityId":"cover.le_volet_du_bureau","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":620,"y":400,"wires":[[]]},{"id":"67d47ca3.591794","type":"switch","z":"fb11c237.cdc0d","name":"Toggle","property":"vdb_dir","propertyType":"flow","rules":[{"t":"eq","v":"100","vt":"num"},{"t":"eq","v":"0","vt":"num"},{"t":"empty"}],"checkall":"false","repair":false,"outputs":3,"x":290,"y":180,"wires":[["236540e6.55bf1"],["a1ae916c.c2562"],["a1ae916c.c2562"]]},{"id":"a1ae916c.c2562","type":"change","z":"fb11c237.cdc0d","name":"Direction à 100% (ouvrir)","rules":[{"t":"set","p":"vdb_dir","pt":"flow","to":"100","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":300,"wires":[[]]},{"id":"b08698c5.d9f398","type":"server-state-changed","z":"fb11c237.cdc0d","name":"Simple clic","server":"eb612605.cd9cc8","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"binary_sensor.zigate_00158d0002c7f49e_onoff","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"off","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":"50","forType":"num","forUnits":"milliseconds","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":100,"y":600,"wires":[["1c46c346.89821d"],[]]},{"id":"1c46c346.89821d","type":"api-call-service","z":"fb11c237.cdc0d","name":"Le volet s'arrête","server":"eb612605.cd9cc8","version":1,"debugenabled":false,"service_domain":"cover","service":"stop_cover","entityId":"cover.le_volet_du_bureau","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":320,"y":600,"wires":[[]]},{"id":"9fa3e158.ec0bc","type":"trigger-state","z":"fb11c237.cdc0d","name":"Volet ouvert","server":"eb612605.cd9cc8","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityid":"cover.le_volet_du_bureau","entityidfiltertype":"exact","debugenabled":false,"constraints":[{"targetType":"this_entity","targetValue":"","propertyType":"property","comparatorType":">=","comparatorValueDatatype":"num","comparatorValue":"98","propertyValue":"new_state.attributes.current_position"}],"outputs":2,"customoutputs":[],"outputinitially":false,"state_type":"str","x":110,"y":60,"wires":[["236540e6.55bf1"],[]]},{"id":"471f8f35.ceb56","type":"trigger-state","z":"fb11c237.cdc0d","name":"Volet fermé","server":"eb612605.cd9cc8","exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityid":"cover.le_volet_du_bureau","entityidfiltertype":"exact","debugenabled":false,"constraints":[{"targetType":"this_entity","targetValue":"","propertyType":"property","comparatorType":"<=","comparatorValueDatatype":"num","comparatorValue":"2","propertyValue":"new_state.attributes.current_position"}],"outputs":2,"customoutputs":[],"outputinitially":false,"state_type":"str","x":110,"y":300,"wires":[["a1ae916c.c2562"],[]]},{"id":"2becb992.b21596","type":"delay","z":"fb11c237.cdc0d","name":"Direction par défaut","pauseType":"delay","timeout":"15","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":520,"y":180,"wires":[["a1ae916c.c2562"]]},{"id":"eb612605.cd9cc8","type":"server","name":"Home Assistant","addon":true}]