NEWS
Eigenen Adapter erstellen
-
@wal also entweder stehe ich mega auf dem Schlauch, oder … keine Ahnung.
Das funktioniert einfach nicht.Wie würdet ihr denn einen http Anfrage senden?
Ps. Im Adapter arbeitet man mit setinterval, oder geht auch schedule?
Muss der setinterval immer mit clearinterval gelöscht werden, oder passiert das sowieso beim stoppen des Adapters?Warum werden in dem Beispiel werte mit asynch gesetzt und nicht einfach mit setState?
Und wozu dient beim setstate das ack? -
@ben1983 jetzt nochmal für mich.
Du hast einen Adapter erstellt, richtig?
Du hast den Test aus der package.json ausgeführt, richtig?
Du hast dann den Ordner deines Adapters einfach in den npm_modules Ordner deines ioBrokers kopiert, richtig?Falls das alles zutrifft, dann einfach ein
npm install
im node_modules Ordner ausführen. -
@ben1983
Ein datenpunkt kann bestätigt (ack) oder nicht bestätigt sei .
Wenn du bspw manuell etwas in einen datenpunkt (Licht an) etwas eingibst dann ist der meist unbestätigt (kann man aber auch ankreuzen wenn man will)
Ein Adapter registriert dann diese Statusänderung und kann dann die entsprechende Aktion ausführen. Dh der Adapter spricht dann mit der eigentlichen Hardware und sagt ihr Licht an.
Wenn die Hardware dann sagt, ok ich mach Licht an, dann schreibt der Adapter den datenpunkt neu, aber diesmal mit dem ack flag=true
Damit ist dieser datenpunkt bestätigt und erscheint dann für kurze Zeit grün in der Objekt Ansicht. -
@ben1983 ich glaube in diesem Video von Matthias Kleine wird alles sehr gut erklärt. Also was wohin kopiert werden muss. Und wie man das dann auch installiert. Kannst du ja mal mit einem "leeren Projekt" ausprobieren
Erstelle bitte nur nicht den Adapter so, wie in dem Video gezeigt sondern mit dem create-adapter
-
@deralff sagte in Eigenen Adapter erstellen:
@ben1983 jetzt nochmal für mich.
Du hast einen Adapter erstellt, richtig?
Du hast den Test aus der package.json ausgeführt, richtig?
Du hast dann den Ordner deines Adapters einfach in den npm_modules Ordner deines ioBrokers kopiert, richtig?Falls das alles zutrifft, dann einfach ein
npm install
im node_modules Ordner ausführen.einen test?
ich habe den adapter mit dem create adapter erstellt,
node-fetch installiert und den dann in iobroker installiert. (instanz erstellt) -
-
@deralff also den creat adapter direkt im node-modules von iobroker ausführen?
und dann node-fetch installieren?
mein adapter ist ja leer, haben lediglich wo anders erzeugt, aber warum macht das was aus?
habe doch den gabzen ordner kopiert. -
@deralff habe ich jetzt ausgeführt.
kommen paar grüne häkchen.
was sagt / bringt mir das jetzt?Habe die readme gelesen, aber komme nicht weiter.
-
@ben1983 ,
habe das mal nachgestellt.
node-fetch darf nicht händisch installiert sein, also wie im Link beschrieben deinstallieren.
Im Adapter "const fetch = require('node-fetch');" eingefügt und er bringt bei mir die Meldung nicht gefunden beim starten. Danach in der "package.json" unter "devDependencies" "node-fetch": "^3.2.0" hinzugefügt. Gulp für die Übersetzung im Adapterordner mit "npm install --save-dev gulp" installiert.
Adapter gestartet, keine Fehlermeldung mehr.
Das Ganze unter Windows in der WSL Debian mit MS Code. -
@wal und beim deinstallieren macht man sich auch keine anderen Adapter kaputt?
Also kann man den creatadapter doch wo anders ausführen und rein kopieren, oder sollte man den direkt im node-modules Ordner ausführen und dann mit gulp installieren?
Was macht gulp eigentlich?
-
@ben1983 ,
der ist für die Übersetzungen wichtig, im Wiki erklärt.
Man kann auch "npm install --production" im Adapterordner machen, dann wird auch alles nötige erzeugt.
Du wirst doch nicht in deinem produktiven System mit Adapter-Entwicklung anfangen ?@ben1983 sagte in Eigenen Adapter erstellen:
Also kann man den creatadapter doch wo anders ausführen und rein kopieren
Ich mache das dort, wo er auch sein soll.
-
@ben1983 ,
bei mir in /opt/iobroker und mache einen Link in das "node_modules" Verzeichnis -
@wal habe aber nur das System.
-
@wal habe nur ein produktivsystem auf Windows.
Komischerweise wird alles immer rot markiert, wenn ich im vscode editiere.
Liegt das an der tab oder 4 Leerzeichen konfig? -
@wal sagte in Eigenen Adapter erstellen:
@ben1983 ,
der ist für die Übersetzungen wichtig, im Wiki erklärt.
Man kann auch "npm install --production" im Adapterordner machen, dann wird auch alles nötige erzeugt.
Du wirst doch nicht in deinem produktiven System mit Adapter-Entwicklung anfangen ?@ben1983 sagte in Eigenen Adapter erstellen:
Also kann man den creatadapter doch wo anders ausführen und rein kopieren
Ich mache das dort, wo er auch sein soll.
Das bedeutet ich erzeuge den Adapter im nod-modules und sage dann in dem Adapter Ordner npm install und dann sollte es mit fetch klappen?
-
@ben1983 sagte in Eigenen Adapter erstellen:
Das bedeutet ich erzeuge den Adapter im nod-modules und sage dann in dem Adapter Ordner npm install und dann sollte es mit fetch klappen?
Nein, sie zwei Antworten oben.
@wal sagte in Eigenen Adapter erstellen:
bei mir in /opt/iobroker und mache einen Link in das "node_modules" Verzeichnis
Im produktiven System arbeitet man nicht, es ist produktiv.
-
@wal sagte in Eigenen Adapter erstellen:
@ben1983 sagte in Eigenen Adapter erstellen:
Das bedeutet ich erzeuge den Adapte
Nein, sie zwei Antworten oben.
@wal sagte in Eigenen Adapter erstellen:
bei mir in /opt/iobroker und mache einen Link in das "node_modules" Verzeichnis
Im produktiven System arbeitet man nicht, es ist produktiv.
@wal sagte in Eigenen Adapter erstellen:
@ben1983 sagte in Eigenen Adapter erstellen:
Das bedeutet ich erzeuge den Adapter im nod-modules und sage dann in dem Adapter Ordner npm install und dann sollte es mit fetch klappen?
Nein, sie zwei Antworten oben.
@wal sagte in Eigenen Adapter erstellen:
bei mir in /opt/iobroker und mache einen Link in das "node_modules" Verzeichnis
Im produktiven System arbeitet man nicht, es ist produktiv.
Wie mache ich es dann dann?
Verstehe die Antwort nicht.Habe halt nur einen Rechner und nur ein produktiv System.
Wo soll ich es denn sonst machen?
Und warum sollte das nicht klappen?
Meinst du damit zerstört man den iobroker? -
@ben1983 sagte in Eigenen Adapter erstellen:
Meinst du damit zerstört man den iobroker?
Womöglich.
Mach das z.B. in einer virtuellen Maschine oder mit WSL.
Hier ein youtoube video wenn du nicht so gerne lesen magst.Direkt mit Windows weiß ich auch nicht ob die Befehle so funktionieren.
-
@wal oh man.
Ich habe nur nen kleinen Mini Server.
Wollte da jetzt ungern noch eine vom installieren. Der ist eh schon schwach auf der Brust.
Was wäre denn eurer Meinung nach sinnvoller?
Den createadapter direkt in den node-modules adapter, oder irgendwo anders und dann per github in iobroker laden?Natürlich würde ich vorher ein Backup machen.
-
@ben1983 ,
letzter Versuch,
den Mini Server lässt du einfach in Ruhe, da ist dein produktives System drauf.
Du nimmst den Rechner mit dem du hier in das Forum postest und mit dem du tagtäglich deine Arbeiten ausführst.
Darauf installierst du dir die WSL und auf die WSL dein Test-ioBroker mit dem du Adapter entwickeln möchtest.