RFD-FHEM / RFFHEM

Counterpart of SIGNALDuino, it's the code for FHEM to work with the data received from the uC
GNU General Public License v3.0
44 stars 33 forks source link

MU Message - repeats are not demodulated correctly #111

Open sidey79 opened 7 years ago

sidey79 commented 7 years ago

Es befinden sich Wiederholungen in der Nachricht:

MU;P0=765;P1=-948;P2=8124;P3=-1438;P4=-2781;P5=-18738;D=01210304040304030303040403030303030404030403030403040521030404030403030304040303030303040403040303040304052103040403040303030404030303030304040304030304030405210304040304030303040403030303030404030403030403040521030404030403030304040303030303040403040303;CP=0;O;

Die 1. Übertragung wird korrekt mit 24 Bit demoduliert: 2016.10.14 23:56:38.316 1: DEBUG>dummyDuino: demodulated message raw (1 0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 1 0), 24 bits

Die 2. Übertragung nur mit 23 Bit, obwohl diese 24 Bit enthält:

2016.10.14 23:56:38.344 1: DEBUG>dummyDuino: demodulated message raw (0 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 1 0 1 0), 23 bits

HomeAutoUser commented 6 years ago

Hallo,

zu dem Thema habe ich aktuell folgende Erkenntnisse erlangt. Das FS20 und FHT80b Protokoll welches ich integriere haben genau das selbige Problem. Einmal wird das ganze Signal gesplittet und einmal kann sich der SIGNALduino nicht entschieden für welches Protokoll er sich entscheidet. Die Mitschnitte sind jeweils von EINEM Tastendruck bzw. Empfangspaket.

2017.09.28 12:23:04 4: sduino_USB0/msg READ: MC;LL=-635;LH=591;SL=-423;SH=375;D=FFFBBF76BB556EBAAF77BAB8;C=337;L=93;R=54; 2017.09.28 12:23:05 4: sduino_USB0/msg READ: MC;LL=-620;LH=595;SL=-415;SH=381;D=FFFBBF76BB556EBAAF77BAB8;C=335;L=93;R=55; 2017.09.28 12:23:05 4: sduino_USB0/msg READ: MC;LL=-635;LH=587;SL=-416;SH=378;D=DDFBB5DAAB75D57BBDD58;C=335;L=81;R=54; 2017.09.28 12:23:05 4: sduino_USB0/msg READ: MC;LL=-636;LH=587;SL=-409;SH=368;D=77EED70;C=333;L=25;R=54; 2017.09.28 12:23:05 4: sduino_USB0/msg READredu: MU;P0=407;P1=-389;P2=619;P3=-601;P4=-9076;D=010101010101010101010123010123230123010101010101010101012323232323230101040101010101010101010101012301012301010101012301012301232301012301010101010101010101012301012323012301010101010101010101232323232323010100;CP=0;R=55; 2017.09.28 12:23:05 4: sduino_USB0: Fingerprint for MU Protocol id 73 -> FS20 matches, trying to demodulate 2017.09.28 12:23:10 4: sduino_USB0/msg READ: MC;LL=-604;LH=610;SL=-396;SH=398;D=F77EED77FFB5D55EB56D4;C=334;L=82;R=56; 2017.09.28 12:23:10 4: sduino_USB0/msg READ: MC;LL=-609;LH=617;SL=-389;SH=401;D=FFFBBF76BBFFDAEAAF5AB6A;C=335;L=91;R=56; 2017.09.28 12:23:12 4: sduino_USB0/msg READ: MC;LL=-605;LH=612;SL=-394;SH=402;D=FFFBBF76BBFFDAEAB554;C=335;L=78;R=55; 2017.09.28 12:23:13 4: sduino_USB0/msg READ: MC;LL=-615;LH=610;SL=-400;SH=387;D=FFFBBF76BBFFDAEAB5BABD8;C=335;L=89;R=42; 2017.09.28 12:23:13 4: sduino_USB0/msg READ: MC;LL=-631;LH=599;SL=-403;SH=385;D=FFFBBF76BBFFDAEAB5BABD8;C=336;L=89;R=42; 2017.09.28 12:23:14 4: sduino_USB0/msg READ: MC;LL=-608;LH=617;SL=-391;SH=390;D=FFFBBF76BBFFDAEAB6BAD56;C=334;L=91;R=47; 2017.09.28 12:23:14 4: sduino_USB0/msg READ: MC;LL=-605;LH=617;SL=-392;SH=396;D=FFFBBF76BBFFDAEAB6BAD56;C=334;L=91;R=47; 2017.09.28 12:23:15 4: sduino_USB0/msg READ: MC;LL=-625;LH=592;SL=-411;SH=382;D=FFFBBF76BBFFDAEAB75AD6A;C=334;L=91;R=46; 2017.09.28 12:23:15 4: sduino_USB0/msg READ: MC;LL=-624;LH=589;SL=-413;SH=381;D=FFFBBF76BBFFDAEAB75AD6A;C=334;L=91;R=46; 2017.09.28 12:23:16 4: sduino_USB0/msg READ: MC;LL=-606;LH=609;SL=-385;SH=403;D=FFFBBF76BBFFDAEABABADAA;C=333;L=91;R=47; 2017.09.28 12:23:16 4: sduino_USB0/msg READ: MC;LL=-614;LH=606;SL=-385;SH=399;D=FFFBBF76BBFFDAEABABADAA;C=333;L=91;R=47; 2017.09.28 12:23:17 4: sduino_USB0/msg READ: MC;LL=-621;LH=604;SL=-398;SH=387;D=FFFBBF76BBFFDAEABB4;C=334;L=75;R=47; 2017.09.28 12:23:18 4: sduino_USB0/msg READ: MC;LL=-616;LH=609;SL=-400;SH=386;D=FFFBBF76BBFFDAEABD5AEAA;C=335;L=91;R=47; 2017.09.28 12:23:18 4: sduino_USB0/msg READ: MC;LL=-608;LH=611;SL=-389;SH=401;D=FFFBBF76BBFFDAEABD5AEAA;C=334;L=91;R=47; 2017.09.28 12:23:19 4: sduino_USB0/msg READ: MC;LL=-609;LH=605;SL=-402;SH=395;D=FFFBBF76BBFFDAEABEC;C=335;L=74;R=47; 2017.09.28 12:23:20 4: sduino_USB0/msg READredu: MU;P0=-32001;P1=397;P2=-405;P3=594;P4=-620;P5=-9080;D=0121212121212121212121212341212341212121212341212341234341212341212121212121212121212341234341212343434123434343434341234341212123434121512121212121212121212121234121234121212121234121234123434121234121212121212121212121234123434121234343412343434343434;CP=1;R=48;O; 2017.09.28 12:23:20 4: sduino_USB0: Fingerprint for MU Protocol id 73 -> FS20 matches, trying to demodulate 2017.09.28 12:23:21 4: sduino_USB0/msg READ: MC;LL=-599;LH=616;SL=-395;SH=395;D=FFFBBF76BBFFDAEAD5B;C=334;L=76;R=47; 2017.09.28 12:23:22 4: sduino_USB0/msg READ: MC;LL=-615;LH=603;SL=-402;SH=394;D=FFFBBF76BBFFDAEAD6BB556;C=335;L=91;R=47; 2017.09.28 12:23:22 4: sduino_USB0/msg READ: MC;LL=-622;LH=600;SL=-405;SH=387;D=FFFBBF76BBFFDAEAD6BB556;C=335;L=91;R=47; 2017.09.28 12:23:23 4: sduino_USB0/msg READ: MC;LL=-605;LH=616;SL=-392;SH=396;D=FFFBBF76BBFFDAEAD75B56A;C=334;L=91;R=47; 2017.09.28 12:23:23 4: sduino_USB0/msg READ: MC;LL=-616;LH=604;SL=-397;SH=392;D=FFFBBF76BBFFDAEAD75B56A;C=334;L=91;R=47; 2017.09.28 12:23:24 4: sduino_USB0/msg READ: MC;LL=-618;LH=599;SL=-410;SH=390;D=FFFBBF76BBFFDAEADABB5AA;C=336;L=91;R=47; 2017.09.28 12:23:24 4: sduino_USB0/msg READ: MC;LL=-607;LH=611;SL=-394;SH=394;D=FFFBBF76BBFFDAEADABB5AA;C=334;L=91;R=47; 2017.09.28 12:23:25 4: sduino_USB0/msg READredu: MU;P0=-1840;P1=404;P2=-399;P3=619;P4=-598;P5=-9056;D=0121212121212121212121212341212341212121212341212341234341212341212121212121212121212341234341212343434123412341234341234123434121234121512121212121212121212121234121234121212121234121234123434121234121212121212121212121234123434121234343412341234123434;CP=1;R=47;O; 2017.09.28 12:23:25 4: sduino_USB0: Fingerprint for MU Protocol id 73 -> FS20 matches, trying to demodulate 2017.09.28 12:23:26 4: sduino_USB0/msg READ: MC;LL=-618;LH=599;SL=-402;SH=390;D=FFFBBF76BBFFDAEADD5B6AA;C=334;L=91;R=47; 2017.09.28 12:23:26 4: sduino_USB0/msg READ: MC;LL=-604;LH=610;SL=-390;SH=394;D=FFFBBF76BBFFDAEADD5B6AA;C=332;L=91;R=47; 2017.09.28 12:23:27 4: sduino_USB0/msg READ: MC;LL=-613;LH=605;SL=-401;SH=392;D=FFFBBF76BBFFDAEADEEDB6;C=335;L=87;R=47; 2017.09.28 12:23:27 4: sduino_USB0/msg READ: MC;LL=-601;LH=614;SL=-407;SH=391;D=FFFBBF76BBFFDAEADEEDB6;C=335;L=87;R=47; 2017.09.28 12:23:28 4: sduino_USB0/msg READ: MC;LL=-615;LH=613;SL=-404;SH=387;D=FFFBBF76BBFFDAEAEABB758;C=336;L=89;R=47; 2017.09.28 12:23:28 4: sduino_USB0/msg READ: MC;LL=-611;LH=608;SL=-408;SH=383;D=FFFBBF76BBFFDAEAEABB758;C=334;L=89;R=47;

2017.09.28 12:27:12 4: sduino_USB0/msg READ: MC;LL=-597;LH=616;SL=-400;SH=397;D=7FFDD8;C=334;L=21;R=47; 2017.09.28 12:27:12 4: sduino_USB0/msg READ: MC;LL=-603;LH=619;SL=-390;SH=397;D=F76BBFF6EBFFD555A;C=334;L=67;R=47; 2017.09.28 12:27:12 4: sduino_USB0/msg READ: MC;LL=-603;LH=619;SL=-390;SH=397;D=FFFBBF76BBFF6EBFFD555A;C=334;L=87;R=47; 2017.09.28 12:27:13 4: sduino_USB0/msg READ: MC;LL=-615;LH=611;SL=-391;SH=398;D=FFF881128955228AA1108A8;C=335;L=92;R=47; 2017.09.28 12:27:13 4: sduino_USB0/msg READ: MC;LL=-598;LH=619;SL=-394;SH=398;D=00044;C=334;L=19;R=47; 2017.09.28 12:27:13 4: sduino_USB0/msg READ: MC;LL=-609;LH=613;SL=-405;SH=394;D=F76BB556EBAAF77BAB8;C=336;L=73;R=47; 2017.09.28 12:27:13 4: sduino_USB0/msg READ: MC;LL=-617;LH=602;SL=-405;SH=380;D=FFFBBF76BB556EBAAF77BAB8;C=333;L=93;R=47;

2017.09.28 12:29:09 4: sduino_USB0/msg READ: MC;LL=-608;LH=615;SL=-394;SH=394;D=FFFBBF76BBFF6EBFFD555A;C=335;L=87;R=47; 2017.09.28 12:29:09 4: sduino_USB0/msg READredu: MU;P1=404;P2=-391;P4=616;P5=-601;P6=-9072;D=161212121212121212121212124512124512121212124512124512454512124512121212121212121245124512124545121212121212121212121245454545454545124510;CP=1;R=47; 2017.09.28 12:29:09 4: sduino_USB0: Fingerprint for MU Protocol id 73 -> FS20 matches, trying to demodulate

2017.09.28 12:05:16 4: sduino_USB0/msg READ: MC;LL=-605;LH=618;SL=-396;SH=393;D=5DFFB75FFEAAAD;C=335;L=56;R=26; 2017.09.28 12:05:16 4: sduino_USB0/msg READ: MC;LL=-605;LH=618;SL=-396;SH=393;D=FFFBBF76BBFF6EBFFD555A;C=335;L=87;R=26; 2017.09.28 12:05:16 4: sduino_USB0/msg READ: MC;LL=-633;LH=589;SL=-412;SH=374;D=77EED74;C=334;L=26;R=26; 2017.09.28 12:05:16 4: sduino_USB0/msg READ: MC;LL=-629;LH=584;SL=-410;SH=388;D=556EBAAF77BAB8;C=335;L=53;R=26; 2017.09.28 12:05:16 4: sduino_USB0/msg READ: MC;LL=-619;LH=593;SL=-413;SH=368;D=FDDFBB5DAAB75D57BBDD5C;C=332;L=86;R=26; 2017.09.28 12:05:16 4: sduino_USB0/msg READredu: MU;P0=248;P1=438;P4=-350;P5=637;P6=-569;P7=-7132;D=174140614041414141456141414141414141414145614561456145614141414141414145656141414561414145614145656145656145656;CP=1;R=19; 2017.09.28 12:05:16 4: sduino_USB0: Fingerprint for MU Protocol id 73 -> FS20 matches, trying to demodulate 2017.09.28 12:05:16 3: sduino_USB0: FS20 - remote control protolength 45 2017.09.28 12:05:16 4: sduino_USB0: decoded matched MU Protocol id 73 dmsg 810b04f70101a0010055010011 length 40 RSSI = -64.5 2017.09.28 12:05:16 3: FS20 Unknown device 0055 (11112222), Button 01 (1112) Code 11 (on), please define it 2017.09.28 12:05:16 2: autocreate: define FS20_005501 FS20 0055 01 2017.09.28 12:05:16 2: autocreate: define FileLog_FS20_005501 FileLog ./log/FS20_005501-%Y-%m.log FS20_005501 2017.09.28 12:05:16 4: sduino_USB0/msg READredu: MS;P0=-10427;P1=603;P2=-403;P5=-4964;P6=391;P7=-617;D=101212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121215606262176262626262176262176217176262176217171717176217626217176262171717176262621762621762626217626217171762626;CP=1;SP=0;R=12;

2017.09.28 12:08:08 4: sduino_USB0/msg READredu: MS;P2=-559;P3=-358;P4=443;P5=643;P6=-10360;D=24643434343434343434343434352434343434343434343435243524352435243434343434343434343434343434343434343435243525243525252;CP=4;SP=6;R=240;O;m=2; 2017.09.28 12:08:08 4: sduino_USB0: Matched MS Protocol id 73.1 -> FS20 2017.09.28 12:08:08 3: sduino_USB0: FS20 - remote control protolength 45 2017.09.28 12:08:08 4: sduino_USB0/msg READredu: MU;P2=-562;P3=-352;P4=437;P5=645;P6=-10360;D=464343434343434343434343435243434343434343434343524352435243524343434343434343434343434343434343434343524352524352525240;CP=4;R=240; 2017.09.28 12:08:08 4: sduino_USB0: Fingerprint for MU Protocol id 73 -> FS20 matches, trying to demodulate 2017.09.28 12:08:08 3: sduino_USB0: FS20 - remote control protolength 45 2017.09.28 12:08:08 4: sduino_USB0: decoded matched MU Protocol id 73 dmsg 810b04f70101a0010055000000 length 40 RSSI = -82

2017.09.28 12:13:03 4: sduino_USB0/msg READredu: MS;P1=449;P3=-344;P4=655;P5=-550;P6=-10378;D=51613131313131313131313131345131313131313131313134513451345134513131313131313131313131313131313131313134513454513454545;CP=1;SP=6;R=13;O; 2017.09.28 12:13:03 4: sduino_USB0: Matched MS Protocol id 73.1 -> FS20 2017.09.28 12:13:03 3: sduino_USB0: FS20 - remote control protolength 45 2017.09.28 12:13:03 4: sduino_USB0/msg READredu: MU;P0=-354;P1=441;P2=640;P3=-562;D=010101010101010102310231023102310101010101010101010101010101010101010102310232310232323;CP=1;R=253; 2017.09.28 12:13:03 4: sduino_USB0: Fingerprint for MU Protocol id 73 -> FS20 matches, trying to demodulate

@sidey79 | @Ralf9 es wäre gut, wenn wir hier eine Lösung finden würden. Solange wir das Problem im Code haben, stolpern wir bei weiteren Sensoren desto öfter.

Alles zu dem Protokoll kann man hier entnehmen. Das was nur in manchen Foren erwähnt wird, das das Signal 3 mal gesendet wird hintereinander. In meinem Falle habe ich das nachvollzogen mit @elektron-bbs. Wenn der SIGNALduino sich bei dem Signal für eine MC Erkennung entschiedet und für einen Bruchteil des Signales für eine MU Erkennung, so haben wir keine klaren Verhältnisse.

Reproduzieren kannst du das ganze mit jeglichen FHT80b Thermostaten oder einem FS20 Taster. Getestet wurde es in verschiedenen Räumlichkeiten.

Auf dem Empfänger ist derzeit die aktuelle Firmware mit einem CC1101.

Ralf9 commented 6 years ago

Wie sieht es aus wenn Du das MC-Protokoll deaktivierst?

MU;P0=-32001;P1=397;P2=-405;P3=594;P4=-620;P5=-9080;D=0121212121212121212121212341212341212121212341212341234341212341212121212121212121212341234341212343434123434343434341234341212123434121512121212121212121212121234121234121212121234121234123434121234121212121212121212121234123434121234343412343434343434;CP=1;R=48;O;

121212121212121212121212341212341212121212341212341234341212341212121212121212121212341234341212343434123434343434341234341212123434121
12121212121212121212121234121234121212121234121234123434121234121212121212121212121234123434121234343412343434343434

Das O am Ende bedeuted, das der Puffer übergelaufen ist. Für mich sieht es aus wie eine Nachricht mit einer Wiederholung nach der "5". Die Wiederholung ist unvollständig da der Puffer übergelaufen ist. Das Problem müsste sich lösen lassen, wenn in der Firmware die Nachricht nach der "5" gesplittet wird. D.h. den ersten Teil übertragen und dann ein BufferMove. So wird es auch bei den MS-Nachrichten gemacht.

sidey79 commented 6 years ago

Das Problem mit den fehlerhaften MC Erkennungen habe ich schon erkannt und auch im code behoben. Allerdings haben meine Anpassungen dazu geführt, dass die Polarität bei Wiederholungen nicht korrekt erkannt wird. Das ganze hatten wir in #136 behandelt.

Dieses Issue bezieht sich aber nicht auf das Problem mit der MC Erkennung. Hier ging es um die demodulation.

HomeAutoUser commented 6 years ago

Für mich sieht es aus wie eine Nachricht mit einer Wiederholung nach der "5". Die Wiederholung ist unvollständig da der Puffer übergelaufen ist. Das Problem müsste sich lösen lassen, wenn in der Firmware die Nachricht nach der "5" gesplittet wird. D.h. den ersten Teil übertragen und dann ein BufferMove. So wird es auch bei den MS-Nachrichten gemacht.

Da liegst du genau richtig, solch eine Nachricht ist das. Wenn @sidey79 das umsetzen könnte, wäre gut und hilfreich! Wir wissen ja nicht, welche Protokolle noch in der Zukunft erscheinen.

Wie sieht es aus wenn Du das MC-Protokoll deaktivierst?

Da ist die Teilung auch ebenso vorhanden und man erhält auch nie die vollständige Nachricht.

Dieses Issue bezieht sich aber nicht auf das Problem mit der MC Erkennung. Hier ging es um die demodulation.

Dann hatte ich das Thema falsch interprätiert. Sorry

Wie kann es aber nun noch sein, das eine Nachricht als MC und MU erkannt wird? Liegt das in meinem Beispiel vor, weil die Nachricht geteilt wird, weil das o.g. vorgeschlagene von @Ralf9 noch nicht eingebaut ist?

sidey79 commented 6 years ago

Also die Frage ist, ob man Wiederholungen bei MU Nachrichten erkennen kann. Wer hat da einen Ansatz, woran man das Ende / den Beginn des Signales erkennen kann?

crc auf die Daten rechnen klappt nicht, da man nicht beide Nachrichten komplett rein bekommt.

HomeAutoUser commented 6 years ago

1)

Also die Frage ist, ob man Wiederholungen bei MU Nachrichten erkennen kann.

So ist es richtig erkannt.

2) Einen Ansatz hat vielleicht @elektron-bbs, Vorraussetzung sollte dann aber sein, das das Signal auch IMMER als MU erkannt wird und nicht mal als MU und mal als MC.

2017.09.28 12:23:04 4: sduino_USB0/msg READ: MC;LL=-635;LH=591;SL=-423;SH=375;D=FFFBBF76BB556EBAAF77BAB8;C=337;L=93;R=54; 2017.09.28 12:23:05 4: sduino_USB0/msg READ: MC;LL=-620;LH=595;SL=-415;SH=381;D=FFFBBF76BB556EBAAF77BAB8;C=335;L=93;R=55; 2017.09.28 12:23:05 4: sduino_USB0/msg READ: MC;LL=-635;LH=587;SL=-416;SH=378;D=DDFBB5DAAB75D57BBDD58;C=335;L=81;R=54; 2017.09.28 12:23:05 4: sduino_USB0/msg READ: MC;LL=-636;LH=587;SL=-409;SH=368;D=77EED70;C=333;L=25;R=54; 2017.09.28 12:23:05 4: sduino_USB0/msg READredu: MU;P0=407;P1=-389;P2=619;P3=-601;P4=-9076;D=010101010101010101010123010123230123010101010101010101012323232323230101040101010101010101010101012301012301010101012301012301232301012301010101010101010101012301012323012301010101010101010101232323232323010100;CP=0;R=55;

Hier darf MC nicht erscheinen, formuliere ich mal leihenhaft.

sidey79 commented 6 years ago

Wird die Nachricht denn nicht immer als MU mit der Firmware aus #136 erkannt?

HomeAutoUser commented 6 years ago

In dieser V 3.3.1-dev_170830 SIGNALduino nicht. Ich teste soeben gleich noch die andere, Moment.

HomeAutoUser commented 6 years ago

Ich habe nun die diese V 3.3.1-devmc_170826 SIGNALduino genommen. Gleiches Verhalten.

2017.09.28 22:38:55 4: Arduino_Nano_868Mhz/msg READ: MC;LL=-597;LH=625;SL=-396;SH=394;D=FFFBDABBFBFF6EBEF576BA;C=335;L=87;R=17; 2017.09.28 22:38:55 4: Arduino_Nano_868Mhz/msg READ: MC;LL=-611;LH=611;SL=-402;SH=402;D=FFFBDABBFBFF6EBEF576BA;C=337;L=87;R=17; 2017.09.28 22:38:55 4: Arduino_Nano_868Mhz/msg READredu: MU;P0=-32001;P1=402;P2=-367;P6=-12772;P7=853;D=100000000000000000000006727272727272727;CP=7;R=17; 2017.09.28 22:38:55 4: Arduino_Nano_868Mhz/msg READredu: MU;P0=-367;P1=856;P2=359;P3=-856;D=0102323101010232310101023101023102310231010231023101023231010102323101023232310231023231010232323232310;CP=2;R=37; 2017.09.28 22:39:05 4: Arduino_Nano_868Mhz/msg READredu: MU;P0=-31272;P1=403;P2=-395;P3=616;P4=-600;P5=-8928;D=0121212121212121212121212341212341212121212341212341234341212341212121212121212123412341212343412121212121212121212123434343434343412341512121212121212121212121234121234121212121234121234123434121234121212121212121212341234121234341212121212121212121212;CP=1;R=47;O; 2017.09.28 22:41:59 4: Arduino_Nano_868Mhz/msg READ: MC;LL=-593;LH=593;SL=-399;SH=389;D=FFFBD75B5ABAFFF6B5DC;C=328;L=78;R=14; 2017.09.28 22:41:59 4: Arduino_Nano_868Mhz/msg READredu: MS;P0=-6482;P1=399;P2=-394;P3=591;P4=-597;D=1000000001212121212121212121212123412121234341212343412341234341234343412123434121212121234121212121234121212123434121234123410;CP=1;SP=0;R=15;

MC und MU jeweils.

EDIT: Hier ist auch mal der Fall als wir mit 2 Definitionen getestet hatten. MS + MU (ein Tastendruck, 2 Definitionen "Augenroll")

2017.09.28 12:13:03 4: sduino_USB0/msg READredu: MS;P1=449;P3=-344;P4=655;P5=-550;P6=-10378;D=51613131313131313131313131345131313131313131313134513451345134513131313131313131313131313131313131313134513454513454545;CP=1;SP=6;R=13;O; 2017.09.28 12:13:03 4: sduino_USB0: Matched MS Protocol id 73.1 -> FS20 2017.09.28 12:13:03 3: sduino_USB0: FS20 - remote control protolength 45 2017.09.28 12:13:03 4: sduino_USB0/msg READredu: MU;P0=-354;P1=441;P2=640;P3=-562;D=010101010101010102310231023102310101010101010101010101010101010101010102310232310232323;CP=1;R=253; 2017.09.28 12:13:03 4: sduino_USB0: Fingerprint for MU Protocol id 73 -> FS20 matches, trying to demodulate

HomeAutoUser commented 6 years ago

Hallo @sidey79 , können wir dem Bug mit der Erkennung eine "höhere" Priorität schenken um das ganze vom Tisch zu bekommen.

@Ralf9 hat das ganze ja schon richtig zusammengefasst.

Das O am Ende bedeuted, das der Puffer übergelaufen ist. Für mich sieht es aus wie eine Nachricht mit einer Wiederholung nach der "5". Die Wiederholung ist unvollständig da der Puffer übergelaufen ist. Das Problem müsste sich lösen lassen, wenn in der Firmware die Nachricht nach der "5" gesplittet wird. D.h. den ersten Teil übertragen und dann ein BufferMove. So wird es auch bei den MS-Nachrichten gemacht.

Da der Fehler hier bei FS20 und FHT das Nutzungsverhalten eingrenzt aber auch schon bei dem Siro Protocoll Sache war, so denke ich, das wir dort eine Lösung finden sollten um nicht andere Dinge zu verbauen beim weiteren Projekt. Sobald das immer noch Thema ist, werden wir bei zukünftigen Erarbeitungen immer stolpern und das Thema erneut antasten.

Wenn wir dem nicht anknüpfen so werden wir jedes Protocoll welches das betrifft ggf. immer doppelt eintragen und erarbeiten müssen. Hier ist die nicht eindeutige Erkennung auch darauf zurück zu führen

MfG

HomeAutoUser commented 6 years ago

Hallo @sidey79 da sich das Thema ja schon über 1-2 Fäden zieht und mir viel an der Fehlerbehebung liegt, so meine Frage. Kann man nicht noch ein paar Ausgaben einbringen welche ich einfügen kann um Zuarbeit zu bringen weil bei mir vermutlich es am häufigsten Auftritt, addData overflow oder die BufferMove --> Overflow Sache.

Neben den von @Ralf9 genannten Ausgaben

//DEBUGausgabe Info Ralf; MSG_PRINT("start="); MSG_PRINT(start); MSG_PRINT(" msglen="); MSG_PRINT(messageLen); MSG_PRINTLN(F(" bufferMove!"));

könnte es ja vielleicht hilfreich sein, die Signallänge bzw. Zeichenkennenlänge inklusiv Zeiten auszugeben? Was meint Ihr?

sidey79 commented 6 years ago

Ich habe den Fehler auch bekommen.

Es hilft leider wenig, die Ausgaben zu erhöhen, wenn der Fehler bereits eingetreten ist.

Man kann die Debug Meldungen erhöhen, in dem man die Schalter dafür konfiguriert. Das Verändert aber das Laufzeitverhalten und somit auch die Ergebnisse.

Aus Erfahrung kann ich leider nur sagen, dass ich den Fehler reproduzieren muss. Dann ist das debuggen leichter.

HomeAutoUser notifications@github.com schrieb am 05.10.2017:

Hallo @sidey79 da sich das Thema ja schon über 1-2 Fäden zieht und mir viel an der Fehlerbehebung liegt, so meine Frage. Kann man nicht noch ein paar Ausgaben einbringen welche ich einfügen kann um Zuarbeit zu bringen weil bei mir vermutlich es am häufigsten Auftritt, addData overflow oder die BufferMove --> Overflow Sache.

Neben den von @Ralf9 genannten Ausgaben

//DEBUGausgabe Info Ralf; MSG_PRINT("start="); MSG_PRINT(start); MSG_PRINT(" msglen="); MSG_PRINT(messageLen); MSG_PRINTLN(F(" bufferMove!"));

könnte es ja vielleicht hilfreich sein, die Signallänge bzw. Zeichenkennenlänge inklusiv Zeiten auszugeben? Was meint Ihr?

-- Diese Nachricht wurde mit K-@ Mail gesendet.

Ralf9 commented 6 years ago

Ich habe den Fehler auch bekommen.

Um welchen Fehler geht es hier?

HomeAutoUser commented 6 years ago

Was macht der Empfänger wenn im FHEM folgende Info zu sehen ist und die LED statisch leuchtet. (Firmware mod. mit @Ralf9 ´s Ausgaben und Debug aktiv)

PARTIAL

Sync: -826������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ RAWMSG

MU;P0=-611;P1=392;P2=-400;P3=612;P4=-8948;D=012121212123012123012121230123030121412121212121212121212121230121212301230303012123012121212121230121212121212121212301230121230301212301212121212301212301212123012303012150;CP=1;R=30;

Im Logfile finde ich leider nur den vorherigen Status:

2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Message received: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Clock: 392, Tol: 83, PattLen: 6 (6), Pulse: -32001, 392, mStart: 0, MCD: 0, mtrunc: 0 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Signal: 01210101210101010501210101210521210101210121212121210521010121212101212121010101012101012101010121012121212101210. [113] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Pattern: P0: 29[392] P1: 52[-513] P2: 27[584] P3: 0[] P4: 0[] P5: 3[-336] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: check:Mu;���;���;�Ȃ;�Ё;D!!!!!!!!!!!!!!!!!!!!!!!!!!!;C0;R44; 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Message received: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Clock: 397, Tol: 77, PattLen: 6 (6), Pulse: -32001, 397, mStart: 0, MCD: 0, mtrunc: 0 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Signal: 01234345234525234525252525252525252525252525252345234525. [56] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Pattern: P0: 1[-32001] P1: 1[264] P2: 21[-392] P3: 6[610] P4: 6[-610] P5: 21[397] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: check:Mu;���;���;���;��;��;���;d#CE#E%#E%%%%%%%%%%%%%%#E#E%;C5;R30; 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Message received: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Clock: 402, Tol: 82, PattLen: 6 (6), Pulse: -32001, 402, mStart: 0, MCD: 0, mtrunc: 0 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Signal: 010101010341010341034341010341034101010341010101034343434101034341010101010101010101010103410341034341. [102] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Pattern: P0: 34[-414] P1: 34[402] P2: 0[] P3: 17[580] P4: 17[-626] P5: 0[] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: check:Mu;���;���;�Ă;��;dAACAAAACCCACAAACA;C1;R44; 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Message received: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Clock: 387, Tol: 78, PattLen: 7 (7), Pulse: -32001, 387, mStart: 0, MCD: 0, mtrunc: 0 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Signal: 0123432626432643262643264343262643432626434343432626264326264326262626264343432626432. [85] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Pattern: P0: 1[112] P1: 1[-1756] P2: 23[387] P3: 18[-617] P4: 18[607] P5: 0[] P6: 22[-401] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: check:Mu;���;�܆;���;��;�߂;���;D#C&&C&C&&C&CC&&CC&&CCCC&&&C&&C&&&&&CCC&&C ;C2;R30; 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Message received: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Clock: 483, Tol: 83, PattLen: 6 (6), Pulse: -32001, 483, mStart: 0, MCD: 0, mtrunc: 0 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Signal: 01212101212121212101212101210101212101210125010121010121210101012101010121212121052121012121212101210101212101. [110] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Pattern: P0: 24[-588] P1: 53[483] P2: 31[-414] P3: 0[] P4: 0[] P5: 2[330] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: check:Mu;�̂;��;���;�ʁ;d!!!!!!!!!!!!!%!!!!!!!!!!!!!!!!!;C1;R44; 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Message received: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Clock: 391, Tol: 77, PattLen: 6 (6), Pulse: -32001, 391, mStart: 0, MCD: 0, mtrunc: 0 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Signal: 012323245453232454545453232324532324532323245323245454545453. [60] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Pattern: P0: 1[-2280] P1: 1[200] P2: 15[-393] P3: 15[391] P4: 14[606] P5: 14[-617] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: check:Mu;��;�Ȁ;���;���;�ނ;��;d##$TS#$TTTS##$S#$S##$S#$TTTTS;C3;R30; 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Message received: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Clock: 403, Tol: 79, PattLen: 7 (7), Pulse: -32001, 403, mStart: 0, MCD: 0, mtrunc: 0 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Signal: 01212131453121452121212121452131452145452121452145454545454521212145454521454545212121214521214521212145214545454545312. [119] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: Pattern: P0: 1[7764] P1: 31[-428] P2: 27[403] P3: 4[302] P4: 27[600] P5: 27[-622] P6: 0[] 2017.10.05 19:29:35 4: Arduino_Nano_868Mhz/msg READ: check:Mu;�Ԟ;���;���;���;�؂;��;D!!1E1!E!!!!!E!1E!EE!!E!EEEEEE!!!EEE!EEE!!!!E!!E!!!E!EEEEE1 ;C2;R4A; 2017.10.05 19:29:36 4: Arduino_Nano_868Mhz/msg READ: Message received: 2017.10.05 19:29:36 4: Arduino_Nano_868Mhz/msg READ: 2017.10.05 19:29:36 4: Arduino_Nano_868Mhz/msg READ: Clock: 404, Tol: 66, PattLen: 8 (0), Pulse: -32001, 0, mStart: 0, MCD: 0, mtrunc: 0 2017.10.05 19:29:36 4: Arduino_Nano_868Mhz/msg READ: Signal: 012121212121212121212121562121562121212121562121562156562121562156565656565621212156565621565656212121215621215621212156215656565656212. [135] 2017.10.05 19:29:36 4: Arduino_Nano_868Mhz/msg READ: Pattern: P0: 1[19592] P1: 39[-411] P2: 39[404] P3: 0[] P4: 0[] P5: 27[590] P6: 27[-608] P7: 0[] 2017.10.05 19:29:36 4: Arduino_Nano_868Mhz/msg READ: check:Mu;���;���;���;�΂;���;D!!!!!!!!!!!V!!V!!!!!V!!V!VV!!V!VVVVVV!!!VVV!VVV!!!!V!!V!!!V!VVVVV! ;C2;R45; 2017.10.05 19:29:49 4: Arduino_Nano_868Mhz/msg READ: Message received: 2017.10.05 19:29:49 4: Arduino_Nano_868Mhz/msg READ: 2017.10.05 19:29:49 4: Arduino_Nano_868Mhz/msg READ: PD sync: 394, -8260, TOL: 4172, sFACT: -20.96 2017.10.05 19:29:49 4: Arduino_Nano_868Mhz/msg READ: 2017.10.05 19:29:52 3: Arduino_Nano_433Mhz SD_WS07_T_1: ERROR - Temp difference too large (old 9.2, new 11.6, diff 2.4) 2017.10.05 19:30:29 4: Arduino_Nano_868Mhz/KeepAlive not ok, retry = 1 -> get ping 2017.10.05 19:30:30 4: Arduino_Nano_868Mhz/HandleWriteQueue: nothing to send, stopping timer 2017.10.05 19:30:49 3: Arduino_Nano_433Mhz SD_WS07_T_1: ERROR - Temp difference too large (old 9.2, new 11.5, diff 2.3) 2017.10.05 19:31:29 3: Arduino_Nano_868Mhz/KeepAlive not ok, retry = 2 -> get ping 2017.10.05 19:31:30 4: Arduino_Nano_868Mhz/HandleWriteQueue: nothing to send, stopping timer 2017.10.05 19:32:05 3: Arduino_Nano_433Mhz: Unknown code u40#FED08, help me! 2017.10.05 19:32:29 3: Arduino_Nano_868Mhz/KeepAlive not ok, retry = 3 -> get ping 2017.10.05 19:32:30 4: Arduino_Nano_868Mhz/HandleWriteQueue: nothing to send, stopping timer 2017.10.05 19:33:29 3: Arduino_Nano_868Mhz/keepalive not ok, retry count reached. Reset 2017.10.05 19:33:29 3: Arduino_Nano_868Mhz reset 2017.10.05 19:33:29 3: Opening Arduino_Nano_868Mhz device /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0 2017.10.05 19:33:29 3: Setting Arduino_Nano_868Mhz serial parameters to 57600,8,N,1 2017.10.05 19:33:29 1: Arduino_Nano_868Mhz/define: /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0@57600 2017.10.05 19:33:29 1: Arduino_Nano_868Mhz/init: /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0@57600 2017.10.05 19:33:29 3: Arduino_Nano_868Mhz device opened 2017.10.05 19:33:31 3: Arduino_Nano_868Mhz/init: disable receiver (XQ) 2017.10.05 19:33:31 3: Arduino_Nano_868Mhz/init: get version, retry = 0 2017.10.05 19:33:41 3: Arduino_Nano_868Mhz/init: get version, retry = 1 2017.10.05 19:33:51 3: Arduino_Nano_868Mhz/init: get version, retry = 2 2017.10.05 19:34:01 3: Arduino_Nano_868Mhz/init: get version, retry = 3 2017.10.05 19:34:01 2: Arduino_Nano_868Mhz/init retry count reached. Reset 2017.10.05 19:34:01 3: Arduino_Nano_868Mhz reset

elektron-bbs commented 6 years ago

Also die Frage ist, ob man Wiederholungen bei MU Nachrichten erkennen kann. Wer hat da einen Ansatz, woran man das Ende / den Beginn des Signales erkennen kann?

Wie erfolgt denn die Trennung bei MS? Wenn ich mich richtig entsinne, hatten wir auch mal MC und MU abgeschaltet, dann erfolgte die Ausgabe scheinbar zuverlässig als MS. Eigentlich müsste es doch reichen, zwischen "normalen" Bits und den Pausen den Unterschied schon im SIGNALduino zu erkennen. Die Pausen sind sicher immer um einiges länger, als die normalen Low-Pegel der Bits.

Eine andere Idee von mir war, den Puffer zu vergrößeren - oder wird es da eng mit dem Speicher?

Ralf9 commented 6 years ago

Welchen Branch hast Du für diese Firmware verwendet?

Ich habe mal hier geschaut: https://github.com/RFD-FHEM/SIGNALDuino/blob/dev-r33_cc1101/src/_micro-api/libraries/signalDecoder/src/signalDecoder.cpp

PARTIAL

Sync: 
-826

"PARTIAL" kann ich dort nicht finden und "Sync:" passt damit auch nicht zusammen:

DBG_PRINT("Sync: ");DBG_PRINT(pattern[sync]);
DBG_PRINT(" -> SyncFact: "); DBG_PRINT(pattern[sync] / (float)pattern[clock]);
DBG_PRINT(",");
HomeAutoUser commented 6 years ago

Es war der Branch SIGNALDuino-dev-r33_cc1101 vom 170830 nur mit deinen Ausgaben eingebaut.

sidey79 commented 6 years ago

Ein Ansatz bei MU Nachrichten zu trennen wäre, wenn wir einen low Pegel finden der länger als die anderen ist und vielleicht maximal 3x vorkommt. Dann könnte man diesen verwenden. Länger wäre dann vermutlich mindestens 2 maximal 10 ?

sidey79 commented 6 years ago

Was macht der Empfänger wenn im FHEM folgende Info zu sehen ist und die LED statisch leuchtet.

Es handelt sich um einen Fehler, wenn an eine fehlerhafte Adresse gesprungen wird. mit https://github.com/RFD-FHEM/SIGNALDuino/commit/86537af69be30ddc023419789201acf2a7cfa9e6 habe ich so einen Fehler behoben.

elektron-bbs commented 6 years ago

Du hast das Thema zwar geschlossen, aber das eigentliche Problem, das MU-Nachrichten nicht getrennt werden, besteht immer noch. Wiederholungen können demzufolge nicht dekodiert werden:

2017-11-25_11:19:42 FHT_5219 actuator: 0% 2017-11-25_11:19:42 FHT_5219 RAWMSG: MU;P0=-32001;P1=407;P2=-376;P3=580;P4=-609;P5=-9320;D=0121212121212121212121212341234123412123412341212123434121234341212121212121212123412341212343412121212121212121212121212123434341234121512121212121212121212121234123412341212341234121212343412123434121212121212121212341234121234341212121212121212121212;CP=1;R=3;O; 2017-11-25_11:19:42 FHT_5219 RSSI: -72.5 2017-11-25_11:19:42 FHT_5219 DMSG: 810c04xx0909a00152190000A600 2017-11-25_11:23:33 FHT_5219 actuator: 0% 2017-11-25_11:23:33 FHT_5219 RSSI: -72.5 2017-11-25_11:23:33 FHT_5219 DMSG: 810c04xx0909a00152190000A600 2017-11-25_11:23:33 FHT_5219 RAWMSG: MU;P0=-32001;P1=377;P2=-413;P4=594;P5=-605;P6=-9304;D=0121212121212121212121212451245124512124512451212124545121245451212121212121212124512451212454512121212121212121212121212124545451245121612121212121212121212121245124512451212451245121212454512124545121212121212121212451245121245451212121212121212121212;CP=1;R=3;O; 2017-11-25_11:25:29 FHT_5219 actuator: 0% 2017-11-25_11:25:29 FHT_5219 RAWMSG: MU;P0=-28232;P1=389;P2=-394;P3=575;P4=-612;P5=-9320;D=0121212121212121212121212341234123412123412341212123434121234341212121212121212123412341212343412121212121212121212121212123434341234121512121212121212121212121234123412341212341234121212343412123434121212121212121212341234121234341212121212121212121212;CP=1;R=3;O; 2017-11-25_11:25:29 FHT_5219 RSSI: -72.5 2017-11-25_11:25:29 FHT_5219 DMSG: 810c04xx0909a00152190000A600

Firmware auf dem SIGNALduino ist folgende: V 3.3.1-dev-mcfirtbitfix_2017-11-18 SIGNALduino cc1101 - compiled at Nov 19 2017 17:51:36