Roborock - Mehrere Zonen - Queue?

Begonnen von dr4g0n, 30 Mai 2019, 01:55:34

Vorheriges Thema - Nächstes Thema

dr4g0n

Hallo zusammen,

ich nutze einen Roborock über das FHEM Plugin und alles funktioniert bestens.
Allerdings habe ich jetzt eine Herrausforderung bei der ich nichtmal im Ansatz eine Idee habe, wie ich das lösen könnte.
Der Roborock unterstützt die Zonenreinigung, man kann eine oder mehrere Zonen übergeben, die dann nacheinander abgearbeitet werden. Wenn der Robo allerdings bereits am Saugen ist und man eine weitere Zone hinzufügen möchte, dann geht das nicht.
Man muss ihn erst zuende Saugen lassen oder abbrechen und von vorne beginnen.
Ich möchte jetzt eine Funktion schreiben/haben wo ich ihm sage "Sauge die Küche" und wärend er die Küche saugt, möchte ich noch das Wohnzimmer in eine Art "Queue" stecken und sobald er mit der Küche fertig ist und er wieder auf dem Weg zum Dock ist, soll er das Wohnzimmer als Auftrag bekommen.

Bsp.
if(Roborock.Status = "Back to dock" && Queue != 0)
{
   Roborock.zoneCleanup(Queue[0]);
}

Wie kann ich das am besten bewerkstelligen? Wie kann ich so eine Queue aufbauen?

Ellert

Schau Dir den DOIF Perl-Mode an. Im DOIF kannst Du auch das Frontend realisieren, entweder über das Attribut uiTable oder readingsList, setList, webCmd und webCmdLabel. Die Queue könntest Du als Array im Modul-Hash ablegen und auslesen , wie Du es angedeutet hast.

https://commandref.fhem.de/commandref_DE.html#DOIF_Perl_Modus
https://commandref.fhem.de/commandref_DE.html#DOIF_uiTable
https://commandref.fhem.de/commandref_DE.html#DOIF_setList__readingList

GatuRatz

Hallo dr4g0n

hast Du das hinbekommen?
Ich stehe vor der gleichen Aufgabe und meine Perl-Kenntnisse gehen leider gegen Null...

LG
GatuRatz