NEWS
KNX DTP 3.007 (Dimmer) nach Zigbee übersetzen
-
Hallo zusammen,
ich bin hier schon einige Zeit Mitleser bin über die Suche nun aber nicht mehr weitergekommen.
Ich möchte aus unserem KNX System über openKNX ein Dimmsignal per Zigbee Adapter an eine Lampe schicken. Leider kann ich jedoch mit dem Signal des Dimmers nicht wirklich etwas anfangen. Ich hoffe mir kann hier jemand in Blockly oder Java weiterhelfen.
Laut KNX Konfi handelt es sich um ein 3 Bit Signal. Ein Bit für +/- sowie 2 Bit für die Schrittgröße und Stopp
Diese Infos bekomme ich vom Datenpunkt im IOBroker:

Da mein Schalter nur eine Dimmgeschwindigkeit nutzt reicht mir folgende Übersetzungen aus:
"decr_incr" steht für das Vorzeichen und "data" für die Schrittgröße
- {"decr_incr":1,"data":1} nach +20
- {"decr_incr":1,"data":0} nach 0
- {"decr_incr":0,"data":1} nach -20
- {"decr_incr":0,"data":0} nach 0
Dies ist das Objekt welches ich auslese
"_id": "openknx.0.Licht.Zigbee.Z_LD_BURO_01_Dim_Rel", "type": "state", "common": { "desc": "Basetype: 4-bit relative dimming control", "name": "Z_LD_BURO_01 Dim Rel", "read": true, "role": "state", "type": "object", "write": true }, "native": { "address": "0/7/3", "answer_groupValueResponse": false, "autoread": true, "bitlength": 4, "dpt": "DPT3.007", "valuetype": "composite" }, }Dies ist das Objekt welches ich schreiben will:
{ "type": "state", "common": { "name": "Dimming", "type": "number", "read": false, "write": true, "role": "state", "min": -50, "max": 50 }, "native": {}, "from": "system.adapter.zigbee.0", "_id": "zigbee.0.a4c13800ab3b2cdb.brightness_move" }Danke schon mal für die Hilfe
Chris -
Hallo zusammen,
ich bin hier schon einige Zeit Mitleser bin über die Suche nun aber nicht mehr weitergekommen.
Ich möchte aus unserem KNX System über openKNX ein Dimmsignal per Zigbee Adapter an eine Lampe schicken. Leider kann ich jedoch mit dem Signal des Dimmers nicht wirklich etwas anfangen. Ich hoffe mir kann hier jemand in Blockly oder Java weiterhelfen.
Laut KNX Konfi handelt es sich um ein 3 Bit Signal. Ein Bit für +/- sowie 2 Bit für die Schrittgröße und Stopp
Diese Infos bekomme ich vom Datenpunkt im IOBroker:

Da mein Schalter nur eine Dimmgeschwindigkeit nutzt reicht mir folgende Übersetzungen aus:
"decr_incr" steht für das Vorzeichen und "data" für die Schrittgröße
- {"decr_incr":1,"data":1} nach +20
- {"decr_incr":1,"data":0} nach 0
- {"decr_incr":0,"data":1} nach -20
- {"decr_incr":0,"data":0} nach 0
Dies ist das Objekt welches ich auslese
"_id": "openknx.0.Licht.Zigbee.Z_LD_BURO_01_Dim_Rel", "type": "state", "common": { "desc": "Basetype: 4-bit relative dimming control", "name": "Z_LD_BURO_01 Dim Rel", "read": true, "role": "state", "type": "object", "write": true }, "native": { "address": "0/7/3", "answer_groupValueResponse": false, "autoread": true, "bitlength": 4, "dpt": "DPT3.007", "valuetype": "composite" }, }Dies ist das Objekt welches ich schreiben will:
{ "type": "state", "common": { "name": "Dimming", "type": "number", "read": false, "write": true, "role": "state", "min": -50, "max": 50 }, "native": {}, "from": "system.adapter.zigbee.0", "_id": "zigbee.0.a4c13800ab3b2cdb.brightness_move" }Danke schon mal für die Hilfe
Chris@chribo sagte: "decr_incr" steht für das Vorzeichen und "data" für die Schrittgröße
{"decr_incr":1,"data":1} nach +20
{"decr_incr":1,"data":0} nach 0
{"decr_incr":0,"data":1} nach -20
{"decr_incr":0,"data":0} nach 0dp.state.val.decr_incr ? 20 * dp.state.val.data : -20 * dp.state.val.data -
@chribo sagte: "decr_incr" steht für das Vorzeichen und "data" für die Schrittgröße
{"decr_incr":1,"data":1} nach +20
{"decr_incr":1,"data":0} nach 0
{"decr_incr":0,"data":1} nach -20
{"decr_incr":0,"data":0} nach 0dp.state.val.decr_incr ? 20 * dp.state.val.data : -20 * dp.state.val.datahey danke für die schnelle Antwort. Was Java angeht bin ich leider noch ein ziemlicher Anfänger. Ich kann zwar bestehende Scripte größtenteils nachvollziehen/ändern aber um den benötigten Rest um deinen Code drum herum zu bauen fehlt mir leider noch das Wissen.
Wenn ich das richtig verstehe fragst du hier hab ob der wert "decr_incr" wahr ist und multiplizierst dann "data" mit +20/-20.
das dp muss ich dann durch meinen vorhanden Datenpunkt ersetzen?
openknx.0.Licht.Zigbee.Z_LD_BURO_01_Dim_Rel.state.val.decr_incr ? 20 * openknx.0.Licht.Zigbee.Z_LD_BURO_01_Dim_Rel.state.val.data : -20 * openknx.0.Licht.Zigbee.Z_LD_BURO_01_Dim_Rel.state.val.datwie schreibe ich jetzt das Ergebnis in die gewünschte Variable?
-
hey danke für die schnelle Antwort. Was Java angeht bin ich leider noch ein ziemlicher Anfänger. Ich kann zwar bestehende Scripte größtenteils nachvollziehen/ändern aber um den benötigten Rest um deinen Code drum herum zu bauen fehlt mir leider noch das Wissen.
Wenn ich das richtig verstehe fragst du hier hab ob der wert "decr_incr" wahr ist und multiplizierst dann "data" mit +20/-20.
das dp muss ich dann durch meinen vorhanden Datenpunkt ersetzen?
openknx.0.Licht.Zigbee.Z_LD_BURO_01_Dim_Rel.state.val.decr_incr ? 20 * openknx.0.Licht.Zigbee.Z_LD_BURO_01_Dim_Rel.state.val.data : -20 * openknx.0.Licht.Zigbee.Z_LD_BURO_01_Dim_Rel.state.val.datwie schreibe ich jetzt das Ergebnis in die gewünschte Variable?
@chribo sagte: Was Java angeht bin ich leider noch ein ziemlicher Anfänger.
Javascript ist nicht Java. Besser Blockly?

EDIT: In Javascript:
on('openknx.0.Licht.Zigbee.Z_LD_BURO_01_Dim_Rel', function(dp) { setState('zigbee.0.a4c13800ab3b2cdb.brightness_move', dp.state.val.decr_incr ? 20 * dp.state.val.data : -20 * dp.state.val.data); });
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login