Änderungen

Zur Navigation springen Zur Suche springen
3.847 Bytes hinzugefügt ,  06:30, 7. Sep. 2023
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  
 
   mysql -u root -p
 
   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:
 
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;
+
   CREATE DATABASE openhab CHARACTER SET utf8 COLLATE utf8_general_ci;
 
   CREATE USER 'openhab'@'localhost' IDENTIFIED BY 'password';
 
   CREATE USER 'openhab'@'localhost' IDENTIFIED BY 'password';
 
   GRANT ALL PRIVILEGES ON openhab.* TO 'openhab'@'localhost';
 
   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ü