NEWS
"Homematic Manager Adapter" First Steps
-
Morgen,
bin gerade am "Sichten" welche Möglichkeiten wir mit einer Homematic GUI in ioBroker haben.
Dabei bin ich auf Homematic Manager von HobbyQuaker gestossen.
Fragen:
Wäre ein einfacher ioBroker Adapter denkbar der einfach einen "redirect" auf einen Homematic Manager Instance macht? So wie Vis oder NodeRed.
Gibt es schon eine Entwicklung in der Richtung? (Also Homematic GUI für ioBroker)
Lizenz Fragen:
Erlaubt die Lizenz "Copyright 2014 Anli, Hobbyquaker" überhaupt eine Weiterverwendung/Weiterentwicklung?
Danke
Steve
-
Hallo,
also anbei meine ersten "Gehversuche" mit einem Homematic Manager Adapter kurz HMM Adapter. Das Ganze erstmal ohne Git Anbindung und einfach mal lokal.
-
Aus dem Verzeichnis "/opt/iobroker/node_modules/iobroker.js-controller/adapter/example/" den Beispiel Adapter in ein neues Verzeichnis "/opt/iobroker/node_modules/iobroker.hmm" kopieren.
-
Im Verzeichnis /opt/iobroker/node_modules/iobroker.hmm das File io-package.json entsprechend anpassen, d.h. den Adapternamen passend zum Adapterverzeichnis richtig setzen. Also hmm in unserem Fall.
-
Das File example.js in hmm.js umbenennen und dann darin die Zeile "var adapter = utils.adapter('hmm');" ebenfalls anpassen.
-
Nach einem "refresh" in der ioBroker.admin GUI müßte nun ein neuer HMM Adapter auftauchen.
-
Jetzt eine HMM Instance erzeugen.
Voila, so einfach ist ioBroker Adapter Programmierung!
Nein, war ein Spässchen…sobald ich weiter probiert habe gibt es eine Fortsetzung.
Steve
-
-
Morgen,
bin gerade am "Sichten" welche Möglichkeiten wir mit einer Homematic GUI in ioBroker haben.
Dabei bin ich auf Homematic Manager von HobbyQuaker gestossen.
Fragen:
Wäre ein einfacher ioBroker Adapter denkbar der einfach einen "redirect" auf einen Homematic Manager Instance macht? So wie Vis oder NodeRed.
Gibt es schon eine Entwicklung in der Richtung? (Also Homematic GUI für ioBroker)
Lizenz Fragen:
Erlaubt die Lizenz "Copyright 2014 Anli, Hobbyquaker" überhaupt eine Weiterverwendung/Weiterentwicklung?
Danke
Steve `
Die Integration sollte ohne Probleme möglich sein. (Steve hat schon gerade die hälfte gemacht )Lizenz ist CC BY-NC-SA 4.0. (Frei für nicht kommerzielle Nutzung).. Sollte auch möglich sein, aber nur für Zuhause.
-
Morgen,
leider ist mir die Architektur der ioBroker Adapter immer noch nicht ganz klar, obwohl ich mir alle ioBroker Adapter Sourcen angesehen habe (na ja, wohl eher überflogen).
Deswegen kurz ein paar Fragen:
-
Gibt es eine Doku wie man aus einem eigenen ioBroker Adapter ein NPM Installations Packet erzeugt? Ich denke dies steckt im Gruntfile.js?
-
Welche Architektur/Pattern steckt in ioBroker und seinen Adaptern? Ein paar Stichpunkte reichen natürlich.
Danke schon mal für die Zeit zum beantworten der Adapter Fragen. Um allen/mir einen Einstieg in die Adapter Programmierung zu geben sind sie wohl leider notwendig. Trotz meiner einjährigen Hobby Javascript Programmier Erfahrung ist da eine gewisse "Hürde" bzw. Herausforderung.
Wenn ich damit fertig bin, wäre ich bereit ein "How to" zur Adapter Programmierung zu erstellen, falls es jemand interessiert. Sogar auf Englisch!
cu
Steve
-
-
Hab mal versucht nach dieser Anleitung einen HMM Adapter zu bauen.
Variablen hab ich alle drinnen, bin grad dabei, noch eigene Instanzen anzulegen.
Dann geht es daran, den hm-manager.js so umzubauen, das er über ioBroker startbar ist.
Wenn ich fertig bin, gebe ich Bescheid.
-
So, weiter geht's, der Prozess des HMM lässt sich schon mal von ioBroker aus stoppen und starten.
Jetzt geht's an die Ablage / Abfrage der richtigen Konfiguration.
-
So, Config wird richtig gebaut, funktioniert auch wunderbar mit "Änderungen zur Laufzeit".
Jetzt aber eine blöde Frage, ist es möglich, bestehende Instanzen (in diesem Fall hm-rpc) abzufragen, welche Config
dort beinhaltet ist?
Weil dann könnte ich gleich direkt die bestehenden hm-rpc Adapter einbinden und müsste diese nicht doppelt konfigurieren.
-
Anbei mal eine Ansicht der Admin Einstellungen des Adapters.
301_admin-console.png -
Hallo versteckt,
na Du legst ein Tempo hin…
Leider kann ich dir (momentan) nicht direkt weiterhelfen. Bin gerade dabei mit Webstorm mir eine Entwicklungsumgebung aufzubauen.
Fragen:
Wie könnte man den Sourcecode sharen?
Was nutzt Du zum entwickeln? Ich hoffe nicht vi.
Danke
Steve
-
So, Config wird richtig gebaut, funktioniert auch wunderbar mit "Änderungen zur Laufzeit".
Jetzt aber eine blöde Frage, ist es möglich, bestehende Instanzen (in diesem Fall hm-rpc) abzufragen, welche Config
dort beinhaltet ist?
Weil dann könnte ich gleich direkt die bestehenden hm-rpc Adapter einbinden und müsste diese nicht doppelt konfigurieren. `
Du kannst hm-rega abschauen.https://github.com/ioBroker/ioBroker.hm … index.html
Es gibt schon fertige Funktion:
`var instances = {}; getAdapterInstances('hm-rpc', function (arr) { var count = arr.length; for (var i = 0; i < arr.length; i++) { getObject('system.adapter.' + arr[i], function(err, obj) { instances[obj._id] = obj; count--; if (!count) { // finished, do something with your array console.log(JSON.stringify(instances)); } } } console.log(JSON.stringify(arr)); }` [/i]
-
…oder vielleicht doch.
Die Konfiguration von Adaptern steht doch in einem ibBroker Object wie hm-rpc oder system.adapter.hm-rpc?
Steve
-
…oder vielleicht doch.
Die Konfiguration von Adaptern steht doch in einem ibBroker Object wie hm-rpc oder system.adapter.hm-rpc?
Steve `
Die steht in "system.adapter.hm-rpc.X", wo X Instanznummer ist. -
Im Moment benutze ich noch Xcode, bin ja auf Apple unterwegs.
Muss erst mal schauen, inwiefern ich Eclipse einsetze. Komm ja noch aus der C bzw. Java Schiene, ist halt auch schon 12 Jahre her.
Werde mal versuchen die Objekte so auszulesen und dann mal ein Paket schnüren, damit es alle nutzen können.
-
- Gibt es eine Doku wie man aus einem eigenen ioBroker Adapter ein NPM Installations Packet erzeugt? Ich denke dies steckt im Gruntfile.js? `
Nein. Das ist allein package.json.
-
Erst Account auf https://www.npmjs.com/ erzeugen.
-
Danach````
npm init
- Danach packet.json ergänzen ([https://docs.npmjs.com/files/package.json](https://docs.npmjs.com/files/package.json) oder bei anderen Adapter abschauen) -```` npm publish
ioBroker Adapters müssen immer mit "iobroker." anfangen, sonst werden die ignoriert beim start.
- Welche Architektur/Pattern steckt in ioBroker und seinen Adaptern? Ein paar Stichpunkte reichen natürlich. `
Example ist gar nicht so schlecht um zu verstehen wie einen Adapter funktioniert. Ich suche immer noch die Inspiration für ADAPTER.md :?
- Gibt es eine Doku wie man aus einem eigenen ioBroker Adapter ein NPM Installations Packet erzeugt? Ich denke dies steckt im Gruntfile.js? `
-
Bin die Woche ziemlich ausgelastet, werde also erst am Samstag versuchen die Daten hochzuladen.
Gesendet von meinem iPhone mit Tapatalk
-
Bin heute mal ein Stück weitergekommen:
Es werden nun automatisch alle hm-rpc Objekte in die Admin Seite geladen.
Somit muss man diese nicht manuell reinkonfigurieren.
Das Thema mit npm Install kommt dann als nächstes dran, hatte heute schon mal Zeit mich ein wenig einzulesen.
-
Es ist vollbracht, eine initiale Version des iobroker.hmm ist in Git bzw. npm zu finden.
Bitte nicht erschlagen, es ist noch nichts dokumentiert und sicherlich Fehler behaftet.
Ausserdem sind beide Abhängigkeiten im Git mitdrinnen.
Könnt ihr trotzdem mal versuchen diesen zu installieren (im ioBroker Root-Dir einfach "npm install iobroker.hmm" eingeben)?
Dann weiss ich zumindest gleich mal, was ich alles noch machen muss.
-
Und gleich eine Installationsanleitung hinterhergeschossen GG:
cd IOBROKERDIR
npm install iobroker.hmm
cd node_modules/iobroker.hmm/node_modules
curl -o master.zip https://codeload.github.com/hobbyquaker … zip/master
unzip master.zip
rm master.zip
mv homematic-manager-master homematicmanager
cd homematicmanager
npm install
Danach in der Admin Seite den Adapter hinzufügen.
Dieser muss dann noch konfiguriert werden.
Ich habe die RPC Listen IP immer auf ein physikalisches Interface gesetzt.
Wenn bereits hm-rpc Adapter da sind, werden diese in der Liste automatisch gesetzt.
Falls kein hm-rpc Adapter aktiv ist, müssen folgende Parameter gesetzt werden:
Name: Ein aussagekräftiger Name
Type: BidCos-RF
IP: Die IP-Adresse des Homegear / CCU2
Port: 2001
isCcu: true
init: true
-
ich habs versucht:
root@quad-pi:/opt/iobroker# npm install iobroker.hmm npm http GET https://registry.npmjs.org/iobroker.hmm npm http 200 https://registry.npmjs.org/iobroker.hmm npm http GET https://registry.npmjs.org/iobroker.hmm/-/iobroker.hmm-0.0.6.tgz npm http 200 https://registry.npmjs.org/iobroker.hmm/-/iobroker.hmm-0.0.6.tgz npm http GET https://registry.npmjs.org/fs.notify npm http 200 https://registry.npmjs.org/fs.notify npm http GET https://registry.npmjs.org/retry npm http GET https://registry.npmjs.org/async npm http 200 https://registry.npmjs.org/async npm http 200 https://registry.npmjs.org/retry iobroker.hmm@0.0.6 node_modules/iobroker.hmm └── fs.notify@0.0.4 (retry@0.6.1, async@0.1.22) root@quad-pi:/opt/iobroker# cd node_modules/iobroker.hmm/node_modules root@quad-pi:/opt/iobroker/node_modules/iobroker.hmm/node_modules# curl -o master.zip https://codeload.github.com/hobbyquaker ... zip/master % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 21 100 21 0 0 33 0 --:--:-- --:--:-- --:--:-- 46 curl: (6) Couldn't resolve host '...' curl: (6) Couldn't resolve host 'zip' root@quad-pi:/opt/iobroker/node_modules/iobroker.hmm/node_modules# unzip master.zip Archive: master.zip End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. unzip: cannot find zipfile directory in one of master.zip or master.zip.zip, and cannot find master.zip.ZIP, period. root@quad-pi:/opt/iobroker/node_modules/iobroker.hmm/node_modules# rm master.zip root@quad-pi:/opt/iobroker/node_modules/iobroker.hmm/node_modules# mv homematic-manager-master homematicmanager mv: Aufruf von stat für „homematic-manager-master“ nicht möglich: Datei oder Verzeichnis nicht gefunden root@quad-pi:/opt/iobroker/node_modules/iobroker.hmm/node_modules# cd homematicmanager -bash: cd: homematicmanager: Datei oder Verzeichnis nicht gefunden root@quad-pi:/opt/iobroker/node_modules/iobroker.hmm/node_modules# npm install npm WARN package.json iobroker.hmm@0.0.6 No repository field. root@quad-pi:/opt/iobroker/node_modules/iobroker.hmm/node_modules#
sagt dir das was?
-
Ja, die URL ist falsch.
Kopiere sie dir bitte mit "rechter Maustaste | Copy Link (oder was auch immer).
Wenn du den Text so kopierst, kopiert er die URL mit …