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

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

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