Метеостанция без метеостанции

Материал из База знаний
Перейти к навигации Перейти к поиску



Как известно, на текущий момент датчики поддерживаются Умным домом Яндекса ограниченно, и не для всех датчиков показания озвучиваются. Как быть?

На помощь приходит Кузя ;)


Метеостанция с датчиками и Кузей

Задача решается в несколько несложных действий:

  1. На сайте народного мониторинга создаём приложение (меню "Софт" > "Приложения для проекта"),
  2. Генерируем и берём оттуда "Ключ API" (для полной функциональности необходимо подтвердить email-адрес),
  3. id нужного нам датчика (см. иллюстрации ниже).
  4. Создаём в Кузе (подробнее см, например, [здесь]) новое GET-правило с параметрами:
    • Активационная фраза: Давление
    • Ответ Кузи: Давление {sensors.0.value} (обратите внимание, именно 0, а не id датчика!)
    • URL: https://narodmon.ru/api?cmd=sensorsValues&sensors=id_датчика&uuid=произвольный_id&api_key=ключ_API
      где:
      1. id_датчика - числовой! Если в свойствах вашего датчика ID выглядит как S12345, в строке надо указать только 12345!
      2. произвольный_id - любая уникальная строка, лучше всего любой md5-хэш - и уникально, и не надо мучаться с выбором, и правильно обработается API.
      3. ключ_API - полученный в п.2 ключ.
  5. Ставим галочку "Ждать ответ от сервера".
  6. Вверху страницы сайта Кузи запоминаем/копируем значение "Код для объединения устройств c этими правилами: ххххххххххх", он нам понадобится для сопряжения при первом запуске Кузи на устройстве.


Настройка навыка

При первом запуске на любом из устройств теперь необходимо ввести код объединения правил Кузи под конкретным аккаунтом для каждого из устройств, включая колонки. Это необходимо, чтобы убедиться, что именно вы - владелец этих правил.

Для смартфона и ПК можно скопировать код, колонке придётся продиктовать на слух. 
Рекомендуем читать по цифре: один-три-три-восемь-ноль-девять-один.

Домовёнок сначала предложит потренироваться и сказать команды на включение и выключение условной лампы. Можно пройти вместе с ним по этим шагам, а можно сразу после приветствия сказать: "Ввести код", и продиктовать (или вставить скопированный) ваш код с сайта alexstar.

Готово! Теперь можно сказать: "Алисе, запусти навык Домовенок Кузя"; а когда навык запустится - нашу активационную фразу "Давление", и получить информацию с датчика.



md5 для самых ленивых ))

Введите кулаком по клавиатуре произвольную строку для генерации хэша md5:


Улучшения и расширенные возможности

Нет предела совершенству! Делаем работу с метеостанцией ещё комфортнее:


Несколько датчиков в одном запросе

API narodmon.ru позволяет одной строкой запросить сразу несколько датчиков, просто перечислив их через запятую (без пробелов).

Например, у нас есть датчик S12345, измеряющий температуру, и S67890, измеряющий давление. Дополним строку в поле "URL управления запросом":

https://narodmon.ru/api?cmd=sensorsValues&sensors=12345,67890&uuid=здесь_md5_хэш&api_key=здесь_API_key

...и строку в поле "Ответ Кузи":

{sensors.0.value} по Цельсию, {sensors.1.value} мм ртутного столба

Теперь при запросе Кузя сообщит строку с показаниями обоих датчиков. Если необходимо добавить больше датчиков, расширяйте поля по аналогии, не забывая увеличивать и индексы датчика в ответе Кузи.


Сценарии

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

  • Запуск навыка с немедленным выполнением команды и выходом после неё: "Попроси Домовёнка Кузю Давление";
  • Сценарии Умного дома Яндекса, позволяющие назначить различные действия на условные фразы.


Метеостанция совсем без датчиков?

Разве это возможно? Да, если на народном мониторинге рядом с нужным вам местом уже находятся чьи-то подходящие датчики! Просто укажите эти датчики в настройках - и можно получать оперативную сводку о погоде.

Что особенно интересно - можно собирать датчики из любых городов! И собрать целую коллекцию метеосводок)


Возможные ошибки

Совет по отладке

Если что-то идёт не так, то самый просто способ проверить - это скопировать строку из созданного GET-правила в браузер и открыть её там, как обычный сайт. На странице вы увидите то, что присылает Кузе сервис narodmon, и сможете использовать его для поиска ошибки или улучшения информативности ответа.

Например, строка запуска:

https://narodmon.ru/api?cmd=sensorsValues&sensors=12345&uuid=здесь_md5_хэш&api_key=здесь_API_key

Пример ответа в браузере, когда всё хорошо:

{"sensors":[{"id":12345,"type":1,"value":0.3,"time":1613728808,"changed":1613728808,"trend":0}]}

Пример ответа в браузере, когда всё плохо:

{"error":"UUID_INCORRECT","errno":400}

Теперь об этой и других ошибках подробнее:


В браузере выводится сообщение об ошибке

{"error":"Недопустимое значение id","errno":400}

Скорее всего, вы невнимательно указали датчик вместе с буквенным префиксом (например, S12345).

 {"error":"UUID_INCORRECT","errno":400}

Возможно, вы указали слишком короткую строку, или содержащую некорректные символы. Вернитесь к началу инструкции: мы не зря советовали взять хэш md5, он работает гарантированно, и не требует никаких усилий для его создания.


Ошибок нет, датчик передаёт значения, но не озвучивается

Возможно, ответ в браузере при этом будет выглядеть как {"sensors":[]}

Запрошенный датчик не опубликован (имеет статус приватного на narodmon). Сделайте датчик публичным, или обратитесь к его владельцу, если датчик не ваш (подробнее в предыдущем разделе).


P.S. В основу инструкции легли материалы сайта Домовёнка Кузи, личный опыт и лайфхак из нашего тг-чата.
Источник — https://wiki.yaboard.com/index.php?title=Метеостанция_без_метеостанции&oldid=5270 // MOD ext links // End MOD