home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
73.71k stars 30.83k forks source link

Roborock integration - Translating some entities #98621

Closed solarssk closed 1 year ago

solarssk commented 1 year ago

The problem

Hello!

Do we know the reason why integration translates some entities from English to local language? Is it related to the location set in the Roborock account? Because despite changing the language of HA - it continues to download some of the entities to, for example, the Polish language. In addition - after changing the entity to another name - when starting the robot, it throws me an error about the absence of such an entity.

image

What version of Home Assistant Core has the issue?

2023.8.2

What was the last working version of Home Assistant Core?

none

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Roborock

Link to integration documentation on our website

https://www.home-assistant.io/integrations/roborock/

Diagnostics information

{ "home_assistant": { "installation_type": "Home Assistant OS", "version": "2023.8.2", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.11.4", "docker": true, "arch": "x86_64", "timezone": "Europe/Warsaw", "os_name": "Linux", "os_version": "6.1.39", "supervisor": "2023.08.1", "host_os": "Home Assistant OS 10.4", "docker_version": "23.0.6", "chassis": "vm", "run_as_root": true }, "custom_components": { "xiaomi_cloud_map_extractor": { "version": "v2.2.0", "requirements": [ "pillow", "pybase64", "python-miio", "requests", "pycryptodome" ] }, "hacs": { "version": "1.32.1", "requirements": [ "aiogithubapi>=22.10.1" ] }, "auth_header": { "version": "1.4", "requirements": [] }, "browser_mod": { "version": "2.3.0", "requirements": [] }, "powercalc": { "version": "v1.8.5", "requirements": [ "numpy>=1.21.1" ] } }, "integration_manifest": { "domain": "roborock", "name": "Roborock", "codeowners": [ "@humbertogontijo", "@Lash-L" ], "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/roborock", "iot_class": "local_polling", "loggers": [ "roborock" ], "requirements": [ "python-roborock==0.32.2" ], "is_built_in": true }, "data": { "config_entry": { "username": "REDACTED", "user_data": { "uid": "REDACTED", "tokentype": "", "token": "REDACTED", "rruid": "REDACTED", "region": "eu", "countrycode": "48", "country": "PL", "nickname": "Xtx4348691", "rriot": { "u": "7Een72RrMMFneyXoknbBjz", "s": "ZmxpGo", "h": "rgZLEdxjSz", "k": "gPFPeN8W", "r": { "r": "EU", "a": "https://api-eu.roborock.com", "m": "ssl://mqtt-eu-5.roborock.com:8883", "l": "https://wood-eu.roborock.com" } }, "tuyaDeviceState": 0, "avatarurl": "https://files.roborock.com/iottest/default_avatar.png" }, "base_url": "https://euiot.roborock.com" }, "coordinators": { "REDACTED-0": { "roborock_device_info": { "device": { "duid": "REDACTED", "name": "Roborock S7", "localKey": "REDACTED", "fv": "02.16.12", "activeTime": 1683649941, "timeZoneId": "Europe/Warsaw", "iconUrl": "", "productId": "4oT3mL3dB7GpIS77ZADOLs", "share": false, "online": true, "pv": "1.0", "tuyaMigrated": false, "sn": "R14E5S11803284", "featureSet": "0", "newFeatureSet": "0000000000002000", "deviceStatus": { "121": 8, "122": 100, "123": 103, "124": 203, "125": 96, "126": 94, "127": 74, "120": 0 }, "silentOtaSwitch": false }, "network_info": { "ip": "XXX", "ssid": "XXX", "mac": "REDACTED", "bssid": "REDACTED", "rssi": -58 }, "product": { "id": "4oT3mL3dB7GpIS77ZADOLs", "name": "Roborock S7", "model": "roborock.vacuum.a15", "capability": 0, "category": "robot.vacuum.cleaner", "schema": [ { "id": "101", "name": "rpc_request", "code": "rpc_request", "mode": "rw", "type": "RAW" }, { "id": "102", "name": "rpc_response", "code": "rpc_response", "mode": "rw", "type": "RAW" }, { "id": "120", "name": "\u9519\u8bef\u4ee3\u7801", "code": "error_code", "mode": "ro", "type": "ENUM" }, { "id": "121", "name": "\u8bbe\u5907\u72b6\u6001", "code": "state", "mode": "ro", "type": "ENUM" }, { "id": "122", "name": "\u8bbe\u5907\u7535\u91cf", "code": "battery", "mode": "ro", "type": "ENUM" }, { "id": "123", "name": "\u6e05\u626b\u6a21\u5f0f", "code": "fan_power", "mode": "rw", "type": "ENUM" }, { "id": "124", "name": "\u62d6\u5730\u6a21\u5f0f", "code": "water_box_mode", "mode": "rw", "type": "ENUM" }, { "id": "125", "name": "\u4e3b\u5237\u5bff\u547d", "code": "main_brush_life", "mode": "rw", "type": "VALUE" }, { "id": "126", "name": "\u8fb9\u5237\u5bff\u547d", "code": "side_brush_life", "mode": "rw", "type": "VALUE" }, { "id": "127", "name": "\u6ee4\u7f51\u5bff\u547d", "code": "filter_life", "mode": "rw", "type": "VALUE" }, { "id": "128", "name": "\u989d\u5916\u72b6\u6001", "code": "additional_props", "mode": "ro", "type": "RAW" }, { "id": "130", "name": "\u5b8c\u6210\u4e8b\u4ef6", "code": "task_complete", "mode": "ro", "type": "RAW" }, { "id": "131", "name": "\u7535\u91cf\u4e0d\u8db3\u4efb\u52a1\u53d6\u6d88", "code": "task_cancel_low_power", "mode": "ro", "type": "RAW" }, { "id": "132", "name": "\u8fd0\u52a8\u4e2d\u4efb\u52a1\u53d6\u6d88", "code": "task_cancel_in_motion", "mode": "ro", "type": "RAW" }, { "id": "133", "name": "\u5145\u7535\u72b6\u6001", "code": "charge_status", "mode": "ro", "type": "RAW" }, { "id": "134", "name": "\u70d8\u5e72\u72b6\u6001", "code": "drying_status", "mode": "ro", "type": "RAW" } ] }, "props": { "status": { "msgVer": 2, "msgSeq": 73, "state": 8, "battery": 100, "cleanTime": 24, "cleanArea": 362500, "squareMeterCleanArea": 0.4, "errorCode": 0, "mapPresent": 1, "inCleaning": 0, "inReturning": 0, "inFreshState": 1, "labStatus": 1, "waterBoxStatus": 1, "fanPower": 101, "dndEnabled": 0, "mapStatus": 3, "isLocating": 0, "lockStatus": 0, "waterBoxMode": 203, "waterBoxCarriageStatus": 1, "mopForbiddenEnable": 1, "adbumperStatus": [ 0, 0, 0 ], "waterShortageStatus": 1, "dockType": 0, "dustCollectionStatus": 0, "autoDustCollection": 1, "mopMode": 300, "debugMode": 0, "dockErrorStatus": 0, "unsaveMapReason": 4, "unsaveMapFlag": 0 }, "cleanSummary": { "cleanTime": 798056, "cleanArea": 7092855000, "squareMeterCleanArea": 7092.9, "cleanCount": 384, "dustCollectionCount": 0, "records": [ 1692358969, 1692183599, 1692010800, 1691924400, 1691751600, 1691578800, 1691406000, 1691319600, 1691154127, 1691146800, 1691060401, 1690974001, 1690887601, 1690801200, 1690714801, 1690628401, 1690543969, 1690542000, 1690455600, 1690369200 ] }, "consumable": { "mainBrushWorkTime": 49271, "sideBrushWorkTime": 49271, "filterWorkTime": 143496, "filterElementWorkTime": 0, "sensorDirtyTime": 49271, "dustCollectionWorkTimes": 0, "mainBrushTimeLeft": 1030729, "sideBrushTimeLeft": 670729, "filterTimeLeft": 396504, "sensorTimeLeft": 58729 }, "lastCleanRecord": { "begin": 1692358969, "end": 1692358993, "duration": 24, "area": 362500, "squareMeterArea": 0.4, "error": 0, "complete": 0, "startType": 2, "cleanType": 1, "finishReason": 60, "dustCollectionStatus": 0 } } }, "api": { "unknown": { "params": null, "response": null, "error": null }, "get_clean_summary": { "params": [], "response": { "clean_time": 798056, "clean_area": 7092855000, "clean_count": 384, "dust_collection_count": 0, "records": [ 1692358969, 1692183599, 1692010800, 1691924400, 1691751600, 1691578800, 1691406000, 1691319600, 1691154127, 1691146800, 1691060401, 1690974001, 1690887601, 1690801200, 1690714801, 1690628401, 1690543969, 1690542000, 1690455600, 1690369200 ] }, "error": null }, "get_clean_record": { "params": [ 1692358969 ], "response": { "begin": 1692358969, "end": 1692358993, "duration": 24, "area": 362500, "error": 0, "complete": 0, "start_type": 2, "clean_type": 1, "finish_reason": 60, "dust_collection_status": 0 }, "error": null }, "app_charge": { "params": [], "response": null, "error": null }, "find_me": { "params": [], "response": null, "error": null }, "app_start": { "params": [], "response": null, "error": null } } } } } }

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

home-assistant[bot] commented 1 year ago

Hey there @humbertogontijo, @lash-l, mind taking a look at this issue as it has been labeled with an integration (roborock) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `roborock` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Renames the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign roborock` Removes the current integration label and assignees on the issue, add the integration domain after the command.

(message by CodeOwnersMention)


roborock documentation roborock source (message by IssueLinks)

joostlek commented 1 year ago

It's a feature of home assistant to translate the names of the entities to allow to view the name of the data in their native language. You should however be able to rename those entities to whatever you like, so I am curious about that error.

frenck commented 1 year ago

Home Assistant translates entities. This is a feature, not a bug.

See also the translation files of the Roborock integration: https://github.com/home-assistant/core/blob/790523126effe84de725b469f3dd3946709719ca/homeassistant/components/roborock/strings.json#L29

Like Joost said above ☝️ 😄

solarssk commented 1 year ago

I have nothing against it - it makes me very happy. Just as if it translates everything, and not randomly :D Let me take another look at the logs so I can post the message that displays to me when I change an entity to English.

Lash-L commented 1 year ago

If it is only translating something's that means there isn't a translation for some of the Roborock entities into polish.

You can contribute and help fix that by following these steps

https://developers.home-assistant.io/docs/translations/

solarssk commented 1 year ago

You've encouraged me - I'll embrace some of my personal stuff and join the support.

solarssk commented 1 year ago

ok, no problem - I did not check in the automation of the setting (it used the old name and after renaming the entity - it no longer had a way to refer to the mop settings previously).

Screenshot 2023-08-18 at 14 43 26

my mistake! XD

but another bug has appeared - I'll post it in a separate thread