NEWS
Test ioBroker unter Windows installieren - 2023 Edition
-
@dasbrot42 said in Test ioBroker unter Windows installieren - 2023 Edition:
Er übersteht auch einen Neustart.....
Auf jeden Fall ist es schön, dass es jetzt anscheinend läuft. Es werden jetzt also bei ioBroker Start alle Adapter sauber automatisch gestartet?
Ich hab ehrlich gesagt keine Ahnung, was schief gelaufen ist. Eigentlich sah alles gut aus, außer, dass eben nicht alle Adapter bei ioBroker Start automatisch gestartet wurden.
Um da jetzt konkret was zu vermuten fehlt mir das Hintergrundwissen, da müsste dann schon jemand von den Core-Entwicklern reinschauen. Da es jetzt aber läuft würde ich die damit aber ungern belasten.
-
OK, einen Erklärungsversuch hätte ich noch:
ioBroker merkt sich im iobroker-data-Verzeichnis, welche Adapter gestartet sind und welche nicht. Die, die nicht gestartet sind, werden beim ioBroker (Neu-)Start auch nicht automatisch gestartet. Wenn also im iobroker-data-Verzeichnis, das für die Datenübernahme genutzt wird, einige Adapter als "gestoppt" markiert sind, dann werden diese nach der Installation auch nicht automatisch gestartet (hab ich gerade ausprobiert).Evtl. hatte dein Problem tatsächlich damit zu tun. Ich könnte jetzt in den Installer noch einbauen, dass versucht wird, den Admin zu starten, wenn er nach Neustart nicht erreicht werden kann. Ist aber halt schon speziell, und ich will den Installer eigentlich auch nicht mit allen möglichen Sonderfällen überfrachten.
Also doch eher was für die Doku?
Was meinen denn die anderen?
-
@gaspode sagte in Test ioBroker unter Windows installieren - 2023 Edition:
Also doch eher was für die Doku?
Ja
-
@gaspode
Ja alles läuft normal. Einige Fehlermeldungen durch sehr alte scripts, das muss ich nun nach und nach ergoogeln. Aber das hat mit dem Problem nichts zu tun. Ich denke auch das ein ausgeschalteter Admin Adapter sehr selten ist. Vorallem die Konstellation das man das vorher nicht mitbekommen hat. Im Nachhinin betrachtet vermutlich ausgelöst durch einen sehr großen Versionssprung beim Update. Vielen Dank. -
Guten Morgen Zusammen,
ich habe eine Frage zur Windows-Installation von ioBroker:
Nach der Installation über das Setup-Programm tauchen im Ordner Skripte zum Starten und Stoppen von ioBroker auf.
Können diese Skripte auch ohne Adminrechte ausgeführt werden bzw. kann ioBroker anderweitig ohne Adminrechte gestartet werden? ioBroker ist auf einem Server installiert wo die Installationsrechte stark eingeschränkt sind.Viele Grüße
-
@niiccooo1 said in Test ioBroker unter Windows installieren - 2023 Edition:
Können diese Skripte auch ohne Adminrechte ausgeführt werden bzw. kann ioBroker anderweitig ohne Adminrechte gestartet werden?
Soweit ich weiß nicht, da für das Starten und Stoppen afaik unter Windows grundsätzlich Admin Rechte bzw. das Recht, Services zu stoppen und zu starten, benötigt werden. Du könntest also evtl. deinem User das Recht geben, Services zu starten und zu stoppen, s. z.B. hier:
https://stackoverflow.com/questions/4436558/start-stop-a-windows-service-from-a-non-administrator-user-accountEs gibt auch die Möglichkeit, ioBroker nicht als Service zu starten, dafür startest du im Startmenü den Eintrag "Node.js command prompt", wechselst in dein ioBroker-Installationsverzeichnis (also z.B. cd c:\iobroker). Dann kannst du ioBroker mit
node node_modules/iobroker.js-controller/iobroker.js start
starten und mit
node node_modules/iobroker.js-controller/iobroker.js stop
wieder anhalten.
Würde ich aber nicht empfehlen, da das ggfs. irgendwelche Seiteneffekte hat und der Installer bei Updates nicht damit klar kommen dürfte.
-
Mahlzeit zusammen.
Ich habe ggf. ein Problem, was mit dem Windows Installer zusammenhängen könnte gefunden.
Seit den letzten Adapter Update Versuchen am Samstag (8 Adapter aus dem Latest), werden die Adapter welche es zu Updaten gibt, nicht mehr in der Versionsnummer angehoben, oder Möglicherweise gar nicht erst installiert.
Ich habe dazu ein Issue im Admin GIT aufgemacht. Darauf hin bekam ich den Hinweis es mit einem
iob fix
bzw. einemiob diag
zur genaueren Eingrenzug zu versuchen.siehe hier: https://github.com/ioBroker/ioBroker.admin/issues/2153
Im Rahmen dessen, habe ich die in dem Issue gezeigten Fehlermeldungen bzgl.
iob fix
bekommen. Die ersten Versuche waren via Konsole, dann später über den Windows Installer.In beiden Fällen kam es zu einem Windows Script Error und der Fix konnte nicht ausgeführt werden.
Die Node / NPM Version wurde durch den Windows Installer aber erfolgreich angehoben, was auch dazu führte, das nun das installieren der Adapter Updates mit anschließender Versionsanhebung funktionierte.
Bleibt an dieser Stelle also der Hinweis, das der Fix über den Installer 2.2.2 nicht korrekt ausgeführt wurde / bzw. werden konnte.
-
@gaspode
Danke für die Tipps.
Ich habe heute morgen etwas auf dem Server recherchiert und gesehen das Backups übers Wochenende erzeugt wurden.
D.h. das ioBroker im Hintergrund funktioniert jedoch kann ich die admin-Seite nicht aufrufen.Wenn ich
node node_modules/iobroker.js-controller/controller.js --logs
aufrufe kommt folgender log:
2023-10-16 08:11:10.931 - info: host.Server iobroker.js-controller version 5.0.12 js-controller starting 2023-10-16 08:11:10.934 - info: host.Server Copyright (c) 2014-2023 bluefox, 2014 hobbyquaker 2023-10-16 08:11:10.938 - info: host.Server hostname: Server, node: v18.18.1 2023-10-16 08:11:10.939 - info: host.Server ip addresses: XXXXXX 2023-10-16 08:11:13.063 - error: host.Server Cannot start inMem-objects on port 9001: Failed to lock DB file "D:\ioBroker\iobroker-data\objects.jsonl"!
Habe anschließend den fixer laufen lassen mit folgender Ausgabe:
D:\ioBroker>npx @iobroker/fix npm ERR! code ECONNREFUSED npm ERR! syscall connect npm ERR! errno ECONNREFUSED npm ERR! FetchError: request to https://registry.npmjs.org/@iobroker%2ffix failed, reason: connect ECONNREFUSED 104.16.27.34:443 npm ERR! at ClientRequest.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\minipass-fetch\lib\index.js:130:14) npm ERR! at ClientRequest.emit (node:events:517:28) npm ERR! at TLSSocket.socketErrorListener (node:_http_client:501:9) npm ERR! at TLSSocket.emit (node:events:529:35) npm ERR! at emitErrorNT (node:internal/streams/destroy:151:8) npm ERR! at emitErrorCloseNT (node:internal/streams/destroy:116:3) npm ERR! at process.processTicksAndRejections (node:internal/process/task_queues:82:21) npm ERR! FetchError: request to https://registry.npmjs.org/@iobroker%2ffix failed, reason: connect ECONNREFUSED 104.16.27.34:443 npm ERR! at ClientRequest.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\minipass-fetch\lib\index.js:130:14) npm ERR! at ClientRequest.emit (node:events:517:28) npm ERR! at TLSSocket.socketErrorListener (node:_http_client:501:9) npm ERR! at TLSSocket.emit (node:events:529:35) npm ERR! at emitErrorNT (node:internal/streams/destroy:151:8) npm ERR! at emitErrorCloseNT (node:internal/streams/destroy:116:3) npm ERR! at process.processTicksAndRejections (node:internal/process/task_queues:82:21) { npm ERR! code: 'ECONNREFUSED', npm ERR! errno: 'ECONNREFUSED', npm ERR! syscall: 'connect', npm ERR! address: '104.16.27.34', npm ERR! port: 443, npm ERR! type: 'system' npm ERR! } npm ERR! npm ERR! If you are behind a proxy, please make sure that the npm ERR! 'proxy' config is set properly. See: 'npm help config' npm ERR! A complete log of this run can be found in: C:\ProgramData\npmglobal-cache\_logs\2023-10-16T06_04_41_307Z-debug-0.log
Habt ihr eine Idee?
Vielen Dank und Gruß!
-
@niiccooo1 sagte in Test ioBroker unter Windows installieren - 2023 Edition:
ECONNREFUSED
heisst Connection refused. Also entweder hatte der npm Server zu dem zeitpunkt ein problem oder ein netzwerk-irgendwas blockt verbindungen. Wenn es also beim nochmal versuchen gleichist checke Firewalls und sowas
-
@jb_sullivan said in Test ioBroker unter Windows installieren - 2023 Edition:
Bleibt an dieser Stelle also der Hinweis, das der Fix über den Installer 2.2.2 nicht korrekt ausgeführt wurde / bzw. werden konnte.
Da war wohl irgendwas mit deiner Node.js Installation verbogen. Aus irgendeinem Grund wollte Windows einen Script Aufruf im Installer- bzw. Fixer-Script (und wohl auch anderen Node Aufrufe) nicht in der Node Umgebung, sondern im Windows Script Host ausführen. Das geht d ann natürlich in die Hose.
Ich nehme an, die Aktualisierung der Node Version hat die Node.js Installation wieder gerade gebogen.Geht denn jetzt der Fixer-Aufruf über den Installer wieder?
-
Nein funktioniert immer noch nicht. Generell ist das arbeiten mit der Konsole sehr Fehler behaftet. Sehr häufig wird nicht erkannt, das ioB gestoppt ist, obwohl es in der WinDienste Verwaltung als gestoppt aufgeführt ist.
Bei bekannten und etablierten ioB Befehlen wird teilweise die HILFE geöffnet, weil es den Befehl angeblich nicht gibt. Bei
ioB update
oderioB upgrade (self)
, kommen mitunter ganz eigenartige Fehlermeldungen in der Konsole. -
@jb_sullivan Kann ich bestätigen.
Die Fehlermeldungen kommen weil ioBroker noch nicht beendet ist.
Allerdings kann man das Problem umschiffen.
Dazu ist der Windows Dienst ioBroker leider nicht aussagekräftig.Starte den Taskmanager, sortiere nach Namen und scolle zu Node.js, siehe Bild.
Starte die Konsole zum stoppen von ioBroker.iob stop
Beobachte den Taksmanager, erst wenn alle Node.js verschwunden sind ist ioBroker beendet, kann ein wenig dauern.
Sollten nicht alle Node.js verschwinden versuche einiob stop all
Spätestes jetzt sollten all Node.js verschwinden, auch das kann ein wenig dauern - geht aber!
versuche in der Console 2xiob status iob status
Beim ersten Aufruf wird noch gemeldet das ioBroker läuft, aber beim zweiten sollte dann die Meldung kommen das ioBroker nicht läuft.
Jetzt ist ioBroker wirklich beendet und du solltest keine Probleme mehr haben.
-
@uwerlp said in Test ioBroker unter Windows installieren - 2023 Edition:
Die Fehlermeldungen kommen weil ioBroker noch nicht beendet ist.
Bekommst du die Fehlermeldung mit dem "Windows Script Host" auch? Das hab ich bei mir noch nie gesehen.
@jb_sullivan said in Test ioBroker unter Windows installieren - 2023 Edition:
Bei bekannten und etablierten ioB Befehlen wird teilweise die HILFE geöffnet, weil es den Befehl angeblich nicht gibt.
Das ist bekannt, allerdings nur für "iob fix". Das liegt an einem Bug (oder Feature, das ist nicht so ganz sicher in npx)
Der Workaround dafür ist, entweder iobroker.bat zu löschen (bzw. umzubenennen), oder den Installer zu nehmen (der löscht iobroker.bat nämlich, bevor er fix aufruft). iob fix legt die Datei iobroker.bat übrigens wieder an, d.h. das nächste Mal musst du sie wieder löschen.
Hast du das auch bei anderen Befehlen als bei iob fix?@uwerlp said in Test ioBroker unter Windows installieren - 2023 Edition:
Beim ersten Aufruf wird noch gemeldet das ioBroker läuft, aber beim zweiten sollte dann die Meldung kommen das ioBroker nicht läuft.
Ich sehe gerade: Das habe ich mitunter auch. allerdings keine weiteren Fehler, wenn ich CLI Befehle absetze. Und es passiert bei mir auch, wenn kein Node Prozess mehr läuft. Das zweite "iob status" liefert dann aber den korrekten Output. Das hatte ich vor einiger Zeit so definitiv noch nicht. Kann es sein, dass das mit einer neueren Node Version oder Controller 5.x rein gekommen ist?
Fazit:
- iob fix geht im CLI nur, wenn zuvor iobroker.bat gelöscht wird
- Der erste Aufruf nach dem Stoppen von ioBroker von "iob status" liefert (zumindest häufig, wenn nicht immer) fälschlicherweise "iobroker is running on this host". Der zweite Aufruf funktioniert in der Regel.
- Die Windows Meldung "Windows Script Host" tritt normalerweise auf, wenn man versucht ein .js File direkt auszuführen, dann wird das File direkt an den Windows Script Interpreter übergeben, der nix damit anfangen kann. Warum das bei iob Befehlen passieren kann, ist mir ein Rätsel. Hat das sonst noch jemand?
-
@gaspode
noch eine andere Frage - warum wird beim Update über die Konsole NPM 8.14.0 angezeigt, wenn beim Betrachten über den Admin NPM auf dem Stand 9.8.1 ist (wurde zusammen mit Node durch den Win Installer auf die entsprechenden Versionsstände gehoben) -
@jb_sullivan said in Test ioBroker unter Windows installieren - 2023 Edition:
warum wird beim Update über die Konsole NPM 8.14.0 angezeigt, wenn beim Betrachten über den Admin NPM auf dem Stand 9.8.1 ist
Das ist eine verdammt gute Frage, auf die ich im Moment nur eine halbe Antwort habe:
Anscheinend, weil das ioBroker node.js command Window als Admin gestartet wurde. Startet man das Node.js Command Window aus dem Startmenü als Admin:
npm -v 9.3.0 node -v v18.18.2
Startet man es als normaler User:
npm -v 9.8.1 node -v v18.18.2
Warum das so ist kann ich im Moment nicht sagen, bisher hat das immer gepasst. Mal sehen, ob ich morgen was raus finde.
-
Ich weiß nicht warum, aber bei mir war es so, dass irgendwann einmal durch eine (wahrscheinlich von mir manuell ausgeführte Aktion) npm zusätzlich als globales Node.js Modul installiert war. Wie es dazu kam, kann ich nicht sagen, laut Datum des Ordners war das im Januar!? Ich vermute aber, das npm Modul wurde als Abhängigkeit bei irgend einer globalen Node.js Modul-Installation mit installiert.
Die gute Nachricht: Dieser Fall lässt sich leicht wieder gerade biegen:
Erst mal prüfen, ob das der Fall ist:
ioBroker Command Line aus dem Startmenü öffnen und dort eingeben:
npm ls -g
Wenn im Ergebnis npm auftaucht, dann hast du eine (ungewollte) globale Installation des Node.js npm Moduls, z.B.:
c:\iobroker> npm ls -g -- npm@9.3.0
In diesem Fall einfach global deinstallieren:
npm r -g npm
Sollten noch weitere Module global installiert sein, sollten die auch anschließend noch laufen. Wobei es eigentlich keine global installierten Module geben sollte.
-
*** Welcome to ioBroker. ***
*** Type 'iob help' for list of instructions. ***
*** For more help see ***
*** https://github.com/ioBroker/ioBroker.docs ***
Your environment has been set up for using Node.js 18.18.2 (x64) and npm.
C:\SmartHome>npm ls -g
C:\Users\Sigi\AppData\Roaming\npm
`-- (empty)C:\SmartHome>
-
@sigi234
Du bekommst aber auch die korrekte npm Version mit npm -v angezeigt, oder? -
-
@sigi234 said in Test ioBroker unter Windows installieren - 2023 Edition:
Ja
9.8.1OK, Danke. Das bestätigt ja nochmal meine Vermutung.