Новый 2024-й год: День 10
Утро. Убрал за котами, заварил чай, заварил дошик, скушал картошину, пока ждал лапшу.
Полез искать причины зависаний коробочки RK3318.
По косвенным признакам выходит, что перегрев тут ни при чём.
Значит нужно придумать вочдог, чтобы рестартовать при зависаниях. Более детально заморачиваться нет никакого желания.
Пока тупо сделал перезагрузку по расписанию 2 раза в день.
Надеюсь этого будет достаточно.
Снова пришёл на кухню. Смотрю. Кто-то из котов отгрыз кусок гирлянды. Замкнул место разрыва накоротко.
Вроде работает. Изолировал термоусадкой.
А вот и лапша заварилась. Время завтракать.
Главное не играть сегодня в 7d2d.
Вот вроде утро, и вдруг уже вечер.
Не знаю как так получается.
Сижу в задумчивости.
С одной стороны, я научился работать с Алисой через Home Assistant. Теперь она на моё «Алиса, сколько осталось приседаний», сообщает, что «на сегодня осталось 0 приседаний».
И это правда! Динамическую суточную норму она берёт из моей личной антидрыщёвой папки.
Более того! Теперь я могу прикрутить оповещение к какому-нибудь самодельному сенсору или устройству.
Например, пришла почта, и Алиса скажет «вам новое письмо», а потом, спустя минут пять, будет укорять, что я его всё-ещё не прочитал. Ну… это в порядке примера. А так, можно навесить на детектор влажности, и Алиса вдруг скажет: Полейте горшок номер 10.
Говорить у меня и подкроватный сервер умеет. Просто там голос Алисе всё-таки уступает, хотя это дело работает не из облака.
Что? Как я прикрутил Алису к Home Assistant?
Да в общем-то методом научного тыка.
- Добавил HACS.
- Вбил в нём «yandex».
- Нашёл аж целых два дополнения по колонкам.
Какое-то из этих дополнений подключаю к колонке через облако.
Как это делал — не помню, но подобные вещи без особых сложностей гуглятся. Вот тут, например.
Самым сложным было сделать автоматизацию.
Когда на вебхук приходят данные, и время при этом дневное, на колонку отправляется текст.
Вебхук ловит POST-запрос от другого сервера. Я его называю «подкроватным».
Из этого запроса вытаскивается параметр «mess» (это я так обозвал), содержащий текст, который нужно проговорить.
Вот так это сделано.
А так я эти данные отправляю из PHP-скрипта.
// Числительные function number($n, $titles) { $cases = array(2, 0, 1, 1, 1, 2); return $titles[($n % 100 > 4 && $n % 100 < 20) ? 2 : $cases[min($n % 10, 5)]]; } //CURL-запрос function curl_response($url) { $ch = curl_init(); curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_RETURNTRANSFER, true); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3); curl_setopt($ch,CURLOPT_TIMEOUT, 20); $response = curl_exec($ch); curl_close ($ch); } //$daily_lift_d - содержит количество оставшихся на сегодня приседаний. Данные парсятся из файла, лежащего в папке пользователя. $to_spich = "на текущие сутки осталось " . $daily_lift_d . " " . number($daily_lift_d, ['приседание', 'приседания', 'приседаний']); $url = "IP_HA:PORT_HA/api/webhook/WEB_HOOK?mess=" . urlencode($to_spich); curl_response($url);
Обычный CURL.
А устройство «Количество приседаний», которое запускает Алиса, сформировано в Home Assistant в файле /homeassistant/configuration.yaml
Вот кусок кода, который создаёт эту кнопку.
command_line: # get Squats - switch: name: 'Счётчик приседаний' command_on: '/usr/bin/curl -X GET https://САЙТ/squats/' command_off: '/usr/bin/curl -X GET https://САЙТ/squats/' unique_id: 'Squats_on_Day_http'
Т.е. идёт вызов скрипта на сайте, а уже он (с помощью кода который выше) отправляет запрос. После добавления просто перезагружаю HA (Home Assistant).
Поскольку и подкроватный сервер, и коробочка с Home Assistant, лежат в одной локальной сети, всё и работает нормально.
Остаётся добавить устройство в «Умный дом с Алисой».
Иду в «Настройки», «Устройства и службы», «Yandex Smart Home» и жму кнопку «Настроить». А там в попапе «Объекты для передачи в УДЯ» выбираю нужное устройство.
И всё. Устройство появляется в «Умном доме Яндекса», я обозначаю его как «тумблер» и включаю в сценарий, где на вопрос «сколько приседаний осталось», Алиса включит этот тумблер. Ну а тумблер запустит цепную реакцию, в ходе которой колонка получит нужный текст и произнесёт его вслух.
Чем ещё заняться сегодня? Вообще, я бы поиграл, но сначала загляну в задачу от Учебного Центра. Там срочно.
Срочно, но быстро. А дальше была 7d2d. Готовился к седьмой ночи. Вроде даже что-то получилось. Во всяком случае, робомолот сделал и даже обзавёлся пистолетом и арбалетом. Правда боеприпасов там мало, но посмотрим.
А пока, I’m OFF.
Напишите комментарий