[Signalduino] LED Controller LTECH M4-5A

Begonnen von Devirex, 29 Januar 2020, 00:51:29

Vorheriges Thema - Nächstes Thema

Devirex

Hallo Zusammen,

ich habe hier zwei LED Controller der Firma LTECH die ich gerne per FHEM und Signalduino steuern möchte und benötige dazu Hilfe da ich das signal nicht genau interpretieren kann.
https://ltech-led.eu/en/m-series/1572-led-m-serie-rf-rgbw-m8-m4-5a.html

Beim einschalten mit der Fernbedienung erhalte ich einen sehr langen code.
MU;P0=-16118;P1=315;P2=-281;P4=-1204;P5=-563;P6=618;P7=1204;D=01212121212121212121214151562151515151515151515621515621515626262156262626262626262626215626262626262626262626262626262151515151515151515151515151515151515151515151515626262626262626215151515151515156215156262626262626262626262621570121212121212121212121;CP=1;R=26;O;


Ich habe mich jetzt ein wenig gespielt und bin auf folgende Daten gekommen:

MU;P0=-16118;P1=315;P2=-281;P4=-1204;P5=-563;P6=618;P7=1204;D=01212121212121212121214
15156215151515151515151562151562151562626215626262626262626262621562626262626262626262626262626215151515151515151515151515151515151515151515151562626262626262621515151515151515621515626262626262626262626262157
SlSlLsSlSlSlSlSlSlSlSlSlLsSlSlLsSlSlLsLsLsSlLsLsLsLsLsLsLsLsLsLsSlLsLsLsLsLsLsLsLsLsLsLsLsLsLsLsSlSlLsSlSlSlSlSlSlSlSlSlLSlSlLsSlSlSlSlSlSlSlSlSLsLsLsLsLsLsLsLsSlSlSlSlSlSlSlSlLsSlSlLsLsLsLsLsLsLsLsLsLsLsLsSl
0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0

00100000 00001001 00111011 11111111 01111111 11111111 00100000 00000010 00000000 11111111 00000000 10011111 11111110

2009 3BFF 7FFF 2002 00FF 009F FE


Wenn ich das raw signal sende erhalte ich mit der Version 3.3.1 einen Fehler "sent cmd to long".
Wenn ich meinen Signalduino auf die Firmware 3.3.2.1-R9 flashe kann ich den Befehl abschicken und das signal schaltet wie gewünscht.
set sduino raw SR;;R=5;;P0=-16000;;P1=300;;P2=-300;;P3=-1200;;P4=-600;;P5=600;;P6=1200;;D=01212121212121212121213141452141414141414141414521414521414525252145252525252525252525214525252525252525252525252525252141414141414141414141414141414141414141414141414525252525252525214141414141414145214145252525252525252525252521460;;


Gibt es eine andere möglichkeit den Befehl zu senden, sodass er nicht zu lange wird und auch mit der release Version funktioniert?

Vielen Dank im Voraus!

Viele Grüße
Fabian

elektron-bbs

#1
Probier es mal mit aktuellen Versionen der Perl-Module und Firmware. Ich erhalte hier keine Fehlermeldungen (allerdings mit Entwicklerversionen).

version V 3.4.0-dev SIGNALduino cc1101 (433 Mhz ) - compiled at Jan 5 2020 23:39:51
versionProtocols 1.15
versionmodul v3.4.2_dev_20.01


EDIT:
BITTE NICHT PROBIEREN!
Nach dem Senden dieser Nachricht erfolgt kein Empfang mehr und es muss ein Reset des SIGNALduino durchgeführt werden.
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + 2 x rf_Gateway

Ralf9

ZitatGibt es eine andere möglichkeit den Befehl zu senden, sodass er nicht zu lange wird und auch mit der release Version funktioniert?

Sauber wäre es dafür eine neue Protokoll ID zu nehmen:
"97"  =>
{
name            => 'LTECH M4-5A',
id              => '97',
one             => [1,-1.8],
zero            => [2,-0.9],
start           => [1,-0.9, 1,-0.9, 1,-3.8],
preSync         => [1,-0.9, 1,-0.9, 1,-0.9, 1,-0.9, 1,-0.9, 1,-0.9, 1,-0.9, 1,-0.9],
end             => [3.8, -51],
clockabs        => 315,
format          => 'twostate',
preamble        => 'u97#',
},



Dann ergibt
2020.01.30 19:47:10.908 4 : sduinoD/msg get raw: MU;P0=-16118;P1=315;P2=-281;P4=-1204;P5=-563;P6=618;P7=1204;D=01212121212121212121214151562151515151515151515621515621515626262156262626262626262626215626262626262626262626262626262151515151515151515151515151515151515151515151515626262626262626215151515151515156215156262626262626262626262621570121212121212121212121;CP=1;R=26;O;
2020.01.30 19:47:10.908 4 : sduinoD: Fingerprint for MU Protocol id 97 -> LTECH M4-5A matches, trying to demodulate
2020.01.30 19:47:10.908 5 : sduinoD: dispatching bits: 11011111111101101100010000000000100000000000000011111111111111111111111100000000111111110110000000000001
2020.01.30 19:47:10.908 4 : sduinoD: decoded matched MU Protocol id 97 dmsg u97#DFF6C4008000FFFFFF00FF6001 length 104 RSSI = -61
2020-01-30 19:47:10.914 SIGNALduino sduinoD DMSG u97#DFF6C4008000FFFFFF00FF6001


Damit
DMSG u97#DFF6C4008000FFFFFF00FF6001
kann dann mit sendMsg dies gesendet werden:
set sduino sendMsg P97#0xDFF6C4008000FFFFFF00FF6001
damit wird dann dieses Sendekommando erzeugt:
SR;R=1;P0=315;P1=-283;P2=-1197;P3=-567;P4=630;P5=1197;P6=-16065;D=0101010101010101010102030341030303030303030303410303410303414141034141414141414141414103414141414141414141414141414141030303030303030303030303030303030303030303030303414141414141414103030303030303034103034141414141414141414141410356;

Es bleibt damit aber immer noch das Problem, daß dieses Kommando eine Länge von 299 Zeichen hat. Meine Firmware kommt mit einer Länge von 350 Zeichen zurecht.
Dies ist für viele andere firmware Versionen zuviel.

Gruß Ralf

FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Devirex

Danke für die Antworten, dann bin ich ja mit der Protokoll ID schonmal auf dem richtigen Weg.
Das Protokoll funktioniert super, ich hatte es ein wenig anders beschireben und bin andauernd in ein Memory-leak gelaufen. 
Ich werde jetzt ersteinmal ein wenig brauchen alle Codes der Fernbedienung zu dokumentieren.
Da aber die 3.3.2.1-RC9 bei mir mit allem wunderbar funktioniert sollte das eigentlich kein Problem sein auf deiner Firmware zu bleiben.

Vielen Dank

Ralf9

#4
wenn Du one und zero vertauscht wird aus
DFF6 C400 8000 FFFF FF00 FF60 01
das hier
2009 3BFF 7FFF 0000 00FF 009F FE
ich kann aber nicht abschätzen was das richtige ist.

Mich würde die vollständige MU-Nachricht interessieren, standardmässig werden nur ca 255 Zeichen ausgegeben, der Pufferüberlauf ist am "O" am Ende der Nachricht zu erkennen.
Hast Du ein nano oder ein minicul?

Bitte mach folgendes
get sduino raw CDR
und
get sduino raw CEO


Ein get config müsste dann folgendes ergeben:
config: MS=1;MU=1;MC=1;Mred=0;MuNoOverflow=1; 
Mit CEO wird die Ausgabe der sehr langen MU Nachrichten aktiviert und mit CDO deaktiviert.

Drücke dann ein paar mal eine Taste und poste die empfangenen sehr langen MU-Nachrischten.


@elektron-bbs
Mir ist ein keiner Bug bei der sendmsg aufgefallen, hier
https://github.com/RFD-FHEM/RFFHEM/blob/eccb7ea7a6ebbc78bf2feaaf22850b0adf31e419/FHEM/00_SIGNALduino.pm#L809
kann sowas P3=1234.5 entstehen.
Damit wird dann die Komastelle abgeschnitten:
$pattern.="P".$patternHash{$p}."=". int($p*$clock) .";";



FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Devirex

Hatte one und zero schon getauscht da der zweite HEX Code mehr Sinn macht:
Fernbedienung 1
20093B FF7F FF200200FF009FFE
20093B FF7F FF080080FF0053A8
Fernbedienung 2
2070A5 FF7F FF000080A400284F
2070A5 FF7F 0EFF0080FF00A549

Anscheinend wird der hex code für die RGBW Beleuchtung jedes mal mitgesendet, ich werde das noch entschlüsseln.
Irgendwie sieht meine Konfig so aus:
Internals
Clients :IT:CUL_TCM97001:SD_RSL:OREGON:CUL_TX:SD_AS:Hideki:SD_WS07:SD_WS09: :SD_WS:RFXX10REC:Dooya:SOMFY:SD_BELL:SD_UT:SD_WS_Maverick:FLAMINGO:CUL_WS:Revolt: :FS10:CUL_FHTTK:Siro:FHT:FS20:CUL_EM:Fernotron:SD_Keeloq:SIGNALduino_un:
DEF /dev/serial/by-id/usb-SHK_NANO_CUL_433-if00-port0@57600

DMSG u97#20093BFF7FFF050080FF0027D4
DevState initialized
DeviceName /dev/serial/by-id/usb-SHK_NANO_CUL_433-if00-port0@57600
FD 6
FUUID 5e2bf7c0-f33f-89ee-bbe7-204248a32c5ab7e7
ITClock 250
LASTDMSG u97#20093BFF7FFF050080FF0027D4
LASTDMSGID 97
MSGCNT 225
NAME sduino
NR 6
NR_CMD_LAST_H 2
PARTIAL
RAWMSG MU;P0=-3784;P1=284;P2=-321;P3=-1208;P4=-557;P5=603;P6=1220;P7=-17108;CP=1;R=31;D=0121212121212121212121314145214141414141414141452141452141452525214525252525252525252521452525252525252525252525252525214141414145214521414141414141414521414141414141452525252525252521414141414141414141452141452525252521452145214146;O;w=0;
RSSI -58.5
STATE opened
TIME 1580495869
TYPE SIGNALduino
hasCC1101 1
sendworking 0
version V 3.3.2.1-rc9 SIGNALduino cc1101 - compiled at Jun 16 2019 20:18:01
versionProtocols 01. Okt
versionmodul v3.4.1
Readings
ccpatable C3E = 00 C0 00 00 00 00 00 00 => 10_dBm
config MS=1;MU=1;MC=1;Mred=1;Mdebug=1_MScnt=4;MuSplitThresh=8000;MdebFifoLimit=120/140
ping OK
state opened
version V 3.3.2.1-rc9 SIGNALduino cc1101 - compiled at Jun 16 2019 20:18:01


Die Befehle
get sduino raw CDR
und
get sduino raw CEO

bewirken keine Änderung.

Ralf9

#6
was ergibt ein
get config?

Nachtrag:
bei CEO ist ein großes O keine Null
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Devirex

get sduino config:
config: MS=1;MU=1;MC=1;Mred=1;Mdebug=1_MScnt=4;MuSplitThresh=8000;MdebFifoLimit=120/140

Ralf9

Die Befehle wurden nicht ausgeführt.
Mit CDR sollte Mred=1 nach Mred=0 wechseln

Mit CEO sollte MuSplitThresh=8000; nach MuNoOverflow=1; wechseln
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ralf9

funktionieren die anderen raw Kommandos? V  R  P  CG  ?
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Devirex

Nach den Befehlen "set" statt "get" hat es jetzt geklappt.

Hier die Messages die beim einschalten gesendet werden:
2020.02.02 13:17:30 4: sduino: Read, msg: MU;P0=-32001;P1=314;P2=-285;P3=-1224;P4=-573;P5=601;P6=1204;P7=-15304;CP=1;R=31;D=012121212121212121212131414521414141414141414145214145214145252521452525252525252525252145252525252525252525252525252521414141414141414141414141414141452141414141414145252525252525252141414141414141414525252141452525252525214145214671212121212121212121213141452;p;i;
2020.02.02 13:17:30 4: sduino: Read, msg: MU;P0=-592;P1=311;P2=611;P3=-276;P4=1196;P5=-17344;P6=-1200;CP=1;R=30;D=F01010101010101010231010231010232323102323232323232323232310232323232323232323232323232323101010101010101010101010101010102310101010101010232323232323232310101010101010101023232310102323232323231010231045131313131313131313131610102310101010101010101023101023101023232310232323232323232323231023232323232323232323232323232310101010101010101010101010101010231010101010101023232323232323231010101010101010102323231010232323232323101023104513;p;i;
2020.02.02 13:17:31 4: sduino: Read, msg: MU;P0=-335;P1=263;P2=-1238;P3=-605;P4=607;P5=1204;P6=-17264;CP=1;R=36;D=F01010101010101010121313401313131313131313134013134013134040401340404040404040404040134040404040404040404040404040401313131313131313131313131313131340131313131313134040404040404040131313131313131313404040131340404040404013134013561010101010101010101012131340131313131313131313401313401313404040134040404040404040404013404040404040404040404040404040131313131313131313131313131313134013131313131313404040404040404013131313131313131340404013134040404040401313401356101010101010101010101213134013131313131313131340131340131340404013404040404040404040401340404040404040404040404040404013131313131313131313131313131313401313131313131340404040404040401313131313131313134040401313404040404040131340135;e;i;

Ralf9

Danke, daraus ist erkennbar, daß die Daten 3 mal gesendet werden, es werden 3 mal die gleichen Daten gesendet. Der Datenteil einer vollständigen MU-Nachricht hat einen Länge von 695

MU;P0=-335;P1=263;P2=-1238;P3=-605;P4=607;P5=1204;P6=-17264;CP=1;R=36;D=01010101010101010121313401313131313131313134013134013134040401340404040404040404040134040404040404040404040404040401313131313131313131313131313131340131313131313134040404040404040131313131313131313404040131340404040404013134013561010101010101010101012131340131313131313131313401313401313404040134040404040404040404013404040404040404040404040404040131313131313131313131313131313134013131313131313404040404040404013131313131313131340404013134040404040401313401356101010101010101010101213134013131313131313131340131340131340404013404040404040404040401340404040404040404040404040404013131313131313131313131313131313401313131313131340404040404040401313131313131313134040401313404040404040131340135;

   0101010101010101012 1313401313131313131313134013134013134040401340404040404040404040134040404040404040404040404040401313131313131313131313131313131340131313131313134040404040404040131313131313131313404040131340404040404013134013 56
1010101010101010101012 1313401313131313131313134013134013134040401340404040404040404040134040404040404040404040404040401313131313131313131313131313131340131313131313134040404040404040131313131313131313404040131340404040404013134013 56
1010101010101010101012 1313401313131313131313134013134013134040401340404040404040404040134040404040404040404040404040401313131313131313131313131313131340131313131313134040404040404040131313131313131313404040131340404040404013134013 5;


FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Devirex

#12
So ich bin eine großen Schritt weiter gekommen:


Remote ID   RGB/White   Color        Off / Full / Dimmed  Brightness Level   PlaceHolder   CRC16 (Kermit)   
20093BFF    7F/01      FF0000        00 /  80 / 82           FF- 08                00       20093BFF7FFF000080FF00(73F2)

20093BFF 7F FF0000 80 FF 00 73F2 Ein
20093BFF 7F FF0000 00 FF 00 9FFE Aus
20093BFF 01 000000 98 FF 00 63DB Weiß ein
20093BFF 01 000000 18 FF 00 8FD7 Weiß aus

20093BFF 7F FF0000 80 FF 00 73F2     Rot
20093BFF 7F FF0000 82 08 00 CB76 Max Dim
20093BFF 7F FF0000 82 FF 00 CB47 Min Dim
20093BFF 7F FF0000 82 68 00 9E13 dim + 1
20093BFF 7F FF0000 82 F8 00 C30A dim + 3
20093BFF 7F FF0000 82 A4 00 9470 dim + 4

20093BFF 7F 00FF00 80 FF 00 03FA Grün
20093BFF 7F 00FF00 82 FF 00 BB4F Min Dim
20093BFF 7F 00FF00 82 08 00 BB7E Max Dim

20093BFF 7F 0000FF 80 FF 00 8BCA Blau
20093BFF 7F FFFF00 80 FF 00 2906 Gelb
20093BFF 7F FF00FF 80 FF 00 A137 Violett
20093BFF 7F 00FFFF 80 FF 00 D13F Cyan
20093BFF 7F FFFFFF 80 FF 00 FBC2 Weiß
20093BFF 7F 000000 80 FF 00 590F Aus


Perl code zur Umrechnung habe ich ebenfalls schon:

my $dataAsHex = q'20093BFF7FFF000080FF00';
my $data = pack 'H*', $dataAsHex;

my $ctx = Digest::CRC->new(width=>16, init=>0x0000, xorout=>0x0000,
                       refout=>1, poly=>0x1021, refin=>1, cont=>1);

$ctx->add($data);
my $res = unpack('n', pack('v', $ctx->digest));
printf ("%X\n", $res );

HomeAuto_User

Hallo,

gern kann man es in ein Modul integrieren damit du es direkt mit den Kommandos senden kannst.

Es gibt ein universal Modul vom Signalduino.

Dafür wäre nur hilfreich, das du den Bedarf auf Verlängerung des Sendestring stellst oder @Ralf markiert die 2 Stellen im Code welche wir einreichen können um das die Option in das normale Release kommt.

So können wir sofort deine Codes integrieren, um benutzerfreundlich zu agieren.

Gern sind wir für Erweiterungen offen.

Lg


Gesendet von iPhone mit Tapatalk Pro
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

Ralf9

Zitatoder @Ralf markiert die 2 Stellen im Code welche wir einreichen können
Das Problem dabei ist, daß Sidey den Code inzwischen so weit optimiert hat, daß ich mit meinen Kenntnissen nur noch grob erahnen kann wie es funktioniert.
Er macht es ganz anders wie ich im meiner firmware.

Beim Signalduino fhem Modul ist es genauso, bei den überarbeiteten get- und set Routinen habe ich es inzwischen aufgegeben zu versuchen nachzuvollziehen wie es genau funktioniert.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7