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

Thomson doorbell signal cannot be seen. #946

Open
TheChatty opened this issue Feb 26, 2021 · 37 comments
Open

Thomson doorbell signal cannot be seen. #946

TheChatty opened this issue Feb 26, 2021 · 37 comments

Comments

@TheChatty
Copy link

TheChatty commented Feb 26, 2021

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

  1. (Optionally) install doorbell.
  2. Push button. <-- item does not need a battery, probably works by energy harvesting
  3. 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?

@elektron-bbs
Copy link
Contributor

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.

@TheChatty
Copy link
Author

TheChatty commented Mar 3, 2021

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?

@sidey79
Copy link
Contributor

sidey79 commented Mar 22, 2021

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.

@HomeAutoUser
Copy link
Contributor

@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 :-)

@TheChatty
Copy link
Author

Welche Register sollte ich denn wie setzen?

@HomeAutoUser
Copy link
Contributor

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.

@TheChatty
Copy link
Author

TheChatty commented Jun 7, 2021

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?

@HomeAutoUser
Copy link
Contributor

HomeAutoUser commented Jun 8, 2021

@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.

@TheChatty
Copy link
Author

TheChatty commented Jun 8, 2021

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?

@HomeAutoUser
Copy link
Contributor

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 ?

@TheChatty
Copy link
Author

Leider nein... würde dieser hier mit RTL2832U+R820T2 funktionieren?

@HomeAutoUser
Copy link
Contributor

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.

@TheChatty
Copy link
Author

Ich habe das Signal nun mit URH aufgezeichnet:
Doorbell
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.

@HomeAutoUser
Copy link
Contributor

Das ist doch schonmal ein Anfang @TheChatty .

Ist es möglich die Datenaufzeichnung als File anzuhängen?

@HomeAutoUser
Copy link
Contributor

@TheChatty
Danke für deine Mail.
Ich habe das ganze mir angesehen.

Würdest du mal bitte folgendes probieren.

  1. den Empfänger mit set <name> raw e auf DEFAULT zu stellen

  2. den Verbose mit attr <name> verbose 4 einzustellen

  3. mehrfach die Bell drücken

  4. schauen im Logfile von FHEM was die Einträge sagen und posten

  5. 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?

@TheChatty
Copy link
Author

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.

@TheChatty
Copy link
Author

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

@HomeAutoUser
Copy link
Contributor

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).

@TheChatty
Copy link
Author

Es klingelt!

@HomeAutoUser
Copy link
Contributor

Perfekt!
Das spiegelt genau die Erkenntnisse wieder welche ich mit ähnlicher Hardware sammelte.

@TheChatty
Copy link
Author

TheChatty commented Jun 19, 2021

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?

@Ralf9
Copy link
Contributor

Ralf9 commented Jun 20, 2021

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

@HomeAutoUser
Copy link
Contributor

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 ;)

@TheChatty
Copy link
Author

TheChatty commented Jun 20, 2021

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?

@HomeAutoUser
Copy link
Contributor

@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.

@Ralf9
Copy link
Contributor

Ralf9 commented Jun 21, 2021

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;

@elektron-bbs
Copy link
Contributor

Mit welchem Prozessor und welcher Firmware auf dem Empfänger?

@Ralf9
Copy link
Contributor

Ralf9 commented Jun 21, 2021

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.

@HomeAutoUser
Copy link
Contributor

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.

@TheChatty
Copy link
Author

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

@sidey79
Copy link
Contributor

sidey79 commented Mar 10, 2022

@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

@TheChatty
Copy link
Author

TheChatty commented Mar 12, 2022

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;�

@sidey79
Copy link
Contributor

sidey79 commented Mar 16, 2022

@TheChatty
Hast Du eine vom Projekt bereitgestellte Firmware verwendet oder eine andere?

@TheChatty
Copy link
Author

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.

@TheChatty
Copy link
Author

Gibt es hier schon Lösungsansätze?

@sidey79
Copy link
Contributor

sidey79 commented Nov 11, 2022

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.
.

@sidey79
Copy link
Contributor

sidey79 commented Nov 11, 2022

Mögliche Informationsquelle zu den Daten:

https://github.com/klohner/honeywell-wireless-doorbell

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

5 participants