Integración DIFERENCIA ENTRE HORAS en Domoticz con Raspberry Pi

Aquí podréis encontrar todo lo relacionado con la herramienta Domoticz orientada al uso con los dispositivos inteligentes de Xiaomi.
Avatar de Usuario
Jordi
Mensajes: 114
Registrado: 30 Jul 2017, 11:05

Integración DIFERENCIA ENTRE HORAS en Domoticz con Raspberry Pi

Mensaje por Jordi » 12 Jun 2018, 18:30

Script para saber la diferencia entre horas y minutos. Es útil por ejemplo para conocer las horas de sueño. TIME1 seria la hora de ir a dormir y TIME2 la hora del despertador de mañana. Podemos crear un switch virtual de texto en Domoticz para mostrar las horas de sueño y que nos guarde un registro o guardarlo diariamente en un archivo en la raspi.

Copiamos el código tal cual en un archivo llamado por ejemplo difhoras.sh dentro de /home/pi/domoticz/scripts/ .TIME1 seria la hora de inicio y TIME2 seria la hora final. Modificamos únicamente estos dos parámetros. Ejecutamos el script o copiamos el código modificado dentro del terminal de la raspi y nos dará como resultado la diferencia en horas y minutos entre TIME1 y TIME2.

------

OPCIÓN A (MOSTRAR el resutado EN EL TERMINAL)

Código: Seleccionar todo

TIME1=19:50
TIME2=08:00
D1=$(date -d "$TIME1" '+%s')
D2=$(date -d "$TIME2" '+%s')
echo `date -u -d@$((D2-D1)) +%H:%M`
------

OPCIÓN B (GUARDAR el resultado EN UN ARCHIVO txt)
En este ejemplo el script crea el archivo llamado horedif.txt dentro de /home/pi/domoticz/scripts y guarda en él el resultado.

*Nota: para guardarlo en un archivo ya veis que he implementado la temporización (sleep 1 &&). Es importante darle tiempo para que vaya calculando si no os podéis encontrar que os cree el archivo pero no guarde nada.

Código: Seleccionar todo

TIME1=19:50
TIME2=08:00
D1=$(date -d "$TIME1" '+%s')
sleep 1 &&
D2=$(date -d "$TIME2" '+%s')
sleep 1 &&
difho=$(date -u -d@$((D2-D1)) +%H:%M)
sleep 1 &&
echo $difho>/home/pi/domoticz/scripts/horedif.txt
------

OPCIÓN C (ENVIAR el resultado A SENSOR de Domoticz)
En este caso el script envía los datos a un Sensor Virtual (Tipo Custom Sensor) con Etiqueta Axls "hs". Recordad modificar el IDX del sensor en el script.

Screenshot (21h 58m 40s).jpg
Screenshot (21h 58m 40s).jpg (38.67 KiB) Visto 33 veces

*Nota: Es importante que mantengais la temporización (Sleep 1 &&). Si veis que no acaba de actualizar el switch ampliad los tempos a 2 segundos (Sleep 2 &&).

Código: Seleccionar todo

TIME1=19:50
TIME2=08:00
D1=$(date -d "$TIME1" '+%s')
sleep 1 &&
D2=$(date -d "$TIME2" '+%s')
sleep 1 &&
difho=$(date -u -d@$((D2-D1)) +%H:%M)
sleep 1 &&
curl -s -i -H "Accept: application/json" "http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=___IDXSensor__&nvalue=0&svalue=$difho"

Responder

Volver a “Domoticz”