Power Menu button enhancements (#1061)

* Power Menu button enhancements

* Map more states for status text
This commit is contained in:
Daniel Shokouhi 2020-10-16 04:42:29 -07:00 committed by GitHub
parent 44d8af97e9
commit 8972742244
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 47 additions and 5 deletions

View file

@ -34,6 +34,18 @@ class ClimateControl {
control.setTitle(entity.attributes["friendly_name"].toString()) control.setTitle(entity.attributes["friendly_name"].toString())
control.setDeviceType(DeviceTypes.TYPE_AC_HEATER) control.setDeviceType(DeviceTypes.TYPE_AC_HEATER)
control.setStatus(Control.STATUS_OK) control.setStatus(Control.STATUS_OK)
control.setStatusText(
when (entity.state) {
"auto" -> "Auto"
"cool" -> "Cool"
"dry" -> "Dry"
"fan_only" -> "Fan Only"
"heat" -> "Heat"
"heat_cool" -> "Heat Cool"
"off" -> "Off"
else -> entity.state
}
)
control.setControlTemplate( control.setControlTemplate(
RangeTemplate( RangeTemplate(
entity.entityId, entity.entityId,
@ -41,7 +53,7 @@ class ClimateControl {
100f, 100f,
(entity.attributes["temperature"] as? Number)?.toFloat() ?: 0f, (entity.attributes["temperature"] as? Number)?.toFloat() ?: 0f,
.5f, .5f,
"" "%.0f"
) )
) )

View file

@ -31,8 +31,28 @@ class CoverControl {
) )
) )
control.setTitle(entity.attributes["friendly_name"].toString()) control.setTitle(entity.attributes["friendly_name"].toString())
control.setDeviceType(DeviceTypes.TYPE_GARAGE) control.setDeviceType(
when (entity.attributes["device_class"]) {
"awning" -> DeviceTypes.TYPE_AWNING
"blind" -> DeviceTypes.TYPE_BLINDS
"curtain" -> DeviceTypes.TYPE_CURTAIN
"door" -> DeviceTypes.TYPE_DOOR
"garage" -> DeviceTypes.TYPE_GARAGE
"gate" -> DeviceTypes.TYPE_GATE
"shutter" -> DeviceTypes.TYPE_SHUTTER
"window" -> DeviceTypes.TYPE_WINDOW
else -> DeviceTypes.TYPE_GENERIC_OPEN_CLOSE
}
)
control.setStatus(Control.STATUS_OK) control.setStatus(Control.STATUS_OK)
control.setStatusText(
when (entity.state) {
"closed" -> "Closed"
"closing" -> "Closing"
"open" -> "Open"
"opening" -> "Opening"
else -> entity.state
})
control.setControlTemplate( control.setControlTemplate(
ToggleTemplate( ToggleTemplate(
entity.entityId, entity.entityId,

View file

@ -32,8 +32,14 @@ class DefaultSwitchControl {
) )
) )
control.setTitle(entity.attributes["friendly_name"].toString()) control.setTitle(entity.attributes["friendly_name"].toString())
control.setDeviceType(DeviceTypes.TYPE_GENERIC_ON_OFF) control.setDeviceType(
when (entity.entityId.split(".")[0]) {
"switch" -> DeviceTypes.TYPE_SWITCH
else -> DeviceTypes.TYPE_GENERIC_ON_OFF
}
)
control.setStatus(Control.STATUS_OK) control.setStatus(Control.STATUS_OK)
control.setStatusText(if (entity.state == "off") "Off" else "On")
control.setControlTemplate( control.setControlTemplate(
ToggleTemplate( ToggleTemplate(
entity.entityId, entity.entityId,

View file

@ -35,6 +35,7 @@ class LightControl {
control.setTitle(entity.attributes["friendly_name"].toString()) control.setTitle(entity.attributes["friendly_name"].toString())
control.setDeviceType(DeviceTypes.TYPE_LIGHT) control.setDeviceType(DeviceTypes.TYPE_LIGHT)
control.setStatus(Control.STATUS_OK) control.setStatus(Control.STATUS_OK)
control.setStatusText(if (entity.state == "off") "Off" else "On")
control.setControlTemplate( control.setControlTemplate(
ToggleRangeTemplate( ToggleRangeTemplate(
entity.entityId, entity.entityId,
@ -44,9 +45,12 @@ class LightControl {
entity.entityId, entity.entityId,
0f, 0f,
255f, 255f,
(entity.attributes["brightness"] as? Number)?.toFloat() ?: 0f, (entity.attributes["brightness"] as? Number)
?.toFloat()
?.div(255f)
?.times(100) ?: 0f,
1f, 1f,
"" "%.0f%%"
) )
) )
) )