IKEA Trådfri Modul

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

Vorheriges Thema - Nächstes Thema

Sandaletti

Du kannst Alexa aber nicht befehlen auf die 254 zu stellen, oder habe ich das jetzt richtig begriffen? Was ist wenn man die 50% umändert und halb gedimmt? Kann Alexa das denn verstehen?

rudeboy

Hallo Sandaletti,

richtig, bei Alexa ist bei 100 Schluss... Alles was darüber hinaus geht sagt sie, dass es außerhalb des Bereiches liegt...
Halb gedimmt erkennt sie auch nich, heller oder dunkler würde sie vielleicht mit etwas bastelarbeit verstehen aber das bringt mir eigentlich auch nicht wirklich was...
FHEM 5.9
nanoCUL868: HM-LC-DIM1T-FM/nanoCUL433 (V 1.26.05 a-culfw Build: 156): 3x Hama Funksteckdosen/1x BroadLink für TV und TECVANCE Funksteckdosen/1x Echo Dot/2xMagic UFO-WiFi LED-Controller: LED RGBW Warm White LED Strip/Tradfri Gateway: 6x Tradfri LED/2xEQ3 Bluetooth Thermostat

justme1968

alexa und siri verstehen nur prozent werte von 0 bis 100.

diese werden aber auf den wertebereich den das jeweilige device versteht umgemappt.

wenn das device bei einem set ? die richtige antwort liefert geht das automatisch, sonst muss man ein passendes homebridgeMapping verwenden.

zeig mal ein jsonlist2 vom device.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ximum

Hi Peter,
vielen Dank für die Entwicklung des Tradfri Moduls, auch bei mir hat die Installation anhand der Anleitung sofort geklappt und ich kann meine Lampen sauber steuern.
Für mich interessanter Punkt: im laufenden Betrieb braucht das Gateway übrigens kein Internet - hatte ich nicht so erwartet!

Zum Modul, da ich für einen Teil meiner Idee die Lampe am Lichtschalter schalte und über FHEM weitere Schaltvorgänge triggern möchte, ist mir aufgefallen, dass aktuell im Modul der state weiterhin bspw. auf on bleibt, auch wenn die Lampe dank Stromverlust nicht mehr verfügbar ist. Die Tradfri App zeigt dann auch an, dass die Lampe nicht gefunden werden kann. Ich habe mal die deviceInfo bei Strom an und aus verglichen und anscheinend müsste hinter der Variablen 9019 die Verfügbarkeit geschlüsselt sein. Sofern das auch für andere relevant wäre, wäre es super, falls Du - natürlich nur bei Gelegenheit - ein weiteres Reading bezüglich der Verfügbarkeit ergänzen könntest?!

Tausend Dank aber auch schon für den Status quo!!
Viele Grüße
Max

rudeboy

Hallo justme1968,

hier der Auszug aus der jsonlist2 von der Gruppe der Leuchten:
{
    "Name":"Fenster",
    "PossibleSets":"dimvalue:slider,0,1,254 off on",
    "PossibleAttrs":"alias comment:textField-long eventMap group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 autoUpdateInterval event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading alexaName alexaRoom cmdIcon devStateIcon devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd widgetOverride userattr",
    "Internals": {
      "CFGFN": "",
      "DEF": "178114",
      "NAME": "Fenster",
      "NR": "468",
      "STATE": "off",
      "TYPE": "TradfriGroup",
      "groupAddress": "178114",
      "name": "Fenster"
    },
    "Readings": {
      "dimvalue": { "Value":"0", "Time":"2017-05-19 15:58:09" },
      "name": { "Value":"Fenster", "Time":"2017-05-18 09:00:04" },
      "state": { "Value":"off", "Time":"2017-05-19 20:45:45" }
    },
    "Attributes": {
      "genericDeviceType": "light",
      "room": "Tradfri,alexa",
      "webCmd": "on:off:dimvalue"
    }
  },


und hier der Auszug einer Leuchte:
{
    "Name":"Bulb1",
    "PossibleSets":"on off dimvalue:slider,0,1,254 color:warm,cold,standard",
    "PossibleAttrs":"alias comment:textField-long eventMap group room suppressReading userReadings:textField-long verbose:0,1,2,3,4,5 autoUpdateInterval event-on-change-reading event-on-update-reading event-aggregator event-min-interval stateFormat:textField-long timestamp-on-change-reading alexaName alexaRoom cmdIcon devStateIcon devStateStyle genericDeviceType:security,ignore,switch,outlet,light,blind,thermometer,thermostat,contact,garage,window,lock homebridgeMapping:textField-long icon sortby webCmd widgetOverride userattr",
    "Internals": {
      "CFGFN": "",
      "DEF": "65539",
      "NAME": "Bulb1",
      "NR": "400",
      "STATE": "off",
      "TYPE": "TradfriDevice",
      "deviceAddress": "65539",
      "name": "Bulb1"
    },
    "Readings": {
      "dimvalue": { "Value":"0", "Time":"2017-05-19 15:12:09" },
      "manufacturer": { "Value":"IKEA of Sweden", "Time":"2017-05-19 09:52:09" },
      "softwareVersion": { "Value":"1.1.1.0-5.7.2.0", "Time":"2017-05-19 09:52:22" },
      "state": { "Value":"off", "Time":"2017-05-19 15:14:36" },
      "type": { "Value":"TRADFRI bulb E27 opal 1000lm", "Time":"2017-05-19 11:34:10" }
    },
    "Attributes": {
      "room": "Tradfri",
      "webCmd": "on:off:dimvalue"
    }
  },


Vielen Dank schon mal für Deine Hilfe!

Gruß Rudy
FHEM 5.9
nanoCUL868: HM-LC-DIM1T-FM/nanoCUL433 (V 1.26.05 a-culfw Build: 156): 3x Hama Funksteckdosen/1x BroadLink für TV und TECVANCE Funksteckdosen/1x Echo Dot/2xMagic UFO-WiFi LED-Controller: LED RGBW Warm White LED Strip/Tradfri Gateway: 6x Tradfri LED/2xEQ3 Bluetooth Thermostat

Peter Kappelt

Hallo

Entschuldigt bitte, falls ich noch einen Fehler bei dem "set ?"-Antwortcode gemacht habe. Falls da noch was geändert werden muss: einfach kurz Bescheid geben.

@ximum

Done!
Es gibt zwei neue Readings: reachableState und lastSeen.
reachableState kann 1 oder 0 annehmen und entspricht dabei der 9019-ID, die du schon gefunden hattest.
lastSeen ist ein Zeitstempel und wird der 9020-ID entnommen. Den Sinn dieses Wertes habe ich noch nicht recht verstanden. Ich weiß nicht, wann der aktualisiert wird. Bei meinen Devices steht lastSeen auf Heute, um ca. 10 Uhr. Ich kann nicht beurteilen, was da passiert ist. Ein setzen der Farbe/ der Helligkeit ändert nichts daran.

In Echtzeit kann der Wert allerdings noch nicht aktualisiert werden. Du müsstest ein autoUpdateInterval deklarieren, dass der zyklisch ausgelesen wird.

Weiterhin kann man jetzt auch die Farbe der Devices auslesen.


Grüße,
Peter

justme1968

kein grund zum entschuldigen.

das problem ist das du dir ein neues kommando dimvalue ausgedacht hast statt eins der verbreiteten dim oder pct nimmst. die erkennen alexa-fhem und homebridge-fhem automatisch. andere frontends  vermutlich auch.

ganz allgemeine ist es gut mal zu schauen was andere module an kommandos verwenden bevor man sich etwas neues überlegt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudeboy

Abend,

so langsam stehe ich auf den Schlauch, habe jetzt mal folgendes versucht:
attr homebridgeMapping
Brightness=state,part=1,cmd=dimvalue


hat aber noch immer die gleiche Auswirkung, dass Alexa auf 100 schaltet aber nicht auf 100%
da muss mit Sicherheit noch irgendwo der Faktor 2,54 hinterlegt werden, die Frag ist nur wo...
FHEM 5.9
nanoCUL868: HM-LC-DIM1T-FM/nanoCUL433 (V 1.26.05 a-culfw Build: 156): 3x Hama Funksteckdosen/1x BroadLink für TV und TECVANCE Funksteckdosen/1x Echo Dot/2xMagic UFO-WiFi LED-Controller: LED RGBW Warm White LED Strip/Tradfri Gateway: 6x Tradfri LED/2xEQ3 Bluetooth Thermostat

moritzthecat

#68
Super Modul – Besten Dank.

Ich versuche ein Tradfri Treppenhauslicht mit zwei Controllern und zwei Leuchten zu realisieren.

Zur Zeit kann ja nur ein Controller mit einer Leuchte verbunden sein. Die beiden Controller funktionieren und aktualisieren auch das FHEM Web. Für die Treppenhausfunktion soll der Status der Leuchte 1 dann auf die Leuchte 2 übertragen werden, sobald ein EVENT eintritt. Leider funktioniert das notify nicht. Hier der Auszug aus der config:

# add IKEA Tradfri GATEWAY
define TradfriGW TradfriGateway aaa.bbb.ccc.ddd secret /usr/local/bin
#
define Floalt1 TradfriDevice 65538
attr Floalt1 room Tradfri
attr Floalt1 autoUpdateInterval 3
attr Floalt1 group TreppenhausLicht
#
define Bulb1 TradfriDevice 65539
attr Bulb1 room Tradfri
attr Bulb1 autoUpdateInterval 3
attr Bulb1 group TreppenhausLicht
#
define notifyLichtTreppenhaus1 notify (Floalt1.) set Bulb1 $EVENT
define notifyLichtTreppenhaus2 notify (Bulb1.) set Floalt1 $EVENT


Wie kann es gehen ?

moritzthecat

#69
Treppenhauslicht ... mit einem Dummy Schalter geht zumindest On/Off und die kleine Zeitverzögerung (ca. 1 sec) ist OK. Aber die anderen Parameter Dimmer, Color, ... werden nicht übernommen.


# add IKEA Tradfri GATEWAY
define TradfriGW TradfriGateway aaa.bbb.ccc.ddd secret /usr/local/bin
#
define Floalt1 TradfriDevice 65538
attr Floalt1 autoUpdateInterval 3
attr Floalt1 room Tradfri
#
define Bulb1 TradfriDevice 65539
attr Bulb1 autoUpdateInterval 3
attr Bulb1 room Tradfri
#
define TreppenhausLicht dummy
attr TreppenhausLicht room Tradfri
define notify_TreppenhausLicht1 notify Floalt1 set TreppenhausLicht $EVENT
define notify_TreppenhausLicht2 notify Bulb1   set TreppenhausLicht $EVENT
define notify_TreppenhausLicht3 notify TreppenhausLicht set Bulb1 $EVENT
define notify_TreppenhausLicht4 notify TreppenhausLicht set Floalt1 $EVENT


Wie kann es gehen ?


CoolTux

Bitte sei so nett und schreibe Logausgaben und/oder Code in Codetags. So kann/will das keiner lesen.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

moritzthecat

Treppenhauslicht...
Wenn Parameter wie color oder dimmvalue an einem der Controller geändert werden, dann ändert sich das nur an der Leuchte, die mit dem Controller gepaired ist. Der dummy weist den entsprechenden Parameter unter state aus und nicht als color oder dimvalue. Hatte auch versucht einen Reading anzulegen, der wird aber nicht aktualisiert.
Zitatstate dimvalue: 254 2017-05-21 17:59:32

hier der Auszug aus dem LogFile:
2017.05.21 17:59:32 3: notify_TreppenhausLicht3 return value: Unknown argument dimvalue:, choose one of on off dimvalue:slider,0,1,254 color:warm,cold,standard
2017.05.21 17:59:32 3: notify_TreppenhausLicht4 return value: Unknown argument dimvalue:, choose one of on off dimvalue:slider,0,1,254 color:warm,cold,standard


Wie können die Parameter an den Dummy korrekt übergeben werden. On/Off klappt ja !?

moritzthecat

Treppenhauslicht mit 2 Controllern (1xFloalt und 1x980lm LED) und 1xBewegungssensor mit 1x1000lm LED

Problem ist bei der Parameterübergabe zum Dummy device via $EVENT wird ein Doppelpunkt z.B. hinter color zuviel ausgegeben. ggf. Definition falsch ?

Im GUI steht dann
TreppenhausLicht color: f5faf6 on off

Die Übergabe vom Dummy device zu den LED klappt dagegen.

Im Logfile
2017.05.22 22:18:45 3: notify_TreppenhausLicht40 return value: Unknown argument dimvalue:, choose one of on off dimvalue:slider,0,1,254 color:warm,cold,standard
Unknown argument dimvalue:, choose one of on off dimvalue:slider,0,1,254 color:warm,cold,standard
Unknown argument dimvalue:, choose one of on off dimvalue:slider,0,1,254 color:warm,cold,standard
2017.05.22 22:18:45 3: notify_TreppenhausLicht40 return value: Unknown argument color:, choose one of on off dimvalue:slider,0,1,254 color:warm,cold,standard
Unknown argument color:, choose one of on off dimvalue:slider,0,1,254 color:warm,cold,standard
Unknown argument color:, choose one of on off dimvalue:slider,0,1,254 color:warm,cold,standard


Ersetzt man die Parameterübergabe mit
set TreppenhausLicht color $EVTPART1 bzw. set TreppenhausLicht dimvalue $EVTPART1
dann klappt es.
Man kann dann von beiden Controllern an/aus schalten, dimmen und die Farbtemperatur für alle Leuchten ändern (natürlich nicht die der 1000lm). Und der Bewegungsmelder schaltet die Leuchten an, wie gewünscht.

Hier die entsprechende config
#
# 65541: IKEA of Sweden TRADFRI motion sensor (TRADFRI motion sensor)
# 65537: IKEA of Sweden TRADFRI remote control (TRADFRI remote control 2)
# 65538: IKEA of Sweden FLOALT panel WS 30x30 (FLOALT panel WS 30x30)
# 65536: IKEA of Sweden TRADFRI remote control (TRADFRI remote control 3)
# 65539: IKEA of Sweden TRADFRI bulb E27 WS opal 980lm (TRADFRI bulb E27 WS opal 980lm)
# 65540: IKEA of Sweden TRADFRI bulb E27 opal 1000lm (TRADFRI bulb E27 opal 1000lm)
#
# add IKEA Tradfri GATEWAY
define TradfriGW TradfriGateway aaa.bbb.ccc.ddd secret /usr/local/bin
#
define LED_Floalt1 TradfriDevice 65538
attr LED_Floalt1 autoUpdateInterval 3
attr LED_Floalt1 room Tradfri
#
define LED_Bulb1 TradfriDevice 65539
attr LED_Bulb1 autoUpdateInterval 3
attr LED_Bulb1 room Tradfri
#
define LED_Bulb2 TradfriDevice 65540
attr LED_Bulb2 autoUpdateInterval 3
attr LED_Bulb2 room Tradfri
#
define TreppenhausLicht dummy
attr TreppenhausLicht webCmd on:off
attr TreppenhausLicht setList color:warm,standard,cold dimvalue:slider,0,1,254
attr TreppenhausLicht eventMap /f1e0b5:standard/efd275:warm/f5faf6:cold/
attr TreppenhausLicht eventMap /F1E0B5:standard/EFD275:warm/F5FAF6:cold/
# warm efd275
# cold f5faf6
# standard f1e0b5
attr TreppenhausLicht room Tradfri
#
define notify_TreppenhausLicht11  notify LED_Bulb1:(on|off) set TreppenhausLicht $EVENT
define notify_TreppenhausLicht12  notify LED_Bulb2:(on|off) set TreppenhausLicht $EVENT
define notify_TreppenhausLicht13  notify LED_Floalt1:(on|off) set TreppenhausLicht $EVENT
#
define notify_TreppenhausLicht21 notify LED_Bulb1:color:.*    set TreppenhausLicht color $EVTPART1
define notify_TreppenhausLicht22 notify LED_Floalt1:color:.*    set TreppenhausLicht color $EVTPART1
#
define notify_TreppenhausLicht31 notify LED_Bulb1:dimvalue:.* set TreppenhausLicht dimvalue $EVTPART1
define notify_TreppenhausLicht32 notify LED_Bulb2:dimvalue:.* set TreppenhausLicht dimvalue $EVTPART1
define notify_TreppenhausLicht33 notify LED_Floalt1:dimvalue:.* set TreppenhausLicht dimvalue $EVTPART1
#
define notify_TreppenhausLicht40 notify TreppenhausLicht set LED_Floalt1,LED_Bulb1,LED_Bulb2 $EVENT


Bestimmt geht das eleganter ?

Peter Kappelt

#73
Hallo

@rudeboy

Hat sich mit Alexa inzwischen was ergeben? Wahrscheinlich werde ich das Modul, wie Andre vorgeschlagen hatte, zur besseren Kompatibilität anpassen. Ich werde mich da wegen der Kommandos an anderen Modulen orientieren. Die bestehenden Kommandos werde ich aber dennoch, zumindest für einige Zeit, beibehalten. Vielleicht nutzt es ja schon jemand produktiv und möchte das dann nicht sofort anpassen müssen.

@moritzthecat

Schau ich mir an. Gebe dir dann Rückmeldung.

Edit:

Hab es mir angeschaut. Dass in dem $EVENT ein ':' drinne ist, ist üblich. Schau mal in den Eventmonitor.
Als schnelle, einfache Lösung hatte bei mir Folgendes funktioniert:
define dbgTest notify tDeviceTwo {$EVENT =~ s/://;; fhem("set tDeviceOne $EVENT")}

Damit wird der Doppelpunkt einfach weggeschnitten und die gewünschte Funktion sollte erreicht sein,


Schönen Abend,
Peter

Peter Kappelt

So, rudeboy.

Im aktuellen Update gibt es ein neues Attribut für Devices/ Gruppen: usePercentDimming.
Wenn das auf eins gesetzt ist, akzeptiert "set dimvalue" Werte von 0-100, anstatt den bisherigen 0-254.

Das sollte die schnellste und einfachste Lösung sein, dass du das mit Alexa zum laufen bekommst.