me_yo/docs/tasmota-config.md
2026-05-16 18:12:53 +02:00

224 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Configuración de Tasmota
ESP8266 en `192.168.1.42`, firmware Tasmota 15.4.0.
## Comandos a ejecutar (una sola vez)
Todos se ejecutan desde `http://192.168.1.42` → Consola,
o vía HTTP API: `http://192.168.1.42/cm?cmnd=<COMANDO>`
### 1. Seguridad básica
```
# Contraseña para la interfaz web
Password <tu_contraseña_web>
# Credenciales MQTT (deben coincidir con .env)
MqttUser esp8266
MqttPassword <MQTT_ESP_PASSWORD del .env>
```
### 2. Broker MQTT — apuntar a este ordenador
```
MqttHost 192.168.1.41
MqttPort 1883
```
### 3. Esquema de topics — obligatorio para que las ACLs funcionen
```
Topic riego/bomba
FullTopic %prefix%/%topic%/
```
Esto genera:
- `cmnd/riego/bomba/POWER` (recibe comandos)
- `stat/riego/bomba/POWER` (publica confirmaciones)
- `tele/riego/bomba/SENSOR` (publica telemetría)
### 4. Telemetría cada 30 segundos
```
TelePeriod 30
```
### 5. Estado seguro al arrancar — CRÍTICO
```
PowerOnState 0
```
Sin este ajuste, si la bomba estaba encendida y el ESP8266 se reinicia,
la bomba arranca automáticamente. Con `0` siempre arranca apagada.
### 6. Cableado y configuración de GPIOs
#### Hardware identificado
- Placa: **NodeMCU ESP8266**
- Relé: **SunFounder 8 Relay Module** (activo en LOW → usar `Relay1_i`)
- Sensor: **HC-SR04 estándar (5V)** → requiere divisor de tensión en Echo
#### ⚠️ Divisor de tensión — OBLIGATORIO para HC-SR04 estándar
El pin Echo del HC-SR04 devuelve 5V pero el ESP8266 soporta máximo 3.3V.
Sin el divisor puedes quemar el GPIO o dañar el chip con el tiempo.
El divisor va en el pin **Echo → D5 (GPIO14)**. Trig va directo sin resistencias.
Con **tres resistencias de 2.2 kΩ** (las dos primeras en paralelo forman 1.1 kΩ):
```
Punto A Punto B
│ │
HC-SR04 Echo ──[2.2kΩ]────────┤
├──── D5 (GPIO14) NodeMCU → 3.33 V ✓
──[2.2kΩ]────────┤
[2.2kΩ]
GND
```
- **Punto A**: pin Echo del HC-SR04 + un extremo de cada una de las dos resistencias en paralelo
- **Punto B**: el otro extremo de las dos resistencias en paralelo + un extremo de la tercera + cable a D5
Esto reduce 5V → 3.33V: `5V × 2.2kΩ/(1.1kΩ+2.2kΩ) = 3.33V`
El pin Trigger (ESP8266 → sensor) va directo: 3.3V es suficiente para activar el HC-SR04.
#### Esquema de cableado completo
Alimentación mixta:
- NodeMCU → **USB** (ordenador o cargador)
- Relay module + HC-SR04 → **fuente externa 5V / 1.5A**
```
USB ──────────────────────── NodeMCU (alimentación + lógica 3.3V)
Fuente 5V/1.5A
├── (+) 5V ──┬── Relay module VCC
│ └── HC-SR04 VCC
└── () GND ─┬── Relay module GND
├── HC-SR04 GND
├── GND divisor de tensión (extremo inferior R2)
└── NodeMCU GND ← ⚠️ OBLIGATORIO aunque NodeMCU va por USB
Sin este cable los GPIOs no funcionan
NodeMCU señales:
D1 (GPIO5) ──────────────────────── IN1 relay module (bomba)
D2 (GPIO4) ──────────────────────── Trig HC-SR04 (directo, sin resistencias)
D5 (GPIO14) ──[divisor tensión]───── Echo HC-SR04 (3.3V tras el divisor)
```
#### Resistencias disponibles: solo 2.2 kΩ
Con **dos resistencias de 2.2 kΩ en paralelo** como R1 se obtiene 1.1 kΩ,
que con una tercera de 2.2 kΩ como R2 da exactamente 3.33 V:
```
Echo HC-SR04
[2.2kΩ]──┐
│ ├── D5 (GPIO14) NodeMCU → 3.33 V ✓
[2.2kΩ]──┘
[2.2kΩ]
GND
```
Si también tienes una resistencia de **1 kΩ** úsala como R1 (es más sencillo):
R1=1kΩ + R2=2.2kΩ → 3.44 V ✓
#### Resistencias para el divisor de tensión
Necesitas dos resistencias con una relación **R2 ≈ 2 × R1**.
Cualquiera de estas combinaciones es válida:
| R1 | R2 | Tensión en Echo→ESP | Observaciones |
|---|---|---|---|
| 1 kΩ | 2 kΩ | 3.33 V ✓ | Combinación ideal |
| 1 kΩ | 2.2 kΩ | 3.44 V ✓ | Muy común en kits |
| 2.2 kΩ | 4.7 kΩ | 3.40 V ✓ | Válida |
| 10 kΩ | 20 kΩ | 3.33 V ✓ | Misma ratio, menor corriente |
| 10 kΩ | 22 kΩ | 3.44 V ✓ | Muy común |
**Cómo medir con multímetro**: selector en Ω (ohmios), puntas en los dos
extremos de la resistencia. Las más comunes en kits naranja/amarillo son
colores de 4 bandas:
| Valor | Bandas de color |
|---|---|
| 1 kΩ | Marrón Negro Rojo (tolerancia) |
| 2 kΩ | Rojo Negro Rojo (tolerancia) |
| 2.2 kΩ | Rojo Rojo Rojo (tolerancia) |
| 4.7 kΩ | Amarillo Violeta Rojo (tolerancia) |
| 10 kΩ | Marrón Negro Naranja (tolerancia) |
| 22 kΩ | Rojo Rojo Naranja (tolerancia) |
#### Configuración en Tasmota (interfaz gráfica)
Menú → **Configuración → Configurar módulo**
Seleccionar en los desplegables:
| GPIO | Función a seleccionar | Nota |
|---|---|---|
| GPIO5 | `Relay_i``1` | La **i** es crítica (inverted, SunFounder activo LOW) |
| GPIO4 | `SR04 Tri/Tx``1` | Trig — salida directa sin resistencias |
| GPIO14 | `SR04 Ech/Rx``1` | Echo — entrada con divisor de tensión obligatorio |
> ⚠️ **Importante**: Trig en GPIO4 (D2) y Echo en GPIO14 (D5), NO al revés.
> Verificado según [documentación oficial Tasmota HC-SR04](https://tasmota.github.io/docs/HC-SR04/).
Pulsar **Save** — el dispositivo reinicia.
#### Alternativa: comandos por consola
Menú → Consola (o `http://192.168.1.42/cm?cmnd=`):
```
Backlog GPIO5 Relay_i 1; GPIO4 SR04Tri 1; GPIO14 SR04Ech 1
```
#### Verificar que el sensor funciona
Tras guardar, en la consola de Tasmota:
```
Status 10
```
Debe aparecer algo como:
```json
{"StatusSNS":{"Time":"...","SR04":{"Distance":45.2}}}
```
Si no aparece `SR04`, el build estándar puede no incluirlo.
En ese caso descargar `tasmota-sensors.bin`:
```
OtaUrl http://ota.tasmota.com/tasmota/release/tasmota-sensors.bin
Upgrade 1
```
### 7. Verificar soporte HC-SR04
> ⚠️ **Tasmota 15.4.0 estándar NO incluye SR04.** Hay que instalar `tasmota-sensors.bin`:
```
OtaUrl http://ota.tasmota.com/tasmota/release/tasmota-sensors.bin
Upgrade 1
```
Tras el reinicio, los desplegables de GPIO mostrarán `SR04 Tri/Tx` y `SR04 Ech/Rx`.
> ⚠️ La actualización OTA **borra la configuración de GPIOs**. Después del upgrade
> hay que volver a configurar GPIO4, GPIO5 y GPIO14 en Configurar módulo.
## Verificar que todo funciona
Tras guardar los cambios, Tasmota reinicia. Comprueba:
```bash
# El ESP8266 debe conectar al broker local
curl -s "http://192.168.1.42/cm?cmnd=Status%205" | python3 -m json.tool
# MqttCount debe ser > 0
```