Задача: Хочу видеть в Domoticz текущий курс доллара

Сегодня я для себя покажу, каким я способом решил поставленную задачу. Для чего это? А просто так, просто уже на основе этого я смогу что-либо еще таким образом сделать, да и интересно. Делаю через скрипт на Bash который получает значение, приводит его к виду который отправляется через json запрос в Domoticz.

Шаг №1: Обновляю информацию о дефолтных репозитариях и обновляю систему до самого актуального состояния в рамках текущего релиза Ubuntu 18.04 Server:

Шаг №2: Чтобы получить текущий курс доллара:

Но в Domotiz я буду передавать полученное значение не разделенное запятой, а точкой, а потому изменяю скрипт:

Шаг №3: Создаю в Domotiz шаблон по виртуальный сенсор = Dummy:

http://IP&DNS:8080 (http://172.33.33.122) - user&pass - Настройка - Оборудование -

  • Включено: Активировано
  • Имя: Dummy
  • Тип: Dummy (Does nothing, use for virtual switches only)
  • Задержка данных: Отключен

Создаю в Domotiz шаблон по виртуальный сенсор = Dummy:

и нажимаю "Добавить"

Затем на основе данного шаблона создаю виртуальный датчик

нажимаю на "Создать виртуальный датчик"

Создаю виртуальный датчик

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

  • Имя: Курс $
  • Тип датчика: Custom Sensor
  • Метки оси: $

и нажимаю "ОК"

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

Созданный виртуальный датчик размещается во вкладке "Вспомогательные"

Созданный виртуальный датчик размещается во вкладке "Вспомогательные"

Шаг №4: Чтобы передать значение из скрипт получения текущего курса доллара в виртуальный датчик вкладки "Вспомогательные" нужно знать его IDX. Его можно посмотреть если у виртуального датчика с именем "Курс $" нажать "Редактировать"

Узнаю IDX виртуального датчика

либо перейти:

http://IP&DNS:8080 (http://172.33.33.122) - user&pass - Настройка - Устройства

Либо по-другому узнаю idx виртуального датчика

после на основе добавленного создаю виртуальный датчик

Шаг №5: Пробую передать произвольное значение в виртуальный датчик через запрос посредством утилиты curl:

  • -s, --silent Silent mode
  • -i, --include Include protocol response headers in the output
  • -H, --header <header/@file> Pass custom header(s) to server

Результат:

Передача курса доллара через Curl запрос

Шаг №6: А теперь создаю скрипт который полученный результат получения курса доллара на текущий день присвоит виртуальному датчику по его IDX:

В bash есть опция -x , которая будет показывать вам команды по мере их выполнения (запустите сценарий с bash -x script.sh вместо bash script.sh или ./script.sh )., это покажет вам команды в правильных кавычках и будет более полезно, чем печатать их с помощью echo.

вижу что до curl запроса скрипт не доходит, почему? А все потому, что нужно строку exit 0 поставить в самом конце после curl.

Итого скрипт и его результат:

Смотрю на виртуальный сенсор:

Передача значения курса доллара через скрипт и json

Шаг №7: Чтобы скрипт отрабатывал каждый день в 12:05 и тем самым обновлял значение в Domoticz создаю задание, т.к. по данным центрального банка России каждый рабочий день в 11:30 по московскому времени устанавливается на текущий день курс доллара, а я с запасом по времени обновляю в 12:05. К уже существующему заданию добавляю следующей строкой свой вызов скрипта:

Шаг №8: Ниже история работы скрипт и получаемых значений с боевого Domoticz:

История работы скрипт и получаемых значений с боевого Domoticz:

Итого я разобрал данную задачу оформив в шагах как ее реализовать, просто на ее основе уже можно делать что-то похожее.

На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.

от ekzorchik