Advertisement
-Dal-

Untitled

Nov 13th, 2020
343
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.91 KB | None | 0 0
  1. [{"id":"d5257804.c57068","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"10b049a.83d49b6","type":"tab","label":"Flow 2","disabled":false,"info":""},{"id":"cf485ba.994a1a8","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"c20c4f32.3a7de","type":"server","name":"Home Assistant","addon":true},{"id":"3d06dee0.f98b0a","type":"mqtt-broker","name":"localhost","broker":"mqtt://core-mosquitto","port":"1883","tls":"","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"4bc5a1d3.d944b","type":"mqtt-broker","name":"MQTT Server","broker":"192.168.1.63","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":"","closeTopic":"","closeQos":"0","closeRetain":"false","closePayload":"","willTopic":"","willQos":"0","willRetain":"false","willPayload":""},{"id":"f0d170ea.f39ad","type":"server","name":"Home Assistant","addon":true},{"id":"a1d86f20.07bc9","type":"server-state-changed","z":"d5257804.c57068","d":true,"name":"Lysbryter - TV-krok - HA","server":"c20c4f32.3a7de","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.namron_lysbryter_stue_action","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":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":150,"y":660,"wires":[["111b5809.aab0f"]]},{"id":"fa69cafa.52b978","type":"api-call-service","z":"d5257804.c57068","name":"Lys - TV-krok","server":"c20c4f32.3a7de","version":1,"debugenabled":true,"service_domain":"","service":"","entityId":"","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":950,"y":600,"wires":[[]]},{"id":"bcb896b1.4765a8","type":"mqtt in","z":"d5257804.c57068","name":"Lysbryter - TV-krok - MQTT","topic":"zigbee2mqtt/Namron - Lysbryter - Stue/action","qos":"0","datatype":"utf8","broker":"3d06dee0.f98b0a","x":142,"y":540,"wires":[["111b5809.aab0f"]]},{"id":"21a46ffb.e33998","type":"function","z":"d5257804.c57068","name":"Switch","func":"var entity = 'light.kontor_taklys';\nvar interval = 30;\n/*\nfunction name(parameter1, parameter2, parameter3) {\n // code to be executed\n}\n*/\n\nconst globalHomeAssistant = global.get('homeassistant');\nvar brightness = globalHomeAssistant.homeAssistant.states[entity].attributes.brightness || 0;\nvar state = globalHomeAssistant.homeAssistant.states[entity].state;\nvar delay = 600;\nflow.set('press', false);\n\nif (!msg.payload.hasOwnProperty('action')) msg.payload.action = \"\";\nvar newMsg = { payload: {} };\n\nif ( msg.payload.action == \"on_l3\" ) {\n if ( state == \"on\" && brightness > 0 ) {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_on',\n data: { entity_id: entity, brightness: 255, transition: 1 }\n }; \n } else {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_on',\n data: { entity_id: entity }\n };\n }\n}\n\nif ( msg.payload.action == \"brightness_move_up_l3\" ) {\n flow.set('press', true);\n if ( brightness < 255 ) {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_on',\n data: { entity_id: entity, brightness: brightness + interval, transition: 1 }\n };\n } else { \n flow.set('press', false);\n return null\n }\n}\n\nif ( msg.payload.action == \"brightness_move_down_l3\" ) {\n flow.set('press', true);\n if ( brightness > 0 ) {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_on',\n data: { entity_id: entity, brightness: brightness - interval, transition: 1 }\n };\n } else {\n flow.set('press', false);\n return null\n }\n}\n/*\nif ( msg.payload.action == \"brightness_stop_l3\" ) {\n flow.set('press', false)\n return null;\n}\n*/\nif ( msg.payload.action == \"brightness_stop_l3\" ) {\n flow.set('press', false)\n if ( brightness <= 0 ) {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_off',\n data: { entity_id: entity }\n };\n } else {\n return null;\n }\n}\n\nif ( msg.payload.action == \"off_l3\" ) {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_off',\n data: { entity_id: entity }\n \n };\n}\n\nif ( msg.payload.action === \"\" ) {\n return null;\n}\n\nreturn [newMsg, msg]","outputs":2,"noerr":0,"initialize":"","finalize":"","x":648,"y":600,"wires":[["fa69cafa.52b978"],["c47689ea.546c3"]]},{"id":"fdf500e0.18291","type":"switch","z":"d5257804.c57068","name":"Control loop","property":"press","propertyType":"flow","rules":[{"t":"eq","v":"true","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":728,"y":731,"wires":[["21a46ffb.e33998"]]},{"id":"c47689ea.546c3","type":"delay","z":"d5257804.c57068","name":"Delay","pauseType":"delay","timeout":"600","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":568,"y":731,"wires":[["fdf500e0.18291"]]},{"id":"9cad79a4.d58ad8","type":"debug","z":"d5257804.c57068","name":"Debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":670,"y":440,"wires":[]},{"id":"111b5809.aab0f","type":"change","z":"d5257804.c57068","name":"payload -> payload.action","rules":[{"t":"move","p":"payload","pt":"msg","to":"payload.action","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":432,"y":600,"wires":[["21a46ffb.e33998","9cad79a4.d58ad8"]]},{"id":"9069f94d.ffe9b8","type":"function","z":"10b049a.83d49b6","name":"Switch","func":"var entity = 'light.all_lights';\nvar interval = 30;\n/*\nfunction name(parameter1, parameter2, parameter3) {\n // code to be executed\n}\n*/\n\nconst globalHomeAssistant = global.get('homeassistant');\nvar brightness = globalHomeAssistant.homeAssistant.states[entity].attributes.brightness || 0;\nvar state = globalHomeAssistant.homeAssistant.states[entity].state;\nvar delay = 500;\nflow.set('press', false);\n\nif (!msg.payload.hasOwnProperty('action')) msg.payload.action = \"\";\nvar newMsg = { payload: {} };\n\nif ( msg.payload.action == \"on-press\" ) {\n if ( state == \"on\" && brightness > 0 ) {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_on',\n data: { entity_id: entity, brightness: 255, transition: 1 }\n }; \n } else {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_on',\n data: { entity_id: entity }\n };\n }\n}\n\nif ( msg.payload.action == \"up-press\" ) {\n if (brightness < 255) {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_on',\n data: { entity_id: entity, brightness: brightness + interval, transition: 1 }\n };\n \n } else { return null; }\n}\n\nif ( msg.payload.action == \"down-press\" ) {\n if (brightness > 0) {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_on',\n data: { entity_id: entity, brightness: brightness - interval, transition: 1 }\n };\n } else { return null; }\n}\n\nif ( msg.payload.action == \"up-hold\" ) {\n flow.set('press', true);\n if ( brightness < 255 ) {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_on',\n data: { entity_id: entity, brightness: brightness + interval, transition: 1 }\n };\n } else { \n flow.set('press', false);\n return null\n }\n}\n\nif ( msg.payload.action == \"down-hold\" ) {\n flow.set('press', true);\n if ( brightness > 0 ) {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_on',\n data: { entity_id: entity, brightness: brightness - interval, transition: 1 }\n };\n } else {\n flow.set('press', false);\n return null\n }\n}\n\nif ( msg.payload.action == \"up-hold-release\" ) {\n flow.set('press', false)\n return null;\n}\n\nif ( msg.payload.action == \"down-hold-release\" ) {\n flow.set('press', false)\n if ( brightness <= 0 ) {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_off',\n data: { entity_id: entity }\n };\n } else {\n return null;\n }\n}\n\nif ( msg.payload.action == \"off-press\" ) {\n newMsg.payload = {\n domain: 'light',\n service: 'turn_off',\n data: { entity_id: entity }\n \n };\n}\n\nif ( msg.payload.action === \"\" ) {\n return null;\n}\n\nreturn [newMsg, msg]","outputs":2,"noerr":0,"x":590,"y":220,"wires":[["671b8bfa.fe1e3c"],["54473fa6.2c70c8"]]},{"id":"6e8e13da.ff21b4","type":"mqtt in","z":"10b049a.83d49b6","name":"Main switch hallway","topic":"zigbee2mqtt/main_switch_hallway","qos":"0","datatype":"json","broker":"4bc5a1d3.d944b","x":250,"y":320,"wires":[["9069f94d.ffe9b8"]]},{"id":"95558611.6079f","type":"switch","z":"10b049a.83d49b6","name":"Control","property":"press","propertyType":"flow","rules":[{"t":"eq","v":"true","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":640,"y":360,"wires":[["9069f94d.ffe9b8"]]},{"id":"54473fa6.2c70c8","type":"delay","z":"10b049a.83d49b6","name":"Delay","pauseType":"delay","timeout":"500","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":490,"y":360,"wires":[["95558611.6079f"]]},{"id":"671b8bfa.fe1e3c","type":"api-call-service","z":"10b049a.83d49b6","name":"Light","server":"f0d170ea.f39ad","version":1,"debugenabled":false,"service_domain":"","service":"","entityId":"","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":830,"y":320,"wires":[[]]},{"id":"ed6fbd75.f5fa2","type":"server-state-changed","z":"10b049a.83d49b6","name":"","server":"c20c4f32.3a7de","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.hovedbryter_battery_level","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":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":250,"y":120,"wires":[["41717e86.cbfcd8"]]},{"id":"41717e86.cbfcd8","type":"debug","z":"10b049a.83d49b6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":580,"y":120,"wires":[]},{"id":"db51de0f.24ae2","type":"function","z":"cf485ba.994a1a8","name":"loop","func":"// Loop function\n// Top output provides triger for next actions\n// Botton output should be connected to the input through a dealy\n// The msg.payload can consis one of actions: start, stop, toggle\n// Other content is ignored\n// On the outoput the msg.payload contains current loop state\n\ncontext.loop = context.loop || \"stop\";\ncontext.loops = context.loops || 0;\n\n//console.log(\"topic :\" + msg.topic);\n//console.log(\"loop :\" + context.loop);\n//console.log(\"loops :\" + context.loops);\n//console.log(\"action:\" + msg.payload);\n\nswitch (msg.payload) {\n\tcase \"stop\":\n\t\tcontext.loops = context.loops + 1;\n\t\tmsg.payload = \"stopped\";\n\t\tcontext.loop = \"stop\";\n\t\treturn [msg,null];\n\tcase \"toggle\":\n\t\tif (context.loop == \"start\") {\n\t\t\tmsg.payload = \"stopped\";\n\t\t\tcontext.loop = \"stop\";\n\t\t\treturn [msg,null];\n\t\t} else {\n\t\t\tmsg.payload = \"started\";\n\t\t\tcontext.loop = \"loop\";\n\t\t\tcontext.loops = 1;\n\t\t\treturn [msg,msg];\n\t\t}\n\tcase \"start\":\n\t\tmsg.payload = \"started\";\n\t\tcontext.loop = \"loop\";\n\t\tcontext.loops = 1;\n\t\treturn [msg,msg];\n\tdefault:\n\t\tif (context.loop == \"loop\") {\n\t\t\tcontext.loops = context.loops + 1;\n\t\t\tmsg.payload = \"loop:\" + context.loops;\n\t\t\treturn [msg,msg];\n\t\t} else {\n\t\t\treturn [null,null]; \n\t\t}\n}","outputs":"2","noerr":0,"initialize":"","finalize":"","x":850,"y":360,"wires":[["7a3aabe9.85c554"],["9994e4b6.666b18"]]},{"id":"9994e4b6.666b18","type":"delay","z":"cf485ba.994a1a8","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":856,"y":486,"wires":[["db51de0f.24ae2"]]},{"id":"7a3aabe9.85c554","type":"debug","z":"cf485ba.994a1a8","name":"","active":true,"console":"false","complete":"false","x":1065,"y":352,"wires":[]},{"id":"90cc1395.6f33f","type":"inject","z":"cf485ba.994a1a8","d":true,"name":"toggle loop 1","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":"","topic":"loop1","payload":"toggle","payloadType":"str","x":642,"y":359,"wires":[["db51de0f.24ae2"]]},{"id":"1c4074bd.e3bf8b","type":"function","z":"cf485ba.994a1a8","name":"loop","func":"// Loop function\n// Top output provides triger for next actions\n// Botton output should be connected to the input through a dealy\n// The msg.payload can consis one of actions: start, stop, toggle\n// Other content is ignored\n// On the outoput the msg.payload contains current loop state\n\ncontext.loop = context.loop || \"stop\";\ncontext.loops = context.loops || 0;\n\n//console.log(\"topic :\" + msg.topic);\n//console.log(\"loop :\" + context.loop);\n//console.log(\"loops :\" + context.loops);\n//console.log(\"action:\" + msg.payload);\n\nswitch (msg.payload) {\n\tcase \"stop\":\n\t\tcontext.loops = context.loops + 1;\n\t\tmsg.payload = \"stopped\";\n\t\tcontext.loop = \"stop\";\n\t\treturn [msg,null];\n\tcase \"toggle\":\n\t\tif (context.loop == \"start\") {\n\t\t\tmsg.payload = \"stopped\";\n\t\t\tcontext.loop = \"stop\";\n\t\t\treturn [msg,null];\n\t\t} else {\n\t\t\tmsg.payload = \"started\";\n\t\t\tcontext.loop = \"loop\";\n\t\t\tcontext.loops = 1;\n\t\t\treturn [msg,msg];\n\t\t}\n\tcase \"start\":\n\t\tmsg.payload = \"started\";\n\t\tcontext.loop = \"loop\";\n\t\tcontext.loops = 1;\n\t\treturn [msg,msg];\n\tdefault:\n\t\tif (context.loop == \"loop\") {\n\t\t\tcontext.loops = context.loops + 1;\n\t\t\tmsg.payload = \"loop:\" + context.loops;\n\t\t\treturn [msg,msg];\n\t\t} else {\n\t\t\treturn [null,null]; \n\t\t}\n}","outputs":"2","x":866,"y":606,"wires":[["7b60d417.849f2c"],["a380b8b5.5c7f48"]]},{"id":"a380b8b5.5c7f48","type":"delay","z":"cf485ba.994a1a8","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":866,"y":733,"wires":[["1c4074bd.e3bf8b"]]},{"id":"7b60d417.849f2c","type":"debug","z":"cf485ba.994a1a8","name":"","active":true,"console":"false","complete":"false","x":1055,"y":601,"wires":[]},{"id":"8cf655a0.7309a8","type":"inject","z":"cf485ba.994a1a8","name":"start loop 2","repeat":"","crontab":"","once":false,"topic":"loop2","payload":"start","payloadType":"string","x":644,"y":571,"wires":[["1c4074bd.e3bf8b"]]},{"id":"c59c9644.3a6368","type":"inject","z":"cf485ba.994a1a8","name":"stop loop 2","repeat":"","crontab":"","once":false,"topic":"loop2","payload":"stop","payloadType":"string","x":646,"y":647,"wires":[["1c4074bd.e3bf8b"]]}]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement