TUTO Communication avec Dyson en Local

Bonjour,
Il est possible de communiquer avec un appareil Dyson en local, pour cela j’utilise Node RED et MQTT.
La première étape consiste à récupérer le Password un script python fait l’affaire:

'''
Transfers the password from the sticker to the needed hash.
'''
import base64
import hashlib

# Ask for the password
pwd = input("Product WiFi Password (e.g.: adgjsfhk):")

# Transfer password to hash version
hash = hashlib.sha512()
hash.update(pwd.encode('utf-8'))
pwd_hash = base64.b64encode(hash.digest()).decode('utf-8')

# Print out password hash
print(pwd_hash)

Il faut juste renseigner le password qui est sur l’etiquette.69bfcc9ccd7ced51d9212bf3a3ba97216a04efae_2_690x475

Après on inporte dans Node Red le flow suivant:

[{"id":"4c78d02a.337a6","type":"tab","label":"Dyson","disabled":false,"info":""},{"id":"6387f72a.5aeb98","type":"mqtt in","z":"4c78d02a.337a6","name":"","topic":"469/NB2-EU-JDA0881A/status/current","qos":"0","datatype":"auto","broker":"fe653f5f.645af","x":330,"y":1040,"wires":[["699d8320.029dfc"]]},{"id":"699d8320.029dfc","type":"json","z":"4c78d02a.337a6","name":"","property":"payload","action":"","pretty":true,"x":670,"y":1040,"wires":[["6384d61c.e0e888","3b28e2fe.43426e"]]},{"id":"5fdfd70d.322428","type":"comment","z":"4c78d02a.337a6","name":"Dyson Status","info":"Recupere et decode les informations","x":250,"y":1000,"wires":[]},{"id":"6384d61c.e0e888","type":"debug","z":"4c78d02a.337a6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":850,"y":1000,"wires":[]},{"id":"68bb409c.0c319","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/Oscillation","topic":"Dyson/Oscillation","qos":"","retain":"","broker":"c6b88f19.cc3fb","x":2010,"y":760,"wires":[]},{"id":"59514725.eea798","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/NUIT","topic":"Dyson/NUIT","qos":"","retain":"","broker":"c6b88f19.cc3fb","x":1990,"y":940,"wires":[]},{"id":"e69ebddf.f0b62","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/Vitesse","topic":"Dyson/Vitesse","qos":"","retain":"true","broker":"c6b88f19.cc3fb","x":2000,"y":640,"wires":[]},{"id":"bd31a597.503eb8","type":"function","z":"4c78d02a.337a6","name":"Nuit","func":"msg.payload = msg.payload[\"product-state\"].nmod\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1510,"y":940,"wires":[["59514725.eea798"]]},{"id":"b18b1683.b3d8f8","type":"function","z":"4c78d02a.337a6","name":"Oscilation Mode","func":"msg.payload = msg.payload[\"product-state\"].oson\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1540,"y":760,"wires":[["68bb409c.0c319"]]},{"id":"ba414274.72c4c","type":"function","z":"4c78d02a.337a6","name":"Speed","func":"msg.payload = msg.payload[\"product-state\"].fnsp\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1510,"y":640,"wires":[["e69ebddf.f0b62"]]},{"id":"63fee9ef.2be728","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/FanMode","topic":"Dyson/FanMode","qos":"","retain":"true","broker":"c6b88f19.cc3fb","x":2000,"y":520,"wires":[]},{"id":"bc8e0b1f.f25ff8","type":"function","z":"4c78d02a.337a6","name":"FanMode","func":"msg.payload = msg.payload[\"product-state\"].fmod\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1520,"y":520,"wires":[["63fee9ef.2be728"]]},{"id":"3b83453d.5a621a","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/StandbyMonitoring","topic":"Dyson/StandbyMonitoring","qos":"","retain":"true","broker":"c6b88f19.cc3fb","x":2030,"y":820,"wires":[]},{"id":"731593b.76b396c","type":"function","z":"4c78d02a.337a6","name":"StandbyMonitoring","func":"msg.payload = msg.payload[\"product-state\"].rhtm\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1550,"y":820,"wires":[["3b83453d.5a621a"]]},{"id":"ceb868d5.131bf8","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/Temperature","topic":"Dyson/Temperature","qos":"","retain":"true","broker":"c6b88f19.cc3fb","x":2010,"y":1740,"wires":[]},{"id":"8f978ee1.555b9","type":"function","z":"4c78d02a.337a6","name":"Temperature ","func":"msg.payload = ((msg.payload.data.tact/10.0)- 273.15).toFixed(2)\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1550,"y":1740,"wires":[["ceb868d5.131bf8"]]},{"id":"93eb47d1.7092d8","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/Humidity","topic":"Dyson/Humidity","qos":"","retain":"true","broker":"c6b88f19.cc3fb","x":2000,"y":1800,"wires":[]},{"id":"ddfacc22.f4de3","type":"function","z":"4c78d02a.337a6","name":"Humidity ","func":"msg.payload = Math.round(msg.payload.data.hact)\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1540,"y":1800,"wires":[["93eb47d1.7092d8"]]},{"id":"422fc440.349f4c","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/Particle","topic":"Dyson/Particle","qos":"","retain":"true","broker":"c6b88f19.cc3fb","x":2000,"y":1860,"wires":[]},{"id":"c7d8045c.996948","type":"function","z":"4c78d02a.337a6","name":"Particle ","func":"msg.payload = Math.round(msg.payload.data.pact)\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1540,"y":1860,"wires":[["422fc440.349f4c"]]},{"id":"63e48fbc.a3fc","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/SleepTimer","topic":"Dyson/SleepTimer","qos":"","retain":"true","broker":"c6b88f19.cc3fb","x":2010,"y":1980,"wires":[]},{"id":"df9be0e1.e7d41","type":"function","z":"4c78d02a.337a6","name":"SleepTimer","func":"if (msg.payload.data.sltm !== \"OFF\") {\n   msg.payload = Math.round(msg.payload.data.sltm)\n} else {\n   msg.payload = \"OFF\"\n}\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1550,"y":1980,"wires":[["63e48fbc.a3fc"]]},{"id":"3754240f.5ce18c","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/Volatil_organic_compounds","topic":"Dyson/Volatil_organic_compounds","qos":"","retain":"true","broker":"c6b88f19.cc3fb","x":2060,"y":1920,"wires":[]},{"id":"dbeb4e25.427d9","type":"function","z":"4c78d02a.337a6","name":"FanState","func":"msg.payload = msg.payload[\"product-state\"].fnst\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1520,"y":580,"wires":[["2a3d1508.a6974a"]]},{"id":"4fe1b768.8c2fa8","type":"function","z":"4c78d02a.337a6","name":"QualityTarget","func":"if (msg.payload[\"product-state\"].qtar === \"0001\") {\n   msg.payload = \"HIGH\"\n} else {\n   if (msg.payload[\"product-state\"].qtar === \"0003\") {\n   msg.payload = \"MEDIUM\"\n} else {\n   if (msg.payload[\"product-state\"].qtar === \"0004\") {\n   msg.payload = \"LOW\"\n} else {\n   \n}\n}\n\n}\n\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1530,"y":700,"wires":[["1d0cdac1.9a95c5"]]},{"id":"857a068d.a11e88","type":"function","z":"4c78d02a.337a6","name":"volatil organic compounds","func":"if (msg.payload.data.sltm !== \"INIT\") {\n   msg.payload = Math.round(msg.payload.data.vact)\n} else {\n   msg.payload = \"INIT\"\n}\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1590,"y":1920,"wires":[["3754240f.5ce18c"]]},{"id":"1d0cdac1.9a95c5","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/QualityTarget","topic":"Dyson/QualityTarget","qos":"","retain":"true","broker":"c6b88f19.cc3fb","x":2020,"y":700,"wires":[]},{"id":"6e075a53.148c44","type":"mqtt out","z":"4c78d02a.337a6","name":"","topic":"469/NB2-EU-JDA0881A/command","qos":"","retain":"","broker":"fe653f5f.645af","x":1560,"y":220,"wires":[]},{"id":"711dc22d.fa57ac","type":"function","z":"4c78d02a.337a6","name":"","func":"var now = new Date();\n// convert date to a string in UTC timezone format:\nconsole.log(now.toUTCString());\n\n\n\nmsg.payload = {\"msg\":\"REQUEST-CURRENT-STATE\",now:\"2016-08-11T14:57:17Z\"\n}\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1280,"y":220,"wires":[["6e075a53.148c44","cbf12030.f1e81"]]},{"id":"a2b2677b.af2eb8","type":"debug","z":"4c78d02a.337a6","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1250,"y":140,"wires":[]},{"id":"cbf12030.f1e81","type":"debug","z":"4c78d02a.337a6","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1530,"y":180,"wires":[]},{"id":"95137df9.0b08c","type":"inject","z":"4c78d02a.337a6","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"600","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":1010,"y":220,"wires":[["a2b2677b.af2eb8","711dc22d.fa57ac"]]},{"id":"1fb0d883.85a357","type":"mqtt in","z":"4c78d02a.337a6","name":"REFRESH","topic":"REFRESH","qos":"2","datatype":"auto","broker":"c6b88f19.cc3fb","x":1020,"y":280,"wires":[["711dc22d.fa57ac"]]},{"id":"3b28e2fe.43426e","type":"switch","z":"4c78d02a.337a6","name":"","property":"payload.msg","propertyType":"msg","rules":[{"t":"eq","v":"CURRENT-STATE","vt":"str"},{"t":"eq","v":"ENVIRONMENTAL-CURRENT-SENSOR-DATA","vt":"str"},{"t":"eq","v":"STATE-CHANGE","vt":"str"}],"checkall":"true","repair":false,"outputs":3,"x":1090,"y":1040,"wires":[["8072111.172d0f","b18b1683.b3d8f8","bc8e0b1f.f25ff8","dbeb4e25.427d9","bd31a597.503eb8","ba414274.72c4c","4fe1b768.8c2fa8","a56362dc.62385","731593b.76b396c","e369f2f5.78598","32b90aaf.1685b6","ce80a602.7b46f8","4302dbd9.37d774"],["255cc174.5748ae","857a068d.a11e88","df9be0e1.e7d41","c7d8045c.996948","ddfacc22.f4de3","8f978ee1.555b9"],["711dc22d.fa57ac"]]},{"id":"8072111.172d0f","type":"debug","z":"4c78d02a.337a6","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1530,"y":480,"wires":[]},{"id":"255cc174.5748ae","type":"debug","z":"4c78d02a.337a6","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1550,"y":1680,"wires":[]},{"id":"2a3d1508.a6974a","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/FanState","topic":"Dyson/FanState","qos":"","retain":"true","broker":"c6b88f19.cc3fb","x":2000,"y":580,"wires":[]},{"id":"5ae325e.07f2ddc","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/FiltreLife","topic":"Dyson/FiltreLife","qos":"","retain":"true","broker":"c6b88f19.cc3fb","x":2000,"y":880,"wires":[]},{"id":"a56362dc.62385","type":"function","z":"4c78d02a.337a6","name":"FiltreLife","func":"msg.payload = msg.payload[\"product-state\"].filf\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1520,"y":880,"wires":[["5ae325e.07f2ddc"]]},{"id":"a6427dd1.66256","type":"comment","z":"4c78d02a.337a6","name":"DYSON REFRESH DATA","info":"Actualisastion des données par:\n*commande MQTT refresh\n*Toute les 10min\n*Si changement detecté \"STATE-CHANGE\"","x":730,"y":220,"wires":[]},{"id":"8c2f968b.4711f8","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/HeatMode","topic":"Dyson/HeatMode","qos":"","retain":"","broker":"c6b88f19.cc3fb","x":2010,"y":1000,"wires":[]},{"id":"e369f2f5.78598","type":"function","z":"4c78d02a.337a6","name":"HeatMode","func":"msg.payload = msg.payload[\"product-state\"].hmod\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1530,"y":1000,"wires":[["8c2f968b.4711f8"]]},{"id":"86f455d3.dd1808","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/HeatState","topic":"Dyson/HeatState","qos":"","retain":"","broker":"c6b88f19.cc3fb","x":2010,"y":1060,"wires":[]},{"id":"32b90aaf.1685b6","type":"function","z":"4c78d02a.337a6","name":"HeatState","func":"msg.payload = msg.payload[\"product-state\"].hsta\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1520,"y":1060,"wires":[["86f455d3.dd1808"]]},{"id":"fd1d2892.a33e58","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/HeatTarget","topic":"Dyson/HeatTarget","qos":"","retain":"","broker":"c6b88f19.cc3fb","x":2010,"y":1120,"wires":[]},{"id":"ce80a602.7b46f8","type":"function","z":"4c78d02a.337a6","name":"HeatTarget","func":"msg.payload = msg.payload[\"product-state\"].hmax\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1530,"y":1120,"wires":[["fd1d2892.a33e58"]]},{"id":"40d5eebd.debf4","type":"mqtt out","z":"4c78d02a.337a6","name":"Dyson/FocusedMode","topic":"Dyson/FocusedMode","qos":"","retain":"","broker":"c6b88f19.cc3fb","x":2020,"y":1180,"wires":[]},{"id":"4302dbd9.37d774","type":"function","z":"4c78d02a.337a6","name":"FocusedMode","func":"msg.payload = msg.payload[\"product-state\"].ffoc\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1540,"y":1180,"wires":[["40d5eebd.debf4"]]},{"id":"3761eda7.f860e2","type":"switch","z":"4c78d02a.337a6","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":810,"y":2820,"wires":[["e206fc5f.41736"],["e355a46c.826888"]]},{"id":"e206fc5f.41736","type":"change","z":"4c78d02a.337a6","name":"","rules":[{"t":"set","p":"night","pt":"msg","to":"ON","tot":"str"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":2820,"wires":[["1d62f4ba.574afb"]]},{"id":"e355a46c.826888","type":"change","z":"4c78d02a.337a6","name":"","rules":[{"t":"set","p":"night","pt":"msg","to":"OFF","tot":"str"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":2860,"wires":[["1d62f4ba.574afb"]]},{"id":"457ee689.15fd68","type":"switch","z":"4c78d02a.337a6","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":810,"y":2520,"wires":[["b973d43e.f817d8"],["c8f9aa6a.20d438"]]},{"id":"b973d43e.f817d8","type":"change","z":"4c78d02a.337a6","name":"","rules":[{"t":"set","p":"power","pt":"msg","to":"FAN","tot":"str"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":2520,"wires":[["1d62f4ba.574afb"]]},{"id":"c8f9aa6a.20d438","type":"change","z":"4c78d02a.337a6","name":"","rules":[{"t":"set","p":"power","pt":"msg","to":"OFF","tot":"str"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":960,"y":2560,"wires":[["1d62f4ba.574afb"]]},{"id":"1b4938d6.6bb3a7","type":"switch","z":"4c78d02a.337a6","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":810,"y":2640,"wires":[["f68c1c4a.83423"],["b90798a9.cc8e38"]]},{"id":"f68c1c4a.83423","type":"change","z":"4c78d02a.337a6","name":"","rules":[{"t":"set","p":"osc","pt":"msg","to":"ON","tot":"str"},{"t":"delete","p":"payload","pt":"msg"},{"t":"set","p":"power","pt":"msg","to":"FAN","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":970,"y":2640,"wires":[["1d62f4ba.574afb"]]},{"id":"b90798a9.cc8e38","type":"change","z":"4c78d02a.337a6","name":"","rules":[{"t":"set","p":"osc","pt":"msg","to":"OFF","tot":"str"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":970,"y":2680,"wires":[["1d62f4ba.574afb"]]},{"id":"72ddf331.999f3c","type":"function","z":"4c78d02a.337a6","name":"Speed","func":"newmsg = {}\n\nnewmsg.speed = (parseFloat(msg.payload).toFixed(0)).toString().padStart(4,\"0\")\n\nreturn newmsg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":950,"y":2960,"wires":[["1d62f4ba.574afb"]]},{"id":"1d62f4ba.574afb","type":"function","z":"4c78d02a.337a6","name":"","func":"var now = new Date();\n// convert date to a string in UTC timezone format:\nconsole.log(now.toUTCString());\n\nvar oson = msg.osc\nvar speed = msg.speed\nvar night = msg.night\nvar power = msg.power\nvar set_timer = msg.set_timer\nvar hmod = msg.hmod\nvar ffoc = msg.ffoc\nvar hmax = msg.hmax\nmsg.payload = {\n    \"msg\": \"STATE-SET\",\n    \"time\": now,\n    \"data\": {\n        \"oson\": oson,\n        \"fnsp\": speed,\n        \"nmod\": night,\n        \"fmod\": power,\n        \"sltm\": set_timer,\n        \"hmod\": hmod,\n        \"ffoc\": ffoc,\n        \"hmax\": hmax,\n    }\n}\n\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":1440,"y":2520,"wires":[["2a8bd28b.3f39de"]]},{"id":"2a8bd28b.3f39de","type":"mqtt out","z":"4c78d02a.337a6","name":"","topic":"469/NB2-EU-JDA0881A/command","qos":"","retain":"","broker":"fe653f5f.645af","x":1880,"y":2520,"wires":[]},{"id":"4f6500f1.c9157","type":"mqtt in","z":"4c78d02a.337a6","name":"Power","topic":"Power","qos":"2","datatype":"auto","broker":"c6b88f19.cc3fb","x":610,"y":2520,"wires":[["457ee689.15fd68"]]},{"id":"2d717892.11be98","type":"mqtt in","z":"4c78d02a.337a6","name":"OSCILLATION","topic":"OSCILLATION","qos":"2","datatype":"auto","broker":"c6b88f19.cc3fb","x":640,"y":2640,"wires":[["1b4938d6.6bb3a7"]]},{"id":"e9339b16.667148","type":"mqtt in","z":"4c78d02a.337a6","name":"SPEED","topic":"SPEED","qos":"2","datatype":"auto","broker":"c6b88f19.cc3fb","x":610,"y":2960,"wires":[["ca107856.e58878"]]},{"id":"8745f99.6547a08","type":"mqtt in","z":"4c78d02a.337a6","name":"NIGHT","topic":"NIGHT","qos":"2","datatype":"auto","broker":"c6b88f19.cc3fb","x":610,"y":2820,"wires":[["3761eda7.f860e2"]]},{"id":"ca107856.e58878","type":"switch","z":"4c78d02a.337a6","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"AUTO","vt":"str"},{"t":"neq","v":"AUTO","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":810,"y":2960,"wires":[["d23a6820.ea2368"],["72ddf331.999f3c"]]},{"id":"d23a6820.ea2368","type":"change","z":"4c78d02a.337a6","name":"","rules":[{"t":"set","p":"power","pt":"msg","to":"AUTO","tot":"str"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":2920,"wires":[["1d62f4ba.574afb"]]},{"id":"84f2621.c225ba","type":"mqtt in","z":"4c78d02a.337a6","name":"TIMER","topic":"TIMER","qos":"2","datatype":"auto","broker":"c6b88f19.cc3fb","x":610,"y":3060,"wires":[["7189af3.302485"]]},{"id":"764c1d58.fc30a4","type":"function","z":"4c78d02a.337a6","name":"","func":"newmsg = {}\n\nnewmsg.set_timer = msg.payload\n\nreturn newmsg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":980,"y":3080,"wires":[["1d62f4ba.574afb"]]},{"id":"7189af3.302485","type":"switch","z":"4c78d02a.337a6","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"OFF","vt":"str"},{"t":"neq","v":"OFF","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":790,"y":3060,"wires":[["1e094cdf.9dde63"],["764c1d58.fc30a4"]]},{"id":"1e094cdf.9dde63","type":"change","z":"4c78d02a.337a6","name":"","rules":[{"t":"set","p":"set_timer","pt":"msg","to":"OFF","tot":"str"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1000,"y":3040,"wires":[["1d62f4ba.574afb"]]},{"id":"5d8c3689.de4c18","type":"comment","z":"4c78d02a.337a6","name":"DYSON MQTT CONTROL","info":"Envois les informations au Dyson","x":670,"y":2420,"wires":[]},{"id":"ba8a5472.741e38","type":"mqtt in","z":"4c78d02a.337a6","name":"HeatMode","topic":"HeatMode","qos":"2","datatype":"auto","broker":"c6b88f19.cc3fb","x":600,"y":3200,"wires":[["4cb9d83a.ae68b8"]]},{"id":"562bf517.82854c","type":"mqtt in","z":"4c78d02a.337a6","name":"FocusedMode","topic":"FocusedMode","qos":"2","datatype":"auto","broker":"c6b88f19.cc3fb","x":610,"y":3300,"wires":[["636dba3.1acc144"]]},{"id":"4cb9d83a.ae68b8","type":"switch","z":"4c78d02a.337a6","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":790,"y":3200,"wires":[["19595a49.fbd6b6"],["ce7f6b37.7107f8"]]},{"id":"19595a49.fbd6b6","type":"change","z":"4c78d02a.337a6","name":"","rules":[{"t":"set","p":"hmod","pt":"msg","to":"ON","tot":"str"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":3200,"wires":[["1d62f4ba.574afb"]]},{"id":"ce7f6b37.7107f8","type":"change","z":"4c78d02a.337a6","name":"","rules":[{"t":"set","p":"hmod","pt":"msg","to":"OFF","tot":"str"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":3240,"wires":[["1d62f4ba.574afb"]]},{"id":"636dba3.1acc144","type":"switch","z":"4c78d02a.337a6","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":790,"y":3300,"wires":[["43cf6117.c99be"],["8792dfa7.87197"]]},{"id":"43cf6117.c99be","type":"change","z":"4c78d02a.337a6","name":"","rules":[{"t":"set","p":"ffoc","pt":"msg","to":"ON","tot":"str"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":3300,"wires":[["1d62f4ba.574afb"]]},{"id":"8792dfa7.87197","type":"change","z":"4c78d02a.337a6","name":"","rules":[{"t":"set","p":"ffoc","pt":"msg","to":"OFF","tot":"str"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":940,"y":3340,"wires":[["1d62f4ba.574afb"]]},{"id":"36b9b310.8ef35c","type":"function","z":"4c78d02a.337a6","name":"hmax","func":"newmsg = {}\n\nnewmsg.hmax = (parseFloat(msg.payload).toFixed(0)).toString().padStart(4,\"0\")\n\nreturn newmsg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":930,"y":3500,"wires":[["1d62f4ba.574afb"]]},{"id":"a05a51f3.a2088","type":"mqtt in","z":"4c78d02a.337a6","name":"HeatTarget","topic":"HeatTarget","qos":"2","datatype":"auto","broker":"c6b88f19.cc3fb","x":600,"y":3500,"wires":[["1606d30.0628a2d"]]},{"id":"1606d30.0628a2d","type":"switch","z":"4c78d02a.337a6","name":"","property":"payload","propertyType":"msg","rules":[{"t":"nempty"}],"checkall":"true","repair":false,"outputs":1,"x":790,"y":3500,"wires":[["36b9b310.8ef35c"]]},{"id":"fe653f5f.645af","type":"mqtt-broker","name":"Dyson LOCAL","broker":"192.168.31.150","port":"1883","clientid":"","usetls":false,"compatmode":false,"keepalive":"10","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"c6b88f19.cc3fb","type":"mqtt-broker","name":"Mostiquitto","broker":"localhost","port":"1883","clientid":"16","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"Node-red-router","birthQos":"2","birthRetain":"false","birthPayload":"1","closeTopic":"Node-red-router","closeQos":"2","closeRetain":"false","closePayload":"0","willTopic":"Node-red-router","willQos":"2","willPayload":"0"}]


Modifier le contenus des deux bloc entourés en rouge de la manière suivante:
Les 3 premiers chiffres correspondent aux 3 dernier du SSID de l’appareil.
Ensuite après le "" c’est le SSID sans DYSON.

Pour finir modifier les paramètres du broker avec en Username le SSID sans DYSON(juste la partie du milieu) et en Password celui générer par le script python.

Il ne reste plus qu’a crée les commandes dans JEEDOM:
POWER
OSCILLATION
NIGHT
SPEED
TIMER
HeatMode
FocusedMode
HeatTarget

Exemple:

PS le mien n’a pas la fonction chauffage je n’ai donc pas pu les tester
PS2 Lien pour installer Node Red:Node RED
PS3 Lien pour le MQTT:MQTT

2 « J'aime »

Bonjour !

Cela ne fonctionne pas avec les « derniers » modèles Dyson j’imagine ? J’ai un TP04, je ne dispose pas de SSID et après une recherche je suis tombé là dessus : HOOBS

L’appairage WiFi ne se fait pas de la même manière…

Où il est indiqué que pour les TP04 il faut faire via les identifiants du compte dyson

Bonjour sur certains site j’ai vue qu’il fallait utiliser le numéro de série a la place du SSID comme nom d’utilisateur et pas de password

Bonjour @regi54 j’éssai de met en place la solution que tu as partagé mais il y à quelque chose qui coinse chez moi et je n’arrive pas à trouver quoi pour le moment.
J’ai copié le script python est je me retrouve avec un mode de passe qui contient entre 30 à 40 caratères déjà sa je ne sais pas si c’est bon … .
Ensuite j’ai copié le flow sur node red et je vois cela sur Node red

je pense donc que cette partie là est ok ?
Si le mode de passe récupéré via le script n’est pas bon je pense que c’est à cause de cela que côté jeedom il n’arrive pas à se connecter à broker mqtt…
Est ce que tu peux me dire si c’est normal que le mdp soit aussi lonnnnnng ?

Merci d’avance

Bonjour pour moi le mot de passe fait 88 caractère donc oui très long
Par contre sur le refresh c’est le mot de passe de ton serveur mosquito pas celui du dyson