NEWS
Wetterstation mit Sainlogic-Adapter auf 2 Servern
-
Hallo, ich betreibe zwei separate IoBroker-Installationen. Meine Wetterstation habe ich erfolgreich mit dem Sainlogic-Adapter eingebunden.
Listen on all IPs on Port 45000
Pfad: /weatherstation/data
Protocol: Ecowitt
Der Sainlogic Adapter wurde auf der 2. Ibo-Installation mit der gleichen Konfiguration installiert. Die Datenpunkte wurden angelegt. Adapter steht auf grün. Im Log steht "Starting Listener". Leider werden keine Werte geschrieben ("null"). Beim Vergleich der Objektdaten fehlen die "acl" Angaben:
"acl": {
"object": 1636,
"state": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"Hat jemand einen Tipp?
-
@pandia ich vermute das die Wetterstation nicht an 2 Adapter gleichzeitig senden kann. Vermutlich klingt sich der Adapter an der Stelle der App ein.
Wenn du die Daten also unbedingt in 2 Installationen brauchst muss diese entweder von der einen zur anderen senden oder von der anderen holen.
Eine "einfache" Lösung könnte sein das du auf der Installation welche die Daten empfängt eine eigene MQTT-Broker Instanz erstellst in welche du nur die Adapter-Daten spiegelst (kann man in der Instanz einstellen) und auf dem anderen ioBroker per MQTT-Client sich damit verbindet
-
@bananajoe Vielen Dank für deine Rückmeldung.
Die Idee, dass Problem über MQTT zu lösen werde ich gerne ausprobieren. Allerdings ist das für mich Neuland.
Kurz zu den Installationen. Aus Gründen der Ausfallsicherheit laufen bei mir 2 identische IOB-Instanzen. Der Master befindet sich in einem Docker-Container auf dem NAS und ist standardmäßig aktiv. Der zweite befindet sich auf einem Raspi. Hier gibt es ein WatchDog-Skript, welches überwacht, ob der Master zur Verfügung steht. Ist das nicht der Fall wird automatisch auf den Slave umgeschaltet, spricht die Skripte auf diesem gestartet. Akutell kommuniziert die Wetterstation nur mit dem Master. Die Wetterdaten sind jedoch essentiell auf beiden Servern, um die Jalousien zu steuern.Was ist deine Empfehlung für das Aufsetzen des MQTT-Servers? Den Server direkt im IOB-Master aufzusetzen schließe ich aus, denn wenn dieser auffällt hilft das nicht weiter. Ich würde den MQTT-Server als Docker direkt auf dem NAS aufsetzen. Die Frage ist, ob der Server sowohl mit dem Master als auch dem Slave kommunizieren kann? Alternativ könnte ich den Server auch auf dem Slave aufsetzen. Vielen Dank im Voraus.
-
@pandia Du kannst den MQTT-Server auch separat laufen lassen, also in einem eigenen Docker Container. Da würde ich dann z.B. den Mosquitto-Broker laufen lassen.
Den MQTT-Adapter installierst du dann auf beiden als Client.
Du kannst mehre Client-Instanzen haben die dann z.B. verschiedene Objektbäume zum MQTT spiegeln.Besonders Cool wäre dann natürlich wenn deine Geräte Ihre Daten direkt an den MQTT senden.
Zu deinen 2 Installationen: Du brauchst also einen Hochverfügbarkeit? Mit wieviel Ausfallzeit kannst du leben?
-
@bananajoe OK.
Ich werde bei Gelegenheit die MQTTs aufsetzen und ein Feedback geben.
Hochverfügbarkeit ist bei mir immer wichtiger geworden. Ein zweiter Server stand ohnehin zur Verfügung. IoB steuert bei mir nicht nur Lampen sondern aktiv die komplette Heizung, Warmwasser, Lüftung, Kameras, Bewegungsmelder, Anwesenheitskontrolle, etc. spricht viele sicherheitsrelevante Endgeräte. Die Verfügbarkeit ist insbesondere dann wichtig, wenn keiner Zuhause ist. Die automatische Umschaltung erfolgt in < 1 Minute. Eine Ausfallzeit von > 1 Stunde hätte schon erhebliche Auswirkung auf die Steuerung. Außerdem dient der Slave als Entwicklungsumgebung, um nicht am offenen Herzen operieren zu müssen.
-
@pandia Ich fragte weil es ja - wie fast immer - mehrere Wege zum Ziel gibt.
Bei mir läuft ioBroker in einer VM.Lässt man diese VM dann z.B. auf einem Cluster von 2 Hypervisor laufen so starten bei einem Ausfall von Host 1 der Host 2 die VM automatisch neu. So machen das eigentlich 99,9% meiner Kunden auf Basis verschiedener Lösungen. Die einen in Echtzeit (es geht sogar ganz ohne Ausfallzeit), die anderen mit Minuten oder Stunden im Versatz.