Eigene IP_FHEM_Adresse und zwei FHEM Instanzen

Begonnen von Damu, 30 Dezember 2016, 16:24:48

Vorheriges Thema - Nächstes Thema

Damu

Hallo

Ein Modul das FHEM mit verschiedenen fhem.cfg laden kann und FHEM auch eine eigene IP Adresse zuteilt.

Der FHEM Server startet. Ein Modul kontrolliert ob die einzustellende A_IP-Adresse frei ist.
Wenn ja:A_FHEM wird geladen, FHEM läuft normal mit der eigenen A_IP-Adresse.
Wenn nein: es wird eine andere B_FHEM Installation wird gestartet und erhält die B_IP-Adresse.

Dazu ein Modul das die beiden FHEM A_FHEM und B_FHEM mit wenig Aufwand auf dem gleichen Stand hält.

Backup machen geht schnell aber zurückspielen braucht Handarbeit und halt fremde Programme, FileZilla und Putty.

hexenmeister

bin erst jetzt darauf gestossen...

Mit neuen/verschiedenen IP-Adressen auf einer Maschine dürfte es nur schwer gehen, sie werden ja in Betriebsystem verwaltet, aber mit verschiedenen Ports geht es.
Ich mache so etwas, allerdings nicht aus FHEM heraus, sondern aus einem vorgelagerten Perl-Script. Dieser startet (je nach Konfiguration) mehrere FHEM-Instances mit verschiedenen "fhem.cfg" und überwacht diese, ob sie noch laufen (und startet sie ggf neu).

Script liegt hier: https://github.com/hexenmeister/fhem-watchdog
Bei Bedarf kann ich etwas mehr Erklärungen nachreichen.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

betateilchen

Die configDB kann sowas von Haus aus.

Zitat von: hexenmeister am 17 Juni 2017, 12:30:17
Mit neuen/verschiedenen IP-Adressen auf einer Maschine dürfte es nur schwer gehen, sie werden ja in Betriebsystem verwaltet,

Und wo ist das Problem? Mein eth0 auf dem Cubietruck hat 4 verschiedene IP Adressen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

eth0:0
eth0:1

Mein Router hat 7.
Aber das Problem ist eher das es wenig User gibt die wissen wie man sowas ohne Verluste mit FHEM macht und noch viel viel weniger die sowas unter Linux beherrschen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

hexenmeister

Zitat von: betateilchen am 17 Juni 2017, 19:02:03
Die configDB kann sowas von Haus aus.
configDB hat seine Vorteile, für mein Fall (bei meiner Vorliebe für Config-Datien ;D ) brauche ich es eher nicht.

Zitat von: betateilchen am 17 Juni 2017, 19:02:03
Und wo ist das Problem? Mein eth0 auf dem Cubietruck hat 4 verschiedene IP Adressen.
Das ist nicht das Problem, kann man schon machen, aber das in einem FHEM-Modul zu erledigen wäre sicher fehl am Platz.

Mein Script ist einer ein Watchdog für mehrere Instanzes, und weil verschiedene Ports einfacher zu verwenden sind, als IP-Adressen, ging ich den weg des geringsten Widerstandes ;D
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Damu

Vielen Dank für die Antworten

ZitatMit neuen/verschiedenen IP-Adressen auf einer Maschine dürfte es nur schwer gehen, sie werden ja in Betriebsystem verwaltet, aber mit verschiedenen Ports geht es.

Das wäre dann am besten ein Modul in Fhem das mit Admin rechten vom Linux die nötigen IP Adressen im Betriebssystem anpasst?
Oder nur vordefinierte Einstellungen im Betriebssystem aktiviert ginge auch.
Ist mir schon klar das es mit script etc. geht.

Mann kann sehr viel mit FHEM.
Es gibt aber leider noch Sachen die sehr kompliziert sind.
zb.
Backup machen geht einfach, zurückspielen halt nicht.
Ein Modul wo der Speicherort für das Backup hinterlegt werden kann.
Das einem dann die Backups anzeigt, die dort gemacht wurden.
Und per klick ein Backup macht und auch ein Backup zurückspielen kann.
Das braucht aber natürlich auch Admin Rechte für Linux.

hexenmeister

Zitat von: Damu am 18 Juni 2017, 10:52:30
Das wäre dann am besten ein Modul in Fhem das mit Admin rechten vom Linux die nötigen IP Adressen im Betriebssystem anpasst?
FHEM mit Admin (root) Rechten laufen zu lassen halte ich für eine sehr schlechte Idee.
Und für die Verwaltung von IP-Adressen ist FHEM schlicht und einfach nicht da. "Golden hammer" war schon immer ein AntiPattern ;)


Was ist Dein eigentlicher Anwendungsfall?
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

marvin78

Ein FHEM-Modul, dass ein FHEM Backup zurückspielen kann, macht mEn gar keinen Sinn. Zurückspielen muss man sicher in 99,9% der Fälle, wenn FHEM nicht mehr läuft. Dann hilft einem das Modul nicht. Für alles andere gibt es restore (und nur da macht es Sinn).

Damu

Ich habe ein FHEM Server der immer läuft.
Ich habe den Server nochmals als reserve wenn der Hauptserver mal aussteigt.
Ich möchte den Aufwand für die Wartung etc. etwas vereinfachen.
Die Kameras senden auch Meldungen zu FHEM.
Wenn der FHEM server ein anderer mit Anderer IP ist muss das alles immer angepasst werden.

Das mit dem Goldenen Hammer verstehe ich.
Vielleicht ein Script das Mann mit Fhem ausführen kann, das dem FHEM Server eine zweite Adresse zuweist, und eines das die zugewiesene Adresse wieder entfernt.

Allen FHEM Server die selbe IP Adresse zuweisen finde ich eine schlechte Ide,
Eine Zweite IP Adresse und wenn möglich diese nur für FHEM und wenn diese zusätzlich noch aktiviert und deaktiviert werden kann ist natürlich viel besser.

hexenmeister

Verstehe... Hot standby.
Gute Idee, aber... dem FHEM anzuvertrauen, IP-Adressen zu verwalten, ist gefährlich. Das muss viel tiefer ins Betriebssystem, oder besser als eine zusätzliche Komponente vor den Rechnern (also keine mehrfach-IPs).
Es muss ja nicht nur eine zusätzliche IP angemeldet werden, sondern auch die andere unbedingt weg. Zwei gleiche IPs im Netzwerk bringen alles durcheinander, dann laufen beide nicht mehr rund. Was soll FHEM2 machen, wenn Server1 noch online ist, aber FHEM1 schon tot? Server1 umkonfigurieren? Wodurch? Und wenn der Server nicht mehr korrekt ansprechbar ist, aber die IP noch durchaus erreichbar ist?
Meiner Meinung nach kann das so nicht zuverlässig funktionieren.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

herrmannj

2 x fhem virtualisiert und auf dem host iptables plus script welches, je nach Zustand, routet ?

Frage dann: wie hält man die beiden Instanzen synchron ?

vg
joerg

hexenmeister

Virtualisiert retten nicht von Host-Ausfall.
Mir reichen FHEM mit Watchdog, der die Instanz überwacht plus Hardware-Watchdog fürs Betriebssystem.
Wenns wirklich besonders wichtig ist, könnte man zwei Rechner identisch konfigurieren und durch einen externen Watchdog (Arduino?) Ein- uns Ausschalten lassen (Cold standby). Problem des Synchronisierens bleibt noch. Dafür könnte man (stündlich?) den Haupt-FHEM auf NAS sichern und beim Start des Reservesystems automatisch den letzten Backup ziehen. Ist mir aber zu kompliziert. Eine Reserve-Boot-SDCard in der Schublade reicht mir  ;)
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Damu

ZitatWas soll FHEM2 machen, wenn Server1 noch online ist, aber FHEM1 schon tot? Server1 umkonfigurieren?
Wenn FHEM startet die FHEM IP nur freigeben wenn Sie nicht benutzt wird.
Wiese muss dann die erste IP weg?
Mobotix hat auch zwei als Standart gesetzt.



hexenmeister

Ich meine die zweite gleiche IP von dem anderen Rechner. Zwei gleiche im Netzwerk wäre eine Katastrophe.
Wie bringt dieses Verfahren, wenn erste Fhem hängt/abstürzt, die IP aber schon belegt hat? Solche Mechanismen können nur wirken, wenn sie deutlich tiefer verankert sind. 
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

Damu

ZitatIch meine die zweite gleiche IP von dem anderen Rechner
Dershalb meine ich das beim FHEM Start, Fhem kontrolliert ob die Adresse benutzt wird, und wenn Sie frei ist,
Meine Ide ist das FHEM beim Start zuerst eine start_fhem.cfg diese kann dann wenn nötig den anderen FHEM Server ausschalten, bei mir vielleicht über ssh wie ein Synology, und wenn das nicht geht über das Infratec IP-Switch.
Dort habe ich zwei Nuc und ein PI3 angeschlossen.
Das Infratec IP Switch hat Bistabile Relais, es braucht kein Haltestrom. Nur die Elektronik und das Anzeige LED braucht Strom.
Hab es auch mal mit einem APC IP Switch versucht, braucht 3.5 Watt wenn alles aus ist und 14 Watt wenn alle (16 ein sind) ein sind.
Das Infraten braucht glaube 3.5 Watt wenn alles aus ist und 4.5 Watt wenn alles ein ist (8).
An dem Infratec ist aber auch noch Fernseher und Radio, wenn ich diese im Tag nur 30 Minuten vom Standby ausschalte, hab ich den Strom für das Infratec gesparrt.
Eines hab ich umgebaut, das heisst Trafo gegen ein Schaltnetzteil ersetzt, das brauch nun  0.9  Watt weniger.
Die beiden NUC und das PI3 sind auch am Infratec.
Wenn eines nicht erreichbar ist aber trotzdem läuft kann ich es so über das Infratec trotzdem ausschalten (NOT_AUS), oder neu starten.
Die start_fhem.cfg kann wenn alles stimmt automatisch oder auch manuel die normale fhem.cfg laden etc.

ist nur eine Ide.