rdmtc / RedMatic

Node-RED packaged as Addon for the Homematic CCU3 and RaspberryMatic 🤹‍♂️
Apache License 2.0
533 stars 47 forks source link

node-red-contrib-tradfri #131

Open spiu16 opened 5 years ago

spiu16 commented 5 years ago

Hallo, ich würde gerne mein IKEA Tradfri Gateway mit einbinden. Habe den Node "node-red-contrib-tradfri" installiert und bin dabei den configuration node einzurichten. Beim Punkt "CoAP path" bin ich aber leider gescheitert :-( Laut der Beschreibung unter https://flows.nodered.org/node/node-red-contrib-tradfri sollten eigentlich ein paar voreingestellte Sets vorhanden sein, von denen man auswählen kann ("A set of precompiled versions of libcoap is available to choose from."). In einem Youtube-Video zur Einrichtung sieht man diese Links auch (https://www.youtube.com/watch?v=075zTnrIp1Y). Bei mir sind diese Links aber leider nicht sichtbar:

grafik

Jemand eine Idee woran das liegen könnte? Oder hat schon jemand sein IKEA Tradfri Gateway erfolgreich eingebunden?

hobbyquaker commented 5 years ago

Diese Nodes benötigen ein COAP binary, das kann so nicht funktionieren, das müsste ich mit ins RedMatic Release packen da auf der CCU bzw RaspberryMatic keine Binaries gebaut werden können. Aber vielleicht kommst Du ja mit diesen Nodes https://flows.nodered.org/node/node-red-contrib-node-tradfri zum Ziel, die benötigen keine Binaries. Falls nicht setz ich das auf die Todo und liefer die Binaries mit einem der nächsten Releases mit.

spiu16 commented 5 years ago

Ok, ich hatte mich an der Liste https://github.com/HM-RedMatic/RedMatic/wiki/Erfolgreich-getestete-Nodes orientiert. Werde den anderen Node probieren. Danke

spiu16 commented 5 years ago

Mhmm, das hat leider nicht funktioniert. Bei der Installation über das Node-Red Dashboard kommt folgende Fehlermeldung:

Installation of module node-red-contrib-node-tradfri failed:

npm WARN deprecated github@0.2.4: 'github' has been renamed to '@octokit/rest' (https://git.io/vNB11)

node-aead-crypto@1.1.6 install /usr/local/addons/redmatic/var/node_modules/node-red-contrib-node-tradfri/node_modules/node-aead-crypto node lib/install.js

running default installation script

node-aead-crypto@1.1.6 install:default /usr/local/addons/redmatic/var/node_modules/node-red-contrib-node-tradfri/node_modules/node-aead-crypto node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using needle for node-pre-gyp https download node-pre-gyp WARN Tried to download(404): https://github.com/AlCalzone/node-aead-crypto/releases/download/v1.1.6/node-v57-linux-arm.tar.gz node-pre-gyp WARN Pre-built binaries not found for node-aead-crypto@1.1.6 and node@8.14.1 >(node-v57 ABI, unknown) (falling back to source compile with node-gyp) gyp ERR! configure error gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable. gyp ERR! stack at...

hobbyquaker commented 5 years ago

oh ok, das hat entgegen der behauptung im readme also doch auch binärmodule. ich bau dir diese coap lib ins nächste oder übernächste redmatic release, dann kannst node-red-contrib-tradfri nutzen.

spiu16 commented 5 years ago

Perfekt! Danke

hobbyquaker commented 5 years ago

@spiu16 Versuch mal bitte folgendes: auf der CCU einloggen

cd /usr/local/addons/redmatic/bin
wget https://raw.githubusercontent.com/HM-RedMatic/RedMatic/master/prebuilt/armv6l/bin/coap-client
chmod a+x coap-client

Dann als "CoAP Path" in der node-red-contrib-tradfri Konfig eintragen: /usr/local/addons/redmatic/bin/coap-client

hobbyquaker commented 5 years ago

@spiu16 In RedMatic 2.0 steckt der coap-client nun mit drin, Du brauchst Dich also nicht mehr auf der CCU einloggen, einfach als "Coap Path" in der Tradfri Konfiguration /usr/local/addons/redmatic/bin/coap-client eintragen. Bitte gib bescheid ob es funktioniert.

vx-i commented 5 years ago

@hobbyquaker Es gibt eine gute und eine schlechte Nachricht. coap-client wird mit der neuen Version installiert und funktioniert. tradfri-config funktioniert immer noch nicht. Weder der Key wird erstellt, noch funktioniert die Auflistung der Geräte.

Ich habe den Key mit dem coap-client erstellt und in die tradfri-config eingetragen. Aber damit geht es auch nicht weiter. Beim Ausprobieren ist mir aufgefallen, dass node-tradfri-argon als Abhängigkeit drin ist. Wie kann ich prüfen, ob diese auch installiert wird? Denn wenn ich die Befehle aus der Datei node-tradfri-argon/lib/command-builder/index.js manuell ausführe, dann bekomme ich auch die Auflistung der Tradfri-Geräte.

Wenn ich etwas ausprobieren soll, sag kurz Bescheid. Mache ich gerne :-)

spiu16 commented 5 years ago

@vx-i wie hast Du denn den Key mit dem coap-client erstellt? Wie macht man das?

vx-i commented 5 years ago

@spiu16

  1. Per SSH auf RaspberryMatic anmelden
  2. cd /usr/local/addons/redmatic/bin/
  3. coap-client -m post -u "Client_identity" -k "[dein_security_code]" -e '{"9090":"[nodered_app_id]"}' "coaps://[deine_ip]:5684/15011/9063"
  4. Kopiere aus der Antwort den Schlüssel

Danach kann man mit diesem Befehl den Gateway Anfragen stellen: coap-client -m get -u "[nodered_app_id]" -k "[preshared_key]" "coaps://[deine_ip]:5684/"

! Ersetze die Stellen mit []-Klammern durch deine Werte !

spiu16 commented 5 years ago

Danke!

Aber wenn ich das Kommando cd /usr/local/addons/redmatic/bin/ ausführe passiert nichts. In der Kommandozeile steht nur „#“. Habe mich mit User „root“ per SSH verbunden.

hobbyquaker commented 5 years ago

Beim Ausprobieren ist mir aufgefallen, dass node-tradfri-argon als Abhängigkeit drin ist. Wie kann ich prüfen, ob diese auch installiert wird?

Wenn Die Installation fehlerfrei ablief muss das installiert sein, sollte unter /usr/local/addons/redmatic/var/node-modules/node-red-contrib-tradfri/node_modules/ zu finden sein.

spiu16 commented 5 years ago

@vx-i In das Verzeichnis bin ich nun gekommen, aber bei Eingabe vom Befehl aus 3. (mit meinen Angaben) kommt die Fehlermeldung:

grafik

hobbyquaker commented 5 years ago

Du musst ./ voranstellen, also ./coap-client ...

spiu16 commented 5 years ago

Super, das hat auch geklappt. Hab jetzt mein Preshared Key. Probiere dann morgen auf das device zuzugreifen. Danke

vx-i commented 5 years ago

@hobbyquaker Vielen Dank für den Hinweis. node-tradfri-argon ist installiert. Also ist das kein Problem.

Ich glaube jedoch den Fehler gefunden zu haben. Sobald man Node-Konfiguration tradfri-config öffnet, kann man in Firefox Netzwerkanalyse sehen, dass mit Fehler 404 geantwortet wird. Die URL dazu lautet "https://[raspberrymatic_ip]/tradfri/libs". Das kann nicht funktionieren, da die URL so aussehen muss: "https://[raspberrymatic_ip]/addons/red/tradfri/libs". Führt man das im Browser aus, gibt es als Antwort eine JSON-Datei:

[{"file":"coap-client-debian","path":"/usr/local/addons/redmatic/var/node_modules/node-red-contrib-tradfri/node_modules/node-tradfri-argon/lib/coap-client-debian"},{"file":"coap-client-osx","path":"/usr/local/addons/redmatic/var/node_modules/node-red-contrib-tradfri/node_modules/node-tradfri-argon/lib/coap-client-osx"},{"file":"coap-client-raspbian","path":"/usr/local/addons/redmatic/var/node_modules/node-red-contrib-tradfri/node_modules/node-tradfri-argon/lib/coap-client-raspbian"}]

Eine Idee, warum hier nicht https://[raspberrymatic_ip]/addons/red/ als root url genommen wird?

hobbyquaker commented 5 years ago

Das ist leider ein "gängiger Fehler" den die Entwickler von Node-RED Nodes machen, statt einem relativen Pfad da einen absoluten zu verwenden, das fliegt einem dann auf die Füße wenn Node-RED mit einem anderen httpRoot als / betrieben wird. Versuch mal bitte folgendes: In der Datei /usr/local/addons/redmatic/var/node_modules/node-red-contrib-tradfri/tradfri-out.html gibt es 3 HTTP Get calls:

Lösch da mal jeweils den führenden / raus und starte Node-RED dann neu. Wenn das das Problem behebt machen wir einen Pull Request.

vx-i commented 5 years ago

Vielen Dank! Damit läuft es.

Mit Pull Request meinst du einen Reuest Richtung nidayand/node-red-contrib-tradfri?

hobbyquaker commented 5 years ago

jap. Willst Du oder soll ich?

vx-i commented 5 years ago

Mach ruhig. Und ich schaue zu und lerne. Prinzipiell wüste ich wie es geht, Gemacht habe ich es noch nie.

spiu16 commented 5 years ago

und ich beobachte das weiter und warte bis @hobbyquaker das in eine neue Version paketiert... :D

hobbyquaker commented 5 years ago

Der Ball liegt jetzt beim Maintainer von node-red-contrib-tradfri, wenn er eine Neue Version rausbringt mach ich hier zu. Bis dahin bleibt nur der Workaround die 3 Slashes aus dieser Datei manuell zu entfernen. Wenn Du mit der Linux-Kommandozeile nicht so vertraut bist geht das recht komfortabel mit z.B. WinSCP

spiu16 commented 5 years ago

welchen editor nutzt ihr auf der rasperrymatic um die Dateien zu verändern? Könnt ihr da was empfehlen? Nano ist standardmäßig leider nicht installiert. Bekomm ich das da drauf?

vx-i commented 5 years ago

WinSCP hat internen Editor. Das reicht meistens aus. Datei auswählen, Rechtsklick, Bearbeiten.

spiu16 commented 5 years ago

Top! Danke

spiu16 commented 5 years ago

Perfekt, Zugriff funktioniert nun auch bei mir. @hobbyquaker @vx-i Vielen dank für den mega Support!

RedBaron2020 commented 5 years ago

Stimmt toller Support.

Was muss ich jetzt mit der Version 3 bzw der aktuellen Version 4 machen damit alles klappt?

Habe etwas die Übersicht verloren! 🤷🏻‍♂️

Kann eine bitte die Schritte zusammen fassen.

Danke.

RedBaron2020 commented 5 years ago

@spiu16

  1. Per SSH auf RaspberryMatic anmelden
  2. cd /usr/local/addons/redmatic/bin/
  3. coap-client -m post -u "Client_identity" -k "[dein_security_code]" -e '{"9090":"[nodered_app_id]"}' "coaps://[deine_ip]:5684/15011/9063"
  4. Kopiere aus der Antwort den Schlüssel

Danach kann man mit diesem Befehl den Gateway Anfragen stellen: coap-client -m get -u "[nodered_app_id]" -k "[preshared_key]" "coaps://[deine_ip]:5684/"

! Ersetze die Stellen mit []-Klammern durch deine Werte !

Wie komme ich an die "nodered_app_id"???

gungam commented 5 years ago

die "nodered_app_id" ist frei wählbar und muss identisch mit dem Feld "App Identity" in der configuration des Tradfri nodes sein.

die Antwort des Befehls sollte dann ähnlich wie folgende sein

decrypt_verify(): found 24 bytes cleartext decrypt_verify(): found 50 bytes cleartext {"9091":"XXXXXXXXXXXXXXXX","9029":"1.8.0026"}

die "XXXXXXXXXXXXXXXXX" entsprechen deinem Preshared Key

leider scheint der ursprüngliche Ersteller des Nodes wenig/kein Interesse an der Weiterentwicklung/Pflege des Nodes zu haben. Seit 2 Jahren ist keine Bewegung mehr im Node obwohl Anpassungen dringend Notwendig wären

RedBaron2020 commented 4 years ago

die "nodered_app_id" ist frei wählbar und muss identisch mit dem Feld "App Identity" in der configuration des Tradfri nodes sein.

die Antwort des Befehls sollte dann ähnlich wie folgende sein

decrypt_verify(): found 24 bytes cleartext decrypt_verify(): found 50 bytes cleartext {"9091":"XXXXXXXXXXXXXXXX","9029":"1.8.0026"}

die "XXXXXXXXXXXXXXXXX" entsprechen deinem Preshared Key

leider scheint der ursprüngliche Ersteller des Nodes wenig/kein Interesse an der Weiterentwicklung/Pflege des Nodes zu haben. Seit 2 Jahren ist keine Bewegung mehr im Node obwohl Anpassungen dringend Notwendig wären

Hallo gungam Hallo spiu16,

Soweit komme ich was mach ich noch falsch???

image

spiu16 commented 4 years ago

puh, kann ich leider gar nicht mehr sagen. Ich hab inzwischen mein IKEA Gateway rausgeschmissen und die IKEA Lampen und Fernbedienungen direkt per zigbee2mqtt bzw. node-red-contrib-zigbee eingebunden, damit ich die IKEA Fernbedienung auch für andere Befehle nutzen kann.

RedBaron2020 commented 4 years ago

Hallo zusammen,

danke noch mal für eure Hilfe.

Da der Entwickler nichts tut habe ich den Tipp von spiu16 fast befolgt. Ich habe das Gateway von Ikea gegen das von Hue ausgetauscht, und nun geht alles was ich machen möchte.

Für mich hat sich das Thema nun erleidigt.

Gruß Carsten