I just received the latest firware for my USB-ESP-Haier stick.
It implements the "Lights" function to switch the LED on the indoor unit on/off.
Code: Select all
[{"id":"5eeacbec.3fc754","type":"tab","label":"Haier","disabled":false,"info":""},{"id":"8e2e4a39.4c1b18","type":"mqtt in","z":"5eeacbec.3fc754","name":"","topic":"myhome/topic/+","qos":"0","datatype":"auto","broker":"1a0c69de.7ac4b6","x":130,"y":300,"wires":[["24ee2efb.f409da","855a1b51.10e098"]]},{"id":"6112700d.10535","type":"debug","z":"5eeacbec.3fc754","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":540,"y":240,"wires":[]},{"id":"7996aa6b.53e75c","type":"mqtt out","z":"5eeacbec.3fc754","name":"","topic":"domoticz/in","qos":"0","retain":"false","broker":"1a0c69de.7ac4b6","x":540,"y":300,"wires":[]},{"id":"a275360a.be2188","type":"mqtt in","z":"5eeacbec.3fc754","name":"","topic":"domoticz/out","qos":"2","datatype":"json","broker":"1a0c69de.7ac4b6","x":120,"y":625,"wires":[["70510eb4.3fe2c8"]]},{"id":"70510eb4.3fe2c8","type":"switch","z":"5eeacbec.3fc754","name":"Filter Haier Commands","property":"payload.idx","propertyType":"msg","rules":[{"t":"eq","v":"253","vt":"num"},{"t":"eq","v":"247","vt":"num"},{"t":"eq","v":"248","vt":"num"},{"t":"eq","v":"249","vt":"num"},{"t":"eq","v":"251","vt":"num"},{"t":"eq","v":"252","vt":"num"},{"t":"eq","v":"255","vt":"num"},{"t":"eq","v":"245","vt":"num"}],"checkall":"true","repair":false,"outputs":8,"x":360,"y":625,"wires":[["327932e9.ab5a9e"],["cb9e8de1.b8fc7"],["5a1f3616.93376"],["9e8de2f6.15c9b"],["730324b9.21ceac"],["5ac35af7.cfe434"],["ee06e1a.7eeee2"],["e9cdfbd5.f133a"]]},{"id":"e5bab2e8.49ee18","type":"comment","z":"5eeacbec.3fc754","name":"Output explanation","info":"1. Lock Remote\n2. Power\n3. Health\n4. Swing\n5. Fan Speed\n6. Mode\n7. Thermostat Setpoint","x":340,"y":725,"wires":[]},{"id":"cb9e8de1.b8fc7","type":"function","z":"5eeacbec.3fc754","name":"Lock Remote","func":"msg.topic = \"myhome/topic/set/Lock_Remote\";\nmsg.payload = msg.payload.nvalue.toString();\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":610,"y":520,"wires":[["39626de7.1615c2"]]},{"id":"5a1f3616.93376","type":"function","z":"5eeacbec.3fc754","name":"Power","func":"msg.topic = \"myhome/topic/set/Power\";\nmsg.payload = msg.payload.nvalue.toString();\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":580,"y":560,"wires":[["39626de7.1615c2"]]},{"id":"9e8de2f6.15c9b","type":"function","z":"5eeacbec.3fc754","name":"Health","func":"msg.topic = \"myhome/topic/set/Health\";\nmsg.payload = msg.payload.nvalue.toString();\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":580,"y":600,"wires":[["39626de7.1615c2"]]},{"id":"730324b9.21ceac","type":"function","z":"5eeacbec.3fc754","name":"Swing","func":"msg.topic = \"myhome/topic/set/Swing\";\nif ((msg.payload.nvalue === 0) && msg.payload.svalue1 == \"0\") {\n msg.payload = \"off\";\n} else if (msg.payload.nvalue === 2) {\n switch (msg.payload.svalue1) {\n case \"10\":\n msg.payload = \"ud\";\n break;\n \n case \"20\":\n msg.payload = \"lr\";\n break;\n\n case \"30\":\n msg.payload = \"all\";\n break;\n\n }\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":580,"y":640,"wires":[["39626de7.1615c2"]]},{"id":"5ac35af7.cfe434","type":"function","z":"5eeacbec.3fc754","name":"Fan Speed","func":"msg.topic = \"myhome/topic/set/Fan_Speed\";\nif (msg.payload.nvalue === 2) {\n switch (msg.payload.svalue1) {\n case \"10\":\n msg.payload = \"max\";\n break;\n \n case \"20\":\n msg.payload = \"mid\";\n break;\n\n case \"30\":\n msg.payload = \"min\";\n break;\n\n case \"40\":\n msg.payload = \"auto\";\n break;\n\n }\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":600,"y":680,"wires":[["39626de7.1615c2"]]},{"id":"ee06e1a.7eeee2","type":"function","z":"5eeacbec.3fc754","name":"Mode","func":"msg.topic = \"myhome/topic/set/Mode\";\nif ((msg.payload.nvalue === 0) && msg.payload.svalue1 == \"0\") {\n msg.payload = \"off\";\n} else if (msg.payload.nvalue === 2) {\n switch (msg.payload.svalue1) {\n case \"10\":\n msg.payload = \"dry\";\n break;\n\n case \"20\":\n msg.payload = \"heat\";\n break;\n \n case \"30\":\n msg.payload = \"cool\";\n break;\n\n case \"40\":\n msg.payload = \"auto\";\n break;\n\n }\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":580,"y":720,"wires":[["39626de7.1615c2"]]},{"id":"327932e9.ab5a9e","type":"function","z":"5eeacbec.3fc754","name":"Set Temperature","func":"msg.topic = \"myhome/topic/set/Set_Temp\";\nmsg.payload = msg.payload.svalue1;\nif (Number(msg.payload) < 16) (msg.payload) = \"16.00\";\nif (Number(msg.payload) > 30) (msg.payload) = \"30.00\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":620,"y":480,"wires":[["b323ac60.184b78"]]},{"id":"39626de7.1615c2","type":"mqtt out","z":"5eeacbec.3fc754","name":"MQTT to Haier","topic":"","qos":"0","retain":"false","broker":"1a0c69de.7ac4b6","x":1010,"y":620,"wires":[]},{"id":"24ee2efb.f409da","type":"function","z":"5eeacbec.3fc754","name":"To Domoticz","func":"switch (msg.topic) {\n\n case \"myhome/topic/Light\":\n msg.payload = {\"command\":\"switchlight\",\"idx\":245,\"switchcmd\":msg.payload.charAt(0).toUpperCase() + msg.payload.slice(1)};\n break;\n \n case \"myhome/topic/Fresh\":\n msg.payload = {\"command\":\"switchlight\",\"idx\":246,\"switchcmd\":msg.payload.charAt(0).toUpperCase() + msg.payload.slice(1)};\n break;\n \n case \"myhome/topic/Lock_Remote\":\n if (msg.payload == \"true\") {\n msg.payload = {\"command\":\"switchlight\",\"idx\":247,\"switchcmd\":\"On\"};\n } else if (msg.payload == \"false\") {\n msg.payload = {\"command\":\"switchlight\",\"idx\":247,\"switchcmd\":\"Off\"};\n }\n break;\n \n case \"myhome/topic/Power\":\n msg.payload = {\"command\":\"switchlight\",\"idx\":248,\"switchcmd\":msg.payload.charAt(0).toUpperCase() + msg.payload.slice(1)};\n break;\n \n case \"myhome/topic/Health\":\n msg.payload = {\"command\":\"switchlight\",\"idx\":249,\"switchcmd\":msg.payload.charAt(0).toUpperCase() + msg.payload.slice(1)};\n break;\n \n case \"myhome/topic/Compressor\":\n msg.payload = {\"command\":\"switchlight\",\"idx\":250,\"switchcmd\":msg.payload.charAt(0).toUpperCase() + msg.payload.slice(1)};\n break;\n \n case \"myhome/topic/Swing\": \n \n switch (msg.payload) {\n\n case \"off\":\n msg.payload = {\"command\":\"udevice\",\"idx\":251,\"nvalue\":0,\"svalue\":\"0\"};\n break;\n \n case \"ud\":\n msg.payload = {\"command\":\"udevice\",\"idx\":251,\"nvalue\":1,\"svalue\":\"10\"};\n break;\n\n case \"lr\":\n msg.payload = {\"command\":\"udevice\",\"idx\":251,\"nvalue\":1,\"svalue\":\"20\"};\n break;\n\n case \"all\":\n msg.payload = {\"command\":\"udevice\",\"idx\":251,\"nvalue\":1,\"svalue\":\"30\"};\n break;\n\n }\n break;\n \n case \"myhome/topic/Fan_Speed\": \n \n switch (msg.payload) {\n\n case \"max\":\n msg.payload = {\"command\":\"udevice\",\"idx\":252,\"nvalue\":1,\"svalue\":\"10\"};\n break;\n \n case \"mid\":\n msg.payload = {\"command\":\"udevice\",\"idx\":252,\"nvalue\":1,\"svalue\":\"20\"};\n break;\n\n case \"min\":\n msg.payload = {\"command\":\"udevice\",\"idx\":252,\"nvalue\":1,\"svalue\":\"30\"};\n break;\n\n case \"auto\":\n msg.payload = {\"command\":\"udevice\",\"idx\":252,\"nvalue\":1,\"svalue\":\"40\"};\n break;\n\n }\n break;\n \n case \"myhome/topic/Mode\": \n \n switch (msg.payload) {\n\n case \"Off\":\n msg.payload = {\"command\":\"udevice\",\"idx\":255,\"nvalue\":0,\"svalue\":\"0\"};\n break;\n \n case \"Dry\":\n msg.payload = {\"command\":\"udevice\",\"idx\":255,\"nvalue\":1,\"svalue\":\"10\"};\n break;\n\n case \"Heat\":\n msg.payload = {\"command\":\"udevice\",\"idx\":255,\"nvalue\":1,\"svalue\":\"20\"};\n break;\n\n case \"Cool\":\n msg.payload = {\"command\":\"udevice\",\"idx\":255,\"nvalue\":1,\"svalue\":\"30\"};\n break;\n\n case \"Auto\":\n msg.payload = {\"command\":\"udevice\",\"idx\":255,\"nvalue\":1,\"svalue\":\"40\"};\n break;\n\n }\n break;\n \n case \"myhome/topic/Set_Temp\":\n msg.payload = {\"command\":\"udevice\",\"idx\":253,\"nvalue\":0,\"svalue\":msg.payload};\n break; \n \n case \"myhome/topic/Current_Temp\":\n msg.payload = {\"command\":\"udevice\",\"idx\":254,\"nvalue\":0,\"svalue\":msg.payload};\n break;\n \n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":340,"y":300,"wires":[["7996aa6b.53e75c","6112700d.10535"]]},{"id":"b2355c98.765f9","type":"comment","z":"5eeacbec.3fc754","name":"245 Light 246 Fresh 247 Lock_Remote 248 Power 249 Health 250 Compressor 251 Swing 252 Fan_Speed 253 Set_Temp 254 Current_Temp 255 Mode","info":"245 Light\n246 Fresh\n247 Lock_Remote\n248 Power\n249 Health\n250 Compressor\n251 Swing\n252 Fan_Speed\n253 Set_Temp\n254 Current_Temp\n255 Mode","x":550,"y":140,"wires":[]},{"id":"10a6dd40.3022f3","type":"trigger","z":"5eeacbec.3fc754","name":"","op1":"","op2":"open","op1type":"pay","op2type":"str","duration":"1","extend":true,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":600,"y":380,"wires":[["b323ac60.184b78"]]},{"id":"855a1b51.10e098","type":"function","z":"5eeacbec.3fc754","name":"Create Gate Control","func":"if (msg.topic == \"myhome/topic/Set_Temp\") {\n msg.topic = \"control\";\n msg.payload = \"close\";\n return [msg, null];\n} else {\n return [null,msg]\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","x":370,"y":380,"wires":[["10a6dd40.3022f3"]]},{"id":"a271a50b.8975a8","type":"debug","z":"5eeacbec.3fc754","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1000,"y":480,"wires":[]},{"id":"b323ac60.184b78","type":"gate","z":"5eeacbec.3fc754","name":"Gate","controlTopic":"control","defaultState":"open","openCmd":"open","closeCmd":"close","toggleCmd":"toggle","defaultCmd":"default","persist":false,"x":820,"y":480,"wires":[["39626de7.1615c2","a271a50b.8975a8"]]},{"id":"e9cdfbd5.f133a","type":"function","z":"5eeacbec.3fc754","name":"Light","func":"msg.topic = \"myhome/topic/set/Light\";\nmsg.payload = msg.payload.nvalue.toString();\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":590,"y":760,"wires":[["39626de7.1615c2"]]},{"id":"1a0c69de.7ac4b6","type":"mqtt-broker","z":"","name":"localhost","broker":"127.0.0.1","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]