IKEA Trådfri Modul

Begonnen von Peter Kappelt, 16 April 2017, 15:07:07

Vorheriges Thema - Nächstes Thema

Saharel

Erst einmal Respekt dem ganzen hier :D :D

Wie sieht es aus mit den Sensoren? z.B Bewegungsmelder. Derzeit gehen ja nur Leuchtmittel.

FHEm2005

Hallo Merlin,
vielen Dank für die ausgezeichnete Beschreibung. Ich habe es genau so gemacht wie Due beschrieben hast, bis auf das Löschen des alten libcoap-Verzeichnisses mit all seinen Unterverzeichnissen ist etwas holprig.
"Vom übergeordneten Verzeichnis (/home/pi/) des libcoap-Ordners und seine Dateien und Unterverzeichnisse und den Ordner selbst löschen mit sudo rm -r -f libcoap"Das schmälert nicht die tolle Beschreibung.

Ich habe am Punkt 8 eine Fehlermeldung, die ich nicht interpretieren kann:
JTradfri 0.0.3-snapshot

Aug 30, 2017 12:33:33 PM org.eclipse.californium.core.network.CoapEndpoint start
INFORMATION: Starting endpoint at coaps://0.0.0.0:0
Aug 30, 2017 12:33:33 PM org.eclipse.californium.scandium.DTLSConnector start
INFORMATION: DTLS connector listening on [0.0.0.0/0.0.0.0:58429] with MTU [1.280] using (inbound) datagram buffer size [16.474 bytes]
Aug 30, 2017 12:33:33 PM org.eclipse.californium.core.network.CoapEndpoint start
INFORMATION: Started endpoint at coaps://0.0.0.0:58429
Aug 30, 2017 12:33:33 PM org.eclipse.californium.core.CoapClient setEndpoint
INFORMATION: Started set client endpoint 0.0.0.0/0.0.0.0:58429
[GWConnection] Fetching well-known...
[GWConnection] <//15001/65536>;ct=0;obs,<//15001/65538>;ct=0;obs,<//15001/65537>;ct=0;obs,<//15004/195428>;ct=0;obs,<//15005/195428>;ct=0;obs,<//15005/195428/220067>;ct=0;obs,<//15005/195428/216024>;ct=0;obs,<//15005/195428/225491>;ct=0;obs,<//15001>;ct=0;obs,<//15001/reset>;ct=0,<//status>;ct=0;obs,<//15005>;ct=0;obs,<//15004>;ct=0;obs,<//15004/add>;ct=0,<//15004/remove>;ct=0,<//15006>;ct=0;obs,<//15011/15012>;ct=0;obs,<//15011/9034>;ct=0,<//15011/9030>;ct=0,<//15011/9031>;ct=0,<//15011/9063>;ct=0,<//15011/9033>;ct=0,<//15010>;ct=0;obs
JTradfri Commandline
Type "help" to show available commands
[TcpServer] Error while binding socket: Die Adresse wird bereits verwendet
java.net.BindException: Die Adresse wird bereits verwendet
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
        at java.net.ServerSocket.bind(ServerSocket.java:375)
        at java.net.ServerSocket.<init>(ServerSocket.java:237)
        at net.kappelt.JTradfri.Commands.TCPSocket.TcpServer.run(TcpServer.java:36)
        at java.lang.Thread.run(Thread.java:745)


Ob der Fehler Auswirkungen hat, kann ich nicht beurteilen. Fakt ist, dass die Gateway-Definition den Status opened annimmt, aber ich weder eine groupList geschweige ein deviceList machen kann. Keine Antwort vom System. Im Reading steht auch keine CoapClientVersion mehr drin, Die Kopfzeilen der Tradfri*.pm sind wie erwartet.

Hat da jemand einen Tipp??

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

Saharel

Beende das Java Programm uns führe mal ein "netstat -npl" aus.
Du wirst unter anderem vermutlich folgendes angezeigt bekommen.
tcp6       0      0 127.0.0.1:1505          :::*                    LISTEN      -

Das bedeutet das auf dem Port 1505 schon eine Bindung an einen Dienst/Programm etc. besteht.



freakadings

Zitat von: FHEm2005 am 30 August 2017, 13:08:07

Danke dir für das Lob und die Anmerkung! Habe es enstprechend ergänzt :)

Zu deinem Fehler: Im unteren Drittel ist zu lesen: "[TcpServer] Error while binding socket: Die Adresse wird bereits verwendet".
Das heißt dass ein anderes Programm auf deinem Pi bereits den vom Tradfri-Modul verwendeten Port 1505 verwendet und somit belegt.

Hast du den Pi mal neu gestartet? Falls es danach immer noch nicht geht:

Der Befehl von Saharel wird dir eine Liste ausgeben, du musst quasi dort nach der Zeile mit dem ":1505" (in seinem Beispiel hinten an der IP in der dritten Spalte) suchen.
Dann kannt du selbige ja noch mal hier rein schreiben :)



FHEm2005

 Nach einem reboot ist die folgende Zeile verschwunden:
tcp6       0      0 127.0.0.1:1505          :::*                    LISTEN      21098/java
Allerdings ist jetzt das Gateway diconnected. Selbst ein Restart von fhem und/oder Gateway ist nicht wirklich zielführend.
Nach einem restart kommt im log folgende Zeile:
2017.08.30 16:28:04 3 : Opening IKEA device localhost:1505
2017.08.30 16:28:04 3 : Can't connect to localhost:1505: Verbindungsaufbau abgelehnt

Wieso localhost(127.0.0.1)? Ich habe doch eine IP angegeben.
Dabei sieht meine Definition so aus:
define IKEA TradfriGateway 192.168.2.56 GatewaySecret
Nochmal der aktuelle netstat -npl
netstat -npl
(Es konnten nicht alle Prozesse identifiziert werden; Informationen über
nicht-eigene Processe werden nicht angezeigt; Root kann sie anzeigen.)
Aktive Internetverbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:7072            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:8083            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:8084            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:8085            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp6       0      0 :::8282                 :::*                    LISTEN      -
tcp6       0      0 :::51826                :::*                    LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
udp        0      0 0.0.0.0:68              0.0.0.0:*                           -
udp        0      0 0.0.0.0:6767            0.0.0.0:*                           -
udp        0      0 192.168.2.47:123        0.0.0.0:*                           -
udp        0      0 127.0.0.1:123           0.0.0.0:*                           -
udp        0      0 0.0.0.0:123             0.0.0.0:*                           -
udp        0      0 0.0.0.0:50899           0.0.0.0:*                           -
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           -
udp6       0      0 fe80::43ce:ee29:4fe:123 :::*                                -
udp6       0      0 ::1:123                 :::*                                -
udp6       0      0 :::123                  :::*                                -
udp6       0      0 :::5353                 :::*                                -
udp6       0      0 :::35603                :::*                                -
raw6       0      0 :::58                   :::*                    7           -
Aktive Sockets in der UNIX-Domäne (Nur Server)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Pfad
unix  2      [ ACC ]     STREAM     HÃRT         9268     -                   /var/run/dhcpcd.sock
unix  2      [ ACC ]     STREAM     HÃRT         9270     -                   /var/run/dhcpcd.unpriv.sock
unix  2      [ ACC ]     STREAM     HÃRT         8780     -                   /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     HÃRT         6222     -                   /run/systemd/private
unix  2      [ ACC ]     STREAM     HÃRT         9817     765/systemd         /run/user/1000/systemd/private
unix  2      [ ACC ]     SEQPAKET   HÃRT         6244     -                   /run/udev/control
unix  2      [ ACC ]     STREAM     HÃRT         6248     -                   /run/systemd/journal/stdout
unix  2      [ ACC ]     STREAM     HÃRT         7074     -                   /var/run/avahi-daemon/socket
unix  2      [ ACC ]     STREAM     HÃRT         8165     -                   /run/user/999/systemd/private


Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

freakadings

Schau mal ob sich nach dem Neustart des Gateways dessen IP geändert hat, wenn du die nicht fest in deinem Router/Modem eingespeichert hast, kann das passieren.
Die localhost ip deshalb, da der Port am Pi geöffnet ist, bzw am Pi darüber kommuniziert.
Wenn du die Verbindung zum Gateway aufbauen möchtest, über den entsprechenden Aufruf "Java -jar ...." dann muss da natürlich die IP des Gateways stehen und nicht die 127.0... :)
(Und "GatewaySecret" muss natürlich durch den aufgedruckten Code auf deinem Gateway ersetzt werden)

FHEm2005

#246

  • IP-Adresse wird für den gateway in der FB7490 anhand der MAC_Adresse fest vergeben.
  • GatewaySecretwurde durch den auf der Rückseite aufgedruckten Code ersetzt.
Muss ich denn nichtirgendwo angeben, wo die jar-Datei liegt?
set IKEA reopen geht auch nicht wie in der commandref beschrieben.
Fehlermeldung:
Unknown argument reopen, choose one of
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

freakadings

In deinem post von heute um 13:08 Uhr, startest du ja die .jar-Datei, er würde gar nicht bis zu einem Fehler kommen, wenn sie nicht laufen würde, mein Aufruf sieht aus wie folgt:

java -jar /opt/fhem/Tradfri/JTradfri-03082017-0.0.3-snapshot-all.jar -s GatewaySecret -g 192.168.0.7
(die IP ist logischerweise die vom Gateway)

Es kommt auch drauf an wo die snapshot-datei liegt, hier rufe ich den absoluten Pfad auf, d.h. von "root" an. Root = absoluter Einstiegspunkt des Systems und es liegt bei mir eben in den Unterverzeichnissen /opt/ dann fhem/, dann Tradfri/.
Wenn du aber mit deiner Kommandozeile schon im Verzeichnis bist (d.h. mit "cd deinPfadZurDatei" hingewechselt bist), dann brauchst du den ganzen Pfad nicht, da er dann im aktuellen Verzeichnis nach der Datei sucht und sie startet.

Falls ich dich falsch verstanden habe und du meintest ob du in FHEM die .jar angeben musst: nö
in diesem Fall: läuft die .jar-Datei jetzt ohne Fehler ?





FHEm2005

Ich habe die Datei soeben aus dem Verzeichnis heraus aufgerufen in dem die jar-Datei steht.
java -jar JTradfri-03082017-0.0.3-snapshot-all.jar -s TheSecretPSKOfYourGateway -g 192.168.2.56
Jetzt läuft es!!
Muss ich nach jedem Reset diesen Aufruf machen????? Was ist wenn ein Stromausfall meinen Raspi in den Reset zwingt?

Danke!
Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

freakadings

#249
Glückwunsch ;)

Ja, noch(!) ist das leider so siehe Blogbeitrag: http://electronic.kappelt.net/wordpress/de/ikea-tradfri-module-for-fhem-beta/

(Am besten kopierst du dir den Aufruf in eine Datei an deinem PC, dann musst du nach dem Neustart des Pis nur kopieren und einfügen.)

Brause

Zitat von: Brause am 26 August 2017, 04:12:39

zu 3 und 4. zum Thema Autostart sind die Seiten 11 und 12 interessant, da gibt es 2 Lösungsansätze ( ACHTUNG: eventuell müssen die Pfade / Dateinamen / Parameter angepasst werden)


Mickey Mouse

Zitat von: FHEm2005 am 30 August 2017, 19:23:11Muss ich nach jedem Reset diesen Aufruf machen????? Was ist wenn ein Stromausfall meinen Raspi in den Reset zwingt?
ich habe hier https://forum.fhem.de/index.php/topic,70653.msg669588.html#msg669588 kurz beschrieben wie man ohne viel Stress den Java Teil mit dem "zum System passenden" Methoden automatisch starten kann.

FHEm2005

Hallo Mickey Mouse,
ich habe den fhem-Teil NICHT umgesetzt sondern nur die Tradfri.service in das vorgesehene Verzeichnis gebracht und die drei danach folgenden Zeilen eingegeben. Mein Verzeichnis heißt nicht Tradfi-java sondern nur Tradfri; also habe ich das in der service-Datei angepasst. Darin liegt die jar-Datei mit den Rechten root.root. Müssen die angepasst werden, wenn ich mit einem User fhem.dialout aus der Service-Datei ankomme?

Fazit: Nach einem Reboot wird die Jar-Datei nicht aufgerufen und das Gateway bleibt disconnected?????

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

FHEm2005

#253
Ich habe die letzte Zeile der tradfri.service auf multi-user.target geändert und bin dann wie folgt vorgegangen:
pi@raspberrypi:/etc/systemd/system $      sudo systemctl daemon-reload
pi@raspberrypi:/etc/systemd/system $      sudo systemctl enable jtradfri.service
Created symlink from /etc/systemd/system/multi-user.target.wants/jtradfri.service to /etc/systemd/system/jtradfri.service.
pi@raspberrypi:/etc/systemd/system $ sudo reboot

Ergebnis: disconnected.... Na Klasse.

Ist das von Bedeutung, wenn im Ordner /etc/systemd/system die Datei network.target nicht enthalten ist?

Mein oberster Wunsch wäre hier - eine auch für in Linux/Jave nicht fitte Benutzer - ein Automatismus zu erstellen.

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN

FHEm2005

Zur Information:
Ich habe den Fehler gefunden. Bei der Eingabe des Scriptes tradfri.service hat sich durch copy/paste in der Zeile "ExecStart=/usr....." am Zeilenende ein nicht sichtbares Zeichen eingeschlichen. Nachdem ich die gesamte Zeile per Hand neu eingegeben hatte, läuft es jetzt auch nach einem reboot ohne Probleme.

Danke an alle, die mir geduldig geholfen haben!
Gruß
Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM, BSB-LAN