DeebotUniverse / client.py

Deebot client library in python
https://deebot.readthedocs.io
GNU General Public License v3.0
27 stars 41 forks source link

Add support for various "Event Messages" #493

Open Ulfmerbold2000 opened 3 months ago

Ulfmerbold2000 commented 3 months ago

Checks

The problem

I've some unknown messages in my logs. As i've learned they are missing in commands directory.

I could need an little "template" then i would try to write that down. I do atm qualified paste and copy, python itself i need to learn a bit first.

Following commands i've found as missing:

Unknown message "onFwBuryPoint-batteryInfo-evt"

Unknown message "onFwBuryPoint-mop-evt"

Unknown message "onFwBuryPoint-alert-evt"

Unknown message "onFwBuryPoint-common-setting"

Unknown message "onFwBuryPoint-omniState-evt"

Unknown message "onFwBuryPoint-task-evt"

Unknown message "onFwBuryPoint-formulate-setting"

Unknown message "onFwBuryPoint-detectChargerSignal-evt"

Unknown message "onFwBuryPoint-bd_basicinfo"

Unknown message "onFwBuryPoint-mop-evt"

Unknown message "onQuickCommand"

Unknown message "onFurnitureInfo_V2"

Unknown message "onAIMap" ---> i belief this message was coming when i locked the map in app

Unknown message "onLastTimeStats"

Unknown message "onEvt"

Unknown message "onCleanDataUpdate_V2"

Unknown message "onStationState" --->This maybe trigger infos from Station like drying, mop washing etc.

Unknown message "onSleep" ---> this could trigger the "sleep" icon on the map (animated "z z z z z")

On which deebot device (vacuum) you have the issue?

Deebot X2 Omni

Which version of the deebot-client are you using?

7.2.0

Country

de

Continent

eu

Anything in the logs that might be useful for us?

2024-05-11 17:54:49.631 DEBUG (MainThread) [deebot_client.mqtt_client.client] Received PUBLISH (d0, q0, r0, m0), 'iot/atr/onFwBuryPoint-batteryInfo-evt/310b014d-e138-4268-b4f2-eea7bc4bebfa/lf3bn4/hOdT/j', ...  (535 bytes)
2024-05-11 17:54:49.632 DEBUG (MainThread) [deebot_client.mqtt_client] Got message: topic=iot/atr/onFwBuryPoint-batteryInfo-evt/310b014d-e138-4268-b4f2-eea7bc4bebfa/lf3bn4/hOdT/j, payload=b'{"header":{"pri":1,"tzm":120,"ts":"1715442888893","ver":"0.0.1","fwVer":"1.76.0","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"gid":"G1715423186951","index":"0000000673","info":null,"infoStr":"{\\"type\\":\\"BatteryInfo\\",\\"ischarging\\":1,\\"left_wheel_current\\":5,\\"right_wheel_current\\":0,\\"left_mop_current\\":0,\\"right_mop_current\\":0,\\"right_side_current\\":0,\\"roll_current\\":0,\\"battery_current\\":1275,\\"battery_voltage\\":16380,\\"battery_percent\\":94,\\"incarpet\\":0,\\"fan_speed\\":0,\\"battery_temperature\\":\\u0017}","ts":"1715442888873"}}'
2024-05-11 17:54:49.632 DEBUG (MainThread) [deebot_client.event_bus] Event is the same! Skipping (AvailabilityEvent(available=True))
2024-05-11 17:54:49.632 DEBUG (MainThread) [deebot_client.device] Try to handle message onFwBuryPoint-batteryInfo-evt: b'{"header":{"pri":1,"tzm":120,"ts":"1715442888893","ver":"0.0.1","fwVer":"1.76.0","hwVer":"0.1.1","wkVer":"0.1.54"},"body":{"gid":"G1715423186951","index":"0000000673","info":null,"infoStr":"{\\"type\\":\\"BatteryInfo\\",\\"ischarging\\":1,\\"left_wheel_current\\":5,\\"right_wheel_current\\":0,\\"left_mop_current\\":0,\\"right_mop_current\\":0,\\"right_side_current\\":0,\\"roll_current\\":0,\\"battery_current\\":1275,\\"battery_voltage\\":16380,\\"battery_percent\\":94,\\"incarpet\\":0,\\"fan_speed\\":0,\\"battery_temperature\\":\\u0017}","ts":"1715442888873"}}'
2024-05-11 17:54:49.633 DEBUG (MainThread) [deebot_client.messages] Unknown message "onFwBuryPoint-batteryInfo-evt"

Additional information

These burypoint messages seems to be an feedback from bot with interesting internal informations.

edenhaus commented 3 months ago

You need the analyse the event data and create a a corespnding class in the message module/folder. The difference between messages and commands is, that messages are fired only by the vacuum and cannot triggered by the client. Commands can be trigger by the client ex. clean