WB Dimmers Modbus Registers Map: различия между версиями

Строка 1070: Строка 1070:


Для настройки действий для типа нажатия нужно в соответствующий регистр записать число, составленное по следующему правилу:
Для настройки действий для типа нажатия нужно в соответствующий регистр записать число, составленное по следующему правилу:
'''0000''' 0000 0000 0000
'''0000''' 0000 0000 0000
Старшие 4 бита - тип действия:
Старшие 4 бита - тип действия:
0 - нет действия
* 0 - нет действия
0b0001 - установить coil регистр в 0
* 0b0001 - установить coil регистр в 0
0b0010 - установить coil регистр в 1
* 0b0010 - установить coil регистр в 1
0b0011 - переключить coil регистр 0 <-> 1
* 0b0011 - переключить coil регистр 0 <-> 1
0b1001 - увеличить значение в holding регистре (уменьшается на 1 за каждое событие от кнопки)
* 0b1001 - увеличить значение в holding регистре (уменьшается на 1 за каждое событие от кнопки)
0b1010 - уменьшить значение в holding регистре (увеличивается на 1 за каждое событие от кнопки)
* 0b1010 - уменьшить значение в holding регистре (увеличивается на 1 за каждое событие от кнопки)
0b1011 - уменьшить/увеличить значение в holding регистре. Направление меняется при каждом новом нажатии.
* 0b1011 - уменьшить/увеличить значение в holding регистре. Направление меняется при каждом новом нажатии.




0000 '''0000 0000 0000'''
0000 '''0000 0000 0000'''
Младшие 12 бит - номер регистра '''без базового адреса'''. То есть для coil регистров адреса начинаются с нуля, и номер регистра совпадает с его адресом. Для регистров данных - адреса начинаются с 2000 - это базовый адрес. Из адреса holding регистра нужно вычесть 2000 и это значение (от 0 до 17) поместить в младшие 12 бит.
Младшие 12 бит - номер регистра '''без базового адреса'''. То есть для coil регистров адреса начинаются с нуля, и номер регистра совпадает с его адресом. Для регистров данных - адреса начинаются с 2000 - это базовый адрес. Из адреса holding регистра нужно вычесть 2000 и это значение (от 0 до 17) поместить в младшие 12 бит.


Строка 1089: Строка 1092:


Также у кнопок есть дополнительная логика:
Также у кнопок есть дополнительная логика:
Если канал выключен, и нажали кнопки на изменение яркость - канал включается на минимальную яркость и диммируется всегда вверх (если выбрано увеличение/уменьшение)
* Если канал выключен, и нажали кнопки на изменение яркость - канал включается на минимальную яркость и диммируется всегда вверх (если выбрано увеличение/уменьшение)
При диммировании вниз яркость уменьшается до минимального значения 1% (не до нуля)
* При диммировании вниз яркость уменьшается до минимального значения 1% (не до нуля)
Если выбрано изменение канала, отличного от яркости (например, Hue), и канал выключен - значение в регистре не будет менятся. То есть нельзя поменять с кнопки цвет выключенной ленты
* Если выбрано изменение канала, отличного от яркости (например, Hue), и канал выключен - значение в регистре не будет менятся. То есть нельзя поменять с кнопки цвет выключенной ленты


И логика, не связанная с кнопками:
И логика, не связанная с кнопками:
Если канал включается через coil (с кнопки или нет - не важно) и его яркость равна 0 - яркость устанавливается на 1%
* Если канал включается через coil (с кнопки или нет - не важно) и его яркость равна 0 - яркость устанавливается на 1%
Если яркость канала через holding меняют с нуля на неноль - канал включается (в coil записывается 1)
* Если яркость канала через holding меняют с нуля на неноль - канал включается (в coil записывается 1)
Если яркость канала через holding меняют с ненуля на ноль - канал выключается (в coil записывается 0)
* Если яркость канала через holding меняют с ненуля на ноль - канал выключается (в coil записывается 0)


=== Прошивка 1.0 ===
=== Прошивка 1.0 ===