WIP #142 Alarm control panel

This commit is contained in:
Yegor Vyalov 2019-01-28 16:48:49 +02:00
parent 96b528e055
commit dc3ca38c78
5 changed files with 67 additions and 1 deletions

View File

@ -0,0 +1,10 @@
part of '../main.dart';
class AlarmControlPanelEntity extends Entity {
AlarmControlPanelEntity(Map rawData) : super(rawData);
@override
Widget _buildAdditionalControlsForPage(BuildContext context) {
return AlarmControlPanelControlsWidget();
}
}

View File

@ -86,6 +86,9 @@ class EntityCollection {
case "fan": {
return FanEntity(rawEntityData);
}
case "alarm_control_panel": {
return AlarmControlPanelEntity(rawEntityData);
}
default: {
return Entity(rawEntityData);
}

View File

@ -0,0 +1,44 @@
part of '../../main.dart';
class AlarmControlPanelControlsWidget extends StatefulWidget {
@override
_AlarmControlPanelControlsWidgetWidgetState createState() => _AlarmControlPanelControlsWidgetWidgetState();
}
class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPanelControlsWidget> {
void _disarm(AlarmControlPanelEntity entity, String code) {
eventBus.fire(new ServiceCallEvent(
entity.domain, "alarm_disarm", entity.entityId,
{"code": "$code"}));
}
@override
Widget build(BuildContext context) {
final entityModel = EntityModel.of(context);
final AlarmControlPanelEntity entity = entityModel.entityWrapper.entity;
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
TextField(
//focusNode: _focusNode,
obscureText: true,
/*controller: new TextEditingController.fromValue(
new TextEditingValue(
text: _tmpValue,
selection:
new TextSelection.collapsed(offset: _tmpValue.length)
)
),*/
onChanged: (value) {
Logger.d('Alarm code: $value');
})
],
);
}
}

View File

@ -34,6 +34,7 @@ part 'entity_class/lock_entity.class.dart';
part 'entity_class/group_entity.class.dart';
part 'entity_class/fan_entity.class.dart';
part 'entity_class/automation_entity.dart';
part 'entity_class/alarm_control_panel.class.dart';
part 'entity_widgets/common/badge.dart';
part 'entity_widgets/model_widgets.dart';
part 'entity_widgets/default_entity_container.dart';
@ -69,6 +70,7 @@ part 'entity_widgets/controls/cover_controls.dart';
part 'entity_widgets/controls/light_controls.dart';
part 'entity_widgets/controls/media_player_widgets.dart';
part 'entity_widgets/controls/fan_controls.dart';
part 'entity_widgets/controls/alarm_control_panel_controls.dart';
part 'settings.page.dart';
part 'home_assistant.class.dart';
part 'log.page.dart';

View File

@ -24,7 +24,14 @@ class MaterialDesignIcons {
"cover.opening": "mdi:window-open",
"lock.locked": "mdi:lock",
"lock.unlocked": "mdi:lock-open",
"fan": "mdi:fan"
"fan": "mdi:fan",
"alarm_control_panel.disarmed" : "mdi:bell-outline",
"alarm_control_panel.armed_home" : "mdi:bell-plus",
"alarm_control_panel.armed_away" : "mdi:bell",
"alarm_control_panel.armed_night" : "mdi:bell-sleep",
"alarm_control_panel.armed_custom_bypass" : "mdi:bell-sleep",
"alarm_control_panel.triggered" : "mdi:bell-ring",
"alarm_control_panel" : "mdi:bell"
};
static Map _defaultIconsByDeviceClass = {