WIKI: Virtuelle Geräte via hih (vhih)

Dieses WIKI wird gemeinschaftlich entwickelt - helft gerne und teilt euer Wissen.

Wir sammeln hier das Wissen zum Thema virtuelle Geräte in homee via hih (homee in homee) basierend auf der Arbeit von @stfnhmplr, @Micha und all den anderen. (Community Link)

Das Wiki wird voraussichtlich zukünftig auf GIT umgezogen - dennoch können wir hier ja schon einmal anfangen.

Grundsätzliches
Hier folgt eine Beschreibung, warum das Ganze…

  • virtuelle Geräte zum Speichern von Werten
  • virtuelle Geräte zur Einbindung von bisher nicht unterstützten Geräten (SONOS, Saugrobotor, Sensoren & Aktoren…)

Begriffe
iobroker: iobroker ist eine Open Source Software-Plattform zur Vernetzung diverser Smarthome Komponenten über Adapter. Installation ist auf diversen Systemen (pi, NAS-Docker, …) möglich. https://www.iobroker.net/
Adapter/ Adpatereinstellungen: Für jedes Gerät in iobroker werden separate Adapter installiert. Diese nutzen entweder die API der Geräte oder reverse engineerte Zugriffe. Auch Node-Red kann als Adapter in iobroker installiert werden.
Node-Red: Node-Red ist eine Software zur Verbindung unterschiedlicher Hardware über SW-Bausteine. (Nodes)
Docker: Einige NAS bieten die Möglichkeit, Software in Docker-Containern zu installieren und ausführen zu lassen. Wer ohnehin schon einen NAS laufen hat, kann hier möglicherweise seine iobroker- oder Node-Red Installation unterbringen.
NPM: NPM ist ein Paketmanager für JavaScripts. Diese NPMs werden zur Installation genutzt.

Installation
Option I: Installation auf einem Raspberry Pi
Platzhalter - vgl. Blog von Stefan

Option II: Installation über iobroker

  1. In einer laufenden iobroker-Installation den Adapter „Node-Red“ installieren.
  2. In den Adaptereinstellungen die NPM für den virtuellen hih einfügen.
    Weiteres analog Blog Stefan.

Option III: Docker
z.B. Synology DS
übernimmt: @medicus07

Virtuelle Geräte anlegen
Analog Blog Stefan.
Nutzt dazu bitte die auf GITHUB vorhandenen Vorlagen zu bestehenden Flows - gerade für den Einstieg ist das sehr hilfreich. Github

Grundsätzlich besteht ein Gerät aus der Gesamtzahl seiner Attribute. (https://github.com/stfnhmplr/homee-api/blob/master/lib/enums.js). Das beliebige Kombinieren von Attributen in einem virtuellen Gerät kann dazu führen, dass das Gerät in homee nicht korrekt angezeigt wird. (App-abhängige Unterschiede).

@Micha hat einen Video Channel mit Tutorials gestartet.

Attribute in virtuellen Geräten

Attribut ID = muss einmalig sein

Node ID = entspricht in jedem Attribut der des virtuellen Gerätes

Instance = wenn die Attribute unterschiedlich sind ist diese 0. Wenn gleiche Attribute z.B. Stromaufnahme verwendet werden, sie wird hier fortlaufend durch nummeriert.( 0,1,…)

Editable = wenn 0 dann nicht editierbar und in der Geräteübersicht.
wenn 1 dann editierbar und unter bearbeiten

Ausnahmen: es gibt einige Fälle wo dies nicht der Fall ist. z.B. Schalter diese müssen zum betätigen editierbar sein und sind trotzdem in der Geräteübersicht. Dies ist vom Profil abhängig und muss getestet werden. Wenn das Profil nicht für Schalter ausgelegt ist, tauchen diese dann „schaltbar“ unter bearbeiten auf.

changed_by = hier wird festgelegt, wodurch sich der Wert ändert (z.B. sich selber, User, HG etc.)

Attribute in homee App unter "Gerätestatus/Messwert/Alarme

Wo die angelegten Attribute stehen z.B. Messwerte, Gerätestatus oder Alarme hängt von 2 Dingen ab.

1 . Das Profil, welches für das Device gewählt wurde.
2 . Ob der Attribut typ von dem Profil unterstützt wird.

So wird z.B. bei einem Thermometer unter Messwerte „nur“ der typ Temperatur auftauchen
und die anderen Attribute unter Gerätestatus. Hier gilt es, etwas mit den Profilen zu
experimentieren.

Rückkanal anlegen
Der Rückkanal ist dafür nötig, um sicherzustellen, dass die Informationen des virtuellen Geräts in homee und auf dem Parallelsystem identisch sind, egal ob via homee oder an anderer Stelle (z.B. in iobroker oder einer separaten App der eingebundenen Geräte) geändert wird.
Auch hierzu empfiehlt sich die Verwendung der bereits bestehenden Flows als Einstieg.

Für den Rückkanal muss sichergestellt sein, dass die Art der Werte dem Variablentyp entspricht, den das Gerät erwartet (String, Boolean, etc.). Z.B kann ein change Node benutzt werden, um den payload auf das targetValue zu setzen. Dieses wird rechts an den homee Node angefügt. An dieses Change-Node wird wiederum ein Output-Node des externen Geräts gehängt.

Beschreibung zur Filterung von Werten aus homee (tbd) --> vgl. hierzu die Methode aus Michas Video homee und Node-Red Teil 4 , homee API - im Video werden Werte aus homee gefiltert und im Debug angezeigt.

Update
Vorgehen zum Update

  • Installationspfad unter iobroker /opt/iobroker/iobroker-data/node-red
  • Installationspfad unter Raspberry Pi tbd
  • Install Befehl: npm install node-red-contrib-homee@0.3.0-beta.7 (Version ggf. anzupassen)

Probleme nach dem Update

Fehlersuche

  • Geräte nach Neustart Node-Red (NR) bei iobroker-Installation.
  • Geräte nach Neustart homee

FAQ

  • Kann ich aus den Attributen beliebige Geräte zusammenbasteln?
  • Wie kann ich Geräte in homee einbinden, die nicht mit homee kompatibel sind? -> Das Gerät muss auf andere Weise mit Node-Red in Verbindung gebracht werden. a) Gerät über den entsprechenden Adapter in iobroker verbinden. Wenn Node-Red direkt in iobroker installiert ist, gibt es ein iobroker-Node, mit welchem die iobroker Geräte direkt ausgewählt werden können.
45 „Gefällt mir“

Kleine Verbesserung: „gleich“ bezieht sich auf das json attribute „type“ wenn also Attribute mit gleichen type verwendet werden muss das json attribute instance hochgezählt werden-

1 „Gefällt mir“