Pull to refresh

Comments 28

Сожжено энергии

Потрачено (с)
А почему не угля?))

Как всегда: готовишь ответы на все каверзные вопросы, прокручиваешь все возможные сценарии в голове, а тут — бац! И весь сценарий накрылся. К такому меня жизнь не готовила.
А по факту: ваш вариант звучит конечно же более правильно )

Я если честно, даже не сразу обратил внимание, а когда обратил — не сразу понял, что именно меня привлекло, то что сожжено энергии, или таки что размерность в Ваттах, а не в Джоулях)

А вот это уже промах с моей стороны. Не отмажешься сказками про деревенский акцент)) Спасибо, что заметили… стыдно. кВт*ч конечно же.

>SkyKettle
Рассел задумчиво смотрит в пустую чашку…
UFO just landed and posted this here
И ни слова про блокчейн с майниногм.
Ура! Наконец что-то полезное, а не очередной градусник.
Спасибо за статью!

Рад, что вам понравилось.

Мне кажется, многим было бы понятнее, если бы протокол был описан в терминах GATT, а не только в виде примеров кода на Python, то есть, какие там службы и характеристики, что туда можно читать/писать и в каком формате.

Совершенно согласен. Однако сделал это осознанно. Статья и без того получилась объемной, экономил как мог. К тому же она более практическая с уклоном применения в HomeAssistant. В самом начале я оставил ссылку на статью другого автора, там есть описание протокола в нужных вам терминах, там не так много поменялось. К тому же в моем коде за оберткой из pexpect довольно легко увидеть "голый" gatttool, например, легко видеть "хендлы", к которым обращаюсь, а также сами команды. Команды и ответы содержат последовательность байтов информации. Те байты, в которых я разобрался приведены с описаниями, чтобы их можно было правильно задать или прочесть.

Спасибо, как раз купил на пробу два стартовых комплекта розетка+цоколь от Редмонд и думал, как их при случае в рамки стандарта загнать, чтобы докупать другие устройства от других производителей (вроде ни аналога реле sonoff, ни диммеров у Редмонд нету), а тут как раз впша статья — можно будет малой кровью справиться по аналогии.

Да, я уже указывал в статье, что в идеале бы написать общий компонент Ready4Sky с возможностью подключения любого устройства из серии.
Насчет малой крови — это как посмотреть. Разобравшись в официальном приложении получаешь все устройства серии, а описанный тут путь — это грубое решение
конкретной задачи в лоб )) Если бы исходники официального приложения в удобоваримом виде получить...

Разбираем протокол чайника


И чайник шепнул утюгу:
«Я дальше идти не могу»…
Корней Чуковский
Господи, разбор протокола обмена данными с чайником.
Жить в 2018 — это офигенно.

Более того, на него ещё и обновления ставить нужно. У меня он из коробки не кипятил (отключался слишком рано), пришлось идти с ним в сервис, чтобы там подключились к нему телефоном (мой на тот момент не умел в BLE) и обновили прошивку.

Да, обновить чайник — это звучит. К сожалению ожидания не всегда соответствуют реалиям. Данный чайник обновился у меня всего раз, сразу после покупки. Либо прошивка получилась прям идеальной, либо не очень это нужно производителю — лучше новых устройств наклепать, чем улучшать старые.

У меня в планах на неопределённое будущее есть разработка альтернативного приложения для этого чайника. Родное уже достало — сразу не подключается, приходится несколько раз тыкать на кнопку "повтор", а потом ещё и каждый раз переключать с кипячения на нагрев. Если руки дойдут, ваш разбор очень пригодится.


А ещё чайнику очень не хватает возможности узнать, сколько в нём осталось воды. Есть идея попробовать встроить в подставку весы с ESP8266 или чем-то подобным.

Возможно, нестабильность — это не вина приложения, а вина аппаратной\программной части самого чайника. У меня в HomeAssistant тоже иногда проскакивают ошибки коннекта. Я специально для этого и ввел параметр "время обновления состояния", чтобы наблюдать за этим. Абсолютно не критично оказалось: все автоматизации, связанные с чайником, работают как часы! В моменты ручного запуска\остановки из интерфейса HomeAssistant тоже ни разу не подводил.
По поводу датчика уровня — согласен, не хватает. В описании к чайнику было сказано, что он не будет кипятиться, если нет воды… я потратил вечер, чтобы найти этот параметр в запросах\ответе, пока не провел эксперимент. Реальность больно ударила меня: там тупо термореле стоит, а не датчик уровня… а я так надеялся. Если его включить пустым, то он включится и через несколько секунд его вырубит защита.

Если идея осуществится — обязательно поделитесь ;)

Давно руки чесались «поковырять» его… а тут всё готовое, на блюдечке.

Но довольно коварный чайник. :( У меня он часто отказывается самостоятельно отключаться, хотя вода вовсю кипит. Приходится следить за ним, без присмотра оставлять просто опасно. При желании в сети можно найти отзывы с такой же проблемой, так что случай, увы, не единичный.

Плюс конфликтует с моноколесом. Софтина для управления колесом то и дело пытается подключиться к чайнику. :) Больше ни с одним девайсом такого не возникает. Возможно, что-то общее между ними есть.
К счастью, никогда не сталкивался с подобным поведением. Особенно в плане не отключения после кипячения. Может проблема как раз с параметром, который у меня называется howMuchBoil? Не пробовали в фирменном приложении уменьшать его?
Этот баг весьма рандомный. Может отключиться, а может и не отключиться, какой-то зависимости от чего-либо замечено не было.
В принципе, могу поэкспериментировать, конечно… Но из-за этой рандомности сложно судить о результатах.

edit: сейчас что-то подумалось, может датчик температуры глючит как-то… что-то я не догадался по приложению глянуть.
Удалось словить ситуацию. Действительно, что-то с определением температуры. Зависло на 94 градусах и оставалось так около минуты, дальше ждать не стал, ибо кипяток уж выплёскиваться начал.
Вот так HTTP 418 из невинной шутки превращается в самый обычный статус-код…
Очевидно же, что
> 55 01 01 02 1d aa
— это версия ПО (2.29) — и никаких там таймаутов на дисконнект.

> Здесь tmz — часовой пояс в обратном hex формате (например, часовой пояс +3 переводим в секунды, затем в hex формат и получаем hex(3*60*60)=2a30, разбиваем по парам и выводим в обратном порядке 302a)

мозг взорвался. называется просто «little-endian».
Вот и нет больше уличной магии.
Спасибо за находку ) Этот запрос можно вообще убрать из модуля.
Насчет «little-endian» утверждать не буду, но данным термином не пользовался, так как не весь ответ от чайника соответствует данной концепции, а лишь отдельные байты. Возможно, не прав.
Only those users with full accounts are able to leave comments. Log in, please.

Articles