
Hola muy buenas a todos, hoy quiero aportar mi pequeño granito de arena a este gran portal, que tanto me ha servido de ayuda e inspiración para mis proyectos de domótica en casa.
Bien les quiero mostrar como hacer un sensor para poder medir el nivel que queda en el deposito de gasoil y así tener una barra de estado en HomeAssistant y poder tener avisos por Telegram por ejemplo, cuando llegue a cierto nivel.
Decir que no es un sensor extremadamente exacto, ya que abría que perder mucho rato ajustando el sensor de ultrasonidos y tomando las medidas exactas de donde se coloca, y del depósito, pero para tener una idea de que nivel nos queda y tener avisos cuando está en un nivel bajo, por lo menos en mi caso cumple perfectamente su función. Bien al lio que me enrollo mucho. Necesitamos un Nodemcu esp8266 o similar, y un sensor de ultrasonidos HC-SR04 dejo un par de enlaces
Vamos a utilizar esphome para flashear el Nodemcu si no tienes claro este tema consulta en la web hay tutoriales para hacerlo. Este es el código de los sensores esphome decir que yo he aprovechado el esp y le he metido también un sensor de temperatura y un pir de movimiento para abrir la luz del almacén, pero bueno si no queréis meter eso utilizáis solo la última parte del código el de ultrasonic .
binary_sensor:
- platform: gpio
pin: D5
name: "Sensor Movimiento Almacén"
device_class: motion
i2c:
sda: D2
scl: D1
sensor:
- platform: bme280
temperature:
name: "Temperatura Almacén"
oversampling: 16x
pressure:
name: "Presión Almacén"
humidity:
name: "Humedad Almacén"
address: 0x76
update_interval: 60s
- platform: ultrasonic
trigger_pin: D7
echo_pin: D6
update_interval: 86400s
name: "Nivel Gasoil"
“El update interval lo tengo en 86400s que seria el equivalente a un dia, los primeros días lo tenia cada 60s pero me di cuenta que de madrugada cuando las temperaturas bajan mucho, no se si es, que con el frio se crea algún tipo de atmosfera o que se yo (no soy químico), pero a esas horas de madrugada y asta que subía la temperatura casi a mediodía me daba señal de lleno el depósito. Así que como no es una cosa que necesite al momento lo dejo así, que me lo comprueba solo después de comer, eso ya cada uno puede hacer sus pruebas”
La conexión con el sensor nos tenemos que fijar en conectar el D7 en trigger y echo en el D6, el esp, lo alimento con un cargador típico de móvil, en el cual el cable lo he pelado, para poder sacar dos cables de alimentación uno para alimentar el esp y otro para alimentar el sensor SR04 ya que no se recomienda alimentar desde las salidas el esp. Hay que alimentarlo directo.
Mi deposito tiene varios tapones uno en una punta (es el que utilizan para llenar) y un par en el medio en horizontal, en uno de esos e echo un agujerito para sacar los cables del sensor y he pegado el señor con silicona caliente, sin tapar los sensores (obvio) adjunto un par de fotos.
Bien con todo montado si ya tenéis echa la integración de esphome en HA y este todo ok, ya os deberían de salir los sensores en ha
Ahora pasamos la parte para mostrar el nivel en HA, es un sensor de ultrasonidos que mide la distancia, así que el sensor os mostrara la distancia que tenéis del sensor hasta el gasoil a mayor distancia menos gasoil tenéis. Tenéis que medir la altura que tiene el depósito hasta donde tengas el sensor. El máximo seria deposito vacío y el mínimo lleno (yo le he restado 20 cm ya que nunca lo lleno al máximo)
Bien teniendo esas medidas os paso los códigos para HA. Utilizaremos una custom card para mostrar la barra:
https://github.com/custom-cards/bar-card
Y un platform sensor para convertir la distancia en centímetros a un % el cual debo todo el mérito a @Jose y @Mig77angel del grupo de Telegram que sería este:
-platform: template
sensors:
nivel_gasoil_porcentaje:
value_template: "{{ ( 100 - ( ( (states('sensor.nivel_gasoil')|float) - 0.2 ) / ( 1.25 - 0.2 ) ) * 100 ) | int }}"
unit_of_measurement: "%"
Y por ultimo la card de lovelace:
direction: right
entity: sensor.nivel_gasoil_porcentaje
max: 100
min: 0
ow_value: false
severity:
- color: '#33FF35'
value: 100
- color: '#FFAE33'
value: 50
- color: '#F90C06'
value: 0
title: Nivell Gasoil
type: 'custom:bar-card'
¡¡¡Y bueno con estoy doy por terminado el tuto espero que le sirvaa a alguien cualquier cosa nos vemos en telegram!!!