SIGNALDuino - Analyse unbekannter Funkprotokolle

Begonnen von plin, 26 Februar 2018, 17:42:45

Vorheriges Thema - Nächstes Thema

habeIchVergessen

#15
Logic Analyse ggf. könntest du damit zusätzlich Informationen erarbeiten.
@Sidey: läuft das auch mit cc1101 (CUL/ESP)? @plin: du hattest nur die SW-Version gepostet. welche HW benutzt du?

oder (RTL)SDR (Funkanalyse mit DVB-T Stick).


SR;;R=5;;P0=-800;;P1=400;;P2=-400;;P3=800;;P4=4000;;P5=-14000;;P6=14000;;D=6212121212121212121212124012323232323010101012301012323012323012301230123232323012301230101232301010101012301010123012323012301012301010101010101012301235;;

plin

Zitat von: habeIchVergessen am 27 Februar 2018, 21:12:54
@plin: du hattest nur die SW-Version gepostet. welche HW benutzt du?
Arduino nano und cc1101 (868 MHz)
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

Sidey

Zitat von: plin am 27 Februar 2018, 20:48:57
Sagt mir nix
https://github.com/RFD-FHEM/Logikanalyse

Ich muss zugeben, nicht wirklich super gut dokumentiert, aber Du kannst mit der SIGNALduino Hardware damit ein sehr einfasches Oszioskop herstellen.

Um mal den Funkverkehr grafisch zu sehen ganz gut.
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

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

plin

Zitat von: Sidey am 27 Februar 2018, 22:29:56
https://github.com/RFD-FHEM/Logikanalyse
Ich muss zugeben, nicht wirklich super gut dokumentiert, aber Du kannst mit der SIGNALduino Hardware damit ein sehr einfasches Oszioskop herstellen.
Um mal den Funkverkehr grafisch zu sehen ganz gut.
Danke für den Tipp. Mein zweiter cc1101 sollte wohl in Kürze eintreffen.
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

Sidey

Du brauchst dafür keinen 2. Empfänger.
Du kannst einen 2. Arduino an den vorhandenen Empfänger anbinden oder für das Aufzeichnen den vorhandenen Arduino umflashen.
Gruß Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

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

habeIchVergessen

initialisiert LogikAnalyse einen cc1101? ich würde meinen, dass dem nicht so ist! demnach ist es für die vorliegende HW ungeeignet.

Sidey

Wenn der cc1101 einmal mit der Signalduino Firmware eingerichtet wurde, dann kann er auch mit der Logikalyse verwendet werden.
Wichtig ist ja für die Logiganalyse nur, dass irgend ein Empfänger den Interrupt Pin auslöst.

Ablauf in etwa so:

1. Signalduino FW flashen
2. CC1101 konfigurieren (z.B. Frequenz, Bandbreite)
3. Logikanalyse FW / Code flashen
4. Daten aufzeichen, speichern und analyiseren
5. Signalduino FW flashen
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

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

habeIchVergessen


plin

Kurzer Zwischenstand: Ich habe soeben meinen zweiten SIGNALduino fertig zusammengelötet. Erste Erkenntnisse:

  • Was der eine sendet interpretiert der andere ganz anders
  • Die "sicheren" Codes des alten führen bei dem neuen zu keiner Aktion der Motoren
Es gilt also jetzt viele Varianten durchzuspielen, um rauszukriegen welchen Einfluss

  • die Hardware,
  • die Sendeleistung,
  • die Positionierung Raspi vs. Rollladenmotor
hat.

Kann ich eigentlich irgendwie die Feldstärke des empfangenen Signals auslesen? Das würde mir frei der Fragestellung "Welche Richtcharakteristik hat die Antenne?" und "Wieviel kommt noch beim entferntesten Motor an?" helfen.

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

habeIchVergessen

RSSI sollte mit ausgegeben werden.

frag mal ccconf ab und vergleiche beide sduinos.
was der eine sendet sollte der andere empfangen können.

RaspiLED

Aber nur in zwei unterschiedlichen FHEM Instanzen, sonst schlägt die Dublettenprüfung zu, oder?
Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

plin

Zitat von: habeIchVergessen am 06 März 2018, 18:38:06
RSSI sollte mit ausgegeben werden.
Ist das R= am Ende der MU-Sequenz?

Zitat von: habeIchVergessen am 06 März 2018, 18:38:06
frag mal ccconf ab und vergleiche beide sduinos.
was der eine sendet sollte der andere empfangen können.

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

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

der neue sendet:
2018.03.06 19:46:07 4: mySIGNALduino SendrawFromQueue: msg=SC;SR;P0=-32001;P1=15860;D=01;SR;R=10;P0=-32001;P1=15860;P2=-398;P3=412;P4=3998;P5=822;P6=-800;D=23232323232323232323232425636363252563636363252525252525636325636363636325632563252525636363636363636363632563636363252563256363256363636363636363256325;

der alte versteht:
2018.03.06 19:46:08 4: mySIGNALduino/msg READ: MU;P0=-31978;P1=808;P2=-397;P3=397;P4=4002;P5=-812;P6=15872;D=01212123232323232323232324215353532121535353532121212121215353215353535353215321532121215353535353535353535321535353532121532153532153535353535353532153210623232323232323232323232421535353212153535353212121212121535321535353535321532153212121535353535353;CP=3;R=45;O;


nach dem Recoding der Parameter auf die alten Eckwerte (optimal: P0=-32000;P1=16000;P2=-400;P3=400;P4=4000;P5=-800;P6=800):
P0=-31978;P1=16000;P2=-397;P3=397;P4=4002;P5=-812;P6=808;D=06262623232323232323232324265353532626535353532626262626265353265353535353265326532626265353535353535353535326535353532626532653532653535353535353532653260623232323232323232323232426535353262653535353262626262626535326535353535326532653262626535353535353;

direkter Vergleich der Kernsequenz (musste nachträglich aus der 6 noch eine 1 machen):
23232323232323232324215353532121535353532121212121215353215353535353215321532121215353535353535353535321535353532121532153532153535353535353532153210123232323232323232323232421535353212153535353212121212121535321535353535321532153212121535353535353
23232323232323232324215353532121535353532121212121215353215353535353215321532121215353535353535353535321535353532121532153532153535353535353532153210123232323232323232323232421535353212153535353212121212121535321535353535321532153212121535353535353


Gute Nachricht: Der alte teilt nur die Parameter anders zu, inhaltlich sind die Sequenzen aber identisch.

Was ist nun der Unterschied? Der alte SIGNALduino/die Rollläden sind im Erdgeschoss, der neue SIGNALduino im ersten OG.
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

habeIchVergessen

ich würde noch etwas Aufwand in die Beobachtung der Frequenzen stecken.

868MHz und 650kHz Bandwidth meint ja von 867,350 MHz bis 868,650MHz beim Empfang (sofern ich mich nicht irre).
Da jetzt 2 cc1101 da sind, kannst du mit der FB senden und mit unterschiedlichen Konfigurationen empfangen.
- 1x 868MHz und 650kHz
- 1x 867,5/868,5MHz und 320kHz (wenn empfangen wird, dann als neue Konfiguration oben benutzen und BW weiter reduzieren)
Damit sollte sich die Frequenz mit einigen Durchläufen konkretisieren lassen.

die ermittelte Frequenz kann dann beim Senden explizit angegeben werden (F=).


SR;;R=5;;P0=-16000;;P1=16000;;P2=-398;;P3=412;;P4=3998;;P5=822;;P6=-800;;D=00123232323232323232323232425636363252563636363252525252525636325636363636325632563252525636363636363636363632563636363252563256363256363636363636363256325;;


in R= steckt das Hardware-Byte für den RSSI-Wert. Dieser wird noch durch SIGNALduino konvertiert (also am device nachschauen).

plin

@habeIchVergessen:
Ich habe gerade in einem der Ur-Threads zum SIGNALduino ein Statement von Ralf9 gelesen, dass die 1% Regel zu beachten ist. Weißt Du, ob im Code des SIGNALdunio eine Sperre programmiert ist, wenn man die 1% überschreitet? Das würde erklären, wieso ich nach diversen Tests keine Motor-Reaktion habe, die Motoren aber am nächsten Morgen aber problemlos auf denselben Code ansprechen.
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

habeIchVergessen

kenne ich nur von Max!.
vermutlich wird über den variablen Teil "nur" zwischen einzelnen Tastendrücken unterschieden. die FB benutzt ja auch Wiederholungen. Kann mir nicht vorstellen, dass mehr Logik im Rollo steckt, als unbedingt nötig.
Was passiert, wenn der Strom beim Rollo abgeklemmt wird? musst du neu anlernen?