Zeile 30:
Zeile 30:
Für ein Backup müssen die oben angegebenen Dateien bzw. Verzeichnisse gespeichert werden. In <code>/var/lib/openhab2</code> brauchen aber die Unterverzeichnisse <code>cache</code> und <code>tmp</code> nicht mitgespeichert zu werden.
Für ein Backup müssen die oben angegebenen Dateien bzw. Verzeichnisse gespeichert werden. In <code>/var/lib/openhab2</code> brauchen aber die Unterverzeichnisse <code>cache</code> und <code>tmp</code> nicht mitgespeichert zu werden.
+
+
== Einrichten von OpenHAB ==
+
+
Seit OpenHAB 3 werden Dinge, Regeln etc. recht einfach in der graphischen Benutzeroberfläche MainUI eingerichtet. Man kann aber weiter mit Textdateien konfigurieren.
+
+
=== Einrichtung via MainUI ===
+
+
==== Backup der MainUI-Einrichtung ====
+
+
Die Einrichtung der MainUI wird in eine
+
[[JSON]]-Datenbank geschrieben. Sie befindet sich in /var/lib/openhab/jsondb.
+
+
Davon kann ein Backup gemacht werden. Oder es kann mittels [[Git]] versioniert werden.
+
+
Siehe
+
* https://www.openhab.org/docs/administration/jsondb.html
+
+
=== Text-Dateien ===
+
==== Semantisches Modell ====
+
https://community.openhab.org/t/oh3-semantic-model-setup-via-tags-in-configuration-items-files/112520
== Konsole ==
== Konsole ==
Zeile 41:
Zeile 61:
* https://community.openhab.org/t/howto-manage-openhab-2-configurations/15940
* https://community.openhab.org/t/howto-manage-openhab-2-configurations/15940
+
+
=== REST-API ===
+
Mit curl kann man ebenfalls von der Konsole auf OpenHAB zugreifen. Für die Referenz der REST-API sollte man sich das entsprechende AddOn REST-Dokumentation über die PaperUI installieren.
+
+
Die Dokumentation ist zwar einerseits schön interaktiv, andererseits muss man manchmal raten, wie der Aufruf konkret aussehen soll.
+
+
==== Sitemap-Subscription ====
+
+
Nachdem man sich mit
+
curl -X POST --header "Content-Type: application/json" --header "Accept: application/json" "http://localhost:8080/rest/sitemaps/events/subscribe"
+
einen Subscription-Link geholt hat, kann man via folgenden Aufrufs auf eine für die Sitemap "default" relevante Änderung warten:
+
curl -v 'http://localhost:8080/rest/sitemaps/events/cb1e5411-5bf3-4a46-b279-b2430f6e6e3d?sitemap=default&pageid=default'
+
+
Wichtig sind dabei die Anführungszeichen und dass neben dem <code>sitemap</code>-Parameter auch der Parameter <code>pageuid</code> angegeben wird.
== Bindings ==
== Bindings ==
+
+
=== Network ===
+
+
Das Network-Binding hat zwar einen Discovery-Service. Dieser muss aber manuell gestartet werden. Dazu geht man unter Einstellungen -> Things -> Inbox -> "+"-Zeichen rechts unten -> Network Binding -> Scan
=== Yahoo Weather ===
=== Yahoo Weather ===
Zeile 52:
Zeile 90:
* http://woeid.rosselliot.co.nz/
* http://woeid.rosselliot.co.nz/
+
=== Fritzbox ===
+
+
Wenn man die Fritzbox einbindet, kann man [https://klenzel.de/3118 u.a. bei einem eingehenden Anruf Kodi und andere Geräte stummschalten].
+
+
== Benutzerschnittstellen ==
+
+
=== Sitemaps ===
+
+
Viele Benutzerschnittstellen (z.B. ClassicUI und BasicUI) benützen [http://docs.openhab.org/configuration/sitemaps.html sitemaps]. Diese werden in Dateien mit der <code>.sitemap</code> im Verzeichnis <code>/etc/openhab2/sitemaps/</code> erstellt.
+
+
Dazu gibt es verschiedene Widgets, die normalerweise einen <code>item=</code>-Parameter haben, mit dem sie mit dem jeweiligen Item verbunden werden.
+
+
==== Chart-Widget ====
+
+
Beim [http://docs.openhab.org/configuration/sitemaps.html#element-type-chart Chart-Widget] ist beim <code>period=</code>-Parameter die Groß-/Kleinschreibung entscheidend. So ist z.B. für eine Woche der Großbuchstabe "W" anzugeben, für eine Stunde der Kleinbuchstabe "h".
== Persistence ==
== Persistence ==
Zeile 58:
Zeile 111:
=== MySQL Persistence ===
=== MySQL Persistence ===
−
Mit Hilfe von MySQL lässt sich eine solche Persistenz-Schicht erstellen. Dazu installiert man in der PaperUI unter AddOns->Persistence das MySQL Bundle.
+
Mit Hilfe von MySQL lässt sich eine solche Persistenz-Schicht erstellen. Dazu installiert man in der PaperUI unter AddOns->Persistence das MySQL Bundle (nicht das JDBC-MySQL-Bundle).
Indem man sich auf der Linux-Konsole in MySQL mit
Indem man sich auf der Linux-Konsole in MySQL mit
Zeile 67:
Zeile 120:
GRANT ALL PRIVILEGES ON openhab.* TO 'openhab'@'localhost';
GRANT ALL PRIVILEGES ON openhab.* TO 'openhab'@'localhost';
−
In <code>/etc/openhabe/services/jdbc.cfg</code> ist einzutragen:
+
In <code>/etc/openhab2/services/mysql.cfg</code> ist einzutragen:
url=jdbc:mysql://localhost:3306/openhab
url=jdbc:mysql://localhost:3306/openhab
user=openhab
user=openhab
password=password
password=password
+
reconnectCnt=1
+
+
Danach können die Speicher-"Strategien" und die zu speichernden Items in der Datei [http://docs.openhab.org/configuration/persistence.html <code>/etc/openhab2/persistence/mysql.persist</code> festgelegt werden].
+
+
+
Bei Problemen mit der Persistenz-Schicht hilft evtl. ein Neustart von OpenHAB:
+
sudo service openhab2 restart
+
+
== Integration mit Kodi ==
+
Neben dem Kodi-Binding, das man unter den OpenHAB-Addons findet, kann man auch umgekehrt OpenHAB als [[Kodi]]-Addon einbinden:
+
* https://community.openhab.org/t/openhab-for-kodi/4156
+
+
== Scripts z.B. für Rules ==
−
Danach können die Speicher-"Strategien" und die zu speichernden Items in der Datei [<code>/etc/openhab2/persistence/mysql.persist</code> festgelegt werden].
+
Scripts können in verschiedenen Sprachen geschrieben werden. Die übliche Sprache ist ein [[Java]]-Derivat namens Xtend. Siehe dazu
+
* https://eclipse.dev/Xtext/xtend/documentation/203_xtend_expressions.html
== Siehe auch ==
== Siehe auch ==
+
* [http://docs.openhab.org Online-Dokumentation von OpenHAB]
* [[Gebäudeautomation]]
* [[Gebäudeautomation]]
* [[Luigis Smart Home]]
* [[Luigis Smart Home]]