Ich habe LED-Leuchten des Herstellers Fischer & Honsel aus deren Serie "Shine Loft Modular".
https://www.lightkontor.de/img/Lightkontor-SHINE-LOFT-2.pdf (https://www.lightkontor.de/img/Lightkontor-SHINE-LOFT-2.pdf)
https://www.lightkontor.de/SHINE_Loft-Modular_2_No_70465_Deckenleuchte-Grundgestell_Weiss_RGBW_CCT.html (https://www.lightkontor.de/SHINE_Loft-Modular_2_No_70465_Deckenleuchte-Grundgestell_Weiss_RGBW_CCT.html)
Darin verbaut ist ein RF Dimming Controller mit der Bezeichnung OMAX F-508. Eine entsprechende Fernbedienung wird mitgeliefert:
https://www.wofi.de/leuchtmittel-zubehoer/zubehoer-ersatzteile/5951/fernbedienung-incl-batterie (https://www.wofi.de/leuchtmittel-zubehoer/zubehoer-ersatzteile/5951/fernbedienung-incl-batterie)
Mit dem RfxMgr habe ich die Codes der Fernbedienung analysiert, und kann sie mit FHEM lesen. Protokoll PT2262 Lightning 4, Puls 304µs. Der Empfang und die Dekodierung mit FHEM funktionieren somit - schonmal gut.
Nun würde ich auch gern senden wollen. Mit dem RfxMgr gelingt es, wenn ich dort bei Lightning 4 Puls auf Werte 270-290µs einstelle. Ich kann die Leuchte dann schalten. Jedoch funktioniert es von FHEM aus nicht. "Save settings" im RfxMgr habe ich gemacht.
Woran kann es liegen, dass das schalten mit RfxMgr funktioniert, aber aus FHEM heraus nicht? Kann / muss ich in FHEM bei TRX_Light Treiber den Puls verstellen?
Vom Hersteller des rfxtrx Transceivers habe ich folgende Info bekommen, wie sich beim senden mit Lightning4 ein Wert für das pulse timing übergeben lässt. Meine Frage ist nun, ob TRX_LIGHT das untersützt, und falls nicht, wie man das eventuell dort reinprogrammiert bekommt.
This is the format of the Lighting4 packet:
struct {
BYTE packetlength;
BYTE packettype;
BYTE subtype;
BYTE seqnbr;
BYTE cmd1;
BYTE cmd2;
BYTE cmd3;
BYTE pulseHigh;
BYTE pulseLow;
BYTE filler : 4;
BYTE rssi : 4;
} LIGHTING4;
packetlength:
Packet length (this byte not included) = 0x09
packettype:
0x13 = lighting4
subtype:
0x00 = PT2262, EV1527 (433.92MHz)
seqnbr:
Sequence number. This field contains a sequence number from 0x00 to 0xFF.
cmd1, cmd2, cmd3:
24 bits for PT2262, EV1527 and compatibles
pulseHigh, pulseLow:
Pulse timing / 4.
This value is mostly 1400 / 4 = 350 (usec.)
rssi: (is 0x0 for transmitter command)
Inzwischen kann ich es mir nach Studium des Quellcodes selbst beantworten:
46_TRX_LIGHT.pm sendet Lightning4 mit einer festen Pulsweite von
350µs, das ist hardcoded in der Progammzeile 445:
Zitat$hex_command = sprintf "00%02x%s015E00", $seqnr, $hexdata;
0x015E = 350µs.
Habe das jetzt mal geändert auf 0x03E8 = 250µs, denn mit 250µs reagiert die Lampe, wenn ich den Steuerbefehl mit dem RfxMgr direkt sende.
Leider klappt es aber auch mit dieser Änderung aus FHEM heraus nicht. :-(
Ich suche weiter.
Und gelöst: ;D
Mit einem Wert 0x0FA0 klappt es. Das sind 250µs * 4 * 4. Scheinbar ist irgendwo ein zusätzlicher Faktor 4 im Spiel, oder die von rfxcom.com erhaltene Dokumentation stimmt nicht.
Vermutung: Der Originalwert in 46_TRX_LIGHT.pm 0x015E ist falsch. Er muss 0x15E0 betragen, für 350µs.
Wo kann ich diese Änderung einreichen (als "Pull Request") ?