NEWS
[!!! Das Project !!!] Einen Adapter bauen ist nicht schwer
-
Wie oben schon angedeutet bin ich auch kein Fan von Videos. Dokumentation würde sich für mich aus folgenden Bestandteilen zusammensetzen:
- Schriftliche Schritt für Schritt Anleitung. Gern auch unterteilt in die verschiedenen Themenbestandteile von dutchman, so das ein Anfänger zu beginn theoretisch stupide Befehle und Code-Bestandteile zusammenkopieren kann, auch wenn er nicht alles sofort versteht. Evtl. auch Verweise zu den einzelnen Schritten zu der dokumentation von iobroker mit noch mehr Details. Am Ende hat man einen lauffähigen Adapter plus ein Widget und das Erfolgserlebnis, welches als Grundmotivation für den eigenen Adapter dient.
- gute Dokumentation der APIs von iobroker. Nach meinem Gefühl haben wir hier bei verschiedenen Komponenten noch Lücken.
- Zur Ergänzung der schriftlichen Schritt für Schritt Anleitung diese auch gern als Video. So kann sich jeder seine bevorzugte Contentmethode raussuchen, die sicherlich auch sich gegenseitig unterstützend existieren können. Die erprobten Schritt für Schritt-Anleitung sind dann auch gleich das Drehbuch für die Videos. Bei videos muss man auch dran denken, das durch zukünftige Releasewechsel bei iobroker bestimmte Videos wieder neu produziert werden müssen, um die Änderungen auch darzustellen.
- Weiter würde ich mir für Basic-Operationen Codeschnipsel als Referenz wünschen. Wenn man nach einem Thema sucht findet man im Forum immer verschiedene Implementierungsmöglichkeiten. Auch wenn man in den Adaptern sucht, findet man zur selben Aufgabe verschiedene Implementierungen. als Anfänger weiß man nicht, was ist nun gut, da auch die Api-Dokumente oft die Funktion benennt, aber nicht beschreibt und die Hintergründe erklärt.
Als Beispiel kann ich hier das Anlegen und Löschen von States und Objects anführen, wo ich selbst noch vor kurzem Probleme hatte (Datenpunkt kann zwar mit setState angelegt werden, aber nicht mit delState gelöscht werden, da beim anlegen automatisch das Objekt mit angelegt wird. Beim löschen des Status verschwindet zwar der Datenpunkt aus dem Objektbaum, aber das Objekt existiert immer noch. Beim erneuten Anlegen gibt es dann Effekte, die als Anfänger schwer durchschaubar sind. Auch die Abgrenzung der Begriffe Objekt, State, Device, Channel, deren Erzeugung, Änderung und Löschung sind Herausforderungen für Anfänger. - Forum gibt es ja schon und Find ich auch super. Allerdings werden viele Informationen, die wichtig für Anfänger sind nur im Forum beschrieben. uU gibt es dann über die Zeit wieder verschiedene uneinheitliche Lösungen, wo ein Anfänger wieder verunsichert. Bestimmte Informationen sollten in ein Wiki wandern oder in den Bereich der Musterlösungen/code-Schnipsel
Das wären für mich die 5 Säulen für eine gute Dokumentationsbasis nicht nur für Anfänger.
Als Beispiel kann ich die Dokumentation von Symfony mit den Bereichen Getting started, sowie "Tutorials and Guides" für spezielle Bereiche.Falls jemand das nicht so sieht, dann bin ich zur Diskussion gern bereit.
@OliverIO sagte in [!!! Das Project !!!] Einen Adapter bauen ist nicht schwer:
Wie oben schon angedeutet bin ich auch kein Fan von Videos. Dokumentation würde sich für mich aus folgenden Bestandteilen zusammensetzen:
Bin vol bei dir, brauche aber Hilfe mache auch gerne parallel dev-docu aber bitte um Hilfe bei der Schreibarbeit :astonished:
-
@OliverIO sagte in [!!! Das Project !!!] Einen Adapter bauen ist nicht schwer:
Wie oben schon angedeutet bin ich auch kein Fan von Videos. Dokumentation würde sich für mich aus folgenden Bestandteilen zusammensetzen:
Bin vol bei dir, brauche aber Hilfe mache auch gerne parallel dev-docu aber bitte um Hilfe bei der Schreibarbeit :astonished:
@Dutchman
ich könnte den Anteil zu einem Adapter und einem Widget schreiben..
Als UseCase-Vorschlag für einen einfachen Adapter + widget könnten wir
etwas nehmen ohne Hardwareabhängigkeit. Etwas was Daten aus dem Internet verwendet.Mit würde ein Adapter zum einlesen von Börsenkursen auf Basis der API von Yahoo Finance
vorschweben. die haben eine sehr einfache Schnittstelle für historische Daten abrufbar als CSV -
@Dutchman
ich könnte den Anteil zu einem Adapter und einem Widget schreiben..
Als UseCase-Vorschlag für einen einfachen Adapter + widget könnten wir
etwas nehmen ohne Hardwareabhängigkeit. Etwas was Daten aus dem Internet verwendet.Mit würde ein Adapter zum einlesen von Börsenkursen auf Basis der API von Yahoo Finance
vorschweben. die haben eine sehr einfache Schnittstelle für historische Daten abrufbar als CSV@OliverIO sagte in [!!! Das Project !!!] Einen Adapter bauen ist nicht schwer:
ich könnte den Anteil zu einem Adapter und einem Widget schreiben..
das waehre super cool !
-
Sehr geiles Thema, wenn die Zeit es zu lässt verfolge ich das ganze auf jeden Fall. Ich schätze deinen Ehrgeiz und deine Geduld, ich glaube du kannst uns gut zum Ziel führen. Bin echt gespannt.
-
Hi Leute,
Ich habe es mir als persönliches ziel, bereits vor langer zeit, Gesetzt um der community auf alle mögliche art und weise mit meinen entstandenen wissen zu unterstützen.
Neben viele Sachen die letzten Jahre, die hauptsächlich im forum und support stattgefunden haben, ist es zeit fur mich ein neues project zu starten.
Ich lade euch alle herzlich ein daran mit zu machen, das Thema lautet
"Einen Adapter bauen ist nicht schwer"
Ein par details dazu, und fragen and die community befahr wir loslegen können :
-
Was ist das ziel diese Projektes
Ziel 1 : "Die Einrichtung einer effizienten entwickel Umgebung mit alles basis Elementen die man zum adapter bauen braucht"
Ziel 2 : "Verstehen was man fur unterschiede beachten muss javascript VS adapter"
Ziel 3 : "Einen neue adapter bauen der GPS daten per API abfragt, und in ioBroker states verarbeitet"
Ziel 4 : "Eine template repository bauen (danke @Jey-Cee) wo wir gelerntes/templates hinterlegen damit jeder es benutzen kann"
Ziel 4 : "Schwarm wissen, ich würde mich sehr freuen wen sich leute anschließen und Sachen die wir hier lernen weiter treiben. Ich alleine erreiche und schaffe nicht die Welt :)" -
Wie stellst du dir das vor ?
Es werden Themen spezifisch video tutorials von mir erstellst wo ich schritt fur schritt Themen Gebiete behandeln werde.
Diese videos haben eine dauern von 10 bis maximal 20 Minuten und werden immer eine Kategorie vollständig behandeln.
Bedeutet : wen ihr die Serien von Anfang bis ende durchnimmt, werdet ihr selber einen adapter entwickelt haben nach Beispiel in der video Vorlage.
- Welche Themen wird es geben ( ich bitte um Vorschläge zur Ergänzung ! )
Teil Thema Lernziel 1 Wie setze ich meine entwickel Umgebung auf ioBroker Dev Umgebung, Visual Studio Code und git 2 Das erste Grundgerüst eines adapters Neuen adapter erstellen mit dem creator und einrichten 3 Was sind die basis Funktionen beim adapter bau Einweisung in wichtige Funktionen 4 Die ersten daten verabeiten Einweisung in variablen und erstellen von states mit information 5 Was muss ich beachten beim bauen eines adapter Best practices und reference zu wichtiger ioBroker Dev doc 6 Es lebt, ein adapter holt daten aus dem internet (JSON API) Wie kann ich mit einem adapter Daten auslesen 7 Es lebt, wie kann ich reagieren auf Änderungen von states Wie kann ich auf Änderungen reagieren und was heist Acknowledged 8 Es lebt, die Konfigurationsoptionen Eine config Seite bauen und Einstellungen an den adapter übertragen 9 Euh, von blocky nach adapter geht das ? Aus blocky lernen wie man den code umsetzt nach Javascript / adapter 10 GitHub und version management Wie release ich einen adapter, manage ich die Versionen auf GitHub und NPM 11 Gewusst wie, einen bestehenden Adaptern ändern Code in eigene repo bearbeiten und per pull request die aenderung anbieten Damit haben wir das Resultat : Ich habe selber einen adapter gebaut der daten aus dem internet abfragt, in states schreibt und ich darauf reagieren kan.
Ich bin offen fur Änderungen und wünschen bitte melden wo der Bedarf liegt !
-
Warum machst du das ?
Ich persönlich habe vor über 4 Jahren mit ioBroker angefangen, bis vor 2 Jahren war Skripten fur mich Grauzone.
Nachdem ich mit blocky vor 2 jähren angefangen haben, hat mich der Ehrgeiz erwischt.
Inzwischen darf ich 11 adapter auf meinem Konto zählen und mindest an 5 weiteren mitgearbeitet :) -
Cool, kann ich beitragen
Ja ! Jeglicher feedback, wünsche oder Hilfe beim erstellen der doc, template repo oder "runbook" nehmen wir warmen Händen an !
Keine angst, wir beiden nicht und helfen auch ! -
Bleibt es bei video's ....
NEIN ! Sagt der Dutch da mal grob, fur diejenigen die lust haben lade ich euch ein eine telegram Gruppe bei zu treten wo wir fragen/antworden austauschen können.
Zusätzlich bin ich oft im Sprachchat und auch da gerne bereit wissen zu teilen/helfen wo möglich -
Wird es auch Seminare oder group session geben
Je nach anfrage, JA!
Ich bin bereit zu festen Zeitpunkten sessions zu organisieren im Webex wo wir zusammen diskutieren können über die videos oder Sachen einander zeigen/fragen stellen
Ich motechte diese project innerhalb der naesten 2 Wochen anfangen, wir dan insgesamt bestimmt 2-6 Wochen beanspruchen bis wir komplett durch sind.
Darum jetzt die frage :
- Macht es sinn ?
- Seit ihr dabei ?
- Hebt ihr noch Vorschläge ?
Na dan, man sieht und hört sich ... Let's do it !
-
-
Finde die Idee auch super. Dann kann ich mein Hobby ja noch intensiver gestalten. :D
-
Hi All !
Gibt es noch Ergänzungen zur oben genannten liste, sonst wuerde ich naemlich anfangen gezielt zu planen wan ich was abarbeiten kan :)
-
Hi All !
Gibt es noch Ergänzungen zur oben genannten liste, sonst wuerde ich naemlich anfangen gezielt zu planen wan ich was abarbeiten kan :)
@Dutchman sagte in [!!! Das Project !!!] Einen Adapter bauen ist nicht schwer:
Gibt es noch Ergänzungen zur oben genannten liste, sonst wuerde ich naemlich anfangen gezielt zu planen wan ich was abarbeiten kan
Zu Punkt 1 VsCode und Git, wär mir persönlich hilfreich wenn auch so Themen wie Versionsverwaltung und branches angesprochen werden. Bis dahin kommt man mit Netz Tutorials recht schnell und einfach, ab da fängts dann das haken an.
-
Hi All !
Gibt es noch Ergänzungen zur oben genannten liste, sonst wuerde ich naemlich anfangen gezielt zu planen wan ich was abarbeiten kan :)
@Dutchman ich habe mich just heute gefragt, welche Grundvoraussetzungen man haben muss...gehört das Wissen um JavaScript dazu? Dann wäre es gut, das als Voraussetzung irgendwo zu sehen. Wenn nein, wäre es auch gut, dass irgendwo zu sehen, dass es nicht so ist :)
-
@Dutchman ich habe mich just heute gefragt, welche Grundvoraussetzungen man haben muss...gehört das Wissen um JavaScript dazu? Dann wäre es gut, das als Voraussetzung irgendwo zu sehen. Wenn nein, wäre es auch gut, dass irgendwo zu sehen, dass es nicht so ist :)
@Kueppert
Da die Adapter programmiert werden müssen und nicht nur zusammengecklickt werden können.
Sind zwingend mindestens Kenntnisse in Javascript oder alternativ Typescript notwendig.
Dutchman kann das in einer Einleitung sicherlich erwähnen.Weitere Kenntnisse hängen natürlich stark davon ab, was man umsetzen möchte.
-
für Admindialog wären das dann noch Javascript + HTML + CSS
-
für Widgets ebenfalls Javascript + HTML + CSS + tiefere Kenntnisse von der Funktionsweise in vis
-
für Adapter die Hardware anbinden wollen dann Kenntnisse zu den APIs der Hardware oder Scraping von evtl. vorhandenen Weboberflächen oder verschiedenen Kommunikationsprotokollen (ajax, websockets, TCP, etc.)
-
Falls für die Hardware oder anzubindende Datenprovider keine Dokumentation vorhanden ist, dann Kenntnisse wie Reengineering funktioniert. aber das geht schon sehr tief ins eingemachte.
-
Basisskills wären für mich dann noch sicherer Umgang mit dem jeweiligen Betriebssystem.
-
Kenntnisse zum Versionskontrollsystem git
-
Kenntnisse über die Dateien in iobroker (in welchem Verzeichnis liegt welche Art von Datei)
-
-
@Kueppert
Da die Adapter programmiert werden müssen und nicht nur zusammengecklickt werden können.
Sind zwingend mindestens Kenntnisse in Javascript oder alternativ Typescript notwendig.
Dutchman kann das in einer Einleitung sicherlich erwähnen.Weitere Kenntnisse hängen natürlich stark davon ab, was man umsetzen möchte.
-
für Admindialog wären das dann noch Javascript + HTML + CSS
-
für Widgets ebenfalls Javascript + HTML + CSS + tiefere Kenntnisse von der Funktionsweise in vis
-
für Adapter die Hardware anbinden wollen dann Kenntnisse zu den APIs der Hardware oder Scraping von evtl. vorhandenen Weboberflächen oder verschiedenen Kommunikationsprotokollen (ajax, websockets, TCP, etc.)
-
Falls für die Hardware oder anzubindende Datenprovider keine Dokumentation vorhanden ist, dann Kenntnisse wie Reengineering funktioniert. aber das geht schon sehr tief ins eingemachte.
-
Basisskills wären für mich dann noch sicherer Umgang mit dem jeweiligen Betriebssystem.
-
Kenntnisse zum Versionskontrollsystem git
-
Kenntnisse über die Dateien in iobroker (in welchem Verzeichnis liegt welche Art von Datei)
-
-
@OliverIO puuuh, scheiße...damit verschreckst jetzt mit Sicherheit den einen oder anderen :confounded: :grin:
-
@Dutchman sagte in [!!! Das Project !!!] Einen Adapter bauen ist nicht schwer:
Gibt es noch Ergänzungen zur oben genannten liste, sonst wuerde ich naemlich anfangen gezielt zu planen wan ich was abarbeiten kan
Zu Punkt 1 VsCode und Git, wär mir persönlich hilfreich wenn auch so Themen wie Versionsverwaltung und branches angesprochen werden. Bis dahin kommt man mit Netz Tutorials recht schnell und einfach, ab da fängts dann das haken an.
@Pittini sagte in [!!! Das Project !!!] Einen Adapter bauen ist nicht schwer:
Zu Punkt 1 VsCode und Git, wär mir persönlich hilfreich wenn auch so Themen wie Versionsverwaltung und branches angesprochen werden.
Danke fürs feedback, wird behandelt in vid 10 :)
@Kueppert sagte in [!!! Das Project !!!] Einen Adapter bauen ist nicht schwer:
@Dutchman ich habe mich just heute gefragt, welche Grundvoraussetzungen man haben muss...gehört das Wissen um JavaScript dazu? Dann wäre es gut, das als Voraussetzung irgendwo zu sehen. Wenn nein, wäre es auch gut, dass irgendwo zu sehen, dass es nicht so ist
Hmm gute frage, sagen wir mal so wir entwickeln auf NodeJS also ja Javascript (Nicht java) sollte man mitbringen oder halt interessiert werden.
Ich werde hierin in meinem erste vid eingehen
@OliverIO sagte in [!!! Das Project !!!] Einen Adapter bauen ist nicht schwer:
@Kueppert
Da die Adapter programmiert werden müssen und nicht nur zusammengecklickt werden können.
Sind zwingend mindestens Kenntnisse in Javascript oder alternativ Typescript notwendig.
Dutchman kann das in einer Einleitung sicherlich erwähnen.Weitere Kenntnisse hängen natürlich stark davon ab, was man umsetzen möchte.
-
für Admindialog wären das dann noch Javascript + HTML + CSS
-
für Widgets ebenfalls Javascript + HTML + CSS + tiefere Kenntnisse von der Funktionsweise in vis
-
für Adapter die Hardware anbinden wollen dann Kenntnisse zu den APIs der Hardware oder Scraping von evtl. vorhandenen Weboberflächen oder verschiedenen Kommunikationsprotokollen (ajax, websockets, TCP, etc.)
-
Falls für die Hardware oder anzubindende Datenprovider keine Dokumentation vorhanden ist, dann Kenntnisse wie Reengineering funktioniert. aber das geht schon sehr tief ins eingemachte.
-
Basisskills wären für mich dann noch sicherer Umgang mit dem jeweiligen Betriebssystem.
-
Kenntnisse zum Versionskontrollsystem git
-
Kenntnisse über die Dateien in iobroker (in welchem Verzeichnis liegt welche Art von Datei)
@OliverIO sagte in [!!! Das Project !!!] Einen Adapter bauen ist nicht schwer:
Dutchman kann das in einer Einleitung sicherlich erwähnen.
ich danke dir schön erklärt und summiert :)
@Kueppert sagte in [!!! Das Project !!!] Einen Adapter bauen ist nicht schwer:
@OliverIO puuuh, scheiße...damit verschreckst jetzt mit Sicherheit den einen oder anderen :confounded: :grin:
nix da, est mal sehen und dan schauen ! :)
Tip : Thema 9 Euh, von blocky nach adapter geht das ?@OliverIO sagte in [!!! Das Project !!!] Einen Adapter bauen ist nicht schwer:
@Kueppert
ja, aber bei adapter bauen verlassen wir die klickediklick weltund wer da einmal raus ist, möchte nicht mehr zurück da es so viel mehr Möglichkeiten gibt.
Aber jeder muss ja mal anfangen, auch bei mir war der start blockly ;) -
-
@Dutchman ich habe mich just heute gefragt, welche Grundvoraussetzungen man haben muss...gehört das Wissen um JavaScript dazu? Dann wäre es gut, das als Voraussetzung irgendwo zu sehen. Wenn nein, wäre es auch gut, dass irgendwo zu sehen, dass es nicht so ist :)
@Kueppert
Ich behaupte mal, alle die schonmal irgendwas programmiert haben, werden sich relativ schnell einarbeiten können.Alle die hier ihre advanced Blockys logisch verstehen, werden sich an den Gedanken gewöhnen müssen, dass sie halt was tippen müssen (obwohl man mit Codevervollständigung auch recht viel klicken bzw. auswählen und einfügen kann :-) ).
Das Adapterspezifische (also API oder so) muss man sich eh jedesmal neu aneignen -> daher, wer sich gerne selber was neues aneignet ist sicher mit dem allerwichtigsten ausgestattet. :-)
-
Da bin ich doch glatt dabei.
Ich möchte mal behaupten, Javascript kann man sich mit diversen Büchern oder Tutorials im Netz aneignen. Meist hangelt man sich dann von Befehl zu Befehl, bis es irgendwann in Fleisch und Blut übergeht.
Das Umsetzen eines Adapters ist dann aber eine ganz andere Sache, hatte mir das vor zwei Jahren mal angesehen und offen gesagt nur Bahnhof verstanden. Es ist wirklich schön, wenn jemand einem das Ganze mal Schritt für Schritt zeigt.
Die Wunschliste ist schon recht lang, daher will ich hier gar nicht groß Wünsche einbringen, ich fände es allerdings toll wenn an Stellen, wo es im eigentlichen Adapter kompliziert wird, evtl. Beispiele aus anderen Adaptern mit eingebracht werden, um hier direkt zu sehen, wo die Unterschiede sind.
-
Da bin ich doch glatt dabei.
Ich möchte mal behaupten, Javascript kann man sich mit diversen Büchern oder Tutorials im Netz aneignen. Meist hangelt man sich dann von Befehl zu Befehl, bis es irgendwann in Fleisch und Blut übergeht.
Das Umsetzen eines Adapters ist dann aber eine ganz andere Sache, hatte mir das vor zwei Jahren mal angesehen und offen gesagt nur Bahnhof verstanden. Es ist wirklich schön, wenn jemand einem das Ganze mal Schritt für Schritt zeigt.
Die Wunschliste ist schon recht lang, daher will ich hier gar nicht groß Wünsche einbringen, ich fände es allerdings toll wenn an Stellen, wo es im eigentlichen Adapter kompliziert wird, evtl. Beispiele aus anderen Adaptern mit eingebracht werden, um hier direkt zu sehen, wo die Unterschiede sind.
-
Das kann ich dir sagen, wenn ich die Adapter Entwicklung verstanden habe. Die Jungs und Mädels, die da drin fit sind, werden schon wissen, wo es kompliziert werden könnte.
In meinen Augen sind das meistens Stellen, wo irgendwelche Übergaben oder Definitionen gemacht werden.
Um jetzt mal ein Beispiel zu nennen gehe ich mal vom Adapter weg und ins reine Programmieren, dort sind es dann so stellen wie einlesen aus Datei vs einlesen von Datein aus dem Web.
Halt Dinge, wo es kleine Stolpersteine gibt, die den Einsteiger direkt zum scheitern bringen, weil er "denkt" er hat es verstanden, hat er aber eigentlich doch nicht.