Корректное отображение целевой температуры при работе терморегулятора в автоматическом режиме - по расписанию (MCS350)
7leman7 opened this issue · 4 comments
Во-первых хотелось бы сказать спасибо автору - я ждал этой интеграции уже давно и как-то пропустил когда тут появились терморегуляторы ))) Самостоятельно освоить авторизацию в SST CLoud чтобы настроить через стандартную REST интеграцию лично я так и не осилил...
Было бы здорово иметь возможность задонатить - лично я имею такое желание.
Себе интеграцию только что поставил, терморегуляторы полов (MCS350) и Нептун залетели ОК, единственное на что обратил внимание - если терморегулятор в автоматическом режиме (сам переключает температуру по расписанию), то целевая температура отображается некорректно (продолжает отображаться "temperature_manual", хотя должна бы отображаться "chart_temperature_comfort" или "chart_temperature_economical" в зависимости от времени и установленного на терморегуляторе расписания). К сожалению, напрямую эту температуру из SST Cloud не вытянуть, как я понимаю, так что единственный вариант именно реплицировать расписание на стороне HA.
С учетом "стабильности" SST Cloud также было бы полезно видеть параметры "is_active" / "is_connected" и "updated_at", и для терморегуляторов, и для Нептуна.
JSON терморегулятора ниже. id и MAC заменил звездочками.
{
"id": ****,
"configuration": "AlRBUgCrVAAEHRoFAlMABwEBBx4MHABDAFQB4B0ClBkEdB0FlhkB4B0ClBkEdB0FlhkB4B0ClBkEdB0FlhkB4B0ClBkEdB0FlhkB4B0ClBkEdB0FlhkCHB0CJhkCMB0FlhkCHB0CJhkCMB0FlhlJAAVUMjIxOU0AETYwOkM1OkE4OjZGOkNCOjE3QQABAFoAAQFPAAEATAADFRkpRAAKMTY3NzM0OTE0OVcAAQRIAAEAHUE=",
"parsed_configuration": "{"chart": [["monday", [{"init_time": "08:00:00", "temperature": 29}, {"init_time": "11:00:00", "temperature": 25}, {"init_time": "19:00:00", "temperature": 29}, {"init_time": "23:50:00", "temperature": 25}]], ["tuesday", [{"init_time": "08:00:00", "temperature": 29}, {"init_time": "11:00:00", "temperature": 25}, {"init_time": "19:00:00", "temperature": 29}, {"init_time": "23:50:00", "temperature": 25}]], ["wednesday", [{"init_time": "08:00:00", "temperature": 29}, {"init_time": "11:00:00", "temperature": 25}, {"init_time": "19:00:00", "temperature": 29}, {"init_time": "23:50:00", "temperature": 25}]], ["thursday", [{"init_time": "08:00:00", "temperature": 29}, {"init_time": "11:00:00", "temperature": 25}, {"init_time": "19:00:00", "temperature": 29}, {"init_time": "23:50:00", "temperature": 25}]], ["friday", [{"init_time": "08:00:00", "temperature": 29}, {"init_time": "11:00:00", "temperature": 25}, {"init_time": "19:00:00", "temperature": 29}, {"init_time": "23:50:00", "temperature": 25}]], ["saturday", [{"init_time": "09:00:00", "temperature": 29}, {"init_time": "09:10:00", "temperature": 25}, {"init_time": "09:20:00", "temperature": 29}, {"init_time": "23:50:00", "temperature": 25}]], ["sunday", [{"init_time": "09:00:00", "temperature": 29}, {"init_time": "09:10:00", "temperature": 25}, {"init_time": "09:20:00", "temperature": 29}, {"init_time": "23:50:00", "temperature": 25}]]], "detector": 1, "settings": {"mode": "chart", "status": "on", "self_training": {"air": "selected", "floor": "selected", "status": "on", "open_window": "unselected"}, "temperature_air": 28, "temperature_manual": 30, "temperature_vacation": 12, "temperature_correction_air": 0}, "device_id": "T2219", "mac_address": "60:C5:A8:6F:CB:17", "relay_status": "off", "signal_level": 4, "access_status": "available", "current_temperature": {"event": 2, "day_of_week": 5, "temperature_air": 26, "temperature_floor": 29}, "open_window_minutes": 0}",
"timeout": 180,
"time_setting": {
"id": ,
"workday_time_range": [
[
"08:00:00",
"11:00:00"
],
[
"19:00:00",
"23:50:00"
]
],
"vacation_time_range": [
[
"09:00:00",
"23:50:00"
]
],
"device": ******
},
"group": null,
"active_network": ,
"specific_settings": {},
"created_at": "2021-02-27T16:24:46.435757Z",
"updated_at": "2023-02-25T15:19:25.782604Z",
"name": "Big Bathroom",
"type": 1,
"previous_mode": null,
"is_active": true,
"is_connected": true,
"mac_address": ":::::",
"power": 1,
"power_relay_time": "324101",
"chart_temperature_comfort": 29,
"chart_temperature_economical": 25,
"wireless_sensors_names": [],
"line_names": [
"line-1",
"line-2",
"line-3",
"line-4"
],
"lines_enabled": [
true,
true,
true,
true
],
"house": *****
}
С трудом пока представляю как перенести расписание, в адекватном виде. только если смотреть время в расписании сверять с текущим и выводить как целевое, но звучит как то "не очень". Подумаю может что то придет в голову. Так же можно сделать расписание на стороне HA, с помощью автоматизаций.
Насчет статуса, пока ни разу не видел is_active:false обычно апи просто не отвечает). Можно попытаться прикрутить к статусу, чтобы устройство становилось недоступным при is_active:false.
Про расписание согласен, кривовато и других идей нет. Не очень понятно почему они не сделали просто параметр для текущей целевой температуры, раз уж расписание в конфиге устройства у них все равно параллельно хранится (это, видимо, для автономности).
Про статус тоже согласен, можно просто "updated_at" добавить. Кстати, сейчас если api не отвечает, то устройства становятся unavailable или как это выглядит в HA?
А вот расписание на стороне HA чет не уверен, что хорошая идея, т.к. упадет в очередной раз SST Cloud и нет расписания пока не поднимут (а там вроде бывало, что и неделями лежало)...
Честно сказать даже не знаю как оно будет, если апи не будет отвечать, не видел чтобы оно долго лежало, тупит да, но что бы прям лежало по долгу не видел. Скорее всего будет просто висеть последний статус.
Про расписание согласен, кривовато и других идей нет.
вот проект практически идентичной автоматизации SST Cloud, с контролем выходных дней, с присутствием/отсутствием хозяев, контролем проветривания и прочего. Единственный косяк в проекте, что не смотря на то, что все опции не обязательны, при их отсутствии проект работает не корректно, надо создать вспомогательные элементы.