Domoticz. Добавляем на панель Domoticz Uptime


Добавляем время беспрерывной работы Domoticz на главную панель.

 Перейдем в "Настройки" — "Оборудование".

Добавим виртуальное устройство.

Выберем тип — Dummy. Имя — произвольно.

Кликаем "Добавить". Увидим в списке выше наше устройство:

Кликаем "Создать виртуальные датчики".

Вводи имя датчика - Domoticz uptime. Тип датчика - Текст.

Кликаем "OK".

В списке устройств и на вкладке вспомогательных датчиков появится наше текстовое поле:

Создаем bash скрипт (подробнее тут) uptime.sh следующего содержания:

#!/bin/bash -x
pid=`ps -ef |grep "domoticz -daemon -www"|grep -v grep |awk '{print $2}'`
updz=`ps -p $pid -o %t | tail -1 | sed -e 's/^[ \t]*//;s/[ \t]*$//'`
val=$(echo ${updz/-/day(s)%20})
curl -s "http://"LOGIN":"PASSWORD"@"IP_ADRESS":8080/json.htm?type=command&param=udevice&idx="IDX"&nvalue=3&svalue=$val" > /dev/null

В последнюю строку вставьте ваши логин, пароль, Ip адрес сервера Domoticz (без кавычек). Также вставьте номер ("IDX") вашего созданного виртуального датчика Domoticz uptime (без кавычек), который можно посмотреть в "Настройки" — "Устройства":

Скрипт при вызове записывает в значение нашего датчика uptime сервера Domoticz.

Создайте сценарий на Lua в Domoticz (тип - Device) следующего содержания:

function timedifference(timestamp)
y, m, d, H, M, S = timestamp:match("(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)")
difference = os.difftime(os.time(), os.time{year=y, month=m, day=d, hour=H, min=M, sec=S})
return difference
end

commandArray = {}
s = otherdevices_lastupdate['Domoticz uptime']
if(timedifference(s) > 300) then
os.execute ("/home/pi/domoticz/scripts/bash/uptime.sh")
end
return commandArray

Измените расположения вашего скрипта uptime.sh.

Сценарий каждые пять минут вызывает наш bash скрипт.

Получим результат вида: