Temperaturüberwachung in verschiedenen Netzwerken Fhem2Fhem ungenau

Begonnen von Magnia, 20 Oktober 2020, 20:45:43

Vorheriges Thema - Nächstes Thema

Magnia

Hallo erstmal

folgendes Problem
Ich arbeite bei der Feuerwehr und wir haben auch Rettungsdienst. Da die Medikamente in einem Kühlschrank gelagert werden wird jeden Tag handschriftlich die Temperatur eingetragen das es dokumentiert ist.
Das kann ich doch besser dachte ich mir da mein Haus schon ein paar Jahre ganz gut mit Fhem läuft.
Gesagt getan ich bin nun dran das zu lösen, nicht nur für unsere Feuerwache, sondern für die ganze Stadt.
Hab nun 3 pi am laufen, 1 Server und 2 Clients.
Alle ziemlich nackig also Erstinstallation. auf den Clients sind Temperatursensoren DS 18B20 per Gpio dran. Das läuft, ist kein Ding. der Server ist per Fhem2Fhem dran und zieht sich die Daten dort. Allerdings möchte ich eine lückenlose LOG Datei und das System verschluckt manche Temperaturen. Client zieht alle 5 minuten per 18b20 die Temperatur aber auf dem Server kommen die nur unregelmässig an, mal passt es mit 5 Minuten mal sind es 10 oder gar 15.

zuhause wäre mir das für die Heizung wurscht aber da möchte ich schon eine Lückenlose doku erreichen.
Gibts alternativen zu Fhem2Fhem die das so machen oder hab ich meinen Code nur doof zusammengewurstelt.

define remotekuehlschrank_21 FHEM2FHEM 192.168.178.109:7072 LOG:.*(temperature).*
setuuid remotekuehlschrank_21 5f8dd055-f33f-6030-1ead-6c6bf71e9469aa1c
define KS_21 cloneDummy Kuehlschrank_21 Temperatur
setuuid KS_21 5f8dd055-f33f-6030-5a25-0c84bbcb86817b3a
attr KS_21 event-on-change-reading temperature
attr KS_21 stateFormat T: temperature °C
define FileLog_KS_21 FileLog ./log/KS_21-%Y-%W.log KS_21


das kam in den letzten 2 Std im log an
2020-10-20_18:21:31 KS_21 temperature: 18.687
2020-10-20_18:31:33 KS_21 temperature: 18.625
2020-10-20_19:21:42 KS_21 temperature: 18.687
2020-10-20_19:36:44 KS_21 temperature: 18.875
2020-10-20_19:41:45 KS_21 temperature: 18.937
2020-10-20_19:46:46 KS_21 temperature: 19.062
2020-10-20_19:51:47 KS_21 temperature: 19.125
2020-10-20_19:56:48 KS_21 temperature: 19.187
2020-10-20_20:01:49 KS_21 temperature: 19.25
2020-10-20_20:06:50 KS_21 temperature: 19.312

Client läuft alles und die Temperaturen werden alle 5 Minuten geloggt



Benachrichtigung per Email und eventuell Telegram möchte ich noch rein bauen und der schwierigste Teil, die Rechner laufen nicht über das Firmennetzwerk, das ist der EDV zu unsicher. Alle Wachen haben aber ein Gästenetzwerk das ich nutzen könnte um ein Mesh VPN aufzubauen.
Mesh VPN war mir neu und ein Kollege verwies mich auf Tail Scail, über email anmeldung kann man da mehrere rechner verbinden. läuft auch auf dem pi wie ich gelesen habe und werde das dann in der nächsten stufe testen.
Mir ist auch noch die Idee gekommen den Stromkreis zu überwachen, falls der Strom weg ist, hat der Kühlschrank ja bald auch ein problem. Wenn ich die PI über eine Powerbank betreibe könnte das ja als puffer dienen das ich noch was senden kann wenn am Netz gerade nichts mehr ist. Was ist denn die geschickteste lösung um festzustellen ob der kühlschrank noch mit strom versorgt wird?

Herzlichen Dank

Uwe









Otto123

Hallo Uwe,

cloneDummy braucht man nicht, wenn Du nur loggen willst, brauchst Du gar kein extra Device. Du kannst direkt ins Log schreiben.
Ist F2F für so einen "Stern" designed?

Ich würde einen anderen Ansatz wählen: Kein F2F, kein VPN sondern MQTT.
In Kurzform:
Du kannst Dir einen MQTT Server ins Internet stellen/mieten.
Die Sensoren hängst Du an einen ESP mit Tasmota und sendest die an den MQTT Server im Inet.
Dein FHEM holt die Daten dort mit MQTT2 Client ab.
Keine offenen Ports, einfache Einrichtung, robustes Protokoll.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Magnia

Meine Sonoff Basic mit dem Sensor hab ich schon dran gehabt, wusste nur nicht wie ich die übers Internet mit anderen verbinden kann.

Ich hab quasi mehrere Internet Inseln die ich verbinden will.
Mein Ansatz war eine VPN aufzubauen wo ich alle vereinen kann. Ein Kollege gab mir dann den Tip mit TailScale.

Würde das gehen, die MQTT daten einfach auf einen Server übers Internet schicken? Hört sich gut an aber wüsste jetzt nicht direkt nach was ich da suchen sollte

Dachte das geht im eigenen Netz aber nicht weiter

Otto123

Ich habe mal hier eine Notiz über mein Experiment gemacht.
BTW: Meshed ist so ein schönes Schlagwort (Wlan, Heimnetzwerk) aber ich meine, das ist bei VPN nicht unbedingt trivial.

Du schickst die Daten mit einem Client (Tasmota mqtt) an einen MQTT Server im Internet und ein MQTT2 Client in deinem FHEM sammelt die Daten dort wieder ein. Alle haben nur eine Client Verbindung ins Internet, keine offenen Server Ports.
So eine MQTT Instanz im Internet gibt es für kleines Geld, ich weiß nicht ob es momentan kostenfreie Angebote gibt.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

rudolfkoenig

Ich haette gerne gewusst, was die Ursache des Problems mit FHEM2FHEM ist.
Kann man im Log des FHEM2FHEM Clients Zeilen der Sorte "host:port disconnected, waiting to reappear" sehen?

LuckyDay

attr KS_21 event-on-change-reading temperature

naja , wenn er nur geänderte Events erzeugen/loggen tut.

ich würde an deiner Stelle den Weg von Otto123 über mqtt weiter verfolgen






Magnia

@ fhem-hm-knecht du hast recht (natürlich)

wenn er nur auf änderungen agieren soll dann macht er es auch.
hab beide verglichen und nur änderungen waren geloggt.

@rudolfkoenig
gibt kein problem mit FHEM2FHEM

Habe gerade das hier geändert:
define remotekuehlschrank_10 FHEM2FHEM 192.168.178.108:7072 LOG:.*(temperature).*
setuuid remotekuehlschrank_10 5f8deffd-f33f-6030-1145-cce4cd6b5981c9d1
# define KS_10 cloneDummy Kuehlschrank_10 Temperatur
#setuuid KS_10 5f8deffd-f33f-6030-253b-073d8b34b646ed62
#attr KS_10 event-on-change-reading temperature
#attr KS_10 stateFormat T: temperature °C
#define FileLog_KS_10 FileLog ./log/KS_10-%Y-%W.log KS_10:temperature:.*
#define FileLog_KS_10 FileLog ./log/KS_10-%Y-%W.log KS_10
define FileLog_Kuehlschrank_10 FileLog ./log/Kuehlschrank_10-%Y-%W.log Kuehlschrank_10
setuuid FileLog_Kuehlschrank_10 5f8fb0b2-f33f-6030-c231-7b8dc0e32442eb9b

zum testen das pollingintervall auf 60 gesetzt und er loggt munter alles was er soll.
alles was der Client anbietet für den Kühlschrank 10 wird vom Server im Event empfangen und direkt in die Log Datei geschrieben.

So wie es sein soll mit der Log
Danke euch allen Knecht fürs Augen öffnen, Rudolf für das wunderbare Programm und Otto für die Hilfe mit dem Clonedummy

P.S.
Den anderen Ansatz mit den MQTT werd ich verfolgen.
Hab mal nach den Servern gesehen und myqtthub.com gefunden.
Wie weit komme ich denn wenn ich den Kostenlosen Plan nehme?
Wenn ich alle 5 Minuten loggen will, sind das 288 Nachrichten am Tag von einem Client, dann dürfte die Menge an Messages passen auch wenn ich 20 Kühlschränke habe, wie sieht das mit der Datenmenge aus? Wenn ich knapp 6000 Nachrichten habe.
Würde das klappen?


Otto123

Zitat von: Magnia am 21 Oktober 2020, 06:31:13
Wie weit komme ich denn wenn ich den Kostenlosen Plan nehme?
Wenn ich alle 5 Minuten loggen will, sind das 288 Nachrichten am Tag von einem Client, dann dürfte die Menge an Messages passen auch wenn ich 20 Kühlschränke habe, wie sieht das mit der Datenmenge aus? Wenn ich knapp 6000 Nachrichten habe.
Würde das klappen?
Aus dem Bauch heraus würde ich folgendes sagen:
Könnte klappen -> Versuch macht klug! Mit einem Client testen, sehen wieviel es ist.
Was passiert wenn es nicht klappt?
- die Kosten für einen anderen Plan einplanen ;)
- einen eigenen MQTT Server bereitstellen, ordentlich absichern. Ist meines Wissen nur eine Freigabe für ein Port, ein unübliches Port dafür nehmen, ordentliche Autorisierung, vom restlichen Netzwerk abschotten, der FHEM Server braucht ja wiederum nur einen MQTT-Client Zugriff. Das dürfte mMn weniger Aufwand bedeuten, einfacher und klarer strukturiert sein als ein VPN mit 20 Knoten.
Bei den Kosten musst Du ja auch bedenken:
- 20 Systeme mit FHEM Server pflegen
- VPN Pflegen
- Eigener Server braucht ein ordentliches SSL Zertifikat oder man macht es ohne SSL (bin momentan nicht sicher wie "schlimm" das wirklich wäre). Klar geht letsencrypt - aber das muss man auch erstmal einrichten.

Naja wie immer: viele Wege und viele Möglichkeiten und bestimmt auch viele Meinungen  ;D

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wernieman

Naja .. Du könntest auf den PIs auch per cron (bzw. in FHEM per at) und Aufruf eines SSH-Scriptes die Daten pushen .... so das von außen nur der ssh-Port sichtbar ist.

Gibt eben viele Wege nach Rom, würde aber Dir den einfachsten, unkomplexesten empfehlen. Komplex (und schwierig zu Administrieren) wird es von Alleine. Nach Murphy: Genau im Urlaub/Krankheit gibt es ein Problem mit dem System und nur Du kennst Dich damit aus.

Insofern ist MQTT am einfachsten ...

Bzw: FHEM2FHEM: Ist das auch gut abgesichert bei Dir? Scheinbar pushed Du übers Netz ...
- 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

rudolfkoenig

ZitatInsofern ist MQTT am einfachsten ...
Am einfachsten ist das, was schon laeuft :), und FHEM2FHEM kann man auch mit SSL absichern.
Eine Verbindung zweier FHEM-Instanzen ueber MQTT ist moeglich und wird praktiziert, ist aber komplizierter als ueber FHEM2FHEM.

Ich persoenlich wuerde diese Aufgabe mit Geraeten der "Tasmota-Klasse" (Sonoff/etc) loesen, da spart man sich RPI,Netzteil,SD-Karte & co, fuer unter 20 EUR kriegt man eine Komplettloesung mit Temp+Feuchtesensor. Ob man diese Geraete direkt mit FHEM verbindet (ueber den eingebauten MQTT2_SERVER) oder ueber den Rechner eines Fremden geht (aka Cloud), ist Geschmackssache.

Wernieman

- 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

Magnia

Stimmt einfach ist gut. Wenn es reicht.

Jetzt hab ich ja auf dem Server die Daten geloggt das klappt ja. Nur wenn ich ne benachrichtigung brauche ob die Temperatur eingehalten wird muss ich jetzt die vom Client aus machen oder doch wieder ein clonedummy anlegen?

Derzeit sieht es noch so aus, das unsere EDV mit dem arbeiten will was sie kennen und das sind einfach fertige Servertemperaturüberwachungen die ein Schweine geld kosten. Ich kenn mich da zwar nicht wirklich aus, aber soweit ich das mitbekommen habe, schicken die eine email als benachrichtigung wenn die Temperatur nicht eingehalten wird und ein Temperaturverlauf per Email über den verlauf über den gewählten Zeitraum. Bei 15 Kühlschränken wären das bei Täglichen Emails 450 Emails im Monat. Kann man sicherlich anders machen, aber unübersichtlich ist das trotzdem so ein Server wie Fhem das macht muss da schon irgendwo dran hängen sonst macht es keinen Sinn.

Wie würdet ihr denn die Netzspannungsüberwachung machen?
Sowas wie ein 230V SSR und auf der Schaltseite einfach 3,3V auf einen Eingang vom Pi gelegt, bei Tasmota bzw Sonoff einfach dementsprechend einen mit mehreren Ein/Ausgängen wie den Basic nehmen?


Otto123

keine cloneDummy ein einfacher Dummy reicht. Einfach den gleichen Namen machen wie im Original.

Wobei ich das noch nicht ganz verstanden habe...

Du hast ja die Events der Clients, Du kannst auch einfach mit einem Notify auf diese Events reagieren. Das ist eventuell zwar nicht so "plastisch" wie 15 Dummies - aber dafür einfach nur eine notify.

Sowas (nur laut gedacht!):notify KS_.*:temperature:.* {if($EVTPART1 > 20 and $EVTPART1 < 17){Sende Eine Nachricht}}

Was willst Du denn an der Netzspannung überwachen? Da oder nicht da? Oder wirklich den Spannungswert?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Magnia

nur da oder nicht, quasi ob der kühlschrank gerade versorgt wird.

falls er nicht versorgt wird, kommt er zwar unweigerlich auch in die zone das die sensoren anschlagen aber man hat etwas mehr reaktionszeit.

Die ssr ist zwar etwas überdimensioniert aber naja. Im prinzip könnte ich doch einfach die 230 v diode und Widerstand und direkt auf einen Eingang, nagut das sie nicht pulst noch nen kondensator dazu aber das müsste doch auch gehen. Nur hab ich immer irgendwas im Internet gefunden von wegen erstmal trafo und dann mit der kleinen spannung oder gleich ein einfaches 5 v netzteil etc.

Ich denke dein Ansatz mit dem Notify ist sinniger, hatte ich nicht auf dem Schirm da ich damit noch nicht hantiert habe.

Otto123

Wenn "am Kühlschrank" ein ESP mit tasmota (oder von mir aus auch ein Raspi) hängt, der alle 5 min sendet - weißt Du wenn er nicht mehr sendet: es ist was ausgefallen. d.h watchdog auf den Kühlschrank Event.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz