NEWS
Adapter wird 2x installiert
-
Hallo, ich habe doch noch eine Frage - ich habe mehrere Funktionen, die über verschiedene Zeitintervall wieder durchlaufen werden sollen. Bis jetzt habe ich es mit Setinterval() in der Funktion main() realisiert, finde es aber nicht geschickt. Gibt es ein Beispielcode, wie ich den zeitlichen Aufruf einer Funktion, z.B. alle 10 Sekunden, vernünftig realisieren kann. Sollte innerhalb der Funktion etwas schief gehen, sollte dies abgefangen werden. Bei SetInterval() wird die Funktion doch immer 'hart' ausgeführt.
-
@Baumert nimm setTimeout und setzte immer am Ende der Methode einen neuen timeout für den nächsten Lauf. In fehlerfällen must du überlegen ob neuer Lauf oder was auch immer
-
@Baumert
du kannst bei squeezenoderpc schauen
ich verwende verschiedene timer -
@OliverIO @apollon77 so, ich habe jetzt meinen Adapter neu aufgebaut -> main.js aus ioBroker.template übernommen und mein Programm dort entsprechend integriert, weiterhin habe ich die Timerfunkionen von setintervall() auf individuellen settimout() geändert.
Die Travis-CI Tests:script: - npm run test:package - npm run test:unit - export DEBUG=testing:* - npm run test:integration
laufen fehlerfrei durch...
Jetzt bin ich allerdings wieder bei meinem ursprünglichen Problem - der Adapter wird, wenn er von GITHUB, installiert wird, 2x im Verzeichnis '.../node_modules/' installiert, 1x mit kleinem b und 1x mit großem B in iobroker:
Auszug aus Verzeichnis '.../node_modules/' (sorry für die Darstellung).Instanz kann normal hinzugefügt, startet nach Angabe der Parameter und macht das was er soll. Da doppelte Verzeichnis macht nur Probleme, wenn der Adapter aus der Adapterübersicht gelöscht werden soll. Dabei wird nur der Adapter/Verzeichnis mit dem kleinen 'b' gelöscht, das andere Verzeichnis bleibt und der Adapter kann nicht wieder neu installiert werden, außer man löscht das Verzeichnis manuell über die Konsole.
Diese Problem möchte ich noch beheben, habe aber keine Ahnung, wo ich hier angreifen soll.Grüße Thomas
-
@Baumert schreib mal den kompletten pfad wo dein iobroker isntalliert ist
und in welchem Verzeichnis du den adapter entwickelst -
@OliverIO Den Adapter entwicklen ich auf einem Windowsrechner (Installiert mit iobroker-1.5.14.b-windows-installer.exe) , auf dem ich eine eigene Testumgebung mit iobroker und VS Code aufgebaut haben. Dort läuft alles im Verzeichnis:
C:\Program Files\iobroker\Testsystem1\node_modules\iobroker.repetierserver
Das 'Lifesystem', bei dem das Verzeichnis doppelt angelegt wird, läuft auf einem extra Server mit Ubuntu 18.04.3 LTS. Dort werden beim Installier von GITHUB aus in die Verzeichnisse:
/opt/iobroker/node_modules/iobroker.repetierserver
/opt/iobroker/node_modules/ioBroker.repetierservererstellt.
-
@Baumert ok,
dann schaue mal auf deinem live system die folgende datei an:
/opt/iobroker/package.json
ob dort dein adapter 2mal auftaucht.ob ja oder nein
deinstalliere über die iobroker oberfläche deinen adapter im live systemschaue in der
/opt/iobroker/package.json
nach ob dein adapter da noch drin ist.wenn ja, dann führe auf der commandozeile im verzeichnis /opt/iobroker
den befehl
npm u <name deines adapters wie er im package.json drinsteht>wenn nein dann weiß ich nicht weiter. meine vermutung ist, dass irgendwann der name iobroker mit großem b war
und das in package.json 2 mal drin stehtim anschluß kannst du deinen adapter im live system wieder von guthub installieren
-
@OliverIO Folgendes gemacht:
- Eintrag überprüft - im Livesystem steht in der Datein /opt/iobroker/package.json der Adapter 2x drin
- Instanz des Adapter im Livesystem gestoppt und gelöscht
- Adapter über Oberfläche gelöscht
- Adapter immer noch vorhanden
- Datei /opt/iobroker/package.json im Livesystem überprüft, Eintrag mit großem B noch vorhanden
- Befehl npm u ioBroker.repetierserver versucht - funktioniert nicht... u habe ich nicht als parameter zu npm
Frage - Eintrag und Verzeichnis manuell löschen?
-
@Baumert sorry dann musst du es ausschreiben
npm uninstall <name deines adapters wie er im package.json drinsteht>
-
@OliverIO super - hat geklappt - der Eintrag mit dem großen B ist raus und beim neuen installieren von GITHUB aus wurde es nur einmal installiert, und zwar mit kleinem b.
Dann lag das Problem aber nur bei mir am Rechner, weil der Eintrag mit dem großen B nich richtig entfernt wurde.
Vielen Dank für Eure Unterstützung , gestern und heute habe ich eine Menge über das System kennen gelernt.
Grüße Thomas -
@Baumert wie genau installierst du ihn denn?? Welchen Pfad im Admin bzw. welchen Befehl nutzt du denn?
-
@apollon77 ok wenn erledigt ist ja gut