NEWS
Ordner ...node_modules/iobroker.javascript immer wieder leer
-
Hi,
ich hatte jetzt schon zweimal den Fall, dass im laufenden Betrieb der Ordner /opt/iobrokernode_modules/iobroker.javascript ziemlich leer war. Die ganzen Unterordner, insbesondere auch node_modules waren einfach nicht mehr da. Scripte, z.B das von @Pittini für Xiaomi-devices liefen aber ganz normal weiter, obwohl es ja auf Dateien unter node_modules zugreift. Ich hatte da allerdings neue Dateien für den Air purifier Pro H und 3C abgelegt. Wenn ich das Script stoppte, so wurde prompt beim Neustart bemängelt, dass diese Dateien fehlen. Ein Neustart des JS-Adapters hat den Ordner dann wieder gefüllt, ich habe Kopien meiner Dateien wieder dorthin kopiert und alles war gut. Keine weiteren Fehler oder Ähnliches. Aber halt irgendwie nervig oder ungewöhnlich.
Ist es normal, dass der o.g. Ordner irgendwann geleert wird? Im JS-Adapter habe ich unter Anderem node_modules als zu ladende Module drin, es funktioniert ja. Wird da irgendwas im RAM gehalten und läuft dann so lange, bis auffällt, dass der Ordner leer ist (Script-Neustart)? Was kann ich tun, damit der Ordner nicht mehr geleert wird und vor Allem meine Dateien erhalten bleiben? Ich habe sie mal schreibgeschützt, bin aber nicht sicher, ob das dauerhaft hilft, wenn ich nicht weiss, wer da was warum löscht.
iobroker läuft im lxc (priviligiert) unter Proxmox mit Ubuntu18.04-Template. Alles läuft seit Monaten fehlerfrei, nur das mit dem Ordner fällt mir seit zwei Wochen auf, seit ich die neuen devices angelegt habe. Ich weiss nicht, ob der Ordner früher auch einfach weg war, weil ich da nicht reingeschaut habe.Was kann das sein, ist das so normal oder wie komme ich dem Verursacher auf die Schliche?
Gruss, Jürgen
-
@wildbill sagte in Ordner ...node_modules/iobroker.javascript immer wieder leer:
/opt/iobrokernode_modules/iobroker.javascript
Wenn du den Ordner
/opt/iobroker/node_modules/iobroker.javascript
meinst, dann hast du da drin nichts verloren. Das ist ein automatisch erstellter Ordner, der von NPM gemanagt wird. Und wie du richtig gemerkt hast, löscht der je nachdem alles raus, was ihm nicht gefällt.Weshalb machst du denn etwas in diesem Ordner?
-
@unclesam sagte in Ordner ...node_modules/iobroker.javascript immer wieder leer:
Weshalb machst du denn etwas in diesem Ordner?
Weil ich ihm das so gesagt habe.
Ich habe ein Skript geschrieben, welches Xiaomi Geräte, für welche es keine oder nur veraltete Adapter gibt in iobroker einbindet . Das Skript nutzt dazu die node-mihome, ein npm modul. Dort gibt es einen Ordner mit je einem konfigfile pro unterstütztem Device. Der Entwickler reagiert nur sehr zäh auf Issues oder pr's.
Deshalb ist der einfachste Weg ein neues Gerät in mein skript zu integrieren, einfach in /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-mihome/lib/devices eine solche konfigdatei selber anzulegen und solange rumzutesten bisses passt. Das müssen aber meine User machen, da ich ja nicht alle Geräte selber besitze. Wenn das File dann läuft, mach ich nen pr bei node-mihome und dann isses fest drin. -
@unclesam @Pittini hat ja schon erklärt, was ich da drin mache, wobei ich das oben ja eigentlich schon geschrieben hatte.
Wenn der Adapter nur das löscht, was ihm nicht gefällt, also was ich rein kopiere, dann könnte ich das nachvollziehen. Es gab in iobroker.javascript, aber nur noch 2-3 Unterordner (habe sie mir leider nicht gemerkt, nächstes Mal schreibe ich sie auf). Auch Ordner wie node_mihome, node_fetch, xml2js, was weiss ich waren nicht da. Im Ordner iobroker.javascript habe ich soeben 44 Unterordner gezählt. Nur im node_mihome/lib/devices liegen drei von mir editierte Dateien. Wenn die weg wären könte ich es verstehen. Aber warum fehlen 41 Ordner unter iobroker.javascript, die nach einem Neustart vom JS-Adapter wieder da sind? Ist das normal und gewollt?Gruss, Jürgen
-
@wildbill Ja, da würde ich mir nicht allzu viele Gedanken machen. Es hat damit zu tun, dass ioBroker gewisse NPM Module rauslöscht. Aber der JavaScript Adapter hat diese ja bereits geladen und damit sollte das auch kein Problem sein.
-
@unclesam Alles klar, Danke für die Antwort. Dann scheint ja alle szu passen und ich muss halt spätestens dann "meine" Dateien mal wieder reinkopieren, wenn das Xiaomi-Script einen Fehler meldet.
Vielleicht weisst Du hier auch gleich die Antwort: Wenn der Entwickler von niode-mihome die PR mal einbaut und die devices dann drin sind, ab wann würden die dann in iobroker automatisch mitkommen? Erfordert das eine neue Version vom JS-Adapter oder lädt der Adapter bei jedem Neustart node-mihome komplett neu inklusive allem, was geändert wurde?Gruss, Jürgen
-
@wildbill sagte in Ordner ...node_modules/iobroker.javascript immer wieder leer:
Erfordert das eine neue Version vom JS-Adapter oder lädt der Adapter bei jedem Neustart node-mihome komplett neu inklusive allem, was geändert wurde?
Eine neue Version des JS-Adapters brauchst du sicher nicht, ich glaube, der Adapter wird beim Aufstarten das neue NPM Modul holen. Aber ganz sicher bin ich mir nicht.
-
OK, wir werden sehen. Vielleicht tut sich ja da irgendwann was.
Dank Dir.Gruss, Jürgen