Temperaturmessung im Smarthome. Oder: Ich suche einen Grund, einen MQTT-Broker zu installieren :-)

Dieses Projekt hat natürlich erstmal rein GAR NICHTS mit ESPuino zu tun. Der der ESPuino jedoch auch MQTT kann und der damit erforderliche Broker (glaube ich) eher zöglicherlich angenommen wird, wollte ich mal noch ein bisschen Input liefern. Und zwar Input für ein Thema, für das sich eine Smarthome-Lösung wie z.B. openHAB vielleicht für dich lohnen könnte. Denn hat man das auf einem Raspberry Pi laufen, so ist der Weg zum MQTT-Broker Mosquitto nicht mehr weit, weil man die Infrastruktur eh schon hat. Von daher: Ja, zugegeben, für das hier beschriebene Projekt braucht man kein MQTT :slight_smile:

Und zwar geht es darum, die Temperatur + Luftfeuchtigkeit in verschiedenen Zimmern zu messen. Es gibt hier kommerzielle Lösungen natürlich zu kaufen, aber entweder fehlt diesen Konnektivität oder aber sie sind cloudbasiert und man hat nicht die Datenhoheit.

Sensoren

Kann man sich natürlich alles selbst bauen, aber es gibt günstige Sensoren auch zu kaufen. Beispielsweise der Technoline TX29 DTH-IT. Hat ein integriertes Batteriefach (2xAA), ein Display und ein integriertes Funkmodul. Gehört eigentlich zu einem mehr oder weniger proprietären System, aber man kann das Ganze für seine Zwecke „missbrauchen“, da die Übertragung nicht verschlüsselt ist.
Sind die Batterien reingesteckt, so sucht sich dieser Sensor selbstständig eine zweistellige ID, mit der er auf 868 MHz funkt. Ich betreibe 13 solcher Sensoren bereits seit über zwei Jahren und musste noch bei keinem die Akkus (Eneloop) tauschen. Nett finde ich einfach, dass man auf den Sensor auch einfach draufschauen kann und nicht nur auf sein Handy angewiesen ist. Wasserdicht ist der Sensor übrigens nicht, aber mann kann ihn in ein Haus stecken und dann wird alles gut :slight_smile:

Empfänger

Nun muss man die Daten natürlich auch empfangen. Dafür eignet sich ein sog. Jeelink-Clone. Das ist ein Arduino nano mit Adapterplatine [PCB] für ein Funkmodul + Antenne. Am besten auch noch einen Pegelwandler von 5V auf 3.3V für das Funkmodul, da der nano mit 5V läuft. Darauf muss dann ein Sketch aufgespielt werden. Wenn man die Teile einzeln kauft und in China bestellt (außer Adapterplatine), müsste man so mit 12-13eur etwa hinkommen würde ich sagen. Den PCB kann man bei eBay kaufen oder alles auch direkt hier: nanoCUL.de. Wichtig ist, dass man sich an den Stichworten „868Mhz, LaCrosse und RFM12B bzw. RFM69CW“ orientiert. Falsch ist auf jeden Fall „CUL“. Keine Sorge: Die Seite heißt zwar Nanocul, aber es gibt dort auch andere Sachen. Bist du dir unsicher: Hier gibt’s das alles fertig: JeeLink - LaCrosse 868MHz für FHEM / ioBroker USB - Stick + USB Adapter | eBay
Im Anschluss muss man den Jeelink einfach nur noch in den Raspi via USB einstecken. Fertig.

Integration in openHAB

Für Jeelink gibt es ein passendes Plugin (im OH-Spech ‚Binding‘): Jeelink. Das muss man installieren und den Jeelink anschließend als „Thing“ einrichten. Über die „Channels“ werden die einzelnen TX29-Sensoren dann erkannt und können Items zugewiesen werden. Erkannt werden sie anhand ihrer IDs, welche zweistellig sind. Wie oben bereits erwähnt, hat man selbst keinen Einfluss auf die Wahl der IDs. D.h. entnimmt man einem Sensor die Batterien und macht neue rein, so gibt es eine neue ID und man muss die Konfiguration in openHAB anpassen. Das ist natürlich etwas doof, aber wie auch bereits erwähnt: Ich betreibe das Ganze schon >zwei Jahre und musste noch nix auswechseln.

Auswertung

Nun ist es mit der Anzeige der Daten ggf. nicht getan, sondern man möchte sich auch Temperaturkurven anzeigen lassen. Hierfür muss man die Daten persistieren, wofür man sich mit Persistence beschäftigen muss. Ich persönlich persistiere meine Daten ganz oldschool mittels MariaDB (MySQL). In modern macht man das vermutlich mit InfluxDB. Und greife dann mit einem Tool, welches ich äußerst genial finde, darauf zu: Grafana. Man muss sich ein wenig reinarbeiten, aber dann ist es ziemlich eingängig und produziert außerordentlich hübsche Graphen. Das ist alles komplett webbasiert, d.h. graphische Auswertungen erreicht man über eine WebURL. Ist jedoch auch praktisch, weil solche kann man als sog. Webviews in openHAB einbinden.

Fazit

Ich mag das Projekt total. Handwerklich basteln muss man, außer man baut den Jeelink selbst zusammen, dafür nicht (können). Habe auch Sensoren im Keller, die durch die Betondecke funken müssen; ist kein Problem. Der Funkkontakt zu einzelnen Sensoren reißt immer mal wieder kurzzeitig ab, aber das behebt sich immer schnell wieder von alleine. Kurzum: Das System ist ziemlich verlässlich und ich würde es genau so wieder bauen.

1 „Gefällt mir“

Mal ein Beispiel aus der Messung von gestern. Und zwar habe ich mittags eine Stunde im Keller auf meinem Rennrad trainiert. Da ich dabei immer recht laut Musik höre und den Nachbarn nicht auf den Sack gehen will, waren dabei die Fenster zu. Folgerichtig hat das dann zu einem Anstieg der Temperatur und der Luftfeuchtigkeit geführt. Ich habe im Anschluss dann die Fenster geöffnet, was aber, da es draußen geregnet hat, nur so bedingt sinnig war. Was mir meine App übrigens auch meldete: Ich vergleiche immer die absolute Luftfeuchtigkeit draußen und innen. Naja, zumindest war die Luft dann wieder frischer :slight_smile: Das Fenster war dann ein paar Stunden geöffnet und nach dem Schließen ist die Temperatur dann wieder angestiegen.

Tipp noch: Wenn es sich um einen Abstellkeller wie bei uns handelt, kann es sein, dass die Temperatur über viele Stunden hinweg auf 0,1°C genau gleich bleibt. Man sollte darauf achten, dass man in so einem Falle nicht nur Daten persistiert, wenn sie sich ändern, sondern halt auch sowas wie alle 30 Minuten. Weil sonst lassen sich keine gescheiten Graphen bauen.

So. Damit lasse ich es hier dann auch mal gut sein - ist doch arg offtipic. Ich wollte wie gesagt nur einen Aufhänger präsentieren, um mal Mosquitto laufen zu lassen :joy:

Ist zwar schon älter, aber ich habe auch OpenHAB laufen (wenn auch schon lange nicht mehr benutzt), allerdings noch keine Erfahrung mit MQTT. Wollte ich mich schon länger mit befassen - Allein, die Zeit… :laughing:

Wir nutzen das hier ganz viel. Nicht zuletzt auch, um abends die ESPuinos der Kinder wieder auszuschalten :slight_smile:.

1 „Gefällt mir“

Ich nutze für sowas den BME280 mit einer ESP Dev Platine daran…

Dann per MQTT zum Server, von da dann in die InfluxDB und dann per Grafana anzeigen…

MQTT ist so simpel und trotzdem gut :smiley:

Das Problem bei den ESP32 ist halt so ein bisschen der Stromverbrauch. Bei den o.g. TX) DTH-IT kommen nur zwei AA-Akkus rein und dann hat das bei mir etwa drei Jahre gehalten. Aber ja, den BME280 habe ich auch am ESP32 im Einsatz. Habe im Gartenhaus einen ESP32-Carrier-PCB, der mit Ethernet angebunden ist. Der macht primär die Gartengewässerung (auch via MQTT gesteuert), aber da hängen auch zwei BME280 dran. Früher hatte ich DHT22, aber die sind irgendwie nicht sonderlich haltbar.

Aber insgesamt sind meine OpenHAB-Angaben hier inzwischen so ein bisschen obsolet, da mit OpenHAB3 man nahezu alles über die GUI konfigurieren kann. Habe das hier parallel auf einem Raspi4 in einem Docker-Container laufen, das muss ich endlich mal in den Produktivbetrieb überführen. Aber eigentlich will ich auf dem Raspi3 mit OpenHAB2 noch die 1000 Tage Uptime vollmachen :rofl:.

1 „Gefällt mir“

ich nehm daher auch mal den ESP8266 der frisst was weniger.

Meine Rauchmelder sprechen HomematicIP an einer RasperyMatic Zentrale (die wieder MQTT spricht bzw. einen eigenen Broker hat der mit dem „normalen“ Broker verbunden ist), daher würde dann auch was von da nehmen wenn Akkubetrieb ein Kriterium wäre

Ja, wobei die Lösung, die ich oben beschrieben habe, gar nicht so magic/speziell ist. Der Jeelink ist ein Arduino nano, auf den ein Modul (RFM69CW) draufgesetzt ist, das im 868 MHz-Band lauschen kann. Der Code auf dem Jeelink kommt glaube ich aus dem FHEM-Projekt - ist letztlich Arduino. Der nano haut die Werte auf der seriellen Konsole raus und die muss man dann nur ausparsen und dorthin senden, wo man sie braucht. Das könnte man sicherlich auch mit einem Script (Perl/Python) machen und das sendet die Daten aufbereitet dann in ein MQTT-Topic.

Aber gut, du wirst schon wissen, was du machst. Ich will dich hier nicht überzeugen :slight_smile:.

ich dich auch nicht :smiley:

Wollte nur aufzeigen das es viele Wege nach Rom gibt…

Bei mir läuft auch OpenHAB2 auf einem Raspberry.
Mit OH3 hab ich mich noch nicht beschäftigt. never touch a running system :yum:

Ich habe in jedem Raum einen Sonoff mini + BME280 hinterm Lichtschalter. Das funktioniert prima.
Fußbodenheizung wird über einen Wemos D1 mini + Relai Boards gesteuert. Natürlich auf Basis der BME280 Sensoren.

Das kann ich nur bestätigen. Habe zuerst auch auf DHT22 gesetzt… Blöden Dinger.

Grüße