Перейти к содержанию

Метеостанция без метеостанции: различия между версиями

Материал из Wiki yaboard
Нет описания правки
Нет описания правки
Строка 6: Строка 6:
Как известно, на текущий момент датчики поддерживаются Умным домом Яндекса довольно ограниченно (розетки, увлажнители), при этом их показания не озвучиваются. Как быть?
Как известно, на текущий момент датчики поддерживаются Умным домом Яндекса довольно ограниченно (розетки, увлажнители), при этом их показания не озвучиваются. Как быть?


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




Строка 13: Строка 13:


Задача решается в несколько несложных действий:
Задача решается в несколько несложных действий:
# На [https://narodmon.ru сайте народного мониторинга] создаём приложение (меню "Софт" > "Приложения для проекта"),  
# На [https://narodmon.ru сайте народного мониторинга] создаём '''приложение''' (меню "Софт" > "Приложения для проекта"),  
# Берём оттуда "Ключ API" и id датчика (см. иллюстрации ниже).
# Генерируем и берём оттуда "'''Ключ API'''" (для полной функциональности необходимо подтвердить email-адрес),
# Создаём в Кузе (подробнее см, например, [[https://wiki.yaboard.com/w/Алиса,_Ардуино_и_Blynk_-_делаем_собственное_устройство#.D0.9A.D1.83.D0.B7.D1.8F здесь]]) новое GET-правило с параметрами:
# '''id''' нужного нам датчика (см. иллюстрации ниже).
# Создаём в Кузе (подробнее см, например, [[https://wiki.yaboard.com/w/Алиса,_Ардуино_и_Blynk_-_делаем_собственное_устройство#.D0.9A.D1.83.D0.B7.D1.8F здесь]]) новое '''GET'''-правило с параметрами:
#* Активационная фраза: Давление
#* Активационная фраза: Давление
#* Ответ Алисы: Давление {sensors.0.value}
#* Ответ Алисы: Давление {sensors.0.value}
#* URL: <nowiki>https://narodmon.ru/api?cmd=sensorsValues&sensors=</nowiki>'''ID_датчика'''&uuid='''Произвольный_идентификатор'''&api_key='''Ключ-API-приложения-которое-мы-создали'''&lang=ru
#* URL: <nowiki>https://narodmon.ru/api?cmd=sensorsValues&sensors=</nowiki>'''id_датчика'''&uuid='''произвольный_id'''&api_key='''ключ_API'''<br>где:
#* '''id_датчика - числовой!''' Если в свойствах вашего датчика ID выглядит как S12345, в строке надо указать только 12345!
#* '''произвольный_id''' - любая уникальная строка, лучше всего '''любой md5-хэш''' - и уникально, и не надо мучаться с выбором, и правильно обработается API.
#* '''ключ_API''' - полученный в п.2 ключ.
# Ставим галочку "Ждать ответ от сервера"
# Ставим галочку "Ждать ответ от сервера"


 
  Последним важным шагом вверху страницы сайта Кузи запоминаем или копируем значение "Код для объединения устройств c этими правилами: '''ххххххххххх'''", его потребует навык при первом запуске (чтобы дополнительно убедиться, что именно вы владелец этих правил).
  Произвольный_идентификатор - '''любая уникальная строка''', ''общая на все вносимые запросы''.
Для простоты можно указать '''любой md5-хэш''' - и уникально, и не надо мучаться с выбором.
 
Вверху страницы сайта Кузи запоминаем или копируем значение "Код для объединения устройств c этими правилами: '''ххххххххххх'''", его потребует навык при первом запуске.


Всё! Теперь говорим Алисе: '''"Запусти навык Домовенок Кузя"'''; а когда навык запустится - '''"Давление"''' (наша активационная фраза) - и получаем информацию с датчика.
Всё! Теперь говорим Алисе: '''"Запусти навык Домовенок Кузя"'''; а когда навык запустится - '''"Давление"''' (наша активационная фраза) - и получаем информацию с датчика.
Строка 31: Строка 31:


<gallery>
<gallery>
Файл:Meteo1_sensor_id.jpg |Где взять ID датчика?
Файл:Meteo1_sensor_id.jpg |Где взять id датчика
Файл:Meteo2_rule.jpg |Заполнение правила для Кузи
Файл:Meteo2_rule.jpg |Заполнение правила для Кузи
Файл:Meteo3_exec.jpg |Результат
Файл:Meteo3_exec.jpg |Результат
Строка 37: Строка 37:




== Сценарий ==
== Возможные ошибки ==
 
 
=== Совет по отладке ===
 
 
Если что-то идёт не так, то самый просто способ проверить - это скопировать строку из созданного 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). Сделайте датчик публичным, или обратитесь к его владельцу, если датчик не ваш (об этом подробнее ниже).
 
 
== Улучшения и расширенные возможности ==
 
 
=== Несколько датчиков в одном запросе ===
 
 
=== Сценарии ===





Версия от 10:13, 19 февраля 2021


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

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

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

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

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

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

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

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

Если что-то идёт не так, то самый просто способ проверить - это скопировать строку из созданного 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. В основу инструкции легли материалы сайта Домовёнка Кузи и лайфхак из [нашего тг-чата]