NEWS
IoBroker.mihome-vacuum - Adapter-Verbesserungs-Thread
-
Hallo zusammen,
Wie von Buzzy im Github-Issue (https://github.com/ioBroker/ioBroker.mihome-vacuum/issues/52) vorgeschlagen, mal ein separates Thema zur Diskussion von Verbesserungsvorschl
ä
gen f
ü
r den ioBroker.mihome-vacuum-Adapter. Ich will den anderen Thread nicht noch weiter aufblasen.Zu dem Issue:
Aktuell sind die Datenpunkte unterhalb von mihome-vacuum.0.control reine Steuerungs-Datenpunkte, d.h. ein einmal gesetztes true im start-Datenpunkt oder home-Datenpunkt setzt sich freiwillig nicht mehr zur
ü
ck, bis der Adapter neu startet oder man es manuell auf false setzt.Es w
ä
re f
ü
r einige meiner Scripte deutlich einfacher, wenn das automatisch abh
ä
ngig von der R
ü
ckmeldung des Robbies passieren w
ü
rde, d.h. wenn eine Komplettreinigung beendet ist stellt sich start zur
ü
ck auf false, wenn eine Zonenreinigung beendet ist, stellt sich zoneClean auf
„
leer
“
usw.Die Steuerungs-Datenpunkte w
ü
rden also
ä
hnlich wie beispielsweise bei den homematic-Adaptern zus
ä
tzlich den Zustand des Robbies zeigen. Wenn start mit einem best
ä
tigten true gesetzt wird (vom Adapter), wei
ß
man (oder ein Script), das der Roboter gerade eine Komplettreinigung durchf
ü
hrt. Beispielsweise auch, wenn diese
ü
ber die Xiaomi-App gestartet wurde. Oder wenn sich der zoneClean-Datenpunkt wieder leert (mit Ack), dann kann man eine neue Zonenreinigung starten. (Man kann maximal 5 Zonen auf einmal reinigen lassen, ich habe aber mehr. W
ü
rde den WAF verbessern.Ja, mir ist bekannt, das es den Datenpunkt mihome-vacuum.0.info.state gibt, und das man die o.g. Sachen damit und einem entsprechenden Script abdecken kann, aber direkt im Adapter w
ä
re mMn. der richtige Platz.Was haltet ihr davon?
Gru
ß
StefPS: Es k
ö
nnen nat
ü
rlich auch andere Vorschl
ä
ge diskutiert werden. 
-
Wie genau ticken denn deine Skripte?
Ich pers
ö
nlich setze auch viel so um das es "Status"-States gibt wo der aktuelle Aktionsstatus drin ist und ansonsten reine "Steuer-States" die ich nur zum Steuern nutze um Aktionen auszul
ö
sen. Der Wert der Steuerstates ist dabei dann meistens egal - der Status State ist meistens viel genauer, vor allem wenn es mehrere Stati gibt -
Beispiel:
Ich habe insgesamt 12 Zonen definiert, die in der Vis mit Schaltern (mit ausw
ä
hlen/nicht ausw
ä
hlen) abgebildet sind. Dazu dann der "An-Button", der den Trigger bildet.
Ü
ber ein leeres HTML-Widget mit statusabh
ä
ngigem Ausblenden ist das ganze dann verriegelt. Solange die Reinigung dauert, soll man nicht zwischendurch die Zonen wechseln. Jetzt kann man aber nur 5 Zonen in einem Rutsch an den Robbie senden.Jetzt w
ä
re es sch
ö
n, wenn man einfach den zoneClean-Status
ü
berwachen kann, und wenn der wieder "leer" ist, sende ich die n
ä
chste Zone.Mache ich es via "state" (Status 17, in dem Falle also oldState = 17), muss ich extra-Runden drehen, weil ich zwischen "Pause gedr
ü
ckt" und "bin fertig" unterscheiden muss.Zweites Beispiel:
Synchronisation bei Verwendung von App und ioBroker. Wenn man in der App (oder bei flole/rrcc) eine Reinigung startet, kommt das in ioBroker nur via state an. Wenn zus
ä
tzlich auch der "start"-Steuerstatus auf true gehen w
ü
rde, dann w
ü
rde ein entsprechender Button in der vis von ganz alleine zwischen "gedr
ü
ckt" (aktiv/true) und "nicht gedr
ü
ckt" (inaktiv/false) wechseln und es braucht kein zus
ä
tzliches Script.(Ja mir ist klar, dass das bei zoneClean nicht ganz funktioniert, weil das Protokoll die Koordinaten der aktuell laufenden Zonenreinigung nicht kennt.)
Es ist nicht so dass es alles nicht geht, aber wenn es doch dieses sch
ö
ne Feature "Status best
ä
tigt" in ioBroker gibt, dann w
ä
re die Steuerung damit halt einfacher.Gru
ß
Stef -
Man k
ö
nnte eine Option im Adapter einbauen "Reset states after cleaning" und wenn diese Option in den Instanz-Einstellungen aktiviert wurde werden die States auf false gesetzt (bzw. zone Clean und Go To geleert) nach dem die Reinigung abgeschlossen ist..So l
ä
uft alles wie bisher, au
ß
er man
ä
ndert was in der Einstellung von der Instanz.. W
ä
re also "100% abw
ä
rtskompatibel" und man k
ö
nnte dann mit Bool-Buttons/Widgets im Vis ohne "extra States" oder "CSS Klassen" arbeiten.Was meinst du dazu @apollon77?
Gru
ß
-
ENtweder oder in meinen AUgen. Durch den Adaptercode blickt dann keiner mehr durch und auch Support-technisch ist das die H
ö
lle weil zu viel Magie da ist.In meinen Augen ist es einfach:
-
Es gibt AKTIONEN (start, backHome), die sind ein Trigger die eine Aktion starten
…
Und trigger sind in dem Fall immer Buttons und haben keinen Status, sind also nur "beschreibbar" Das ist der Taster an der Wand. Der weiss auch nicht ob das Licht was er schaltet gerade an oder aus ist -
Es gibt Statusfelder (enabled, cleaning, pause) die kann man lesen um einen Status zu sehen, aber mit Ihnen nichts kontrollieren
-
Es gibt "Schalter". diese haben Zust
ä
nde die man setzen kann 1..n, im einfachsten Fall Ein und Aus.
Aktuell hat der Adapter Statusfelder und Aktions-Trigger.
Man k
ö
nnte es
ä
ndern und "Schalter" nutzen, aber nur wenn etwas passiert wenn ich auf "Aus" stelle, das macht bei so einem Ger
ä
t in meinen Augen aber keinen echten Sinn.F
ü
r eine Visualisierung (so mache ich es) nutze ich die Statusfelder um den aktuellen Status zu sehen, ggf eigene JavaScript Statusfelder falls die Infos vom Adapter nicht reichen weil ich wissen will (Beispiel) was als letztes gestartet wurde 8welche Zone oder so). je nach Status blende ich die Buttons ein die man braucht.-
Ist er in der Ladestation dann habe ich die Trigger Buttons um Ihn zu starten
-
Ist er unterwegs gibts nur "Stop "und "Ab heim"
Das ist meine Meinung dazu.
-
-
Naja, genau das ist halt die javascript-H
ö
lle, die vielleicht dem einen oder anderen nicht so entgegenkommt. Um es mal vorsichtig zu sagen.Bei den Homematic-Sachen ist es klar. Dr
ü
ck ich den an-Knopf, geht das Licht an und der Status ist auf true. Ein Status, ein Knopf. In der Vis einfach einzubinden, kein JS-Geraffel, keine css-Klassen usw. Und wenn ich
ü
ber einen anderen Weg das Licht einschalte (z.B. direkt an der Wand), dann seh ich es trotzdem ohne Umst
ä
nde in der VIS.In dem mihome-vacuum muss ich, um
ä
hnliches zu erreichen, Hilfsstatus mit Scripten verwenden oder diverse Abh
ä
ngigkeiten.Ich find die Idee von Buzzy sch
ö
n, das man es anschalten kann, dass die states zur
ü
ckgesetzt (oder "von extern gesetzt") werden.Ja, es sind dann keine Buttons, sondern Schalter. Und du (apollon) hast zwar Buttons, aber die sind auch nicht immer dr
ü
ckbar, sondern eben nur wenn der "<u>Schalt</u>zustand" dazu passt.Gru
ß
StefHier noch der Screenshot wie erbeten. Es ist allerdings nicht so das ich aktuell ein akutes Problem habe, es ist nur ein massives Gefummel und k
ö
nnte halt deutlich einfacher sein. 

-
Ich kann das Grunds
ä
tzlich schon verstehen und meine Steuerung ist bei weitem nicht so fancy (und cool) wie Deine
…
WOW!Die Abw
ä
gung in meinem Kopf ist immer was der Adapter liefert und liefern muss und liefern sollte und was besser nicht.Adapter mit zuviel "Magie" und Konfigurierbarkeit drin haben sich als sehr schlecht wartbar herausgestellt, weil es dann auch jeder User anders nutzt und der Teufel immer in den Edge cases steckt auf die man selbst nicht kommt
Das soll jetzt kein Todschlag-Argument sein (und geht auch
ü
ber die urspr
ü
ngliche Fragestellung hinaus), sondern generell mein Learning.Man muss immer abw
ä
gen.Die Entscheidung liegt effektiv beim aktuellen Maintainer des Adapters weil er es auch ausb
ü
geln und den anderen Usern erkl
ä
ren muss 
Falls Ihr auf die Idee kommt es anders zu machen kann ich aber nur empfehlen eigene States f
ü
r die "neuen" Funktionen zu nutzen, weil wenn sich bei States Rollen und sonstwas
ä
ndern ist das bl
ö
d und f
ü
r keinen mehr wirklich nachvollziehbar (und ja die Rollen und so sollten dann passend abge
ä
ndert werden). -
Hallo Zusammen,
nach einiger Zeit der Abwesenheit wegen Renovierung etc. bin ich wieder am Start .. :lol:
Hier ein Auszug aus meiner aktuellen ToDo Liste..
( Ist jetzt nur schnell 1:1 von meiner Liste kopiert - deswegen vielleicht etwas "rudiment
ä
r"
)` > "Zonen" Tabelle im Admin - mihome-vacuum einbauen:
Tabellenlayout:
Name - Koordinaten - Anzahl der Reinigungen
…
.."Wohnzimmer" - "12225,12225,12345,12345" - "2"
"K
ü
che" - "13334, 14444, 11111, 12333" - "3".....
Boolean states aus Tabelle generieren
"mihome-vacuum.0.zones.Wohnzimmer"
"mihome-vacuum.0.zones.K
ü
che"State f
ü
r Start der Zonenreinigung"mihome-vacuum.0.zones.START" => Split aller Zonen-States mit Status true auf max 5 pro Durchgang - wenn Durchgang beendet - n
ä
chste Zonen senden (wieder max 5)"mihome-vacuum.0.zones.CLEANALL" => Sofort start (alle konfigurierten Zonen reinigen)
Pollingrate kleinstm
ö
glich halten (tempor
ä
r?) um schnell auf "finish" zu reagieren und next 5 zones senden. (Pause before Next zones?)
Zonen-States auf false zur
ü
cksetzen wenn Durchgang beendet `Angenommen man hat 12 Zonen so wie stef.73
Dann kann man einfach alle Zonen-States die gereinigt werden sollen auf true setzen und anschlie
ß
end mihome-vacuum.0.zones.START auf true und der Adapter arbeitet die Zonen ab die zuvor auf true gesetzt wurden..Wenn mehr als 5 Zonen gereinigt werden sollen - wartet der Adapter bis die Reinigung der ersten 5 Zonen beendet ist - stellt die gereinigten Zonen-States zur
ü
ck auf false und schickt dann die n
ä
chsten 5 Zonen an den Sauger..Ich denke damit w
ä
re dir auch geholfen stef.73 oder?Gru
ß
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden