Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

node-red-contrib-tradfri #131

Open
spiu16 opened this issue Jan 4, 2019 · 29 comments

Comments

@spiu16
Copy link

commented Jan 4, 2019

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

This comment has been minimized.

Copy link
Member

commented Jan 4, 2019

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

This comment has been minimized.

Copy link
Author

commented Jan 4, 2019

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

This comment has been minimized.

Copy link
Author

commented Jan 4, 2019

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

This comment has been minimized.

Copy link
Member

commented Jan 4, 2019

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

This comment has been minimized.

Copy link
Author

commented Jan 4, 2019

Perfekt! Danke

@hobbyquaker

This comment has been minimized.

Copy link
Member

commented Jan 4, 2019

@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

This comment has been minimized.

Copy link
Member

commented Jan 12, 2019

@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

This comment has been minimized.

Copy link

commented Jan 13, 2019

@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

This comment has been minimized.

Copy link
Author

commented Jan 13, 2019

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

@vx-i

This comment has been minimized.

Copy link

commented Jan 13, 2019

@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

This comment has been minimized.

Copy link
Author

commented Jan 13, 2019

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

This comment has been minimized.

Copy link
Member

commented Jan 14, 2019

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

This comment has been minimized.

Copy link
Author

commented Jan 14, 2019

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

grafik

@hobbyquaker

This comment has been minimized.

Copy link
Member

commented Jan 14, 2019

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

@spiu16

This comment has been minimized.

Copy link
Author

commented Jan 14, 2019

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

@vx-i

This comment has been minimized.

Copy link

commented Jan 18, 2019

@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

This comment has been minimized.

Copy link
Member

commented Jan 18, 2019

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

This comment has been minimized.

Copy link

commented Jan 18, 2019

Vielen Dank! Damit läuft es.

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

@hobbyquaker

This comment has been minimized.

Copy link
Member

commented Jan 18, 2019

jap. Willst Du oder soll ich?

@vx-i

This comment has been minimized.

Copy link

commented Jan 18, 2019

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

@spiu16

This comment has been minimized.

Copy link
Author

commented Jan 18, 2019

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

hobbyquaker added a commit to hobbyquaker/node-red-contrib-tradfri that referenced this issue Jan 18, 2019
Absolute paths anticipate the usage of the Node-RED `httpRoot` config option, relative should always work. `httpRoot` is often used when Node-RED is behind a reverse Proxy or embedded in another application, like e.g. here: rdmtc/RedMatic#131
@hobbyquaker

This comment has been minimized.

Copy link
Member

commented Jan 18, 2019

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

This comment has been minimized.

Copy link
Author

commented Jan 18, 2019

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

This comment has been minimized.

Copy link

commented Jan 18, 2019

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

@spiu16

This comment has been minimized.

Copy link
Author

commented Jan 18, 2019

Top! Danke

@spiu16

This comment has been minimized.

Copy link
Author

commented Jan 18, 2019

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

@RedBaron2020

This comment has been minimized.

Copy link

commented Mar 28, 2019

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

This comment has been minimized.

Copy link

commented Apr 3, 2019

@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

This comment has been minimized.

Copy link

commented Sep 7, 2019

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
5 participants
You can’t perform that action at this time.