NEWS
Multihost Installation
-
Bitte beachten: States geht auf redis. objects geht NICHT auf redis aktuell. Das wird mit js-Controller 2.0.0 neuer cooler besser gehen.
Also einfach Objekts immer auf file konfigurieren und alles tut
-
@apollon77 danke dir für den Hinweis..Ich komme leider gar nicht so weit, dass mir sowas auffallen könnte. Hast du eine Idee was der Fehler in meinem System sein könnte bzw was ich falsch gemacht habe, dass der multihost bei mir nicht läuft und auch nicht unter dem Master angezeigt wird?
-
@Mapio90
Naja, apollon77 hat doch geschrieben was der Fehler war:@apollon77 sagte in Multihost Installation:
Also einfach Objekts immer auf file konfigurieren und alles tut
Also:
Type of objects DB [file, couch, redis], default [file]: file !!!!!! Host of objects DB(file), default[127.0.0.1]: 0.0.0.0 Port of objects DB(file), default[9001]: ENTER Type of states DB [file, redis], default [file]: redis Host of states DB (file), default[0.0.0.0]: ENTER Port of states DB (file), default[9000]: ENTER Host name of this machine [hostname]: Master
-
@Thisoft das ist mir soweit bewusst, nur.... ist dass das Problem, wieso ich nicht mal den slave auf dem Master hosts sehe?.
-
@Mapio90 Ja, weil ein Slave für den Master erst mal nur ein Objekt ist.
-
Wenn der Slave korrekt verbunden ist dann wird er angezeigt im Admin. Der Master sucht nicht nach dem Slave, sondern der Slave sagt dem Master "huhu, ich bin hier"
-
@Thisoft AM besten fasse nochmal den Stand zusammen, blicke bei den Infos oben nicht 100% durch was jetzt aktuell ist.
Soll wäre:
- Auf dem Master läuft ein Redis der nicht nur lokal sondern auch vom Slave aus erreichbar ist
- Der Master connected für states zu dem (gern 127.0.0.1 weil ja lokal)
- Der Slave bekommt die IP vpm Master bei der States konfig weil der ja auff die States DB vom Master connected
- Der Slave bekommt bei Objekten auch die IP von Master nur halt nicht redis sondern File
- Der Master muss zugriff auf die FileDB von aussen erlauben
-
@apollon77 JA, so wäre wohl das Soll. Jetzt muss es nur der TE auch noch so verstehen und umsetzen
-
@apollon77 ok, gut das wäre der optimale Fall.Ich weiß nicht in wie fern du die Zeit hast dir meine Beiträge von oben durch zu lesen (nicht böse gemeint aber ich bin in Sachen iobroker neuling und Frage lieber 2 mal nach bis ich es verstanden habe), aber ich möchte eigentlich nicht wieder was versuchen zu konfigurieren( multihost) und später bin ich wieder auf dem Stand, dass ich nicht mehr auf die weboberfläche vom iobroker komme. Oben sieht man wie ich den Master und den slave versucht habe zu "verbinden" die aktuelle Methode wie von dir bzw @Thisoft gesagt, habe ich noch nicht versucht, aus Angst, dass mir langsam die Lust vergeht
-
@Mapio90 sagte in Multihost Installation:
Frage lieber 2 mal nach bis ich es verstanden habe),
Mir geht es dadurch leider wie Apollon. Ich weiss inzwischen nicht mehr was bei dir der Status ist.
Daher wäre es schön, wenn Du mal kurz und knapp den aktuellen Zustand beschreibst, wie es apollon als liste gemacht hat.Dann bekommen wir dein System auch ans laufen.
-
@Homoran ok.
Zu meinem vorgehen:
ich habe bei beiden raspis ein neues image drauf gespielt. Ich meine es müsste das image hier vom Forum sein -> ioBroker_Image_RPi_2-3_20190128_stretch.img
dann habe ich beide über raspi config angepasst.. namen, zeitzone, volle speichernutzung, eigentlich bin ich nach dem video vorgegangen https://www.youtube.com/watch?v=cThlN8In9mk&t=2318s. bis zur 30sten minute bei beiden raspis gleich vorgegenagen, nur unterschiedliche hostsnamen gegeben.
anschließend musste ich das backup beim master iobroker wieder aufspielen.
daraufhin kam ich nicht mehr auf die weboberfläche.
durch die kommandos:curl -sL https://iobroker.net/fix.sh | bash -
sudo reboothatte ich wieder zugriff auf die oberfläche.
4be23fbd-fa5e-4e0b-b7e6-5317df1c4ba1-grafik.png
nodejs: 8.16.0
node : 8.16.0
npm : 6.4.1dann habe ich folgendes gemacht...
Type of objects DB [(f)ile, (c)ouch, (r)edis], default [file]: r
Host / Unix Socket of objects DB(redis), default[127.0.0.1]: 0.0.0.0
Port of objects DB(redis), default[6379]:
Type of states DB [(f)file, (r)edis], default [redis]: r
Host / Unix Socket of states DB (redis), default[0.0.0.0]:
Port of states DB (redis), default[6379]:
Host name of this machine [Master]: Master
auf dem slave:
Type of objects DB [file, couch, redis], default [file]: r
Host of objects DB(file), default[127.0.0.1]: 192.168.178.34
Port of objects DB(file), default[9001]: ENTER
Type of states DB [file, redis], default [file]: r
Host of states DB (file), default[cubie]:192.168.178.34
Port of states DB (file), default[9000]: ENTER
Host name of this machine [hostname]: second-device
dann bin ich auf die Weboberfläche vom Master und es hat kein second-device angezeigt.
(wie es laut der beschreibung eigentlich sein sollte)Der Cloud Adapter ist jetzt auch Rot mit nachfolgenden LOG:
Verbunden mit Host: falsch
Lebenszeichen : falsch
Verbunden mit Cloud: falschhost.Master 2019-05-04 12:14:16.483 info Restart adapter system.adapter.cloud.0 because enabled
host.Master 2019-05-04 12:14:16.483 error instance system.adapter.cloud.0 terminated with code 0 (OK)
host.Master 2019-05-04 12:14:16.482 error Caught by controller[0]: at Socket.<anonymous> (/opt/iobroker/node_modules/redis/index.js:274:27)
host.Master 2019-05-04 12:14:16.482 error Caught by controller[0]: at JavascriptRedisParser.execute (/opt/iobroker/node_modules/redis-parser/lib/parser.js:574:12)
host.Master 2019-05-04 12:14:16.482 error Caught by controller[0]: at JavascriptRedisParser.returnReply (/opt/iobroker/node_modules/redis/index.js:192:18)
host.Master 2019-05-04 12:14:16.482 error Caught by controller[0]: at RedisClient.return_reply (/opt/iobroker/node_modules/redis/index.js:824:9)
host.Master 2019-05-04 12:14:16.482 error Caught by controller[0]: at normal_reply (/opt/iobroker/node_modules/redis/index.js:726:21)
host.Master 2019-05-04 12:14:16.481 error Caught by controller[0]: at Command.callback (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:236:17)
host.Master 2019-05-04 12:14:16.481 error Caught by controller[0]: at /opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:782:22
host.Master 2019-05-04 12:14:16.481 error Caught by controller[0]: at Adapter.getForeignObject (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:1642:26)
host.Master 2019-05-04 12:14:16.481 error Caught by controller[0]: at ObjectsInRedis.getObject (/opt/iobroker/node_modules/iobroker.js-controller/lib/objects/objectsInRedis.js:1184:13)
host.Master 2019-05-04 12:14:16.480 error Caught by controller[0]: at checkObjectRights (/opt/iobroker/node_modules/iobroker.js-controller/lib/objects/objectsInRedis.js:990:26)
host.Master 2019-05-04 12:14:16.480 error Caught by controller[0]: ReferenceError: id is not defined
host.Master 2019-05-04 12:14:15.054 info instance system.adapter.cloud.0 started with pid 19950
0dann vergeblich versucht dieses auszuführen:
nano /etc/redis/redis.conf
Die darin enthaltene Zeile
bind 127.0.0.1muss mit der IP des Netzwerkadapters ergänzt werden, damit der Redis-Server connects von extern zulässt. Also zB
bind 127.0.0.1 192.168.1.10unter der Annahme, dass 192.168.1.10 die lokale IP des ioBroker Masters ist.
Diese Anpassung ist auch nur am Master nötig.Alternativ geht auch
bind 0.0.0.0
Zum Schluss den Redis-Server oder Rechner neu starten. zB:
sudo service redis-server restartkomme ich wieder nicht mehr auf die Weboberfläche vom master-
STAND JETZT HABE ICH DEN MASTER NEU AUFGESETZT DURCH EIN BACKUP.
JETZT LÄUFT SOWEIT WIEDER ALLES. ABER EINEN MULTIHOST-VERSUCH WAGE ICH OHNE HILFE LEIDER NICHT MEHR: DANKE EUCH SCHON MAL VIELMALS FÜR EURE HILFE.
@apollon77 @AlCalzone @Homoran @Thisoft -
@Mapio90 Also meines Erachtens solltest du jetzt auf dem Master folgendes tun
iobroker setup custom
dann
Type of objects DB [file, couch, redis], default [file]: file !!!!!! Host of objects DB(file), default[127.0.0.1]: 0.0.0.0 Port of objects DB(file), default[9001]: ENTER Type of states DB [file, redis], default [file]: redis Host of states DB (file), default[0.0.0.0]: ENTER Port of states DB (file), default[9000]: ENTER Host name of this machine [hostname]: Master
eben diesmal mit dem entscheidenden Unterschied Type of objects DB auf "file" zu belassen und nur für die states redis zu verwenden. Danach sollte auf dem Master noch bzw. wieder alles wie gewohnt funktionieren. Wenn das klappt kannst du den Slave entsprechend konfigurieren.
-
@Mapio90
Die Images aus 2019 enthalten kein redis mehr.Wenn du es nicht installiert hast darfst du bei der multihost Konfiguration nicht auf redis stellen.
AUSSER:
Die Installation von der das Backup stammt lief unter redis. DANN MUSST du aber vor dem restore redis installieren mitsudo apt install redis-server
Aber nur dann!!
-
@Homoran GENAU, nach dem backup musste ich den befehl "sudo apt install redis-server" eingeben um wieder auf den admin auf der weboberfläche zu kommen.
-
@Mapio90
Dann stammte dein Backup aus einer Installation mit Redis.Ich glaube das hatte ich ganz zu Anfang gefragt.
-
@Mapio90 dann ist doch eigentlich alles klar und ergibt jetzt sogar einen logischen und schlüssigen Grund warum dein Multihost-Setup so wie du's gemacht hattest nicht funktioniert hat...
-
@Thisoft also ist es richtig, dass ich nach dieser Methode vorgehen kann!?
Type of objects DB [file, couch, redis], default [file]: file !!!!!!
Host of objects DB(file), default[127.0.0.1]: 0.0.0.0
Port of objects DB(file), default[9001]: ENTER
Type of states DB [file, redis], default [file]: redis
Host of states DB (file), default[0.0.0.0]: ENTER
Port of states DB (file), default[9000]: ENTER
Host name of this machine [hostname]: Master
**kann ich den slave überschreiben und genau so anpassen wie den Master? Oder muss ich den slave neu aufsetzen?ich versuch heute Mittag dann noch mal mein Glück **
-
@Mapio90 sagte in Multihost Installation:
also ist es richtig, dass ich nach dieser Methode vorgehen kann!?
Ja!
so steht es ja in der Dokuaber ohne die !!!
@Mapio90 sagte in Multihost Installation:
kann ich den slave überschreiben und genau so anpassen wie den Master?
Da verstehe ich nicht was du meinst?
Beim Slave musst du aber in der Konfiguration die IP des Masters eingeben
-
@Homoran sagte in Multihost Installation:
aber ohne die !!!
Das dachte ich mir
Auf dem slave ist folgender stand.
Type of objects DB [file, couch, redis], default [file]: r
Host of objects DB(file), default[127.0.0.1]: 192.168.178.34
Port of objects DB(file), default[9001]: ENTER
Type of states DB [file, redis], default [file]: r
Host of states DB (file), default[cubie]:192.168.178.34
Port of states DB (file), default[9000]: ENTER
Host name of this machine [hostname]: second-device
Und da in der ersten Zeile (fett markiert), da kein "r" rein darf, sondern ein "file" muss ich es ja die konfig nochmal durchführen. Damit mein ich ob ich den slave nochmal überschreiben kann und zwar so
Type of objects DB [file, couch, redis], default [file]: file
Host of objects DB(file), default[127.0.0.1]: 192.168.178.34
Port of objects DB(file), default[9001]: ENTER
Type of states DB [file, redis], default [file]: r
Host of states DB (file), default[cubie]:192.168.178.34
Port of states DB (file), default[9000]: ENTER
Host name of this machine [hostname]: second-device
Richtig?
-
@Mapio90 sagte in Multihost Installation:
Richtig?
Ich denke ja.
Ich tue mich immer etwas schwer komplette Passagen, die ja getestet in der Doku stehen unterwegs auf dem Handy nochmal vollständig zu vergleichen.