NEWS
ESP8266 und CC1101 für 433 MHz ?
-
Ich habe jetzt ziemlich lange gegoogelt und konnte dennoch kein fertiges ESP-Binary finden, welches erlaubt mit einem CC1101-Empfänger und einem ESP8266-Modul (habe ein hier D1) eine Verbindung zu 433MHz-Funkfernbedienungen und -Steckdosen aufzubauen (idealerweise mit MQTT).
Bisher verwende ich Tasmota. Dies bringt die Unterstützung für den CC1101 standardmäßig jedoch nicht mit.
Ich habe gesehen, dass es wohl mit ESPHome bereits realisiert wurde, jedoch kenne ich dieses Projekt überhaupt nicht.
Hat jemand dafür eine fertige Lösung oder kann beschreiben, wie ich so etwas realisieren kann? -
@alex-8
Offizielle Builds mit Portisch-Unterstützung gibt es hier:https://github.com/arendst/Tasmota/releases
Die Variante, die du suchst, ist:
-
tasmota-sensors.bin (für ESP8266, mit CC1101-Unterstützung)
-
oder tasmota32-bluetooth.bin (für ESP32)
https://tasmota.github.io/docs/
Thema wäre auch Sonoff RF Bridge, gibt es direkt zu kaufen.
-
-
@mcu ist die Portisch-Unterstützung nicht für die SONOFF-Bridge?
Wie muss man den Tasmota für CC1101 konfigurieren? -
@alex-8 Lt. chatGPT
Template{"NAME":"CC1101","GPIO":[0,0,0,0,0,0,0,0,56,0,57,0,0],"FLAG":0,"BASE":18}
-
@mcu: das war ein Template für eine alte SW-Version, oder?
muss ich denn nicht SPI sowie
GDO0 -> RFSend
GDO2 -> RFRecv
einstellen?Ich habe folgende Verbindungen verdrahtet:
GPIO4 (GDO0): RFrecv
GPIO5 (GDO2): RFsend
GPIO12: MISO
GPIO13: MOSI
GPIO14: SCK
GPIO15: CSdas wäre dann: {"NAME":"CC1101","GPIO":[0,0,0,0,1152,1120,0,0,832,864,896,928,0,0],"FLAG":0,"BASE":18}
Leider führen beide Varianten nicht zum Erfolg. -
wie erkennt Tasmota denn, dass ein CC1101 angesteuert werden soll?
-
@alex-8 Bin nicht mehr so tief im Thema, deswegen chatGPT
🧠 Was ist hier das Problem?
Du verwendest ein CC1101-Modul über SPI – das bedeutet:Du brauchst eine Firmware, die SPI unterstützt
Und ein Tasmota-Build mit RF/CC1101-Unterstützung + Portisch-Firmware
Außerdem musst du die richtigen GPIO-Zuweisungen (GDO0, GDO2, CS, MISO, MOSI, SCK) konfigurieren
Deine Verdrahtung – gut erkannt:
CC1101 Pin Beschreibung Dein GPIO
GDO0 RFRecv GPIO4
GDO2 RFSend GPIO5
MISO SPI MISO GPIO12
MOSI SPI MOSI GPIO13
SCK SPI CLK GPIO14
CS (SS) SPI ChipSel GPIO15Das ist technisch korrekt. Jetzt musst du dafür das richtige Template und die richtige Firmware verwenden.
Lösung: Tasmota-Firmware mit CC1101 (RFRaw) & SPI-Unterstützung
Tasmota unterstützt CC1101 über den Befehl RfRaw, aber nur mit SPI-unterstütztem Build
Du brauchst:️ Eine Firmware mit RFRaw-Unterstützung:
Am besten: tasmota-sensors.bin (bei Bedarf selbst kompilieren mit USE_RFRF)
Alternativ: Einen Portisch-kompatiblen Fork verwenden (Tasmota RFRaw Build)
- 🧩 Template richtig setzen:
{"NAME":"CC1101","GPIO":[0,0,0,0,1152,1120,0,0,832,864,896,928,0,0],"FLAG":0,"BASE":18}
Das entspricht:
GPIO Funktion
GPIO4 GDO0 → RfRecv (1152) = RFRcv
GPIO5 GDO2 → RfSend (1120) = RFSnd
GPIO12 MISO (832) = SPI MISO
GPIO13 MOSI (864) = SPI MOSI
GPIO14 SCK (896) = SPI CLK
GPIO15 CS (928) = SPI CSDas passt perfekt zu deiner Verkabelung.
Aktivieren: RfRaw-Modus
In der Web-Konsole deiner Tasmota-Instanz:
RfRaw 177
→ Versetzt das Gerät in den Sniffer-Modus, um 433 MHz-Signale zu empfangen
Empfangene Signale erscheinen dann z. B. als:
{"RfRaw":"AA B1 03 0C34 02D2 00C8 ..."}
🧪 Fehlerquellen prüfen:
Problem Mögliche Ursache Lösung
Keine Signale RfRaw nicht aktiviert RfRaw 177 in Konsole
Nur „AA 55“-Antwort Kein echtes RF-Signal erkannt Richtige Fernbedienung verwenden
SPI-Kommunikation fehlschlägt falsche GPIOs oder keine USE_RFRF Richtiges Template und Firmware verwenden
Gerät startet nicht SPI/GPIO-Konflikt (z. B. GPIO15) Checke Pull-Down/Boot-Logik von GPIO15 -
@mcu Servus miteinander!
Es gibt auch einen OpenMqttGateway auf ESP32 Basis mit dem CC1101. Dieser unterstützt auch das Dekodieren der digitalen Daten und kennt schon sehr viele Sensoren. Ist sehr ähnlich wie TASMOTA aufgebaut und zu verwenden. Hatte ich mal hier dokumentiert:
https://forum.iobroker.net/topic/75398/openmqttgateway-rf-433mhz-aufbauen
Überblick
Ein mögliche Umsetzung ist hier unten zu sehen. Links oben der ESP 32 auf einem ESP Expansion Board (blau).
Das RF Modul ist direkt mit dem Expansion Board verbunden (grün).
Die 12Vdc Spannungsversorgung erfolgt über den Schalter (türkis) und einen DCDC Step LM2596 down Konverter ((lila), 7Vdc Ausgang.
Einige Zusatzinformationen:
OpenMqttGateway https://github.com/1technophile/OpenMQTTGateway
Media Links https://github.com/1technophile/OpenMQTTGateway?tab=readme-ov-file#mediaEventuell hilft es dir weiter?
LG
alk -
@alk nachdem ich die Tasmota-sensors-Variante getestet und feststellen musste, dass diese den CC1101 offensichtlich doch nicht unterstützt, habe ich mir OMG angesehen.
Zur Zeit habe ich den ESP8266 mit dem CC1101 verbunden und sowohl die vorkompilierte nodemcuv2-rf-cc1101 und die nodemcuv2-rf2-cc1101 getestet.
Leider kann ich nach dem ersten Einrichten der IP- und MQTT-Umgebung nicht mehr auf das Device zugreifen.Ich bekomme im IO-Broker zwar einen Eintrag, jedoch werden keine Fernbedienungscodes übertragen.
In der Logausgabe wird zumindest angezeigt, dass der CC1101-Chip erkannt wird.
Hier die LOG-Ausgabe:N: OpenMQTTGateway Version: v1.8.1 N: Config loaded from flash N: Attempting Wifi connection with saved AP: 0 N: C1101 spi Connection OK N: Enable RF Receiver: 433.92Mhz N: RF_EMITTER_GPIO: 3 N: RF_RECEIVER_GPIO: 0 N: Offline disabled N: OpenMQTTGateway modules: ["RF"] N: ************** Setup OpenMQTTGateway end ************** N: Reconfiguring MQTT client... N: Connected to broker N: [ OMG->MQTT ] topic: home/OMG_ESP8266_RF-CC1101/LWT msg: online N: SYS json: {"uptime":3,"version":"v1.8.1","mqtt":true,"serial":false,"disc":true,"ohdisc":false,"env":"nodemcuv2-rf-cc1101","freemem":26184,"mqttp":"1884","mqtts":false,"mqttv":false,"msgprc":0,"msgblck":0,"msgrcv":11,"maxq":0,"cnt_index":0,"eth":false,"rssi":-76,"SSID":"xxxxxxxxxx","BSSID":"F0:B0:14:49:40:DD","ip":"xxxxxxxx","mac":"08:F9:E0:60:D7:20","modules":"'RF'","origin":"/SYStoMQTT"}
MOD-EDIT: Code in code-tags gesetzt!
Wer kann etwas dazu sagen, bzw. wie kann ich die Fernbedienungscodes im IOBroker empfangen?
-
@alex-8 Servus!
Ich gehe mal davon aus, dass der ESP8266 mit dem CC1101 nun läuft nun erkannt wird (Dein Log). Die MQTT Verbindung zum iob hast du auch am laufen und es werden Datenpunkte im iob erzeugt. Das ist schon mal gut!
Jetzt geht es im Bereich des OpenMQTTGateway weiter mit der Konfuration:
https://docs.openmqttgateway.com/use/rf.html#what-is-an-rf-gatewayEntscheident ist die Auswahl der RF Library des ESP8266 für die korrekte Dekodierung der Sensordaten. Hier gibt es folgende Libraries zur Auswahl, jede hat mehr oder weniger Vor/Nachteile:
1 - PiLight
2 - RF
3 - RTL_433
4 - RF2Beim ESP8266 kannst Du leider weniger Libraries verwenden, ich denke da gibt es Einschränkungen mit Speicher und CPU Performance. Entsprechende Dokumentation findes Du hinter dem Link (oben).
Eventuell ist Dein Device ja auch hier schon dabei?
https://docs.openmqttgateway.com/use/rf.html#supported-decodersOft musst du das Signal mehrfach senden, damit es vom Receiver empfangen wird:
https://docs.openmqttgateway.com/use/rf.html#repeat-the-rf-signal-several-timesAuch gibt es eine aktive Community:
https://community.openmqttgateway.com/Ich hoffe Du kommst damit weiter?
LG
alk