NEWS
Domiq Base Adapter
-
Hi,
ich bin quasi neu hier, nutze ioBroker seit kurzer Zeit und habe mich an einem Adapter versucht. Da ich mich zuvor weder mit technischen Details von ioBroker, noch Javascript, noch Node oder dergleichen auseinandergesetzt habe, ist ein erstes Release nach einer Woche fertig geworden. Das war möglich, weil wirklich sehr viel Dokumentation vorhanden ist. Daher erstmal ein dickes Danke an alle, die dazu beigetragen haben!
Der Domiq Base Adapter ist sicher ein Adapter für die Nische, es wird vermutlich nicht viele LCN Kunden geben und nicht alle davon haben ein Domiq Base. Aber vielleicht kann ihn ja doch der Eine oder Andere brauchen.
Er ist seit gestern im produktiven Betrieb, aber ich freue mich natürlich über Feedback. Falls jemand ein oberflächliches Code Review durchführen möchte, dann gerne, weil ich nicht garantieren kann, dass im Code kein Schmutz vorhanden ist.
https://github.com/crosenbe/ioBroker.domiqbase
Der Adapter ist noch nicht veröffentlicht, da konnte ich noch Zeit investieren und ich wollte auch erst abwarten, ob ihn überhaupt jemand brauchen kann und ob es Feedback dazu gibt.
-
@administrators
Möchte bitte jemand meinen Post in den deutschen Bereich Entwicklung verschieben? Ich habe bemerkt, dass ich eine falsche Kategorie gewählt habe. -
@claus ist es hier auch recht?
-
@homoran
Sicher, ich bin nicht anspruchsvoll -
Meine Implementierung weist in der Praxis Schwächen auf, die ich gerne beseitigen möchte. Ein Domiq Base stellt sogenannte Channel zur Verfügung, was bei ioBroker in etwa States entspricht. Die Schnittstelle ist aber recht einfach gehalten, d.h. ich bekommt nur Key=Value zurück, ohne weitere Informationen wie Datentyp. Aus den Keys geht aber in einigen Fällen der Datentyp hervor. Ziel ist ja nicht nur, den LCN Bus über das Base zu steuern, sondern auch ioBroker States zu verändern. Dazu müssen diese aber als Paare hinterlegt werden, damit bei einem eingehenden Event auf einem DomiqBase Adapter State ein Update auf das ForeignState gemacht wird. Implementieren lässt sich das vermutlich eher schnell, ich bin mir aber unsicher, wie man es am besten im Admin UI löst. Denn es gäbe dann eine lange Liste, man müsste quasi die Domiq Base Channel individuell mit ioBroker States mappen. Meine Fragen hierzu.
- Gibt es für so etwas eine "best practice"?
- Was ist die beste Methode, um aus vorhanden States auszuwählen? Ich würde eine Liste befüllen wollen, wo auch die Datentypen zusammenpassen. Ein Dropdown erscheint mir aber bei der Menge an Objekten sehr unübersichtlich.
- Gibt es ggf. einen Adapter, wo so etwas ähnliches schon implementiert wurde?
Natürlich könnte man auch einfach die States liefern und das Mapping über Scripte außerhalb des Adapter machen. Dann muss sich aber jeder Nutzer des Adapter selbst darum kümmern, was wenig komfortabel erscheint.
-
Wie bekommt man aus der Admin UI eine Auswahl aller States, so wie es in Blockly der Fall ist, wenn man eine Object ID auswählt?
-
@claus said in Domiq Base Adapter:
Wie bekommt man aus der Admin UI eine Auswahl aller States, so wie es in Blockly der Fall ist, wenn man eine Object ID auswählt?
Falls dieser Adapter funktioniert, bitte eine Aufnahme in die Repositories anregen.
Für alle NICHT TESTER bitte das Nachfolgende beachten - da der Adapter nun schon einige Zeit nur via Github verfügbar ist besteht die "Gefahr" dass er auch produktiv eingesetzt werden könnte daher ausnahmsweise auch im tester Bereich die Standardinfo. Für ALPHA Tester bzw. erfahrene ioBroker User/Tester ist eine Github Installation natürlich auch in Ordnung.
Von direkten Installation von GitHub - insbesondere auf produktiven Systemen - wird explizit abgeraten.
GitHub Versionen können sich jederzeit (auch kurzfristig) ändern und durchaus auch in sich inkonsistent und fehlerhaft sein. Versionsangaben von GitHub Installationen sind Schall und Rauch da die Versionsnummer zumindest bei Verwendung der standardmäßigen Umgebung erst im Zuge der Releaseerstellung geändert wird.
Auf explizite Aufforderung durch den Entwickler kann eine GitHub Installation zur Fehlereingrenzung oder zum Test neuer Funktionalität - unter Inkaufnahme des erhöhten Risikos - natürlich erfolgen.
Adapter die nur via GitHub oder npm (also NICHT aus einem der beiden Repositories) installierbar sind sind mit erhöhter Vorsicht zu betrachten. Hier sollte der Entwickler drum ersucht werden eine Aufnahme in die Repositories zu veranlassen indem z.B. ein Issue im Adapterrepository erstellt wird.
Und falls es irgendwie unklar ist:
ioBroker unterstützt folgende Arten von Installation:
-
aus dem STABLE Repository
Das sind Adapter Releases die keine groben Fehler aufweisen (sollten). Natürlich kann es auch dort Fehler geben, die Behebung davon obliegt dem jeweiligen Dev und kann ggF auch dauern.
-
aus dem LATEST Repository
Das sind Adapter Releases die neu erstellt wurden und nur rudimentär getestet sind - oft auch als BETA Releases bezeichnet. Releases aus dem LATEST sind primär für unsere zahlreichen freiwilligen Tester gedacht. BETA / LATEST Releases können durchaus Fehler aufweisen - auch wenn ich davon ausgehe dass jeder aintainer dies zu vermeiden versucht. Vom Einsatz auf produktiven Systemen wird abgeraten außer man braucht irgenein neues Feature (z.B. neues Gerät) unbedingt. Hier muss dann jeder Entscheiden was ihm wichtig ist.
-
direkt von GITHUB
Von Installationen direkt aus Giuthub wird definitiv abgeraten außer auf Anweisung des Maintainers und für den Fall dass man gemeinsam mit diesem etwas testen will. Details siehe oben.
-
direkt von npm
Diese Installation kann erforderlich sein, wenn man eine bestimmte Version installieren möchte / muss. Im Normalfall sollte man direkte npm Installationen ebenso meiden wie direkte GitHub Installationen - ausgenommen um z.B. zu einer bekannten Version downzugraden - obwohl hier wenigstens ein definierter Stand garantiert ist.
Adapter die NUR via npm und/oder nur via GitHub installierbar sind sollte man meiden - diese wurden nicht mal einem rudimentären Review unterzogen und sollten mit dem Attribut "vollständig auf eigenes Risiko verwenden" installiert werden. Hier empfiehlt es sich den Developer zu ersuchen eine Aufnahme in die Repos zu veranlassen. Wenn dieser darauf nicht reagiert sollte man von einer eher kurzen und unklaren Lebensdauer des Adapters ausgehen. Support meiner-/unsererseits für solche Adapter ist mit sicherheit minimalistisch.
@mcm1957
CommentLeave a comment
Footer
-