Prólogo
Año 2019. En casi cualquier tienda de electrónica, puede comprar uno de los cientos de posibles conjuntos de hogares inteligentes. Realice y configure en “2 clics”, conéctese a las nubes, reciba eventos push en la aplicación / SMS y, en general, reciba toda la información necesaria en cualquier parte del mundo.Ideal, pero en mi caso no funcionó. Algunas decisiones que cayeron en mis manos resultaron ser un conjunto limitado de ciertas funciones, cubriendo solo una parte de mis consultas y, además, imponiendo restricciones casi insuperables. Y, como suele suceder, mientras menos restricciones, más necesita sumergirse en el área temática, pensar independientemente en soluciones, arquitecturas. Por lo tanto, la granja colectiva nosotros mismos :)
Las tareas
1. recibir información sobre la calidad de la red de energía (sobretensiones, apagado completo, etc.).
2. Tenga monitoreo completo del UPS. Pero, de hecho, tener este mismo UPS basado en las consecuencias de p2.
3. Recibir información de temperatura:
- en la calle
- en casa
- en el ático (cuando la basura y los tomates arrojados allí se congelan)
4. Controle el estado del consumo de agua, avise si el consumo ha aumentado (de repente, una fuga, no puede pesar todo con sensores de humedad).
5. Entender cuando alguien está en casa para automatizar el cierre / apertura de agua.
6. Lectura del medidor de gas y alerta cuando se agote la reserva pagada.
+ otros sensores de todo tipo (humedad, apertura, presión de agua, presión en el circuito de calefacción, etc.).
El objetivo global es tener una interfaz común donde pueda ver todo esto. Reciba notificaciones si algo sale mal.
Y para que no haya nada y no dar mucho dinero por ello.
La composición del complejo en este momento.
- Batería UPS Energy PN-750 + 100 Ah
- Convertidor USB-> RS232 basado en PL2303
- Router Tp-link tl-wr1043nd +
- 1 maestro de red de cable basado en un termómetro USB comprado DS18B20 + PL-2303TA
- 1 cable 3 sensores DS18B20
- Módulo de medidor de agua 1wire radioseti DS2423
Una máquina virtual con un servidor Zabbix fuera de la red doméstica.

Etapa 1. Preparación de infraestructura.
El primer paso fue la cuestión de la reorganización física: el enrutador se trasladó a la mesa de noche cerca de la mina de ventilación, donde se planeó instalar UPS más. La antena para el proveedor de Internet Ubiquiti Nanostation Loco M2 PoE se conectó a la misma toma de corriente que el enrutador, para continuar con la alimentación de UPS.
Ya tenía una instalación dedicada de Zabbix en un servidor remoto y algo de experiencia con esta aplicación, por lo que no hubo problemas con la teoría de organizar alertas y el tablero en sí.
El enrutador se muestra en OpenWRT Chaos Calmer, se configura una VPN en la red donde estaba ubicado el servidor Zabbix.
Inmediatamente agregué las métricas a zabbix, habiendo obtenido la plantilla del elemento para openwrt. Por lo tanto, tuve la oportunidad de monitorear tanto el sistema como, por ejemplo, cuántas y qué direcciones MAC están conectadas al punto. Lo que en el futuro debería haber servido como una decisión sobre el cierre del agua en la casa.
Paso 2. Elegir un UPS
Los criterios de selección fueron:
- la posibilidad de una caldera de gas (buderus)
- a partir de 5 horas de autonomía de caldera + equipo de internet
- presencia de una interfaz de monitoreo
- bajo nivel de ruido (colocación: mesita de noche en la cocina cerca del conducto de ventilación)
- debido a restricciones de ubicación y precio, preferiblemente un diseño de batería única
Examinaremos la posibilidad de cumplir los criterios en orden.
La capacidad de la caldera de gas para funcionar se explica por el hecho de que la caldera requiere un seno limpio, de lo contrario, el motor de la bomba zumbará y se desgastará. Sobre esto puedes buscar en Google muchos artículos.
Ordinario (UPS de computadora) no da tal seno, dando una onda sinusoidal aproximada.
El segundo factor importante es la presencia de "a través de neutral". Aquí todo es un poco más complicado, pero también es fácil de buscar en Google, así que no me detendré. Solo puedo decir una cosa: sin un neutral absoluto, el buderus no funcionó, o más bien cayó en error, porque el sensor de ionización no funcionó y la caldera simplemente no vio una llama.
Como sustituto de UPS, hubo un cambio en el enfoque hacia UPS en línea e interactivos en línea.
A partir de las 5 horas de autonomía de la caldera + el equipo de Internet proporciona principalmente UPS con una batería externa.
Debido a restricciones de ubicación y precio, es deseable un diseño de batería única . Se suponía que la batería de 100 Ah duraría más de 8 horas.
La presencia de una interfaz de monitoreo para al menos saber cuándo el sistema cambió a la batería, para volver a casa en invierno y encender el generador. No tenía requisitos particulares aquí (así como experiencia en implementación). Estaba buscando todo lo que viene con la interfaz rs232 o usb.
El requisito de un
bajo nivel de ruido en realidad resultó ser una limitación seria y descartó toda una clase de equipo: UPS en línea, ya que todos funcionan en el modo de ventilación constante del transformador (el ventilador no se apaga).
Llamando a la tienda Energy, obtuve el último PN-750 con rs232 de la tienda. Lo suficientemente barato, ya que no había cables en el kit.
Etapa 3: Configuración del UPS
Hay problemas para conectar el UPS. Compré varios convertidores USB-> RS232, leí en los foros que la energía usa el protocolo estándar Megatec y al menos puedes trabajar con él a través del software Upsilon2000. Pero no importa cuánto luché, había un completo silencio en la interfaz en serie. Después de una semana de pruebas, decidí desmontar el UPS y ver qué había allí, escupir en la garantía. El problema resultó ser común: la placa RS232 no estaba conectada a la placa principal del UPS y el conector estaba ligeramente roto. Reemplacé el conector, lo conecté y sobre un milagro, todo despegó, aunque el firmware dio el extraño nombre UPS - SIN800 (parece que ahora entiendo por qué la energía en los nuevos modelos fue cortada por rs232).
Bajo OpenWRT, había un P / O estándar para trabajar con UPS: herramientas de red, que tiene todo lo que necesita para mostrar las métricas en la consola.
root@OpenWrt:/
Y lo más interesante es que bajo Zabbix hay una plantilla preparada para la nuez. Vobschem: estamos viendo en el agente zabbix el script de shell del kit de plantillas y tenemos una hermosa imagen en zabbix en dinámica. Las tareas 1 y 2 en esta etapa se resolvieron (y la idea de monitorear el consumo total de energía apareció en el futuro).
Etapa 4: 1 cable y temperatura
Hace algún tiempo compré un termómetro USB en eBay (una placa de conversión combinada y un sensor).
OpenWRT también resultó ser un software adecuado, la utilidad digitemp_DS9097. Ella mostró la temperatura de un solo sensor soldado. Después de leer que hay 1 cable, me di cuenta de que puede intentar no limitarse a un sensor y tomar un bus de sensores completo para el convertidor USB comprado. Después de tomar varios microcircuitos y “barriles” DS18B20 debajo de un par trenzado en la tienda, construí una construcción con el sensor retirado fuera del barril y conectado internamente con 3 cables.

Hace muchos años que conozco este diseño, lo utilizamos para tomar lecturas en los centros de datos, pero aún no sabía nada sobre 1wire. Al conectar los barriles entre sí con cables de conexión estándar y cambiar esta granja al "termómetro USB", obtuve los valores de los 3 sensores de temperatura.

Queda por arrojarlos por los lugares. La longitud total del neumático era de unos 30 metros. La señal no desaparece. Un barril colocado en la calle está lleno de una pistola de pegamento. Vivió el invierno.
Etapa 5: agua
Tuve que cambiar el medidor de agua en la entrada (no era un pulso, sin un interruptor de láminas). Gracias a la vida en una casa de campo, la fontanería no causa preguntas. Lo compré en la tienda de fontanería más cercana y lo reemplacé. En el nuevo medidor, se produce un pulso cada 10 litros de agua. Ahora estos impulsos deben considerarse algo.
Por alguna razón, descontinuaron un interesante microcircuito de contador digital: DS2423. Pero resultó que los chicos de Volgogrado (radioseti) tienen un dispositivo listo para usar que, gracias a la batería incorporada, también cuenta el valor de la cantidad de pulsos en caso de un corte de energía. Sin embargo, el dispositivo en sí se adaptó a su propia arquitectura de red. Desde conectores RJ-11 a una fuente de alimentación de 12V separada. En mi caso, quería limitarme a alimentar el bus existente (5V). Tuve que sortear el fleje "extra" y soldar directamente a las conclusiones del DS2423 directamente. Entonces el dispositivo funcionó, los valores de registro se hicieron visibles en el bus. Hay dos de ellos, el dispositivo implica conectarse a dos medidores de agua al mismo tiempo: agua caliente y agua caliente. Solo tengo una entrada de agua, por lo que uso el segundo registro solo para las pruebas.

El resultado final para la topología 1wire:
root@OpenWrt:/etc/zabbix
Por cierto, dado que se instaló un nuevo medidor de agua simultáneamente con un medidor de pulso digital, podemos sacar conclusiones sobre la discrepancia de lecturas / rebote de contactos. Visualmente, estas discrepancias están casi ausentes (hasta varios cientos de litros en la lectura actual de 60,000).
Etapa 6: alerta
Utilizando la información recopilada, fue posible realizar alertas útiles:
- temperatura exterior en sms todas las mañanas (+ participación del sensor en el proyecto narodmon)
- Mensaje de transferencia de batería del UPS
- Batería del UPS baja
- mensaje de baja / alta tensión
- un mensaje sobre el calor en la mesita de noche con el equipo
- informe de baja temperatura en el ático (rescate de tomate)
- mensaje sobre la dirección mac "alien / new" en la red
- mensaje sobre alto consumo de agua (dentro de cierto tiempo)
Etapa 7: el futuro
Se compró un medidor digital en aliexpress con una salida rs232 en forma de USB. Pero aunque no peleó con él, no responde a los paquetes. Pensaremos más a fondo. Espero exprimir.
Planeo comprar un relé de control de válvula de bola (la válvula ya existe) para el control remoto de la válvula y la posible implementación del cierre automático de agua en ausencia de un hogar.
De alguna manera integrar el medidor digital de gas gallus en el circuito para notificar un depósito en funcionamiento.
Finalmente, algunos gráficos:



