POER термостат (thermostat, терморегулятор) с управлением через интернет - честный обзор

Сегодня лень писать подробный обзор, поэтому просто опишу, что не понравилось. В целом оффлайновая часть сделана неплохо (пластик, кнопки, внешний вид — OK), есть только несколько косяков. Далее я использую следующую терминологию: «коробка» — блок с реле, который подключается к котлу, «термостат» — та часть, где часы с термометром, «гейт» — круглая фигня, которая вставляется в розетку и используется для связи термостата с роутером.

Гистерезис.

Гистерезис 0.3 градуса — фиксированный, изменить его нельзя. Я связывался перед покупкой с продавцом (он же производитель) и спрашивал, планируют ли они сделать его изменяемым и накатал целый трактат о том, что в разных обстоятельствах больший или меньший гистерезис может дать более качественное поддержание температуры, но продавец сказал, что они в этом деле профи с большим опытом и не видят смысла в изменении гистерезиса. Тем не менее, в реальности стало ясно, что гистерезис в 0.1-0.2 градуса был бы лучше, по крайней мере, пока на улице не жутко холодно. Ситуация такая. Ставим, например, 21.5 градуса, котел греет батареи, температура в доме доходит до 21.8 градусов, термостат отключает котел, но батареи остаются горячими и продолжают греть помещение. Потери тепла в доме в осенний период несущественные. В моем тесте температура в комнате поднялась до 22.9 градусов, прежде чем начала уменьшаться (да и то входную дверь постоянно открывали/закрывали, так что в полностью закрытой комнате было бы даже теплее). Далее термостат включил котел при падении температуры до 21.2 градуса уже в конце дня. То есть колебание температуры уже не обещанные 0.6 (плюс-минус 0.3 от заданной температуры), а 1.6 градуса. И это с алюминиевыми радиаторами. С чугунками инертность (время нагрева/остывания батарей) еще выше, и удерживать желаемую температуру будет еще сложнее. Понятно, что скорость выдувания тепла из дома тоже влияет — в более холодную погоду колебание температур будет меньше, в более теплую — больше. Также немного снизить колебание температур можно понижением температуры теплоносителя до 40 градусов в относительно теплые дни (больше нуля), хотя при этом КПД котла существенно падает (будете больше платить за газ). В любом случае, учитывайте это — если вам нужна более стабильная температура — выбирайте термостат с регулируемым гистерезисом и подбирайте его опытным путем.

Непредсказуемое состояние реле при потере связи с термостатом, замораживание котла при севших батарейках, туповатое «ручное» управление на коробке с реле.

Еще один косяк — состояние реле в случае любых проблем со связью приемника/передатчика определяется функцией random(), то есть непредсказуемо. Если котел в это время был включен, он и будет включен, если был выключен, останется выключенным. Что еще более печально, при потере электропитания реле принимает положение выключено. Чем это опасно: если уезжаете на зиму, оставляя термостат, например, на 7 градусов, а батарейки в термостате сядут, котел останется либо включенным, либо выключенным с 50% вероятностью, а если еще и электричество выключат, реле точно выключится и больше не включится, то есть вы останетесь на 100% без отопления и заморозите дом. А теперь подумаем: реле ставится вместо постоянно замкнутой перемычки на котле, и было бы логично, если бы и реле было по умолчанию замкнутым, тогда при возобновлении элетроснабжения котел продолжил бы работу, даже если сам термостат не выйдет на связь по тем или иным причинам. Вроде бы производитель хотя бы догадался восстанавливать связь реле с термостатом после сбоев в электроснабжении. Кстати, в приложении poersmart можно просматривать заряд батареи, хотя новые energizer на 1.6 вольт определяются как 88%. На самом термостате якобы есть индикатор «низкий заряд батарей», но когда он включается, и включается ли вообще, и сколько времени после его активации может еще проработать термостат — мне неизвестно.

Еще в этот раздел можно добавить глуповатую работу кнопок override на коробке с реле. В теории они должны вручную включать и выключать реле в случае, если нужно подбавить жару или наоборот выключить обогрев в обход термостата. В общем, кнопки именно так и работают, но состояние сохраняется только до получения очередного сигнала с термостата, который высылается каждую минуту. То есть по сути, пока выносной термостат активен, кнопки override бесполезны. Думаю, для целей ручного управления котлом в обход реле и термостата есть смысл поставить на провод из котла свой ручной замыкатель до коробки с реле, тогда если реле или термостат накроется в самый неподходящий момент, не придется браться за отвертку и отвинчивать коробку, чтобы соеденить провода вручную — простое переключение своего переключателя вернет котел в обычный режим работы (то есть с обычной перемычкой). Пока я нашел более элегантное решение обхода термостата. Дело в том, что коробка содержит два реле для двух термостатов, но смысла покупать два термостата нет. Если вы их разнесете в комнаты с существенно разными теплопотерями, все равно первым будет всегда срабатывать тот, который в более холодной комнате, а второй будет работать обычными часами с термометром. Поэтому у меня один термостат находится в жилой части дома, где нужна самая высокая температура, и завязан на первое реле, а температура в хозяйственных частях дома может быть ниже, чем в спальне, и убавляется кранами на радиаторах до нужного уровня. Второе же реле в коробке как бы остается без дела. Но вот тут-то и пригодится вторая кнопка override: так как второго термостата нет, состояние второго реле всегда будет определяться положением, установленным вручную, и не будет сбрасываться каждую минуту, как в случае с первым реле. Итак, запараллеливаем оба реле и получаем автоматическое включение обогрева с термостата и ручное включение обогрева со второй кнопки override в случаях, когда термостат считает, что топить не надо, а вам нужно подбавить тепла. Конечно, можно сбегать к термостату, поставить на нем заведомо высокую недостижимую температуру и котел будет фигачить без перерывов, а потом снова вернуть температуру на термостате на комфортную, но мне кажется это излишне замудренным. Мне проще нажать одну кнопку на коробке, и котел также будет постоянно работать, пока я не нажму кнопку снова. Для чего я это использую: с одного котла у нас две зоны отопления — жилая и хозяйственная. Для экономии газа, в хозяйственной части температура поддерживается ниже домашней, так как люди туда ходят эпизодически и ненадолго, и просто не успевают замерзнуть. Например, если в доме будет 21 градус, то в хозяйственной может быть 18-19 градусов. Но иногда нужно провести какое-то время в хозяйственной части, и хочется провести его в комфорте, тогда там открываются перекрытые батареи и нужно поддать тепла. Если котел в это время работает, проблем нет, но если в доме уже тепло и термостат выключил котел, как раз и появляется необходимость «обмануть» термостат и запустить котел вручную. Вот для этого случая я и подключил второе реле, как описал выше. Когда температура в хозяйственной части поднимается, я отключаю второе реле, и дальше термостат уже управляет котлом как считает нужным. Короче, кому интересно такое решение без дополнительных тумблеров, прилагаю фотографию разводки электропроводов:

N и L — в розетку, синий и коричневый A и С — вместо перемычки в котле, B не трогаем (они для кондиционеров).  Связываете термостат с первым реле, тогда второе реле будет управляться только второй кнопкой override. Таким образом можно только включать отопление вручную. Чтобы отключать обогрев в обход термостата, нужно ставить физический размыкатель на провода перед вводом в эту коробку, но у меня пока такой необходимости не было, так как если отопление не нужно, проще выключить котел или перевести его в летний режим.

Расписание — в топку.

Следующее, что не понравилось — навязанное расписание, которое толком не отключается и издевательски неудобно редактировать. По сути, мне нужен был термостат без расписания, который регулярно держит одну и ту же температуру, но, по-умолчанию, прибор работает в режиме расписания (да еще и нелепого  — ночью снижает температуру вроде до 16 градусов!). Даже если вы удалите все точки расписания, прибор все равно будет работать с расписанием, у которого установка температуры происходит раз в день в полночь. Почему это важно: потому что ручная настройка в режиме AUTO MAN сбрасывается при следующем событии в расписании. Предположим, у вас такое расписание:

0:01-6:00 = 19 градусов
6:00-23:00 = 21 градус
23:00-0:00 = 19 градус

Проще говоря, днем 21 градус, ночью 19 градусов. И вот, что-то вы подмерзли в 23:30 и решили поднять температуру до 23 градусов, ставите, радуетесь жизни до 0:00, после чего она слетает на 19 градусов, и вы мерзните снова. Просыпаетесь, снова ставите на 23 градуса, а в 6 утра она снова слетает на 21 градус. С одной стороны — логично, расписание должно выполняться, но с другой стороны, вы не можете приостановить выполнение расписания на произвольный  период времени, когда вам хочется какой-то другой температуры, а перенастроить расписание — это такая головная боль, о которой я даже рассказывать здесь не буду (если интересно — скачайте мануал в интернете). Короче, это полчаса потраченного времени и минимум гарантий того, что все будет работать именно так, как хотелось (в приложении для андройд это сделать чуть проще, но тоже не «раз-два и готово», да и нужно иметь гейт, обязательно подключенный к интернету (напрямую, без роутера, подключенного к интернету, телефон с гейтом общаться не будет). Справедливости ради отмечу, что есть в термостате функция MAN (ручное управление), это когда расписание полностью игнорируется и термостат постоянно держит указанную температуру (как раз то, что мне нужно), но, и тут есть серъезный косяк, о котором даже не написано в инструкции. В режиме MAN гейт не видит термостат вообще, то есть вы остаетесь без удаленного управления и контроля! Если вы забудете выйти из ручного режима перед отъездом (что вполне вероятно), проверка и изменение температуры с телефона будут вам недоступны! Я, конечно, сообщил об этом косяке производителю, в надежде, что в новой прошивке его исправят, на что получил ответ: «Hello, my dear friend. Thank you for your message. The App could be operated when the thermostat was in AUTO, HOL mode. Please keep your thermostat. receiver and gateway connected correctly and stably.» Вообще, я этому товарищу много разносторонней информации отправил о косяках термостата, но у него, видимо, проблемы с английским и полное безразличие к исправлению и развитию данного прибора, так как все его ответы были коротки, не по сути, и на 100% бесполезны.

Гейт, PoerSmart, управление через интернет.

Ну и плавно переходим к гейту и приложению для андройд PoerSmart. Я уже написал, что напрямую с телефона через гейт настроить расписание и прочие параметры термостата невозможно. Система связи такая: телефон-роутер-китайский_сервер-роутер-гейт-термостат. То есть без роутера, подключенного к интернету, гейт — просто бесполезная, хотя и не совсем дешевая игрушка, а если они отключат или изменят свой сервер, можете вообще выкинуть этот гейт в мусор. Приложение «poersmart» в google play не обругал только ленивый. И я подтверждаю, оно тупое, недружелюбное к пользователю и тормознутое. Состояние котла (горит/не горит, температуры) может обновляться раз в полторы минуты (иногда быстрее), то есть понять, что там происходит в реальном времени весьма затруднительно. Как уже написал выше, если термостат случайно или умышленно перевели в режим MAN, то добраться до него из интернета будет вообще нереально — придется ехать к котлу и переключать термостат в режим AUTO (хорошо, если котел будет в это время не в пяти часах езды от вас). Редактирование расписания — жуть. Нужно настраивать каждый из семи дней отдельно, или настроить 1 день, и скопировать его расписание на 6 других дней. Просто выбрать «хочу 21 градус во все дни» нет возможности. Можно задать временно температуру, отличающуюся от температуры согласно расписанию, но выбранная температура сбросится либо в ближайшее событие расписания, либо самое позднее — в полночь. Еще одна нелепая особенность приложения — нет никаких предупреждений о сбое котла и выходе температуры в комнате за допустимые пределы, хотя мне кажется такая функция логичной (могли бы высылать email, когда реальная температура сильно отличается от заданной в расписании). Ну и так далее, мне просто лень сейчас все вспоминать, так как я не использую сейчас приложение для телефона по причинам, описанным ниже.

Безопсаность.

Само приложение настораживает невероятным количеством соединений с разными китайскими серверами. Вот только то, что не скрывается:

http://100.69.165.28/agoo/report
http://100.69.168.33/agoo/report
http://223.4.33.166/collect/startup?s=10&
http://adash.m.taobao.com/rest/abtest
http://adash.m.taobao.com/rest/gc
http://adash.m.taobao.com/rest/sur
http://agoodm.m.taobao.com/agoo/report
http://agoodm.wapa.taobao.com/agoo/report
http://ask.dcloud.net.cn/article/282
http://ask.dcloud.net.cn/article/283
http://m-adash.m.taobao.com/rest/sur
http://schemas.android.com/apk/res/android
http://stream.dcloud.net.cn/
http://stream.dcloud.net.cn/apps/detail?appid=
http://stream.dcloud.net.cn/apps/list?t=array
http://stream.dcloud.net.cn/check/update?appid=
http://stream.dcloud.net.cn/collect/startup?appid=
http://stream.dcloud.net.cn/resource/icon?appid=
http://stream.dcloud.net.cn/resource/splash?appid=
http://stream.dcloud.net.cn/resource/wgt?
http://update.dcloud.net.cn/apps/
http://xmlpull.org/v1/doc/features.html#indent-output
http://open.poersmart.com:8012/update_file/version.xml
http://manager.channel.aliyun.com/push2/config.html
http://adash.m.taobao.com/rest/gc

Стоит ли говорить, что для управления термостатом достаточно одного сервера. Кому и какую информацию с телефона сливают наши китайские друзья, я особо не разбирался, но страна, модель телефона и уникальный идентификатор, IMEI, версия OS, тип сети и название подсети и иные порочащие идею privacy данные уходят втихаря без предупреждения и сразу при регистрации.

Что еще более печально, управление термостатом происходит по незащищенному http протоколу простым нешифрованным текстом. Я поснифил wi-fi трафик, там все есть прямым текстом — идентификаторы термостатов, температуры, режимы работы — короче, все, что видит приложение, все это видят и те, кто умеют перехватывать трафик. Особенно интересны в этом плане режимы термостата «вне дома» и «в отпуске», вы как бы сами зовете нежеланных гостей заглянуть к вам именно в это время… Особо пакеты я не разбирал, но вот, что явно выделяется (персональную инфу забил звездочками):

«Id»: ***,
«IpAddr»: «***:4097»,
«GatewaySN»: «***»,
«GatewayName»: «***»,
«GatewayCode»: «***»,
«USoftVersion»: 21,
«UHardVersion»: 10,
«SoftVersion»: «v2.1»,
«HardVersion»: «v1.0»,
«Frequency»: «433M»,
«NodeSum»: 1,
«WifiRSSI»: -56,
«IsOnline»: true,
«ZoneCity»: «Minsk»,
«ZoneOffset»: 180,
«DstEnable»: false,
«DstOffset»: 0,
«DstStart»: 0,
«DstEnd»: 0

Другой пакет:

«Id»: ***,
«GatewayId»: ***,
«RfLinkActuator»: true,
«MakePowerPercent»: 4,
«NodeName»: «***»,
«NodeSN»: «***»,
«EnergySaveing»: 0,
«ActionFlag»: 5,
«CurTemperature»: 2061,
«NodeType»: 0,
«BatteryPercent»: 88,
«Humidity»: 60,
«RfLinkGateway»: true,
«WindowOpen»: false,
«HolidayIsOpen»: true,
«OverrideIsOpen»: false,
«OverrideTemperature»: 1890,
«OverrideTime»: 75600,
«VoltTrl»: 3,
«VoltCap»: 0,
«SoftVersion»: «v2.0»,
«HardVersion»: «v1.0»,
«Frequency»: «433M»,
«BackWorkMode»: 4,
«WorkMode»: 0,
«DisplayMode»: 0,
«ManTemprature»: 1935,
«EcoTemprature»: 1350,
«OffTemprature»: 630,
«HolidayEnable»: false,
«HolidayStart»: 0,
«HolidayEnd»: 0,
«WriteStatus»: 1,
«SptTemprature»: 1890,
«LocateId»: ***

Есть и другая инфа, кому интересно — снифайте сами. Непонимающий глубины проблемы может возразить, мол, ну и что, что кто-то узнает, какая у меня в доме температура и влажность. Но ведь проблема не в этом. Проблема в том, что в сети полно скучающих хаккеров, которым ради прикола/интереса/практики только дай такой вот незащищенный девайс, и он полностью перехватит над ним контроль. А если вы оставили котел на зиму без присмотра, приятно ли будет вернуться и узнать, что какой-то школьник-хаккер низшего звена, практикуясь в спуфинге или взломе IoT, отключил термостат без вашего ведома, из-за чего вода в доме замерзла и все трубы лопнули. Ведь тогда вам не смешно уже будет?

Короче, у меня  было сильное желание написать свою программу для управления термостатом напрямую из виндов или даже со своего личного сайта. Учитывая незамысловатую систему передачи данных простым текстом, пропарсить ответы термостата было бы несложно. Она бы не отменяла проблемы незащищенности http, но, хотя бы, ликвидировала бы необходимость общения телефона и термостата с сомнительными китайскими серверами. Я связался с производителем и описал проблему незащищенности передачи данных между приложением poer smart, их серверами и термостатом и предложил написать свою версию программы. Как думаете, какой был ответ? Думаете, поблагодарили за найденные уязвимости и предложили обсудить вместе, как повысить безопастность? Нее… Они просто перестали мне отвечать. Вообще! Вот так китайские производители решают проблемы безопасности в своих девайсах. Хотя, если уж честно писать, большинство даже брендовых изделий, подключаемых к интернету, абсолютно дырявые в плане безопасности. Если уж даже в именитых роутерах постоянно находят косяки, что уж говорить о китайских поделках. Скорее всего, программистов-школьников просто наняли незадорого сделать одноразовую работу (посмотрите, как они пишут «Temprature» в пакетах). Это же объясняет и вечное отсутствие обновлений приложения poersmart, которое назвали неудобными и оценили в 3.2, и нежелание производителя добавлять в прошивку изменение гистерезиса (хотя прошивка обновляемая и содержит неплохой список изменяемых пользователем настроек), это и безразличие к безопасности передачи данных между приложением, серверами и термостатом. Короче, как часто это бывает с китайскими товарами, железо они хорошо скопировали у кого-то, а на программистах для прошивки и приложения сэкономили, и это накладывает существенные ограничения на возможность использования вполне годного железа, способного на гораздо большее с минимумом изменений.

Резюмируя, что можно сказать.

Сам по себе термостат неплох для оффлайнового использования, когда вы бываете дома хотя бы раз в день. Проблемы могут возникнуть, если вы уезжаете надолго (севшие батарейки или потеря связи термостата с реле делает работу или неработу котла непредсказуемой — может потребоваться исправлять проблемы вручную).  Фиксированный гистерезис 0.3 кого-то устраивает, кого-то — нет, узнать можно только на практике, так как в разных комнатах воздухообмен и теплопотери разные, соответственно, термостат будет работать по-разному. Конечно, нужно упомянуть, что оффлайновые термостаты можно купить значительно дешевле. Хорошо хоть, что производитель оставил возможность использовать термостат без гейта и сэкономить 2635 рублей (на момент написания статьи), просто не покупая его.

Гейт кое-как работает, так что можно рискнуть оставить с ним котел, если уезжаете на 1-2 дня (не забывая о том, что вся информация с него будет доступна в нешифрованном виде через сниффер). На больший период не стал бы оставлять из-за высокого риска того, что управлять котлом смогут посторонние люди с не совсем добрыми намерениями. Также приложение имеет непонятные подключения к множеству китайских серверов, не вызывающих у меня доверия с т.з. безопасности и privacy, так что если не используете его долгое время, лучше удалить или поместить в hibernate. А в идеале для всех китайских приложений лучше использовать отдельный телефон, не содержащий никакой личной информации.

Цена.

Стоит ли этот термостат своих денег — решать вам. Оригинальные беспроводные термостаты от производителей котлов даже без контроля через интернет могут стоить 15 тысяч рублей, а с интернет-контролем — раза в два дороже. Poer продает беспроводной термостат за 3700 рублей без гейта, а с гейтом — за 5800 рублей. Разница в цене огромная, принципиальных отличий в работе самого термостата нет, а вот в безопасности интернет-контроля она может оказаться ощутимой (хотя попробовать поснифать трафик с оригинального термостата за 26 тысяч рублей я не смогу, но будет забавно и не сильно удивительно, если и он не порадует безопасностью).

Дальнейшие мысли.

Что касается меня, пока использую термостат в режиме MAN без гейта, то есть как обычный термостат. В этом плане претензий нет. Сейчас при температуре около 10 градусов днем и около нуля ночью котел включается всего несколько раз в день, что существенно экономит газ (если сравнивать постоянной работой котла без термостата), и также существенно экономит нервы (если сравнивать с необходимостью постоянно бегать и включать-выключать котел вручную, потому что то слишком холодно, то слишком жарко). До покупки термостата использовал котел пару месяцев, и он меня выбесил изрядно, приходилось даже ночью вставать, чтобы включить или выключить, а сейчас с термостатом я о нем вообще не вспоминаю, и температура в доме всегда комфортная. Так что в моем понимании, термостат — вещь необходимая, вопрос лишь в том, какому производителю отдать предпочтение, потому что сейчас очень много разных термостатов и в местных магазинах, и на алиэкспресс. Я выбрал POER в основном из-за гейта и неплохих отзывов, но гейт оказался не совсем таким, каким я хотел бы его видеть, так что сейчас я бы уже мог выбрать какой-то другой термостат без гейта, но с изменяемым гистерезисом.

Для контроля котла в продолжительные периоды отсутствия, думаю, незащищенные и непродуманные в плане безопасности интернет-решения не самые надежные (а у китайцев — все такие). Лучше искать GSM контроллер с информированием о состоянии котла и температуре в комнате по SMS и с резервным источником питания, чтобы он мог поднять тревогу в случае продолжительного отключения электроэнергии. GSM контроллер, в отличие от wifi-гейта, практически исключает неавторизированный доступ к управлению котлом. Конечно, подделать вашу симку можно, но никто не будет этим заниматься только ради того, чтобы побаловаться и заморозить вам котел. Можно даже купить фейковую вышку сотовой связи и подделывать служебные коды пакетов, отправляя сообщения с любых телефонных номеров.  Но все эти способы — дорого, гемморно и экономически нецелесообразно, и подразумевает целенаправленный удар именно по вам. А вот пользователи wi-fi гейтов могут оказаться просто случайно выбранной жертвой для забав и развлечений, которую атакующие даже не знают, да и сама атака на гейт обойдется щутнику абсолютно бесплатно, так как нужны только знания и время. Но это уже выходит за рамки этого обзора.

Так что там с альтернативным софтом?

Вообще, идея управлять термостатом напрямую, без китайских серверов, мне интересна, но производитель не идет на связь и не дает никакой технической информации. Снифить незащищенные пакеты и выискивать управляющие команды в них вполне реально, но затратно по времени, а учитывая, что данный проект никогда не будет коммерческим и не окупится, нужно быть большим энтузиастом, чтобы сидеть бессонными ночами и разгребать весь мусор, который идет с китайских серверов на термостат. Так что пока я бросил эту идею, но если кто-то выловит все управляющие команды и разберется с авторизацией между китайским сервером и термостатом (если она вообще там есть), не сочтите за труд отпостить инфу сюда.

Коментарий сюда