Iobroker homeeAPI mit node-red

Liebe Freunde des homee und iobrokers,

nachdem ich die ersten Schritte bei der Einbindung neuer Geräte in meinen neuen homee mit dankenswerter Unterstützung von @ch.krause und @Steffen genommen habe, möchte ich mich nun an die Einbindung in meine iobroker-SmartHome-Landschaft machen.

Ich habe mir ein paar youtube-Vids angeschaut und einige (zum Teil nicht mehr sehr aktuelle) Hilfestellungen im Internet durchgelesen. Alles leider ohne Erfolg.

Ich habe die node-red-contrib-homee installiert und dann den node „homeeAPI“ in einen Flow gezogen. Danach die homee-Anmeldeinformationen (IP, etc.) angegben und eine Verbindung etabliert.

Leider bekomme ich beim Debug nicht einen Wert (ein Objekt) übergeben, welches dann im Debug-Fenster ausgegeben werden soll.

Hat einer eine Idee und kann mir weiterhelfen?

Steht beim echten homee im Tagebuch, dass dein User, den du bei dem homee Api node hinterlegt hast, sich angemeldet hat?

@whoami Ja - Im Tagebuch steht „Neues Gerät angemeldet“

grafik
grafik

Viel mehr Magie sollte da ja nicht hinter versteckt sein.

grafik

Parallel habe ich auch noch den homeeAdapter laufen - falls das irgendwelche Auswirkungen haben sollte (mit dem selben User).

Probier mal im inject node folgendes, also ohne das /

GET:nodes

@whoami
Hatte ich auch schon versucht, da mir bei der Recherche auch die beiden Schreibweisen untergekommen sind. Macht aber keinen Unterschied bzgl. irgendwelcher Debug-Nachrichten. Totalle Stille in dem Debug-Fenster. Normalerweise würde ich da die übergabe von ganzen Objekten erwarten - so auch in einem „älteren“ youtube-Vid. Bei mir tut sich rein garnichts.

Habe auch mal ein parallel zu dem „GET:nodes“ ein Inject mit TimeStamp reingeschoben - da kommt dann auch die „timestamp“ als debug-Nachricht raus. Also scheint der Debug auch zu funktionieren.

Du hast einen Filter für den Ausgang des Nodes aktiv. Nimm mal die beiden 0 bei Node-ID und Attribut-ID raus.

@stfnhmplr
OMG - was mich das an Zeit gekostet hat. Vielen Dank. Die 0 war schon voreingestellt. Jetzt klappt es!

Wenn du den homee in iobroker einbinden willst, warum nutzt du dann nicht den Adapter „homee“ direkt im iobroker?

1 „Gefällt mir“

@coffeelover @stfnhmplr

Leider habe ich es noch nicht geschafft, mit dem Adapter Werte wieder zurück an den homee zu schicken. Gleiches kenne ich auch von dem KNX-Adapter.

Ich habe in diesem Fall die node-red-Pakete benutzt. Bei KNX funktioniert dies einwandfrei.

Beim homee schaffe ich es bis dato auch noch nicht, dass mit node-red auf dem homee ein Befehl ausgeführt wird. Das Auslesen funktioniert nun einwandfrei. Die Syntax zum Schreiben ist mir jedoch nicht klar und ich finde keine passende Dokumentation. Bin nun auch schon ein bisschen aus dem Programmieren raus - die Syntax erschließt sich mir nicht selbstredend.

Würde mich über weitere Hilfestellungen freuen.

Ziel: Werte aus meiner KNX-Wetterstation nutzen, um Warema-Geräte auf dem Homee zu steuern. KNX-Werte habe ich in node-red (oder auch ggf. auch in iobroker-Datenpunkten) und möchte nun je nach Licht, Wind und Regen meine Warema-Geräte steuern.

Möchtest du etwas über das Api node auslösen ?
Dazu habe ich eine Doku angefangen aber noch nicht vervollständigt.
Was genau willst du auslösen über NR?

1 „Gefällt mir“

@Micha

Ja.

Ich habe 3 Warema-Funkgeräte. Alle 3 sind in homee eingerichtet. Der node 2 hat z.B. ein Attribut „target_value“, welches ich (soweit denke ich das) setzen/verändern muss, damit die Pergola in Gang gesetzt wird.
Dies möchte ich in node-red von den Zuständen meiner Wetterstation abhängig machen. Den Teil bekomme ich hin (switch, o.ä.).

Ich habe auch deine youtube-vids 5 und 5.1 angeschaut - konnte meine Fragestellung aber nicht erfolgreich daraus ableiten.

Ich habe es mal mit einem „inject“:

PUT:/nodes/1/attributes/0?target_value=90

ausprobiert. Bewegt sich nichts.

[Update] - Mit dem richtigen attribut (29) funktioniert es jetzt ^^ …wenn man ein Brett vor dem Kopf hat.

Die Doku würde mich dennoch interessieren!!! Dank für jeden Hinweis und deinen Community-Input. Bin auch dein youtube-Abonnent geworden!

1 „Gefällt mir“

Super das es jetzt klappt

Hallo homees,

ich brauche mal einen Tipp wie ich das Ergebnis von get:/nodes nach bestimmten Geräten filtern kann.

Alle gesuchten Geräte lassen sich über

payload.nodes[34].profile : 2001
payload.nodes[10].profile : 2001
payload.nodes[11].profile : 2001
payload.nodes[26].profile : 2001
payload.nodes[1].profile : 2001

ermitteln.

Kann ich dabei mit Wildcards arbeiten oder wie wäre da die beste Vorgehensweise?

Hallo @Wahl-HHer,

möchtest du in Node red auf das Profil filtern ?
oder wie willst du den Filter setzen ?

Ansonsten kannst du mit dem forEach() Befehl das Array auflösen und dann mit nem If auf das Profil filtern.

Ja ich möchte in node-red auf das Profil filtern, damit ich die gesuchten Geräte nicht alle einzeln über ihre ID abfragen muss.

Oder gibt es da einen besseren Weg?

Arbeite mich gerade erst in node-red ein und kämpfe noch ein wenig mit der Syntax.

Grundsätzlich werden zustandsänderungen von dem node ausgegeben und du musst nicht separat diese node abfragen.
Zweitens hat node red einen globalen Kontext und hier kannst du jederzeit den letzten Zustand abfragen.

Ein ständiges get:nodes an homee senden ist nicht sinnvoll.

Ach??
Bei mir läuft ein inject-node mit „get:/nodes“ seit Wochen in einer 1-Sekunde-Schleife…
Das war also
a) unnötig und
b) nicht sinnvoll?

Naja, immerhin was gelernt…

Danke :smiley:

1 „Gefällt mir“

Du kannst das natürlich so machen jedoch wird die Performance des homee irgendwann in den Keller gehen.
Wieso fragst du die nodes im Sekundentakt ab ?

Ich hab gedacht, dass die Änderungen sonst nicht sichtbar werden.
Also ich dachte, dass man immer nur einmalig den aktuellen Status der nodes abfragt…

Aber gut, an der Performance vom homee sieht man ja „nix“ :smiley: :see_no_evil:
:wink:
…als ich gegen 17:00 die Schleife beendet hab… :smiley:

2 „Gefällt mir“

Meinste wirklich :joy: