Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

your <Serial> xxxxxx is wrong! Please use only hexadecimal input with END 00. #6

Closed
D3ltorohd opened this issue Apr 28, 2019 · 31 comments
Labels
bug Something isn't working

Comments

@D3ltorohd
Copy link

2019.04.28 21:49:28 2: JarolifCUL: SD_Keeloq_Parse Unknown device JaroLift with Code xxxxxx detected, please define (rawdate=xxxxxxxxxxxxxxxxxx)
2019.04.28 21:49:28 2: autocreate: define SD_Keeloq_xxxxxx SD_Keeloq xxxxxx
2019.04.28 21:49:28 1: define SD_Keeloq_xxxxxx SD_Keeloq xxxxxx: ERROR: your xxxxxx is wrong! Please use only hexadecimal input with END 00.
2019.04.28 21:49:28 1: ERROR: ERROR: your xxxxxx is wrong! Please use only hexadecimal input with END 00.

Mit dem ESP und dem ursprünglichen Sketch, hat es mit der FB wunderbar geklappt, dort steht ja die selbe SN drin. Meine beiden anderen 4ch FB's haben eine andere SN. Die Probleme macht ist eine 16ch. Aber was sie ausgibt ist doch hexadecimal, oder nicht ? Kann ich die SN hier so einfach posten ?

Kann man da noch was ändern ? Wollte die SN eigentlich übernehmen, sonst muss ich alle neu anlernen, das wollte ich vermeiden.

Grüße

@HomeAutoUser
Copy link
Collaborator

Hallo @D3ltorohd,

deine Seriennummer sollte keine Probleme darstellen wenn du diese postest.
Um den Fehler nachvollziehen zu können, bräuchte ich mal von dieser 16 ChannelRemote ein paar RAWMSG.

2019.04.28 21:49:28 1: define SD_Keeloq_xxxxxx SD_Keeloq xxxxxx: ERROR: your xxxxxx is wrong! Please use only hexadecimal input with END 00.
2019.04.28 21:49:28 1: ERROR: ERROR: your xxxxxx is wrong! Please use only hexadecimal input with END 00.

Diese Nachricht sollte kommen, wenn du einen Sender selbst anlegst und die Seriennummer nicht auf 00 endet. Dies wurde mal so "weiterverarbeitet" wie es jemand im Sketch geführt hatte.

Sehe ich es richtig, du möchtest deine orginal Remote nachbilden und somit die selbe Seriennummer nutzen?

MfG

@D3ltorohd
Copy link
Author

D3ltorohd commented May 5, 2019

Hätte ich so gedacht, das ich diese brauch. Mittlerweile hab ich die 4ch FB, mit der geht das auch wunderbar. Dachte wenn man mehr als 4 steuern möchte braucht man auch die passende FB dazu.

Hier mal das was die Log sagt, wenn ich mit der FB was drücke.

2019.05.05 21:00:07 2: JarolifCUL: SD_Keeloq_Parse Unknown device JaroLift with Code 0842E0 detected, please define (rawdate=FD0482D0D074210210)
2019.05.05 21:00:07 2: autocreate: define SD_Keeloq_0842E0 SD_Keeloq 0842E0
2019.05.05 21:00:07 1: define SD_Keeloq_0842E0 SD_Keeloq 0842E0: ERROR: your 0842E0 is wrong! Please use only hexadecimal input with END 00.
2019.05.05 21:00:07 1: ERROR: ERROR: your 0842E0 is wrong! Please use only hexadecimal input with END 00.

@HomeAutoUser
Copy link
Collaborator

Ich werde mich dem mal widmen.

Wenn ich das nun richtig verstanden habe, so wird beim Drücken der 16er Remote bei dir nichts angelegt und egal was du da drückst, kommst due Fehlermeldung mit der Serial? Richtig?

Die RAWData reicht mir zum nachvollziehen denke ich.

@HomeAutoUser
Copy link
Collaborator

@bismosa, kannst du dich erinnern wieso wir damals die Seriennummer mit 00 enden lassen wollten oder mussten?

@bismosa
Copy link
Collaborator

bismosa commented Jul 31, 2019

Hallo!

Die 00 am Ende war von dem "Original" kopiert. Ich glaube sonst gab es Schwierigkeiten bei den höheren Kanälen (?)
Sorry ich bin unterwegs. Mobil ist es etwas schwierig das wiederzufinden. Das hier habe ich gefunden:
#1 (comment)

Dort bin ich darauf gekommen, wie die Seriennummern vermutlich generiert werden und welches die gültigen Codes darstellen müssten.
Waren wir dann aber glaube ich nicht mehr so richtig drauf eingegangen...und hatten nur ebenfalls festgelegt das 00 am Ende sein muss.

Sorry. Nur kurz weil mobil.
Gruß
Bismosa

@bismosa
Copy link
Collaborator

bismosa commented Jul 31, 2019

@D3ltorohd

Hätte ich so gedacht, das ich diese brauch. Mittlerweile hab ich die 4ch FB, mit der geht das auch wunderbar. Dachte wenn man mehr als 4 steuern möchte braucht man auch die passende FB dazu

Nein. Das ist falsch. Es gibt letztendlich 2 Varianten:
1.)
Empfangen: du hast eine Fernbedienung und empfängst die Signale davon
2.)
Senden: Du legst in FHEM ein neues device mit einer ausgedachten Seriennummer an und lernst die Rolläden darauf ein. Dann ist FHEM wie eine eigene Fernbedienung.

Warum nicht den gleichen Code verwenden:
Die Fernbedienung erzeugt bei jedem senden einen neuen fortlaufenden Code. Wird dieser 1x gesendet reagieren die Rolläden nicht mehr auf diesen. Sie warten auf den nächsten.
Die Fernbedienungen können nur senden. Sie würden nicht mitbekommen das der Code bereits gesendet wurde. Daher darf das nicht.

@HomeAutoUser
Vielleicht sollten wir das in der commandref dazu schreiben. Mir ist so als wäre das schon Mal unklar gewesen...

Gruß
Bismosa

@thorschtn
Copy link

Ich führe mein Anliegen aus dem FHEM Forum gerne hier weiter.

Dass ich in FHEM zum senden eine andere Serial verwenden muss, ist mir klar. Deswegen ist serial_send != serial_receive. serial_send und die 15 folgenden IDs werden von FHEM zum senden benutzt und serial_send muss auf daher hex 00 enden.

serial_receive ist die serial der empfangenen Fernbedienung. Diese endet meist nicht auf 00. Trotzdem wird derzeit beim Anlegen des autocreate devices (und auch beim manuellen Anlegen eines SD_KEELOQ Devices geprüft, ob serial_receive auf 00 endet. Damit funktioniert autocreate nicht.

Ich kann jetzt natürlich manuell mit einer anderen serial_receive anlegen (dann empfange ich aber die Signale der Originalfernbedienung nicht mehr), oder die Seriennummer anschließend ändern.

Meines Erachtens ist die Prüfung auf "00" bei serial_receive nicht nötig, falsch und sollte daher entfallen!

Viele Grüße

thorschtn

@bismosa
Copy link
Collaborator

bismosa commented Aug 3, 2019

Hallo!

Habt ihr ein paar Beispiele wo die serial nicht auf 00 endet? Würde gerne Mal etwas überprüfen...

Gruß
Bismosa

@bismosa
Copy link
Collaborator

bismosa commented Aug 3, 2019

Nochmal was anderes dazu (kann das erst Anfang nächster Woche testen): Mit welchem Kanal versucht ihr die Fernbedienung in FHEM anzulegen? Kann es sein, das es nur mit Kanal 1 funktioniert?
Gruß
Bismosa

@bismosa
Copy link
Collaborator

bismosa commented Aug 5, 2019

Hallo!
Ich habe mir das jetzt nochmal genauer angeschaut...
Das das lernen nur auf Kanal 1 gehen würde stimmt nicht.
Interessant ist also warum einige Fernbedienungen nicht mit 00 enden. Um welche Fernbedienung (Modell/ Anzahl Kanäle) handelt es sich? Meine enden alle mit der 00...ich könnte mir nur vorstellen, das Fernbedienungen mit weniger als 16 Kanälen ggf. andere Serials bekommen haben.

@thorschtn
Hast du mehrere Fernbedienungen? Kannst du bitte Mal alle Serials Posten?
Kannst du auch bitte einen Link zum FHEM Forum zu dem Beitrag mit schreiben?

Gruß
Bismosa

@HomeAutoUser
Copy link
Collaborator

Hallo,
ich frage mal einfach in die Runde, was würde denn passieren wenn wir die 00 freigeben ;-)
Das AutoCreate würde darauf ansprechen und das Verhalten, das ggf. bei Funkstörungen zu einer "Nichtsteuerung" kommen kann, könnte man in der Commandref hinterlegen.

Es sollte auf jedenfall ein Weg gewählt werden, das die 00 mit dem Autocreate angelegt werden.

MfG

@bismosa
Copy link
Collaborator

bismosa commented Aug 5, 2019

Hallo!

Das freigeben halte ich für eine gute Idee.
Wenn mich gerade nicht alles täuscht wird ja in der def nur die serial für das empfangen vorgegeben? Die wäre tatsächlich egal.
Aber ich würde vielleicht eine Prüfung beim Attribut serial-send drin lassen :)

Gruß
Bismosa

@bismosa
Copy link
Collaborator

bismosa commented Aug 5, 2019

Sorry...hatte ich noch vergessen:
Bitte mir trotzdem Mal die Serials übermitteln. Ich würde gerne meine These zu dem erlaubten Serial-Bereich weiter stützen :)
Gruß
Bismosa

@HomeAutoUser
Copy link
Collaborator

Hallo @D3ltorohd,
es wäre schön, wenn du uns mal ein paar RAWMSG geben könntest wo die Serial am ende 00 ist.
Ich möchte gern die Prüfung abändern und somit ein Autocreate mit 00 ermöglichen.
MfG

@thorschtn
Copy link

thorschtn commented Aug 6, 2019

Entschuldigt, ich war ein paar Tage familiär abwesend.

So, hier hätte ich ein konkretes Beispiel:

2019.07.30 23:54:58 5: SIGNALduino/RAW rmsg: Mu;<91><89><81>;<82>ª<83>;³<89><81>;¥<9e><83>;¦¨¾;C1;R19;d#^U^U^U#^U^U##^U^U###^U^U###^U#^U^U^U^U#^U######^U##^U###^U^U######^U^U#####^U########&;O;w0;^C
2019.07.30 23:54:58 4: SIGNALduino/msg READredu: MU;P1=393;P2=810;P3=-393;P5=-798;P6=-15912;CP=1;R=25;D=231515152315152323151523232315152323231523151515152315232323232323152323152323231515232323232323151523232323231523232323232323232;O;w=0;
2019.07.30 23:54:58 4: SIGNALduino: Matched MS Protocol id 87 -> JAROLIFT
2019.07.30 23:54:58 5: SIGNALduino: Starting demodulation at Position 2
2019.07.30 23:54:58 4: SIGNALduino: last part pair=2 reconstructed, last bit=0
2019.07.30 23:54:58 5: SIGNALduino: dispatching bits: 0 1 1 1 0 0 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
2019.07.30 23:54:58 4: SIGNALduino: Decoded matched MS Protocol id 87 dmsg P87#72ECC62F4091818200 length 72  RSSI = -61.5
2019.07.30 23:54:58 5: SIGNALduino Dispatch: P87#72ECC62F4091818200, test ungleich: disabled
2019.07.30 23:54:58 5: SIGNALduino Dispatch: P87#72ECC62F4091818200, -61.5 dB, dispatch
2019.07.30 23:54:58 5: SIGNALduino: dispatch P87#72ECC62F4091818200
2019.07.30 23:54:59 2: SIGNALduino: SD_Keeloq_Parse Unknown device JaroLift with Code 181890 detected, please define (rawdate=72ECC62F4091818200)
2019.07.30 23:54:59 1: define SD_Keeloq_181890 SD_Keeloq 181890: ERROR: your <Serial> 181890 is wrong! Please use only hexadecimal input with END 00.
2019.07.30 23:54:59 1: ERROR: ERROR: your <Serial> 181890 is wrong! Please use only hexadecimal input with END 00.

Ich habe vie Fernbedienungen, alle enden nicht auf 00: eine Handfernbedienung TDRC, einen Timer-Wandsender TDRCT04W und zweimal die ESP-Lösung der Bastelbudenbuben.

Die Serials sind 181890, 2A6320, 0BC110, 020760 - die bleiben auch immer gleich.

@thorschtn
Copy link

Hallo!

Das freigeben halte ich für eine gute Idee.
Wenn mich gerade nicht alles täuscht wird ja in der def nur die serial für das empfangen vorgegeben? Die wäre tatsächlich egal.
Aber ich würde vielleicht eine Prüfung beim Attribut serial-send drin lassen :)

Ja, natürlich. Beim serial_send kann die ruhig drinbleiben. Fangen die 16 Serials eben immer bei xxxxxx00 an, kein Problem. Aber beim serial_receive ist die Prüfung nicht nötig / falsch!

Viele Grüße

thorschtn

@bismosa
Copy link
Collaborator

bismosa commented Aug 7, 2019

Hallo!
Mich interessiert aber wirklich welches die "gültigen" Serials wirklich sind. Nach den neuen Serials zu Urteilen müssen diese als Dezimalzahl immer durch 16 teilbar sein.

Serial (Hex) Dez. Dez. / 16
181890 1579152 98697
2A6320 2777888 173618
0BC110 770320 48145
020760 132960 8310
CF9000 13602816 850176
FA6000 16408576 1025536
9AE000 10149888 634368
9AF000 10153984 634624

Ich habe im Modul mal die Prüfung der Serial auskommentiert und habe versucht meinen Rolladen mit den genannten Codes anzulernen. Davon funktionierte keine.
@HomeAutoUser
Könnte es sein, das wir einen Fehler in der Berechnung haben, wenn die Serial nicht auf "00" endet?
Der Device-Key ist dann immer 0 !

Hier mal ein Verbose-Auszug:

2019.08.07 14:22:12 3: SD_Keeloq: set attr Serial_send to 0BC110
2019.08.07 14:22:47 3: SD_Keeloq: set attr verbose to 5
2019.08.07 14:22:51 4: ######## DEBUG SET - START ########
2019.08.07 14:22:51 4: SIGNALduino: SD_Keeloq_Set - cmd=learn cmd2=1 args cmd2=1 addGroups=
2019.08.07 14:22:51 4: SIGNALduino: SD_Keeloq_Set - check, foreachCount=2 cmd=learn
2019.08.07 14:22:51 4: SIGNALduino: SD_Keeloq_Set - check, foreachLoop=1 LearnVersion=new
2019.08.07 14:22:51 4: SIGNALduino: SD_Keeloq_Set - check, multiple selection: no
2019.08.07 14:22:51 4: SIGNALduino: SD_Keeloq_Set - channel via setlist       => button=updown buttonbits=1010 channel=1
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - Channel                   = 1
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - Channelpart1 (Group 0-7)  = 00000001
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - Channelpart2 (Group 8-15) = 00000000
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - Button                    = updown
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - Button_bits               = 1010
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - DeviceKey                 = 0
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - Device_key_lsb            = 3300971272
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - Device_key_msb            = 3646717525
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - disc                      = 0000000100000000
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - result (decode)           = 16777254
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - Counter                   = 38
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - encoded (encrypt)         = 11001010011101111011111100010111

2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set                                           encoded     <- | ->     decrypts
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set                       Grp 0-7 |digitS/N|      counter    | ch |          serial        | bt |Grp 8-15
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - bits (send split) = 11101000 11111101 11101110 01010011 0000 00001000100000111101     0101 00000000
2019.08.07 14:22:51 5: SIGNALduino: SD_Keeloq_Set - bits (send)       = 11101000111111011110111001010011000000001000100000111101    010100000000
2019.08.07 14:22:51 4: SIGNALduino: SD_Keeloq_Set - sendMSG           = P87#11101000111111011110111001010011000000001000100000111101    010100000000P#R3
2019.08.07 14:22:51 4: ######## DEBUG SET - END ########
2019.08.07 14:22:51 3: SIGNALduino: SD_Rollo_Keeloq_other set updown 1
2019.08.07 14:22:52 4: SIGNALduino: SD_Keeloq_Set - check, foreachCount=2 cmd=updown
2019.08.07 14:22:52 4: SIGNALduino: SD_Keeloq_Set - check, foreachLoop=2 LearnVersion=new
2019.08.07 14:22:52 4: SIGNALduino: SD_Keeloq_Set - check, multiple selection: no
2019.08.07 14:22:52 4: SIGNALduino: SD_Keeloq_Set - channel via setlist       => button=stop buttonbits=0100 channel=1
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - Channel                   = 1
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - Channelpart1 (Group 0-7)  = 00000001
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - Channelpart2 (Group 8-15) = 00000000
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - Button                    = stop
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - Button_bits               = 0100
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - DeviceKey                 = 0
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - Device_key_lsb            = 3300971272
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - Device_key_msb            = 3646717525
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - disc                      = 0000000100000000
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - result (decode)           = 16777255
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - Counter                   = 39
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - encoded (encrypt)         = 11001001011011000100110011011001

2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set                                           encoded     <- | ->     decrypts
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set                       Grp 0-7 |digitS/N|      counter    | ch |          serial        | bt |Grp 8-15
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - bits (send split) = 10011011 00110010 00110110 10010011 0000 00001000100000111101     0010 00000000
2019.08.07 14:22:52 5: SIGNALduino: SD_Keeloq_Set - bits (send)       = 10011011001100100011011010010011000000001000100000111101    001000000000
2019.08.07 14:22:52 4: SIGNALduino: SD_Keeloq_Set - sendMSG           = P87#10011011001100100011011010010011000000001000100000111101    001000000000P#R3
2019.08.07 14:22:52 4: ######## DEBUG SET - END ########
2019.08.07 14:22:52 3: SIGNALduino: SD_Rollo_Keeloq_other set stop 1

Wäre dann als nächster Schritt spannend herauszufinden, in welchem min-max Bereich die Werte liegen müssen. Dann könnten man vielleicht die Serial in Hex vergessen und diese als Nummernebreich (16ztel) einstellen (?). Dann wären diese immer gültig.

Gruß
Bismosa

@bismosa
Copy link
Collaborator

bismosa commented Aug 8, 2019

Guten Morgen!

Neue Erkenntnisse:

Könnte es sein, das wir einen Fehler in der Berechnung haben, wenn die Serial nicht auf "00" endet?
Der Device-Key ist dann immer 0 !

Ich konnte den Fehler finden. Und zwar in der Zeile:
$Serial_send = sprintf ("%24b", hex($Serial_send));
Fehlen die ersten nullen (sind leerzeichen), wenn der Binärstring nicht mit "0" anfängt. Dadurch kommt es zu einer PERL-Warning und einem leeren Device-Key.
Einfache Lösung:
$Serial_send = sprintf ("%024b", hex($Serial_send));

Damit ließen sich dann auch die o.g. Codes problemlos anlernen.

Ich habe nun weitere Codes getestet:

Hex Status Dezimal Dezimal / 16
000000 ok 0  
000010 ok 16  
000002 nicht ok 2  
FFFFF0 ok 16777200 1048575

000000 -> Niedrigste mögliche Serial
FFFFF0 -> Höchste mögliche Serial
Also scheinen sich die Hinweise zu verdichten, dass die Dezimalzahl durch 16 teilbar sein muss.

Ich habe zwar Serials zum Senden...würde es aber bevorzugen, wenn der User sich darum nicht unbedingt Gedanken machen muss welche HEX-Werte denn nun für das Senden gültig sind.
Man könnte entweder einen "Umrechner" integrieren. Z.b. Bitte eine Zahl zwischen 0 und 1048575 eingeben -> diese wird dann intern als Hex umgerechnet (nachdem sie mit 16 multipliziert wurde).

Umgekehrt kann man dann auch eine Prüfung einbauen, ob die eingegebene Serial gültig ist...

Gruß
Bismosa

@HomeAutoUser
Copy link
Collaborator

Hallo @bismosa,
sehe ich das richtig,

das die Prüfung mit 00 beim Autocreate

return "ERROR: your <Serial> $a[2] is wrong! Please use only hexadecimal input with END 00." if (length $a[2] == 6 && not $a[2] =~ /^[0-9a-fA-F]{4}00/s);

und deine hier #6 (comment) erläuterte Sache

### DeviceKey (die ersten Stellen aus der Vorage, der Rest vom Sendenen Kanal)
$Serial_send = sprintf ("%24b",hex($Serial_send)); 		# verified

im o.g. Post 2 verschiedene Dinge sind?

Ich würde die Anpassungen "Schritt für Schritt" umsetzen damit wir im Ernstfall diese auch einzeln nachvollziehen können.

MfG

@bismosa
Copy link
Collaborator

bismosa commented Aug 8, 2019

Hallo!

2 verschiedene Dinge sind?

Ja...Jein...wie auch immer. Eigentlich geht es ja in die gleiche Richtung. Wenn man es ganz genau nimmt, dann sind es 2 unterschiedliche Dinge.
Da aber die Prüfung der Serials die gleiche sein sollte, hat es dann doch wieder etwas damit zu tun....

Gruß
Bismosa

@HomeAutoUser
Copy link
Collaborator

HomeAutoUser commented Aug 8, 2019

Jetzt werde ich stutzig.
Bei dem aktuellen Modul habe ich
MS;P1=1518;P2=-416;P3=370;P4=-3988;P5=-822;P6=793;P7=-16228;D=34356235623562353535623535353562623562623535626262626262353562623562626262626262626262626262626262623535626235623535353535626235626262626262626267123232323232323232323232;CP=3;SP=4;R=243;O;m2;
dispatcht und erhalte eine

serial_receive FA6000

angelegt.

Das hieße ja, das dort OHNE eine Anpassung von mir die 00 angelegt werden kann grübel

@bismosa
Copy link
Collaborator

bismosa commented Aug 8, 2019

Hallo!

Ja. Das ist richtig. Eine 00 kann immer angelegt werden. Bisher dachten wir, das die Serials immer mit 00 enden müssen. Diese Annahme war aber verkehrt.

Gruß
Bismosa

@HomeAutoUser
Copy link
Collaborator

Wenn das so ist, das ganze möchte ich aber gern nachstellen mit einer RAWMSG.
Im Post vom @thorschtn hier #6 (comment) wird nur eine MU Nachricht uns gezeigt. Wir benötigen eine MS Nachricht um das ganze zu dispatchen, damit das Protokoll anschlägt.

@HomeAutoUser
Copy link
Collaborator

@bismosa hast du für mich mal eine passende RAWMSG zum testen? Ich würde diese gern in das Testprogramm mit übernehmen weil wir immer die Nachrichten überprüfen bei jeder Änderung um zu sehen wenn sich was ändert. Nicht das die User dann auf einmal eine Freigegebene Version erhalten wo sich was grundlegen ändert.

@bismosa
Copy link
Collaborator

bismosa commented Aug 8, 2019

Hallo!

Habe gerade mal mit Verbose 5 und der Serial_send FFFFF0 ein Verbose 5-Log aufgezeichnet:

2019.08.08 18:01:41 4: ######## DEBUG SET - START ########
2019.08.08 18:01:41 4: SIGNALduino: SD_Keeloq_Set - cmd=stop cmd2=1 args cmd2=1 addGroups=
2019.08.08 18:01:41 4: SIGNALduino: SD_Keeloq_Set - check, foreachCount=1 cmd=stop
2019.08.08 18:01:41 4: SIGNALduino: SD_Keeloq_Set - check, foreachLoop=1 LearnVersion=new
2019.08.08 18:01:41 4: SIGNALduino: SD_Keeloq_Set - check, multiple selection: no
2019.08.08 18:01:41 4: SIGNALduino: SD_Keeloq_Set - channel via setlist       => button=stop buttonbits=0100 channel=1
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - Channel                   = 1
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - Channelpart1 (Group 0-7)  = 00000001
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - Channelpart2 (Group 8-15) = 00000000
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - Button                    = stop
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - Button_bits               = 0100
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - DeviceKey                 = 268435200
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - Device_key_lsb            = 185954229
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - Device_key_msb            = 2793904830
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - disc                      = 0000000100000000
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - result (decode)           = 16777290
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - Counter                   = 74
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - encoded (encrypt)         = 00100011100111010110011111000011

2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set                                           encoded     <- | ->     decrypts
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set                       Grp 0-7 |digitS/N|      counter    | ch |          serial        | bt |Grp 8-15
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - bits (send split) = 11000011 11100110 10111001 11000100 0000 000011111111111111111111 0010 00000000
2019.08.08 18:01:41 5: SIGNALduino: SD_Keeloq_Set - bits (send)       = 110000111110011010111001110001000000000011111111111111111111001000000000
2019.08.08 18:01:41 4: SIGNALduino: SD_Keeloq_Set - sendMSG           = P87#110000111110011010111001110001000000000011111111111111111111001000000000P#R3
2019.08.08 18:01:41 4: ######## DEBUG SET - END ########
2019.08.08 18:01:41 3: SIGNALduino: SD_Rollo_Keeloq_other set stop 1

Ist das eine passende RAWMSG? Oder wie kann ich die noch erzeugen?

Gruß
Bismosa

@HomeAutoUser
Copy link
Collaborator

Ich meinte eher die RAWMSG wie
MS;P0=-408;P1=-16408;P2=407;P3=1588;P4=-826;P6=-4290;P7=793;D=26242424247070707024707024702424702470242424702424702424702470242424707070707070707024707024247070702424707024702470247070707024707070707070707071342424242424242424;CP=2;SP=6;R=34;O;s=24;m0;

Diese kann man erzeugen indem man den SIGNALduino auf verbose 4 stellt und dann etwas sendet.
Ich fand diese Nachricht im Forum von @thorschtn. Ich denke mal das es eine Nachricht ist von einem 4 Kanal Sender.

Mit dieser kann ich Testen und werde diese auch registrieren um auf Dauer diese als Beispiel für Serial ohne 00 zu besitzen.

@bismosa
Copy link
Collaborator

bismosa commented Aug 8, 2019

Hallo!

Ok. Hier wäre auch noch eine von mir:

2019.08.08 18:11:23 4: SIGNALduino/set: sending via SendMsg: SR;R=3;P0=1520;P1=-400;P2=400;P3=-4000;P4=-800;P5=800;P6=-16000;D=01212121212121212121212121235124245124245151515124512424242424242451245151515124245124245151515151515151515124242424242424242424242424242424242424245151245151515151515151516;
2019.08.08 18:11:23 3: SIGNALduino: SD_Rollo_Keeloq_other set stop 1
2019.08.08 18:11:23 4: SIGNALduino SendrawFromQueue: msg=SR;R=3;P0=1520;P1=-400;P2=400;P3=-4000;P4=-800;P5=800;P6=-16000;D=01212121212121212121212121235124245124245151515124512424242424242451245151515124245124245151515151515151515124242424242424242424242424242424242424245151245151515151515151516;
2019.08.08 18:11:24 4: SIGNALduino/msg READ: SR;R=3;P0=1520;P1=-400;P2=400;P3=-4000;P4=-800;P5=800;P6=-16000;D=01212121212121212121212121235124245124245151515124512424242424242451245151515124245124245151515151515151515124242424242424242424242424242424242424245151245151515151515151516;
2019.08.08 18:11:24 3: SIGNALduino/noMsg Parse: SR;R=3;P0=1520;P1=-400;P2=400;P3=-4000;P4=-800;P5=800;P6=-16000;D=01212121212121212121212121235124245124245151515124512424242424242451245151515124245124245151515151515151515124242424242424242424242424242424242424245151245151515151515151516;
2019.08.08 18:11:24 4: SIGNALduino/read sendraw answer: SR;R=3;P0=1520;P1=-400;P2=400;P3=-4000;P4=-800;P5=800;P6=-16000;D=01212121212121212121212121235124245124245151515124512424242424242451245151515124245124245151515151515151515124242424242424242424242424242424242424245151245151515151515151516;
2019.08.08 18:11:24 4: SIGNALduino/HandleWriteQueue: nothing to send, stopping timer

Gruß
Bismosa

HomeAutoUser added a commit to HomeAutoUser/RFFHEM that referenced this issue Aug 8, 2019
@HomeAutoUser
Copy link
Collaborator

Ich habe es bei uns eingecheckt.

@D3ltorohd
Copy link
Author

Hallo @D3ltorohd,
es wäre schön, wenn du uns mal ein paar RAWMSG geben könntest wo die Serial am ende 00 ist.
Ich möchte gern die Prüfung abändern und somit ein Autocreate mit 00 ermöglichen.
MfG

Ich schau das ich dir morgen die gewünschten Daten schicke. Bin leider bis jetzt nicht dazu gekommen.

HomeAutoUser added a commit to RFD-FHEM/RFFHEM that referenced this issue Aug 9, 2019
* 14_SD_Keeloq.pm - fixed
- fixed wrong Displayview fhem/SD_Keeloq#10
- fixed autocreate serial´s without 00 fhem/SD_Keeloq#6 https://forum.fhem.de/index.php/topic,13596.msg962950.html#msg962950
@bismosa
Copy link
Collaborator

bismosa commented Aug 10, 2019

Hallo!

Bitte noch die Zeile:
$Serial_send = sprintf ("%24b", hex($Serial_send));
in
$Serial_send = sprintf ("%024b", hex($Serial_send));

(siehe #6 (comment))

ändern. Dies ist ein Bug, sonst werden Serials, die mit "0" beginnen nicht richtig verarbeitet und ein Senden ist nicht möglich.

Danke.

Gruß
Bismosa

@bismosa bismosa mentioned this issue Aug 10, 2019
3 tasks
HomeAutoUser added a commit that referenced this issue Aug 31, 2019
HomeAutoUser added a commit to HomeAutoUser/RFFHEM that referenced this issue Aug 31, 2019
@HomeAutoUser
Copy link
Collaborator

Ich habe diesen Bug übernommen und würde hier den Faden vorerst schließen.

@HomeAutoUser HomeAutoUser added the bug Something isn't working label Aug 31, 2019
HomeAutoUser added a commit to RFD-FHEM/RFFHEM that referenced this issue Sep 1, 2019
* 14_SD_Keeloq - fixes
- fix group control 9-16 fhem/SD_Keeloq#14
- code optimization
-  added enhancement  (shade for groups) fhem/SD_Keeloq#13
- reduced repeats for shade after test
- added Summary #638 (comment)
- added information to commandref #638 (comment)
-> probably 2 different versions (but not 
- fix $Serial_send syntax
fhem/SD_Keeloq#6 (comment)
- move comment to not misunderstandings
- revised  commandref LearnVersion (Note to the user)
- added more output to debug if user problems
- remove not needed outputs create channelpart
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Development

No branches or pull requests

4 participants