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 NodeRed

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.