SIGNALDuino Empfänger Firm- und Hardware

Begonnen von Ralf9, 02 Oktober 2016, 22:59:51

Vorheriges Thema - Nächstes Thema

juergs

#825
Hallo Ralf,
lese nur nebenbei mit:

Das Makro liefert kein Returnwert, dann ist das resultierende Warning schon korrekt
warning: return-statement with no value

if(miso_count==0) return 0 else return 1
oder Ähnliches als Workaround?

Grüße,
Jürgen

Ralf9

Zitatif(miso_count==0) return 0 else 1
oder Ähnliches als Workaround?
Nein dies bringt nichts, da bekomme ich eine andere warning.

Wenn ich das return durch break ersetze, dann sind die warnings weg.

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

Sidey

Zitat von: Ralf9 am 11 Februar 2018, 17:29:05
Wenn ich das return durch break ersetze, dann sind die warnings weg.

Ja, das Macro hat keinen Return wert, da es nur eine Schleife ist.
Das "Return" sollte die Schleife + die Funktion aus der es aufgerufen wird beenden, da ja irgendwas nicht stimmt, wenn die Zeit für wait_miso abgelaufen ist.

Ob das return in dem Macro aber die Funktion, in der es verwendet wird, überhaupt beendet habe ich nicht getestet oder es vergessen :)


break beendet definitiv nur die Schleife und der Rest des Programmes macht weiter egal ob der counter abgelaufen ist oder nicht.

Grüße Sidey

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

juergs

Vermute das Macro soll eine Art Inline-Code darstellen.
Mann könnte aber mögllicherweise auf eine ganz normale Funktion mit Returnwert  umstellen,
wenn es nicht andere Notwendigkeiten dafür gäbe?
Jürgen

Sidey

Hi juergs,

Die Idee mit dem Macro war, dass die Funktion in der das Macro aufgerufen wird beendet wird.

Mit einer Funktion geht das so halt nicht.

Mit einer Inline Funktion oder einem template geht das meines Wissens nach auf keinen Fall.

Gut Programmiert ist das aber nicht. Passt wohl eher in die Kategorie Hack ;)

Gesendet von meinem XT1650 mit Tapatalk

Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Ralf9

ZitatDas "Return" sollte die Schleife + die Funktion aus der es aufgerufen wird beenden, da ja irgendwas nicht stimmt, wenn die Zeit für wait_miso abgelaufen ist.

Ok, nun ist es klar. Damit es sauber ist, werden 2 Marco benötigt:
#define wait_Miso()       while(isHigh(misoPin) ) { static uint8_t miso_count=255;delay(1); if(miso_count==0) return 255; miso_count--; }      // wait until SPI MISO line goes low
#define waitV_Miso()      while(isHigh(misoPin) ) { static uint8_t miso_count=255;delay(1); if(miso_count==0) return; miso_count--; }      // wait until SPI MISO line goes low



Bei readReg wird dann 255 zurückgegeben, aber es wird kein cc1101_Deselect() mehr ausgeführt.
uint8_t readReg(const uint8_t regAddr, const uint8_t regType) {       // read CC1101 register via SPI
cc1101_Select();                                // select CC1101
wait_Miso();                                    // wait until MISO goes low
sendSPI(regAddr | regType);                     // send register address
uint8_t val = sendSPI(0x00);                    // read result
cc1101_Deselect();                              // deselect CC1101
return val;
}


Und hier z.B. wird dann das waitV_Miso() verwendet:
void writeReg(const uint8_t regAddr, const uint8_t val) {     // write single register into the CC1101 IC via SPI
cc1101_Select();                                // select CC1101
waitV_Miso();                                    // wait until MISO goes low
sendSPI(regAddr);                               // send register address
sendSPI(val);                                   // send value
cc1101_Deselect();                              // deselect CC1101
}


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

Binnesmann

Hallo zusammen,

ich möchte den Signalduino ohne Thema benutzen. Gibt es eine Doku zu den Rohdaten die vom Signalduino gesendet werden? Ich würde die Daten gerne in Python verarbeiten. Vielleicht hat ja jemand einen Sketch für mich.

Ich habe schon 45 Seiten gelesen, aber die Flut ist hier ja enorm. Daumen hoch für die Entwickler.

Gruß Binnesmann

Sidey

Zitat von: Binnesmann am 20 Februar 2018, 08:23:15
ich möchte den Signalduino ohne Thema benutzen. Gibt es eine Doku zu den Rohdaten die vom Signalduino gesendet werden?

Leider gibt es keine vollständige Beschreibung dazu.
Es ist aktuell auch so, dass die Protokoll Definitionen im FHEM Modul eingebaut bin.
Ich wollte diese schon mal auslagern, aber ganz so einfach ist es dann doch nicht gewesen.

Vom Prinzip müsstest Du das ganze FHEM Modul in Python übersetzen und von den FHEM Schnittstellen lösen.

Ich habe in der Vergangenheit durchaus schon daran gedacht, dass es besser wäre die Protokoll Logik aus dem FHEM Modul zu extrahieren und einen allgemeingültigen Connector zu definieren, der dann auch unabhängig von FHEM funktioniert.
Aber das ist eine ordentliche Portion Arbeit :(

Ob Python da das richtige ist, weiss ich nicht.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Binnesmann

Hallo Sidey,

Danke für deine Antwort. Ich habe mir das mit dem Übersetzen schon so gedacht. Wollte das aber umgehen. Python oder C ist das was ich so leidlich kann. Wobei Python den Vorteil des Skriptes hat und nicht jedes mal kompiliert werden muss.

Ich werde mich da also mal durchwurschteln. Ich hatte nur die Hoffnung, dass die einzelnen Rückgabewerte definiert sind und ich diese Parameter leicht umrechnen kann. Die Übersetzung der Empfangenen Daten ist so schnell gemacht. Was die Daten dann im einzelnen bedeuten muss dann später betrachtet werden.

Ich mach mich mal ans Werk.

Gruß Binnesmann

Sidey

Hi,

also vom Prinzip kannst Du mit den Parse Routinen anfangen.
Da kommen erst ein paar Regex Einträge und der Datensalat wird in einzelne Variablen zerlegt.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

uelpenich

#835
Hallo,
gestern hatte ich diese Frage im Thema "98_Dooya Modul Version 1.13" gestellt und darauf aufmerksam gemacht worden dass sie besser hier hin gehört.
https://forum.fhem.de/index.php/topic,49523.msg769952.html#msg769952

Ich setze Rolladen7 Rohrmotore mit DC229 bzw. DC230 Wandsender ein.
Die Rolladenmotore kann ich problemlos mit Signalduino und dem Modul DOOYA steuern.
Signalduino:      V 3.3.1-dev SIGNALduino cc1101 - compiled at Mar 10 2017 22:54:50
                        # $Id: 00_SIGNALduino.pm 10488 2018-02-14 14:32:00Z v3.3.3-dev $
98_Dooya.pm: # $Id: 98_Dooya.pm 1013 2017-08-26 21:00:00Z Jarnsen_darkmission_ralf9 $

Signalduino Readings:
ccconf            freq:433.920MHz bWidth:325KHz rAmpl:42dB sens:4dB (DataRate:5603.79Baud)
ccpatable       C3E = 00 84 00 00 00 00 00 00 => 5_dBm
cmds             V R t X F S P C r W x e
config            MS=1;MU=1;MC=1
ping              OK
state            opened
version          V 3.3.1-dev SIGNALduino cc1101 - compiled at Mar 10 2017 22:54:50


Mein Problem: Viele meiner Wandsender (nicht alle) werden nicht (immer) als P16 DOOYA Shutter erkannt, sondern meistens als unbekanntes u57 oder auch u40 Gerät.
2018-02-20 16:45:09 SIGNALduino signalduino_0_433 DMSG u57#556B5555B6D56AD5AB
2018-02-20 16:45:09 SIGNALduino signalduino_0_433 UNKNOWNCODE u57#556B5555B6D56AD5AB
2018-02-20 16:45:09 SIGNALduino signalduino_0_433 DMSG u57#556B5555B6D56AD55B
2018-02-20 16:45:09 SIGNALduino signalduino_0_433 UNKNOWNCODE u57#556B5555B6D56AD55B
2018-02-20 16:45:10 Dooya Dooya_1111100100000111101010100111_1 parsestate: on
2018-02-20 16:45:10 Dooya Dooya_1111100100000111101010100111_1 closed
2018-02-20 16:45:10 Dooya Dooya_1111100100000111101010100111_1 position: 200
2018-02-20 16:45:10 Dooya Dooya_1111100100000111101010100111_1 exact: closed
2018-02-20 16:45:10 SIGNALduino signalduino_0_433 DMSG u40#41EA9C4CC
2018-02-20 16:45:10 SIGNALduino signalduino_0_433 UNKNOWNCODE u40#41EA9C4CC
2018-02-20 16:45:10 SIGNALduino signalduino_0_433 DMSG u40#41EA9C4C8
2018-02-20 16:45:10 SIGNALduino signalduino_0_433 UNKNOWNCODE u40#41EA9C4C8
2018-02-20 16:45:10 SIGNALduino signalduino_0_433 DMSG u57#556B5555B6D56AD5AB
2018-02-20 16:45:10 SIGNALduino signalduino_0_433 UNKNOWNCODE u57#556B5555B6D56AD5AB
2018-02-20 16:45:11 SIGNALduino signalduino_0_433 DMSG u57#556B5555B6D56AD55B
2018-02-20 16:45:11 SIGNALduino signalduino_0_433 UNKNOWNCODE u57#556B5555B6D56AD55B
Die Rolladen lassen sich problemlos mit den ausgelesenen DOOYA IDs steuern.
Feststellung: die erkannten u57 Datenpakete sind sehr reproduzierbar und stabil.
Fragen:
Sind die Protokolle u57, u40 und d16 so ähnlich, so dass es bei ungenauen Sender zu diesen Verwechslungen kommen kann?
Kann ich die CC1001 Empfängereinstellungen so verändern, dass DOOYA sicher erkannt wird? (ich will auch InterTechno empfangen, was zur Zeit problemlos funktioniert)
Tritt das Problem auch an anderer Stelle auf?
Was kann ich weiterhin versuchen, um zu besseren Ergebnissen zu kommen?

uelpenich

Die Idee von Darkmission, MC abzuschalten hat nicht geholfen:

2018-02-21 20:36:09 Dooya Dooya_1111100100000111011101100111_1 parsestate: off
2018-02-21 20:36:09 Dooya Dooya_1111100100000111011101100111_1 open
2018-02-21 20:36:09 Dooya Dooya_1111100100000111011101100111_1 position: 0
2018-02-21 20:36:09 Dooya Dooya_1111100100000111011101100111_1 exact: open
2018-02-21 20:36:09 SIGNALduino signalduino_0_433 DMSG u40#EECE222
2018-02-21 20:36:09 SIGNALduino signalduino_0_433 UNKNOWNCODE u40#EECE222
2018-02-21 20:36:09 SIGNALduino signalduino_0_433 DMSG u40#41DD9C444
2018-02-21 20:36:09 SIGNALduino signalduino_0_433 UNKNOWNCODE u40#41DD9C444
2018-02-21 20:36:09 SIGNALduino signalduino_0_433 DMSG u40#41DD9C440
2018-02-21 20:36:09 SIGNALduino signalduino_0_433 UNKNOWNCODE u40#41DD9C440
2018-02-21 20:36:09 SIGNALduino signalduino_0_433 DMSG u40#ECE220
2018-02-21 20:36:09 SIGNALduino signalduino_0_433 UNKNOWNCODE u40#ECE220
2018-02-21 20:36:09 SIGNALduino signalduino_0_433 DMSG u40#41DD9C444
2018-02-21 20:36:09 SIGNALduino signalduino_0_433 UNKNOWNCODE u40#41DD9C444
2018-02-21 20:36:09 SIGNALduino signalduino_0_433 DMSG u40#41DD9C478
2018-02-21 20:36:09 SIGNALduino signalduino_0_433 UNKNOWNCODE u40#41DD9C478
2018-02-21 20:36:11 SIGNALduino signalduino_0_433 DMSG u40#DC478
2018-02-21 20:36:11 SIGNALduino signalduino_0_433 UNKNOWNCODE u40#DC478
2018-02-21 20:36:11 SIGNALduino signalduino_0_433 DMSG u40#D9C478
2018-02-21 20:36:11 SIGNALduino signalduino_0_433 UNKNOWNCODE u40#D9C478

Sidey

Zitat von: uelpenich am 21 Februar 2018, 21:10:02
Die Idee von Darkmission, MC abzuschalten hat nicht geholfen:

Poste doch bitte mal die Raw Messages dazu (Ab Verbose 4 zu sehen).
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

uelpenich

Hallo Sidey,
danke für die Hilfe.

Bei signalduino verbose 5 sieht man vor lauter Bäumen den Wald nicht mehr.

Zwei Dinge habe ich geändert:

  • In einem der Foren habe ich in einem frühen Entwicklungsstand gelesen, dass das Modul Dooya die empfangenen Signale #sofort# wieder aussendet (Trompetenecho?). Deshalb habe ich bei dem Dooya Rolladen das Attribut "dummy" auf 1 gesetzt.
  • Um weitere unnötige Protokolluntersuchungen zu unterbinden, habe ich beim Signalduino eine Whitelist mit den IDs 3 und 16 (Meine Intertechno sowie die Dooya Rolladen) gesetzt.

Hier das Ergebnis eines Tastendrucks.
2018.02.21 23:00:14 3: signalduino_0_433 Attr: whitelist_IDs
2018.02.21 23:00:14 3: signalduino_0_433 sduinoIdList: whitelistIds=3,16
2018.02.21 23:00:14 3: signalduino_0_433 sduinoIdList: blacklistIds=
2018.02.21 23:00:14 3: signalduino_0_433 sduinoIdList: development=
2018.02.21 23:00:14 3: signalduino_0_433: IDlist MS 3
2018.02.21 23:00:14 3: signalduino_0_433: IDlist MU 16
2018.02.21 23:00:14 3: signalduino_0_433: IDlist MC
2018.02.21 23:00:32 4: signalduino_0_433/keepalive ok, retry = 0
2018.02.21 23:00:35 4: signalduino_0_433/msg READ: MU;P0=240;P1=-4184;P2=311;P3=-2170;P5=-1172;P6=116;D=01212323232123232121232321012323210125632;CP=2;R=220;
2018.02.21 23:00:36 4: signalduino_0_433/msg READ: MU;P0=114;P1=-2150;P2=234;P3=354;P4=-4166;P6=-9232;P7=176;D=0121343131343431313434313134343424343434240131313134313131343431367;CP=3;R=219;
2018.02.21 23:00:44 4: signalduino_0_433/msg READ: MS;P1=465;P3=348;P4=-1986;P5=-3929;P6=-9185;D=16341514151514151514141515141414141414141414141415141414151414151415141514;CP=1;SP=6;R=229;O;
2018.02.21 23:00:44 4: signalduino_0_433/msg READ: MS;P0=-1962;P1=472;P2=-3927;P3=-9200;P4=329;D=13401210121210121210101212101010101010101010101012101010121010121012101210;CP=1;SP=3;R=230;O;
2018.02.21 23:00:45 2: Got message for undefined device 049d65, and failed to guess type from msg 'Ack' - ignoring
2018.02.21 23:00:52 4: signalduino_0_433/msg READ: MU;P0=-11268;P1=919;P2=-1026;P3=-546;P4=424;P5=-92;P6=112;D=012121343424313434212434343431562134342124312124313421343424313434243434343434312434343134343424343124343121243121342121212134243124;CP=4;R=225;
2018.02.21 23:00:52 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:00:52 5: signalduino_0_433: start pattern for MU Protocol id 16 -> Dooya shutter mismatches, aborting
2018.02.21 23:00:52 4: signalduino_0_433/msg READ: MU;P0=-32001;P1=910;P2=-1046;P3=-553;P4=409;D=01212134342431343421243434343121343421243121243431213434243134342434343434343124343431343434243431243431212431213421343421343421343424;CP=4;R=223;
2018.02.21 23:00:52 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:00:52 5: signalduino_0_433: start pattern for MU Protocol id 16 -> Dooya shutter mismatches, aborting
2018.02.21 23:00:58 4: signalduino_0_433/msg READ: MU;P0=-32001;P1=4737;P2=-1530;P3=340;P4=-735;P5=696;P6=-378;D=012345634345634563434343434345656345634345656565656343434343434345634343456343434561234563434563456343434343434565634563434565656565634343434343434563434345634343456123456343456345634343434343456563456343456565656563434343434343456343434563434345;CP=3;R=27;
2018.02.21 23:00:58 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:00:58 5: signalduino_0_433: Starting demodulation at Position 3
2018.02.21 23:00:58 5: signalduino_0_433: dispatching bits: 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1
2018.02.21 23:00:58 4: signalduino_0_433: decoded matched MU Protocol id 16 dmsg P16#4A069F0111 length 40 RSSI = -60.5
2018.02.21 23:00:58 5: signalduino_0_433 Dispatch: P16#4A069F0111, test ungleich: disabled
2018.02.21 23:00:58 5: signalduino_0_433 Dispatch: P16#4A069F0111, -60.5 dB, dispatch
2018.02.21 23:00:58 5: signalduino_0_433: dispatch P16#4A069F0111
2018.02.21 23:00:58 4: Dooya_Parse: rawData = 4A069F0111 length: 10
2018.02.21 23:00:58 4: Dooya_Parse: converted to bits: 0100101000000110100111110000000100010001
2018.02.21 23:00:58 4: Dooya_Parse: device ID: 0100101000000110100111110000
2018.02.21 23:00:58 4: Dooya_Parse: Channel: 1
2018.02.21 23:00:58 4: Dooya_Parse: Cmd: 0001  Newstate: off
2018.02.21 23:00:58 4: Dooya_Parse: deviceCode: 0100101000000110100111110000_1
2018.02.21 23:00:58 3: Dooya_set: handled command off --> move :off:  newState :0:
2018.02.21 23:00:58 4: signalduino_0_433/msg READ: MU;P0=-32001;P1=339;P2=-15708;P3=-735;P4=699;P5=-376;P6=4732;P7=-1540;D=012131313134545134513134545454545131313131313134513131345454545136713451313451345131313131313454513451313454545454513131313131313451313134545454513671345131345134513131313131345451345131345454545451313131313131345131313454545451;CP=1;R=27;
2018.02.21 23:00:58 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:00:58 5: signalduino_0_433: Starting demodulation at Position 67
2018.02.21 23:00:58 5: signalduino_0_433: dispatching bits: 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0
2018.02.21 23:00:58 4: signalduino_0_433: decoded matched MU Protocol id 16 dmsg P16#4A069F011E length 40 RSSI = -60.5
2018.02.21 23:00:58 5: signalduino_0_433 Dispatch: P16#4A069F011E, test ungleich: disabled
2018.02.21 23:00:58 5: signalduino_0_433 Dispatch: P16#4A069F011E, -60.5 dB, dispatch
2018.02.21 23:00:58 5: signalduino_0_433: dispatch P16#4A069F011E
2018.02.21 23:00:58 4: Dooya_Parse: rawData = 4A069F011E length: 10
2018.02.21 23:00:58 4: Dooya_Parse: converted to bits: 0100101000000110100111110000000100011110
2018.02.21 23:00:58 4: Dooya_Parse: device ID: 0100101000000110100111110000
2018.02.21 23:00:58 4: Dooya_Parse: Channel: 1
2018.02.21 23:00:58 4: Dooya_Parse: Cmd: 0001  Newstate: off
2018.02.21 23:00:58 4: Dooya_Parse: deviceCode: 0100101000000110100111110000_1
2018.02.21 23:00:58 3: Dooya_set: handled command off --> move :off:  newState :0:


Das zu "P16#4A069F0111" decodierte Signal ist das gewünschte. Alle von FHEM an 4A069F0_1 gesendeten Befehle kommen richtig an und werden ausgeführt.
Fragen: Was sind die anderen Protokolle? Sendet der Wandsender soviel (Schrott)? oder ist bei mir die Umgebung so verseucht?

Hier ist ein weiterer Mitschnitt:2018.02.21 23:05:19 4: signalduino_0_433/msg READ: MU;P0=374;P1=-2076;P3=-4123;P4=92;D=010303010101030101030301010303010103030303030303030101014;CP=0;R=220;
2018.02.21 23:05:20 4: signalduino_0_433/msg READ: MU;P0=164;P1=-2070;P2=376;P3=-4131;P4=-9140;P5=-27472;D=012121212321212123232124212323212121232125;CP=2;R=220;
2018.02.21 23:05:20 4: signalduino_0_433/msg READ: MS;P1=368;P2=-2074;P3=-4134;P4=-9134;P6=192;D=14121313121212131212131312121313121213631313131313131212121213121212131312;CP=1;SP=4;R=219;
2018.02.21 23:05:20 4: signalduino_0_433/msg READ: MU;P0=184;P1=-2083;P2=345;P3=-4161;P4=-9168;P5=112;D=0121212323212421232321212123212123232121232321215;CP=2;R=220;
2018.02.21 23:05:20 4: signalduino_0_433/msg READ: MU;P0=226;P1=-4135;P2=373;P3=-2155;P4=-9128;D=01212121212121212323232321232323212123240;CP=2;R=220;
2018.02.21 23:05:24 4: signalduino_0_433/msg READ: MU;P0=-3934;P1=472;P2=-580;P3=356;P4=-1965;P5=140;P6=-21396;D=0121234101410101410101414101014141414141456;CP=1;R=229;
2018.02.21 23:05:24 4: signalduino_0_433/msg READ: MS;P0=-1972;P2=-3938;P3=463;P4=-9188;P5=331;D=34503230323230323230303232303030303030303030303032303030323030323032303230;CP=3;SP=4;R=230;O;
2018.02.21 23:05:24 4: signalduino_0_433/msg READ: MS;P0=-1978;P1=454;P2=-3934;P3=-9134;P4=338;D=13401210121210121210101212101010101010101010101012101010121010121012101210;CP=1;SP=3;R=227;
2018.02.21 23:05:35 4: signalduino_0_433/keepalive ok, retry = 0
2018.02.21 23:05:53 4: signalduino_0_433/msg READ: MU;P0=-29540;P1=904;P2=-1044;P3=-552;P4=427;D=0121213434243134342124343434312134342124312124313424312434313434243434343434312431342434343134212434312124313434212124313421212434;CP=4;R=225;
2018.02.21 23:05:53 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:05:53 5: signalduino_0_433: start pattern for MU Protocol id 16 -> Dooya shutter mismatches, aborting
2018.02.21 23:05:53 4: signalduino_0_433/msg READ: MU;P0=-2504;P1=909;P2=-1043;P3=-551;P4=421;D=01212134342431343421243434343121343421243121243431243124343134342434343434343124313424343431342124343121243134342124343431243431243434;CP=4;R=225;
2018.02.21 23:05:53 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:05:53 5: signalduino_0_433: start pattern for MU Protocol id 16 -> Dooya shutter mismatches, aborting
2018.02.21 23:05:53 4: signalduino_0_433/msg READ: MU;P0=-1012;P1=919;P3=-570;P4=402;P5=156;P6=-22964;P7=112;D=0101013434043134340104343434310134340104356507013404343431340104343101043134340101340134340434343434;CP=4;R=222;
2018.02.21 23:05:53 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:05:53 5: signalduino_0_433: start pattern for MU Protocol id 16 -> Dooya shutter mismatches, aborting
2018.02.21 23:05:55 4: signalduino_0_433/msg READ: MU;P0=-28520;P1=362;P2=-2108;P3=-4139;P5=-9148;P6=204;D=012131312121213121213131213121312121313131313131313121212121312121312131215126;CP=1;R=217;
2018.02.21 23:05:55 4: signalduino_0_433/msg READ: MU;P0=134;P1=-4156;P2=366;P3=-2069;P4=-31936;P5=-9156;D=012123232321232321212321232123232121212124232321232123252321212323232123232121232123210;CP=2;R=221;
2018.02.21 23:05:55 4: signalduino_0_433/msg READ: MU;P0=204;P1=-2074;P2=368;P3=-4151;P4=-9136;P5=132;D=01212323232323232323212121212321212321232124212323212121232121232321232123212123232323232323235;CP=2;R=219;
2018.02.21 23:05:56 4: signalduino_0_433/msg READ: MS;P1=-2129;P2=366;P3=-4135;P4=-9146;D=24212323212121232121232321232123212123232323232323232121212123212123212321;CP=2;SP=4;R=221;
2018.02.21 23:05:59 4: signalduino_0_433/msg READ: MS;P1=447;P3=337;P4=-1986;P5=-3942;P6=-9189;D=16341514151514151514141515141414141414141414141415141414151414151415141514;CP=1;SP=6;R=229;O;
2018.02.21 23:05:59 4: signalduino_0_433/msg READ: MS;P0=-1971;P1=474;P2=-3933;P3=-9204;P4=330;D=13401210121210121210101212101010101010101010101012101010121010121012101210;CP=1;SP=3;R=228;O;
2018.02.21 23:06:30 4: signalduino_0_433/msg READ: MU;P0=-25388;P1=359;P2=-2064;P3=-4150;P5=208;D=012131312121213121213131213121312121313135;CP=1;R=216;
2018.02.21 23:06:30 4: signalduino_0_433/msg READ: MU;P0=96;P1=-4140;P2=386;P3=-2067;P4=256;P5=-9164;P6=140;D=0121212121232323232123234123212325232121232323212323212123212321236;CP=2;R=220;
2018.02.21 23:06:30 4: signalduino_0_433/msg READ: MU;P0=140;P1=-4152;P2=367;P3=-2071;P4=-27500;D=012323232123232121232123212323212121212124;CP=2;R=220;
2018.02.21 23:06:30 4: signalduino_0_433/msg READ: MS;P1=-2100;P2=358;P3=-9166;P4=-4164;D=23212424212121242121242421242124212124242424242424242121212124212124212421;CP=2;SP=3;R=220;
2018.02.21 23:06:31 4: signalduino_0_433/msg READ: MU;P0=158;P1=-2063;P2=370;P3=-4138;P4=-9140;D=01212121232121232123212421232321212123212123232123212321212323232323232323212121210;CP=2;R=221;
2018.02.21 23:06:31 4: signalduino_0_433/msg READ: MU;P0=160;P1=-4141;P2=376;P3=-2070;P4=-9168;P5=-29524;D=0123232123212324232121232323212323212123252121212121232323232123232123210;CP=2;R=220;
2018.02.21 23:06:33 4: signalduino_0_433/msg READ: MU;P0=-9140;P1=702;P2=-376;P3=341;P4=-732;P5=4726;P6=-1546;D=01234123434343434341212341234341212121212343434343434341234343412343434125634123434123412343434343434121234123434121212121234343434343434123434341234343412563412343412341234343434343412123412343412121212123434343434343412343434123434341;CP=3;R=15;
2018.02.21 23:06:33 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:06:33 5: signalduino_0_433: Starting demodulation at Position 75
2018.02.21 23:06:33 5: signalduino_0_433: dispatching bits: 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1
2018.02.21 23:06:33 4: signalduino_0_433: decoded matched MU Protocol id 16 dmsg P16#4A069F0111 length 40 RSSI = -66.5
2018.02.21 23:06:33 5: signalduino_0_433 Dispatch: P16#4A069F0111, test ungleich: disabled
2018.02.21 23:06:33 5: signalduino_0_433 Dispatch: P16#4A069F0111, -66.5 dB, dispatch
2018.02.21 23:06:33 5: signalduino_0_433: dispatch P16#4A069F0111
2018.02.21 23:06:33 4: Dooya_Parse: rawData = 4A069F0111 length: 10
2018.02.21 23:06:33 4: Dooya_Parse: converted to bits: 0100101000000110100111110000000100010001
2018.02.21 23:06:33 4: Dooya_Parse: device ID: 0100101000000110100111110000
2018.02.21 23:06:33 4: Dooya_Parse: Channel: 1
2018.02.21 23:06:33 4: Dooya_Parse: Cmd: 0001  Newstate: off
2018.02.21 23:06:33 4: Dooya_Parse: deviceCode: 0100101000000110100111110000_1
2018.02.21 23:06:33 3: Dooya_set: handled command off --> move :off:  newState :0:
2018.02.21 23:06:33 4: signalduino_0_433/msg READ: MU;P0=-1552;P1=335;P2=-5928;P4=-746;P5=687;P6=-396;P7=4717;D=01214561414561456141414141414565614561414565656565614141414141414561414145614141456701456141456145614141414141456561456141456565656561414141414141456141414561414145670145614145614561414141414145656145614145656565656141414141414145614141456141414567014561;CP=1;R=15;O;
2018.02.21 23:06:33 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:06:33 5: signalduino_0_433: Starting demodulation at Position 85
2018.02.21 23:06:33 5: signalduino_0_433: dispatching bits: 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1
2018.02.21 23:06:33 4: signalduino_0_433: decoded matched MU Protocol id 16 dmsg P16#4A069F0111 length 40 RSSI = -66.5
2018.02.21 23:06:33 5: signalduino_0_433 Dispatch: P16#4A069F0111, test gleich
2018.02.21 23:06:33 4: signalduino_0_433 Dispatch: P16#4A069F0111, Dropped due to short time or equal msg
2018.02.21 23:06:33 4: signalduino_0_433/msg READ: MU;P0=-734;P1=338;P2=701;P3=-385;D=010231023101010101010232310231010232323232310101010;CP=1;R=15;
2018.02.21 23:06:33 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:06:33 5: signalduino_0_433: start pattern for MU Protocol id 16 -> Dooya shutter mismatches, aborting
2018.02.21 23:06:34 4: signalduino_0_433/msg READ: MU;P0=-378;P1=335;P2=-740;P3=696;P4=4736;P5=-1548;D=01212301230121212121212303012301212303030303012121212121212301212123030303012451230121230123012121212121230301230121230303030301212121212121230121212303030301;CP=1;R=15;
2018.02.21 23:06:34 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:06:34 5: signalduino_0_433: Starting demodulation at Position 79
2018.02.21 23:06:34 5: signalduino_0_433: dispatching bits: 0 1 0 0 1 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 1 1 0
2018.02.21 23:06:34 4: signalduino_0_433: decoded matched MU Protocol id 16 dmsg P16#4A069F011E length 40 RSSI = -66.5
2018.02.21 23:06:34 5: signalduino_0_433 Dispatch: P16#4A069F011E, test ungleich: disabled
2018.02.21 23:06:34 5: signalduino_0_433 Dispatch: P16#4A069F011E, -66.5 dB, dispatch
2018.02.21 23:06:34 5: signalduino_0_433: dispatch P16#4A069F011E
2018.02.21 23:06:34 4: Dooya_Parse: rawData = 4A069F011E length: 10
2018.02.21 23:06:34 4: Dooya_Parse: converted to bits: 0100101000000110100111110000000100011110
2018.02.21 23:06:34 4: Dooya_Parse: device ID: 0100101000000110100111110000
2018.02.21 23:06:34 4: Dooya_Parse: Channel: 1
2018.02.21 23:06:34 4: Dooya_Parse: Cmd: 0001  Newstate: off
2018.02.21 23:06:34 4: Dooya_Parse: deviceCode: 0100101000000110100111110000_1
2018.02.21 23:06:34 3: Dooya_set: handled command off --> move :off:  newState :0:
2018.02.21 23:06:34 4: signalduino_0_433/msg READ: MU;P0=-13908;P1=108;P2=-2051;P3=445;P4=-3933;P5=-9172;P7=284;D=2323432343234323532343234343234343232347032321;CP=3;R=226;
2018.02.21 23:06:34 4: signalduino_0_433/msg READ: MS;P0=451;P1=-3926;P2=-1983;P3=-9139;P4=338;D=03420102010102010102020101020202020202020202020201020202010202010201020102;CP=0;SP=3;R=229;
2018.02.21 23:06:35 4: signalduino_0_433/keepalive ok, retry = 0
2018.02.21 23:06:36 4: signalduino_0_433/msg READ: MU;P0=-27732;P1=911;P2=-1038;P3=-579;P4=430;P5=164;P6=-16516;P7=114;D=0121213434243134342124343434312134342124356737;CP=4;R=226;
2018.02.21 23:06:36 4: signalduino_0_433/msg READ: MU;P0=112;P1=-561;P2=904;P3=-1058;P4=244;P5=415;D=01234121535151512153235151232351512153232;CP=5;R=223;
2018.02.21 23:06:36 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:06:36 5: signalduino_0_433: start pattern for MU Protocol id 16 -> Dooya shutter mismatches, aborting
2018.02.21 23:06:36 4: signalduino_0_433/msg READ: MU;P0=-1045;P1=917;P2=-533;P3=437;P4=136;D=012323010321010323210123032321232303232324;CP=3;R=226;
2018.02.21 23:06:36 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:06:36 5: signalduino_0_433: start pattern for MU Protocol id 16 -> Dooya shutter mismatches, aborting
2018.02.21 23:06:36 4: signalduino_0_433/msg READ: MU;P0=-559;P1=898;P2=-1063;P3=416;P4=156;P5=-22356;D=0121030323010303212303030301210303212301245;CP=3;R=222;
2018.02.21 23:06:36 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:06:36 5: signalduino_0_433: start pattern for MU Protocol id 16 -> Dooya shutter mismatches, aborting
2018.02.21 23:06:36 4: signalduino_0_433/msg READ: MU;P0=92;P1=-1008;P2=156;P4=427;P5=-535;P6=914;D=01214545456541614545616145456541616541654545454545414;CP=4;R=225;
2018.02.21 23:06:36 4: signalduino_0_433: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2018.02.21 23:06:36 5: signalduino_0_433: start pattern for MU Protocol id 16 -> Dooya shutter mismatches, aborting




plin

Hallo,

meine Rollladenmotoren nutzen das RIO-Funksystem. Nach Angabe des Herstellers ist es ein hauseigenes Protokoll, keiner der bekannten Standards. Die Frequenz ist 868 MHz. Sowohl auf dem Motor als auch der Fernbedienung ist RC15 angegeben. Ich habe eine Fernbedienung für max. 8 Motoren vom Typ HS 8 RIO im Einsatz. Ziel ist es die Rollläden über FHEM anzusteuern.

Ich habe einen V 3.3.1-dev SIGNALduino cc1101 - compiled at Mar 10 2017 22:54:50 im Einsatz. Der cc1101 ist die kleine 868 MHz-Version mit der gewendelten Antenne.
ccconf: freq:868.000MHz bWidth:650KHz rAmpl:42dB sens:4dB (DataRate:5603.79Baud)

Ich habe viele Mitschnitte dessen gesammelt, was meine mitgelieferte Fernbedienung lt. SIGNALduino aussendet, auf github gepostet und erste hilfreiche Hinweise bekommen.

Die Sender senden ein Protokoll das vom SIGNALduino als MU halbwegs brauchbar verarbeitet werden kann.

Die Mitschnitte zeigen ein Format
P0=-32001;P1=15874;P2=-364;P3=447;P4=4060;P5=-762;P6=853;D=0123232323232323232323232453265326535326535326265353262653265353535326265353265326262653265326265353535353532653535353262653265353265353535353535353532626;

Ralf9 hat mich auf die Spur gebracht, dass die Sequenzen mit einer Präambel "01232323232323232323232324" beginnen und danach ein sich wiederholender Steuercode kommt. Senden kann man so etwas mit
set mySIGNALduino raw SC;;SR;;P0=-32001;;P1=15874;;D=01;;SR;;R=20;;P0=-32001;;P1=15874;;P2=-364;;P3=447;;P4=4060;;P5=-762;;P6=853;;D=23232323232323232323232453265326535326535326265353262653265353535326265353265326262653265326265353535353532653535353262653265353265353535353535353532626;;

Ich habe die Mitschnitte unter dem Blickwinkel einer sauberen Präambel analysiert/gefiltert und den rohen Steuercode extrahiert. Der Parameterblock unterscheidet sich von Command zu Command, scheint aber als Grundraster so etwas in der Größenordnung wie
P0=-32000;P1=16000;P2=-400;P3=400;P4=4000;P5=-800;P6=800
zu haben. Wenn ich die real gemessenen Parameter mit den Zahlen des Steuercodes ausmultipliziere, komme ich immer auf ca. 90 mSec. Ich scheine also auf einem brauchbaren Weg zu sein.

Die Liste der vermutlich brauchbaren Codes habe ich per Script durchgetestet und die extrahiert, bei denen der Rollladenmotor reagierte. Das gab dann sozusagen die Erstaussattung der Steuercodes.

Als erstes habe ich dann festgestellt, dass vom Obergeschoss aus der entfernteste Rollladenmotor nicht reagierte. Eine Verlagerung meines Raspi mit dem SIGNALduino (=keine Betondecke mehr) brachte den Erfolg. Die Sendeleistung habe ich vorsorglich auf 10dB erhöht.

Ich beobachte ferner, dass die Rollladenmotoren nicht stabil reagieren. Verschiedene Standorte des Raspi/SIGNALduino im Erdgeschoss, teils Antenne nach oben gerichtet, teils horizontal, brachten unterschiedliche Ergebnisse. Den Wiederholungsfaktor für den Steuercode muss ich teilweise auf 30-50 erhöhen (50 = 5 Sekunden senden). Außerdem habe ich das Gefühl, als ob der SIGNALdunio bei zuviel Last den Sendebtetrieb einstellt. Führe ich denselben Befehl Stunden später aus reagiert der Rollladenmotor.

Nun meine Fragen:

  • Sendet der SIGANLduino/cc1101 jedes Mal wenn er senden soll oder gibt es Beschränkungen, um den Funkverkehr in innerhalb legaler Grenzen zu halten?
  • Welche Richtcharakteristik hat die Wendelantenne? Kugelförmig? Wie soll ich den SIGNALduino ausrichten?
  • Hat sich jemand mal mit den als MU mitgeschnittenen Sequenzen auseinandergesetzt und diese weiter analysiert?
  • Wie komme ich auf der Basis von nn brauchbaren Codes zu dem optiomalen, bei dem die Motoren jedesmal reagieren?

VG plin



FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB