Mdv

Здравствуйте! Записали данный запрос в список предложений к реализации. Будет ли данное предложение реализовано и в какие сроки пока сказать, к сожалению, не могу.

1 лайк

Добрый день, реализовал данный протокол сам. Отправляю и получаю данные с помощью Node-red. По той ссылке которой я раньше отправлял, данные не совсем точные.
Шина использует RS-485 в качестве физического уровня, X - это A, Y - B, а E - GND. С 4800 бод, 8n1 (8 бит, без четности, 1 стоп-бит)., это без изменений.
временной интервал 130 мс (30 мс для отправки запроса, затем тайм-аут в 100 мс, ожидающий ответа от устройства).
Запрос -
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)
12 - Температура испарителя (T2A)
13 - температура средней точки испарителя (Т2В)
14 - Температура конденсаторов (Т3)
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

1 лайк

Можете подсказать в чем отличия? У меня канальный кондиционер “Kentatsu KSKS70HFAN1”, есть выход на данный протокол. Пробовал на питоне сделать чтение статуса, работает. С включением включается всегда режим охлаждения почему-то, хотя отправляю 0x80 (auto? по ссылке на анализ протокола).

Планируете добавить в wb-mqtt-serial?

Пока - нет, решение не принято еще. Сейчас все заняты переходом на bullseye.

Может подскажете какое устройство взять за основу для написания кода, сам хочу попробовать как время будет.
Смотрю тут: wb-mqtt-serial/src/devices at master · wirenboard/wb-mqtt-serial · GitHub
И может быть есть “мануал” как собрать свою версию?

Пожалуй можно шторы. Но сейчас я бы этим не занимался совсем. В процессе рефакторинг, который сделает из wb-mqtt-serial RPC сервер. То есть диспетчер шины, к которому модули “протоколов” будут обращаться.

То есть, читаем тут: GitHub - wirenboard/wb-mqtt-serial: Wiren Board MQTT serial protocol driver
И пишем свой обработчик протокола на чем угодно. Например на штатном JS в wb-rules.
Публикуем через publish, ответы читаем через trackmqtt.

Вот чуть выше написал как надежнее и точно будет работать. Для того чтобы хорошо написать в сам serial - нужно весьма в него погрузиться.

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

Это уже работает или только в планах? Хотел бы через 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.