4.2Using system objects and reusable values
How canvas objects use values published by gateway components, which value IDs exist, where the pickers list them and how to send them to KNX.
Gateway components publish values that have nothing to do with a KNX group address: a Modbus register, a Zigbee temperature, the sunset time, a generator's battery voltage. Each value has a reusable value ID. A canvas object that uses the System Object source shows or uses that value.
#Which objects can use them
| Object | Where you choose the value | Notes |
|---|---|---|
| Analog Value | Protocol System Object, then System Value | Shows a number or text. |
| State Action | Protocol System Object, then System Object | Shows text. Time values can use a 12-hour or 24-hour format. |
| Energy Flow Line | Data Source System Object, then System Value | Uses the number as the flow. |
| Generator panel, UPS panel (generic), Solar panel (generic) | Value pickers inside the panel's properties | List Modbus datapoints and the matching manager's values. |
| Graph | Configure Recorded Values | A Graph does not read live values. It reads what the History Recorder stored. |
A Switch, Dimmer Light or other control object does not use the System Object source. For a Zigbee device, set its Protocol to Zigbee instead. The Group Address / Device ID field then becomes a list of the Zigbee device values you configured, such as Hall light - On/Off.
#Value IDs
| Source | ID format | Example |
|---|---|---|
| Modbus datapoint | modbus:<device>.<datapoint> | modbus:energy_meter.total_power |
| Zigbee device | zigbee:<device>.<value> where the value is onOff, onOff2, brightness, color, occupancy, temperature or humidity | zigbee:zigbee_device_1_3f9a21c4.onOff |
| Rule Gateway rule | rule:<name> | rule:knx_rule |
| Network I/O virtual input | network:<name> | network:virtual_input |
| CAN signal | can:<name> (or the id you gave the signal) | can:battery_voltage |
| Genset Manager | genset:<field> | genset:batteryVoltage |
| UPS Manager | ups:<field> | ups:batteryCapacity |
| Solar Manager | solar:<field> | solar:acPowerKw |
| Watering Manager | watering:active_zone | watering:active_zone |
| Solar Engine, Muslim Prayer Times, Christian Events | The value name | solar-sunset, prayer-fajr, christian-next-event-name |
Names in an ID are written in lower case, with every run of other characters replaced by an underscore. When a picker stores a value on an object it adds the prefix system:, for example system:modbus:energy_meter.total_power. The gateway removes the prefix again, so you never type it yourself.
The manager services publish fixed field lists:
- Genset Manager: Mode, Alarm, Status, Speed (RPM), Battery voltage, Charging voltage, Frequency, Voltage L1 to L3, Current L1 to L3, Current total, Active power total, Fuel level.
- UPS Manager: Mode, Alarm, Load percent L1 and total, Battery capacity, Output voltage, current and frequency, Battery voltage, Temperature, Backup time remaining, Input mains voltage and frequency, Output active power.
- Solar Manager: State, AC power, DC power, Lifetime energy, AC voltage, AC current, AC frequency, Cabinet temperature, MPPT1 DC voltage, current and power.
These groups appear in a picker only after the manager has a Modbus device chosen.
#What the picker lists
The built-in groups are always there: Solar Values (Dawn, Sunrise, Noon, Sunset, Dusk, Azimuth, Elevation), Muslim Prayer Times and Christian Events. The other groups are added when something is configured.
| Picker | Built-in groups | Groups added when configured |
|---|---|---|
| Analog Value | Solar Values, Muslim Prayer Times, Christian Events | Modbus RTU, Zigbee, Network I/O (with the CAN signals), Rule Gateway, Watering, Genset Manager, UPS Manager, Solar Manager |
| State Action | Solar Values, Muslim Prayer Times, Christian Events | Modbus RTU, Zigbee, Network I/O, Rule Gateway, Watering |
| Energy Flow Line | Solar Values, Muslim Prayer Times | Modbus RTU, Network I/O, Rule Gateway, Watering |
A Modbus entry reads <device name> - <datapoint name>, for example Energy Meter - Total Power. The list shows what is configured, not what is running. A value from an interface that is switched off is listed but never receives a number.
#Publishing values to KNX
A value can also be written onto the KNX bus so that other KNX devices can use it.
- Modbus datapoint: in Configure RTU Devices, switch on Send value to KNX on the datapoint. Choose the KNX group address and the KNX datatype (DPT 1.001, 5.001, 7.001, 8.001, 9.001, 9.020, 12.001, 13.001 or 14.001; 9.001 is the default). Only on change is on by default, and Min change sets how far a number must move before it is sent again. The first reading after a start is always sent.
- Zigbee device: each value has its own Send value to KNX switch and group address. The data types are fixed: on/off and occupancy use DPT 1.001, brightness 5.001, color 251.600 (RGBW), temperature 9.001 and humidity 9.007.
- Other sources: the Rule Gateway, Formula Engine, Value Store and Automation write to KNX through their own settings. See their pages.
The MQTT Client can also use a system value as the source of a topic binding. See MQTT Client.
#Example: show a meter's power and send it to KNX
This example reads one value from a Modbus energy meter, shows it on a page and sends it to KNX. The register address, slave ID and group address are examples. Take the real ones from the meter's register list and your KNX design.
- Open Server > Interfaces > RS485 Interface. Switch Enabled on. Set Baud rate, Data bits, Parity and Stop bits to match the meter, for example
9600,8,None,1. - Click Configure RTU Devices, then Add. On the Device tab set Name to
Energy Meterand Slave ID to5. - Open the Datapoints tab. Set Name to
Total Power, Data address to0x0034, Read function to03 - Read Holding Registers, Data type toFloat 32-bit, Register count to2, Word order toABCD - normaland Unit toW. - Set Reusable value ID to
modbus:energy_meter.total_power. The field was filled in from the default names when the device was created, so overwrite it. - Switch Send value to KNX on. Set KNX group address to
7/0/1, KNX datatype toDPT 14.001 - 4 byte float, leave Only on change on and set Min change to5. Click Save Changes. - On a page, add an Analog Value. Set Protocol to
System Object. Under System Value, open the group Modbus RTU and pickEnergy Meter - Total Power. Set Unit of Measure toWand Decimal Digits to0. - Deploy. See Deploying to a gateway.
To check it, reopen the datapoint and look at Latest value. It reads the gateway every 5 seconds. Diagnostics shows the RS485 bus as READY with one device, and the KNX telegram monitor shows the write to 7/0/1.
#Tips and common problems
- The object shows
--or its preview value: the gateway has no value yet. Check that the interface or manager is switched on and deployed, and that the ID on the object matches the ID on the datapoint. - A value stopped updating: the gateway marks a Modbus value as stale when it has not been refreshed for 15 seconds, or when a read fails.
- An object lost its value after an edit: you changed the Reusable value ID. Choose the value again in the object's picker.
- The value is wrong by a factor of 10: use the datapoint's Scale once. Do not scale again on the object.
- Nothing appears on KNX: the group address must be filled in, the KNX engine must be running, and Only on change only sends when the number actually changes.