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
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.
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
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
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) .";";
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.
was ergibt ein
get config?
Nachtrag:
bei CEO ist ein großes O keine Null
get sduino config:
config: MS=1;MU=1;MC=1;Mred=1;Mdebug=1_MScnt=4;MuSplitThresh=8000;MdebFifoLimit=120/140
Die Befehle wurden nicht ausgeführt.
Mit CDR sollte Mred=1 nach Mred=0 wechseln
Mit CEO sollte MuSplitThresh=8000; nach MuNoOverflow=1; wechseln
funktionieren die anderen raw Kommandos? V R P CG ?
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;
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;
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 );
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
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
Ich kann nachvollziehen Ralf, das ein Vergleich schwierig ist. Wärest du dennoch bereit das wir ggf. die Dinge nach und nach ,,durchgehen". Du weißt wo du ggf bei dir was geändert hast und ich würde die Änderungen auch gern ansehen und diese Ihm weitergeben um gemeinsam das Ergebnis mit dem Umfang wieder ein wenig anzunähern.
Natürlich das Ganze dann in einem anderen Faden bzw. Github Issues.
Die Vorarbeit der Differenzen würde ich aus dem Kopf schonmal vor legen.
Das Einbinden wird dann Sidey abnicken nachdem er sich es ansah oder ggf. den Code mit Tests absicherte... Prinzipiell Ist er aber nicht abgeneigt von Erweiterungen welche du erarbeitet und vorgenommen hattest.
Liebe Grüße Marco
Gesendet von iPhone mit Tapatalk Pro
Meine firmware und die von Sidey haben sich mittlerweile dafür zu stark auseinander entwickelt.
An vielen Stellen sind die Unterschiede recht groß.
Z.B. habe sowohl ich als auch Sidey die Senderoutinen recht stark umgeschrieben und wir haben es ganz verschieden gemacht.
Gruß Ralf
Ich verstehe dich Ralf. Ja eure FW Differenzen sind groß aber es gibt ein Projekt unter einem Namen.
Es soll kein direkter Vergleich geschaffen werden, es geht um Unterstützung und ggf Erklärung bei Rückfragen. Das du keinen Patch von dir machen kannst ist mir klar [emoji23] Im Zeitalter der Diskussionen gibt es immer Benutzer die etwas hinterfragen oder Testen.
Gesendet von iPhone mit Tapatalk Pro
Zur vollständigen Info,
wie hier (https://forum.fhem.de/index.php/topic,107998.msg1022981.html#msg1022981) schon geschrieben melden wir uns nochmal zwecks den endgültigen ID um es einheitlich übergreifend zu haben.
LG Marco