Request for yeedi vacuum integration

The nodejs deebot is available for node-red.
And for node red there is an addon.
So best way in the moment is to use it via node red.
Already tested it and it is working good.

1 Like

Hi @timevortex
thanks for your support.
Can you explain how can we integrate using node-red?

1 Like

I wrote a integration for my yeedi 2 hybrid. Simply import the flow below to your node-red running inside HA.

It offers:

  • Button Start of cleaning
  • Button Return to charging
  • Status Charging

It uses some German words:

  • Automatische Reinigung means start automatic cleaning.
  • ZurĆ¼ck zur Ladestation means back to charging.

The implementation is definitely not genius, but it works. :wink:

[{"id":"49f3edc41816261b","type":"tab","label":"yeedi","disabled":false,"info":"","env":[]},{"id":"5e170cf2c18e9c8b","type":"ecovacs-deebot","z":"49f3edc41816261b","account":"103c02f73abdabfa","name":"Yeedi","deviceNumber":"1","connectOnStartup":true,"enableGetMapsOnStartup":false,"enableSimpleEvents":true,"login":"ecovacs.com","x":690,"y":360,"wires":[["ff8fa2e78e7af929","cd54df8fcce1930f"]]},{"id":"ff8fa2e78e7af929","type":"debug","z":"49f3edc41816261b","name":"Yeedi Device Output","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1000,"y":500,"wires":[]},{"id":"73324527418690e4","type":"ecovacs-deebot-command","z":"49f3edc41816261b","name":"","command":"Clean","arg":"","arg2":"","arg3":"","x":440,"y":360,"wires":[["5e170cf2c18e9c8b"]]},{"id":"9fd2ce5a3beb0722","type":"ecovacs-deebot-command","z":"49f3edc41816261b","name":"","command":"Charge","arg":"","arg2":"","arg3":"","x":420,"y":420,"wires":[["5e170cf2c18e9c8b"]]},{"id":"cd54df8fcce1930f","type":"switch","z":"49f3edc41816261b","name":"ChargeState","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"ChargeState","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":850,"y":360,"wires":[["0cfdc27f6a7639e8","b315d6e5eaf5718c","e44c21e474be8ce0"]]},{"id":"a3d5e66595981bfc","type":"ha-binary-sensor","z":"49f3edc41816261b","name":"Charging","entityConfig":"f0a46f7141ccafc3","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1380,"y":360,"wires":[["b315d6e5eaf5718c"]]},{"id":"76e53888ab4c936a","type":"change","z":"49f3edc41816261b","name":"true","rules":[{"t":"set","p":"payload","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":1150,"y":360,"wires":[["a3d5e66595981bfc"]]},{"id":"0cfdc27f6a7639e8","type":"switch","z":"49f3edc41816261b","name":"charging","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"charging","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1020,"y":360,"wires":[["76e53888ab4c936a"]]},{"id":"b315d6e5eaf5718c","type":"debug","z":"49f3edc41816261b","name":"Yeedi Chargestate","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1350,"y":500,"wires":[]},{"id":"81d2da177cbba034","type":"change","z":"49f3edc41816261b","name":"false","rules":[{"t":"set","p":"payload","pt":"msg","to":"false","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":1150,"y":420,"wires":[["a3d5e66595981bfc"]]},{"id":"e44c21e474be8ce0","type":"switch","z":"49f3edc41816261b","name":"idle","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"idle","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1010,"y":420,"wires":[["81d2da177cbba034"]]},{"id":"e14e6d7482a2cb3b","type":"ha-button","z":"49f3edc41816261b","name":"Automatische Reinigung","version":0,"debugenabled":false,"outputs":1,"entityConfig":"cd59296b3642fc5c","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":130,"y":360,"wires":[["73324527418690e4"]]},{"id":"ecc2d6c50f33503b","type":"ha-button","z":"49f3edc41816261b","name":"ZurĆ¼ck zur Ladestation","version":0,"debugenabled":false,"outputs":1,"entityConfig":"7325ec802bba397b","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":120,"y":420,"wires":[["9fd2ce5a3beb0722"]]},{"id":"103c02f73abdabfa","type":"ecovacs-account","countryCode":"DE","name":"","login":"yeedi.com"},{"id":"f0a46f7141ccafc3","type":"ha-entity-config","server":"670454545051f698","deviceConfig":"7f325b3453da9f3f","name":"Charging","version":"6","entityType":"binary_sensor","haConfig":[{"property":"name","value":"Charging"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":"battery_charging"}],"resend":false,"debugEnabled":false},{"id":"cd59296b3642fc5c","type":"ha-entity-config","server":"670454545051f698","deviceConfig":"7f325b3453da9f3f","name":"Automatische Reinigung","version":"6","entityType":"button","haConfig":[{"property":"name","value":"Automatische Reinigung"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"7325ec802bba397b","type":"ha-entity-config","server":"670454545051f698","deviceConfig":"7f325b3453da9f3f","name":"ZurĆ¼ck zur Ladestation","version":"6","entityType":"button","haConfig":[{"property":"name","value":"ZurĆ¼ck zur Ladestation"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"670454545051f698","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":": ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"default","statusTimeFormat":"h:m","enableGlobalContextStore":false},{"id":"7f325b3453da9f3f","type":"ha-device-config","name":"Yeedi","hwVersion":"","manufacturer":"Ecovac","model":"yeedi 2 hybrid","swVersion":"0.2"}]

Thanks for your input. :smiley:

this is my code starting from yours adding some other infos.

unfortunally buttons donā€™t workā€¦ any idea?

[{"id":"c143db574888fed4","type":"tab","label":"YEEDI","disabled":false,"info":"","env":[]},{"id":"ce32457c.36af08","type":"ecovacs-deebot","z":"c143db574888fed4","account":"449b182515d82d97","name":"Ambrogio","deviceNumber":"1","connectOnStartup":false,"enableGetMapsOnStartup":false,"enableSimpleEvents":false,"x":780,"y":200,"wires":[["f869482e90be8233","a34d77c32e7f7543","fca97084c0f1d087","0ecf32554e15e2e6","59b27ae61eae232f","0e1c8bc3a56ecf06"]]},{"id":"b4cae92d.678908","type":"inject","z":"c143db574888fed4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":70,"y":140,"wires":[["ac846fee.40856"]]},{"id":"6cbd5268.40e18c","type":"inject","z":"c143db574888fed4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":70,"y":280,"wires":[["9615f79487eec8d7"]]},{"id":"ac846fee.40856","type":"ecovacs-deebot-command","z":"c143db574888fed4","name":"","command":"Connect","arg":"","arg2":"","arg3":"","x":540,"y":140,"wires":[["ce32457c.36af08"]]},{"id":"8f1a0d6.fbdd2f","type":"ecovacs-deebot-command","z":"c143db574888fed4","name":"","command":"Disconnect","arg":"","arg2":"","arg3":"","x":540,"y":220,"wires":[["ce32457c.36af08"]]},{"id":"731a0a8b.fd73a4","type":"inject","z":"c143db574888fed4","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":70,"y":180,"wires":[["5b444c21.79be44"]]},{"id":"5b444c21.79be44","type":"ecovacs-deebot-command","z":"c143db574888fed4","name":"","command":"Clean","arg":"","arg2":"","arg3":"","x":540,"y":180,"wires":[["ce32457c.36af08"]]},{"id":"a34d77c32e7f7543","type":"debug","z":"c143db574888fed4","name":"Yeedi Device Output","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":760,"y":20,"wires":[]},{"id":"f869482e90be8233","type":"switch","z":"c143db574888fed4","name":"Charge State","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"ChargeState","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1010,"y":300,"wires":[["d6ec8aef6271c96f","3741658b6aad97b5","c42f39fa4b2e09f7"]]},{"id":"3d122b513e0dd96f","type":"change","z":"c143db574888fed4","name":"true","rules":[{"t":"set","p":"payload","pt":"msg","to":"In Carica","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":240,"wires":[["191ef10f1341c13b"]]},{"id":"d6ec8aef6271c96f","type":"switch","z":"c143db574888fed4","name":"charging","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"charging","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1200,"y":240,"wires":[["3d122b513e0dd96f"]]},{"id":"133fde5b244b9ef5","type":"change","z":"c143db574888fed4","name":"false","rules":[{"t":"set","p":"payload","pt":"msg","to":"In Pulizia","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":280,"wires":[["191ef10f1341c13b"]]},{"id":"3741658b6aad97b5","type":"switch","z":"c143db574888fed4","name":"idle","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"idle","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1190,"y":280,"wires":[["133fde5b244b9ef5"]]},{"id":"c42f39fa4b2e09f7","type":"debug","z":"c143db574888fed4","name":"Yeedi Chargestate","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1230,"y":200,"wires":[]},{"id":"9615f79487eec8d7","type":"ecovacs-deebot-command","z":"c143db574888fed4","name":"","command":"Charge","arg":"","arg2":"","arg3":"","x":540,"y":280,"wires":[["ce32457c.36af08"]]},{"id":"fca97084c0f1d087","type":"switch","z":"c143db574888fed4","name":"Battery Info","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"BatteryInfo","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1010,"y":360,"wires":[["d39c0172ec333403","b0d62dcc74953960"]]},{"id":"d39c0172ec333403","type":"ha-sensor","z":"c143db574888fed4","name":"Battery","entityConfig":"b70780198599a61d","version":0,"state":"payload.value","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1200,"y":400,"wires":[["b0d62dcc74953960"]]},{"id":"b0d62dcc74953960","type":"debug","z":"c143db574888fed4","name":"Yeedi BatteryInfo","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1230,"y":360,"wires":[]},{"id":"0ecf32554e15e2e6","type":"switch","z":"c143db574888fed4","name":"Clean Log","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"LastCleanLogs","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1010,"y":480,"wires":[["cc17aab1a3ad354a","52b106ae144428b7"]]},{"id":"cc17aab1a3ad354a","type":"ha-sensor","z":"c143db574888fed4","name":"Clean Log","entityConfig":"8e47166b17628b08","version":0,"state":"payload.value.totalTimeFormatted","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1210,"y":520,"wires":[["52b106ae144428b7"]]},{"id":"52b106ae144428b7","type":"debug","z":"c143db574888fed4","name":"Yeedi Clean Log","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1220,"y":480,"wires":[]},{"id":"59b27ae61eae232f","type":"switch","z":"c143db574888fed4","name":"Life Span","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"LifeSpan","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1000,"y":600,"wires":[["e1820b400b5f6ac3","bc0f071ff6fe96ac","0566a00c886aaa49","91e0b6cf2fca795c"]]},{"id":"e1820b400b5f6ac3","type":"ha-sensor","z":"c143db574888fed4","name":"Filter","entityConfig":"6ff3ad2d1b702a13","version":0,"state":"payload.value.filter","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1190,"y":640,"wires":[["bc0f071ff6fe96ac"]]},{"id":"bc0f071ff6fe96ac","type":"debug","z":"c143db574888fed4","name":"Yeedi Life Span","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1220,"y":600,"wires":[]},{"id":"0566a00c886aaa49","type":"ha-sensor","z":"c143db574888fed4","name":"Spazzola Laterale","entityConfig":"3486bdeffc25b99d","version":0,"state":"payload.value.side_brush","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1230,"y":700,"wires":[["bc0f071ff6fe96ac"]]},{"id":"91e0b6cf2fca795c","type":"ha-sensor","z":"c143db574888fed4","name":"Spazzola Principale","entityConfig":"7c868bdcc3347f40","version":0,"state":"payload.value.main_brush","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1230,"y":760,"wires":[["bc0f071ff6fe96ac"]]},{"id":"0e1c8bc3a56ecf06","type":"switch","z":"c143db574888fed4","name":"Sleep Status","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"SleepStatus","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1010,"y":140,"wires":[["714f68774029700a","4ffdd12f2e717928","904f754100ca42d6"]]},{"id":"191ef10f1341c13b","type":"ha-sensor","z":"c143db574888fed4","name":"AttivitĆ ","entityConfig":"83d6002490ade453","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1510,"y":280,"wires":[["c42f39fa4b2e09f7"]]},{"id":"8017aed710a7e001","type":"change","z":"c143db574888fed4","name":"Online","rules":[{"t":"set","p":"payload","pt":"msg","to":"Online","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":80,"wires":[["7bd6b0ed6bf2678a"]]},{"id":"4ffdd12f2e717928","type":"switch","z":"c143db574888fed4","name":"0","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1190,"y":80,"wires":[["8017aed710a7e001"]]},{"id":"f2313d394c955de0","type":"change","z":"c143db574888fed4","name":"Sleeping","rules":[{"t":"set","p":"payload","pt":"msg","to":"Sleeping","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1340,"y":120,"wires":[["7bd6b0ed6bf2678a"]]},{"id":"714f68774029700a","type":"switch","z":"c143db574888fed4","name":"1","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1190,"y":120,"wires":[["f2313d394c955de0"]]},{"id":"904f754100ca42d6","type":"debug","z":"c143db574888fed4","name":"Yeedi SleepStatus","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1230,"y":40,"wires":[]},{"id":"7bd6b0ed6bf2678a","type":"ha-sensor","z":"c143db574888fed4","name":"Stato","entityConfig":"3510eb977c5a4b71","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1510,"y":120,"wires":[["904f754100ca42d6"]]},{"id":"7c37e9a472b161d7","type":"ha-button","z":"c143db574888fed4","name":"","version":0,"debugenabled":false,"outputs":1,"entityConfig":"cd59296b3642fc5c","outputProperties":[{"property":"payload","propertyType":"msg","value":"true","valueType":"bool"},{"property":"topic","propertyType":"msg","value":"","valueType":"str"}],"x":290,"y":200,"wires":[["5b444c21.79be44","3d544d06636e4af3"]]},{"id":"10cb33724bcc404f","type":"ha-button","z":"c143db574888fed4","name":"","version":0,"debugenabled":false,"outputs":1,"entityConfig":"7325ec802bba397b","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":290,"y":300,"wires":[["9615f79487eec8d7"]]},{"id":"3d544d06636e4af3","type":"debug","z":"c143db574888fed4","name":"Yeedi Device Output","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":440,"y":60,"wires":[]},{"id":"449b182515d82d97","type":"ecovacs-account","countryCode":"IT","name":"alex","login":"yeedi.com"},{"id":"b70780198599a61d","type":"ha-entity-config","server":"c38007c7.3b7b48","deviceConfig":"7f325b3453da9f3f","name":"Batteria","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Batteria"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":"battery"},{"property":"unit_of_measurement","value":"%"},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"8e47166b17628b08","type":"ha-entity-config","server":"c38007c7.3b7b48","deviceConfig":"7f325b3453da9f3f","name":"Clean Log","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Clean Log"},{"property":"icon","value":""},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"6ff3ad2d1b702a13","type":"ha-entity-config","server":"c38007c7.3b7b48","deviceConfig":"7f325b3453da9f3f","name":"Filtro","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Filtro"},{"property":"icon","value":""},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":"%"},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"3486bdeffc25b99d","type":"ha-entity-config","server":"c38007c7.3b7b48","deviceConfig":"7f325b3453da9f3f","name":"Spazzola Laterale","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Spazzola Laterale"},{"property":"icon","value":""},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":"%"},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"7c868bdcc3347f40","type":"ha-entity-config","server":"c38007c7.3b7b48","deviceConfig":"7f325b3453da9f3f","name":"Spazzola Principale","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Spazzola Principale"},{"property":"icon","value":""},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":"%"},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"83d6002490ade453","type":"ha-entity-config","server":"926d53a3.e53e1","deviceConfig":"7f325b3453da9f3f","name":"AttivitĆ ","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"AttivitĆ "},{"property":"icon","value":"mdi:robot-vacuum"},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"3510eb977c5a4b71","type":"ha-entity-config","server":"c38007c7.3b7b48","deviceConfig":"7f325b3453da9f3f","name":"Stato","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Stato"},{"property":"icon","value":"mdi:information"},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"cd59296b3642fc5c","type":"ha-entity-config","server":"670454545051f698","deviceConfig":"7f325b3453da9f3f","name":"Avvia Pulizia","version":"6","entityType":"button","haConfig":[{"property":"name","value":"Avvia Pulizia"},{"property":"icon","value":"mdi:play-circle"},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":true},{"id":"7325ec802bba397b","type":"ha-entity-config","server":"c38007c7.3b7b48","deviceConfig":"7f325b3453da9f3f","name":"Back to Stazione Ricarica","version":"6","entityType":"button","haConfig":[{"property":"name","value":"Stazione Ricarica"},{"property":"icon","value":"mdi:replay"},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"c38007c7.3b7b48","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30,"areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true},{"id":"7f325b3453da9f3f","type":"ha-device-config","name":"Yeedi","hwVersion":"","manufacturer":"Ecovac","model":"yeedi 2 hybrid","swVersion":"0.2"},{"id":"926d53a3.e53e1","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true},{"id":"670454545051f698","type":"server","name":"Home Assistant","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":": ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"default","statusTimeFormat":"h:m","enableGlobalContextStore":false}]

Wow!
Locks verry good! Thanks for sharing!

I did some further enhancements. Still under construction!

Regarding the button problem, I am a beginner so I can just guess.

Maybe it is a language problem. So I switched node-red and hass to English.

I also noticed 3 entries in ā€œnode-red ha-entity-config nodeā€ ā€œServerā€ all were named ā€œHome Assistantā€. I deleted 2 and renamed the last one to ā€œgerHAā€. So we can see if we have a foreign configuration after pasting in the code from another one.

Here my current version:


[{"id":"c36b1de29da98452","type":"tab","label":"YEEDI","disabled":false,"info":"","env":[]},{"id":"a09cc0d45524fc78","type":"ecovacs-deebot","z":"c36b1de29da98452","account":"103c02f73abdabfa","name":"Cleaning Robot","deviceNumber":"1","connectOnStartup":false,"enableGetMapsOnStartup":false,"enableSimpleEvents":false,"x":800,"y":200,"wires":[["a0d981e7b8ef782c","01ee2c7e8e67a08d","b6a0bf0de5443d9c","7b035107166be637","1567f9b3997d90e4","9fe41e61c7754f63","7b2a84131203d585","45f7f71528e62cc0"]]},{"id":"90410e3b60b0b397","type":"inject","z":"c36b1de29da98452","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"60","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":350,"y":120,"wires":[["2988643542f59213"]]},{"id":"b7bb8c90add1a78c","type":"inject","z":"c36b1de29da98452","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":70,"y":280,"wires":[["20953eccddd58530"]]},{"id":"2988643542f59213","type":"ecovacs-deebot-command","z":"c36b1de29da98452","name":"","command":"Connect","arg":"","arg2":"","arg3":"","x":550,"y":100,"wires":[["a09cc0d45524fc78"]]},{"id":"929e325ed607fef8","type":"ecovacs-deebot-command","z":"c36b1de29da98452","name":"","command":"Disconnect","arg":"","arg2":"","arg3":"","x":560,"y":140,"wires":[["a09cc0d45524fc78"]]},{"id":"87ffe0e5108aae97","type":"inject","z":"c36b1de29da98452","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":90,"y":180,"wires":[["51ff3991aea481b4"]]},{"id":"51ff3991aea481b4","type":"ecovacs-deebot-command","z":"c36b1de29da98452","name":"","command":"Clean","arg":"","arg2":"","arg3":"","x":340,"y":200,"wires":[["a09cc0d45524fc78"]]},{"id":"01ee2c7e8e67a08d","type":"debug","z":"c36b1de29da98452","name":"Yeedi Device Output","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":760,"y":20,"wires":[]},{"id":"a0d981e7b8ef782c","type":"switch","z":"c36b1de29da98452","name":"Charge State","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"ChargeState","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1010,"y":300,"wires":[["863f51e21f4dde7d","77d4f6fc93a85e26","b7753b919e323780"]]},{"id":"48224018dc7bad80","type":"change","z":"c36b1de29da98452","name":"true","rules":[{"t":"set","p":"payload","pt":"msg","to":"charging","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":240,"wires":[["f327048b487ed5a1"]]},{"id":"863f51e21f4dde7d","type":"switch","z":"c36b1de29da98452","name":"charging","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"charging","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1200,"y":240,"wires":[["48224018dc7bad80"]]},{"id":"0fbca6f67722b9f8","type":"change","z":"c36b1de29da98452","name":"false","rules":[{"t":"set","p":"payload","pt":"msg","to":"idle","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":280,"wires":[["f327048b487ed5a1"]]},{"id":"77d4f6fc93a85e26","type":"switch","z":"c36b1de29da98452","name":"idle","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"idle","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1190,"y":280,"wires":[["0fbca6f67722b9f8"]]},{"id":"b7753b919e323780","type":"debug","z":"c36b1de29da98452","name":"Yeedi Chargestate","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1230,"y":200,"wires":[]},{"id":"20953eccddd58530","type":"ecovacs-deebot-command","z":"c36b1de29da98452","name":"","command":"Charge","arg":"","arg2":"","arg3":"","x":340,"y":300,"wires":[["a09cc0d45524fc78"]]},{"id":"b6a0bf0de5443d9c","type":"switch","z":"c36b1de29da98452","name":"Battery Info","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"BatteryInfo","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1010,"y":360,"wires":[["bdf6cee0f07c166f","64391bec8d5f95f0"]]},{"id":"bdf6cee0f07c166f","type":"ha-sensor","z":"c36b1de29da98452","name":"Battery","entityConfig":"3a94ee165e08d90c","version":0,"state":"payload.value","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1200,"y":400,"wires":[["64391bec8d5f95f0"]]},{"id":"64391bec8d5f95f0","type":"debug","z":"c36b1de29da98452","name":"Yeedi BatteryInfo","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1230,"y":360,"wires":[]},{"id":"7b035107166be637","type":"switch","z":"c36b1de29da98452","name":"Last Clean Log","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"LastCleanLogs","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1020,"y":480,"wires":[["e821d0d77d09b055","268e6be662baf211"]]},{"id":"e821d0d77d09b055","type":"ha-sensor","z":"c36b1de29da98452","name":"Clean Log","entityConfig":"57eb93c83f69ac2e","version":0,"state":"payload.value.totalTimeFormatted","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1210,"y":520,"wires":[["268e6be662baf211"]]},{"id":"268e6be662baf211","type":"debug","z":"c36b1de29da98452","name":"Yeedi Clean Log","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1220,"y":480,"wires":[]},{"id":"1567f9b3997d90e4","type":"switch","z":"c36b1de29da98452","name":"Life Span","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"LifeSpan","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1000,"y":600,"wires":[["c38683f58d3997ad","2c44c9d06ccfb738","311142287a52e12d","81b5a564a295f628"]]},{"id":"c38683f58d3997ad","type":"ha-sensor","z":"c36b1de29da98452","name":"Filter","entityConfig":"7dd1cf189c1cfd51","version":0,"state":"payload.value.filter","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1190,"y":640,"wires":[["2c44c9d06ccfb738"]]},{"id":"2c44c9d06ccfb738","type":"debug","z":"c36b1de29da98452","name":"Yeedi Life Span","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1220,"y":600,"wires":[]},{"id":"311142287a52e12d","type":"ha-sensor","z":"c36b1de29da98452","name":"SideBrush","entityConfig":"e9895259df570745","version":0,"state":"payload.value.side_brush","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1210,"y":700,"wires":[["2c44c9d06ccfb738"]]},{"id":"81b5a564a295f628","type":"ha-sensor","z":"c36b1de29da98452","name":"MainBrush","entityConfig":"b0c84fca9e24b9a7","version":0,"state":"payload.value.main_brush","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1210,"y":760,"wires":[["2c44c9d06ccfb738"]]},{"id":"9fe41e61c7754f63","type":"switch","z":"c36b1de29da98452","name":"Sleep Status","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"SleepStatus","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1010,"y":140,"wires":[["63fb3fa230865d52","25ee262623d86b37","4c153c200927e845"]]},{"id":"f327048b487ed5a1","type":"ha-sensor","z":"c36b1de29da98452","name":"ChargeState","entityConfig":"ad0c38ababa07eab","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1530,"y":280,"wires":[["b7753b919e323780"]]},{"id":"a4d128ee2777efb0","type":"change","z":"c36b1de29da98452","name":"Online","rules":[{"t":"set","p":"payload","pt":"msg","to":"Online","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1330,"y":80,"wires":[["5d1d20b36d21bce0"]]},{"id":"25ee262623d86b37","type":"switch","z":"c36b1de29da98452","name":"0","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1190,"y":80,"wires":[["a4d128ee2777efb0"]]},{"id":"8dce78e489580bcc","type":"change","z":"c36b1de29da98452","name":"Sleeping","rules":[{"t":"set","p":"payload","pt":"msg","to":"Sleeping","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1340,"y":120,"wires":[["5d1d20b36d21bce0"]]},{"id":"63fb3fa230865d52","type":"switch","z":"c36b1de29da98452","name":"1","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"1","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1190,"y":120,"wires":[["8dce78e489580bcc"]]},{"id":"4c153c200927e845","type":"debug","z":"c36b1de29da98452","name":"Yeedi SleepStatus","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1230,"y":40,"wires":[]},{"id":"5d1d20b36d21bce0","type":"ha-sensor","z":"c36b1de29da98452","name":"SleepStatus","entityConfig":"68db47065a6ef493","version":0,"state":"payload","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1530,"y":120,"wires":[["4c153c200927e845"]]},{"id":"3cb7a4187cef1384","type":"ha-button","z":"c36b1de29da98452","name":"Start Cleaning","version":0,"debugenabled":false,"outputs":1,"entityConfig":"cd59296b3642fc5c","outputProperties":[{"property":"payload","propertyType":"msg","value":"true","valueType":"bool"}],"x":90,"y":220,"wires":[["51ff3991aea481b4","da72cb943a970cdf"]]},{"id":"b1b628156c3d4028","type":"ha-button","z":"c36b1de29da98452","name":"Return to charging","version":0,"debugenabled":false,"outputs":1,"entityConfig":"7325ec802bba397b","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":110,"y":320,"wires":[["20953eccddd58530"]]},{"id":"da72cb943a970cdf","type":"debug","z":"c36b1de29da98452","name":"Yeedi Device Output","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":360,"y":40,"wires":[]},{"id":"88e6a95b95efb7b1","type":"ecovacs-deebot-command","z":"c36b1de29da98452","name":"Pause","command":"Pause","arg":"","arg2":"","arg3":"","x":270,"y":400,"wires":[["a09cc0d45524fc78"]]},{"id":"1bdadabc46d015c2","type":"ha-button","z":"c36b1de29da98452","name":"Pause","version":0,"debugenabled":false,"outputs":1,"entityConfig":"b533c3a699890cd4","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":70,"y":420,"wires":[["88e6a95b95efb7b1"]]},{"id":"1c4dc927c8fc6388","type":"inject","z":"c36b1de29da98452","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":70,"y":380,"wires":[["88e6a95b95efb7b1"]]},{"id":"7b2a84131203d585","type":"switch","z":"c36b1de29da98452","name":"WaterBoxInfo","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"WaterBoxInfo","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1040,"y":860,"wires":[["f297f8a81f991db7","3dae744d60f951b4"]]},{"id":"f297f8a81f991db7","type":"ha-sensor","z":"c36b1de29da98452","name":"WaterBoxInfo","entityConfig":"e34cfd540f16d734","version":0,"state":"payload.value","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1240,"y":900,"wires":[["3dae744d60f951b4"]]},{"id":"3dae744d60f951b4","type":"debug","z":"c36b1de29da98452","name":"WaterBoxInfo","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1240,"y":860,"wires":[]},{"id":"45f7f71528e62cc0","type":"switch","z":"c36b1de29da98452","name":"WaterLevel","property":"payload.type","propertyType":"msg","rules":[{"t":"eq","v":"WaterLevel","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":1030,"y":980,"wires":[["602fda9765659ffa","69580752be58b1ca"]]},{"id":"602fda9765659ffa","type":"ha-sensor","z":"c36b1de29da98452","name":"WaterLevel","entityConfig":"a6e9dc7d363d7ca3","version":0,"state":"payload.value","stateType":"msg","attributes":[],"inputOverride":"allow","outputProperties":[],"x":1230,"y":1020,"wires":[["69580752be58b1ca"]]},{"id":"69580752be58b1ca","type":"debug","z":"c36b1de29da98452","name":"WaterLevel","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1230,"y":980,"wires":[]},{"id":"103c02f73abdabfa","type":"ecovacs-account","countryCode":"AT","name":"","login":"yeedi.com"},{"id":"3a94ee165e08d90c","type":"ha-entity-config","server":"944def50cba5ec30","deviceConfig":"7f325b3453da9f3f","name":"Battery","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Battery"},{"property":"icon","value":""},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":"battery"},{"property":"unit_of_measurement","value":"%"},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"57eb93c83f69ac2e","type":"ha-entity-config","server":"944def50cba5ec30","deviceConfig":"7f325b3453da9f3f","name":"Clean Log","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Last Clean"},{"property":"icon","value":"mdi:timer-outline"},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"7dd1cf189c1cfd51","type":"ha-entity-config","server":"944def50cba5ec30","deviceConfig":"7f325b3453da9f3f","name":"Filter","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Filter"},{"property":"icon","value":""},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":"%"},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"e9895259df570745","type":"ha-entity-config","server":"944def50cba5ec30","deviceConfig":"7f325b3453da9f3f","name":"SideBrush","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Side Brush"},{"property":"icon","value":""},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":"%"},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"b0c84fca9e24b9a7","type":"ha-entity-config","server":"944def50cba5ec30","deviceConfig":"7f325b3453da9f3f","name":"MainBrush","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Main Brush"},{"property":"icon","value":""},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":"%"},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"ad0c38ababa07eab","type":"ha-entity-config","server":"944def50cba5ec30","deviceConfig":"7f325b3453da9f3f","name":"ChargeState","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Charge State"},{"property":"icon","value":"mdi:power-plug"},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"68db47065a6ef493","type":"ha-entity-config","server":"944def50cba5ec30","deviceConfig":"7f325b3453da9f3f","name":"SleepState","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"Sleep State"},{"property":"icon","value":"mdi:information"},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"cd59296b3642fc5c","type":"ha-entity-config","server":"944def50cba5ec30","deviceConfig":"7f325b3453da9f3f","name":"Start Cleaning","version":"6","entityType":"button","haConfig":[{"property":"name","value":"Start"},{"property":"icon","value":"mdi:play"},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":"update"}],"resend":false,"debugEnabled":false},{"id":"7325ec802bba397b","type":"ha-entity-config","server":"944def50cba5ec30","deviceConfig":"7f325b3453da9f3f","name":"Return to charging","version":"6","entityType":"button","haConfig":[{"property":"name","value":"Return"},{"property":"icon","value":"mdi:stop"},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"b533c3a699890cd4","type":"ha-entity-config","server":"944def50cba5ec30","deviceConfig":"7f325b3453da9f3f","name":"Pause","version":"6","entityType":"button","haConfig":[{"property":"name","value":"Pause"},{"property":"icon","value":"mdi:pause"},{"property":"entity_category","value":""},{"property":"entity_picture","value":""},{"property":"device_class","value":""}],"resend":false,"debugEnabled":false},{"id":"e34cfd540f16d734","type":"ha-entity-config","server":"944def50cba5ec30","deviceConfig":"7f325b3453da9f3f","name":"WaterBoxInfo","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"WaterBox"},{"property":"icon","value":"mdi:water"},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"a6e9dc7d363d7ca3","type":"ha-entity-config","server":"944def50cba5ec30","deviceConfig":"7f325b3453da9f3f","name":"WaterLevel","version":"6","entityType":"sensor","haConfig":[{"property":"name","value":"WaterLevel"},{"property":"icon","value":"mdi:water-outline"},{"property":"entity_category","value":"diagnostic"},{"property":"entity_picture","value":""},{"property":"device_class","value":""},{"property":"unit_of_measurement","value":""},{"property":"state_class","value":""}],"resend":false,"debugEnabled":false},{"id":"944def50cba5ec30","type":"server","name":"gerHA","version":5,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":"30","areaSelector":"friendlyName","deviceSelector":"friendlyName","entitySelector":"friendlyName","statusSeparator":"at: ","statusYear":"hidden","statusMonth":"short","statusDay":"numeric","statusHourCycle":"h23","statusTimeFormat":"h:m","enableGlobalContextStore":true},{"id":"7f325b3453da9f3f","type":"ha-device-config","name":"Yeedi","hwVersion":"","manufacturer":"Ecovac","model":"yeedi 2 hybrid","swVersion":"0.3"}]

OK I decided to stop my effort for the yeedi integration via node-red at this point. We have a solution that works, but it is a workaround and no proper solution.

IMHO a proper solution will be to enhance the EcoVac integration to support Yeedi also.

As described in the wiki it seems to be simple.

// Leave blank or use 'ecovacs.com' for Ecovacs login
// or use 'yeedi.com' for yeedi login (available since version 0.8.3-alpha.2)
const authDomain = '';

let api = new EcoVacsAPI(device_id, countryCode, continent, authDomain);

The proper place for this seems to be the init.py

    def get_devices() -> list[VacBot]:
        ecovacs_api = EcoVacsAPI(
            ECOVACS_API_DEVICEID,
            config[DOMAIN].get(CONF_USERNAME),
            EcoVacsAPI.md5(config[DOMAIN].get(CONF_PASSWORD)),
            config[DOMAIN].get(CONF_COUNTRY),
            config[DOMAIN].get(CONF_CONTINENT),
        )

But I can not write python code, so I have to ask someone else to implement it.

PLEASE!!!

An integration for HA would be great

1 Like

Yeedi uses the Ecovac api so a minor change as suggest above to it would allow that integration to work with yeedi vacā€™s.

1 Like

That was good research, and certainly gets us closer.

One issue though, it looks like youā€™re referencing the wiki for the node.js EcoVac integration. Looking through the code, it looks like itā€™s based on the py-sucks integration. Biggest giveaway is the difference in the API function parameters. Unfortunatly, it looks like py-sucks isnā€™t really active, so we could open an issue there, but itā€™s more likely weā€™ll have to fork it and build on it.

Line 96 in the sucks init.py:

class EcoVacsAPI:
    CLIENT_KEY = "eJUWrzRv34qFSaYk"
    SECRET = "Cyu5jcR4zyK6QEPn1hdIGXB5QIDAQABMA0GC"
    PUBLIC_KEY = 'MIIB/TCCAWYCCQDJ7TMYJFzqYDANBgkqhkiG9w0BAQUFADBCMQswCQYDVQQGEwJjbjEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5MRwwGgYDVQQKDBNEZWZhdWx0IENvbXBhbnkgTHRkMCAXDTE3MDUwOTA1MTkxMFoYDzIxMTcwNDE1MDUxOTEwWjBCMQswCQYDVQQGEwJjbjEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5MRwwGgYDVQQKDBNEZWZhdWx0IENvbXBhbnkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDb8V0OYUGP3Fs63E1gJzJh+7iqeymjFUKJUqSD60nhWReZ+Fg3tZvKKqgNcgl7EGXp1yNifJKUNC/SedFG1IJRh5hBeDMGq0m0RQYDpf9l0umqYURpJ5fmfvH/gjfHe3Eg/NTLm7QEa0a0Il2t3Cyu5jcR4zyK6QEPn1hdIGXB5QIDAQABMA0GCSqGSIb3DQEBBQUAA4GBANhIMT0+IyJa9SU8AEyaWZZmT2KEYrjakuadOvlkn3vFdhpvNpnnXiL+cyWy2oU1Q9MAdCTiOPfXmAQt8zIvP2JC8j6yRTcxJCvBwORDyv/uBtXFxBPEC6MDfzU2gKAaHeeJUWrzRv34qFSaYkYta8canK+PSInylQTjJK9VqmjQ'
    MAIN_URL_FORMAT = 'https://eco-{country}-api.ecovacs.com/v1/private/{country}/{lang}/{deviceId}/{appCode}/{appVersion}/{channel}/{deviceType}'
    USER_URL_FORMAT = 'https://users-{continent}.ecouser.net:8000/user.do'
    REALM = 'ecouser.net'

Based on your research, weā€™d just have to have a way to adjust the domains in the MAIN_URL_FORMAT section, from api.ecovacs.com to api.yeedi.com

Also, not sure on the implications, but Iā€™m not a fan of having the keys and secrets just out there in plain text. Maybe itā€™s not that big of a deal with how itā€™s usedā€¦

Unfortunately, my python skills are not sufficient enough right now. I could probably get it working with some time and trial-error once I figure out a way to test it.

1 Like

I would be happy to do tests for you, but I have absolutely no skills in python. Not even beginner skills. :grimacing: But I have a yeedi vacuum. :stuck_out_tongue_winking_eye: Awaiting your commands!

Based on yeedi habit of using what was already there to get the job done its likely that the only change needed is the api one.

Though i got plenty of programming skill python not one of them :frowning_face:

Weird thing is the hardware fine and does a good job but their integrations are a joke.
The alexa one was clearly meant for a washer/dryer unless your planning to use the vac to do your delicates :rofl:

1 Like

Had a deeper look in node red today.
Right now my integration can:
Start cleaning
Back to station
Pause cleaning
Set Vaccum Level
Set Water Level

Sensors:
Cleaning State
Battery State
Charging State
Vaccum Level
Water Level

Edit: itā€™s also possible to send it to specific rooms already implemented it, nothing more is needed.

Next I want to have a look on the maps and the advanced options.
As far as I can see nearly all can be done what the app can do. (Not sure if map can be displayed graphical)
The minimum what can be done is to select rooms which should be cleaned.

But there are integrations which can do less.

Iā€˜m quite impressed what can be done.

Here a screenshot: (I not finished it right now, keeped the cleaning in rooms simple until now for example, maybe i will make it better in future)

And Iā€™m quite sure that even a graphical map would be possible (I know it is written only laser models but Iā€™m quite sure this info is only for ecovacs, much commands are working on yeedi even if it written only laser models)but for this the node red addon canā€™t be used because of missing canvas.
I will install a virtual machine only for this, graphical maps would make it perfect.
Need to be tested to be sure.

This is very encouraging, do you need other testers?

1 Like

You are very welcome, but at the moment, we are running low on developers. :grimacing:

Do you have a repo somewhere?

2 Likes

Iā€™ll second the request for a repo. I know some python through I havenā€™t done it professionally.

No I donā€™t have. All my information is in this thread.

Can you share how you did this?

What do you mean? What should I share?