Skip to content

[FEATURE] Unterstützung für neue API-Struktur / Roborock Q10 Series #1080

@mrMuppet

Description

@mrMuppet

Type of Request

New Device Support

Device Model

roborock.vacuum.ss09

Device Firmware Version

3.10.92

Is your feature request related to a problem?

beim Debuggen des Adapters mit einem neuen Roborock Q10 ist mir aufgefallen, warum das Gerät vom Adapter komplett ignoriert wird (das Log zeigt nach erfolgreichem Login nur localDevices: {} und es wird auch kein unknown model Fehler ausgegeben).

Die Ursache:
Roborock hat bei den neuesten Modellen offenbar die Datenstruktur in der Cloud umgebaut:

Das Array "devices": [] ist jetzt komplett leer. Da der Adapter aktuell durch dieses Array iteriert, findet er logischerweise keinen Sauger.

Das neue Gerät liegt stattdessen in einem neuen Array namens "products": [...].

Die Steuerung der neuen Modelle läuft anscheinend über ein komplett neues RPC-Schema. Die ganzen Datenpunkte und Befehle (wie fan_power, water_box_mode, start_clean_task) sind jetzt direkt im schema-Array als Liste mit eigenen IDs (101, 102, 123 etc.) definiert.

Gerätedetails:
Name: Roborock Q10 Series
Model-ID: roborock.vacuum.ss09

HomeData JSON:
Hier ist mein anonymisierter HomeData String, den ich direkt aus der API-Antwort (getUserData / HTTP 200) extrahiert habe. Man sieht sehr gut die leere devices-Liste und die neue products-Struktur:

JSON
{"id":1234567,"name":"My Home","lon":null,"lat":null,"geoName":null,"products":[{"id":"XXXXXXXXXXXXXXXXXXXXXX","name":"Roborock Q10 Series","model":"roborock.vacuum.ss09","iconUrl":null,"attribute":null,"capability":0,"category":"robot.vacuum.cleaner","schema":[{"id":101,"name":"RPC Request","code":"rpc_request","mode":"rw","type":"RAW","property":"null"},{"id":102,"name":"RPC Response","code":"rpc_response","mode":"rw","type":"RAW","property":"null"},{"id":120,"name":"错误代码","code":"error_code","mode":"ro","type":"ENUM","property":"null"},{"id":121,"name":"设备状态","code":"state","mode":"ro","type":"VALUE","property":"null"},{"id":122,"name":"设备电量","code":"battery","mode":"ro","type":"ENUM","property":"null"},{"id":123,"name":"吸力档位","code":"fan_power","mode":"rw","type":"ENUM","property":"null"},{"id":124,"name":"拖地档位","code":"water_box_mode","mode":"rw","type":"RAW","property":"null"},{"id":125,"name":"主刷寿命","code":"main_brush_life","mode":"ro","type":"ENUM","property":"null"},{"id":126,"name":"边刷寿命","code":"side_brush_life","mode":"ro","type":"ENUM","property":"null"},{"id":127,"name":"滤网寿命","code":"filter_life","mode":"ro","type":"ENUM","property":"null"},{"id":135,"name":"离线原因","code":"offline_status","mode":"ro","type":"ENUM","property":"null"},{"id":136,"name":"清洁次数","code":"clean_times","mode":"rw","type":"ENUM","property":"null"},{"id":137,"name":"扫拖模式","code":"cleaning_preference","mode":"rw","type":"ENUM","property":"null"},{"id":138,"name":"清洁任务类型","code":"clean_task_type","mode":"ro","type":"ENUM","property":"null"},{"id":139,"name":"返回基站类型","code":"back_type","mode":"ro","type":"ENUM","property":"null"},{"id":140,"name":"基站任务类型","code":"dock_task_type","mode":"ro","type":"ENUM","property":"null"},{"id":141,"name":"清洁进度","code":"cleaning_progress","mode":"ro","type":"ENUM","property":"null"},{"id":142,"name":"窜货信息","code":"fc_state","mode":"ro","type":"RAW","property":"null"},{"id":201,"name":"启动清洁任务","code":"start_clean_task","mode":"wo","type":"ENUM","property":"null"},{"id":202,"name":"返回基站任务","code":"start_back_dock_task","mode":"wo","type":"ENUM","property":"null"},{"id":203,"name":"启动基站任务","code":"start_dock_task","mode":"wo","type":"ENUM","property":"null"},{"id":204,"name":"暂停任务","code":"pause","mode":"wo","type":"RAW","property":"null"},{"id":205,"name":"继续任务","code":"resume","mode":"wo","type":"RAW","property":"null"},{"id":206,"name":"结束任务","code":"stop","mode":"wo","type":"RAW","property":"null"},{"id":207,"name":"用户改善计划","code":"ceip","mode":"rw","type":"ENUM","property":"{\"range\": [\"0,1\"]}"}]}],"devices":[],"receivedDevices":[],"rooms":[]}
Wenn ich die neue Struktur später mit meinem Gerät im ioBroker testen soll, gebt mir gerne Bescheid.

Describe the solution you'd like

Der Adapter müsste erweitert werden, um die neue products-Struktur und das dazugehörige RPC-Schema von Roborock auszulesen.

  1. Das Array "devices": [] ist bei den neuen Modellen komplett leer.
  2. Das neue Gerät liegt stattdessen in einem Array namens "products": [...].
  3. Die Steuerung läuft über ein neues RPC-Schema (Datenpunkte wie fan_power, start_clean_task etc. sind im schema-Array mit IDs definiert).

Describe alternatives you've considered

No response

Additional context / Screenshots / Logs

No response

Checklist

  • I have searched for existing feature requests (issues) to avoid duplicates.
  • I agree to provide feedback or test the feature if implemented.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions