XMPP-Heimautomation-Demo-Automat


demoautomat-front-gross

hier die finale Version im Gehäuse, ready to serve requests


testaufbau-rasppi

Der erste Testaufbau mit Raspberry Pi 1B, Breadboard mit LEDs und Taster, Software: DietPi mit FHEM und NodeRed

FroSCon 2025 - ein Rückblick und TO-DOs

31.08.2025

Auch dieses Jahr (sowie schon das Jahr davor) hat der Demo-Automat seinen Zweck erfüllt und jede Menge neugierige Blicke auf sich gezogen. Alle Workshops und Demos waren an beiden Tagen gut besucht, was uns die Motivation gibt, nächstes Jahr mit den Themen weiter zu machen.

Aber auch Verbesserungspotenzial haben wir erkannt und können das eine oder andere bestimmt bis nächstes Jahr umsetzen:

  • Einbau eines weiteren Tasters zum ordnungsgemäßen Herunterfahren des Gerätes ohne Hilfe eines externen Gerätes
  • Umbau der Stromversorgung auf USB - C (während der FroSCon gab am Sonntag das Netzteil seinen Geist auf und niemand hatte Ersatz)
  • NodeRed - Rückmeldungen der LEDs noch nicht 100% sauber implementiert
  • nochmaliger Austausch der roten LED auf eine stärker leuchtende LED
  • mehr Zeit für die einzelnen Themen

Änderungen 2025

05.07.2025

Nach längerer "Ruhezeit" des Demoautomaten galt es, diesen wieder "fit" zu machen für die diesjährige FrOSCon. Nach einem Upgrade der Basis-Software mussten einige Software Umbauten stattfinden. So werden die GPIOs des PIs mittlerweile anders angesprochen und das XMPP-Modul von NodeRed lief alles andere als stabil und wurde entfernt. An dessen Stelle tritt ein node.js-Script, welches die Nachrichten aus einem XMPP Gruppenchat auf ein MQTT-Topic umsetzt. Die Auswertung der Chat Nachrichten übernimmt FHEM komplett. Die GPIO-Steuerung direkt aus NodeRed heraus war wegen der Änderung der GPIO-Bibliothek auch nicht mehr möglich, so dass auch diese Aufgabe jetzt FHEM zufällt. Die Auswertung des Tasters übernimmt ebenfalls FHEM und für die Aussendung der XMPP-Nachricht an den Gruppenchat wird das Kommandozeilen-Tool go-sendxmpp eingesetzt.

Als Erweiterung zum Vorjahr gibt es ab sofort auch eine Webseite, über die sich Nachrichten für das Display (PicoTweet) absetzen lassen.

Umzug in ein richtiges Zuhause

11.07.2024

Endlich ist der Demo-Automat in ein richtiges Zuhause umgezogen. Das Gehäuse ist natürlich komplett geschlossen, allerdings sieht man so schön die "inneren Werte".

demoautomat-offen-l%C3%A4ngs demoautomat-offen-quer

Austausch Rasppi 1B gegen Rasppi Zero W

23.03.2024

Heute habe ich das "Herz" der Schaltung, den Raspberry Pi 1B gegen einen Raspberry Pi Zero W ausgetauscht. Der Vorteil: durch den gleichen Chipsatz brauchte kein neues System auf eine neue SD-Karte aufgespielt werden, die Konfigurationen konnten 1:1 übernommen werden. Und jetzt kann der Raspberry Pi via WLAN angebunden werden. Das Fallback funktioniert über eine USB-Netzwerkkarte.

rasppi-zero-w

Zwischenstand erreicht

13.02.2024

Softwaremäßig ist nun ein Stand erreicht, der locker ausreichen sollte, verschiedene Vorträge zu füllen und an dem auch Einiges gezeigt werden kann. Folgendes ist nun möglich:

  • beim Start wird im Display die IP-Adresse des Rasppi angezeigt für wechselnde Netzwerkaufbauten
  • Ausgabe von Wetterdaten in einen XMPP Chatraum
  • Ansprechen des Displays mittels einem XMPP Chatraum (Mini Tweet)
  • Automatische Speicherung der Tweets inklusive Autor (nickname) in eine SQLite Datenbank
  • Abfrage der Datenbank (die letzten x Tweets sowie des "Top Tweeters") mittels XMPP MUC
  • die LEDs können mit einem Befehl aus XMPP heraus gesteuert werden
  • beim Druck des Tasters wird in einem XMPP Chatraum eine Nachricht ausgegeben
  • Anzeige verschiedener Daten auf dem NodeRed Dashboard

Folgende Software kommt zum Einsatz:

  • Betriebssystem: DietPi (Debian bookworm basiert)
  • SQLite Datenbank
  • Node-Red für die Verknüpfungen von und zu XMPP und zur Datenbank sowie der Darstellung verschiedener Werte
  • FHEM als Backend zum Ansprechen des LCD Displays und Anzeige der eigenen IP Adresse
  • für den Datentransfer wird das XMPP-Protokoll benutzt sowie MQTT zur Übertragung der Werte zwischen Node-Red und FHEM
Probleme / TODOs
  • das größte (und bisher einzige) Problem ist die unstabile XMPP-Implementierung bei NodeRed, wodurch häufiger der NodeRed Dienst beendet wird. Ob das an der Hardware oder der XMPP-Implementierung oder beidem liegt, bleibt noch zu klären
  • TODO: Umlaute richtig auf dem LCD darstellen
  • TODO: Aufbau eines kleinen Netzwerks mit Router, um unabhängig von verschiedenen Vor-Ort-Netzwerken zu sein erledigt
  • TODO: Gehäusebau für Raspberry Pi, Breadboard, LCD-Display, 3 LEDs und 1 Taster erledigt
  • TODO: Gibt es mehr als 1 Top-Poster (mit gleich vielen Tweets) wird nur einer ausgegeben

Erweiterung um FHEM und 16x2 LCD Display

06.02.2024
Da LEDs alleine zwar schon schön, aber noch nicht cool sind, habe ich noch ein 16x2 LCD Display via I²C-Bus an den Raspberry Pi angeflanscht. Problem hierbei: Das Display lässt sich nicht direkt über NodeRed ansteuern.
Da wir ja auch die Möglichkeiten von Heim-Automation(en) zeigen möchten, entschied ich mich, dass NodeRed die gewünschten Infos zuerst über MQTT herausgibt.
Da FHEM mittlerweile einen eingebauten MQTT-Server zur Verfügung stellen kann und über FHEM die Ansteuerung des Displays ziemlich problemlos funktioniert, ist der Rest des Weges bis zum Display in FHEM realisiert.
Damit ist es jetzt möglich, Mini-Tweets auf das Display über XMPP zu schicken. Dabei ist die Logik so intelligent, dass sie den Nickname des Autors erkennt. Eine Stromsparschaltung in Form eines "watchdogs" deaktiviert die Hintergrundbeleuchtung automatisch nach 3 Minuten, es sei denn, vorher kommt ein neuer Tweet an.

Die Anschaltung mithilfe eines Pegelwandlers habe ich nach folgendem Tutorial realisiert: Raspberry Pi Tutorial


lcd-xmpp

Der Schaltplan für die LEDs und den Taster

Schaltplan

Der Start

17.01.2024

Auf der diesjährigen FrOSCon (2024) hat sich die TroLUG vorgenommen, auch präsent zu sein. Mit diesem Projekt wollen wir zeigen, dass man Heim-Automation und XMPP prima verknüpfen kann.