IKEA Trådfri Modul

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

Vorheriges Thema - Nächstes Thema

distel

#165
Hallo zusammen, ich hab mir auch Mal ein wenig 'Spielmasse' vom Köttbullar-Händler besorgt. Da ich aktuell Pläne, mit fhem auf einen NUC umzuziehen und dort einige Zusatzdienste per Docker zu realisieren/abzutrennen stellt sich mir die Frage, ob solche Dinge wie node.js in der Evaluation sind/waren. Es gibt ein Projekt, dass eine entsprechende API bereitstellt https://www.npmjs.com/package/node-tradfri . Keinesfalls will ich Peters Leistung schmälern oder ähnliches. Vom ersten ansehen her, scheint Peters Implementierung auch viel mächtiger. Ich denke nur Grad im Zuge der Auswertung des alertStream meiner hikvision Kamera nach auch dort das Ansprechen der Kamera und die 'Echtzeitkomponente' (Kontinuierliches Lesen eines xml-Streams) per node.js zu realisieren. Ggf. Können ja auch beide Projekte voneinander profitieren?

Gruß Dirk

Edit: wer zuende liest, erfährt auch, dass dem ganzen dann wieder libcoap zugrunde liegt...
NUC-I37100
Docker: eBus, fhem, ha-bridge, unifi
Hardware: Homematic, FS20, Somfy RTS, 1wire, FBAHA, enOcean

dtavb

@stratege-0815:
zigbee funktioniert in diesem Fall wie sein Konkurrenz z-wave via "Netzwerk", sprich die Geräte geben ihre Signale weiter. Ganz durchdrungen habe ich das Thema nicht, bei Z-Wave spricht man sogar von Routing, demnach nicht nur einfaches Verteilen wie ein Hub. Bei zigbee weis ich es nicht, aber im Fall von Ikea meine Erfahrung:
Mein Hausflur erstreckt sich über die ganze Hauslänge quer durch das Haus, dazwischen 2 Dicke tragende Wände (Treppenaufgang).
Der Killer für 433 Mhz Zeugs (mit Ausnahme eines China-Türsensor), Bluetooth und W-Lan jeweils mit 2,4 GHz. Auch Ikea (zigbee) hatte keine Chance in Räumen hinter diesen 2 tragenden Wänden (zB mein Bastelraum).
Lösung: im Flur habe ich im Treppenaufgang sowie oben direkt im Flur jeweils eine Ikea (zigbee) Lampe verwendet. Nun habe ich im gesamten Stockwerk über die 2 Wände hinweg Signal.
Demnach stimmt das was ich bisher gelesen habe, die zigbee Geräte (die LED Lampen von Ikea) reichen die Signale weiter, ob jetzt hubbing oder routing kann ich nicht sagen.
Bedeutet allerdings auch, sobald jemand wie ich schlaftrunken den Lichtschalter im Flur physikalisch ausschaltet, ist diese Lampe kein Verteiler mehr und in der Werkstatt funktioniert das Licht- und Bewegungsabhängige Schalten nicht mehr...

Kleine Ergänzung:
in dem Bastelraum habe ich auch 1x Z-Wave Bewegungsmelder, der hat überhaupt keine Probleme. Also entweder kann man mit dessen Signal Spiegeleier machen oder Z-Wave hat mehr Magie wie zigbee.
fhem:pi3&kvm, z-wave, it-funk, milight, zigbee, wifi, bt & presence, geo-tracking, alexa, esp.
Monitoring: ELK(syslog), grafana (grafik), netdata (ermittlung)
Security: haproxy (access), ossec (überall), snort (access), opnsense (fw)
Geplant: KVM-Cluster

stratege-0815

Danke, das bestätigte auch indirekt meinen Gedanken: wenn jemand das "Licht ausschaltet" bricht die Konstruktion zusammen.

pronson

Zitat von: stratege-0815 am 02 August 2017, 09:07:16
Danke, das bestätigte auch indirekt meinen Gedanken: wenn jemand das "Licht ausschaltet" bricht die Konstruktion zusammen.

Aber das ist ja nicht zwingend ein show stopper. Die Lampen kannst du ja fest verdraten und z.B einen mqtt Taster einbauen mit dem du die Lampe auch schalten kannst.

Ich bin mir ebenfalls eine Lösung am ausdenken mit diesem Taster:
https://www.itead.cc/smart-home/sonoff-t1.html


Gesendet von iPhone mit Tapatalk

FunkOdyssey

Darf man an dieser Stelle überhaupt schon Feature Requests machen?
In einer TradfriGroup wäre ein "set xyz nextMood" bzw. "set xyz previousMood" irgendwann ganz nett.
Aber bitte nicht stressen lassen. Danke vielmals.

Peter Kappelt

Hallo an Alle,

an die Beta-Tester:

ich werde heute Abend, gegen 21 Uhr, ein Update zur Verteilung freigeben.

Es wurden große Veränderungen an der Software vorgenommen, weswegen Euer Eingreifen notwendig ist. Vermeidet ein Update, falls ihr momentan keine Zeit dazu habt.

Was muss ich tun?

Die Anleitung auf meiner Webseite habe ich bereits angepasst: http://electronic.kappelt.net/wordpress/de/ikea-tradfri-module-for-fhem-beta/.

Die Software kCoAPSocket habe ich für obsolet erklärt und die neue Software JTradfri entwickelt. Die aktuellste Version davon könnt ihr in der Github-Repository herunterladen: https://github.com/peterkappelt/JTradfri/tree/master/JTradfri-builds. Die Parameter haben sich nicht verändert, ihr müsst lediglich JTradfri herunterladen und die Namen in euren Skripten/ Startkommandos anpassen.

Sobald dies geschehen ist, könnt ihr das "normale" Update in FHEM ausführen.

Was hat sich geändert?

Für den Tester sind keine großen Änderungen sichtbar. Das einzige sichtbare Feature ist ein neuer Algorithmus zum Gruppenstatus und zur Gruppenhelligkeit: Diese werden nun intelligent aus den Werten der Geräte berechnet und sind immer aktuell.

Weiterhin wurden einige kleinere Bugs behoben, die Verbindung zu FHEM und das Verhalten beim Start von FHEM ist stabiler.

Große Teile der Java-Software habe ich neu geschrieben. Diese übernimmt nun mehr Aufgaben und entlastet FHEM. Eine bessere Performance ist zu erwarten, da Befehle asynchron und intelligent in der Java-Software verarbeitet werden.

Welche Probleme sind bekannt?


- JTradfri funktioniert nicht unter Windows, da die Firewall die nötigen Ports nach einigen Minuten Inaktivität schließt

- Das Kommando "get moods" für Gruppen wurde temproär entfernt und wird beim nächsten Update im Laufe der Woche re-implementiert. Weiterhin ist für "set mood" bei den Gruppen eine Mood-ID nötig, Mood-Namen werden nicht akzeptiert.

Mit diesem Update sollen viele kleine Probleme von Nutzern behoben werden und die Einrichtung weiter vereinfacht werden. Ich freue mich, wenn Ihr es testet und mit entsprechende Rückmeldung gebt!



@distel

Die Node-JS-Bibliothek hatte ich gesehen. Allerdings habe ich keine Erfahrung mit Node.JS. Daraus resultiert auch, dass ich keine sinnvolle Verbindung zwischen Perl (was für FHEM ja zwingend notwendig ist) und Node.JS kenne.

Dankeschön!

Peter

dtavb

#171
Hi Peter,

danke, werde ich heute noch testen...bin ja gerade dazu gestolpert, weil ich mein lab-system gerade jetzt mit der Beta beglücken wollte :)

@stratege:
ja, das ist so. Aber erstens sind die Birnen billig und man kann damit sehr günstig einen "hub" bauen.
Lampe in eine Fassung, die an den Strom und irgendwo verstecken (habe so eine Baustellenfassung mit Eurostecker und Klemme- perfekt dafür geeignet. Schon hat man einen günstigen Hub ... nicht gerade elegant, aber wirkungsvoll.
Die Idee mit einem Taster ist vllt. eleganter :)


Ergänzung 21:30:
@Peter:
wenn ich das jar File ausführen möchte, kommt im Log:
Aug 02, 2017 9:39:27 PM org.eclipse.californium.core.network.config.NetworkConfig store
INFORMATION: writing properties to file /Californium.properties
Aug 02, 2017 9:39:27 PM org.eclipse.californium.core.network.config.NetworkConfig store
WARNUNG: cannot write properties to file /Californium.properties: Californium.properties (Keine Berechtigung)
Aug 02, 2017 9:39:27 PM org.eclipse.californium.core.network.CoapEndpoint start
INFORMATION: Starting endpoint at coaps://0.0.0.0:0
Aug 02, 2017 9:39:27 PM org.eclipse.californium.scandium.DTLSConnector start
INFORMATION: DTLS connector listening on [0.0.0.0/0.0.0.0:34100] with MTU [1.280] using (inbound) datagram buffer size [16.474 bytes]
Aug 02, 2017 9:39:27 PM org.eclipse.californium.core.network.CoapEndpoint start
INFORMATION: Started endpoint at coaps://0.0.0.0:34100
Aug 02, 2017 9:39:27 PM org.eclipse.californium.core.CoapClient setEndpoint
INFORMATION: Started set client endpoint 0.0.0.0/0.0.0.0:34100
Exception in thread "main" java.lang.NullPointerException
        at net.kappelt.JTradfri.Commands.Commandline.run(Commandline.java:25)
        at net.kappelt.JTradfri.JTradfri.startThreadHandler(JTradfri.java:59)
        at net.kappelt.JTradfri.JTradfri.main(JTradfri.java:45)

Er lauscht allerdings auf Port 1505/TCP trotz der Exceptions.
Weiter oben steht noch etwas von Permission denied bei Californium.

Den Log-Aufruf hast Du aktuell ausgebaut?
su -c "java -jar /opt/Tradfri-FHEM/JTradfri-02082017-0.0.2-snapshot-all.jar -s KEY -g IP >> /log/fhem/tradfri_java.log" -s /bin/sh fhem

So kommen keine Fehler und das GW ist ansprechbar:
su -c "java -jar /opt/Tradfri-FHEM/JTradfri-02082017-0.0.2-snapshot-all.jar -s KEY -g IP" -s /bin/sh fhem

fhem:pi3&kvm, z-wave, it-funk, milight, zigbee, wifi, bt & presence, geo-tracking, alexa, esp.
Monitoring: ELK(syslog), grafana (grafik), netdata (ermittlung)
Security: haproxy (access), ossec (überall), snort (access), opnsense (fw)
Geplant: KVM-Cluster

stratege-0815

Zitat von: pronson am 02 August 2017, 09:53:22
Aber das ist ja nicht zwingend ein show stopper. Die Lampen kannst du ja fest verdraten und z.B einen mqtt Taster einbauen mit dem du die Lampe auch schalten kannst.

Naja, die Schalter an die man sich seit Jahren gewöhnt hat sollten eigentlich weiter ihren Dienst tun.
WAF ist wichtig. Und nicht jeder der mal Licht einschalten kann/soll/will ist in meinem WLAN bzw. hat Zugriff auf FHEM.

Thyraz

Deswegen schreibt er ja Lampen fest verdrahten und mqtt Taster einbauen. ;)
Fhem und MariaDB auf NUC6i5SYH in Proxmox Container (Ubuntu)
Zwave, Conbee II, Hue, Harmony, Solo4k, LaMetric, Echo, Sonos, Roborock S5, Nuki, Prusa Mini, Doorbird, ...

Brause

sali

Habe heute dann auch Zeit gefunden die JTradfri-Beta einzuspielen.
Installation war ohne Probleme.
und bis jetzt scheint auch alles wie gehabt zu funktionieren.

Super Arbeit.
Danke

Andre42

Zitat von: blitzcom am 18 April 2017, 20:39:01
Weils gleich im Set dabei war, habe ich noch 3 Fernbedienungen. Hier sei gleich gesagt: Eine Lampe kann nur mit einer Fernbedienung. Meine anfänglichen Versuche die Fernbedienungen als Gruppenschaltungen zu nutzen fiel somit direkt aus.

Das betrifft jedoch nur die manuelle Kopplung. Ich habe wegen dieser Einschränkung zunähst auf hue gesetzt; letzte Woche habe ich mir dann aber doch zwei Tradfri E27 mit Funkschalter/Dimmer zugelegt. Auf das originale Gateway habe ich verzichtet; statt dessen habe ich mir das RaspBee-Modul von Dresden Elektronik zugelegt. Die Einrichtung mit der Betaversion 02.04.61 funktionierte einwandfrei.

1. Die Kopplung Leuchtmittel und RaspBee geht ohne Schalter. Man kann die Leuchtmittel direkt anmelden.
2. Man kann die Schalter an deConz (die Software zu RaspBee) anmelden. Die Schalter erscheinen jeweils als eigene "Gruppe", denen man Leuchtmittel zuordnen kann.
3. Ein Leuchtmittel kann dabei auch in mehreren Schalter"Gruppen" zugeordnet sein, also mehrere Schalter können ein Leuchtmittel schalten. Man kann auch hue-Leuchtmittel einem Tradfri-Schalter zuordnen.
4. Bei abgeschaltetem Gateway bleibt die Kopplung erhalten!
Man kann so also tatsächlich mehrere Tradfri-Schalter mit einem Leuchtmittel koppeln und auch bei Ausfall des Gateways weiter schalten. Das gilt auch für die hue-Leuchtmittel. Einzige Einschränkung: Dies gilt nicht für die Einstellung der Farbtemperatur, sondern nur für an/aus und Helligkeit.
Die hue-Dimmer hingegen schalten bei ausgeschaltetem Gateway nur hue-Leuchtmittel; Tradfri bleibt dunkel.
Bei ca. 23€ für einen hue-Dimmer einzeln und 25€ für eine e27 Tradfri-Weißspektrum einschließlich Funkdimmer ist die Wahl allerdings eh klar.
Auch interessant ist ja die zerlegte e27, die heise präsentiert hat - mit dem Zigbee-Modul, an das die dann zwei LED angeschlossen haben. Mit der e14 weißspektrum sollte das ja auch gehen - für 14,99€ hätte man dann quasi einen Zigbee-Adapter für weißspektrum. Da könnte man ja dual-white LED-Stripes mit einem normalen LED-Amplifier ansteuern...

Das RaspBee+deConzAPI emuliert eine Hue-Bridge älteren Firmwarestands. Sowohl die App All4Hue, als auch Alexa ließen sich damit koppeln; Szenen werden nicht unterstützt, Gruppen bei All4Hue ja, bei Alexa muss man die händisch einrichten. Farben/Farbtemperatur kann man bei Alexa nicht als Sprachkommando auswählen, nur schalten und dimmen.

Mit fhem will ich jetzt einsteigen (vorher hatte ich noch keinen Bedarf).
Wenn ich das richtig verstehe, ist das hier vorgestellte fhem-Modul nur für das Tradfri-Gateway gedacht, richtig?
Für ein RaspBee-Gateway müsste ich mich dann wohl mit dem hue-Modul auseinander setzen, wenn ich das richtig verstehe. Wenn ich dann mit Alexa Szenen aufrufen möchte, könnte ich sie dann quasi in fhem definieren (Kommando xy schaltet z.B. Lampe1 rot, Lampe 2 50% hell in warmweiß usw.) und Alexa dann an fhem (statt direkt an die Bridge) koppeln?

Mickey Mouse

#176
Zitat von: dtavb am 26 Juli 2017, 17:31:24inspiriert von Brause und Peter habe ich bei mir folgendes eingerichtet:

"Kleines" HowTo für Autostart Beta-Version

die meisten Leute werden das Ganze doch auf einem RasPi mit Jessie laufen lassen, oder irre ich mich da?
das basiert bereits auf systemd und ich sehe eigentlich keinen Grund, weshalb man dann noch diesen Aufriss machen sollte, um unbedingt an alten Zöpfen festhalten zu wollen.

ich habe mich heute mal aufgemacht und den FHEM und JTradfri Start auf meinem "Production System" auf systemd umzustellen, die Sache ist wirklich extrem einfach und "effizient".

nur wenn man FHEM auch umstellen möchte:
--- 8< ----
/etc/systemd/system/fhem.service
[Unit]
Description=FHEM
Wants=network.target
Wants=habridge.service # natürlich nur, wenn man die habridge einsetzt
Wants=jtradfri.service
After=network.target

[Service]
Type=forking
User=fhem
Group=dialout
Restart=always
RestartSec=5
WorkingDirectory=/opt/fhem/
ExecStart=/usr/bin/perl fhem.pl fhem.cfg

[Install]
WantedBy=multi-user.target

--- 8< ---

ansonsten geht es hier weiter:

/etc/systemd/system/jtradfri.service
[Unit]
Description=FHEM Tradfri Java Client
Wants=network.target
After=network.target

[Service]
User=fhem
Group=dialout
Type=simple
WorkingDirectory=/opt/fhem/Tradfri-Java/
ExecStart=/usr/bin/java -jar JTradfri.jar -s <Your_Tradfri_Gateway_Secret> -g <gateway-IP>

[Install]
WantedBy=fhem.service
# muss natürlich z.B. auf multi-user.target geändert werden, wenn man keinen fhem.service hat


sudo systemctl daemon-reload
sudo systemctl enable fhem.service
sudo systemctl enable jtradfri.service

mehr braucht es nicht, ok, natürlich muss man den alten rc.d Start von FHEM noch disablen wenn das vorher aktiv war oder man lässt diesen Teil weg.
natürlich müssen die Pfade entsprechend angepasst werden.
ich lege mir grundsätzlich einen symbolic-link zur aktuellen Version an, um nicht ständig die Start/Stop Scripts anpassen zu müssen, nur weil sich die Version eines Tools an der 10. Stelle hinter dem Komma geändert hat.
daher ist sieht das hier so aus:
root@raspberrypi:/etc/systemd/system# ls -l /opt/fhem/Tradfri-Java/JTradfri.jar
lrwxrwxrwx 1 root root 40 Aug  8 19:15 /opt/fhem/Tradfri-Java/JTradfri.jar -> JTradfri-03082017-0.0.3-snapshot-all.jar

wenn es eine neue Version gibt, dann wird in dem Directory ein:
rm JTradfri.jar; ln -s JTradfri-NEU JTradfri.jar
ausgeführt und das wars dann.

man kann sich mit: sudo journalctl -u jtradfri.service die Konsolen Ausgaben vom Java Client ansehen, ohne dass die Ausgabe umgeleitet werden muss oder man anderen "Stress" hat.

FunkOdyssey

Arg, das kam einen halben Tag zu spät. Bin gerade auf die Beta umgestiegen und hatte ordentlich Probleme mit init.d.

Am Rande: Irgendwie scheinen neu angelegte Moods nicht zu laufen.
Der Aufbau des JSON-Strings ,,moods" ist auch bei den neuen Moods anders. Keine Ahnung, ob das relevant ist. Wenigstens reagieren die Birnen nicht, wenn ich die Stimmung aktivieren möchte.


moods
[
   {
      "groupid" : 181234,
      "moodid" : 227817,
      "name" : "EVERYDAY"
   },
   {
      "name" : "RELAX",
      "groupid" : 181234,
      "moodid" : 206743
   },
   {
      "name" : "FOCUS",
      "moodid" : 201882,
      "groupid" : 181234
   },
   {
      "name" : "TV",
      "groupid" : 181234,
      "moodid" : 204191
   },
   {
      "groupid" : 181234,
      "moodid" : 209587,
      "name" : "SingleSpot"
   },
   {
      "moodid" : 200732,
      "groupid" : 181234,
      "name" : "Warmweiss100"
   },
   {
      "groupid" : 181234,
      "moodid" : 208637,
      "name" : "Warmweiss50"
   },
   {
      "name" : "Warmweiss25",
      "moodid" : 225142,
      "groupid" : 181234
   },
   {
      "name" : "Warmweiss75",
      "moodid" : 225885,
      "groupid" : 181234
   }
]

hijo

Irgendwie will das bei mir nicht.
wenn ich den "java -jar...." Befehl eingebe kommt immer:
span: No such file or directory
Habe alles so gemacht wie in der Anleitung: Java installiert, JSON Perl ist installiert.
Jemand einen Tip?
Raspi mit FHEM 5.8, Qivicon mit Telekom App, Web KM200 von Buderus, Philips HUE System, Xiaomi Smart Home Kit, HM-CFG-LAN LAN mit 6x HM-CC-RT-DN und HM-TC-IT-WM-W-EU, Ikea Tradfri, TP-Link HS110

Mickey Mouse

ich habe das mit dem "span" auch nicht verstanden und einfach weggelassen, der Aufruf sieht hier so aus:
/usr/bin/java -jar JTradfri.jar -s <Gateway-Secret> -g <IP>
wie gesagt, JTradfri.jar ist ein sym-link auf die gerade aktuelle Version und für <Gateway-Secret> und <IP> musst du natürlich deine Werte einsetzen.