Mdv

Почитал как сделано на примере штор, в принципе понятно все.

Это уже работает или только в планах? Хотел бы через MQTT попробовать, чтобы не переделывать в последствии.

В testing.

Понял, это надо все же на “bullseye” переползать, вроде docker починили, буду пробовать еще раз.

Привет. Ты отправляешь 80, это 1000 0000. Для того чтоб отправить включение и переключение на тепло, нужно отправить это 1000 0100 (0x84), режим вентилятора - 1000 0001 (0x81), режим осушения - 1000 0010 (0x82), режим охлаждения - 1000 1000 (0x88), автоматический режим - 1001 0000 (0x90).
Вот подробное описание
------bit 06 - режим работы и ON Off. bit6-bit0 - Каждый бит взаимоисключающий.
bit0 - режим вентилятора, 1 вкл, 0 выкл.
bit1 - режим осушения, 1 вкл, 0 выкл.
bit2 - режим обогрева, 1 вкл, 0 выкл.
bit3 - режим охлаждения, 1 вкл, 0 выкл.
bit4 - режим авто, 1 вкл, 0 выкл.
bit5 - Блокировка режимов
bit6 - Резерв.

Я реализовал опрос через nod-red.
node-red-node-serialport-wildcard - ноды для работы с serialport-ом.
node-red-contrib-buffer-parser - парсить ответ.

А как оно работает с портом на котором несколлько устройств с разными пртоколами?

Да обратил на это внимание, попробую, спасибо.

Никак, из wb-mqtt-serial.conf порт удаляю. Если вы добавите этот протокол в wb-mqtt-serial, то это будет работать и с другими протоколами, но будет ограничение, скорость должна быть 4800.

Попробовал отправить 0x90 в качестве команды и 24 градуса температуру. Запрашиваю статус и в ответ получаю 81: работает в режиме вентилятора, получается в авто режиме всегда будет “дуть” в режиме вентилятор/нагрев/охлаждение?

А можешь прислать запрос, и ответ полностью?

Запрос (hex): aac301008000908018000000003c5855
Ответ: aac38000010030100084185a41ff28ff000000000000000000000014ffff0d55
В первом ответе предыдущий статус.
Запрос статуса: aac001008000000000000000003f8055
Ответ: aac08000010030108184185a45ff27ff000000000000000000000014ffff8c55

У тебя в комнате судя по показаниям температура 25. Уставка 18. Судя по всему когда ты его включаешь, он переходит вначале в режим вентилятора. Когда компрессор войдет в режим, он должен включить режим охлаждения. Вообще в целом у меня тоже не показывает в ответе режим авто. Только тот режим в котором кондей в данный момент находится.

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

Хорошо бы еще понимать откуда он ее берет, а где ты увидел 25?

А это же в hex, в dec будет как раз 24.

Да, понятно теперь.

По поводу 18 - hex, это да. Спешил с ответом.
Температура в комнате - это bit 11. У тебя там было 5a, это 90. Значит 90 делим на 2, и отнимаем 20.

В другой доке по ссылке так пишут:
0x0B T1 Temp in 0.5 °C - 0x30
Я сначала отнимаю 48 (0x30) и потом делю на 2. Поэтому и спросил, непонятно где верная формула.

В той доке не все правильно. А в своей расшифровке я забыл это написать. По факту 0-240 это -20 - 100 градусов. Вот и получается расчет n/2-20

Может есть правильная дока?
Кстати если включить с пульта, и запросить статус то бывает показывает статус 0x80 (auto) , но закономерность не выявил.

Я подключил 2 кондиционера по этому протоколу. Я опираюсь не на статус кондея, а на те данные которые я отправил в кондей. Те данные которые присылает кондей не совсем точные, и не всегда понятные. У меня есть родной шлюз на модбас. И даже его родной шлюз не особо точно передает статус кондея. Все эти кондиционеры заточены не для отправки своего статуса, а для получения команд. То есть этот протокол в основном создан для управления, а не мониторинга. Поэтому я у себя в коде сохраняю параметры, которые я отправляю в кондей, и опираюсь на них как на статус. А тот статус который получаю от кондея, использую для предварительного контроля и получения ошибок если они есть.

Дополнил описание
Запрос -
00 - 0xAA преамбула
01 - команда - 0xC0 - запрос, 0xC3 - Установка, 0xCC - блокировка, 0xCD - разблокировка
02 - 0x00 … 0x3F - Адрес устройства, широковещательная передача 0xFF
03 - 0x00 … 0x3F - идентификатор главного устройства (Я установил 0x00).
04 - Всегда - 0x80
05 - 0x00 … 0x3F - идентификатор главного устройства (Я установил 0x00).
Полезная нагрузка
06 - режим работы и ON Off. bit6-bit0 - Каждый бит взаимоисключающий.
bit0 - режим вентилятора, 1 вкл, 0 выкл.
bit1 - режим осушения, 1 вкл, 0 выкл.
bit2 - режим обогрева, 1 вкл, 0 выкл.
bit3 - режим охлаждения, 1 вкл, 0 выкл.
bit4 - режим авто, 1 вкл, 0 выкл.
bit5 - Блокировка режимов
bit6 - Резерв.
bit7 - 1 Включено, 0 выключено.
07 - скорость вентилятора - bit7-bit0 - Каждый бит взаимоисключающий.
bit0 - Высокая скорость, 1 вкл, 0 выкл.
bit1 - Средняя скорость, 1 вкл, 0 выкл.
bit2 - Низкая скорость, 1 вкл, 0 выкл.
bit3 - bit6 - резерв
bit7 - режим авто вентилятора, 1 вкл, 0 выкл.
08 - уставка температуры - 16 - 32 градуса
09 - дополнительные функции -
bit15 - bit4 Резерв
bit0 - режим эко, 1 вкл, 0 выкл.
bit1 - Дополнительный электрический нагреватель, 1 вкл, 0 выкл.
bit2 - Жалюзи, 1 вкл, 0 выкл.
bit3 - Вентилятор, 1 вкл, 0 выкл.
10 - Включение таймера - тут я не разбирался. У меня всегда 0x00.
11 - Выключение таймера - тут я тоже не разбирался. У меня всегда 0x00.
12 - ???
13 - проверка команды (255 - код команды)
14 - CRC - 255 - сумма (данные) % 256
15 - пролог - 0x55
При запросе данных 06 - 12 нули.

Ответ -
00 - 0xAA преамбула
01 - код ответа - 0xC0 - запрос, 0xC3 - Установка, 0xCC - блокировка, 0xCD - разблокировка
02 - Всегда - 0x80
03 - 0x00 … 0x3F - идентификатор главного устройства.
04 - 0 … 0x3f - идентификатор устройства
05 - 0x00 … 0x3F - идентификатор главного устройства
06 - ???
07 - возможности 0x80 - повышенная температура (16 … 32 ° C), 0x10 имеет КОЛЕБАНИЕ
08 - Рабочий режим -
bit0 - режим вентилятора, 1 вкл, 0 выкл.
bit1 - режим осушения, 1 вкл, 0 выкл.
bit2 - режим обогрева, 1 вкл, 0 выкл.
bit3 - режим охлаждения, 1 вкл, 0 выкл.
bit4 - режим авто, 1 вкл, 0 выкл.
bit5 - Блокировка режимов
bit6 - Резерв.
bit7 - 1 Включено, 0 выключено.
09 - - скорость вентилятора
bit0 - Высокая скорость, 1 вкл, 0 выкл.
bit1 - Средняя скорость, 1 вкл, 0 выкл.
bit2 - Низкая скорость, 1 вкл, 0 выкл.
bit3 - bit6 - резерв
bit7 - режим авто вентилятора, 1 вкл, 0 выкл.
10 - Уставка температуры - 16 - 32 градуса
11 - Температура воздуха (T1) 0 - 240 - означает -20 - 100 градусов
12 - Температура испарителя (T2A) 0 - 240 - означает -20 - 100 градусов
13 - температура средней точки испарителя (Т2В) 0 - 240 - означает -20 - 100 градусов
14 - Температура конденсаторов (Т3) 0 - 240 - означает -20 - 100 градусов
15 - энергопотребление - 0-99 Ампер
16 - ???
17 - Запуск таймера
18 - Остановка таймера
19 - ???
20 - дополнительные функции -
bit15 - bit4 Резерв
bit0 - режим эко, 1 вкл, 0 выкл.
bit1 - Дополнительный электрический нагреватель, 1 вкл, 0 выкл.
bit2 - Жалюзи, 1 вкл, 0 выкл.
bit3 - Вентилятор, 1 вкл, 0 выкл.
21 - Статус
bit0 - Жалюзи, 1 вкл, 0 выкл.
bit1 - Увлажнение, 1 вкл, 0 выкл.
bit2 - Помпа, 1 вкл, 0 выкл.
bit3 - Резерв, 1 вкл, 0 выкл.
bit4 - Заблокирован режим охлаждения, 1 да, 0 нет.
bit5 - Заблокирован режим обогрева, 1 да, 0 нет.
bit6 - Заблокирован центральный пульт, 1 да, 0 нет.
bit7 - Заблокирован локальный пульт, 1 да, 0 нет.
22 - Ошибки
bit0 - E0 - Перефазировка или отсутствие фазы
bit1 - E1 Ошибка связи
bit2 - Е2 Ошибка датчика Т1
bit3 - Е3 Ошибка датчика Т2А
bit4 - Е4 Ошибка датчика Т2В
bit5 - Е5 Ошибка датчика температуры нагнетателя компрессора Т3/Т4
bit6 - Е6 Ошибка несущей частоты (ошибка связи)
bit7 - Е7 Ошибка EEPROM
23 - Ошибки
bit0 - E8 - Ошибка вентилятора, нет определения скорости вентилятора
bit1 - E9 Ошибка связи между платой управления и платой индикации
bit2 - ЕA Перегрузка компрессора
bit3 - ЕB Защита модуля инвертора
bit4 - ЕC Ошибка очистки
bit5 - ЕD Защита наружного блока
bit6 - ЕE Защита от протечки конденсатора
bit7 - ЕF Прочие ошибки
24 - Блокировки -
bit0 - P0 - Защита по температуре испарителя
bit1 - P1 Защита по подачи холодного воздуха
bit2 - P2 Защита по высокой температуре конденсатора
bit3 - P3 Защита по перегреву компрессора
bit4 - P4 Защита по температуре нагревателя
bit5 - P5 Зашита по высокому давлению
bit6 - P6 Зашита по низкому давлению
bit7 - P7 Защита по напряжению питания
25 - Блокировки -
bit0 - P8 - Защита по перегрузке компрессора (по току)
bit7 - PF Прочие защиты
26 - Ошибки связи -
bit0 - 0# Ошибка связи между основной платой и платой сетевого модуля
bit1 - 1# Ошибка связи между центральным контроллером и сетевым модулем
bit2 - 2# Ошибка связи между центральным пультом и функциональным модулем
bit3 - 3# Ошибка связи между центральным пультом и шлюзом
bit4 - 4# Достигнут предел команд
bit5 - 5# Таймаут команды не выполнено
bit6 - 6# Адрес не доступен
bit7 - 7# - Неизвестная, не подтверждаемая команда.
27 - ???
28 - ???
29 - ???
30 - CRC - 255 - сумма (данные) % 256
31 - пролог - 0x55

3 Likes