NEWS
Test ioBroker unter Windows installieren - 2022 Edition
-
@willi5 hi, gute Frage, keine Ahnung. Ich nutze kein Windows mit iobroker. Hast du mal gegoogelt ob sowas generell mit bat files bzw binaries da jetzt ein Thema ist?
Edit: scheint PowerShell zu sein - https://superuser.com/questions/1373012/avoid-dot-backslash-windows-10-powershell
Edit2: Jupp —> https://support.microsoft.com/en-us/windows/command-prompt-and-windows-powershell-for-windows-11-6453ce98-da91-476f-8651-5c14d5777c20
Dein Problem an sich war ja das Windows gemeckert hat wegen gelockten files Bzw da da files nicht überschrieben werden konnten. Korrekt? Wüsste jetzt nicht wie diese Themen zusammenhängen sollten.
-
@willi5 zu Backup: welcher js-controller ist es denn? Wie sieht die iobroker.json aus im Verzeichnis iobroker-Data aus?
Zu Vis: kommt vllt ein Fehler „verbindungsfehler“ oben rechts im Eck? Bitte prüfen das in Web Instanz die für den Editor genutzt wird die „reine websockets nutzen“ angehakt ist. Tuts danach?
-
@willi5 sagte in Test ioBroker unter Windows installieren - 2022 Edition:
@apollon77
So funktioniert der Befehl "iobroker restore 0" nicht mehr. Statt dessen muss er jetzt so aussehen: ".\iobroker restore 0" oder ".\iobroker backup".Du benutzt die Windows PowerShell und nicht die klassische Eingabeaufforderung.
Du solltest die Eingabeaufforderung ohne Admin rechte benutzen, eventuell sind hier die Fehler bei dir begründet? -
@uwerlp siehe oben. Scheint die neue default Shell zu sein. Meine Vermutung ist aber das das drei disjunkte Themen sind. Aber warten wir mal die Antwort auf meine Fragen oben ab.
-
@apollon77 sagte in Test ioBroker unter Windows installieren - 2022 Edition:
Scheint die neue default Shell zu sein.
Habe hier einen Win 11 Rechner (nicht für ioBroker, der läuft noch auf Win 10 Pro).
Bei "shell" oder "cmd" kommt noch die alte "Dos-Box"
die Windows Power Shell muss mit "power shell" aufgerufen werden -
@klassisch Unter Windows 10 mit einem Rechtsklich auf Start wird auch default die PowerShell angeboten. Dies läßt sich aber unter "Einstellungen/Personalisierung/Taskleiste" umstellen auf die klassische Eingabeaufforderung, ob das auch noch bei Windows 11 geht weis ich jetzt nicht.
-
@klassisch Liess mal den Link oben ... Scheinbar ab "Oktober 2022 Update" geändert worden ... Ich hab kein Windows 11 ... oder hast DU das auch drauf? Aber sein Effekt wäre genau dadurch begründet
-
@apollon77 Ich halte es mit Updates konservativ. Nur safety Updates und ansonsten so spät wie möglich.
22H2 ist bei keinem meiner Rechner drauf.- Mein Win 11 Home (office, nicht ioBroker) 10.0.22000 Build 22000
- Mein produktiv ioBroker Win 10 Pro 10.0.19044 Build 19044
- Bakckup Kandidat (der RFLink Adapter nicht bauen kann) Win 10 Pro 10.0.19044 Build 19044
-
@uwerlp Ja, Rechtsklick auf Start und dann Ausführen öffnet bei Win 10 Pro und Win 11 Home die Powershell.
Mache ich aber bisher nicht, weil cmd schneller geschrieben ist als in der Optionsliste gesucht -
Danke für Deine Anwort.
Zuerst die gute Nachricht. Bei der Webinstanz war „reine websockets nutzen“ nicht angehakt. Mit Haken läuft es. Nochmals Danke.js-controller: 4.0.23
Inhalt der iobroker.json{ "network": { "IPv4": true, "IPv6": true, "bindAddress": null, "useSystemNpm": true }, "objects": { "type": "file", "typeComment": "Possible values: 'file' - [port 9001], redis - [port 6379], couch - [port 5984].", "host": "127.0.0.1", "port": 9001, "user": "", "pass": "", "noFileCache": false, "connectTimeout": 2000, "options": { "auth_pass": null, "retry_max_delay": 5000 } }, "states": { "type": "file", "typeComment": "Possible values: 'file' - [port 9000], 'redis' - [port 6379].", "host": "127.0.0.1", "port": 9000, "options": { "auth_pass": null, "retry_max_delay": 5000 } }, "log": { "level": "info", "maxDays": 7, "transport": { "file1": { "type": "file", "enabled": true, "filename": "log/iobroker", "fileext": ".log", "maxsize": null, "maxFiles": null } } }, "dataDirComment": "Always relative to iobroker.js-controller/", "dataDir": "../../iobroker-data/" }
Bei Benutzung von "backitup" funktioniert das Erzeugen der Backup-Datei. Das Einlesen jedoch nicht. Mit der Terminaleingabe funktioniert backup und restore mit der neuen Befehlsvariante. Dies gilt nur mit, in dieser Instanz, erzeugten Backups. Backups aus früheren Instanzen produzieren folgende Fehlermeldung:
"Uncaught Rejection: TypeError: Cannot read properties of undefined (reading 'hostname')"Mit Windows hat man es hier schwer.
Das Theater wurde von einem Systemcrash ausgelöst. Geblieben ist mir nur eine "iobroker-data. Ich habe dann eine neue Instanz mit "iobroker-installer.exe" installiert. Dann die alte "iobroker-data drüber kopiert. VIS läuft ja jetzt wieder. Backups lassen sich per Terminal erzeugen. aber nicht einspielen, ebenso wie Backups aus früheren Instanzen.
-
@willi5 ja da fehlen Dinge in der iobroker.json. Adde mal mindestens den „system“ teil wie hier https://github.com/ioBroker/ioBroker.js-controller/blob/master/packages/controller/conf/iobroker-dist.json#L2
Weiter bitte ein issue im js-Controller repo anlegen weil Backup und restore sollte aufginge system block gehen. Pack die ausgaben von Backup und restore von oben rein.
-
@apollon77
Das ist die "iobroker.json" aus der Installation, die mit dem alten Verzeichnis "iobroker-dat" überschrieben wurde.
Die folgende Version stammt aus einer frischen Installation auf einem 2. PC{ "system": { "memoryLimitMB": 0, "hostname": "", "statisticsInterval": 15000, "// statisticsInterval": "Interval how often the counters for input/output in adapters and controller will be updated", "checkDiskInterval": 300000, "// checkDiskInterval": "Interval how often the disk size will be checked", "instanceStartInterval": 2000, "// noChmod": "Flag to test new feature with no chmod call. Must be deleted later and noChmod must be mainline (2018.06.04)", "compact": false, "// compact": "Controller will try to start the instances as a part of the same process. No spawn will be done. Only by adapters that support it and have flag compact flag in io-package.json", "allowShellCommands": false, "// allowShellCommands": "Allow execution of \"shell\" sendToHost commands", "memLimitWarn": 100, "// memLimitWarn": "If the available RAM is below this threshold on adapter start, a warning will be logged.", "memLimitError": 50, "// memLimitError": "If the available RAM is below this threshold on adapter start, an error will be logged." }, "multihostService": { "enabled": false, "secure": true, "password": "" }, "objects": { "type": "jsonl", "// type": "Possible values: 'file' - [port 9001], 'jsonl' - [port 9001], 'redis' - [port 6379 or 26379 for sentinel].", "host": "127.0.0.1", "port": 9001, "noFileCache": false, "maxQueue": 1000, "connectTimeout": 5000, "writeFileInterval": 5000, "dataDir": "", "options": { "auth_pass": null, "retry_max_delay": 5000, "retry_max_count": 19, "db": 0, "family": 0 }, "backup": { "disabled": false, "files": 24, "// files": "Minimal number of backup files, after the deletion will be executed according to backupTime settings", "hours": 48, "// hours": "All backups older than 48 hours will be deleted. But only if the number of files is greater than of backupNumber", "period": 120, "// period": "by default backup every 2 hours. Time is in minutes. To disable backup set the value to 0", "path": "", "// path": "Absolute path to backup directory or empty to backup in data directory" }, "jsonlOptions": { "// autoCompress (1)": "The JSONL DB is append-only and will contain unnecessary entries after a while.", "// autoCompress (2)": "It will be compressed when the uncompressed size is >= size * sizeFactor AND >= sizeFactorMinimumSize", "// autoCompress (3)": "Note that too low values here will cause the DB to be rewritten often.", "autoCompress": { "sizeFactor": 2, "sizeFactorMinimumSize": 25000 }, "// ignoreReadErrors": "If single lines in the DB are corrupted, they can be ignored without losing the whole DB.", "ignoreReadErrors": true, "// throttleFS (1)": "By default, the database immediately writes to the database file. Write accesses can be reduced using the throttleFS option.", "// throttleFS (2)": "Be aware that buffered changes will be lost in case the process crashes.", "throttleFS": { "// intervalMs": "Write to the database file no more than every intervalMs milliseconds.", "intervalMs": 60000, "// maxBufferedCommands": "Force writing after this many changes have been buffered. This reduces memory consumption and data loss in case of a crash.", "maxBufferedCommands": 100 } } }, "states": { "type": "jsonl", "// type": "Possible values: 'file' - [port 9000], 'redis' - [port 6379].", "host": "127.0.0.1", "port": 9000, "connectTimeout": 5000, "writeFileInterval": 30000, "dataDir": "", "options": { "auth_pass": null, "retry_max_delay": 5000, "retry_max_count": 19, "db": 0, "family": 0 }, "backup": { "disabled": false, "files": 24, "// files": "Minimal number of backup files, after the deletion will be executed according to backupTime settings", "hours": 48, "// hoursC": "All backups older than 48 hours will be deleted. But only if the number of files is greater than of backupNumber", "period": 120, "// period": "by default backup every 2 hours. Time is in minutes. To disable backup set the value to 0", "path": "", "// path": "Absolute path to backup directory or empty to backup in data directory" }, "jsonlOptions": { "// autoCompress (1)": "The JSONL DB is append-only and will contain unnecessary entries after a while.", "// autoCompress (2)": "It will be compressed when the uncompressed size is >= size * sizeFactor AND >= sizeFactorMinimumSize", "// autoCompress (3)": "Note that too low values here will cause the DB to be rewritten often.", "autoCompress": { "sizeFactor": 10, "sizeFactorMinimumSize": 50000 }, "// ignoreReadErrors": "If single lines in the DB are corrupted, they can be ignored without losing the whole DB.", "ignoreReadErrors": true, "// throttleFS (1)": "By default, the database immediately writes to the database file. Write accesses can be reduced using the throttleFS option.", "// throttleFS (2)": "Be aware that buffered changes will be lost in case the process crashes.", "throttleFS": { "// intervalMs": "Write to the database file no more than every intervalMs milliseconds.", "intervalMs": 60000, "// maxBufferedCommands": "Force writing after this many changes have been buffered. This reduces memory consumption and data loss in case of a crash.", "maxBufferedCommands": 2000 } } }, "log": { "level": "info", "maxDays": 7, "noStdout": true, "transport": { "file1": { "type": "file", "enabled": true, "filename": "log/iobroker", "fileext": ".log", "maxSize": null, "maxFiles": null }, "syslog1": { "type": "syslog", "enabled": false, "host": "localhost", "// host": "The host running syslogd, defaults to localhost.", "// port": "The port on the host that syslog is running on, defaults to syslogd's default port(514/UDP).", "protocol": "udp4", "// protocolC": "The network protocol to log over (e.g. tcp4, udp4, unix, unix-connect, etc).", "// path": "The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).", "// facility": "Syslog facility to use (Default: local0).", "localhost": "iobroker", "// localhost": "Host to indicate that log messages are coming from (Default: localhost).", "// sysLogType": "The type of the syslog protocol to use (Default: BSD).", "// app_name": "The name of the application (Default: process.title).", "// eol": "The end of line character to be added to the end of the message (Default: Message without modifications)." }, "seq1": { "type": "seq", "enabled": false, "serverUrl": "http://IP:PORT", "// serverUrl": "The http(s) URL including port of the seq server. If you use HTTPS a real certificate is needed; self signed certs are ot accepted.", "apiKey": "", "// apiKey": "The apiKey of the seq system" } } }, "// dataDir": "Always relative to iobroker.js-controller/", "plugins": {}, "dataDir": "../../iobroker-data/" }
Ich hoffe, ich habe das Issue im im js-Controller einigermaßen verständlich abgelegt.
Wenn nicht bitte meckern. Da ich mit diesem Thema seit einigen Tagen rund um die Uhr beschäftigt bin, kann es sein, das ich ein wenig neben der Spur bin. -
@willi5 ja hast du. Alles gut. Und war schon bekannt Bzw wird in Zukunft gefixt sein.
Und von oben Nummern ganzen „System“ Block. Der fehlt bei dir.
-
@apollon77
Danke für Deine Mühe!!! -
@apollon77
OK, da ich hier noch 'ne Windows-Kiste rumstehen habe, dachte ich mir: Versuch mal Dein Glück.Erster Versuch:
Mit einem bereits installierten Node 16.18.1 passiert gar nix - außer dass ein Verzeichnis "C:\ioBroker" angelegt wird, das genau die berühmten 3 Dateien enthält. Auch nach mehreren Versuchen.
Zweiter Versuch:
OK, also Node wieder runtergeschmissen und den Installer erneut angeschmissen.
Beim ersten Durchlauf wird auch wieder das Verzeichnis mit den 3 Dateien erzeugt.
Nach dem zweiten (und weiteren Durchläufen) bin ich schon mal ein Stückchen weiter:
Aber noch nicht wirklich am Ziel, denn hier ist Ende der Fahnenstange.Dritter Versuch
ioBroker wieder runtergeworfen und versucht von Hand zu installieren.
Vielleicht wird ja jemand schlau daraus:
Hier das Ende des Log:
Mir ist völlig klar, dass ioBroker eigentlich eher unter Linux betrieben werden sollte.
Hab' ich ja auch - und der läuft zu meiner völligen Zufriedenheit.Was ich unter Windows besonders suboptimal finde: Die Dokumentation ist inkonsistent und verwirrend.
Es gibt zum Einen diesen Thread hier.
Zum anderen gibt's die "offizielle" Webseite. Diese enthält einen völlig anderen Installer (welcher ist denn nun der richtige?) und völlig abweichende Instruktionen.
Und in meinem Installationsverzeichnis unter Windows finde ich eine ReadmeC:\ioBroker\README.md
, die wieder gänzlich andere (vermutlich veraltete) Instruktionen enthält.
Kann mir da mal jemand Licht ans Fahrrad machen?
-
@codierknecht sagte in Test ioBroker unter Windows installieren - 2022 Edition:
Die Dokumentation ist inkonsistent und verwirrend.
Es gibt zum Einen diesen Thread hier.
Zum anderen gibt's die "offizielle" Webseite. Diese enthält einen völlig anderen Installer (welcher ist denn nun der richtige?) und völlig abweichende Instruktionen.und der lautet: Test ioBroker unter Windows installieren - 2022 Edition
Warum wohl?
etwas neues testen damit das als Nachfolger das alte System ersetzen kann! -
@codierknecht Ja, die Doku für Win und auch der Win Support allgemein ist etwas stiefmütterlich.
Wenn man mal die Anfangsschwierigkeiten durch hat, geht es aber prima!
Ich habe aber kürzlich meinen ioBroker Win Rechner in die zweite Reihe gestellt (andere Aufgaben) und durch einen etwas neueren ersetzt.Dabei habe ich im Verlauf der Installation einfach das iobroker-data Verzeichnis vom Spender rechner zum neueren Rechner kopiert. Insofern ist meine Installation nicht typisch.
Hier ein Teil meiner Notizen:
ioBroker runterladen
https://forum.iobroker.net/topic/55185/test-iobroker-unter-windows-installieren-2022-edition?page=1
File: https://iobroker.live/images/win/iobroker-installer.exe
Diese Datei muß zweimal ausgeführt werden – warum auch immer……
Nach dem zweiten Mal kommt eine Setup-Seite. Ich versuche es ohne Setup, weil ich ja ioBroker Data habe.
Im Win programmausführfeld links unten ioBroker eingeben Dort gibt es dann ein ioBroker Service, z.B. „Stop ioBroker Service“ oder „Start ioBroker Service“ – je nach aktuellem ZustandVielleicht hilft es ein Stück weiter.
Noch ein Hinweis: ioBroker verwendet Port 9001 , Dieser Port wurde allerdings mal von Intel für Graphik beschlagnahmt.
Dazu gibt es einen workaround. Ich zitiere:
https://github.com/eclipse/mosquitto/issues/1580
SOLVED :: SOLUTION:
This is a intel graphics card software related issue on windows 10.
How to fix:
In windows, go to:
• Start menu
• Type: Services
• Find the service called: Intel(R) Graphics Command Center Service
• Rightclick > Properties > Startup type = Disabled
This fixed the problem for me..
- Für den ziemlich alten RFLink-Adapter mußte ich noch Python installieren.
- Der ESPHome Adapter hat leider gar nicht mehr übersetzt. Ich habe dann meine ESPHome-Herde auf MQTT umgestellt.
Ansonsten läuft alles stabil und ist wie bei Windows üblich gut zu administrieren. Auf meinem Rechner ist Win 10 Pro und damit auch Remotedesktop. Works a treat.
-
@homoran
OK, verstanden. Es geht also nur um den Installer selbst. Dass die mit installierte Doku noch nicht dazu passt, wird dann offenbar erst später gefixt.Aber egal wie ich es drehe und wende: Der Installer lässt irgendwie "das Messer im Schwein stecken".
Dass er ioB nur halb (wenn überhaupt) installiert hat, kriegt er offenbar nicht mit.
Das Verzeichnisnode_modules
wird nicht erzeugt, demnach auch nix reinkopiert und alles weitere funzt dann natürlich auch nicht.Gibt's einen optionalen Parameter, mit dem man den Installer in einen "Debug-Mode" versetzen kann?
-
@klassisch sagte in Test ioBroker unter Windows installieren - 2022 Edition:
Vielleicht hilft es ein Stück weiter.
Nicht wirklich.
Egal wie ich es drehe und wende: Ob mit Installer oder "von Hand" (npx @iobroker/install
), es wird nur halb installiert.
Bei der Installation "von Hand" erhalte ich zumindest mal weitere Informationen - auch wenn die mich persönlich nicht wirklich weiterbringen.2885 info run diskusage@1.1.3 install { code: 0, signal: null } 2886 timing build:run:install:node_modules/diskusage Completed in 10838ms 2887 info run iobroker.js-controller@4.0.23 install { code: 22, signal: null } 2888 timing reify:rollback:createSparse Completed in 2480ms 2889 timing reify:rollback:retireShallow Completed in 0ms 2890 timing command:install Completed in 57523ms 2891 verbose stack Error: command failed 2891 verbose stack at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\promise-spawn\lib\index.js:63:27) 2891 verbose stack at ChildProcess.emit (node:events:513:28) 2891 verbose stack at maybeClose (node:internal/child_process:1100:16) 2891 verbose stack at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5) 2892 verbose pkgid iobroker.js-controller@4.0.23 2893 verbose cwd C:\ioBroker 2894 verbose Windows_NT 10.0.19045 2895 verbose node v16.18.1 2896 verbose npm v8.19.2 2897 error code 22 2898 error path C:\ioBroker\node_modules\iobroker.js-controller 2899 error command failed 2900 error command C:\Windows\system32\cmd.exe /d /s /c node iobroker.js setup first 2901 error creating conf/iobroker.json 2901 error No connection to databases possible ... 2902 verbose exit 22
Zur Info: Es handelt sich hier nicht um eine frische Windows-Installation, sondern um ein laufendes Entwicklungssystem. Es sind also bereits diverse Tools aus dem Windows-SDK installiert.
Nachtrag:
Das Problem betrifft offenbar nicht den Installer selbst, sondern npm.
Irgendwas kann da nicht korrekt installiert werden.
Ich hab' nur leider von Node und seinem Package-Manager keinen blassen Schimmer -