Comments (9)
Чи можете ви уточнити, що ви маєте на увазі під повною підтримкою?
…
В Нд, 8 жовтня 2023 р., 16:25 phoenixckua, @.> написав: Будь ласка,.додайте повну підтримку robovac L35 hybrid+ — Надішліть відповідь на цей електронний лист напряму, перегляньте його на GitHub < # 33 > або скасувати підписку < https://github.com/notifications/unsubscribe-auth/ABEPFVCCQKP6PQS52PZ6X73X6LAWJAVCNFSM6AAAAAA5XYGX32VHI2DSMVQWIX3LMV43ASLTON2WKOZRHEZTCOBVGQ2TQOA > . Ви отримуєте це, тому що підписалися на цю тему. ID повідомлення: @.>
Yes, of course. Robovac status don't change (status : cleaning or on station ). Status stay cleaning after back to charging base. Status changed after restart Home Assistant. I don't see status mop installed or dust container installed. Button start auto-empting dust to station don't exist on UI. And additional, cleaning map not exists. Haw to attach map in UI?
from robovac.
from robovac.
For example,.I have error in logs :
2023-10-09 17:08:34.054 ERROR (MainThread) [homeassistant.helpers.entity] Update for vacuum.robovac fails
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 732, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 991, in async_device_update
await self.async_update()
File "/config/custom_components/robovac/vacuum.py", line 316, in async_update
self.update_entity_values()
File "/config/custom_components/robovac/vacuum.py", line 362, in update_entity_values
self._attr_consumables = ast.literal_eval(
^^^^^^^^^^^^^^^^^
KeyError: 'consumable'
from robovac.
The issue is not specific to the L35 - I am having the same issue on the X8 Hybrid(T2261) Digging into it, it looks like at least my variation of the issue is that the two items pulled for consumables (126 and 142) are returning valid Base64, but they do not have a 'consumable' value in the JSON returned in the base64, which is breaking the integration. I don't know if the issue here is a difference in return, or another variation on 'the values returned change based on which model is in use'
On mine, I am getting back:
'126': 'eyJzeXNpbmZvIjp7Ik1lbUZyZWUiOjUyNTc2LCJNZW1BdmFpbGFibGUiOjcwNzIwLCJDYWNoZWQiOjIyNzUyLCJTaG1lbSI6Nzk3NiwiUm9vbUZyZWUiOjExMDAwfSwiSFciOnsiViI6MTU2ODYsIkkiOi0xMjEsIlJCX0kiOjB9fQ==',
'142': 'eyJzd2l0Y2giOiJPTiIsImV2Ijp7ImhvbWUiOnsiaWQiOjQyMCwicG93ZXIiOjk5LCJzdGFydCI6MTcwMTE5NTIwMSwiZW5kIjoxNzAxMTk1MjIxLCJyZXMiOjF9fX0='
and since it is then indexing to ["consumable"]["duration"], its causing the update to fail, and you get no updates until the integration resets. I confirmed commenting out the T2261 as having consumables in my copy on HA prevents the issue
(Debugging mode in HA will give you those raw values - if you base64 decode them using an online tool, the they do not have a 'consumable' field, our issues are probably the same)
In case it may be the same issue as #28 I am including the raw JSON block of my X8 Hybrid's command results (figuring easier for you to prettyprint than to make this longer).
[{"attr":0,"canTrigger":true,"code":"power","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","iconname":"icon-dp_power2","id":1,"mode":"rw","name":"电源开关","property":{"type":"bool"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"power_go","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","iconname":"icon-dp_power","id":2,"mode":"rw","name":"清扫开关","property":{"type":"bool"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"direction","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","iconname":"icon-dp_mode","id":3,"mode":"rw","name":"清扫方向","property":{"range":["forward","back","left","right"],"type":"enum"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"mode","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","iconname":"icon-dp_dust","id":5,"mode":"rw","name":"清扫模式","property":{"range":["auto","room","zone","spot","fast_mapping"],"type":"enum"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"status","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","iconname":"icon-dp_direction","id":15,"mode":"ro","name":"工作状态","property":{"range":["standby","Running","Sleeping","Recharge","Charging","completed","Goto","Locating"],"type":"enum"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"auto_recharge","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":101,"mode":"rw","name":"自动回充","property":{"type":"bool"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"cleaning_strength","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":102,"mode":"rw","name":"清扫强度","property":{"range":["Max","Turbo","Standard","Quiet","speed5","speed6"],"type":"enum"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"look_for_sweeper","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":103,"mode":"rw","name":"ue�找扫地机","property":{"type":"bool"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"bat_level","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":104,"mode":"ro","name":"剩余电量","property":{"unit":"","min":0,"max":100,"scale":0,"step":1,"type":"value"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"mop","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":105,"mode":"rw","name":"拖地设置","property":{"range":["MopHigh","MopMiddle","MopLow"],"type":"enum"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"fault_report","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":106,"mode":"ro","name":"故障提示","property":{"unit":"","min":0,"max":10000,"scale":0,"step":1,"type":"value"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"ForbidMode","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":107,"mode":"rw","name":"勿扰模式状态","property":{"type":"bool"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"robo_pos","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":108,"mode":"ro","name":"机器人位姿","property":{"type":"string","maxlen":255},"type":"obj"},{"attr":0,"canTrigger":true,"code":"ClearTime","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":109,"mode":"ro","name":"当前清扫时长","property":{"unit":"s","min":0,"max":10000000,"scale":0,"step":1,"type":"value"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"ClearArea","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":110,"mode":"ro","name":"当前清扫面积","property":{"unit":"M²","min":0,"max":200000,"scale":0,"step":1,"type":"value"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"Loudness","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":111,"mode":"rw","name":"音量调节","property":{"unit":"","min":0,"max":100,"scale":0,"step":1,"type":"value"},"type":"obj"},{"attr":0,"canTrigger":true�"code":"areaClean","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":116,"mode":"rw","name":"耗材管理","type":"raw"},{"attr":0,"canTrigger":true,"code":"mapMultiFloors","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":117,"mode":"rw","name":"地图多楼层","type":"raw"},{"attr":0,"canTrigger":true,"code":"BoostIQ","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":118,"mode":"rw","name":"自动增压","property":{"type":"bool"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"ClearTotalTime","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":119,"mode":"ro","name":"清扫总时长","property":{"unit":"s","min":0,"max":10000000,"scale":0,"step":1,"type":"value"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"ClearTotalArea","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":120,"mode":"ro","name":"清扫总面积","property":{"unit":"m2","min":0,"max":10000000,"scale":0,"step":1,"type":"value"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"mapData","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":121,"mode":"wr","name":"地图流控制","type":"raw"},{"attr":0,"canTrigger":true,"code":"pause_start","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":122,"mode":"rw","name":"暂停/继续","property":{"range":["Nosweep","Pause","Continue"],"type":"enum"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"languageSet","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":123,"mode":"rw","name":"语言包设置","type":"raw"},{"attr":0,"canTrigger":true,"code":"mapOperations","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":124,"mode":"rw","name":"地图操作","type":"raw"},{"attr":0,"canTrigger":true,"code":"waitRawDP","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":125,"mode":"rw","name":"语音包状态","type":"raw"},{"attr":0,"canTrigger":true,"code":"cleanSetting","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":126,"mode":"rw","name":"清扫设置","type":"raw"},{"attr":0,"canTrigger":true,"code":"langueChange","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":128,"mode":"rw","name":"语言切换","property":{"range":["default","used"],"type":"enum"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"mopStatus","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":129,"mode":"ro","name":"有无拖布","property":{"type":"bool"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"suctionFlag","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":130,"mode":"rw","name":"预约清扫强度","property":{"range":["Max","Turbo","Standard","Quiet","speed5","speed6"],"type":"enum"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"remoteControl","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":131,"mode":"rw","name":"遥控模式状态","property":{"type":"bool"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"onceCleanTimes","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":132,"mode":"ro","name":"单次清扫后时长","property":{"unit":"s","min":0,"max":1000000,"scale":0,"step":1,"type":"value"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"onceCleanAreas","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":133,"mode":"ro","name":"单次清扫后面积","property":{"unit":"m2","min":0,"max":10000000,"scale":0,"step":1,"type":"value"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"onceCleanCout","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":134,"mode":"ro","name":"单次清扫次数","property":{"unit":"","min":0,"max":100000,"scale":0,"step":1,"type":"value"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"waiteBoolDP01","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":135,"mode":"rw","name":"断点续扫开关","property":{"type":"bool"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"remind_code","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":137,"mode":"ro","name":"扫地机提醒","property":{"unit":"","min":0,"max":10000000,"scale":0,"step":1,"type":"value"},"type":"obj"},{"attr":0,"canTrigger":true,"code":"waiteDPRaws","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":139,"mode":"rw","name":"勿扰模式设置","type":"raw"},{"attr":0,"canTrigger":true,"code":"Log","defaultRecommend":false,"editPermission":false,"executable":true,"extContent":"","id":142,"mode":"rw","name":"日志","type":"raw"}]
Log of error (Starting at line 2, goes into repeating loop)
2023-11-28 12:13:24.810 DEBUG (MainThread) [custom_components.robovac.tuyalocalapi] Received message from <DEVICE> (172.18.0.19:6668): Message(0x8, {'dps': {'15': 'Running'}, 't': 1701195204}, 0, None)
2023-11-28 12:13:24.813 INFO (MainThread) [custom_components.robovac.tuyalocalapi] Received updated state <DEVICE> (172.18.0.19:6668): {'1': True, '2': True, '5': 'auto', '15': 'Running', '101': False, '102': 'Turbo', '103': False, '104': 100, '106': 0, '107': False, '109': 0, '110': 0, '111': 100, '118': True, '122': 'Continue', '128': 'used', '131': False, '135': True, '137': 0, '126': 'eyJzeXNpbmZvIjp7Ik1lbUZyZWUiOjUwMjcyLCJNZW1BdmFpbGFibGUiOjY4NDA4LCJDYWNoZWQiOjI0OTc2LCJTaG1lbSI6MTAyMDgsIlJvb21GcmVlIjoxMTAwMH0sIkhXIjp7IlYiOjE1MzkxLCJJIjotMTc3MiwiUkJfSSI6MjM4fX0='}
2023-11-28 12:13:26.345 DEBUG (MainThread) [custom_components.robovac.tuyalocalapi] Received message from <DEVICE> (172.18.0.19:6668): Message(0x8, {'dps': {'142': 'eyJzd2l0Y2giOiJPTiIsImV2Ijp7InJlbG9jIjp7ImlkIjo0MjAsIm1hcHMiOjMsInJlcyI6Miwic3RhcnQiOjE3MDExOTUxNTYsImVuZCI6MTcwMTE5NTE5OH19fQ=='}, 't': 1701195206}, 0, None)
2023-11-28 12:13:26.345 INFO (MainThread) [custom_components.robovac.tuyalocalapi] Received updated state <DEVICE> (172.18.0.19:6668): {'1': True, '2': True, '5': 'auto', '15': 'Running', '101': False, '102': 'Turbo', '103': False, '104': 100, '106': 0, '107': False, '109': 0, '110': 0, '111': 100, '118': True, '122': 'Continue', '128': 'used', '131': False, '135': True, '137': 0, '126': 'eyJzeXNpbmZvIjp7Ik1lbUZyZWUiOjUwMjcyLCJNZW1BdmFpbGFibGUiOjY4NDA4LCJDYWNoZWQiOjI0OTc2LCJTaG1lbSI6MTAyMDgsIlJvb21GcmVlIjoxMTAwMH0sIkhXIjp7IlYiOjE1MzkxLCJJIjotMTc3MiwiUkJfSSI6MjM4fX0=', '142': 'eyJzd2l0Y2giOiJPTiIsImV2Ijp7InJlbG9jIjp7ImlkIjo0MjAsIm1hcHMiOjMsInJlcyI6Miwic3RhcnQiOjE3MDExOTUxNTYsImVuZCI6MTcwMTE5NTE5OH19fQ=='}
2023-11-28 12:13:26.347 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/config/custom_components/robovac/tuyalocalapi.py", line 736, in async_gratuitous_update_state
await self.update_entity_state_cb()
File "/config/custom_components/robovac/vacuum.py", line 330, in pushed_update_handler
self.update_entity_values()
File "/config/custom_components/robovac/vacuum.py", line 362, in update_entity_values
self._attr_consumables = ast.literal_eval(
^^^^^^^^^^^^^^^^^
KeyError: 'consumable'
from robovac.
Maybe this fix the error:
#45
But not sure why it decode something but there is no consumable key. I have to test it
from robovac.
@MelleD how did you get on with testing?
from robovac.
The error is gone, but the consumable sometimes there and sometimes not.
Maybe I should log the array to see what comes from the vacuumer
from robovac.
This is the debug output.
So not sure why the Consumables are not working
2024-01-10 20:33:35.182 DEBUG (MainThread) [custom_components.robovac.vacuum] Support Consumables
2024-01-10 20:33:35.182 DEBUG (MainThread) [custom_components.robovac.vacuum] Consumable code is: 142
2024-01-10 20:33:35.182 DEBUG (MainThread) [custom_components.robovac.vacuum] Consumables value is: None
2024-01-10 20:33:35.182 DEBUG (MainThread) [custom_components.robovac.vacuum] Consumable code is: 116
2024-01-10 20:33:35.183 DEBUG (MainThread) [custom_components.robovac.vacuum] Consumables value is: None
And sometimes works
2024-01-10 20:41:25.489 DEBUG (MainThread) [custom_components.robovac.vacuum] Support Consumables
2024-01-10 20:41:25.489 DEBUG (MainThread) [custom_components.robovac.vacuum] Consumable code is: 142
2024-01-10 20:41:25.489 DEBUG (MainThread) [custom_components.robovac.vacuum] Consumables value is: eyJkSW5mbyI6eyJpbmZvVHlwZSI6MTQyfSwic3dpdGNoIjoiT0ZGIn0=
2024-01-10 20:41:25.490 DEBUG (MainThread) [custom_components.robovac.vacuum] Consumables decoded value is: {'dInfo': {'infoType': 142}, 'switch': 'OFF'}
2024-01-10 20:41:25.490 DEBUG (MainThread) [custom_components.robovac.vacuum] Consumable code is: 116
2024-01-10 20:41:25.490 DEBUG (MainThread) [custom_components.robovac.vacuum] Consumables value is: eyJjb25zdW1hYmxlIjp7ImR1cmF0aW9uIjp7IkZNIjoyLCJSQiI6MywiU0IiOjMsIlNTIjozfX0sImRJbmZvIjp7ImluZm9UeXBlIjoxMTYsInJlc3VsdCI6Ik8ifX0=
2024-01-10 20:41:25.491 DEBUG (MainThread) [custom_components.robovac.vacuum] Consumables decoded value is: {'consumable': {'duration': {'FM': 2, 'RB': 3, 'SB': 3, 'SS': 3}}, 'dInfo': {'infoType': 116, 'result': 'O'}}
But is working. But the fan_speed is for me 130
fan_speed_list: Quiet, Standard, Turbo, Max
battery_level: 99
battery_icon: mdi:battery-charging-100
fan_speed: Max
supported_features: 16252
auto_return: true
do_not_disturb: true
boost_iq: true
mode: auto
consumables:
FM: 2
RB: 3
SB: 3
SS: 3
from robovac.
I have the feeling that at some point the consumables will no longer be transferred and will only be there again when the vacuum cleaner is driven and docked again. The numbers are probably temporary at some point. The information also sometimes changes in the Eufy app and does not always completely match.
That's why I think this is more a Eufy problem. Firmware is up to date.
from robovac.
Related Issues (20)
- Errors with Robovac LR30 Hybrid HOT 2
- Chinese users cannot add this integrated plugin HOT 1
- Robovac issue G10 Hybrid issue, unable to control via HA HOT 3
- eufy RoboVac 15C MAX not being detected HOT 6
- Unexpected error HOT 23
- Started getting some errors in the logs after the last update to v 1.2.0 HOT 6
- Robovac G30 keeps getting error status after update 1.2.1 HOT 23
- Unable to use together with localtuya integration HOT 1
- Robovac 30C having decoding issues HOT 6
- Vacuum starts when changing fan speed HOT 1
- Connection reset issues HOT 14
- High CPU and Errors (updated from v.1.1.1) HOT 7
- Vacuum unavailable HOT 1
- Error with L70 Hybrid Vacuum HOT 4
- 15C max unavailable HOT 8
- Add support for Eufy X10 Pro Omni HOT 47
- Not found on tuya HOT 4
- G20 unavailable HOT 1
- X8 Not appearing HOT 2
- L60 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from robovac.