Resolves #148 assumed_state support
This commit is contained in:
@ -28,12 +28,33 @@ class _SwitchStateWidgetState extends State<SwitchStateWidget> {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final entityModel = EntityModel.of(context);
|
final entityModel = EntityModel.of(context);
|
||||||
|
final entity = entityModel.entity;
|
||||||
|
if ((entity.attributes["assumed_state"] == null) || (entity.attributes["assumed_state"] == false)) {
|
||||||
return Switch(
|
return Switch(
|
||||||
value: entityModel.entity.assumedState == 'on',
|
value: entity.assumedState == 'on',
|
||||||
onChanged: ((switchState) {
|
onChanged: ((switchState) {
|
||||||
_setNewState(switchState, entityModel.entity);
|
_setNewState(switchState, entity);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
} else {
|
||||||
|
return Row(
|
||||||
|
children: <Widget>[
|
||||||
|
IconButton(
|
||||||
|
onPressed: () => _setNewState(false, entity),
|
||||||
|
icon: Icon(MaterialDesignIcons.createIconDataFromIconName("mdi:flash-off")),
|
||||||
|
color: entity.assumedState == 'on' ? Colors.black : Colors.blue,
|
||||||
|
iconSize: Entity.iconSize,
|
||||||
|
),
|
||||||
|
IconButton(
|
||||||
|
onPressed: () => _setNewState(true, entity),
|
||||||
|
icon: Icon(MaterialDesignIcons.createIconDataFromIconName("mdi:flash")),
|
||||||
|
color: entity.assumedState == 'on' ? Colors.blue : Colors.black,
|
||||||
|
iconSize: Entity.iconSize
|
||||||
|
)
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,7 +192,6 @@ class HomeAssistant {
|
|||||||
|
|
||||||
_handleMessage(String message) {
|
_handleMessage(String message) {
|
||||||
var data = json.decode(message);
|
var data = json.decode(message);
|
||||||
TheLogger.log("Debug","[Received] => ${data['type']}");
|
|
||||||
if (data["type"] == "auth_required") {
|
if (data["type"] == "auth_required") {
|
||||||
_sendAuthMessageRaw('{"type": "auth","$_authType": "$_password"}');
|
_sendAuthMessageRaw('{"type": "auth","$_authType": "$_password"}');
|
||||||
} else if (data["type"] == "auth_ok") {
|
} else if (data["type"] == "auth_ok") {
|
||||||
@ -210,10 +209,11 @@ class HomeAssistant {
|
|||||||
} else if (data["id"] == _userInfoMessageId) {
|
} else if (data["id"] == _userInfoMessageId) {
|
||||||
_parseUserInfo(data);
|
_parseUserInfo(data);
|
||||||
} else if (data["id"] == _currentMessageId) {
|
} else if (data["id"] == _currentMessageId) {
|
||||||
TheLogger.log("Debug","Request id:$_currentMessageId was successful");
|
TheLogger.log("Debug","[Received] => Request id:$_currentMessageId was successful");
|
||||||
}
|
}
|
||||||
} else if (data["type"] == "event") {
|
} else if (data["type"] == "event") {
|
||||||
if ((data["event"] != null) && (data["event"]["event_type"] == "state_changed")) {
|
if ((data["event"] != null) && (data["event"]["event_type"] == "state_changed")) {
|
||||||
|
TheLogger.log("Debug","[Received] => ${data['type']}.${data["event"]["event_type"]}: ${data["event"]["data"]["entity_id"]}");
|
||||||
_handleEntityStateChange(data["event"]["data"]);
|
_handleEntityStateChange(data["event"]["data"]);
|
||||||
} else if (data["event"] != null) {
|
} else if (data["event"] != null) {
|
||||||
TheLogger.log("Warning","Unhandled event type: ${data["event"]["event_type"]}");
|
TheLogger.log("Warning","Unhandled event type: ${data["event"]["event_type"]}");
|
||||||
|
Reference in New Issue
Block a user