Xiaomi Saugroboter

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

hansibuh
Beiträge: 13
Registriert: 12. Sep 2019 08:04

Xiaomi Saugroboter

Beitrag von hansibuh »

Hi,
Ich habe zwei Xiaomi Roboter (MI Vaccum Cleaner s2 und roborock s5). Ich habe eine Anleitung auf dem internationalen openhab-Forum gelesen und die entsprechenden items- und sitemap-Dateien angelegt. Nun erhalte ich folgende Fehler in meiner Log-Datei:

2019-11-02 16:35:23.845 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item for widget org.eclipse.smarthome.model.sitemap.Group
2019-11-02 16:35:23.848 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item ‘gVac’ for widget org.eclipse.smarthome.model.sitemap.Group
2019-11-02 16:35:23.851 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item ‘gVac’ for widget org.eclipse.smarthome.model.sitemap.Group
2019-11-02 16:35:23.853 [ERROR] [ui.internal.items.ItemUIRegistryImpl] - Cannot retrieve item ‘gVac’ for widget org.eclipse.smarthome.model.sitemap.Group


… und so weiter für alle meine items.

Hier meine items aus Roboter.items
// Gruppe für alles
Group gVac "Xiaomi Saugroboter" <fan>

// Gruppe für die einzelnen Aspekte
Group gVacStats2 "Status" <status> (gVac)
Group gVacConss2 "Zeitplanung" <line-increase> (gVac)
Group gVacDNDs2 "Einstellungen 'Nicht-Stören'" <moon> (gVac)
Group gVacHists2 "Verlauf" <calendar> (gVac)
Group gVacNetworks2 "Netzwerk Details" <network> (gVac)
Group gVacStats5 "Status" <status> (gVac)
Group gVacConss5 "Zeitplanung" <line-increase> (gVac)
Group gVacDNDs5 "Einstellungen 'Nicht-Stören'" <moon> (gVac)
Group gVacHists5 "Verlauf" <calendar> (gVac)
Group gVacNetworks5 "Netzwerk Details" <network> (gVac)

// Mi Robot Vaccum
String actionControls2 "Steuerung" (gVac) {channel="miio:generic:05BE208A:actions#control" }
Number actionFans2 "generic Fan" (gVac) {channel="miio:generic:05BE208A:actions#fan" }
String actionCommands2 "generic Command" {channel="miio:generic:05BE208A:actions#commands" }

Number statusBats2 "Batteriestatus [%1.0f%%]" <battery> (gVac,gVacStats2) {channel="miio:generic:05BE208A:status#battery" }
Number statusAreas2 "Gereinigte Fläche [%1.0fm²]" <zoom> (gVac,gVacStats2) {channel="miio:generic:05BE208A:status#clean_area" }
Number statusTimes2 "Reinigungszeit [%1.0f']" <clock> (gVac,gVacStats2) {channel="miio:generic:05BE208A:status#clean_time" }
String statusErrors2 "Fehler [%s]" <error> (gVac,gVacStats2) {channel="miio:generic:05BE208A:status#error_code" }
Number statusFanPows2 "Fan Power [%1.0f %%]" <signal> (gVacStats2) {channel="miio:generic:05BE208A:status#fan_power" }
Number statusCleans2 "Reinigungsstatus [%1.0f]" <switch> (gVacStats2) {channel="miio:generic:05BE208A:status#in_cleaning" }
Switch statusDNDs2 "DND Status" (gVacStats2) {channel="miio:generic:05BE208A:status#dnd_enabled" }
String statusStatuss2 "Status [%s]" <status> (gVacStats2) {channel="miio:generic:05BE208A:status#state"}

Number consumableMainTs2 "Hauptbürste [%1.0f]" (gVacConss2) {channel="miio:generic:05BE208A:consumables#main_brush_time"}
Number consumableSidePs2 "Seitenbürste [%1.0f%%]" (gVacConss2) {channel="miio:generic:05BE208A:consumables#side_brush_percent"}
Number consumableFilterTs2 "Filter [%1.0f]" (gVacConss2) {channel="miio:generic:05BE208A:consumables#filter_time" }
Number consumableFilterPs2 "Filter [%1.0f%%]" (gVacConss2) {channel="miio:generic:05BE208A:consumables#filter_percent" }
Number consumableSensorTs2 "Sensor [%1.0f]" (gVacConss2) {channel="miio:generic:05BE208A:consumables#sensor_dirt_time"}
Number consumableSensorPs2 "Sensor [%1.0f%%]" (gVacConss2) {channel="miio:generic:05BE208A:consumables#sensor_dirt_percent"}


Switch dndFunctions2 "DND Funktion" <moon> (gVacDNDs2) {channel="miio:generic:05BE208A:dnd#dnd_function"}
String dndStarts2 "DND Startzeit [%s]" <clock> (gVacDNDs2) {channel="miio:generic:05BE208A:dnd#dnd_start"}
String dndEnds2 "DND Endzeit [%s]" <clock-on> (gVacDNDs2) {channel="miio:generic:05BE208A:dnd#dnd_end"}

Number historyAreas2 "Total gereinigte Fläche [%1.0fm²]" <zoom> (gVacHists2) {channel="miio:generic:05BE208A:history#total_clean_area"}
Number historyTimes2 "Total gereinigte Zeit [%1.0f']" <clock> (gVacHists2) {channel="miio:generic:05BE208A:history#total_clean_time"}
Number historyCounts2 "Reinigungsvorgänge [%1.0f]" <office> (gVacHists2) {channel="miio:generic:05BE208A:history#total_clean_count"}

String miNetSSIDs2 "Netzwerk SSID [%s]" <network> (gVac,gVacNetworks2) {channel="miio:generic:05BE208A:network#ssid" }
String miNetBSSIDs2 "Netzwerk BSSID [%s]" <network> (gVac,gVacNetworks2) {channel="miio:generic:05BE208A:network#bssid" }
Number miNetRSSIs2 "Netzwerk RSSI [%1.0f]" <network> (gVac,gVacNetworks2) {channel="miio:generic:05BE208A:network#rssi" }
Number miNetLifes2 "Uptime [%1.0f]" <clock> (gVac,gVacNetworks2) {channel="miio:generic:05BE208A:network#life" }

… und hier ist meine sitemap Roboter.sitemap
sitemap Roboter label="Saugroboter Steuerung"
{
Group item=gVac
{
Switch item=actionControls2 label="Funktionen" mappings=[vacuum="Start", pause="Pause",spot="Spot", dock="Dock"]
Switch item=actionFans2 label="Saugstärke" mappings=[38="Leise", 60="Normal", 77="Power",90="Maximum", -1="Andere"]
Default item=statusBats2 label="Batterie"
Default item=statusAreas2 label="Gereinigte qm"
Default item=statusTimes2 label="Reinigungszeit"
}
Group item=gVacStats2 label="Status Details"
Group item=gVacConss2 label="Gerätezustand"
Group item=gVacDNDs2 label="Nicht Stören"
Group item=gVacHists2 label="Reinigungsverlauf"
Group item=gVacNetworks2 label="Netzwerk"
}

Wo ist mein Fehler?

ibot1989
Beiträge: 99
Registriert: 30. Jul 2016 19:51
Wohnort: östlich von Hamburg, südlich von Lübeck, nördlich von Geesthacht

Re: Xiaomi Saugroboter

Beitrag von ibot1989 »

Sind das Fehlermeldungen aus deiner Sitemap oder aus den Items?

Bekommst du auch Fehlermeldungen wenn du die Items aus der Seitemap entfernst?

Gesendet von meinem ONEPLUS A6013 mit Tapatalk


hansibuh
Beiträge: 13
Registriert: 12. Sep 2019 08:04

Re: Xiaomi Saugroboter

Beitrag von hansibuh »

Hallo,

wenn ich die items aus der sitemap entferne, ändert sich nichts. In der basicui sehe ich nur die Gruppen mit leerem Inhalt. Die Fehlermeldungen in der Logdatei bleiben diegleichen.

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Xiaomi Saugroboter

Beitrag von sihui »

hansibuh hat geschrieben: 7. Nov 2019 11:59 In der basicui sehe ich nur die Gruppen mit leerem Inhalt.
Ich verstehe nicht so ganz den Sinn deiner verschachtelten Gruppen.
Ich würde erst einmal nur die Items auf die Sitemap bringen, damit du sehen kannst ob die Hardwareanbindung vernünftig funktioniert.
Danach kann man dann immer noch Gruppen anlegen ... mit allen Nachteilen die Gruppen so bieten: du kannst die Reihenfolge der Items nicht festlegen, keine individuellen Namen festlegen, usw.
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

hansibuh
Beiträge: 13
Registriert: 12. Sep 2019 08:04

Re: Xiaomi Saugroboter

Beitrag von hansibuh »

Jetzt habe ich die Gruppen aus der Sitemap entfernt und nur die Items stehen lassen. So sieht die Sitemap nun aus:

sitemap Roboter label="Saugroboter Steuerung" {
Frame label="Mi Robot Vacuum"{
Switch item=actionControls2 mappings=[vacuum="Vacuum", pause="Pause",spot="Spot", dock="Dock"]
Switch item=actionFans2 mappings=[38="Silent", 60="Normal", 77="Power",90="Full", -1="Custom"]
Default item=statusBats2
Default item=statusAreas2
Default item=statusTimes2
}
Frame label="Roborock"{
Switch item=actionControls5 mappings=[vacuum="Roborock", pause="Pause",spot="Spot", dock="Dock"]
Switch item=actionFans5 mappings=[38="Silent", 60="Normal", 77="Power",90="Full", -1="Custom"]
Default item=statusBats5
Default item=statusAreas5
Default item=statusTimes5
}
}

In der BasicUI sehe ich trotzdem nur folgendes:
BasicUI.jpg
Meine Fehlermeldungen im Log sehen so aus (ich habe nochmal die Channels neu aus der BasicUI eingetragen!):
Log.jpg
Ich habe absolut keine Idee. Ich habe die items und die sitemap aus diesem Beitrag https://community.openhab.org/t/xiaomi- ... ng/31317/2 übertragen und die channels entsprechend angepasst. Es funktioniert aber einfach nicht.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Xiaomi Saugroboter

Beitrag von sihui »

hansibuh hat geschrieben: 8. Nov 2019 16:34 Jetzt habe ich die Gruppen aus der Sitemap entfernt und nur die Items stehen lassen.
Gut, somit können wir schon einmal einen Gruppenfehler ausschließen.
hansibuh hat geschrieben: 8. Nov 2019 16:34 und die channels entsprechend angepasst.
Okay, da ich das vor wenigen Wochen mit meinem neuen Xiaomi Staubsauger auch gerade erst hinter mich gebracht habe werden wir dem Fehler schon auf die Spur kommen.

Also, als erstes brauchst du die korrekte Anbindung, dazu musst du den Token auslesen. Ich gehe davon aus du hast das gemacht.
Anschließend sollte entweder dein Staubsauger autodiscovered werden oder du musst ihn manuell anlegen. Das manuelle Anlegen ist notwendig falls dein Staubsauger noch nicht in der internen Kompatibilitätsliste des Bindings vorhanden ist.

Wenn das alles erledigt ist hast du in PaperUI ein Thing, welches online sein sollte. Dieses rufst du auf und schaust dir die korrekten Channel an. Diese Channel verlinkst du mit jeweils einem Item. Dieses Items bringst du dann auf deine Sitemap.

Am Beispiel eines Xiaomi 1S und einem Channel sieht das wie folgt aus:
Thing:
xiaomi1.JPG
Item:

Code: Alles auswählen

String XiaomiRobotVacuum1SActionsControl "Funktion" {channel="miio:vacuum:0F8F154D:actions#control"}
Sitemap:

Code: Alles auswählen

Selection item=XiaomiRobotVacuum1SActionsControl mappings=[vacuum="Vacuum", pause="Pause",spot="Spot", dock="Dock"]
Das vollziehst du bitte für jedes deiner verfügbaren Channels mit deinem Stausauger nach.
Den Thread im englischen Forum ignoriere ich jetzt mal, es macht ja wenig Sinn das Gleiche dort noch mal zu schreiben.

Viel Erfolg.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Xiaomi Saugroboter

Beitrag von sihui »

hansibuh hat geschrieben: 8. Nov 2019 16:34

Code: Alles auswählen

Switch item=actionControls2 mappings=[vacuum="Vacuum", pause="Pause",spot="Spot", dock="Dock"]
Was mir gerade so auffällt: mit einem Switch Element Type kannst du ein ON oder OFF senden, aber keine verschiedenen Zustände eines String Itemtypes.
Das ist also schon mal grundsätzlich falsch.

Itemtypes:
https://www.openhab.org/docs/configurat ... .html#type
Die dazugehörigen Elementtypes für die Sitemap:
https://www.openhab.org/docs/configurat ... ment-types
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

Benutzeravatar
udo1toni
Beiträge: 13859
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Xiaomi Saugroboter

Beitrag von udo1toni »

Doch, das sollte schon funktionieren, das Switch Widget kann beliebige Status an das Item senden. Man muss nur darauf achten, dass das verlinkte Item den passendne Typ hat.
Switch Item kann nur ON/OFF verarbeiten, Number Item kann nur Zahlen verarbeiten, String Item kann beliebiege Zeichenketten als Status halten. Sobald die Zeichenkette Leerzeichen enthält, muss sie in Anführungszeichen gesetzt werden.

Bist Du sicher, dass die Items überhaupt geladen werden?
Sofern Du VSCode verwendest, müssen die Items in der Itemliste erscheinen, alternativ müssen sie auch in Paper UI in der Konfiguration erscheinen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: Xiaomi Saugroboter

Beitrag von sihui »

udo1toni hat geschrieben: 9. Nov 2019 02:19 Doch, das sollte schon funktionieren
Upps, stimmt. Habe ich sogar schon mal probiert (aufgrund des fortgeschrittenen Alters aber schon wieder vergessen), aber wieder verworfen da ich nur das Smartphone zum Steuern nehme (oder Alexa) und dann wird so ein Switch Widget deutlich zu breit.

Danke für die Richtigstellung. Ich halte mich dann jetzt aus diesem Thread lieber raus :D
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

hansibuh
Beiträge: 13
Registriert: 12. Sep 2019 08:04

Re: Xiaomi Saugroboter

Beitrag von hansibuh »

Hallo,

ich habe jetzt die bisher erstellte items und sitemap-Dateien gelöscht und testweise zwei neue Dateien erstellt:

test.items enthält:

String actionControl "Vacuum Control" { channel="miio:vacuum:05C63EA8:actions#control" }

test.sitemap enthält:

sitemap test label="Robotertest" {
Switch item=actionControl
label="Steuerung"
icon="vaccum"
mappings=[Vacuum="Reinigung", Pause="Pause",Spot Clean="Spot", Dock="Dock"]
}

Im Browser sieht das Ganze so aus:
Browser.jpg
In der Paper UI kann ich den Roboter steuern. Das Binding funktioniert:
PaperUI1.jpg
PaperUI2.jpg
Ich habe auch versucht, das Mapping über eine Mappingsdatei zu lösen - keine Änderung! Das icon wird auch nicht angezeigt, auch wenn ich die Dateiendung anhänge.

Ich habe gerade probiert, in der sitemap anstatt über "Switch" den Roboter mit "Selection" anzusprechen. Das funktioniert auch, ist allerdings für meine Browseransicht nicht optimal.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten