NEWS
Adapter Entwicklung - eigener Adapter
-
Hallo,
ich versuche mich derzeit an einem eigenen Adapter und stoße auf die ein oder andere Frage.
1. Frage:
Wenn man innerhalb eines eigenen Adapters "Node Module" nutzen möchte, reicht es dann aus, den Ordner (node_modules) im Adapterverzeichis anzulegen und dort die Module (z.B. cheerio, request oder ping…) hineinzukopieren oder muss man die dann installieren (über npm install)
Und noch eine 2. Frage...
Gibt es einen einfacheren Weg Änderungen an der index.html in der Instanz zu sehen? Im Moment muss ich den Controller unter "hosts" neu starten, erst dann kann ich die Auswirkungen der Änderungen sehen. Ist nicht schlimm, dauert nur. Und da vieles "try and error" ist, muss ich das halt ziemlich oft machen.
thx Hermann
-
was wird das denn für ein Adapter?
Zu 1.)
http://forum.iobroker.org/viewtopic.php … =487#p6509
Zu 2.)
probier mal:
iobroker restart adaptername iobroker upload adaptername
-
Eigentlich ist es nur um zu sehen ob es geht und wie aufwändig es ist.
Als Thema hab ich mir als erstes zum Ziel gesetzt mein "Deutsche Bahn Verspätungsscript" in einen Adapter zu packen und ihm damit etwas mehr Komfort zu geben. Ich bin Bahnpendler und bin es leid morgens alle 2 Minuten auf Handy zu sehen.
-
Der Tipp mit dem Einbinden der Module ist schon mal genial.
Mal sehen wie weit ich komme. Immerhin kann ich schon mal einen Instanz erstellen und die läuft auch.
Jetzt muss ich dem Ding nur noch "Leben und Funktion" einhauchen.
-
In deinem Link steht beschrieben wie man weitere Module einbindet. Bluefox geht allerdings in dem Beispiel davon aus, das die package.json bereits existiert. Das tut sie bei mir aber nicht. Muss diese manuell angelegt werden? Braucht man die überhaupt wenn man (zunächst einmal) den Adapter (ist ja nur zum lernen) nur lokal halten will?
-
Ich hatte mir eine package.json von einem anderen Adapter kopiert und angepasst.
-
klingt gut weil es mit meinem Plan übereinstimmt.
-
Eigentlich, wenn schon alles läuft und es nur zum testen, braucht man kein package.json.
Trotzdem package.json wird gebraucht, wenn man wirklich auf npm oder im github den Adapter speichert.
Da ist beschrieben welche NPM-Module und welche Versionen werden vom Adapter benutzt.
Es gibt zwei Möglichkeiten package.json zu erzeugen:
-
npm init (https://docs.npmjs.com/cli/init)
-
bestehende package.json kopieren und anpassen (empfehlenswert)
Die Packages, die man braucht sind unter "dependencies" gespeichert. Um die Module anzubinden reicht es dort modulName und Modul-Version rein zuschreiben und danach "npm install" im Adapter-Verzeichnis aufrufen. Es geht auch so:
npm install NPM_MODUL_NAME --save
Dabei –save sagt, dass dieses Packet in package.json gespeichert werden soll.
> Gibt es einen einfacheren Weg Änderungen an der index.html in der Instanz zu sehen? Im Moment muss ich den Controller unter "hosts" neu starten, erst dann kann ich die Auswirkungen der Änderungen sehen. Ist nicht schlimm, dauert nur. Und da vieles "try and error" ist, muss ich das halt ziemlich oft machen.
Um die Änderungen von index.html zu sehen, reicht esiobroker upload DEINADAPTER
zu schreiben.
Um die Änderungen von Adapter selbst (main.js) zu sehen. Muss natürlich der Adapter neu gestartet werden.
iobroker restart DEINADAPTER.0
-
-
SORRY, falsche Stelle;)!