Änderungen

Zur Navigation springen Zur Suche springen
5.436 Bytes hinzugefügt ,  06:30, 7. Sep. 2023
Zeile 26: Zeile 26:  
* <code>/var/lib/openhab2</code> für die mittels PaperUI oder REST-API eingerichtete Konfiguration.
 
* <code>/var/lib/openhab2</code> für die mittels PaperUI oder REST-API eingerichtete Konfiguration.
    +
 +
=== Backup der Konfiguration ===
 +
 +
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 ==
 +
=== Apache Karaf ===
 +
 +
Die Konsole Apache Karaf erreicht man normalerweise so
 +
  ssh openhab@localhost -p 8101
 +
Passwort ist dabei <code>habopen</code>.
 +
 +
Siehe auch:
 +
 +
* 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 ===
    
Mittels Yahoo Weather kann man Temperatur, Luftfeuchtigkeit und Luftdruck an einem bestimmten Ort als Item nutzen.
 
Mittels Yahoo Weather kann man Temperatur, Luftfeuchtigkeit und Luftdruck an einem bestimmten Ort als Item nutzen.
 +
 +
Für die Identifikation des Ortes bedarf es eines WOEID (der [https://developer.yahoo.com/geo/geoplanet/guide/concepts.html Where On Earth IDentifier]). Dieser kann ermittelt werden über
 +
* http://www.woeidlookup.com/
 +
* 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 ==
 +
 +
Um OpenHAB zu ermöglichen, Werte vor dem letzten Herunterfahren wieder zu verwenden oder einen Graph mit historischen Werten zu zeigen, braucht man ein Persistence Bundle.
 +
 +
=== 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 (nicht das JDBC-MySQL-Bundle).
 +
 +
Indem man sich auf der Linux-Konsole in MySQL mit
 +
  mysql -u root -p
 +
einwählt, kann man folgendermaßen eine Datenbank openhab mit einem User<ref>Vgl. https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql</ref> openhab erstellen:
 +
  CREATE DATABASE openhab CHARACTER SET utf8 COLLATE utf8_general_ci;
 +
  CREATE USER 'openhab'@'localhost' IDENTIFIED BY 'password';
 +
  GRANT ALL PRIVILEGES ON openhab.* TO 'openhab'@'localhost';
 +
 +
In <code>/etc/openhab2/services/mysql.cfg</code> ist einzutragen:
 +
  url=jdbc:mysql://localhost:3306/openhab
 +
  user=openhab
 +
  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 ==
 +
 +
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]]

Navigationsmenü