Китайские кондиционеры с портом X-Y-E

Да, посмотрел в исходнике - у вас уже так все сделано, я не так вас понял.
А относительно того, что данные от кондиционера не отображаются корректно в вирт девайсе ВБ? При том, что изменение значений явно что-то переключает в моем случае… И спасибо за разъяснение относительно работы пультов.

Добрый день! Есть насущный вопрос, требующий решения, на эту тему, но в личку на этом форуме не нашел как обратиться. Прошу Вас написать на почту servotz@yandex.ru

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

Хотел попросить Вас перенести программу на какой-нибудь язык программирования контроллеров МЭК.

Мега обновление, устранил много ошибок, и оптимизировал работу.
Инструкция -
1 - на плате кондиционера настраиваем адрес.
2 - подключаем к контроллеру к порту RS485. X - это A, Y - это B, E - это GND. (порт который будите использовать должен быть свободным, поэтому его нужно удалить с Настроек драйвера serial-устройств /etc/wb-mqtt-serial.conf)
3 - копируем файлы (MDV и libSystem.IO.Ports.Native.so) в папку usr/bin. Файлу mdv нужно выдать разрешение на запуск, без этого работать не будет.
Файлы нужно выбирать из соответствующей папки x32 или x64.
4 - В правилах создаем новый файл, и копируем туда содержимое с MDV.js, предварительно настроив, сохраняем. После этого в вебе появляться все кондиционеры или фанкойлы которые были настроены в MDV.js.

Настройка MDV.js
Первая строка это массив с ID кондиционеров. Можно в любом порядке писать числа, главное без повторений от 0 до 63.

К контроллеру можно подключить сразу несколько шин, для этого нужно создать еще один файл например MDV2.js, и в переменную num записать 2, или другое число, и указать нужный порт. Я подключал 4 шины по 30 фанкойлов, все работает.

Переменная port - сюда записываем ссылку на порт к которому подключились, например - “/dev/ttyRS485-1”.

После запуска программа начнет работать примерно через 5 секунд.
В вебе появиться устройство с именем Статус опроса кондиционеров.

Описание топиков -
Temp - температура из кондиционера.
Alarm - 0 - норма, 1 - в кондиционере ошибка, 2 - кондиционер не отвечает.
AlarmCode - 0 - нет ошибок.
1 - E0 - Перефазировка или отсутствие фазы
2 - E1 Ошибка связи
3 - Е2 Ошибка датчика Т1
4 - Е3 Ошибка датчика Т2А
5 - Е4 Ошибка датчика Т2В
6 - Е5 Ошибка датчика температуры нагнетателя компрессора Т3/Т4
7 - Е6 Ошибка несущей частоты (ошибка связи)
8 - Е7 Ошибка EEPROM
9 - E8 - Ошибка вентилятора, нет определения скорости вентилятора
10 - E9 Ошибка связи между платой управления и платой индикации
11 - ЕA Перегрузка компрессора
12 - ЕB Защита модуля инвертора
13 - ЕC Ошибка очистки
14 - ЕD Защита наружного блока
15 - ЕE Защита от протечки конденсатора
16 - ЕF Прочие ошибки
Power - 0 - Выкл, 1 - вкл.
Mode - 0 - охлаждение, 1 - обогрев, 2 - вентилятор, 3 - осушение, 4 - авто
Speed - Скорость вентилятора 0 - выкл., 1 - мин., 2 - сред., 3 - макс., 4 - авто
SetTemp - Устаква температуры - 16 - 33 градуса.

Управление происходить только через команду publish(“/devices/Fan-1_2/controls/Mode/on1”, 1);
Fan-1_2 это 1 группа, это число мы указываем в переменной num, и 2 это второй кондиционер.
К остальным параметрам обращаться так же. Окончание топика обязательно /on1, это чтоб не конфликтовать с системой WirenBord. Ну а подписываться можно на стандартные топики из веб интерфейса.

Ссылка на Яндекс диск с файлами - MDV — Яндекс Диск

1 лайк

Я не изучал языки программирования МЭК, В архиве который я скинул есть исходник. Если найдете программиста который работает с МЭК, то он справиться. Также в предыдущем комментарии есть полное описание протокола.

Я последнее время познал всю прелесть работы с шиной RS485 через RPC wb-mqtt-serial.
например Dooya DT82 (Onviz MR-2234F) - #15 от пользователя BrainRoot - с реализацией CRC.