NEWS
Test ioBroker unter Windows installieren - 2023 Edition
-
@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. -
@jb_sullivan said in Test ioBroker unter Windows installieren - 2023 Edition:
Zum globalen deinstallieren muss ioB gestoppt sein, oder ist diese falsche NPM Version unabhängig von der NPM Version des ioBroker zu betrachten?
NPM ist ja nur der Paket Manager, der nach meinem Verständnis nur während Installationen bzw Aktualisierungen von Node.js Modulen läuft. Also Nein. ioBroker muss dafür nicht gestoppt werden.
-
Ich habe jetzt die "falsche/alte" npm global Version deinstallieren lassen, iob.bat umbenannt und dann nochmal den Windows Installer gestartet.
Nun wurde auch der Fixer über den Installer erfolgreich ausgeführt, ohne das es zu einem Windows Skript Error gekommen ist.
Nach dem Fixer ist die ioB.bat Datei ein paar Kilobyt größer geworden.
-
@jb_sullivan said in Test ioBroker unter Windows installieren - 2023 Edition:
Ich habe jetzt die "falsche/alte" npm global Version deinstallieren lassen, iob.bat umbenannt und dann nochmal den Windows Installer gestartet.
Bei Verwendung vom Installer musst du nix umbenennen, der macht das selbst. Und iob.bat schon gar nicht, sondern iobroker.bat.
@jb_sullivan said in Test ioBroker unter Windows installieren - 2023 Edition:
Nach dem Fixer ist die ioB.bat Datei ein paar Kilobyt größer geworden.
Öhm, iob.bat ist eine Batch Datei mit einer Größe von 921 Byte. Wie groß ist die denn bei dir!?
-
Ja, jetzt ist sie921 byte groß, vorher war sie 819 byte groß.
Hier nur mal so zum Vergleich der Inhalt der beiden "Versionen". Ich kann aber ehrlich gesagt keinen Unterschied entdecken.
Alt (819byte)
@echo off if %1==fix ( npx @iobroker/fix ) else ( if exist serviceIoBroker.bat ( if %1==start ( if [%2]==[] ( call serviceIoBroker.bat start ) else ( node node_modules/iobroker.js-controller/iobroker.js %1 %2 %3 %4 %5 %6 %7 %8 ) ) else ( if %1==stop ( if [%2]==[] ( call serviceIoBroker.bat stop ) else ( node node_modules/iobroker.js-controller/iobroker.js %1 %2 %3 %4 %5 %6 %7 %8 ) ) else ( node node_modules/iobroker.js-controller/iobroker.js %1 %2 %3 %4 %5 %6 %7 %8 ) ) ) else ( node node_modules/iobroker.js-controller/iobroker.js %1 %2 %3 %4 %5 %6 %7 %8 ) )
Nach dem Fixer Durchlauf
@echo off if [%1]==[fix] ( npx @iobroker/fix ) else ( if exist serviceIoBroker.bat ( if [%1]==[start] ( if [%2]==[] ( call serviceIoBroker.bat start ) else ( node node_modules/iobroker.js-controller/iobroker.js %* ) ) else ( if [%1]==[stop] ( if [%2]==[] ( call serviceIoBroker.bat stop ) else ( node node_modules/iobroker.js-controller/iobroker.js %* ) ) else ( if [%1]==[restart] ( if [%2]==[] ( call serviceIoBroker.bat restart ) else ( node node_modules/iobroker.js-controller/iobroker.js %* ) ) else ( node node_modules/iobroker.js-controller/iobroker.js %* ) ) ) ) else ( node node_modules/iobroker.js-controller/iobroker.js %* ) )