Kann mir jemand beim RAW senden helfen (Funksteckdosen Mumbi m-FS300 - AB440R)

760 views
Skip to first unread message

Markus Siebert

unread,
Jan 7, 2016, 6:25:12 PM1/7/16
to CUL fans
Hi,

ich hab mich an dem Thema fest gebissen, komme aber nur langsam voran... Ich möchte gerne mit FHEM und dem Selbstbau-Cul meine Funktsteckdosen vom Typ Mumbi m-FS300 schalten. Diese sind selbstlernend, wohl ähnlich intertechno - nutzen auch eine AB440R-Fernbedienung die wohl IT spricht - allerdings reagieren die Dosen nicht auf das IT-Protokoll.

Aktuell kann ich diese über pilight-raw schalten (was aber nicht so zuverlässig ist und der Kabelsalat etwas nervt) - zukünftig möchte ich dies gerne mit dem Cul erledigen.

Ein Beispiel für die Pilight RAWs der Taste B einer Fernbedienung:
(Zeile B off / on jeweils Millisekunden zwischen High-To-Low bzw. umgekehrt - beginnend mit High)
(Zeile beginnend mit BIN: Die "Übersetzung" der High-Low-Werte ins Binärformat)

B off 174 4988 203 1102 174 1073 841 435 261 1073 174 1102 841 435 899 377 232 1044 232 1073 203 1102 812 406 261 1044 203 1073 870 406 870 406 232 1044 957 406 145 1073 870 406 870 464 841 406 899 406 870 406 232 1044 870 464 174 1073 232 1073 870 406
1101100111011001010000010110 28 1 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0
B on 238 4945 243 1033 236 1033 897 379 253 1031 257 1045 875 412 231 1031 914 383 894 382 254 1022 893 384 256 1022 266 1021 904 381 919 365 287 1040 855 389 894 380 905 382 275 1003 905 381 905 373 950 349 912 364 897 387 254 1031 272 1022 904 371
1101101001011001000100000110 28 1 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0
für Sync werden wohl ca. 4900 ms LOW erwartet...
Eine 1 wird repräsentiert durch ca 230 ms HIGH gefolgt von 1050 ms LOW
Eine 0 wird repräsentiert durch ca 885 ms HIGH gefolgt von   400 ms LOW
Ein Befehl besteht dann aus genau 28 Bit

Ok, mit dem CUL mal gegen gechekct - bisschen mit dem X-Befehl probiert und siehe da...:
B off
p10 272 992 928 352 288 960 28 1 3 4 416 4880 0 44 D9D94160

B on
p10 256 1008 928 352 256 992 28 1 3 4 272 4880 0 30 DA591060

Okay, also kann der CUL es auch empfangen - perfekt. 

Dann machen wir uns mal ans senden - hab mir in Excel etwas gebaut, was mir den G Befehl "berechnet":

GssNnprHHLLhhllDDDD...
Send raw data, only if HAS_RAWSEND is enabled. Wert in ms Wert Dez. Auf Syntax angepasster HEX HEX
Everything after the command G is hex.
ss Number of sync bits. Sync is always 0, followed by exactly one 1-bit. 4900 4 4 04
N Number of data bytes (exclusive the last byte if it is not complete) 3 3 03
n Number of bits in the last byte 4 4 04
p Number of ms pause between repeats 5 5 05
r Number of repeats (e.g. FS20: 3) 1 1 01
HH High-Time for the 0-bit, Unit is 16us (!) 885 55 37 37
LL Low- Time for the 0-bit, Unit is 16us (!) 400 25 19 19
hh High-Time for the 1-bit, Unit is 16us (!) 230 14 E 0E
ll Low- Time for the 1-bit, Unit is 16us (!) 1050 66 42 42
DDDDD... Databytes DA591060
See also X04

daraus resultiert dann der Folgende Befehl:

G04345137190E42DA591060

=> Geht aber nicht. Hat einer eine Idee warum?

Markus Siebert

unread,
Jan 8, 2016, 5:58:01 PM1/8/16
to CUL fans

Okay, scheint alles nicht so einfach zu sein. Habe mir den Quelltext angesehen und wenn ich richtig bin in der rf_send.c und die richtige stelle gefunden habe:

 do {
   for(i = 0; i < sync; i++)                   // sync
     send_bit(0);
   if(sync)
     send_bit(1);
   

dann kann ich für den Sync kein Low von ca. 5000 us senden, sondern entweder gar nichts, oder halt beliebig viele 0-Bits (wie weiter hinten im G-Befehl definiert). Okay - versucht selber was zu ändern:

   if(sync == 1) {
      CC1100_SET_OUT;         // High
      my_delay_us(238);

      CC1100_CLEAR_OUT;       // Low
      my_delay_us(4950);
    } else {
      for(i = 0; i < sync; i++)                   // sync
        send_bit(0);
      if(sync)
        send_bit(1);
    }


 aber funktioniert nicht :-/ Zugegeben, ich bin kein Programmierer - zu lange her... und C hab ich nie "gelernt" - und Controller und ähnliches schon gar nicht programmiert... 

Abgesehen von dem "Sync"-Problem finde ich leider auch die Bitfolge nicht in dem, was ich über den CUL sende. Um dem ganzen auf die Spur zu kommen lese ich das, was ich über den CUL sende mit pilight wieder aus um einen "Vergleich" zu haben. Aber es geht nicht....

Erwartet wird:

         1        1        0       1        1        0       1        0       0       1        0       1        1        0       0       1        0       0       0       1        0       0        0      0       0       1        1        0       
238 4945 243 1033 236 1033 897 379 253 1031 257 1045 875 412 231 1031 914 383 894 382 254 1022 893 384 256 1022 266 1021 904 381 919 365 287 1040 855 389 894 380 905 382 275 1003 905 381 905 373 950 349 912 364 897 387 254 1031 272 1022 904 371 302
========================================================================================================================================================================================================================================================
Am nächsten kommt dem ganzen: G01400137190E42DA591060
                      1043 900 414 306  990 253 1084 880 433 237 1107 872 423 891 445 221 1083 912 402 235 1106 211 1104 880 432 917 400 225 1142 850 420 925 411 876 460 207 1092 871 456 860 443 874 467 841 477 863 469 203 1129 180 1124 897 421 952 346 881 434 906 434 860 474 194 1108 209 1150 811 525 146 1126 876 455 845 459 236 481360


Das ich ca. 90 % meiner Erwartungen getroffen habe halte ich für keinen Zufall...  Allerdings scheint der gleiche Befehl auch unterschiedliche Ergebnisse zu produzieren. Weitere 4x abgesetzt erhalte ich dann:

1069 258 1037 899 413 252 1079 890 426 879 455 217 1102 880 435 207 1112 203 1126 858 443 871 482 205 1142 821 446 872 468 854 441 215 1129 864 446 861 456 900 418 863 465 869 445 199 1142 176 1148 838 466 850 473 843 464 853 464 864 451 206 1136 208 1118 839 469 208 1117 879 423 850 466 205 204883           4998 877 435 268 1040 908 425 232 1099 202 1102 883 445 883 421 223 1096 906 483 826 447 864 441 227 1107 857 441 870 446 872 451 865 474 860 465 214 1092 216 1101 872 442 883 455 862 470 857 448 855 476 225 1083 216 1119 846 466 218 1099 862 452 863 453 227 216101
418 793 269 1058 922 405 234 1107 887 413 885 433 252 1084 892 431 206 1110 218 1096 878 435 884 434 207 1112 892 458 870 433 869 462 204 1100 869 476 847 439 864 455 877 468 923 397 208 1102 203 1112 860 454 916 421 856 464 861 456 851 463 206 1121 199 1118 873 475 188 1110 860 458 863 449 208 196524
155 809 929 389 247 1092 887 414 922 386 243 1154 842 425 205 1134 254 1063 889 411 881 439 188 1160 879 429 887 417 889 431 245 1095 856 438 878 491 818 495 826 547 783 458 234 1096 192 1121 851 455 879 456 864 450 886 441 859 453 219 1105 193 1133 867 467 228 1084 850 487 836 445 236 49790

Ich wäre echt froh, wenn mir jemand mit Ahnung ein paar Tipps geben könnte wo denn mein Denkfehler ist...


Reply all
Reply to author
Forward
0 new messages