Seite 1 von 1

Zigbee2mqtt mit Tradfri-LED

Verfasst: 16. Dez 2019 11:34
von OpenHAB_Anwender
Hallo zusammen,
ich komme leider bei meinem aktuellen Projekt nicht weiter und habe somit zwei Fragen zur Verwendung eines Zigbee2mqtt-Sticks im Zusammenhang mit den Ikea-Tradfri-Komponenten:

1. Obwohl ich eine Color-LED mit dem Stick gepairt habe, wird mir in der Publish-Nachricht keine Farbeigenschaft angezeigt. Somit ist es mir wahrscheinlich nicht möglich die die Farbe über Zigbee2mqtt-Stick zu ändern, oder? Bei den zu findenden Beispielen wurde immer nur ein Switch ("state") und ein Dimmer ("brightness") verwendet.

Betriebsmittel: Ikea Tradfri color

Code: Alles auswählen

zigbee2mqtt:info  2019-12-16T09:20:29: Tradfri_Tischleuchte (0xccccccfffe93f751): LED1624G9 - IKEA TRADFRI LED bulb E14/E26/E27 600 lumen, dimmable, color, opal white (Router)
Payload des Betriebsmittels:

Code: Alles auswählen

zigbee2mqtt:info  2019-12-16T09:20:29: MQTT publish: topic 'zigbee2mqtt/Tradfri_Tischleuchte', payload {"state":"ON","brightness":47,"device":{"friendlyName":"Tradfri_Tischleuchte","ieeeAddr":"0xccccccfffe93f751","networkAddress":1523,"type":"Router","manufacturerID":4476,"manufacturerName":"IKEA of Sweden","powerSource":"Mains (single phase)","applicationVersion":17,"stackVersion":87,"zclVersion":1,"hardwareVersion":1,"dateCode":"20170315","softwareBuildID":"1.3.002"}}
Payload Tradfri.PNG

2. Leider funktioniert das Schalten der Color-LED nicht korrekt (Dimmfunktion funktioniert). Dies liegt an der Syntax, da die Ansteuerung über MQTT.fx-Software mittels "publish" funktioniert.
Anstatt eines { \"state\": \"ON\" } oder eines { \"state\": \"OFF\" } wird nur eine 1 bzw. eine 0 übergeben. Es sieht so aus als wenn die "tradfri.js" nicht aufgerufen wird, aber ich weiß nicht warum. Bei der Helligkeit ist die Ausgabe korrekt und die Funktion gegeben.
Tradfri subscribe set brightness (korrekt):
Tradfri subscribe set brightness.PNG
Tradfri subscribe set state (nicht korrekt):
Tradfri subscribe set state.PNG
Hier die things-Datei

Code: Alles auswählen

Thing mqtt:topic:Tradfri_Tischleuchte "Tischleuchte" {
    Channels:
Type switch : Tradfri_switch "Tischleuchte Switch" [ stateTopic="zigbee2mqtt/Tradfri_Tischleuchte", commandTopic="zigbee2mqtt/Tradfri_Tischleuchte/set", transformationPattern="JSONPATH:$.state", transformationPatternOut="JS:tradfri.js"]
Type dimmer : dimmer "Tischleuchte Dimmer" [ stateTopic="zigbee2mqtt/Tradfri_Tischleuchte", commandTopic="zigbee2mqtt/Tradfri_Tischleuchte/set", min=0, max=254, step=1, transformationPattern="JSONPATH:$.brightness", formatBeforePublish="{   \"brightness\": %s }" ]//transformationPatternOut="JS:openhabdimmer2zigbeebridge.js", transformationPattern="JS:tradfri2openhab.js" ]
    }
Hier die tradfri.js:

Code: Alles auswählen

(function(x) {
    var result = "";
    if (x == '1' || x == 'ON') {
        result="{ \"state\": \"ON\" }";
    } else {
        result="{ \"state\": \"OFF\" }";
    }
    return result;
})(input)
Hier die item-Datei:

Code: Alles auswählen

//Tradfri
Switch Tradfri_Tischleuchte "Tischleuchte [%s]"     { channel="mqtt:topic:Tradfri_Tischleuchte:Tradfri_switch" }
Dimmer Tradfri_Dimmer "Dimmer Tischleuchte [%.1f]"  { channel="mqtt:topic:Tradfri_Tischleuchte:dimmer"}
Vielen Dank für eure Unterstützung!

Re: Zigbee2mqtt mit Tradfri-LED

Verfasst: 2. Jan 2020 15:26
von PeterK
Hi,

zu 1. hast du über MQTT.fx mal ausgelesen was die Lampe an Daten liefert?
z.B. Subscribe zigbee2mqtt/#
Bei mir kamen nicht sofort alle Daten über Zigbee, erst nach ein paar Minuten tauchten dann vollständig alle Payloads auf.

zu 2. Wenn die Scripts im Transforming nicht zu funktionieren scheinen dann prüfe mal ob du JavaScripting in openHAB installiert hast.


Gruß
Peter

Re: Zigbee2mqtt mit Tradfri-LED

Verfasst: 2. Jan 2020 18:23
von udo1toni
Du könntest auch versuchen, statt der outgoingTransformation einfach die beiden Parameter on und off zu setzen.

Code: Alles auswählen

Type switch : Tradfri_switch "Tischleuchte Switch" [ stateTopic="zigbee2mqtt/Tradfri_Tischleuchte",  commandTopic="zigbee2mqtt/Tradfri_Tischleuchte/set", transformationPattern="JSONPATH:$.state",  on="{ \"state\": \"ON\" }", off="{ \"state\": \"OFF\" }" ]
Rest müsste eigntlich auch so passen

Re: Zigbee2mqtt mit Tradfri-LED

Verfasst: 2. Jan 2020 20:15
von sihui
OpenHAB_Anwender hat geschrieben: 16. Dez 2019 11:34 Farbeigenschaft
... oder du nutzt die folgende neue Funktion von zigbee2mqtt:

Code: Alles auswählen

experimental:
  output: attribute
und wirst damit alle Transformationsprobleme los.

Die grundlegende Anleitung dazu findet man hier:

https://community.openhab.org/t/zigbee2 ... ions/86362

und wenn du dich da durchgewühlt hast nimmst du ganz weit unten diesen Post bezüglich Color:

https://community.openhab.org/t/zigbee2 ... 54?u=sihui