IoBroker & Node-Red für den virtuellen homee-in-homee

Der virtuelle homee in homee ist eine feine Sache, da man damit zwei Dinge umsetzen kann:

  • Man kann die Daten aus dem echten homee auslesen und damit z.B. andere Geräte steuern oder sich ein eigenes Dashboard erstellen
  • Man kann nicht nativ von homee unterstützte Geräte in homee bringen und sie dann ganz normal in homee steuern.

Ungelogen ist die Dokumentation dazu immens detailliert; vor allem der Aufwand für die Umsetzung, den die Macher dahinter reinstecken, ist schlicht überragend.

Dennoch kann es einen erstmal etwas erschrecken: Docker, Portainer, IoBroker, Nod-Red, Paletten, Nodes, Flows, … was macht was und wie fängt man an?

Ich habe das für mich mal dokumentiert und zeige es euch an den nächsten 3 Einträgen:

  • Hardware & Software, inkl. Installation derselben
  • Einrichten des virtuellen homees
  • Einrichten von virtuellen Devices
28 „Gefällt mir“

Der erste Schritt ist die Hardware. Sie sollte am besten 24h am Tag laufen. Ich denke, die meisten verwenden dafür entweder einen Raspberry Pi oder ein NAS.
Ich selber habe mich für einen Selbstbau-NAS entschieden. Das ist natürlich unkomfortabler als ein fertiges NAS (Synology, QNAP etc), das Ergebnis nimmt mehr Platz weg, der Stromverbrauch ist etwas höher, aber man bekommt dafür mehr Leistung fürs Geld und man kann den Spieltrieb (PC zusammenschrauben) ausleben. Bei einem Hardwaredefekt kann man diesen selber beheben, bei einem NAS kann das auch mal einen kompletten Neukauf bedeuten (z.B. wenn der Speicher mit dem Betriebssystem abraucht).
Ich habe mich für einen AMD Athlon 3000G, 8GB RAM, 128GB NVMe SSD, M-ITX Board (mATX ist billiger, aber ich wollte es halt noch kleiner) und 2x4TB HDD (als Raid 1 - Daten gespiegelt, später ausbaubar mit einer weiteren Festplatte auf Raid 5) entschieden. An der LED Beleuchtung, dem perfekten Kabelmanagement und dem schlichten schwarz-weißen Design aller Komponenten, das durch das seitliche Sichtfenster ersichtlich ist, erfreue ich mich immer, wenn ich in den Keller gehe.

So, kommen wir nun zur Software. Ich habe mich für Openmediavault 5 als Betriebssystem entschieden. Der primäre Einsatz bei mir ist das NAS als Datengrab/automatische Backups meiner PCs. Wer einmal einen Datenverlust hatte weiß, die Investitionen in ein NAS und regelmäßige Backups sind unbezahlbar.

Die Installation ist sehr einfach. ISO runterladen, mit Etcher auf einen USB Stick kopieren und dann auf dem noch jungfräuchlichen PC installieren.

Wenn OMV installiert ist, kann man dort mittels einfachen Mausklicks zuerst Docker und dann Portainer installieren. Grob gesagt: Docker ist einfach ein Programm, in dem man weitere Programme installieren kann. Und mittels Portainer sieht man, welche Programme darin laufen und kann neue installieren. Mehr muss man dazu gar nicht wissen.

Ein wunderbares Video, dass die gesamte Installation von OMV5, Docker und Portainer zeigt, ist hier zu finden:

Am Ende des Videos hat man ein voll funktionsfähiges NAS, Dateiordner im Netzwerk, auf den alle PCs, Tablets, Handys etc. zugreifen können, benutzerspezifische Ordner, wenn mehrere Leute auf das NAS separat zugreifen können sollen, und eben Docker und Portainer.

Natürlich ist das Vorgehen mit einem Raspberry Pi oder einem fertigen NAS etwas anders, aber das Prinzip ist gleich → Betriebssystem drauf, Docker drauf, Portainer drauf.

Nun können wir auf Portainer zugreifen und endlich IoBroker und Node-Red installieren. Dazu einfach im Browser die IP des NAS plus den Port 9000 eingeben. Also z.B. 192.168.123.12:9000

Über Stacks - Add Stack gibt man dann folgenden Code ein

version: ‚2‘

services:
  iobroker:
    restart: always
    image: buanet/iobroker:latest
    container_name: iobroker
    hostname: iobroker
    ports:
      - "8081:8081"
      - "1880:1880"
      - "7681:7681"
      - "15263:15263/udp"
    volumes:
      - iobrokerdata:/opt/iobroker

Anschliessend noch ganz unten auf „Deploy the stack“ klicken und IoBroker installiert sich von alleine.
Hier noch eine Erklärung zu den Ports (an denen ich zuerst gescheitert bin).
8081 benötigt man, um später auf IoBroker zugreifen zu können (genau wie auf Portainer mit :9000 einfach hierzu die IP:8081 im Browser eingeben).
1880 ist der Port für Node-Red. Node Red kann man später entweder über IoBroker öffnen, oder halt auch über IP:1880 - dann hat man etwas mehr Platz für die Ansicht, aber das Ergebnis ist dasgleiche
7681 und 15263 benötigt man, damit homee den virtuellen homee und die virtuellen Geräte später findet.

So, IoBroker installieren war ein Klacks, nun gehts zu Node-Red. Also IoBroker mittels IP:8081 öffnen und dann auf Adapter klicken. Mittig oben node-red eingeben, dann auf die 3 Punkte klicken, danach öffnet erscheint ein kleines Plus unten links in dem node-red Kasten, da drauf klicken, kurz warten, fertig.

Node-Red kann man jetzt via IoBroker unten links (node-red.0) aufrufen, oder über den Browser IP:1880

Als letzten Schritt erstellen wir noch einen virtuellen homee und ein virtuelles Device.
Dazu im Node Red → oben rechts Burger Menü - Palette verwalten (Palette) - Installieren:
node-red-contrib-homee → Installieren

Danach auf „schließen“ klicken. Jetzt hat man in Node Red unten links den Node „homee API“. Diesen auf die Zeichenfläche ziehen, doppelklicken und mit dem Stiftsymbol neben „neuen homee hinzufügen“ konfigurieren. Ich verweise dazu gerne auf

man muss aber nur den echten homee-Namen (oder IP) eingeben, sowie einen bestehenden Nutzer und Passwort (kein kleiner homee). Jetzt kann man mit Node-Red auf die Geräte von homee zugreifen :slight_smile:

image

Andersrum geht es wie folgt: Man zieht das „homeeDevice“ auf Zeichenfeld, doppelklick drauf und mit dem Stiftsymbol legt man einen neuen virtuellen homee an. Dafür einfach einen Namen für den vhomee ausdenken und einen Benutzer und PW anlegen. Diese Daten gibt man dann später im echten homee beim homee-in-homee ein und nun kann der echte homee auf dieses virtuelle Gerät zugreifen. Jedes weitere virtuelle Gerät, das man anlegt, ist dann schon automatisch mit dem virtuellen homee verbunden. Am Ende immer auf „Deploy“ klicken, damit die Änderungen umgesetzt werden.

So, geschafft! Wir haben nun ein NAS und einen virtuellen homee. Im nächsten Post zeige ich euch, wie man dann ein echtes Gerät einbindet - es wird ein Landroid Worx Mähroboter :slight_smile:

18 „Gefällt mir“

Dank der unglaublichen Vorarbeit einiger Community Mitglieder bei der Flow Erstellung ist es unglaublich simpel, einzelne Geräte in den homee zu bekommen. Man muss das Rad nicht immer neu erfinden :wink: Programmieraufwand für folgendes Beispiel: 0.

Wagen wir uns also an etwas eigentlich kompliziertes: Die Einbindung des Worx Landroid Mähroboters. Am Ende können wir den Mähroboter über HGs starten und auch seine Sensoren auswerten, z.B die Temperatur des Akkus, was aber nicht der aktuellen Außentemperatur entspricht. Aber es geht hier ums Prinzip :wink:

Da der Mähroboter schon über die Worx Cloud ansprechbar ist, benötigt es keine weitere Hardware. Statt mit der Landroid App verbindet man sich mit dem IoBroker mit dem Roboter und tauscht dann mittels Node Red die Daten/Befehle aus. Wenn das kompliziert klingt, einfach nochmal durchlesen.

Also, Schritt 1: Den Mähroboter mit IoBroker verbinden:
Wieder mittels IP:8081 IoBroker aufrufen. Unter Adapter nach worx suchen:

Wir wählen den Worx Landroid Cloud Adapter aus, klicken auf die 3 Punkte und dann auf das Plus unten links. Nun öffnet sich ein Fenster, indem man seine Mailadresse und sein PW eingibt, genau wie man es sonst in der Landroid App tun würde.


Außerdem habe ich noch Rohdaten hinzufügen und Entfernung und Zeit in Min. und Meter angeklickt. Danach auf Speichern und Schließen.
Wenn man sich nicht vertippt hat, erscheint der Mähroboter nun unter Instanzen mit einem grünen Punkt (wenn der Punkt gelb ist, verbindet er sich noch, wenn er rot ist, hat was nicht geklappt, z.B. PW falsch eingegeben).

Jetzt, da wir auf den Mähroboter zugreifen können, können wir ihn in Node Red mit Flows (was grob gesagt bei homee ein Homeegramm wäre) steuern.
Wie anfangs geschrieben, brauchen wir die Flows nicht selber schreiben - die gibts ja schon.


Einfach mittig rechts auf den grünen CODE Button klicken, Download als ZIP, und dann den Ordner entpacken. Dann hätten wir alle Nodes/Flows, die dort gespeichert sind. Wir brauchen aber nur einen.
So, jetzt aber zurück zu Node Red. Mit STRG+i (oder bei Mac ⌘+i) öffnen wir das Import Fenster. Dort wählen wir den WORX LANDROID.json Node aus.
Es erscheint nun folgender Flow:

Zwei Sachen müssen wir noch ändern:
Auf den MÄHROBOTER in der Mitte doppelklicken und unseren virtuellen homee auswählen.
Die einzelnen Nodes anklicken und unseren Mähroboter verlinken:

Beispiel Battery Temperature:


Auf Battery Temperature doppelklicken, dann rechts bei Topic auf die 3 Punkte
Wir hangeln uns durch die Ordner (oben links sieht man noch die falsche Worx Nummer, unten sieht man dann die eigene)

In dem Beispiel Doppelklick auf batteryTemperature. Nun hat sich die Worx Nummer geändert. Im folgenden Fenster auf Fertig klicken und dann das ganze für alle blauen Felder links und rechts wiederholen.
Wie gehts schneller: Einfach die Nummer im Properties Fenster ersetzen, wenn man auf das blaue Node doppelklickt :wink:
Danach auf Deploy und - JOB DONE.

Im homee können wir nun ein neues Gerät hinzufügen - WLAN - homee-in-homee - neue Geräte suchen - Mähroboter :slight_smile:

Den können wir jetzt wie jedes andere Gerät z.B. auf das Dashboard legen, manuell steuern oder über HGs automatisch ansprechen.


(nicht irritieren lassen im Screenshot - am Anfang steht da überall 0. Nach einiger Zeit werden die Daten abgefragt und dann erscheinen die richtigen Werte)

Edit: Ich habe festgestellt, dass durch mein Anklicken in Minuten und Metern die Berechnungen nicht stimmen. Daher habe ich die „total mowing time“ wie folgt bearbeitet:
image
Hinzugefügt: „/60“ nach „level“

Und die Total mowing distance:
image
Noch ein /1000 nach level.

Alternativ kann man auch einfach beim Hinzufügen des Mähroboters das Feld mit Angabe in Minuten und Metern unausgewählt lassen.

(Wenn die Schalterbeschriftung bald von Hand angepasst werden kann, wird es noch komfortabler).

Nun haben wir die Kontrolle über:

  • Schalter 0 zum Starten des Roboters bzw. zum Schicken in die Ladestation
  • Schalter 1 zum Starten des Kantenschnitts
  • Schalter 2 zur Anzeige ob geladen wird (an), oder eben nicht (aus)
  • Ändern der Verzögerung bei Regen (in 30 Minuten Schritten wie in der App)
  • Ändern der Mähdauer -100% bis +100%
  • Akkuladung
  • Akku Temperatur
  • Verbindungsqualität
  • Statistiken wie Mähzeit, km-Leistung und Ladezyklen

Die Entstehung des Flows gibts übrigens hier:

Als letzten Hinweis: Der Mähroboter erscheint im Smart Widget Energie. Dort werden dann die Ladezyklen angezeigt. Wenn man auf das Smart Widget klickt, auf bearbeiten geht und die Geräteauswahl auf manuell setzt, kann man den Mähroboter abwählen. Für mich ist das die bessere Wahl/Übersicht.

8 „Gefällt mir“

Placeholder 4

2 „Gefällt mir“

Hallo,
ich würde gerne mal eine Frage nachreichen.
Ich habe mir am Wochenende mal einen RaspberryPi mit dem ioBroker bespielt und in mein Netztwerk gehangen.
Der ioBroker hat auch über die Adapter kontakt zum Homee und zu meinen Shelly’s. Zudem habe ich im ioBroker NodeRed installiert und hier auch erfolgreich ein virtuellen Temperatursensor im Homee erzeugt.
(Ich finde für ein Wochenende, ohne Ahnung zubhaben ganz okay😅)
Jetzt zu meiner Frage:
Wie muss ein Skript aussehen, damit ich den Wert einen Temperatursensor eines Shelly auf dem virtuellen Temperatursensor des Homee angezeigt bekomme??? An dem Punkt komme ich nicht weiter.

1 „Gefällt mir“

Hallo @GreenGecko ich denke mal, Deine Frage ist hier:
Node Red - Hilfe-/Frage-/Ideen-/Austausch - Thread besser aufgehoben. Und die Chance auf eine Antwort evtl. auch höher.
Hier findest Du nen Flow zu einem Aquara Temp Sensor
AQARA (Xiaomi) Geräte in homee - Zigbee2mqtt/NodRed/Enocean Simulation - #79 von pino73

danke,
sorry das homee forum ist leider so doof unübersichtlich im Gegensatz zum Shelly Forum, da passiert mir sowas schon mal.
Danke für deine Antwort.
Aber ich suche ein Script, keinen Flow.
Werde mal deinem Vorschlag nachgehen👍

Du brauchst schon einen Flow und kein Script :wink:

Lies Dich hier mal ein, da ist alles was du brauchst.

Aber kalkulier etwas Zeit fürs Lesen ein :crazy_face:

Ich habe selber mehrere Shellys so eingebunden, aber leider keinen Tempsensor.

Ich habe Temperatursensoren der Shellys aus IOB via vhih eingebunden. Stelle dir gerne den Flow zur Verfügung. Das dazugehörende Script ist im Funktion-Node.

Klingt super, aber kannst du mir sagen was du mit „vhih“ meinst? sorry ich bin ganz neu dabei und verstehe noch nicht alles.

vhih = virtueller homee in homee.

@GreenGecko , siehe auch mein Link oben :wink:

super, ich sehe mir das mal an und schau ob ich damit weiter komme

1 „Gefällt mir“

Hey, die Anleitung scheint ein wenig veraltet zu sein? In Node-Red gibt es die Paletten Einstellung nicht mehr. Ich habe den Homee Adapter somit über die ioBroker Adapter Suche installiert und erfolgreich verbunden. Leider erscheint in Node-Red aber nicht die homeeApi.
Was mache ich noch falsch?

Der homee iobroker Adapter hat nicht mit dem virtuellen hih homee zu tun.
Die Palette kann mit in der Settingsdatei wieder aktiviert werden. Einfach mal googlen.
Der virtuelle homee basiert auf einem Nodered node von Stefan Himpler. Weiter oben ist ein Link zum entsprechenden Thread. :wink:

1 „Gefällt mir“

Danke für die Hilfe. Hier findet man alles https://github.com/stfnhmplr/node-red-contrib-homee/wiki/Installation zur Installation und hier zu fehlenden Palette Kein Paletten verwalten im neuen Node-RED Adapter

2 „Gefällt mir“

Danke für die vielen Tipps hier im Blog! Bisher war ich immer nur „stiller Zuhörer“, heute ist das also mein erster Beitrag :innocent:

Ich habe mir gerade das neuste iobroker image (v3.3.18) für den raspi installiert (Download von ioBroker Smarthome). Auch dort ist die Palettenverwaltung in node-red (v1.3.7) nicht standardmäßig eingeblendet. Aber man kann sie sehr einfach aktivieren, ohne in settings.js Änderungen vorzunehmen, was bei mir übrigens nie funktioniert hat :thinking::

Dazu müsst ihr:

  1. Im iobroker Admin-UI auf Instanzen klicken(dann lande ich auf http://iobroker-pi:8081/#tab-instances)
  2. die Einstellungen für die node-red Instanz durch Klick auf den „Schraubenschlüssel“ aufrufen, und
  3. die Checkbox „Use palettmanager“ aktivieren.

Ich hoffe, das spart anderen „iobroker NewBees“ einiges an Zeit!

7 „Gefällt mir“

Es gibt ja auf Github node-red-contrib-homee 0.12.0.

Beim der letzten Aktualisierung auf 0.11.0 wurde mir das bei Palette verwalten in Node-Red als Update angeboten. Hier steht diesmal nichts:
grafik

Ist das node-red-contrib-homee 0.12.0 noch nicht veröffentlich oder muss ich das auf dem Raspi manuell ausführen?
Wird das dann ganz normal drüber installieren mit „npm install node-red-contrib-homee“?

Ich bin da noch nicht so sattelfest :wink:

Edit:
Danke an @stfnhmplr, die Aktualisierung ist nun verfügbar:
grafik

@Wildsparrow VIELE DANK für die ausführliche Anleitung. Damit habe ich nun zumindest iobroker und nodered installiert bekommen und im nodered meinen „echten Homee“ verbunden und einen virtualHomee angelegt.

image

Nun versuche ich meinen virtualHomee in meinem echten Homee als „homee-in-homee“ zu verbinden. Dazu gebe ich ja diese Daten in der Homee WebApp an, richtig?
image

image

Aber wenn ich nun auf „Absenden“ klicke, dann passiert genau gar nichts.

Hat jemand eine Ahnung, was ich falsch mache?

Evtl. hast Du noch kein Device angelegt, also gibts nix zu includieren weshalb vermutlich auch nix passiert.

Schau Dir mal die Videos von @Micha an, der ist der NodeRed Held hier und erklärt das wirklich 1A.