Inhaltsverzeichnis
OpenHAB2 aufsetzen
Image auf SD-Karte, booten und warten, bis alle Updates installiert wurden
Mosquitto installieren
sudo apt-get install mosquitto
Openhabian-config
per
sudo openhabian-config
die verdammte Zeitzone richtig einstellen!!
Unter Settings kann man auch das ZRAM- Feature aktivieren, was SD Card Schäden vorbeugen soll
Weiterhin hat sich in V2.5 der Hostname geändert (openhab). Wenn die alten MQTT Settings in den IoT Geräten noch weiter funktionieren sollen, muß man den Hostnamen wieder auf das alte openhabianpi ändern!
ACHTUNG Eine Neuinstallation von OpenHab zieht immer die neueste Version aus dem Netz! - Das geht dann mächtig in die Hose, wenn man die Config- Files noch für einen alten Stand gemacht hat, aber PaperUI stillschweigend nur neuere Module anbietet, so mir geschehen beim MQTT Binding. Das war nämlich plötzlich mqtt.2, meine Konfigs aber noch für mqtt.1. Da muß man erst in den PaperUI System Settings „allow legacy .x Bindings“ aktivieren und kann dann das alte Binding noch installieren - und bis man das merkt, ist ein Tag rum…
Fritzbox Auch wenn nach Systemänderungen die Fritzbox die neue MAC Adresse des Openhabian- Devices scheinbar akzeptiert hat und auch schon alles richtig in der UI anzeigt, so scheint trotzdem der Nameserver der Fritzbox an die kleinen IoT Devices immer noch die alte Mac- Adresse zu liefern, die sich so nicht mehr mit ihrem MQTT Server verbinden können. Hier hilft dann normalerweise ein Neustart der Fritzbox und/oder des Devices, gerne auch an aufeinander folgenden Tagen, bis dann auch das letzte Geräte beim ARP Request nicht mehr die falsche MAC liefert…
Installation ohne vorheriges Backup
In /etc/mosquitto/mymosquitto.conf das password- File aktivieren, indem man die Auskommentierung entfernt:
# Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at # /usr/share/doc/mosquitto/examples/mosquitto.conf.example pid_file /var/run/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log include_dir /etc/mosquitto/conf.d password_file /etc/mosquitto/passwd #allow_anonymous true
Passwörter werden dann mit dem mosquitto Passwort Generator ergänzt:
mosquitto_passwd /etc/mosquitto/passwd openhabian
Bindings
Über PaperUI installiert man
- Astro
- MQTT
- Addons
- Persistence
- RRD4J
- Misc
- Openhab Cloud Connector
- Transformations
- Map Transformation
- und was man so an Transformations irgendwann mal braucht..
Den gottverdammten MQTT Broker bekommt man installiert, wenn man nach Stunden im Internet den Hinweis findet auf PaperUI → Things → Plus Button icon → MQTT Thing Binding → Add Manually → MQTT Broker
Settings
Unter PaperUI Settings einstellen
- Persistence (RRD4J)
- Timezone, Sprache, Location usw.
Installation mit Backup
Die nach der Installation bereits laufenden Dienste erst stoppen
sudo systemctl stop openhab2 sudo systemctl stop mosquitto
Also wenn man mit
sudo openhab-cli backup
ein Backup gemacht (es wird nach /var/lib/openhab2/backups geschrieben) und vor allem anderswo gesichert hat, dann kann man es mit
sudo openhab-cli restore /var/lib/openhab2/backups/filename.zip
wieder einspielen.
Aber: Die Datei
etc/mosquitto/passwd
muß seperat gesichert und wieder eingespielt werden.
Unterbrechungsfreie Stromversorgung wieder herstellen
Den USVcontrol- Service, der die USV überwacht, wieder herstellen wie in Unterbrechungsfreie Stromversorgung für den Raspi beschrieben.
Items werden nicht erkannt
Beim Wiederaufsetzen mit unfreiwilligem Update von 2.4 → 2.5 zeigten sich im /var/log/openhab2/openhab.log
jede Menge Cannot retrieve item for widget
Fehler. Wie sich zeigte (https://github.com/openhab/openhab-core/issues/1154) muss man dann durch künstliches Editieren der Items-Datei den Compilier-Vorgang anstoßen, dann geht's wieder
Hardcore- Passwort Debugging
Und wenn man es geschafft hat, doch irgendwie das Passwort-File nicht richtig zu sichern und man keine Lust hat, seine ganzen kleinen ESP-Devices wieder neu zu konfigurieren, kann man über die Console den MQTT Funkverkehr abhören und sehen, mit welchem Passwort das Device sich anmelden will.
In der Log- Datei stehen schon mal die Geräte mit Problemen:
/home/openhabian# tail -f /var/log/mosquitto/mosquitto.log 1551939976: New connection from 192.168.1.33 on port 1883. 1551939976: Socket error on client <unknown>, disconnecting. 1551939981: New connection from 192.168.1.33 on port 1883. 1551939981: Socket error on client <unknown>, disconnecting. 1551939986: New connection from 192.168.1.33 on port 1883.
Dann braucht man tcpdump
sudo apt-get install tcpdump
und läßt sich als root im ASCII-Mode die TCP Packete anzeigen
root@openHABianPi:/home/openhabian# tcpdump -A tcp and src 192.168.1.33 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes 06:32:47.246920 IP ESP-4BDEB7.fritz.box.54491 > openHABianPi.fritz.box.1883: Flags [S], seq 1624837871, win 2144, options [mss 536], length 0 E..,...........!.......[`.......`..`.......... 06:32:47.249158 IP ESP-4BDEB7.fritz.box.54491 > openHABianPi.fritz.box.1883: Flags [.], ack 1741612457, win 2144, length 0 E..(...........!.......[`...g...P..`.k........ 06:32:47.249564 IP ESP-4BDEB7.fritz.box.54491 > openHABianPi.fritz.box.1883: Flags [P.], seq 0:43, ack 1, win 2144, length 43 E..S...........!.......[`...g...P..`H....)..MQTT..... DEVICENAME..MQTTUSERNAME..MQTTPASSWORD
und dann kann man im Dump den Gerätenamen und das Passwort erkennen. Unverschlüsselte Übertragung muss nicht immer schlecht sein
OpenHab Beispiel Konfigurationen
/etc/openhab2/items/mqtt.items
Switch MQTT_sonoff522BFF "MQTT Command" {mqtt=">[mosquitto:cmnd/sonoff522BFF/POWER:command:ON:ON],>[mosquitto:cmnd/sonoff522BFF/POWER:command:OFF:OFF]"} String MQTT_Switch_State "MQTT State [%s]" {mqtt="<[mosquitto:stat/sonoff522BFF/POWER:state:default]"}
/etc/openhab2/services/mqtt.cfg
mosquitto.url=tcp://localhost:1883 #Die client-ID scheint nicht zu funktionieren, darum auskommentiert #mosquitto.clientId=OpenHAB2 mosquitto.user=openhabian mosquitto.pwd=xxxxx
/etc/openhab2/sitemaps/basic.sitemap
sitemap basic label="Mein Haus" { Frame { Switch item=MQTT_sonoff522BFF Text item=MQTT_Switch_State } }
Chart einrichten:
RRD4J über PaperUI ( Addons⇒Persistence) installieren
Anlegen der /etc/openhab2/persistence/rrd4j.persist
- rrd4j.persist
Strategies { everyMinute : "0 * * * * ?" everyHour : "0 0 * * * ?" everyDay : "0 0 0 * * ?" default = everyChange } Items { //BEISPIELE Temperatur_Wetterstation : strategy = everyMinute, restoreOnStartup Anwesenheit : strategy = everyChange, restoreOnStartup }
myOpenHAB installieren
Zunächst muss unter der Paperui Addons⇒Misc der openhab cloud connector installiert werden.
Nun wird noch für die Registrierung auf http://www.myopenhab.org die uuid und das secret benötigt.
username= email masterpasswort= Myopenhab
Die Angaben befinden sich in den Folgenden Dateien:
/var/lib/openhab2/uuid /var/lib/openhab2/openhabcloud/secret
Umschalten auf Read-Only-Filesystem
Ein weiterer Versuch, die permanenten File- System- Ausfälle der SD-Karten zu kurieren, sie sind ja quasi dauernd kaputt
Wir ergänzen noch etwas Software
sudo apt-get install initramfs-tools
und folgen der Anleitung auf https://github.com/JasperE84/root-ro