[{"id":"fa089ef.050866","type":"tab","label":"Auto Homebridge-MQTT","disabled":false,"info":""},{"id":"916f7969.0946a8","type":"mqtt in","z":"fa089ef.050866","name":"","topic":"home/+/+/+/tele/LWT","qos":"2","datatype":"auto","broker":"cae6e757.5e6a38","x":110,"y":160,"wires":[["75be2f01.aaf12"]]},{"id":"d540b7ec.743bc8","type":"mqtt out","z":"fa089ef.050866","name":"","topic":"homebridge/to/add","qos":"","retain":"","broker":"cae6e757.5e6a38","x":1630,"y":220,"wires":[]},{"id":"6fa6659.905579c","type":"comment","z":"fa089ef.050866","name":"device exists. try adding it as a service. special case for odd devices that carry different services on one device","info":"","x":390,"y":300,"wires":[]},{"id":"fddf638c.ca46d","type":"mqtt in","z":"fa089ef.050866","name":"","topic":"homebridge/from/response","qos":"2","datatype":"auto","broker":"cae6e757.5e6a38","x":130,"y":340,"wires":[["f21bbd32.b1461"]]},{"id":"f21bbd32.b1461","type":"json","z":"fa089ef.050866","name":"decode JSON string","property":"payload","action":"","pretty":false,"x":380,"y":340,"wires":[["a297fa33.06fc88"]]},{"id":"a297fa33.06fc88","type":"switch","z":"fa089ef.050866","name":"error? ack=false","property":"payload.ack","propertyType":"msg","rules":[{"t":"false"}],"checkall":"true","repair":false,"outputs":1,"x":594.2857131958008,"y":340.00000953674316,"wires":[["fac35861.dbe9c8"]]},{"id":"fac35861.dbe9c8","type":"switch","z":"fa089ef.050866","name":"is already used","property":"payload.message","propertyType":"msg","rules":[{"t":"cont","v":"is already used","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":780,"y":340,"wires":[["2b0708f7.c37f88"]]},{"id":"d79530ef.87d55","type":"change","z":"fa089ef.050866","name":"save attempted add as flow.add_device","rules":[{"t":"set","p":"add_device","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1700,"y":260,"wires":[[]]},{"id":"7a2bf6f8.1a7b28","type":"mqtt out","z":"fa089ef.050866","name":"","topic":"homebridge/to/add/service","qos":"","retain":"","broker":"cae6e757.5e6a38","x":1660,"y":380,"wires":[]},{"id":"cc693e01.41be1","type":"change","z":"fa089ef.050866","name":"clear flow.add_device","rules":[{"t":"delete","p":"add_device","pt":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":1640,"y":340,"wires":[[]]},{"id":"eeab4ab3.a57378","type":"comment","z":"fa089ef.050866","name":"listen for devices transmitting LWT","info":"","x":160,"y":120,"wires":[]},{"id":"2b0708f7.c37f88","type":"change","z":"fa089ef.050866","name":"retrieve flow.add_device","rules":[{"t":"set","p":"payload","pt":"msg","to":"add_device","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":1037.2857131958008,"y":340.00000953674316,"wires":[["70bf15b0.c2d19c"]]},{"id":"70bf15b0.c2d19c","type":"switch","z":"fa089ef.050866","name":"is it empty?","property":"payload","propertyType":"msg","rules":[{"t":"nempty"}],"checkall":"true","repair":false,"outputs":1,"x":1330,"y":340,"wires":[["7a2bf6f8.1a7b28","cc693e01.41be1"]]},{"id":"9c40c6d1.99bfd8","type":"comment","z":"fa089ef.050866","name":"this ensures it's a one-shot attempt","info":"","x":1900,"y":340,"wires":[]},{"id":"7a1aba91.076844","type":"mqtt in","z":"fa089ef.050866","name":"","topic":"home/+/+/+/stat/POWER3","qos":"2","datatype":"auto","broker":"cae6e757.5e6a38","x":130,"y":500,"wires":[["23e97de2.5a0782"]]},{"id":"f3be60c4.74b09","type":"change","z":"fa089ef.050866","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\t \"name\": payload[1],\t \"service_name\": payload[2] & \" \" & payload[5],\t \"service\": payload[3]\t}","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":840,"y":500,"wires":[["70bf15b0.c2d19c"]]},{"id":"5b3c79d3.3469d8","type":"change","z":"fa089ef.050866","name":"get POWER number","rules":[{"t":"change","p":"payload[5]","pt":"msg","from":"POWER","fromt":"str","to":"","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":627,"y":500,"wires":[["f3be60c4.74b09"]]},{"id":"4700b6bc.f56398","type":"mqtt in","z":"fa089ef.050866","name":"","topic":"home/+/+/+/stat/POWER2","qos":"2","datatype":"auto","broker":"cae6e757.5e6a38","x":130,"y":460,"wires":[["23e97de2.5a0782"]]},{"id":"123a12b2.de160d","type":"mqtt in","z":"fa089ef.050866","name":"","topic":"home/+/+/+/stat/POWER4","qos":"2","datatype":"auto","broker":"cae6e757.5e6a38","x":130,"y":540,"wires":[["23e97de2.5a0782"]]},{"id":"c806b46e.f24668","type":"comment","z":"fa089ef.050866","name":"tasmota dual and 4ch POWER#","info":"Unfortunately this will attempt an add/service each time a POWER# is reported","x":150,"y":420,"wires":[]},{"id":"ac3f01d1.6f3d8","type":"mqtt in","z":"fa089ef.050866","name":"","topic":"homebridge/from/set","qos":"2","datatype":"auto","broker":"cae6e757.5e6a38","x":110,"y":720,"wires":[["93c5ae96.0230f"]]},{"id":"106f2792.69c1c8","type":"comment","z":"fa089ef.050866","name":"*********** Respond to Homebridge Commands (Relay message to device) ************","info":"","x":310,"y":680,"wires":[]},{"id":"93c5ae96.0230f","type":"json","z":"fa089ef.050866","name":"","property":"payload","action":"","pretty":false,"x":336,"y":720,"wires":[["cfbb79a0.eb1968"]]},{"id":"2525003.8c5ee","type":"change","z":"fa089ef.050866","name":"set up topic and payload","rules":[{"t":"set","p":"topic","pt":"msg","to":"\"home/\" & payload.name & \"/\" & payload.service_name & \"/\" & payload.service_type & \"/cmnd/\" & payload.characteristic \t\t","tot":"jsonata"},{"t":"set","p":"payload","pt":"msg","to":"payload.value","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1370,"y":720,"wires":[["632c255b.9d370c"]]},{"id":"cfbb79a0.eb1968","type":"change","z":"fa089ef.050866","name":"modify Characteristic (if required)","rules":[{"t":"set","p":"payload.characteristic","pt":"msg","to":"$replace(payload.characteristic,\"On\",\t\"POWER\" & \t $trim($replace(payload.service_name,\t payload.name, \"\"\t ))\t ) ","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":720,"wires":[["2525003.8c5ee"]]},{"id":"632c255b.9d370c","type":"mqtt out","z":"fa089ef.050866","name":"","topic":"","qos":"","retain":"","broker":"cae6e757.5e6a38","x":1590,"y":720,"wires":[]},{"id":"a2934009.e737b","type":"comment","z":"fa089ef.050866","name":"*********** Respond to Device Publish Status ************","info":"","x":220,"y":820,"wires":[]},{"id":"958fe2e0.8843e","type":"mqtt in","z":"fa089ef.050866","name":"","topic":"home/+/+/+/stat/+","qos":"2","datatype":"auto","broker":"cae6e757.5e6a38","x":100,"y":860,"wires":[["1f53884e.5761f8"]]},{"id":"bb5416b6.eaf338","type":"change","z":"fa089ef.050866","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\t \"name\": payload[1],\t \"service_name\": payload[2],\t \"characteristic\": payload[5],\t \"value\": payload[6]\t}\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":840,"y":860,"wires":[["a98374ff.79fe58"]]},{"id":"f31f584d.b498f8","type":"mqtt out","z":"fa089ef.050866","name":"","topic":"homebridge/to/set","qos":"","retain":"","broker":"cae6e757.5e6a38","x":1630,"y":860,"wires":[]},{"id":"a98374ff.79fe58","type":"change","z":"fa089ef.050866","name":"modify Characteristic (if required)","rules":[{"t":"set","p":"payload.service_name","pt":"msg","to":"\t$contains(payload.characteristic,\"POWER\")?\t $trim(payload.service_name & \" \" & \t $substringAfter(payload.characteristic, \"POWER\")\t ):\t payload.service_name","tot":"jsonata"},{"t":"change","p":"payload.characteristic","pt":"msg","from":"POWER.*","fromt":"re","to":"On","tot":"str"},{"t":"change","p":"payload.value","pt":"msg","from":"ON","fromt":"str","to":"true","tot":"bool"},{"t":"change","p":"payload.value","pt":"msg","from":"OFF","fromt":"str","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":860,"wires":[["f31f584d.b498f8"]]},{"id":"75be2f01.aaf12","type":"change","z":"fa089ef.050866","name":"create array of topic parts","rules":[{"t":"set","p":"payload","pt":"msg","to":"$split(topic & \"/\" & payload, \"/\")\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":396,"y":160,"wires":[["265438ab.4216a8"]]},{"id":"9b64012f.dc937","type":"change","z":"fa089ef.050866","name":"set msg.payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\t \"name\": payload[1],\t \"service_name\": payload[2],\t \"service\": payload[3],\t \"reachable\":true\t}","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":840,"y":220,"wires":[["d79530ef.87d55","d540b7ec.743bc8","989ac3af.4e89b"]]},{"id":"1f53884e.5761f8","type":"change","z":"fa089ef.050866","name":"create array of topic parts","rules":[{"t":"set","p":"payload","pt":"msg","to":"$split(topic & \"/\" & payload, \"/\")\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":396,"y":860,"wires":[["bb5416b6.eaf338"]]},{"id":"23e97de2.5a0782","type":"change","z":"fa089ef.050866","name":"create array of topic parts","rules":[{"t":"set","p":"payload","pt":"msg","to":"$split(topic & \"/\" & payload, \"/\")\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":396,"y":500,"wires":[["5b3c79d3.3469d8"]]},{"id":"ed066cc3.84df8","type":"comment","z":"fa089ef.050866","name":"also handles POWER#","info":"","x":1060,"y":820,"wires":[]},{"id":"e342cbbb.e068b8","type":"comment","z":"fa089ef.050866","name":"also handles POWER#","info":"","x":1060,"y":680,"wires":[]},{"id":"4f8af760.c80328","type":"mqtt in","z":"fa089ef.050866","name":"","topic":"home/+/+/+/tele/SENSOR","qos":"2","datatype":"auto","broker":"cae6e757.5e6a38","x":130,"y":1000,"wires":[["f0b0d093.ac0da"]]},{"id":"f6f42449.cb78a8","type":"change","z":"fa089ef.050866","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\t \"name\": payload[1],\t \"service_name\": payload[2],\t \"characteristic\": payload[5],\t \"value\": payload[6]\t}\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":840,"y":1000,"wires":[["aa319719.f5e318"]]},{"id":"f0b0d093.ac0da","type":"change","z":"fa089ef.050866","name":"create array of topic parts","rules":[{"t":"set","p":"payload","pt":"msg","to":"$split(topic & \"/\" & payload, \"/\")\t","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":396,"y":1000,"wires":[["f73819c5.162aa8"]]},{"id":"c4673584.831d48","type":"mqtt out","z":"fa089ef.050866","name":"","topic":"homebridge/to/set","qos":"","retain":"","broker":"cae6e757.5e6a38","x":1630,"y":1000,"wires":[]},{"id":"f73819c5.162aa8","type":"json","z":"fa089ef.050866","name":"decode SENSOR","property":"payload[6]","action":"","pretty":false,"x":621,"y":1000,"wires":[["f6f42449.cb78a8"]]},{"id":"aa319719.f5e318","type":"change","z":"fa089ef.050866","name":"modify Characteristic (if required)","rules":[{"t":"set","p":"payload.characteristic","pt":"msg","to":"$exists(payload.value.ENERGY.Total)?\t $replace(payload.characteristic,\"SENSOR\",\"OutletInUse\"):\t payload.characteristic","tot":"jsonata"},{"t":"set","p":"payload.value","pt":"msg","to":"payload.value.ENERGY.Current > 0.01?\t true:\t false","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1100,"y":1000,"wires":[["c4673584.831d48"]]},{"id":"d62cf516.747dc8","type":"comment","z":"fa089ef.050866","name":"*********** Monitor SENSOR data. Could be ENERGY (Power Consumption) or DS18B20 or...? ***********","info":"","x":370,"y":960,"wires":[]},{"id":"3168509b.b8b1","type":"comment","z":"fa089ef.050866","name":"Check for ENERGY or...? If ENERGY, check Current and set OutletInUse","info":"","x":1220,"y":960,"wires":[]},{"id":"265438ab.4216a8","type":"switch","z":"fa089ef.050866","name":"offline/online?","property":"payload[6]","propertyType":"msg","rules":[{"t":"eq","v":"Offline","vt":"str"},{"t":"eq","v":"Online","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":640,"y":160,"wires":[["d2352af8.251488"],["9b64012f.dc937"]]},{"id":"d2352af8.251488","type":"change","z":"fa089ef.050866","name":"set msg.payload","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\t \"name\": payload[1],\t \"service_name\": payload[2],\t \"service\": payload[3],\t \"reachable\":false\t}","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":840,"y":100,"wires":[["989ac3af.4e89b"]]},{"id":"989ac3af.4e89b","type":"mqtt out","z":"fa089ef.050866","name":"","topic":"homebridge/to/set/reachability","qos":"","retain":"","broker":"cae6e757.5e6a38","x":1670,"y":120,"wires":[]},{"id":"50b931fd.1e85","type":"comment","z":"fa089ef.050866","name":"Attempt to add them when an Online LWT is received","info":"","x":1730,"y":180,"wires":[]},{"id":"8a6fd9bf.9be628","type":"comment","z":"fa089ef.050866","name":"*********** Automatically add device and set Reachability ************","info":"","x":260,"y":40,"wires":[]},{"id":"cae6e757.5e6a38","type":"mqtt-broker","z":"","name":"Local MQTT","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]