Thomson doorbell signal cannot be seen.
Opened this issue · 37 comments
Expected Behavior
Button push of Thomson doorbell (datasheet or this) creates a log entry by SIGNALduino loglevel 5.
Actual Behavior
No log entry to be found.
Steps to Reproduce the Problem
- (Optionally) install doorbell.
- Push button. <-- item does not need a battery, probably works by energy harvesting
- Find empty log.
Specifications
- Microcontroller: SIGNALduino ESPCC1101
- Version (Firmware): 3.4.0
- Versionmodul (FHEM Module): 3.5.1
I set loglevel to 5 and bandwidth to max on default frequency (433.92). According to seller's page and second datasheet it uses 433.92 Mhz. Anything I could try?
So ein ähnliches Teil hatte ich auch schonmal in den Fingern und konnte es mit dem SIGNALduino auch nicht empfangen. Du kannst das nur mal mit einem SDR und URH probieren, was das Teil überhaupt sendet.
Hab leider kein SDR... gibt es für den CC1101 vielleicht so etwas wie den promiscuous mode oder zeigt SignalDuino bereits alles an, was der CC1101 so empfangen kann?
Der SignalDuino zeigt alles an, was einem Muster entspricht.
Er zeigt nur die Sachen nicht an, die er auch überhaupt nicht als Datenübertragung erkennt, in der Regel rauschen.
@TheChatty, heute habe ich eine ähnliche Bell zum Empfang mit dem SIGNALduino hinbekommen.
Du könntest mal ggf. die Register bei dir setzen und schauen ob du vielleicht auch etwas empfängst.
Schade dass du kein SDR besitzt, dieser brachte mir heute auch die Erleuchtung :-)
Welche Register sollte ich denn wie setzen?
Welche Register sollte ich denn wie setzen?
Teste einfach mal diese.
0001 0246 0301 0484 0534 06FF 0784 0802 0D10 0EAA 0F56 108A 11F8 1202 1322 14F8 1551 1916 1B43 1C40 20FB 2156 2210
Vorher ein ccconf um zu sehen ob die Einstellungen übernommen worden. (eventuell hier posten)
Danach auf Verbose 4 stellen und testen ob durch Zufall was "durch" kommt.
Leider könnte eventuell bei Dir ein anderer Sync oder Preamble vorhaben sein. Schau einfach mal.
Also bisher sieht es so aus:
Configuration register overview:
---------------------------------------------------------
ccreg 00: 0D 2E 2D 47 D3 91 3D 04 32 00 00 06 00 10 B0 71
ccreg 10: 57 C4 30 23 B9 00 07 00 18 14 6C 07 00 91 87 6B
ccreg 20: F8 B6 11 EF 2C 19 1F 41 00 59 7F 3F 88 31 0B
Die Beschreibung aller Register muss mir erstmal erklären, was deine obige Config alles so macht. Wie bist du auf diese gekommen? Sollte ich diese so am Stück probieren? Bleiben die Einstellung nach einem Strom-Reset erhalten oder funktioniert der Chip danach wie gewohnt?
@TheChatty
du kannst die Register wie hier geschrieben #946 (comment)
mit dem Befehl cc1101_reg
setzen.
Ein ccreg 99
gibt dir nach Abschluss des Schreibens Aufschluss ob diese gesetzt sind.
Die Beschreibung aller Register muss mir erstmal erklären, was deine obige Config alles so macht.
Die Register versetzen den cc1101 in den FSK Modus zum empfangen auf 433.3 Mhz wo die Hardware sendet.
Wie bist du auf diese gekommen?
Ich habe mir die Hardware genommen und ein Signal via SDR und UniversalRadioHacker aufgezeichnet. Danach habe ich es analysiert und mit dem cc1101 TI Programm die Settings herausgesucht.
Nachdem ich nochmal deinen Faden gelesen hatte, so konnte ich Hardware auftreiben von einem Hersteller, welche deiner ähnelt. Da das innere meist gleich ist, so habe ich es zum Anlass genommen zu suchen :-)
Das Einzige, was sein kann, das deine Bell eine andere "Startkennung" sendet aber würden wir nur mit dem SDR herausbekommen. .... oder du spendest mir einen Zuschuss, das ich mit bei Hornbach die Hardware kaufe grins - SCHERZ
Bleiben die Einstellung nach einem Strom-Reset erhalten oder funktioniert der Chip danach wie gewohnt?
Die Einstellung des cc1101 bleibt nach einem Stromausfall erhalten.
Tja...
# set sduino cc1101_reg 0001 0246 0301 0484 0534 06FF 0784 0802 0D10 0EAA 0F56 108A 11F8 1202 1322 14F8 1551 1916 1B43 1C40 20FB 2156 2210
# get sduino ccreg 99
Configuration register overview:
---------------------------------------------------------
ccreg 00: 01 2E 46 01 84 34 FF 84 02 00 00 06 00 10 AA 56
ccreg 10: 8A F8 02 22 F8 51 07 00 18 16 6C 43 40 91 87 6B
ccreg 20: FB 56 10 EF 2C 18 1F 41 00 59 7F 3E 88 31 0B
# attr sduino verbose 4
Aber leider kommt nichts an...
Kann man mit dem ESP+CC1101 SmartRF Studio benutzen oder hast du so ein eval board?
Aber leider kommt nichts an...
Dann hilft nur das Rohsignal. Das wirst du nur mit einem SDR Stick erhalten und nicht mit dem cc1101. Deine Bell wird kein OOK senden und da geht nur der "große Weg" über Hilfsmittel.
Du kannst SmartRF Studio nicht direkt mit dem ESP+cc1101 nutzen. Ich nutze dieses um die Einstellungen richtig vorzunehmen und um die Register passend zu exportieren.
Besitzt du einen DVB-T oder DVB-T2 Stick ?
Leider nein... würde dieser hier mit RTL2832U+R820T2 funktionieren?
Dieser sollte funktionieren. Wichtig ist ein RTL2832U
Zitat: " ...Diverse DVB-Sticks werden unterstützt. Jedoch sollte darauf geachtet werden, dass der RTL2832U Chip darin verbaut ist, der von den meisten SDR-Anwendungen vorausgesetzt wird. ..."
Solltest du einen erhalten haben, so könnten wir dir auf jedenfall so klarer helfen.
Du bekommst so die Frequenz heraus, ob etwas sendet oder nicht und vieles mehr.
Ich habe das Signal nun mit URH aufgezeichnet:
Das lässt stabil (mehrere Tastendrücke, gleiches Ergebnis) dekodieren zu ASK (1 MSps, 50 Sps/Symbol, 1 Bit/Symbol):
8 [Pause: 1548 samples]
8ee8eee8e8e888e8e888e88 [Pause: 1548 samples]
8ee8eee8e8e888e8e888e88 [Pause: 1548 samples]
8ee8eee8e8e888e8e888e88 [Pause: 1548 samples]
8ee8eee8e8e888e8e888e88 [Pause: 1548 samples]
8ee8eee00000
Bei der 5. Wiederholung geht vermutlich die durch den Tastendruck gesammelte Energie zur Neige.
Das ist doch schonmal ein Anfang @TheChatty .
Ist es möglich die Datenaufzeichnung als File anzuhängen?
@TheChatty
Danke für deine Mail.
Ich habe das ganze mir angesehen.
Würdest du mal bitte folgendes probieren.
-
den Empfänger mit
set <name> raw e
auf DEFAULT zu stellen -
den Verbose mit
attr <name> verbose 4
einzustellen -
mehrfach die Bell drücken
-
schauen im Logfile von FHEM was die Einträge sagen und posten
-
alternativ mal bitte ein Hardwarebild von deiner Hardware / mit cc1101
Der erste Blick sieht nach einem brauchbaren Signal aus.
@elektron-bbs / @sidey79 was ist das minimum Clockabs?
Ich empfange/sende erfolgreich mit meinen anderen 433 MHz Geräten. Auch nach (unnötigem) Reset und Antenne direkt neben der Klingel sehe ich keine raw-Nachricht der Klingel.
Ich habe die Aufzeichnung nochmal mit 3,2M Sps wiederholt (wohl das Maximum des RTL2832U?).
Doorbell.7z
Das sechsmalige Drücken ergab unterschiedliche Ergebnisse:
011011101010001001101001001001101001 [Pause: 4858 samples]
1001101101001101101101001101001101001001001101001101001001001101001 [Pause: 4952 samples]
1001101101001101101101001101001101001001001101001101001001001101001 [Pause: 4951 samples]
1001101101001101101101001101001101001001001101001100010 [Pause: 2444 samples]
0110111
----------------------------------------------------------------------------------------------------------------------
0110111010100010100010 [Pause: 2444 samples]
0110111010100010100010 [Pause: 2449 samples]
0110111010100010100011001 [Pause: 4952 samples]
1001101101001101101101001101001101001001001101001101001001001101001 [Pause: 4952 samples]
1001001101001101001001
----------------------------------------------------------------------------------------------------------------------
1 [Pause: 4952 samples]
1001101101001101101101001101001101001001001101001101001001001101001 [Pause: 4952 samples]
1001110111010100010100010 [Pause: 2491 samples]
0110111010100010100010 [Pause: 2508 samples]
0110111010100010100010 [Pause: 2359 samples]
1101101101010110110100110100110100100
----------------------------------------------------------------------------------------------------------------------
1 [Pause: 4952 samples]
100110110100110110110100110100110100100100110100010 [Pause: 2484 samples]
0110111010100010100010 [Pause: 2509 samples]
0110111010100010100010 [Pause: 2509 samples]
011011101010001001101001001001101001 [Pause: 4859 samples]
1001101101001101101101001101001101001001
----------------------------------------------------------------------------------------------------------------------
1 [Pause: 4200 samples]
011011100010100010 [Pause: 2449 samples]
0110111010100010100010 [Pause: 2474 samples]
0110111010100010100010 [Pause: 2874 samples]
1001101101001101101101001101001101001001001101001101001001001101001 [Pause: 4952 samples]
1001101101001101101101001101001101
----------------------------------------------------------------------------------------------------------------------
1 [Pause: 4950 samples]
100110110100111101101001101001101001001001101001101001001001101001 [Pause: 3143 samples]
0110111010100010100010 [Pause: 2461 samples]
0110111010100010100010 [Pause: 2444 samples]
0110111010100010100010 [Pause: 3855 samples]
10011011010011011011010011010011010010010011010011
Hallo @TheChatty,
ich habe mir einen Einblick verschafft.
Versuche mal bitte mit set <Empfängername> raw
SR;R=5;P0=150;P1=-50;P2=50;P3=-150;P4=-1550;D=4230101230101012301230123232301230123232301232;
ob deine Klingel bimmelt.
Empfangen ist eine Thematik für sich.
Die Hardwareverarbeitung ist vermutlich "langsamer" als das Signal (schnellere).
Es klingelt!
Perfekt!
Das spiegelt genau die Erkenntnisse wieder welche ich mit ähnlicher Hardware sammelte.
Jetzt ist es aber bei einer Klingel wichtiger, vom echten Klingeln zu erfahren, als selber klingeln zu können.
Sind denn Umbauten an SignalDuino erforderlich, damit es dann geht?
Wenn Du die firmware selber kompilieren kannst, sollte es reichen, wenn Du das
#define pulseMin 90
auf 45 oder 40 erniedrigst.
Das define ist in /src/signalesp.h oder beim nano in /src/signalduino.h
Bei meiner firmware ist es in SIGNALDuino.ino
Hallo @Ralf9 ,
leider reicht es nicht aus. Auf diese Überlegung kamen wir auch schon.
@TheChatty kann es gern probieren aber im Test mit 40 min oder sogar 35min geht es nicht.
@TheChatty , was ist dein „Wunsch“ der Umsetzung. Wolltest du die Klingel nur auswerten oder auch selbst klingeln ;)
Das selbst klingeln war eigentlich nur der ein Test, der dir und mir sagt, ob die Codes stimmen. Geplant war, die Klingel in HomeKit zu integrieren.
SignalDuino ist ja leider nicht für GitPod vorbereitet. Wenn du also ein ESP8266-Image mit pulseMin 45/40/35 hast, probiere ich mal. Die Frage ist, wie (sinnvoll) tief darf dieser Wert denn sein?
@TheChatty
Signalduino kannst du auch mit PIO kompilieren. Es geht :)
Unabhängig davon kann ich dir gern die FW kompilieren.
Es wäre interessant ob es sich genau so verhält wie die Tests ergaben, denn dann müssen wir die FW ggf beleuchten.
Habs getestet, mit pulseMin 35 (evtl reicht auch 40) und einer datarate von ca 10000 konnte ich dieses von einem anderen sduino empfangen:
SR;R=5;P0=150;P1=-50;P2=50;P3=-150;P4=-1550;D=4230101230101012301230123232301230123232301232;
Mit welchem Prozessor und welcher Firmware auf dem Empfänger?
Als Empfänger habe ich einen MapleMini mit meiner Firmware verwendet. Als Sender einen ESP32. Habe auch mal eine Minicul Hardware zum Senden verwendet, damit hats nicht so gut funktioniert wie mit dem ESP32.
So kleine Pulse sind für den sduino recht grenzwertig, Da spielen beim Arduino wahrscheinlich auch die Code Ausführungszeiten eine Rolle.
Evtl funktionierts mit pulseMin 30 besser.
Da spielen beim Arduino wahrscheinlich auch die Code Ausführungszeiten eine Rolle.
Evtl funktionierts mit pulseMin 30 besser.
Ein Esp8266 und Esp32 haben mit pulseMin30 schon Probleme. Da ist das Rauschen dann nur noch „Müllsignal“.
ich vermute der vollständige Aufbau beeinflusst dann das Ergebnis ebenso unterschiedlich.
Ein Performance Messung Code wäre vielleicht angebracht um sich einen Überblick zu verschaffen. So kann man ggf bewerten ob es ein reines Hardware“Problem“ ist oder der Code welcher anders beeinflusst.
Welcher (günstige) Chip hat denn genug Ressourcen für pulseMin<30?
Wenn ich richtig gegooglet habe verhält es sich so:
- Esp8266: 80 MHz
- Esp32: 240 MHz
- Arduino Nano: 16 MHz
- Arduino Pro Mini: 8 MHz
- STM32 F103CBT6: 72 MHz
@TheChatty
Thematisch dreht sich dieses Repository mehr um die FHEM Seite und nicht um die des uC.
Das Projekt stellt auch für den ESP32 eine vorcompilierte Firmware zur Verfügung:
https://github.com/RFD-FHEM/SIGNALDuino/releases
Mit ESP32 + PulseMin 30 + Datarate 10000 empfange ich je Klingeldruck folgende Nachricht:
2022.03.12 19:45:46 4: sduino32/msg READ: �MS;P0=140;P1=-46;P4=50;P5=-1539;P7=-151;D=4547010147010101470147014747470147014747470147;CP=4;SP=5;R=4;p;m0;�
2022.03.12 19:45:46 4: sduino32/msg READ: �MU;P0=-147;P1=147;P2=-56;P4=51;P5=-39;P7=-1549;CP=4;R=2;D=012124012121240154012404040124012404040124047401212401212124012401240404012401240404012;e;�
# schnell mehrfach gedrückt
2022.03.12 19:45:47 4: sduino32/msg READ: �MS;P0=52;P2=-1545;P3=-151;P4=138;P5=-55;P6=-36;P7=36;D=0203454603454545034573460303034503450303034603;CP=0;SP=2;R=6;e;m0;�
2022.03.12 19:45:47 4: sduino32/msg READ: �MS;P0=52;P2=-1545;P3=-151;P4=138;P5=-55;P6=-36;P7=36;D=0203454503454545034503460303034503450303034503;CP=0;SP=2;R=6;e;m1;�
2022.03.12 19:45:47 4: sduino32/msg READ: �MS;P0=52;P2=-1545;P3=-151;P4=138;P5=-55;P6=-36;P7=36;D=0203454503454545034503450303034503450303034503;CP=0;SP=2;R=6;e;m2;�
2022.03.12 19:45:47 4: sduino32/msg READ: �MS;P0=52;P2=-1545;P3=-151;P4=138;P5=-55;P6=-36;P7=36;D=0203454503454545734503450303034503450303034503;CP=0;SP=2;R=6;e;m3;�
2022.03.12 19:45:47 4: sduino32/msg READ: �MU;P0=50;P1=-47;P2=65;P4=-148;P5=153;P7=-62;CP=0;R=6;D=045151045751510451045704040451045124042451040;p;�
2022.03.12 19:45:47 4: sduino32/msg READ: �MS;P0=-1549;P1=50;P2=-151;P3=145;P4=-51;P6=-39;D=1012343412363434123412341212123412341212123412;CP=1;SP=0;R=3;p;b45;m0;�
2022.03.12 19:48:13 4: sduino32/msg READ: �MS;P0=-51;P1=51;P2=-150;P3=146;P6=-1552;P7=-39;D=1612303012303030123012301212123712301212123012;CP=1;SP=6;R=13;p;b15;m0;�
2022.03.12 19:48:13 4: sduino32/msg READ: �MU;P0=39;P1=-160;P2=142;P3=-57;P5=53;P6=-1656;CP=2;R=10;D=601232301232323012351235151512301235151512301560123235123232301230123510151230123510101230106;p;�
2022.03.12 19:49:05 4: sduino32/msg READ: �MU;P0=-7142;P1=86;P2=-10139;P3=151;P4=-128;P5=-4199;P6=-2096;P7=634;CP=7;R=242;D=6767676767012343576757675767575767675757;p;�
2022.03.12 19:54:49 4: sduino32/msg READ: �MS;P0=-51;P1=48;P2=-1542;P4=-151;P5=154;P6=-38;D=1214505014505050145014501414145014501414145614;CP=1;SP=2;R=2;p;b45;m0;�
2022.03.12 19:54:49 4: sduino32/msg READ: �MU;P0=-52;P1=51;P2=34;P3=-1544;P4=-143;P5=156;P6=-38;CP=1;R=251;D=14505614505050145614501414145014501414245014131450561456505614501456;p;�
2022.03.12 19:55:04 4: sduino32/msg READ: �MU;P0=-49;P1=151;P2=-27081;P3=66;P4=-1534;P5=51;P6=-148;CP=5;R=4;D=123456101056101010561056103636361056105656561056;p;�
2022.03.12 19:55:04 4: sduino32/msg READ: �MS;P0=56;P1=-1553;P3=-147;P4=149;P5=-48;P6=-37;D=0103454503454545034503450303034603450303034503;CP=0;SP=1;R=5;p;m0;�
2022.03.12 19:55:04 4: sduino32/msg READ: �MS;P0=39;P2=151;P3=-46;P4=53;P5=-155;P6=-1551;D=4645232305232323452345234545452345234545452345;CP=4;SP=6;R=2;e;b16;m0;�
2022.03.12 19:55:08 4: sduino32/msg READ: �MS;P0=-52;P1=49;P2=-1540;P4=-148;P5=157;P6=-39;D=1214505014505650145014501414145614501414145614;CP=1;SP=2;R=6;p;b45;m0;�
2022.03.12 19:55:08 4: sduino32/msg READ: �MS;P0=-52;P1=49;P2=-1540;P4=-148;P5=157;P6=-39;D=1214505014505050145014501414145014501414145614;CP=1;SP=2;R=6;p;m1;�
2022.03.12 19:55:08 4: sduino32/msg READ: �MU;P0=-50;P1=62;P2=38;P3=-1544;P4=-134;P5=157;P6=-38;CP=1;R=249;D=1450501450565614502450141424501450141414561413145;p;�
Mit ESP32 + PulseMin 45 + Datarate 10000 wird schnelles Hintereinanderdrücken nicht mehr erkannt:
2022.03.12 20:37:26 4: sduino32/msg READ: �MU;P0=57;P1=-146;P2=146;P3=-52;P4=-1548;CP=0;R=251;D=0123010101230104012323012323230123012301010123;e;�
2022.03.12 20:38:37 4: sduino32/msg READ: �MU;P0=52;P1=-145;P2=154;P3=-48;P4=67;P5=-1553;CP=0;R=0;D=0123232301230123010141230123010101230105012323012323230123;e;i;�
# schnell 2x gedrückt
2022.03.12 20:39:19 4: sduino32/msg READ: �MS;P0=51;P1=-147;P2=152;P3=-51;P5=-1547;D=0501232301232323012301230101012301230101012301;CP=0;SP=5;R=0;e;b38;m0;�
# schnell 3x gedrückt
2022.03.12 20:39:37 4: sduino32/msg READ: �MU;P0=57;P1=-141;P2=149;P3=-53;P5=-1551;CP=0;R=0;D=0123232301230123010101230123010101230105;e;�
@TheChatty
Hast Du eine vom Projekt bereitgestellte Firmware verwendet oder eine andere?
Aufgrund dieses Bugs hatte ich diese FW verwendet.
Bin nun nochmal auf diese + PulseMin 30
gegangen.
@Ralf9 hatte noch den Tipp, vor/nach Konfigurationsänderungen den Receiver aus-/einzuschalten, was bei cc1101_bandwidth x
auch funktioniert, aber leider nicht mit dataRate 10000
. Hier stürzt der ESP bei raw xe
zu 100% ab - somit kann ich leider die Projekt-FW im Moment nicht nutzen.
Gibt es hier schon Lösungsansätze?
Ich habe das Thema leidet aus dem Blick verloren.
Danke für deine Erinnerung.
Ich schau mir das mit der Firmware die Tage an, vielleicht kriege ich diesen Bug ja gelöst.
Ansonsten würde ich sagen, geht so eine Nachricht immer mit einer +50 -1450 Sequenz los.
Dann ist aber etwas ungewöhnliches.
Es gibt sowohl +50 als auch +30 Pulse. Gleiches gilt dann auch für die Low Pegel mit -50 und -30.
Da die Werte so klein sind, sind die Toleranzen ebenfalls klein.
.
Mögliche Informationsquelle zu den Daten: