NEWS
Test ioBroker unter Windows installieren - 2023 Edition
-
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.
-
@gaspode sagte in Test ioBroker unter Windows installieren - 2023 Edition:
@sigi234 said in Test ioBroker unter Windows installieren - 2023 Edition:
Ja
9.8.1OK, Danke. Das bestätigt ja nochmal meine Vermutung.
Das hat damit aber nicht zu tun? Oder? Ist Neu bei mir.
Zeit Differenz -
@sigi234 said in Test ioBroker unter Windows installieren - 2023 Edition:
Das hat damit aber nicht zu tun? Oder?
Nee.
Edit:
Ist hier zwar OT, aber bei mir scheint das nur im Firefox (falsch) angezeigt zu werden. Chrome und Edge zeigen das nicht. Ist das bei dir auch so?
Nochmal Edit:
F5 ist dein Freund. Aktualisierungsproblem, s. hier: https://forum.iobroker.net/post/1056146 -
@gaspode sagte in Test ioBroker unter Windows installieren - 2023 Edition:
Bekommst du die Fehlermeldung mit dem "Windows Script Host" auch? Das hab ich bei mir noch nie gesehen.
Mein Vorgehen ist seid "ewig" schon wie oben beschrieben, daher gibt/gab es keine Fehlermeldungen mehr. Mache auch das meiste "von Hand" über die Konsole. Zuvor beende ich aber ioBroker. Ich nutze nicht den Installer
@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?
Hatte ich zumindes schon mit Controller 4.x, bei 3.x weis ich es nicht mehr.
Fehler habe ich auch keine...- 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.
Der erste iob status bringt bei mir immer eine Laufmeldung - auch wenn alle Norde.js Tasks beendet sind.
- 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?
Möglichweise hängt das mit dem zuvor ausgeführten iob stop zusammen.
- Selten werde zügig alle Node.js Tasks beendet
- Öfter dauert es bis all Node.js beendet sind, wenn dann nur noch wenige Node.js da sind kommt es auch schon mal vor das es wieder mehr werden.
- Seltener werden keine oder nur wenige Node.js beendet, dann hilft ein iob stop all
-
@gaspode sagte in Test ioBroker unter Windows installieren - 2023 Edition:
npm ls -g
Ergebnis bei mir ist wie folgt:
Your environment has been set up for using Node.js 18.18.2 (x64) and npm. C:\iobroker\GLT>npm ls -g C:\Users\glt\AppData\Roaming\npm +-- node-red@1.3.5 `-- npm@8.14.0 C:\iobroker\GLT>
Zum globalen deinstallieren muss ioB gestoppt sein, oder ist diese falsche NPM Version unabhängig von der NPM Version des ioBroker zu betrachten?
Das muss auch ein überbleibsel einer alten Installation sein, denn zum einen ist das Verzeichnis vom 17.7.2022 und zum anderen liegt sie unter
c:\Users\glt\AppData\Roaming\npm\node_modules\npm\
was ja nicht dem ioBroker Standard entspricht.