NEWS
Devices, Alias, Assistenten + Visualisierungen + die Zukunft
-
Ich habe mich gestern noch etwas mit dem Devices Adapter beschäftigt. Je länger ich damit gespielt habe, desto besser gefällt mir das Konzept. Meiner Meinung nach sollte das integraler Bestandteil von ioBroker sein und nicht ein separater Adapter, den man installieren kann (oder auch nicht).
Bei mir ist es im Grunde so, dass ich in der Visualisierung und in Alexa fast 1:1 die selben Geräte benötige. Momentan muss ich diese mehrfach konfigurieren. Wenn der Devices Adapter zwingend in ioBroker integriert ist, dann können andere Adapter diese Geräte nutzen und als Adapter Entwickler spart man sich einen großen Teil Arbeit für die Konfiguration und kann sich dadurch auf die wesentlichen Teile des Adapters konzentrieren.
Bzgl. der zu implementierenden Gerätetemplates muss es in jedem Fall die Möglichkeit geben ein Gerät komplett selber zu definieren, weil wir am Ende ziemlich sicher nicht alle Geräte implementieren können die die User so haben werden und evtl. steuern möchten. Ich denke da z.B. an die jetzige Implementierung eines Thermostats vs. HomeMatic Thermostat mit seinen unterschiedlichen Modi (Party Mode, etc.).
Rund wird die Sache, wenn der Devices Adapter andere Adapter erkennen könnte, die zusätzliche Konfigurationsmöglichkeiten bieten: z.B. zusätzliche Aliasnamen für Alexa ("Schlafzimmer Rolladen" und "Rolladen Darkroom" ) oder das Ausblenden von Geräten in einer Visualisierung. Alternativ (aber nicht so schön) könnte es auch anders herum sein indem zusätzliche Konfigurationsmöglichkeiten in die Geräte Objekte geschrieben werden.
Die Punkte von @Meistertr möchte ich noch ergänzen um
d: Was sind Info-Geräte und wofür braucht man die? -
@apollon77 ok verstehe ich aber ich würde soviel Verantwortung wie möglich in die Hand der Adapter Entwickler geben damit der Endnutzer nur noch alias benutzen muss wenn er basteln will. Das heißt jedes device und Channel muss ein smarthome Type haben. Jeder der Types hat mandatory roles die an states vergeben werden müssen. Wenn das nicht passiert gibt der Js Controller warnings aus.
-
Randbemerkung:
@apollon77 sagte in Devices, Alias, Assistenten + Visualisierungen + die Zukunft:Der mqtt Adapter könnte gar keine Rollen für die Zustände bereitstellen, weil er es selbst nicht weiss.
Da kann man sicher eingreifen und zumindest teilweise Rollen Automatisch durch raten vergeben genau so wie andere commons. Die Funktion um Objekte durch raten zu ergänzen könnte einfach in den js-controller integriert werden, dann würden alle Adapter davon Profitieren ohne daß jeder Entwickler sich darum kümmern muss.
Mein Ansatz dazu wäre die Auswertung der gelieferten Daten. Also Name des Objekts, Werte Typ, Kategorie des Adapters, und was man noch so finden kann an Informationen.
Beispiel: Objekt mit dem Namen (oder darin enthalten) Temperatur -> Rolle value.Temperatur -> übernehmen aller mandatory commons -> Unit: Standard der ioBroker InstallationEine weitere Idee: Die Objektdefinitionen sollten in einer Objekts.js(on) im Adapter abgelegt werden so daß es einheitlich ist und auch von nicht Entwicklern bei der Pflege geholfen werden kann. Aktuell ist es teilweise schwer bis unmöglich bei manchen Adaptern heraus zu finden wo und wie die Objekte aufgebaut werden. Was keinen Spaß macht wenn man eine Definition anpassen will.
Einige Adapter verfolgen diesen Ansatz mit der Zentralen Objektdefinition ja schon, bis jetzt gibt es da noch kein einheitlichen Standard. Ich würde mich freuen wenn das in Zukunft vereinheitlicht und zur Pflicht wird. Es ist klar das gleich wieder einige rufen werden daß geht nicht weil... Sehe ich nicht so, das es geht und Praktikabel ist sehe ich ja an meinen Adaptern.
Meiner Meinung nach sollte auf Adapter Ebene noch deutlich mehr Wert darauf gelegt werden daß die Definitionen da sind und eine Grundstruktur ein gehalten wird. Ganz klar das geht nicht immer, aber es wird noch lange nicht so gut genutzt wie möglich.
Zum Thema:
Ich bin kein Fan von davon so viel zu Überhauen und deswegen sollte das minimiert werden. Da wo es eben nicht geht sollte es so gestaltet werden daß User davon nur etwas sehen wenn es wirklich nötig ist. Und Adapter Entwickler sich damit nicht beschäftigen müssen, außer natürlich sie müssen damit direkt Arbeiten, was dann eine Ausnahme sein sollte.Das Konzept ist sonst in Ordnung, weil es wohl keine bessere Lösung gibt.
@braindead sagte in Devices, Alias, Assistenten + Visualisierungen + die Zukunft:
Meiner Meinung nach sollte das integraler Bestandteil von ioBroker sein
Dem Schließe ich mich an.
-
@Meistertr
a) Kann man ja verbessern
b) AM Ed eist es das gleiche, nur anders gemacht - einmal über adlias (Devices) oder über einen Adater (linkeddevices).
c) Das wäre ja genau eins der Themen. Das aktuelle wäre quasi der Posteingang -
@tombox Hm ... ich bin nicht ganz sicher ob es auf Dauer funktioniert das bei den Entwicklern zu sehen ... unser stark verteilter Ansatz macht das extrem schwierig - wie wir inzwischen Wissen ...
-
Ich bin gerade vom Zigbee Stick auf das Board umgestiegen und hatte exakt das Problem. Viele Skripte funktionieren nicht mehr, Alexa findet meine Geräte nicht. Ich finde den Ansatz super, besonders mit dem Fokus auf Alexa und Google.
Programmieren kann ich leider nicht, aber helfen würde ich sehr gerne!
Wie wäre es die 60 Gerätetypen von Alexa in einer Google Tabelle (o.Ä.) zu erfassen?Der Geräte Adapter ist für mich aktuell noch nicht ganz klar: z.B. bei einem LED RGB Lightstrip. Muss ich Licht, RGB-Licht, Farbtemperatur oder RGB-Licht single nehmen? Die darauf folgenden Typen sind mir auch nicht ganz verständlich.
-
Hallo zusammen
@apollon77Ich finde die Idee des Adapters wunderbar, aber ich kann ihn leider nicht testen / nutzen.
Wenn ich ein Gerät hinzufügen möchte, ist die Liste quasi nicht sichtbar. Zoomen im Browser hilft nicht... Leider
Hier ein paar Screens dazu
Systeminfo
Debian Betriebssystem linux Betriebssystem linux Architektur x64 CPUs 4 Geschwindigkeit 2096 MHz Modell AMD Opteron 22xx (Gen 2 Class Opteron) RAM 17.64 GB System Betriebszeit 4 T. 04:35:55 Node.js v12.18.2 NPM 6.14.5 Festplatte Größe 80.21 GB Festplatte frei 66.92 GB Anzahl der Adapter 355 Betriebszeit 00:14:46 Aktive Instanzen 33 Hostname Debian
Kann mir da jemand helfen bitte?
Dankesehr!!!
-
@lemonbiter Das Problem liegt wahrscheinlich an dem Darkmode Deines Browsers. Der ioBroker scheint damit nicht richtig umzugehen. Probier mal, ob es funktioniert, wenn Du den Darkmode deaktivierst.
P.S.: Ich freu mich schon auf die Zeit nach Corona, wenn wir uns wieder bei Dir zum HomeMatic Stammtisch treffen können.
-
@ Braindead
Hat sich erledigt, sehe gerade, dass Du mir dieselbe Auskunft gibst, auf die ich eben auch kam ... Dennoch Danke Dir!
Ist tatsächlich ein Darstellungsfehler: Wenn man den Script Adapter auf "Dunkler Stil" stehen hat, dann kommt es zu diesem Darstellungsproblem im Devices Adapter.
Habe nun im Scripte Adapter die Darstellung wieder auf "Heller Stil" stehen und nun ist die Anzeige hier auch korrekt.
Viele Grüße
Lem -
@adsfa said in Devices, Alias, Assistenten + Visualisierungen + die Zukunft:
Der Geräte Adapter ist für mich aktuell noch nicht ganz klar: z.B. bei einem LED RGB Lightstrip. Muss ich Licht, RGB-Licht, Farbtemperatur oder RGB-Licht single nehmen? Die darauf folgenden Typen sind mir auch nicht ganz verständlich.
Ja, da fehlt leider noch eine Beschreibung der Geräte und auch der States, finde ich... aktuell muss man viel raten.
Was du in deinem Fall nehmen musst ist RGB-Licht oder RGB-Licht Single, das hängt davon ab, ob du einzelne States für r/g/b hast oder einen in den RGB als Hex-String eingetragen wird. Farbtemperatur enthalten beide als optionalen Zusatz. -
@apollon77 said in Devices, Alias, Assistenten + Visualisierungen + die Zukunft:
Schritt 1: Gerätetypen und "Objekt-Templates"
Wie oben schon erwähnt, definiert Amazon für die Alexa Welt aktuell über 60 Gerätetypen, die alle unterschiedliche Werte als nötige bzw. optionale Felder haben. Bei Google gibt es ähnliches. Viele davon sind auch für Visualisierungen interessant, weil man am "Typ" eines Geräts sehr gut entscheiden kann wie man es anzeigen und bedienen sollte - und das viel besser als zu raten
Daher ist die Idee das wir, angefangen mit den Amazon- und Google Objekttypen den Devices Adapter um diese erweitern und in diesem Zuge für ioBroker Standardisieren - Standard bezüglich Pflicht und Standard-optionalen States(z.B. SET, ACTIUAL, COLOR, STATE ...). Gern kann man überlegen dazu weitere States "nutzerdefiniert" hinzufügen zu lassen, die aber dann von den ganzen nutzenden Adaptern ignoriert werden!
Das ganze wird dann als alias angelegt. Zusätzlich speichern wir im "device"-Objekt die Information zum genutzten Template. Dann muss man das danach nicht nochmals raussuchen.
Das bringt uns schon mal einen großen Schritt weiter: In Adaptern wählt man das "Device" Objekt aus und alle Informationen sind bekannt und ebenso welcher State-Name in dem Device Objekt was bedeutet. So muss kein Adapter mehr raten. Dem Type-Detector können wir auch so beibringen alles viel besser zu erkennen. Der grosse Vorteil ist aber das Adapter wie z.B. iot das ganze dann auch sehr gut zu den relevanten Amazon bzw Google-typen zuordnen können.
Die "Magie" liegt nur darin die Templates sinnvoll zu defineren. (Und natürlich muss iot irgendwie noch Rückwärts-Kompatibel bleiben damit alles noch so funktioniert wie aktuell - aber hier könnte man durchaus einmalig mit einer neuen Version automatisch aus allen zugeordneten Smart-Devices einmalig kompatible ALias Objekte anlegen, sodass iot danach direkt damit arbeiten kann).
Weiterhin sind so angelegte Aliasse unabhängig von den originalen Objekten und ein solches Alias-Gerät kann bei einem Gerätewechsel einfach mit einem neuen Objekt-Mapping versehen werden und schon ist das Gerät getauscht - ohne das sich die Objekt-IDs des Alias-Geräts ändern.
Auch könnte man in den Templates (oder auch so generell) Objekte die im Admin nicht für "jedermann" angezeigt werden sollen über "common.expert=true" verstecken. Ein Objekt mit dieser Information wird seit Admin 3.4.8 nur noch im Expertenmodus angezeigt.Also ich habe noch nicht wirklich verstanden, wo die "Objekt Templates" sich von den "Types" unterscheiden, die wir aktuell im type-detector haben (außer, dass es viel mehr sind, wenn man Google/Alexa als Grundlage nimmt). Oder gibt es da gar keinen fundamentalen Unterschied?
Wäre dann das Neue dann "einfach" viel mehr Types zu haben und den Typ statisch im Device zu speichern? grübel
Beim aktuellen System muss man ja darauf achten, dass es keine Mehrdeutigkeiten gibt bzw. wenn es die gibt, dass die Erkennung in der richtigen Reihenfolge passiert. Das erscheint mir, wenn man das deutlich erweitert, als üble Fehlerquelle. Die wird entschärft durch den fixen Typ, der dann durch Devices-Adapter oder, wenn Schritt 2 kommt, vom original Adapter definiert wird. Gibt es dann keine automatisierte Erkennung mehr?
Grundsätzlich gefällt mir das Konzept von alias & type-detector ganz gut. Das fix im Device zu speichern finde ich sehr sinnvoll. Das sollte man ganz sicher weiter entwickeln und eine Geräteansicht als zentralen Bestandteil für die User platzieren.
-
@apollon77 Ich wollte eben einen Eintrag mit dem Typ Instanz erstellen, seit dem kann ich kein Gerät mehr hinzufügen weil ich nur noch eine weiße Seite bekomme - Reboot brachte auch nichts und im Log steht auch nichts
-
@Stephan-Schleich Typ Instanz??? Was wolltest Du damit ... ds ist reserviert für Adapter Instanzen!
Brower Konsole irgendein Fehler?
ggf an der Kommandozeile das Objekt wieder löschen -
@apollon77 hab mich verklickt, es wurde kein Objekt angelegt zumindest seh ich keins.
Wenn ich den Adapter lösch sind alle aliase weg, kann ich die davor sichern? -
@Stephan-Schleich Aliasse sind nicht weg wenn DU Devices löschst. Wie kommst Du darauf?
-
@apollon77 in den Objekten verschwindet doch immer alles was mit dem Adapter zu tun hatte, den man deinstalliert.
Edit: Das Problem lag am Browser, Chache gelöscht und jetzt gehts wieder, so sah es aus
-
@Stephan-Schleich Nur states die unter den Instanzobjekten des Adaters abgelegt sind. deviecs hat da nichts. Was sagt die Browser Konsole?
-
@apollon77 sagte in Devices, Alias, Assistenten + Visualisierungen + die Zukunft:
Browser Konsole
@apollon77 Achso okay - danke, wusste nicht das diese nicht zusammen hängen.
In der Browser Konsole hatte ich nicht nachgesehen als ich das Problem hatte, aber es lag am Browser Cache nun läufts wieder.Eine Frage noch sofern es hier rein gehört:
Ich hab meine Klimaanlage via Alias angebunden nun würde ich im selben Objekt gerne noch die IP mit dazu nehmen ohne extra ein neues Objekt anzulegen, theoretisch müsste es doch mit z.b. working gehen da der typ any ist oder? es kommt aber nur true als value und nicht die IP
-
@Stephan-Schleich Bitte nicht anfangen irgendwelche States zweck-zu-entfremden WORKIGN hat eine semantische Bedeutung
-
@apollon77 okay, könnte man ne Möglichkeit bieten selber weitere Felder mit hinzuzufügen bzw ein paar freie?