Ubisys D1

ModelD1
VendorUbisys
DescriptionUniversal dimmer D1
Exposesaction, light (state, brightness), level_config, power, energy, ballast_minimum_level, ballast_maximum_level, minimum_on_level, capabilities_forward_phase_control, capabilities_reverse_phase_control, capabilities_reactance_discriminator, capabilities_configurable_curve, capabilities_overload_detection, status_forward_phase_control, status_reverse_phase_control, status_overload, status_capacitive_load, status_inductive_load, mode_phase_control, linkquality
PictureUbisys D1

Notes

Configuring Inputs

In case the inputs need to be reconfigured (e.g. to use stationary switches instead of momentary ones or vice versa) this can be done in the same way as it is being done for the ubisys C4.

(Re-)Binding and/or Decoupling

Also see the ubisys C4 documentation, example use cases:

  • Use the second input to control a different ZigBee device.
  • Completely decouple the input(s) from the local load.

Ballast Configuration

By publishing to zigbee2mqtt/FRIENDLY_NAME/set the dimmer's ballast configuration attributes (min_level and max_level) can be set. Example:

{
    "ballast_config": {
        "min_level": 3
    }
}

By publishing to zigbee2mqtt/FRIENDLY_NAME/get/ballast_config the values of the ballast configuration attributes can also be read back from the device and be printed to the normal Zigbee2MQTT log (flagged as warnings but only to make sure they do not get suppressed). To account for errors due to missing optional attributes (since this is a general function), every cluster attribute will be queried separately and the complete process can therefore take a moment.

Dimmer strategy configuration

The dimmer phase control mode can be changed by publishing { "mode_phase_control": "MODE" } to zigbee2mqtt/FRIENDLY_NAME/set where MODE is one of the following values: automatic (default), forward or reverse.

A word of caution is in order: configuring the wrong dimmer phase control mode could destroy the device or the attached load!

More information can be found in the ubisys D1 technical reference manualopen in new window, chapter "7.2.8. Dimmer Setup Cluster (Server)".

OTA updates

This device supports OTA updates, for more information see OTA updates.

Options

How to use device type specific configuration

  • power_calibration: Calibrates the power value (percentual offset), takes into effect on next report of device. The value must be a number.

  • power_precision: Number of digits after decimal point for power, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of 0 and with a with a maximum value of 3

  • energy_calibration: Calibrates the energy value (percentual offset), takes into effect on next report of device. The value must be a number.

  • energy_precision: Number of digits after decimal point for energy, takes into effect on next report of device. This option can only decrease the precision, not increase it. The value must be a number with a minimum value of 0 and with a with a maximum value of 3

  • transition: Controls the transition time (in seconds) of on/off, brightness, color temperature (if applicable) and color (if applicable) changes. Defaults to 0 (no transition). The value must be a number with a minimum value of 0

  • state_action: State actions will also be published as 'action' when true (default false). The value must be true or false

  • simulated_brightness: Simulate a brightness value. If this device provides a brightness_move_up or brightness_move_down action it is possible to specify the update interval and delta. The action_brightness_delta indicates the delta for each interval. Example:

simulated_brightness:
  delta: 20 # delta per interval, default = 20
  interval: 200 # interval in milliseconds, default = 200

Exposes

Action (enum)

Triggered action (e.g. a button click). Value can be found in the published state on the action property. It's not possible to read (/get) or write (/set) this value. The possible values are: toggle_s1, toggle_s2, on_s1, on_s2, off_s1, off_s2, recall_*_s1, recal_*_s2, brightness_move_up_s1, brightness_move_up_s2, brightness_move_down_s1, brightness_move_down_s2, brightness_stop_s1, brightness_stop_s2.

Light

This light supports the following features: state, brightness.

  • state: To control the state publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"state": "ON"}, {"state": "OFF"} or {"state": "TOGGLE"}. To read the state send a message to zigbee2mqtt/FRIENDLY_NAME/get with payload {"state": ""}.
  • brightness: To control the brightness publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"brightness": VALUE} where VALUE is a number between 0 and 254. To read the brightness send a message to zigbee2mqtt/FRIENDLY_NAME/get with payload {"brightness": ""}.

On with timed off

When setting the state to ON, it might be possible to specify an automatic shutoff after a certain amount of time. To do this add an additional property on_time to the payload which is the time in seconds the state should remain on. Additionnaly an off_wait_time property can be added to the payload to specify the cooldown time in seconds when the light will not answer to other on with timed off commands. Support depend on the light firmware. Some devices might require both on_time and off_wait_time to work Examples : {"state" : "ON", "on_time": 300}, {"state" : "ON", "on_time": 300, "off_wait_time": 120}.

Transition

For all of the above mentioned features it is possible to do a transition of the value over time. To do this add an additional property transition to the payload which is the transition time in seconds. Examples: {"brightness":156,"transition":3}, {"color_temp":241,"transition":1}.

Moving/stepping

Instead of setting a value (e.g. brightness) directly it is also possible to:

  • move: this will automatically move the value over time, to stop send value stop or 0.
  • step: this will increment/decrement the current value by the given one.

The direction of move and step can be either up or down, provide a negative value to move/step down, a positive value to move/step up. To do this send a payload like below to zigbee2mqtt/FRIENDLY_NAME/set

NOTE: brightness move/step will stop at the minimum brightness and won't turn on the light when it's off. In this case use brightness_move_onoff/brightness_step_onoff

{
  "brightness_move": -40, // Starts moving brightness down at 40 units per second
  "brightness_move": 0, // Stop moving brightness
  "brightness_step": 40 // Increases brightness by 40
}

Level config (composite)

Can be set by publishing to zigbee2mqtt/FRIENDLY_NAME/set with payload {"level_config": {"on_off_transition_time": VALUE, "on_level": VALUE, "execute_if_off": VALUE, "current_level_startup": VALUE}} To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"level_config": ""}.

  • on_off_transition_time (numeric): Specifies the amount of time, in units of 0.1 seconds, which will be used during a transition to either the on or off state, when an on/off/toggle command of the on/off cluster is used to turn the light on or off
  • on_level (numeric): Specifies the level that shall be applied, when an on/toggle command causes the light to turn on. min value is 1, max value is 254
  • execute_if_off (binary): Defines if you can send a brightness change without to turn on the light allowed values: true or false
  • current_level_startup (numeric): Specifies the initial level to be applied after the device is supplied with power min value is 1, max value is 254

Power (numeric)

Instantaneous measured power. Value can be found in the published state on the power property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"power": ""}. It's not possible to write (/set) this value. The unit of this value is W.

Energy (numeric)

Sum of consumed energy. Value can be found in the published state on the energy property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"energy": ""}. It's not possible to write (/set) this value. The unit of this value is kWh.

Ballast minimum level (numeric)

Specifies the minimum light output of the ballast. Value can be found in the published state on the ballast_minimum_level property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"ballast_minimum_level": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"ballast_minimum_level": NEW_VALUE}. The minimal value is 1 and the maximum value is 254.

Ballast maximum level (numeric)

Specifies the maximum light output of the ballast. Value can be found in the published state on the ballast_maximum_level property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"ballast_maximum_level": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"ballast_maximum_level": NEW_VALUE}. The minimal value is 1 and the maximum value is 254.

Minimum on level (numeric)

Specifies the minimum level that shall be applied, when an on/toggle command causes the light to turn on. When this attribute is set to the invalid value (255) this feature is disabled and standard rules apply: The light will either return to the previously active level (before it was turned off) if the OnLevel attribute is set to the invalid value (255/previous); or to the specified value of the OnLevel attribute if this value is in the range 0…254. Otherwise, if the MinimumOnLevel is in the range 0…254, the light will be set to the the previously active level (before it was turned off), or the value specified here, whichever is the larger value. For example, if the previous level was 30 and the MinimumOnLevel was 40 then the light would turn on and move to level 40. Conversely, if the previous level was 50, and the MinimumOnLevel was 40, then the light would turn on and move to level 50.. Value can be found in the published state on the minimum_on_level property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"minimum_on_level": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"minimum_on_level": NEW_VALUE}. The minimal value is 0 and the maximum value is 255.

Capabilities forward phase control (binary)

The dimmer supports AC forward phase control.. Value can be found in the published state on the capabilities_forward_phase_control property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"capabilities_forward_phase_control": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"capabilities_forward_phase_control": NEW_VALUE}. If value equals true capabilities forward phase control is ON, if false OFF.

Capabilities reverse phase control (binary)

The dimmer supports AC reverse phase control.. Value can be found in the published state on the capabilities_reverse_phase_control property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"capabilities_reverse_phase_control": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"capabilities_reverse_phase_control": NEW_VALUE}. If value equals true capabilities reverse phase control is ON, if false OFF.

Capabilities reactance discriminator (binary)

The dimmer is capable of measuring the reactanceto distinguish inductive and capacitive loads.. Value can be found in the published state on the capabilities_reactance_discriminator property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"capabilities_reactance_discriminator": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"capabilities_reactance_discriminator": NEW_VALUE}. If value equals true capabilities reactance discriminator is ON, if false OFF.

Capabilities configurable curve (binary)

The dimmer is capable of replacing the built-in, default dimming curve.. Value can be found in the published state on the capabilities_configurable_curve property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"capabilities_configurable_curve": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"capabilities_configurable_curve": NEW_VALUE}. If value equals true capabilities configurable curve is ON, if false OFF.

Capabilities overload detection (binary)

The dimmer is capable of detecting an output overload and shutting the output off.. Value can be found in the published state on the capabilities_overload_detection property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"capabilities_overload_detection": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"capabilities_overload_detection": NEW_VALUE}. If value equals true capabilities overload detection is ON, if false OFF.

Status forward phase control (binary)

The dimmer is currently operating in AC forward phase control mode.. Value can be found in the published state on the status_forward_phase_control property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"status_forward_phase_control": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"status_forward_phase_control": NEW_VALUE}. If value equals true status forward phase control is ON, if false OFF.

Status reverse phase control (binary)

The dimmer is currently operating in AC reverse phase control mode.. Value can be found in the published state on the status_reverse_phase_control property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"status_reverse_phase_control": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"status_reverse_phase_control": NEW_VALUE}. If value equals true status reverse phase control is ON, if false OFF.

Status overload (binary)

The output is currently turned off, because the dimmer has detected an overload.. Value can be found in the published state on the status_overload property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"status_overload": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"status_overload": NEW_VALUE}. If value equals true status overload is ON, if false OFF.

Status capacitive load (binary)

The dimmer's reactance discriminator had detected a capacitive load.. Value can be found in the published state on the status_capacitive_load property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"status_capacitive_load": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"status_capacitive_load": NEW_VALUE}. If value equals true status capacitive load is ON, if false OFF.

Status inductive load (binary)

The dimmer's reactance discriminator had detected an inductive load.. Value can be found in the published state on the status_inductive_load property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"status_inductive_load": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"status_inductive_load": NEW_VALUE}. If value equals true status inductive load is ON, if false OFF.

Mode phase control (enum)

Configures the dimming technique.. Value can be found in the published state on the mode_phase_control property. To read (/get) the value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/get with payload {"mode_phase_control": ""}. To write (/set) a value publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"mode_phase_control": NEW_VALUE}. The possible values are: automatic, forward, reverse.

Linkquality (numeric)

Link quality (signal strength). Value can be found in the published state on the linkquality property. It's not possible to read (/get) or write (/set) this value. The minimal value is 0 and the maximum value is 255. The unit of this value is lqi.