FSK mit dem SIGNALDuino

Begonnen von Ralf9, 22 Dezember 2019, 17:30:36

Vorheriges Thema - Nächstes Thema

RaspII

RaspII

plin

Zitat von: RaspII am 28 Dezember 2019, 20:46:25
Gratulation !
Warten wir mal den morgigen Tag ab ... aber es gibt einem Hoffnung
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

plin

Ein paar Nachträge:

  • getestet wurde mit der SDUINO Version 3.4.0-dev
  • Die Struktur des zugrunde liegenden Original-Signals ist der Anlage zu entnehmen

Ich war mir nicht sicher, ob die Datenrate von 24.795 Baud im Konflikt zum  Nyquist-Shannon-Abtasttheorem stehen würde, da die eigentliche Datenrate aber 2.482 Baud beträgt scheint das trotzdem mit den 25 kHz Hub einherzugehen.
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

plin

#48
Alle relevanten Codes (6 Rolläden, jeweils down/stop/up) sind mitgeschnitten und in FHEM eingetragen (Modul ROLLO). Ergebnis: 66% Erfolgsquote. Up/Down funktioniert bei allen Rolläden, also eine deutliche qualitätive Verbesserung gegenüber dem OOK-Protokoll. Aber die Stop-Commands wollen irgendwie nicht. Zwischendurch musste ich öfters mal den SDUINO reseten, da er nicht mehr funken wollte.

Es geht also weiter.

Die Stop-Funktion im Modul ROLLO scheint Probleme zu bereiten. Wenn ich den Stop-Sommand in der Eingabezeile absetze klappt's ...
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

plin

Ich habe jetzt meine produktive FHEM-Instanz im Erdgeschoss umgestellt und alle 6 Rolläden bewegen sich auf FSK-Kommando runter bzw. hoch  ;D.

Mal schauen wie zuverlässig sich das in den nächsten Tagen wiederholen lässt.
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

plin

#50
So, Wiki ist nachgezogen https://wiki.fhem.de/wiki/Unbekannte_Funkprotokolle#SIGNALduino_-_FSK

Korrekturlesen steht noch aus. Wer mag kann gerne mithelfen und im Abschnitt noch nicht beantwortete Fragen stellen.

@Ralf: Im SIGNALduino-Modul bräuchten wir folgende Möglichkeiten:

  • Einstellung der Übertragungsart OOK/2-FSK/GFSK (Register 12, MDMCFG2  )
  • Einstellung Frequenzhub (Register 15, DEVIATN)
  • Einstellung Baudrate (Register 10 und 11, MDMCFG4/MDMCFG3)

Ciao, Peter

P.S. Der Abschnitt im Artikel liest sich als wenn's ganz einfach wäre ...
P.P.S. Und sie bewegen sich immer noch  :).
Stand 2.1.20: Und sie bewegen sich immer noch  :).
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

RaspII

Hi nochmal,
Ein paar Dinge sind mir persönlich noch nicht klar:


  • Deine FB (Rio) scheint ein Pulweiten kodiertes Signal zu nutzen, kurz Low & lang High = 0, lang Low & kurz High = 1, habe ich das richtig verstanden?
  • Das ist aber nicht der Standard bei FSK, es gibt auch Protokolle die direkt eine 0 bzw. eine 1 senden (gleiche Pulslängen), wie z.B. das von Kopp verwendete Protokoll
  • Die Rio Fernbedienung sendet ja einen Rolling Code, hattest Du den gesendeten Block schon komplett verstanden?
RaspII

elektron-bbs

Zitat von: RaspII am 30 Dezember 2019, 13:49:28
Das ist aber nicht der Standard bei FSK, es gibt auch Protokolle die direkt eine 0 bzw. eine 1 senden (gleiche Pulslängen), wie z.B. das von Kopp verwendete Protokoll

Wie muss ich mir da den Freqenzverlauf vorstellen?
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + LaCrosseGateway

RaspII

Der Frequenzverlauf (die beiden gesendeten Frequenzen) sind identisch, nur das Protokoll für die übertragenen Bits ist anders.
Es folgen ganz einfach die Bits (ohne Pulsweitencodierung), siehe Anhang.
Die Präambel ist identisch zu Deiner, danach geht's mit der einfachen Bitfolge (identischer Takt) weiter


RaspII

elektron-bbs

Es muss also mit einem festen, bekannten Takt (Baudrate) abgetastet werden, ähnlich wie bei RS232?
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + LaCrosseGateway

plin

#55
Zitat von: RaspII am 30 Dezember 2019, 13:49:28
Hi nochmal,
Ein paar Dinge sind mir persönlich noch nicht klar:

  • Deine FB (Rio) scheint ein Pulsweiten kodiertes Signal zu nutzen, kurz Low & lang High = 0, lang Low & kurz High = 1, habe ich das richtig verstanden?
Ja, das ist das Ergebnis meiner Analyse.

Zitat von: RaspII am 30 Dezember 2019, 13:49:28

  • Das ist aber nicht der Standard bei FSK, es gibt auch Protokolle die direkt eine 0 bzw. eine 1 senden (gleiche Pulslängen), wie z.B. das von Kopp verwendete Protokoll
Mein Weltbild sieht so aus: der CC1101 macht aus einer Pegelvorgabe 0/1 (die kommt vom Arduino) eine Frequenz. Alles andere was der CC1101 an Signalaufbereitung von Hause aus könnte haben wir ausgeschaltet. Er fungiert also nur als Modem bzw. Sender.

Bei OOK ist das

  • 0 = kein Signal
  • 1 = Signal auf der vorgegebenen Frequenz
Bei FSK ist das

  • 0 = vorgegebene Frequenz minus Hub (lt. DEVIATN)
  • 1 = vorgegebene Frequenz plus Hub (lt. DEVIATN)

Ich weiß nicht wer die RIO-Fernbedienung entwickelt hat und ob er sich der Standards bewusst war. Er hat mit den Möglichkeiten der Chips TDK5110 und TDA5210 gespielt.

Zitat von: RaspII am 30 Dezember 2019, 13:49:28

  • Die Rio Fernbedienung sendet ja einen Rolling Code, hattest Du den gesendeten Block schon komplett verstanden?
Ja, da gibt es einen Präfix. Der Begriff "Rolling Code" suggeriert aber, dass der sich nach jedem Tastendruck ändert und wenn du die Regeln des Codes nicht beachtest funkioniert er nicht. Daran glaube ich bei dem RIO-Code nicht. Der wird jedes Mal neu generiert oder setzt sich aus einem bekannten Set von Codes zusammen. Wichtig ist nur: Bei jedem Tastendruck wird eine neuer Code verwendet. Die mitgeschnittenen Sequenz sind bei mir immer iweder verwendbar.
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

plin

#56
Zitat von: elektron-bbs am 30 Dezember 2019, 17:44:50
Es muss also mit einem festen, bekannten Takt (Baudrate) abgetastet werden, ähnlich wie bei RS232?
feste Taktrate: ja
bekannte Taktrate: nicht unbedingt. Mindestens die tatsächliche Taktrate, vorzugsweise Oversampling
ähnlich wie bei RS232?: bei RS232 wird eine feste bekannte Taktrate verwendet die beide Partner verwenden

Oversampling steigert die Qualität der emittelten Parameter Px.
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

HomeAuto_User

#57
@Ralf,

du hast für den
ZitatMode 1 - IT+ 17.241 kbps
folgendes Register angegeben.
set sduino cc1101_reg 0001 012E 0246 0302 042D 05D4 06FF 0700 0802 0D21 0E65 0F6A 1089 115C 1206 1322 14F8 1556 1700 1818 1916 1B43 1C68 1D91 2210 23E9 242A 2500 2611
ccconf: freq:868.300MHz bWidth:203KHz rAmpl:42dB sens:4dB (DataRate:17257.69Baud, Modulation:2-FSK)

Hast du mit diesen Einstellungen schon mal etwas empfangen? Wenn ja, wie sehen die Daten aus?

Ich habe diese Testweise eingestellt und nichts erhalte ich diesbezüglich.

Wenn ich das Register

Configuration Register Detail (address, name, value):
0x00 IOCFG2   - 0x0D
0x01 IOCFG1   - 0x2E
0x02 IOCFG0   - 0x2D
0x03 FIFOTHR  - 0x47
0x04 SYNC1    - 0x00
0x05 SYNC0    - 0x00
0x06 PKTLEN   - 0x3D
0x07 PKTCTRL1 - 0x04
0x08 PKTCTRL0 - 0x32
0x09 ADDR     - 0x00
0x0A CHANNR   - 0x00
0x0B FSCTRL1  - 0x06
0x0C FSCTRL0  - 0x00
0x0D FREQ2    - 0x21
0x0E FREQ1    - 0x65
0x0F FREQ0    - 0x6A
0x10 MDMCFG4  - 0x89
0x11 MDMCFG3  - 0x5C
0x12 MDMCFG2  - 0x06
0x13 MDMCFG1  - 0x23
0x14 MDMCFG0  - 0xB9
0x15 DEVIATN  - 0x56
0x16 MCSM2    - 0x07
0x17 MCSM1    - 0x00
0x18 MCSM0    - 0x18
0x19 FOCCFG   - 0x14
0x1A BSCFG    - 0x6C
0x1B AGCCTRL2 - 0x07
0x1C AGCCTRL1 - 0x00
0x1D AGCCTRL0 - 0x90
0x1E WOREVT1  - 0x87
0x1F WOREVT0  - 0x6B
0x20 WORCTRL  - 0xF8
0x21 FREND1   - 0xB6
0x22 FREND0   - 0x10
0x23 FSCAL3   - 0xEC
0x24 FSCAL2   - 0x2A
0x25 FSCAL1   - 0x14
0x26 FSCAL0   - 0x11
0x27 RCCTRL1  - 0x41
0x28 RCCTRL0  - 0x00
0x29 FSTEST   - 0x59
0x2A PTEST    - 0x7F
0x2B AGCTEST  - 0x3F
0x2C TEST2    - 0x88
0x2D TEST1    - 0x31
0x2E TEST0    - 0x0B

einspiele erhalte ich wieder Nachrichten in dem Intervall.
ccconf: freq:868.300MHz bWidth:203KHz rAmpl:42dB sens:4dB (DataRate:17257.69Baud, Modulation:2-FSK)

Mfg und Gesundes Neues
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

Ralf9

#58
ZitatHast du mit diesen Einstellungen schon mal etwas empfangen?
Diese Register habe ich von der a-culw.
Mit "Nr1" den Mode1 aktivieren und dann mit "C99" die Register auslesen.

Damit funktioniert das Auslesen über den FIFO des cc1101 zuverlässig.
Ich bekomme damit alle 5 Sekunden eine Nachricht vom TX29DTH-IT
90264430DAAAAA00000BCAB2
90264430DAAAAA00001A37A6
90264431EBAAAA00001422D5
91264632FAAAAA000032387C
91264632FAAAAA000027F65C


und dieser Form können sie dann vom Signalduino Modul weiterverarbeitet werden.
MN;D=90264430DAAAAA00000BCAB2;
MN;D=90264430DAAAAA00001A37A6;
MN;D=90264431EBAAAA00001422D5;

Ich habe mir schon darüber Gedanken gemacht welche Anpassungen und Erweiterungen im Signalduino Modul gemacht werden müssen.

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

HomeAuto_User

Danke für die Info,
ich habe mir soeben nochmal die Einstellungen eingespielt.
Deine Aussage kann ich mit den Daten auf jedenfall verifizieren. Aller 5 Sekunden nicht aber dafür habe ich hier um so mehr Sensoren.

Ich habe mir schon darüber Gedanken gemacht welche Anpassungen und Erweiterungen im Signalduino Modul gemacht werden müssen.

Ich denke mal, das müsste man dann von dem Mode abhängig machen. Wenn der Mode Lacose eingestellt ist, so dann die Daten zum Modul weiterschicken oder welche Idee hast du ?
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet