NEWS
Multihost Installation
-
ich bin schon etwas weiter gekommen...
was ich nicht weiß, ist wie es jetzt mit dem redis weiter geht. @Homoran auf welchen raspi muss das jetzt in putty eingegeben werden? beim master oder second device?
-
@Homoran auch hier, wer lesen kann ist im vorteil. Gebe ich nun nano /etc/redis/redis.conf
beim master ein, kommt folgendes... -
@Mapio90
Dann nimm mal sudo davorsudo nano /etc/redis/redis.conf
-
@Homoran das habe ich auch versucht, mit folgendem Ergebnis
Redis configuration file example.
Note that in order to read the configuration file, Redis must be
started with the file path as first argument:
./redis-server /path/to/redis.conf
Note on units: when memory size is needed, it is possible to specify
it in the usual form of 1k 5GB 4M and so forth:
1k => 1000 bytes
1kb => 1024 bytes
1m => 1000000 bytes
1mb => 1024*1024 bytes
1g => 1000000000 bytes
1gb => 102410241024 bytes
units are case insensitive so 1GB 1Gb 1gB are all the same.
-
-
Die Frage geht natürlich auch an die Allgemeinheit.. bin noch auf dem Stand vor 3 Tagen....komm leider nicht weiter den multihost ins laufen zu bekommen
-
müsste ich eventuell den befehl ausführen?
http://download.redis.io/redis-stable/redis.conf
Change "bind 127.0.0.1" to "bind 0.0.0.0" or to others.
Please restart ioBroker: "iobroker restart"siehe beitrag 39, linkes bild!?
-
Also was Redis betrifft kann ich dir nicht so richtig weiterhelfen, wie gesagt hab ich das nicht im Einsatz, aber wenn die Datei "redis.conf" auf deinem Master gar nicht existiert oder zumindest mit nano nichts Vernünftiges angezeigt wird dann ist da sicher was schief - musst du mal hoffen dass das jemand liest der sich damit auskennt...
Zum Thema dass der Slave nicht in den Hosts erscheint: Warum machst du nicht auf dem Slave einfach mal ein "iobroker setup custom" eben auch wie in der Doku angegeben? Ich meine, mich dunkel zu erinnern dass ich nämlich als die "Automatik" neu war das auch mal probiert habe und so ähnlich gescheitert bin wie du und deshalb eben bei meinem "setup custom" geblieben bin.
-
@Thisoft das heißt, ich geh nach dieser Methode vor:
Installation
Wichtig: Die verschiedenenen Hosts müssen unbedingt eindeutige Hostnamen besitzen.
Dazu installiert man zuerst auf allen verwendeten hosts ganz normal ioBroker.
Auf dem Master wird anschließend iobroker setup custom ausgeführt und die folgenden Eingaben gemacht:
Type of objects DB [file, couch, redis], default [file]: ENTER
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]: ENTER
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]: ENTERAuf den untergeordneten hosts führt man nach der Installation ebenfalls den folgenden Befehl aus:
iobroker setup custom
und trägt dort ein:
Type of objects DB [file, couch, redis], default [file]: ENTER
Host of objects DB(file), default[127.0.0.1]: <IP ADRESSE> vom Hauptsystem
Port of objects DB(file), default[9001]: ENTER
Type of states DB [file, redis], default [file]: ENTER
Host of states DB (file), default[cubie]:<IP ADRESSE> vom Hauptsystem
Port of states DB (file), default[9000]: ENTER
Host name of this machine [hostname]: ENTERNun das untergeordnete System neu starten.
Auf dem Hauptsystem erscheint danach unter Hosts auch der neu angelegte Host.
Müssen beim Master die Sonderzeichen <> mit eingegeben werden bei folgenden
Host of objects DB(file), default[127.0.0.1]: <0.0.0.0>
Und beim slave ebenso die Sonderzeichen <> bei:
Host of states DB (file), default[cubie]:<IP ADRESSE>
Ich glaube das müsste @Homoran wissen!?
Ich Frage nur so genau nach weil ich Fehler ausschließen möchte die mir wieder mein System zerschießen könnten. -
Also - die Sonderzeichen vor und nach der IP-Adresse NICHT mit eingeben!
Im Übrigen musst du, wenn du redis im Einsatz hast natürlich da wo in der Auswahl (z.B.[file, redis]) ein "redis" mit angegeben ist natürlich auch redis auswählen. Also so auf dem Master
Type of objects DB [file, couch, redis], default [file]: redis 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
und auf dem Slave:
Type of objects DB [file, couch, redis], default [file]: redis Host of objects DB(file), default[127.0.0.1]: 192.168.178.xx(Master) Port of objects DB(file), default[9001]: ENTER Type of states DB [file, redis], default [file]: redis Host of states DB (file), default[cubie]:192.168.178.xx(Master) Port of states DB (file), default[9000]: ENTER Host name of this machine [hostname]: second-device
Wobei du nach deinen Eingaben natürlich auch jeweils ENTER drücken musst - auch wenn's jetzt nicht explizit dortsteht…
-
@Thisoft ich bin jetzt nach den schritten vorgegangen. Komme nun nicht mehr auf den second-device aber unter hosts zeigt es mir beim master auch nur den einen an. 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 -
Dass du nicht mehr auf die Admin-Oberfläche des second-device kommst ist völlig normal - die gibt's nicht mehr auf einem Slave.
Den second-device hast du komplett rebootet?
Tja - und dann steht jetzt die Frage nach dem Redis noch im Raum... Wahrscheinlich läuft das noch nicht wirklich, darauf deuten auch die Fehler im Log des Cloud-Adapters hin. Hast du nochmal geschaut, gibt's die Datei "/etc/redis/redis.conf" wirklich nicht bei dir?
-
Ja genau. Wenn ich dass eingebe, kommt das gleiche wie ich zuvor oben gepostet hatte.
-
Hmm - ich fürchte da kann ich dir nicht weiterhelfen. Da musst du warten bis sich jemand meldet der sich mit Redis auskennt...
-
@Mapio90
Das kann nicht seinNano ist ein texteditor, mit dem du die Datei öffenen sollst.
Die Meldung bezieht sich auf das starten der Redis.
Da musst du etwas falsch eingegeben haben. -
@Homoran das war das letzte was ich eingegeben habe...
pi@Master:~ $ iobroker setup custom
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
creating conf/iobroker.json
pi@Master:~ $
pi@Master:~ $
pi@Master:~ $ nano /etc/redis/redis.conf
pi@Master:~ $ sudo nano /etc/redis/redis.conf -
jetzt ist es auch wieder soweit.. nachdem ich nochmal versucht hatte
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 und auch nicht mehr in putty auf den Raspi drauf.
-
putty komm ich nun wieder drauf. Weboberfläche geht nicht mehr! jemand eine hilfreiche idee?
-
@Mapio90
versuch maliobroker start admin.0
da müssten dann zumindest irgend welche Fehlermeldungen kommen. Oder im günstigsten Fall kommst du dann auch wieder auf die Weboberfläche.
-
/opt/iobroker/node_modules/iobroker.js-controller/lib/objects/objectsInRedis.js:990
if (regUser.test(id) || regGroup.test(id)) {
^ReferenceError: id is not defined
at checkObjectRights (/opt/iobroker/node_modules/iobroker.js-controller/lib/objects/objectsInRedis.js:990:26)
at ObjectsInRedis.getObject (/opt/iobroker/node_modules/iobroker.js-controller/lib/objects/objectsInRedis.js:1184:13)
at /opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:229:41
at Object.connected (/opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js:3145:70)
at RedisClient.StateRedis.client.on.error (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:629:68)
at emitNone (events.js:106:13)
at RedisClient.emit (events.js:208:7)
at RedisClient.on_connect (/opt/iobroker/node_modules/redis/index.js:422:10)
at Socket.<anonymous> (/opt/iobroker/node_modules/redis/index.js:268:14)
at Object.onceWrapper (events.js:313:30)