NEWS
laufende Iobroker auf Multihost umstellen
-
Wie muß ich vorgehen um eine bestehende Installation von 3 IObrokern auf
1 x Master + 3 x Slave umzustellen
Auf allen befinden sich bereit einige Adapter installiert. Da auf den 3 "zukünftigen Slaves" auch Zigbee und Zwave Geräte installiert sind, möchte ich dies nicht verlieren.
Wie ist das korrekte Vorgehen?
Alle sind auf dem gleichen Stand was node.js 12.18.3
-
@hartwigm sagte in laufende Iobroker auf Multihost umstellen:
Auf allen befinden sich bereit einige Adapter installiert
dann wird es kritisch.
Die Slaves sollten oder müssen nur den js-controller und den Admin haben, alles andere MUSS über den Master verwaltet werden.
Ob man deine bestehenden Konfigurationen (gerade Zigbee und Zwave) komplett auf ein anders System kopieren kann weiß ich nicht, da ich diese beiden nicht nutze und es entsprechend auch nicht probiert habe.
ich habe das schon einmal mit dem SNMP Adapter gemacht, der ja auch sehr viele Konfigurationsparameter hat, indem ich von "irgendeinem system.x" Datenpunkt die Konfigurationen kopiert hatte.
Müsste ich dann mal suchen was das genau war, und du müsstest das testen, ob das bei den beiden Adaptern auch geht
-
@Homoran sagte in laufende Iobroker auf Multihost umstellen:
indem ich von "irgendeinem system.x" Datenpunkt die Konfigurationen kopiert hatte.
Das wäre unter Objekte: den Experten-Modus einschalten:
Dann findest du alle Adapter-Instanzen unter
system.adapter.<adapter>.<instanz>
:
Dann rechts auf den Bearbeiten Knopf und im Dialog unter "Raw (Experts Only)" zum JSON Knoten "native" navigieren. Dort stehen alle Einstellungen.
-
@hartwigm Eine andere Variante wäre über Backup / Restore und dann manuell die Backup-Datei anpassen, aber auch das ist gefährlich.
-
@UncleSam
Danke!Das war es!
-
@hartwigm sagte in laufende Iobroker auf Multihost umstellen:
Zwave Geräte installiert sind
Z-Wave speichert die Konfiguration im Stick. Beim Umzug wird es zwar nötig sein, alle Geräte neu zu interviewen, um die Daten in ioBroker zu bekommen (was eine Weile dauert). Das Netz an sich und sämtliche Konfiguration/Verknüpfungen bleiben aber bestehen.
-
@Homoran Hallo, ich hatte in einem andferen Thread diverse Probleme gepostet nachdem es bei meinem Master die SD Karte geschrägt hat. Ich habe den jetzt soweit wieder manuell aufgesetzt, dass die "Grundfunktionalitäten" in meinem Haus wieder laufen. Nur mal zur Sicherheit nachgefragt: Ich habe zusätzlich 2 Slaves. Der Master ist jetzt komplett frisch aufgesetzt (aber noch nicht als Master konfiguriert sondern als Einzelsystem). Ich sollte also die Slaves auch "plattmachen", neu mit iobroker aufsetzen und dann Multihost einrichten, sprich Mulithost aktivieren und dann vom Master die entsprechenden Instanzen verschieben?
-
@amg_666 sagte in laufende Iobroker auf Multihost umstellen:
Ich sollte also die Slaves auch "plattmachen", neu mit iobroker aufsetzen und dann Multihost einrichten, sprich Mulithost aktivieren und dann vom Master die entsprechenden Instanzen verschieben?
Das wäre aus meiner Sicht die korrekteste Möglichkeit.
Wenn du allerdings deinen neuen Master aus einem Backup hergestallt hast und dort auch schon die Daten der Slaves drin sind, müsstest du auch ganz einfach die Multihost-Installation wieder aufleben lassen können.
-
@Homoran Ne, ich hab das Backup eingespielt und nur PRobleme gehabt, daraufhin habe ich schweren Herzens alles frisch aufgesetzt und manuell konfiguriert...
Wenn ich jetzt zum Beispiel "daswetter" auf den Slave bringen will, dann installiere ich die Instanz auf den Master, gehe dann auf Instanzen und würde der Instanz da in der Expertenansicht den Slave zuweisen ? Oder kann ich auf dem Master im Reiter "Adapter" den Adapter direkt auf den Slave installieren? Ist vielleicht ne dumme Frage aber ich möchte es diesmal so richtig wie möglich machen -
@amg_666 sagte in laufende Iobroker auf Multihost umstellen:
dann installiere ich die Instanz auf den Master, gehe dann auf Instanzen und würde der Instanz da in der Expertenansicht den Slave zuweisen ? Oder kann ich auf dem Master im Reiter "Adapter" den Adapter direkt auf den Slave installieren?
geht beides.
Was "richtig" ist, kann man diskutieren.
Auf der Seite "Adapter" in der titelzeile direkt den richtigen Host aussuchen und dann mit dem (+) dort die Instanz installieren wäre für mich die Methode der Wahl. -
@amg_666 sagte in laufende Iobroker auf Multihost umstellen:
Ich sollte also die Slaves auch "plattmachen", neu mit iobroker aufsetzen und dann Multihost einrichten, sprich Mulithost aktivieren und dann vom Master die entsprechenden Instanzen verschieben?
Wie @Homoran schon gesagt hat: das würde ich mir sparen. Slaves sind "dumm:" beim Aufstarten fragen sie den Master an, welche Adapter mit welcher Konfiguration wo laufen sollen. Der Master schickt eine Liste aller Adapter-Instanzen und der Slave entscheidet dann, welche er bei sich ausführen muss (dabei achtet er auf den Hostnamen). Wenn nötig installiert der Slave dann auch die Adapter und startet sie danach.
Du kannst also entweder das Backup zurückspielen (was bei dir ja scheinbar nicht mehr ging) oder einfach direkt die Adapter in den entsprechenden Hosts installieren und eine Instanz erstellen.
Übrigens: Backups sind "lesbare" Dateien. Wenn du deine alte Konfiguration anschauen willst, kannst du das in der Backup-Datei jederzeit machen. Zudem kannst du (wenn du etwas Risiko liebst
) auch einzelne Konfigurationen direkt in die neuen Adapter kopieren: schalte im Objektbaum die Expertenansicht an und bearbeite die Einstellungen einer Adapter-Instanz (Name:
system.adapter.<name>.<instanz>
) unter "RAW (EXPERTS ONLY)" kannst du unter"native"
direkt die alte Konfiguration rein kopieren. Aber bedenke: ich habe 2x "Experte" und 1x "Risiko" geschrieben! -
@UncleSam sagte in laufende Iobroker auf Multihost umstellen:
Aber bedenke: ich habe 2x "Experte" und 1x "Risiko" geschrieben!
-
@Homoran Ich muss nochmal nerven (soll ich das ggf in einemeigenen Thread aufmachen?):
Ich habe meinen "Master" neu aufgesetzt (neue SD Karte, Raspian drauf und dann mit "curl -sLf https://deb.nodesource.com/setup_10.x | sudo -E bash -" etc iobroker drauf. Das war soweit auch alles ok, diverse Adapter habe ich dann manuell aufgespielt.
Danach habe ich einen Slave neu aufgesetzt (wie Master, neue SD Karte etc), dem Slave einen neuen Hostnamen gegeben, den Hostnamen in /etc/hosts eingetragen und dann multihost eingerichtet.Soweit alles gut, Master erkennt den Slave und ich konnte einige Adapter vom Master auf den Slave verschieben.
Mein Problem ist nun, dass ich den "vis" Adapter vom Master auf den Slave geschoben habe und jetzt keine weiteren Adapter installieren kann. Beispiel vis-gauge (Versuch vom Master aus direkt auf den Slave zu installieren:$ ./iobroker add vis-justgage --host VIS host.Master install adapter vis-justgage upload [2] vis-justgage.admin /opt/iobroker/node_modules/iobroker.vis-justgage/admin/justgage.png justgage.png image/png upload [1] vis-justgage.admin /opt/iobroker/node_modules/iobroker.vis-justgage/admin/index_m.html index_m.html text/html upload [0] vis-justgage.admin /opt/iobroker/node_modules/iobroker.vis-justgage/admin/index.html index.html text/html INFO: Directory "/opt/iobroker/node_modules/iobroker.vis-justgage/www" was not found! Nothing was uploaded or deleted. Adapter "system.adapter.vis.0" restarted. ERROR: host.Master Required dependency "vis" not found on this host. INFO: Directory "for vis.admin" was not found! Nothing was uploaded or deleted. INFO: Directory "for vis" was not found! Nothing was uploaded or deleted. ERROR: host.Master error: this adapter does not allow multiple instances ERROR: process exited with code 19
Aber wenn ich auf dem Slave die Instanzen anschaue sieht das doch gut aus (??) Er meckert auch an dass er vis nicht auf dem Master findet, ich habe aber als Ziel den Slave (der heisst bei mir VIS) gewählt.
pi@VIS:/opt/iobroker $ iobroker list instances + system.adapter.admin.0 : admin - enabled, por t: 8081, bind: 0.0.0.0, run as: admin system.adapter.alexa2.0 : alexa2 - disabled + system.adapter.backitup.0 : backitup - enabled system.adapter.daswetter.0 : daswetter - enabled + system.adapter.discovery.0 : discovery - enabled + system.adapter.history.0 : history - enabled + system.adapter.hm-rega.0 : hm-rega - enabled + system.adapter.hm-rpc.0 : hm-rpc - enabled, por t: 0 + system.adapter.hm-rpc.1 : hm-rpc - enabled, por t: 0 + system.adapter.hm-rpc.2 : hm-rpc - enabled, por t: 0 + system.adapter.hm-rpc.3 : hm-rpc - enabled, por t: 0 system.adapter.ical.0 : ical - enabled system.adapter.ical.1 : ical - enabled system.adapter.ical.2 : ical - enabled system.adapter.ical.3 : ical - enabled system.adapter.ical.4 : ical - enabled system.adapter.ical.5 : ical - enabled system.adapter.ical.6 : ical - enabled + system.adapter.info.0 : info - enabled + system.adapter.iot.0 : iot - enabled + system.adapter.javascript.0 : javascript - enabled + system.adapter.klf200.0 : klf200 - enabled + system.adapter.shelly.0 : shelly - enabled, por t: 1882, bind: 0.0.0.0 + system.adapter.shuttercontrol.0 : shuttercontrol - enabled + system.adapter.snmp.0 : snmp - enabled + system.adapter.sonoff.0 : sonoff - enabled, por t: 1883, bind: 0.0.0.0 + system.adapter.tankerkoenig.0 : tankerkoenig - enabled + system.adapter.tr-064.0 : tr-064 - enabled system.adapter.vis.0 : vis - enabled + system.adapter.web.0 : web - enabled, por t: 8082, bind: 0.0.0.0, run as: admin + system.adapter.zigbee.0 : zigbee - enabled, por t: /dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0018E1CB7 4-if00 + instance is alive
-
@amg_666 sagte in laufende Iobroker auf Multihost umstellen:
Er meckert auch an dass er vis nicht auf dem Master findet, ich habe aber als Ziel den Slave (der heisst bei mir VIS) gewählt.
in der Multihost Konfiguration des Slaves werden die Objekte weiterhin auf dem Master verwaltet. Daher sucht er diese natürlich auf dem Master.
Das ist auch der Grund warum vor der Einbindung in ein Master-slave System auf dem Slave nichts installiert sein sollte (außer admin und js-controller) da es sonst immer wieder zu anscheinend unerklärlichen Dingen bei Updates kommt.
So sollte man auch tunlichst nichts über die Konsole auf dem Slave machen, außer dort den js-controller upzudaten.
Bei den restlichen Phänomenen bin ich überfragt, das ist mir persönlich noch nicht begegnet.
-
@Homoran ja, aber genauso habe ich das doch gemacht. Der Slave ist "nackt" aufgesetzt, keine weiteren Adapter. Ich habe dann auf dem Master den vorhandenen vis Adapter dem Slave zugeordnet und das hat auch geklappt.
Jetzt kann ich aber weitere Visualisierungsadapter nicht auf dem Master installieren (meiner Meinung nach richtig, weil ja die vis Instanz da nicht läuft) aber auch nicht auf dem Slave (siehe Fehlerbeschreibung oben)
Per Konsole habe ich auf dem Slave nichts gemacht (ausser natürlich hostname vergeben und multihost herstellen... -
@amg_666 sagte in laufende Iobroker auf Multihost umstellen:
Jetzt kann ich aber weitere Visualisierungsadapter nicht auf dem Master installieren (meiner Meinung nach richtig, weil ja die vis Instanz da nicht läuft)
Ich bin da jetzt auch nicht sicher, aber...
Es kann sein, dass hier wieder der Unterschied zwischen Installation (das muss auf dem Master erfolgen) und Instanziierung (Instanz wird auf dem Slave erstellt) das Problem ist.
Demnach müssten tatsächlich die Adapter erst auf dem Master installiert werden und dann die Instanz auf dem Slave erstellt werden.
Leider wird üblicherweise direkt mit der Insatallation des Adapters auch eine Instanz erstellt. - diesmal wäre das leider auf dem Master und müsste verschoben werden.
Wie gesagt, ist das alles Raterei!Vielleicht ist es auch ein Bug und @apollon77 könnte dazu etwas sagen.
-
-
@Thomas-Braun sagte in laufende Iobroker auf Multihost umstellen:
vis-justgage
fehlt da nicht ein u?
falls du gauge meinst - nein!
justGage Widgets