РЕКЛАМА НА ФОРУМХАУС Вот 1 (0x01) — чтение значений из нескольких регистров флагов (Read Coil Status). 2 (0x02) — чтение значений из нескольких дискретных входов (Read Discrete Inputs). 3 (0x03) — чтение значений из нескольких регистров хранения (Read Holding Registers). 4 (0x04) — чтение значений из нескольких регистров ввода (Read Input Registers). 16 (0x10) — запись значений в несколько регистров хранения (Preset Multiple Registers) Команды 01 и 02 не поддерживаются. При этом хотел бы отметить. Быстрее считать весь регистр целиком, чем считывать побитно. АСУТПшники редко используют битовое чтение.
Вот и не понятно, зачем оно надо: разбирать сообщения на слова, да еще читать побитово. В MQTT передаются строки. Если передаете число, то в ОН обзываете как Number. Если передается текст, то String. Если передается только 0 и 1, то Switch. И все. Без головняка с битами и байтами.
Поверьте, иногда это полезно Как Вы думаете, что бы в mqtt передать число 32767 сколько необходимо передать данных и за какое время это число будет передано? А теперь эту же задачку при помощи Modbus попробуйте решить. Даже если не учитывать всякие заголовки и т. д. в mqtt потребуется передать как минимум 5 байт, а если еще в кодировке UTF8 - еще больше. В то время как в modbus это значение уместится в 2 байта. А теперь представьте, что у Вас сотни переменных. А еще Вы хотите, что бы система не тормозила при нажатии на клавиши. И система не должна требовать Core i7 с разогнанным ядром и 32 Гига оперативы А такой скромненький ARM
Я связал настенный knx контроллер с ресивером, плеером squeezebox и пультом rti при помощи ОН естественно полная обратная связь между всеми устройствами, от уровня громкости до now playing в rules пригодились циклы, поиск по строкам, обрезка строк, посылка http запросов, вызов скриптов... весело конечно, но какой-нибудь mqtt вряд ли справится кроме ОН может быть еще крестрон справится с такой задачей
@Smith2007, передать 5 или 20 байт при скорости Ethernet 100Мбит - это разница на уровне микросекунд - ничто на транспортном уровне. Поэтому "за сколько передастся N байт" не имеет особого смысла. А вот на уровне выше возникает разница - если у вас есть дискретный вход и вам надо узнать его состояние и выполнить определенное действие с задержкой не более 10мс какова будет разница между MQTT и Modbus TCP? Огромная. В первом случае контроллер просто подписывается на нужный топик (ну пусть будет даже 100 байт) и потом спокойно себе работает дальше, занимаясь своими делами. Состояние входа изменилось, пришло сообщение (ну пусть будет 20 байт), контроллер отвлекся, его обработал и выполнил действие. Т. е получаем трафик в 20 байт и практически никакой нагрузки на контроллер. А что Modbus? Ну да, нам надо пять байт. Пять байт на команду чтения регистров, пять байт ответа от слейва. Но вот прикол - нам надо это делать раз в 10мс. То есть 200 сообщений в секунду, которые надо сформировать, послать, принять и обработать. В итоге имеем трафика на 2000байт и это в секунду! А сколько работы контроллеру по обработке этого всего и это только от одного слейва! В итоге если у вас будет сотня переменных и требоваться нетормознутость где потребуется Core i7 с 32 Гб оперативки, а где справится и простенький ARM?
Естественно пробовал - получил 10 файлов логов ошибок по 28 тыс строк в каждом. 2017-10-02 16:46:09.375 [ERROR] [.binding.modbus.internal.ModbusSlave] - ModbusSlave (slave2): Error getting modbus data for request net. wimpi. modbus. msg. ReadCoilsRequest@1e83865. Error: Error Code = 1. Endpoint ModbusTCPSlaveEndpoint@17628b5[address=172.20.2.71,port=502]. Connection: TCPMasterConnection@33b8cd[socket=Socket[addr=/172.20.2.71,port=502,localport=64206] Из документации по модбас ОН Read and write functions (modbus slave type) Modbus read functions type=coil uses function 1 “Read Coil Status” type=discrete uses function 2 “Read Input Status” (readonly inputs) type=holding uses function 3, “Read Holding Registers” type=input uses function 4 “Read Input Register” (readonly-registers eG analogue inputs) Modbus write functions type=coil uses function 5 “Write Single Coil” type=holding uses function 6 “Write Single Register”, or function 16 “Write Multiple registers” when writemultipleregistersis true Из букваря по овну з. ы. по утилите - ну не надо впадать в крайности, это одна из самых распространенных утилит.
ну да - по ценам сильно кондово, особенно приятно будет при перегорании ламп - очень много отзывов по одновременному перегоранию реле. Мне камрад рассказывал свежий пример этого года - отключился автомат при перегорании лампы накаливания. тоже сначала думал пойти этим путем, заказал порядка 4 разных диммируемых светодиодных ламп на 12 вольт, причем внутри были разные чипы. У всех были проблемы с диммированием, очень большая неравномерность регулирования, при уменьшении яркости до ночных режимов - гудят безбожно. Тестировал на шим-модуле фибаро. А вот ленты диммировалось отлично. Но они мне - не того. з. ы. а если взять стоимость модуля диммирования для KNX - ценник просто невменяемый
в конфигурации без ПЛК с прямым управлением через ОН вообще пофигу. Для входов новые модули модбаса подходят неплохо. Но для выходов - явно не вариант. за раз читаю 48 байт по 12 выходам - вот с этим вообще ни разу не проблема.
так кз при перегорании лн в порядке вещей. бывает что нить сгорает с дугой. реле надо защищать автоматами у меня в процессе ремонта куча лампочек ильича перегорали 100 раз. ни одно реле не сдохло, автоматы отрабатывают. для особых случаев есть даже автоматика с защитой от дуги (в штатах это стандарт кстати). если защиту не ставить, этак у вас и говен залипнет или промежуточное реле за последние несколько лет на форумах по кнх видел может один случай с залипшим реле, и то при мутных обстоятельствах. так либо по гарантии модуль поменять, либо самому реле перепаять, делов то видимо проблема в вашем диммере или в лампах. вся планета пользуется что за лампы на 12в непонятно. скорее всего ретрофит под галогенки и их трансформатор с какой-нибудь переменкой надо брать диммируемые лампы на 220 для обычного диммера-крутилки (triac) и соответствующий модуль knx по рознице покупают только дилетанты. по нормальным входам цены нормальные к тому же, не зная рынка, шанс самому подобрать правильное оборудование невысок. зато отличный шанс найти не то что нужно по конской цене. отсюда и мифы про заоблачную стоимость. и если все-таки покупают, сталкиваются с программированием (хотя никакого кода там писать не надо, правильней сказать - параметрирование) и начинают мусолить какое уг этот ваш knx не нравится knx, возьмите dmx. 20-30$ за 3-4 канала для особых любителей там даже модули реле бывают программировать ничего не надо, адреса выставил и все. дальше в ОН https://docs.openhab.org/addons/bindings/dmx/readme.html
фибаро RGBW модуль, ШИМ модуляция на 4 канала по 12 В. Для лент работает отлично. возможно в них, но что есть то есть. Ни одна светодиодная диммируемая лампа на 12 в нормально не работала. А вот обычная галогенка работала отлично и светодиодные ленгты тоже.
Подключил к OH2 ImperiHome единственно не происходит обновления статусов в вебе, нужно перегружать страницу. В общем-то не критично. Групповой свитч в IH работает некорректно. Начинает клацать релюхами по кругу. Возможно связано с моей обработкой изменений по битовой маске. Порадовала корректная работа отображения статуса реле при переключении физической кнопкой. В целом нормально, устраивает. Остается разобраться с удаленным доступом, поскольку выкладывать "голый зад" в инет не хочется.
Зачем это? у он есть облако, прямой ип не нужен. работает как будто в родной сети стандартный интерфейс у меня прошел waf, это о многом говорит) для особых изысков можно использовать родной habpanel - выглядит получше вашего скрина некоторые подключают к он command fusion. тоже нормально работает и все таки копните в сторону dmx. может даже дешевле будет, плюс отсутствие гемороев проводки тоже требуется меньше. декодеры можно ставить по месту. единственный ньюанс - шина должна быть без ветвлений. зато шин может быть несколько. но при грамотном проектировании мне это ни разу не требовалось наверно потому что он для лент по сути вопрос просто в подборе ламп. и проще всего подобрать лампы под триак. и тут бонус будет - не нужны блоки питания
Там есть triac диммеры (принцип диммирования как в обычном диммере-крутилке) под такие диммеры есть лампы, причем их большинство вот и все