Messages von mehreren FHEM-Raspis in einer Datenbank sammeln und aktuell halten

Begonnen von fstefan1960, 25 Februar 2021, 19:48:34

Vorheriges Thema - Nächstes Thema

fstefan1960

Hallo,

ich möchte gerne Meldungen zu div Events von mehreren FHEM-Raspis über das Internet an einem zentralen Ort sammeln und dann auf einer Website ausgeben.

Wie fängt man das am Geschicktesten an?

EVENT-> sendmail -> wie bekomme ich das am zentralen Server in eine MySQL-Datenbank, aus der ich dann mit PHP die Webdarstellung hole? Automatisiertes  Auslesen von Mails?

EVENT->telegram-> siehe oben

EVENT->MQTT- > Wie kommen MQTT-Meldungen in eine Datenbank?

Als zusätzliche Herausforderung besteht, dass der zentrale MySQL-Server nur localhost-Clients mag. Sonst wäre ja evtl. ein Weg, die EVENTS gleich in die Datenbank zu schrieben, oder?

FHEM krieg ich so ganz passabel hin, PHP, MySQL und HTML auch, aber die Brücke dazwischen .... da hapert es noch. Und bevor ich in die falsche Richtung oder eine Sackgasse renne ...

Danke für entsprechenden Rat.

FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Wernieman

Was mir noch einfallen würde:
per ssh ein mysql Befehl auf dem Zielserver senden.

Ansonsten
Mail:
Ist auf dem Zielserver ein Mail-Server installiert
MQTT:
Bist Du Dir sicher, den abgesichert installiert zu bekommen? Ansonsten gibt es auch Shell-Clients dafür (siehe Google)

Und zuletzt: Der Server könnte auch pollen ....

Bzw:
Du kannst natürlich auch einen dauerhaften ssh-Tunnel aufbauen und die mysql-Befehle darüber verschicken ... Stichwort PortForwarding (und eventuell autossh)
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

fstefan1960

Erst einmal vielen Dank.

Ja, ich habe da einen Mailserver, aber wie bekomme ich ankommende Mails dann In die Datenbank?

MQTT - danke, das ist ein wichtiger Hinweis, also eben genau so eine Warnung, die ich mir gewünscht habe ...

Pollen? Ich weiß zwar, was Pollen ist, aber wie könnte das aussehen? Via PHP vom "zentralen" Server aus irgendwelche Aufrufe an die FHEM-Raspis?

Danke
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Wernieman

Das der Server die Daten abruft ... oder Deine Quellen sie "hinpushed"

Es kommt darauf an, was für einen mail-Server Du hast.
Wenn Du einen Klassischen Unix-mailserver hast, also einen der ins HomeVerzeichnis der Userr schreibt, kannst Du die Mails auch in ein Programm "pipen".
Hinweis: Wenn eine .forward im Home eines Users eine mail automatisch weiterleitet, kannst Du genau das tun ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Frank_Huber

Hmmm.
Warum keinen zentralen MySQL und direkt da rein loggen was du benotigst?

Ich mach das ohne Internet so. Alle FHEM Installationen loggen in einen MySQL.
Bei mir halt alles zuhause im Netz, bei Dir wäre es übers Internet.

Wernieman

Wie er schrieb:
Zitatdass der zentrale MySQL-Server nur localhost-Clients mag.

Was ich aus Security-Gründen durchaus verstehen kann ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Frank_Huber

Localhost ist da glaube ich das falsche Wort. Sonst könnte ja nur der Server selbst drauf.
Da geht es so vermute ich eher um das lokale subnet.
Und da käme man ja per VPN rein.

LuckyDay

ZitatAls zusätzliche Herausforderung besteht, dass der zentrale MySQL-Server nur localhost-Clients mag. Sonst wäre ja evtl. ein Weg, die EVENTS gleich in die Datenbank zu schrieben, oder?

Wie muss man denn den Satz verstehen?
private Machine? vollzugriff oder geschäftlich?

Zitatdiv Events von mehreren FHEM-Raspis
um wieviele Events handelt es sich denn? 10 stück am Tag? oder Stunde? Minute? pro Fhem....


fstefan1960

Angedacht ist, dass der "zentrale Server" ein bei 1&1 gehosteter Webserver ist. Ob die mich da VPN-mäßig reinlassen ...?

EVENTS sind ca. 10 / Tag / Raspi bei ca. 100 Raspis ...

Es bleibt also überschaubar ...

Wenn jemand einen Provider kennt, der da eine geeignetere Infrastruktur bietet ...
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Frank_Huber

Mit einem Root Server von 1&1 sollte sich der MySQL von Außen erreichen lassen.
Beim einfachen Webspace geht da sin der Tat nicht.

Christoph Morrison

Zitat von: fstefan1960 am 26 Februar 2021, 09:23:02
EVENTS sind ca. 10 / Tag / Raspi bei ca. 100 Raspis ...

Interessant. Magst/Kannst du mehr über die Hintergründe erzählen?

DS_Starter

Ich werfe das Modul Log2Syslog in den Ring. Auf allen Satelliten ein Sender Device definieren.
Auf dem zentralen Raspi den Collector definieren. Die Verbindung dazwischen geht per TLS verschlüsselt. Alle Events erscheinen zentral im Eventmonitor und können natürlich verarbeitet, geloggt usw. werden. Und man sieht woher die Events kommen. Von welchem Satelliten.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

fstefan1960

Hallo,
das klingt spannend. Dem werde ich mal nachgehen. Danke.

Bei dem Projekt sollen Menschen mit Behinderung, meist auch Epilepsie, die durch uns betreut werden, ein "Gerät" nach Hause bekommen, mit dem sie mit dem ambulanten Dienst kommunizieren können, "es geht mir gut"-Taste, "Brauche Assistenz"-Taste usw.

Liebe Grüße
Frank
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.

Wernieman

Dann würde ich Dir etwas anderes Empfehlen:
Auf dem Server eine HTTPS-API, die in FHEM reinschreibt (PW geschützt?)
Und die "Kunden-PIs" rufen einfach nur den Web-Link auf ... also entkoppeln. macht insofern das System sicherer, da FHEM nicht  für "offen im Netz" konzipiert wurde ...

Du schreibst ja, das Du php kannst ....
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

fstefan1960

Noch eine super Option. Ja, danke. Das ist eine Option, die ich auch schon mal wälze.

Wie kann man denn aus FHEM heraus einen Link aufrufen und dabei $POST-Werte mitgeben? $GET ist klar, aber $POST? Das kenne ich immer nur aus <form> mit "submit" ...

Danke
FHEM auf PC: CUL868, CUL 443, HM_LAN, JeeLink
FHEM auf Raspi: CUL868
div. LaCrosse Temp/Hum-Sensoren, HM-Heizkörperventile, Schaltaktoren, etc.