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

Protokoll für RIO-Funksystem #210

Closed
plin2 opened this issue Jan 25, 2018 · 17 comments
Closed

Protokoll für RIO-Funksystem #210

plin2 opened this issue Jan 25, 2018 · 17 comments

Comments

@plin2
Copy link

plin2 commented Jan 25, 2018

Hallo,

meine Rolläden von der Fa. Specht nutzen das RIO-Funksystem. Nach deren Angabe 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.

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.

ccconf: freq:868.000MHz bWidth:650KHz rAmpl:42dB sens:4dB (DataRate:5603.79Baud)

Ziel ist es die Rolläden über FHEM anzusteuern.

Den Auszug aus dem FHEM-Log habe ich angehängt.

VG plin


swm3.txt

@plin2
Copy link
Author

plin2 commented Jan 28, 2018

Ich habe jetzt alle Kombinationen durchgespielt (8 Rollädenmotoren, jeweils up/stop/down) und ein Excel mit

  • allen gefundenen MC-String
  • allen gefunden MU-Strings
  • allen binär angelisteten empfangenen Daten
    angelegt.

Wie kann/solle man diese Code-Fragmente jetzt weiter analysieren?

@HomeAutoUser
Copy link
Contributor

Hallo,
stell bitte die Liste mal online und ich schaue mal drüber ob dein Grundgerüst verarbeitbar ist. Ich habe das bei mehrfachen Sensoren schonmal über den Weg gemacht aber dies ist schwer zu vereinheitlichen und zu erklären. Ein Blick darauf wäre sehr hilfreich.

Mfg

@plin2
Copy link
Author

plin2 commented Jan 28, 2018

Hier ist die Liste.
kommt gleich

Ein erster Versuch die Signale der Bitfolge mittels Korrelation zu analysieren sah für den ersten Rolladenmotor gut aus, beim zweiten fand ich aber die up/stop/down-Informationen nicht mehr wieder.

Ich habe dann mal für einen Rolladenmotor die komplette gefundene MC-Reihe durchprobiert:

MC;LL=-818;LH=790;SL=-421;SH=393;D=D56AAD556D5B56AAAAD56B5AAAAB4;C=403;L=115;R=60;
set mySIGNALduino raw SM;;R=3;;P0=500;;C=403;;D=D56AAD556D5B56AAAAD56B5AAAAB4

ohne Erfolg. Auf 433 MHz funkt er aber. Also kann es kein Hardware-Problem sein.

@plin2
Copy link
Author

plin2 commented Jan 28, 2018

Die Liste: RIO_Analyse.zip

@plin2
Copy link
Author

plin2 commented Jan 28, 2018

Die MU-Reihe führt auch nicht zum Erfolgt. Beispiel-Command:
set mySIGNALduino raw SR;;R=3;;MU;;P0=1007;;P1=-620;;P2=575;;P3=-216;;D=0123030303012123012121212301212121212121212301212;;CP=2;;R=52;;

@HomeAutoUser
Copy link
Contributor

Hallo,
ich habe mir mal deine Tabelle angesehen.

  1. nimm mal bitte die Zeiten mit rein vom Empfang.
  2. dein Anfang ist schonmal gut aber zu viel auf einmal.
    Zeichne das ganze mal neu auf mit maximal 3 Rolladen.
    Gehe am besten wie folgt vor, Rolladen 1 hoch, Rolladen 2 hoch, Rolladen 3 hoch.
    Dann wiederholst du das ganze mit dem Befehl runter unsw....
    Lass mir von dem ganzen dann einfachmal das Logfile bzw den Logfileauszug zukommen.

Am sichersten gehst du damit vor, das du mal den MS bzw MC Dekoder auslässt, nur MU aktiv.
Gern kannst du das selbige danach mit MS machen ABER beobachte mal bei aktiven MS + MU Dekoder ob es jeweils nur eine Art von Nachrichten ist. Sobald du siehst, es wechselt, mal MS mal MU bzw MC, dann nur mit einem aktiven Dekoder aufzeichnen.

Deine Daten würde ich dann mal in meine Vorlage nehmen und dir hier zukommen lassen.
Ich habe die Tabellen soweit aufgebohrt das du jedes einzelne Bit siehst aber natürlich, das es dies mir "ausrechnet" wenn ich das komplette Signal nur einmal hineinkopiere.

Vermutungen aus der Ferne:

  1. ich vermute das es kein MS ist
  2. du erhällst bei manchen Commandos ein O für Overflow.

Dein Versuch

set mySIGNALduino raw SR;;R=3;;MU;;P0=1007;;P1=-620;;P2=575;;P3=-216;;D=0123030303012123012121212301212121212121212301212;;CP=2;;R=52;;

stellt bestimmt ein Sendekomando dar, richtig?
Wenn ja, dann müssen wir erst sicherstellen das der Empfang richtig klappt.

@plin2
Copy link
Author

plin2 commented Jan 28, 2018

Hi und vorab ein kleines Dankeschön. Auf die schnelle die Log-Extrakte die Basis für das Excel waren.

logs.zip

Die separaten Logs pro Dekoder muss ich noch ziehen und werde die dann hochladen.

Ja, es war ein Sende-Versuch gemäß der Devise "ein Command passt viellecht".

@plin2
Copy link
Author

plin2 commented Jan 28, 2018

Dekoder-Statistik:

root@rasppi3:/opt/fhem/log# grep "MU;" fhem-2018-01.log | wc -l
3139
root@rasppi3:/opt/fhem/log# grep "MS;" fhem-2018-01.log | wc -l
244
root@rasppi3:/opt/fhem/log# grep "MC;" fhem-2018-01.log | wc -l
3336

@plin2
Copy link
Author

plin2 commented Jan 28, 2018

Hier nun die Logs für MU und MC für 3 Rolläden, auf MU hat der SIGNALduino nicht reagiert.

logsMU.zip
logsMC.zip

@Ralf9
Copy link
Contributor

Ralf9 commented Jan 28, 2018

Ich habe mir die MU Nachrichten mal angeschaut.
Wenn ich z.B. diese MU-Nachricht nehme und etwas umformatiere, bekomme ich sowas:

MU;P0=-32001;P1=92;P2=-350;P3=15908;P4=453;P5=4080;P6=-755;P7=864;D=01232424242424242424242424256427646427642727272764272764272727276464276464272727272764642727276464646464646464276464646427276427646427646464646464646464272723242424242424242424242425642764642764272727276427276427272727646427646427272727276464272727646464;CP=4;R=89;O;

01 23 2424242424242424242424 25 64276464276427272727642727642727272764642764642727272727646427272764646464646464642764646464272764276464276464646464646464642727
   23 2424242424242424242424 25 642764642764272727276427276427272727646427646427272727276464272727646464

Am Anfang ist eine preamble dann folgt ein sync (25) und dann die Daten (64 und 27)

@plin2
Copy link
Author

plin2 commented Jan 30, 2018

@Ralf9: hilft mir das schon daraus einen send raw-command abzuleiten?

@Ralf9
Copy link
Contributor

Ralf9 commented Jan 30, 2018

Es hilft soweit, daß damit der fehlende Teil am Ende der Nachricht ergänzt werden kann:

01 23 2424242424242424242424 25 64276464276427272727642727642727272764642764642727272727646427272764646464646464642764646464272764276464276464646464646464642727
   23 2424242424242424242424 25 64276464276427272727642727642727272764642764642727272727646427272764646464646464642764646464272764276464276464646464646464642727

Damit lässt sich dann ein send raw-command zusammen bauen. Es kann sein, daß das send raw-command für die Firmware die Du verwendest zu lang ist.
Mit dem SC command wird es kürzer.

SR;P0=-32001;P1=92;P2=-350;P3=15908;P4=453;P5=4080;P6=-755;P7=864;D=0123242424242424242424242425642764642764272727276427276427272727646427646427272727276464272727646464646464646427646464642727642764642764646464646464646427272324242424242424242424242564276464276427272727642727642727272764642764642727272727646427272764646464646464642764646464272764276464276464646464646464642727;
oder
SC;SR;P0=-32001;P1=92;D=01;SR;R=2;P2=-350;P3=15908;P4=453;P5=4080;P6=-755;P7=864;D=23 24242424242424242424242564276464276427272727642727642727272764642764642727272727646427272764646464646464642764646464272764276464276464646464646464642727;

Dies kann aber nur funktionieren, wenn kein rollingcode verwendet wird.

@plin2
Copy link
Author

plin2 commented Feb 3, 2018

@Ralf9: Ich sehe Land. Ich habe Deinen Hinweis weiter verfolgt und hatte zunächst keinen Erfolg. Bei einigen Tests fiel mir dann die Angabe R=56 in den empfangenen Nachrichten auf. Meine Versuche mit R=3 waren anscheinend einfach zu kurz (Erfahrung bei der manuellen Bedienung: eine gefühlte halbe Sekunde auf die Taste drücken). Ich habe jetzt folgenden Stand erreicht:

Rollade 7 up:
set mySIGNALduino raw SC;;SR;;R=55;;;;P0=-32001;;P1=116;;P2=-367;;P3=15872;;P4=448;;P5=4054;;P6=849;;P7=-763;;D=2324242424242424242424242526262626742626267474267474267426747474747426747474747474267426267426267474747474742674747474262674267474267474747474747474267426;;

Rollade 2 - Down:
set mySIGNALduino raw SC;;SR;;R=55;;P0=-32001;;P1=92;;P2=-350;;P3=15908;;P4=453;;P5=4080;;P6=-755;;P7=864;;D=23242424242424242424242425642764642764272727276427276427272727646427646427272727276464272727646464646464646427646464642727642764642764646464646464646427272;;

haben zumindest ein paar mal funktioniert (aber nicht immer). Die Frage ist nun: Muss ich die Parameter P0-P7 optimieren oder eher doch Vermutungen in Richtung rollierendem Code anstellen?

@plin2
Copy link
Author

plin2 commented Feb 3, 2018

Ein Motor weiter: Rollade 1 lässt sich mit

set mySIGNALduino raw SC;;SR;;R=10;;P0=866;;P1=112;;P2=-240;;P3=15942;;P4=-352;;P5=461;;P6=4080;;P7=-750;;D=234545454545454545454545467575757540754075754075404075754075404040404040407575757540404075757575757575757575407575757540407540757540757575757575757575404043454545454545454545454546757575754075407575407540407575407540404040404040757575754040407575757575;;

und

set mySIGNALduino raw SC;;SR;;R=10;;P0=-856;;P1=116;;P2=-200;;P3=15872;;P4=-446;;P5=354;;P6=3968;;P7=764;;D=234545454545454545454545464747470547050547050547474747050547050547050505470547474747474747050505050505050505470505050547470547050547050505050505050547054743454545454545454545454546474747054705054705054747474705054705054705050547054747474747474705050505;;

jedesmal ansteuern. Auf Codes mit preamble 23454545454545454545454546 reagiert Rollade 2 aber nicht.

@plin2
Copy link
Author

plin2 commented Feb 4, 2018

Aktueller Stand: 3 der 6 Motoren lassen sich relativ stabil ansteuern. Einige brauchten vorab einen "stop"-Command (um geweckt zu werden???).

evtl. noch ein Einflussfaktor: Ich habe drei Motoren in drei verschiedenen Leistungsstufen verbaut.

Der stärkste scheint recht stabil auf "P0=866;P1=112;P2=-240;P3=15942;P4=-352;P5=461;P6=4080;P7=-750" mit "D='23454545454545454545454546..." zu reagieren.

Beim mittleren Model bin ich mit den "P0=-32001;" im Code ganz gut gefahren. Das sind dann z.B. "P0=-324;P1=15804;P2=-477;P3=313;P4=3950;P5=-895;P6=737" mit "D=232323232323232323232324...".

Worauf soll ich mich bei der Suche nach den richtigen Codes konzentrieren?

  • Parameter die bei gleichartigen Motoren funktionieren?
  • Preamble "232323232323232323232324..."?
  • generischer: Preamble "23xyxyxyxyxyxyxyxyxyxyxz..."?

Da der erste Motor recht gut immer wieder auf den ersten Code reagiert würde ich rollierende Codes erst mal ausschließen.

@sidey79
Copy link
Contributor

sidey79 commented Aug 25, 2019

Hier hat sich schon lange nichts mehr getan. Ich schließe das Issue. Bitte wieder öffnen, wenn es noch benötigt wird.

@sidey79 sidey79 closed this as completed Aug 25, 2019
@plin2
Copy link
Author

plin2 commented Aug 26, 2019

Hallo sidey79, wie ich mittlerweile rausgefunden habe (siehe https://forum.fhem.de/index.php/topic,85006.0.html) funkt meine RIO-FB 2FSK. Aktuell tüftele ich noch mit cc101-Register via SIGNALduino auf 2FSK umschießen und einem LaCrosseGateway. Evtl. gibt's dann ein abschließendes Update ein diesem Thread.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants