Running openHAB2.5 on openHABian buster (RPi3B+).
I want to use Group:Switch:OR(ON,OFF)
group aggregation to check whether a fire alarm has any alarm set (e.g., heat alarm, smoke alarm, tamper alarm, system alarm, low battery level).
According to the Group item documentation, the state of the group defined this way can only be one of:
-
ON
if at least 1 of the group items has stateON
-
OFF
in all other situations
However, my sitemap tells me otherwise. The textual representation of the aggregation group state is ā-ā (which happens to be NULL
) which is unexpected.
Is this a bug or an undocumented behaviour?
Hereās one fire alarm (Fibaro Smoke Alarm 3) item definition:
// Group item containing all items relating to the fire alarm at AT_Attic:
Group AT_Attic_SmokeAlarm (gSmokeAlarms)
// The following line is the group aggregation that should only be ON or OFF:
Group:Switch:OR(ON,OFF) AT_Attic_SmokeAlarm_Alarm "Attic Hall Smoke Alarm [%s]" <alarm>
// The individual items linked to this fire alarm sensor are defined below:
Number:Temperature AT_Attic_SmokeAlarm_Temperature "Attic Temperature [%.1f %unit%]" <temperature> (AT_Attic_SmokeAlarm, gHome_AT_Attic, gPersist_everyChange) {
channel="zwave:device:controller:node13:sensor_temperature"
}
Switch AT_Attic_SmokeAlarm_Alarm_Heat "Heat alarm" <my_alarm> (AT_Attic_SmokeAlarm, AT_Attic_SmokeAlarm_Alarm, gHome_AT_Attic, gPersist_everyChange) {
channel="zwave:device:controller:node13:alarm_heat"
}
Switch AT_Attic_SmokeAlarm_Alarm_Smoke "Smoke alarm" <my_alarm> (AT_Attic_SmokeAlarm, AT_Attic_SmokeAlarm_Alarm, gHome_AT_Attic, gPersist_everyChange) {
channel="zwave:device:controller:node13:alarm_smoke"
}
Switch AT_Attic_SmokeAlarm_Alarm_System "Hardware failure alarm" <my_alarm> (AT_Attic_SmokeAlarm, AT_Attic_SmokeAlarm_Alarm, gHome_AT_Attic, gPersist_everyChange) {
channel="zwave:device:controller:node13:alarm_system"
}
Switch AT_Attic_SmokeAlarm_Alarm_Tamper "Tamper alarm" <my_alarm> (AT_Attic_SmokeAlarm, AT_Attic_SmokeAlarm_Alarm, gHome_AT_Attic, gPersist_everyChange) {
channel="zwave:device:controller:node13:alarm_tamper"
}
Switch AT_Attic_SmokeAlarm_Alarm_Battery "Battery Low" <lowbattery> (AT_Attic_SmokeAlarm, AT_Attic_SmokeAlarm_Alarm, gHome_AT_Attic, gPersist_everyChange, gBatteryLow) {
channel="zwave:device:controller:node13:alarm_battery"
}
Number AT_Attic_SmokeAlarm_Battery "Attic Smoke Alarm: Battery Level [%.1f %%]" <battery> (AT_Attic_SmokeAlarm, gHome_AT_Attic, gPersist_everyChange, gBattery, gBatteryLevel, gBatteryType_CR123A) {
channel="zwave:device:controller:node13:battery-level"
}
On my sitemap I define:
Frame label="Fire Alarms" icon="alarm" {
Text item=AT_Attic_SmokeAlarm_Alarm icon="my_alarm"
Default item=AT_Attic_SmokeAlarm_Alarm icon="my_alarm" labelcolor=[
"ON"="red", "OFF"="green", "NULL"="orange", "UNDEF"="#777"
]
}
I have the following custom dynamic icons stored in $OPENHAB_CONF/icons/classic
:
openhabian@openhab:/etc/openhab2/icons/classic$ ls -l my_alarm*
-rw-rw-r-- 1 openhabian openhabian 8510 Jan 29 16:56 my_alarm-null.png
-rw-rw-r-- 1 openhabian openhabian 3239 Jan 29 17:00 my_alarm-null.svg
-rw-rw-r-- 1 openhab openhab 5094 Mar 11 2016 my_alarm-off.png
-rw-rw-r-- 1 openhab openhab 261 Mar 7 2016 my_alarm-off.svg
-rw-rw-r-- 1 openhab openhab 3256 Mar 10 2016 my_alarm-on.png
-rw-rw-r-- 1 openhab openhab 691 Mar 7 2016 my_alarm-on.svg
-rw-rw-r-- 1 openhab openhab 1502 Jan 29 15:55 my_alarm.png
-rw-rw-r-- 1 openhab openhab 1299 Jan 29 15:36 my_alarm.svg
-rw-rw-r-- 1 openhab openhab 8957 Jan 29 16:58 my_alarm-undef.png
-rw-rw-r-- 1 openhab openhab 3239 Jan 29 16:58 my_alarm-undef.svg
Hereās a screenshot of the reported states:
And here are the custom dynamic icons:
Icon | State | File name (dynamic icon) |
---|---|---|
(default / fall-back) | my_alarm | |
ON |
my_alarm-on (Source: Wikimedia) | |
OFF |
my_alarm-off (Source: Wikimedia) | |
NULL |
my_alarm-null (Source: Wikimedia) | |
UNDEF |
my_alarm_undef (Source: Wikimedia - changed color in Inkscape) |