Empfänger auf reale Tor-Steuerung (esp32dev) umgestellt

- tor_empfaenger.yaml (ESP32-S3-Platzhalter) ersetzt durch tor_steuerung.yaml,
  das die bestehende ChatGPT-Konfig (Relais GPIO16, Türsensoren GPIO34/35,
  echte WLAN/API/OTA-Credentials) mit der CC1101-Empfangslogik zusammenführt
- CC1101 auf freie VSPI-Pins gelegt (GPIO4/5/18/19/23), da 16/34/35 belegt sind
- auto_sender_01.yaml verwendet dieselben Credentials wie der Empfänger
- README: Pintabelle für esp32dev, Hinweis auf Klartext-Secrets im Repo
This commit is contained in:
Dominic
2026-07-23 18:38:49 +00:00
parent 32e8277e4b
commit a5caf47b49
4 changed files with 84 additions and 51 deletions
+1 -2
View File
@@ -1,3 +1,2 @@
secrets.yaml
.esphome/
*.bin *.bin
.esphome/
+29 -11
View File
@@ -5,7 +5,8 @@ am Zündungsplus, der Empfänger am Tor öffnet, sobald ein bekanntes Fahrzeug n
genug ist. Kein Knopfdruck, keine App, kein Account. genug ist. Kein Knopfdruck, keine App, kein Account.
**Hardware:** ESP32-C3 Super Mini + CC1101 (433 MHz) je Sender, **Hardware:** ESP32-C3 Super Mini + CC1101 (433 MHz) je Sender,
ESP32-S3 + CC1101 als Empfänger am Tor. ein bestehender ESP32 DevKit (`tor-steuerung`) + CC1101 als Empfänger am Tor
derselbe ESP, der schon Relais und Türsensoren steuert.
--- ---
@@ -47,9 +48,24 @@ Die Pins des CC1101 sitzen als **4 Zeilen à 2 Pins**, Antenne rechts:
| 8 | GDO2 | *frei lassen* | | 8 | GDO2 | *frei lassen* |
Schema: [`doku/verdrahtung-cc1101.svg`](doku/verdrahtung-cc1101.svg) Schema: [`doku/verdrahtung-cc1101.svg`](doku/verdrahtung-cc1101.svg)
(zeigt die Pin-Reihenfolge am CC1101 selbst — die Zuordnung zu GPIOs
unterscheidet sich je nach ESP-Board, siehe Tabellen oben/unten.)
Beim Empfänger (ESP32-S3) sind die SPI-Pins in `tor_empfaenger.yaml` noch ### Empfänger (`tor-steuerung`, ESP32 DevKit)
Platzhalter und müssen an die tatsächliche Verdrahtung angepasst werden.
GPIO16 (Relais) und GPIO34/35 (Türsensoren) sind schon belegt. Der CC1101
hängt deshalb an den freien VSPI-Standardpins:
| CC1101 | Signal | ESP32 DevKit |
|--------|--------|--------------|
| 1 | GND | GND |
| 2 | VDD | 3V3 |
| 3 | GDO0 | `GPIO4` |
| 4 | CSN | `GPIO5` |
| 5 | SCK | `GPIO18` |
| 6 | MOSI | `GPIO23` |
| 7 | MISO | `GPIO19` |
| 8 | GDO2 | *frei lassen* |
--- ---
@@ -144,16 +160,18 @@ USB-Serial/JTAG ist es das falsche Werkzeug (außer man will JTAG-Debugging
## ESPHome einrichten ## ESPHome einrichten
Beide YAMLs erwarten in `secrets.yaml`: Beide Geräte tragen WLAN-Zugangsdaten, `api`-Verschlüsselungskey und
OTA-Passwort **direkt in der YAML** statt über `secrets.yaml` — so war
`tor_steuerung.yaml` schon angelegt, und `auto_sender_01.yaml` verwendet
bewusst dieselben Werte, damit beide Geräte zusammenpassen.
```yaml > **Achtung:** Damit stehen WLAN-Passwort und Schlüssel im Klartext in diesem
wifi_ssid: "..." > Repo. Nur vertretbar, wenn `git.dominicspringer.de` privat/intern bleibt.
wifi_password: "..." > Soll das Repo öffentlich werden, vorher alles auf `!secret`-Verweise
api_key: "..." # base64, 32 Byte > umstellen und eine lokale `secrets.yaml` (nicht committen) anlegen.
ota_password: "..."
```
1. In ESPHome (HA-Add-on) neues Gerät anlegen 1. In ESPHome (HA-Add-on) das jeweilige Gerät anlegen bzw. die bestehende
`tor-steuerung` mit dem neuen Inhalt überschreiben
2. Inhalt der passenden Datei aus `esphome/` einfügen 2. Inhalt der passenden Datei aus `esphome/` einfügen
3. Drei Punkte → **Install****Manual download****Factory format** 3. Drei Punkte → **Install****Manual download****Factory format**
4. Mit esptool flashen (siehe oben) 4. Mit esptool flashen (siehe oben)
+4 -4
View File
@@ -15,15 +15,15 @@ logger:
api: api:
encryption: encryption:
key: !secret api_key key: "X2kSHZmeEbdPtMBlxB67cJ4/WMNkQOPCstqYiUQlL2g="
ota: ota:
- platform: esphome - platform: esphome
password: !secret ota_password password: "4bd4f24d4a26730d06e84d6e0816fb09"
wifi: wifi:
ssid: !secret wifi_ssid ssid: "Leonardo da WiFi"
password: !secret wifi_password password: "44290812080358610465"
# Wichtig: im Auto ist kein WLAN in Reichweite. # Wichtig: im Auto ist kein WLAN in Reichweite.
# Ohne diese Zeile würde der ESP alle 15 Min neu starten. # Ohne diese Zeile würde der ESP alle 15 Min neu starten.
reboot_timeout: 0s reboot_timeout: 0s
@@ -1,36 +1,69 @@
esphome: esphome:
name: tor-empfaenger name: tor-steuerung
friendly_name: Tor Empfänger friendly_name: Tor Steuerung
esp32: esp32:
board: esp32-s3-devkitc-1 # <- ggf. an dein Board anpassen board: esp32dev
framework: framework:
type: esp-idf type: esp-idf
version: recommended
logger: logger:
level: DEBUG
api: api:
encryption: encryption:
key: !secret api_key key: "X2kSHZmeEbdPtMBlxB67cJ4/WMNkQOPCstqYiUQlL2g="
ota: ota:
- platform: esphome - platform: esphome
password: !secret ota_password password: "4bd4f24d4a26730d06e84d6e0816fb09"
wifi: wifi:
ssid: !secret wifi_ssid ssid: "Leonardo da WiFi"
password: !secret wifi_password password: "44290812080358610465"
power_save_mode: none
ap:
ssid: "Torsteuerung"
password: "Spring.3"
captive_portal:
# --- Bestehende Hardware ---
switch:
- platform: gpio
pin: GPIO16
id: tor_impuls_relay
name: "Tor Impuls"
restore_mode: ALWAYS_OFF
on_turn_on:
- delay: 500ms
- switch.turn_off: tor_impuls_relay
binary_sensor:
- platform: gpio
pin: GPIO34
name: "Tor AUF"
device_class: door
- platform: gpio
pin: GPIO35
name: "Tor ZU"
device_class: door
# --- Neu: CC1101 433 MHz Empfänger für den Funksender im Auto ---
# Pinbelegung siehe README/doku/verdrahtung-cc1101.svg
# (GPIO16/34/35 sind durch die bestehende Hardware belegt, deshalb
# hier die freien VSPI-Standardpins verwendet)
# --- SPI zum CC1101 ---
# Diese Pins am S3 prüfen und ggf. anpassen!
spi: spi:
clk_pin: GPIO12 clk_pin: GPIO18
mosi_pin: GPIO11 mosi_pin: GPIO23
miso_pin: GPIO13 miso_pin: GPIO19
cc1101: cc1101:
cs_pin: GPIO10 cs_pin: GPIO5
gdo0_pin: GPIO9 gdo0_pin: GPIO4
frequency: 433.92MHz frequency: 433.92MHz
modulation_type: GFSK modulation_type: GFSK
symbol_rate: 4800 symbol_rate: 4800
@@ -64,7 +97,7 @@ cc1101:
ESP_LOGI("tor", "Tor öffnen für Fahrzeug %u (RSSI %.1f)", fz, rssi); ESP_LOGI("tor", "Tor öffnen für Fahrzeug %u (RSSI %.1f)", fz, rssi);
id(letztes_fahrzeug).publish_state(std::to_string(fz)); id(letztes_fahrzeug).publish_state(std::to_string(fz));
id(tor_impuls).press(); id(tor_impuls_relay).turn_on();
globals: globals:
- id: letzte_oeffnung - id: letzte_oeffnung
@@ -72,9 +105,8 @@ globals:
restore_value: false restore_value: false
initial_value: '0' initial_value: '0'
# --- RSSI-Schwelle, in HA per Schieberegler einstellbar --- # In HA per Schieberegler einstellbar, kein Neuflashen nötig.
# Je näher an 0, desto kürzer die Reichweite. # Startwert -60 ≈ 5 m, im Betrieb anhand der geloggten RSSI-Werte feinjustieren.
# Startwert -60 entspricht grob 5 m — beim Einrichten im Log ablesen und anpassen.
number: number:
- platform: template - platform: template
name: RSSI Schwelle name: RSSI Schwelle
@@ -92,19 +124,3 @@ text_sensor:
- platform: template - platform: template
name: Letztes Fahrzeug name: Letztes Fahrzeug
id: letztes_fahrzeug id: letztes_fahrzeug
# --- Torimpuls: Relais 500 ms schließen ---
switch:
- platform: gpio
id: tor_relais
pin: GPIO7 # <- an deine Relais-Verdrahtung anpassen
restore_mode: ALWAYS_OFF
button:
- platform: template
name: Tor Impuls
id: tor_impuls
on_press:
- switch.turn_on: tor_relais
- delay: 500ms
- switch.turn_off: tor_relais