Runbook: Bomba del sótano¶
| Gravedad | 🔴 Crítica — riesgo de inundación con daños físicos irreversibles |
| Tiempo de respuesta | < 5 minutos |
| Roles implicados | Terminus (resiliencia), Argos (detección), Vulcano (mantenimiento físico) |
⚠️ Este es el escenario más grave de
SmallCountry. Un fallo de la bomba del pozo puede causar inundación del sótano en minutos. La mitigación principal es por hardware (Shelly 1PM en modo
power on default: ON), no por software.
Síntomas¶
- Alerta crítica en ntfy: "🔴 Bomba del pozo no responde"
- Alerta en Matrix (sala Casa Chapinería)
- El dashboard de Grafana muestra la bomba en rojo
- Posiblemente: agua en el sótano
Diagnóstico¶
flowchart TD
A([Alerta: bomba no responde]) --> B[Diagnóstico]
B --> B1["<b>PASO 0:</b> Ir físicamente\nal sótano"]
B1 --> B2[Verificar Shelly 1PM:\nLED encendido]
B2 --> B3[Comprobar bomba:\nruido y vibración]
B3 --> B4[Verificar nivel\nde agua en pozo]
B4 --> B5[Revisar estado Shelly\nen Node-RED]
B5 --> B6[Comprobar conectividad\nMQTT Mosquitto]
B6 --> C{¿Causa\nencontrada?}
C -->|Sí| D[Resolución]
C -->|No| B
D --> D1[Bomba no arranca:\nforzar pulsador Shelly]
D1 --> D2[Shelly sin corriente:\nverificar diferencial]
D2 --> D3[Agua sube:\nbomba respaldo o achique]
D3 --> D4[Contenida emergencia:\ndiagnosticar causa raíz]
D4 --> D5[Documentar incidente\nen Forgejo]
D5 --> E[Verificación]
E --> E1[Nivel de agua\nvuelve a normalidad]
E1 --> E2[Bomba responde\na Node-RED]
E2 --> E3[Shelly publica\nestado en MQTT]
E3 --> E4[Alerta ntfy:\nbomba operativa]
E4 --> F{¿Sistema\nestable?}
F -->|Sí| G[Prevención]
F -->|No| D
G --> G1["Shelly en modo\npower on default: ON"]
G1 --> G2[Prueba mensual\nparada/arranque]
G2 --> G3[Sensor de nivel\nalerta independiente]
G3 --> G4[SAI para\nel servidor]
G4 --> H([Fin])
- [ ] PASO 0: Ir físicamente al sótano. Esto no se diagnostica en remoto.
- [ ] Verificar si el Shelly 1PM tiene corriente (LED rojo/azul encendido)
- [ ] Comprobar si la bomba está funcionando (ruido, vibración, flujo de agua en la salida)
- [ ] Verificar el nivel de agua en el pozo/sótano con medición visual
- [ ] Revisar estado del Shelly en Node-RED:
https://nodered.sc→ flujo "bomba-sotano" - [ ] Comprobar conectividad MQTT entre el Shelly y Mosquitto:
mosquitto_sub -t 'sotano/bomba/status' -C 1(si no hay respuesta, Mosquitto o el Shelly están incomunicados) - [ ] Verificar que Mosquitto está corriendo:
docker logs mosquitto --tail 20 - [ ] Verificar que el ESP32 del sensor de nivel responde:
mosquitto_sub -t 'sotano/nivel/agua' -C 1
Resolución¶
- [ ] Si la bomba no arranca pero el Shelly tiene corriente: pulsar el botón físico del Shelly 1PM (conmutación manual). Si no responde, reiniciar el Shelly desenchufándolo 10 segundos y volviendo a conectar (el modo
power on default: ONdebería activar la bomba automáticamente). - [ ] Si el Shelly no tiene corriente (LED apagado): verificar el diferencial y magnetotérmico del cuadro eléctrico del sótano. Rearmar si está saltado. Si salta de nuevo, hay un cortocircuito en la bomba o en el cableado — desconectar Shelly y llamar a electricista.
- [ ] Si el agua está subiendo y la bomba no responde:
- Activar bomba de respaldo si existe (enchufar directamente a otra toma)
- Achique manual con cubo si el nivel es bajo y manejable
- Si el agua amenaza con alcanzar el rack del servidor (Ra): proceder a apagado de emergencia (ver sección abajo)
- [ ] Una vez contenida la emergencia: diagnosticar causa raíz comprobando en orden:
docker logs mosquitto --tail 50— ¿se perdieron mensajes MQTT?docker logs nodered --tail 50— ¿falló el flujo de control?- Revisar logs del Shelly desde su panel web (
http://<IP_SHELLY>) — ¿eventos de desconexión WiFi? - Inspeccionar físicamente la bomba: ¿obstrucción en la entrada? ¿flotador atascado?
- [ ] Documentar el incidente en Forgejo: crear issue en
pequenyo-pais/incidentescon timestamp, causa, acciones tomadas y tiempo hasta resolución.
Apagado de emergencia del servidor (si el agua amenaza el rack)¶
Si el agua está a menos de 20 cm de la base del servidor Ra:
# 1. Tomar snapshot ZFS de urgencia (30 segundos)
ssh ra "zfs snapshot -r rpool@emergencia-$(date +%Y%m%d-%H%M)"
# 2. Apagar todos los LXC ordenadamente
ssh ra "for ct in \$(pct list -o vmid); do pct shutdown \$ct --forceStop 1; done"
# 3. Apagar el servidor
ssh ra "shutdown -h now"
# 4. Desconectar físicamente el SAI y el cable de red
# 5. Subir el servidor a una zona seca y elevada
⚠️ Los datos están más seguros si el servidor se apaga limpiamente. ZFS + PBS garantizan que no se pierda información. El hardware se puede reemplazar; los datos no.
Verificación¶
- El nivel de agua baja y vuelve a la normalidad en < 10 minutos
- La bomba responde a comandos desde Node-RED: activar/desactivar desde
https://nodered.sc - El Shelly publica estado en MQTT:
mosquitto_sub -t 'sotano/bomba/status' -C 1muestra{"power": "on"}o similar - Alerta en ntfy: "🟢 Bomba del pozo operativa"
Si no funciona¶
- Bomba dañada mecánicamente: requiere sustitución. Contactar a fontanero/bricolaje. Mientras tanto, achique manual cada 2 horas y monitorizar previsión de lluvia.
- Inundación por lluvia torrencial que supera la capacidad de la bomba: poco se puede hacer salvo evacuar el servidor y esperar. Prioridad: salvar las copias offsite en Thoth.
- Si el sótano se inunda: no entrar si hay riesgo eléctrico. Cortar la luz desde el cuadro general. Los datos sobrevivirán en PBS + Thoth + rsync a Horus.
Rollback¶
No aplica un rollback como tal. La acción correctiva es restaurar el funcionamiento normal de la bomba. Si se realizó un apagado de emergencia del servidor:
# Encender físicamente Ra. Proxmox arrancará los LXC configurados con start on boot.
# Verificar que los servicios críticos están arriba:
ssh ra "pct list"
curl -s https://inicio.sc | head -20
Prevención¶
- Shelly 1PM en modo
power on default: ON: si todo el software falla, la bomba arranca automáticamente al recibir corriente - Prueba mensual de parada/arranque de bomba (primer sábado de mes, documentar en Forgejo)
- Sensor de nivel de agua con alerta independiente (el ESP32 tiene su propia lógica de umbral)
- SAI para el servidor Ra con monitorización:
apcaccess statuspara ver carga y batería - Mantener una bomba de achique de respaldo en el armario del sótano (120 €, se amortiza sola la primera vez que hace falta)