diff --git a/lib/entity_class/entity.class.dart b/lib/entity_class/entity.class.dart index 67f6d05..1d44773 100644 --- a/lib/entity_class/entity.class.dart +++ b/lib/entity_class/entity.class.dart @@ -233,6 +233,8 @@ class ClimateEntity extends Entity { List get operationList => (attributes["operation_list"] as List).cast(); double get temperature => _getTemperature(); + double get targetHigh => _getTargetHigh(); + double get targetLow => _getTargetLow(); String get operationMode => attributes['operation_mode'] ?? ""; bool get awayMode => attributes['away_mode'] == "on"; @@ -249,13 +251,35 @@ class ClimateEntity extends Entity { } double _getTemperature() { - var temp1 = attributes['temperature'] ?? attributes['target_temp_low']; + var temp1 = attributes['temperature']; if (temp1 is int) { return temp1.toDouble(); } else if (temp1 is double) { return temp1; } else { - return 0.0; + return null; + } + } + + double _getTargetHigh() { + var temp1 = attributes['target_temp_high']; + if (temp1 is int) { + return temp1.toDouble(); + } else if (temp1 is double) { + return temp1; + } else { + return null; + } + } + + double _getTargetLow() { + var temp1 = attributes['target_temp_low']; + if (temp1 is int) { + return temp1.toDouble(); + } else if (temp1 is double) { + return temp1; + } else { + return null; } } } diff --git a/lib/entity_class/stateful_widgets.dart b/lib/entity_class/stateful_widgets.dart index fcd33b9..09f84da 100644 --- a/lib/entity_class/stateful_widgets.dart +++ b/lib/entity_class/stateful_widgets.dart @@ -237,13 +237,13 @@ class _ClimateControlWidgetState extends State { bool _showPending = false; bool _changedHere = false; Timer _resetTimer; - double _tmpTemp = 0.0; + double _tmpTemperature = 0.0; String _tmpOperationMode = ""; bool _tmpAwayMode = false; double _temperatureStep = 0.2; void _resetVars(ClimateEntity entity) { - _tmpTemp = entity.temperature; + _tmpTemperature = entity.temperature; _tmpOperationMode = entity.operationMode; _tmpAwayMode = entity.awayMode; _showPending = false; @@ -251,20 +251,20 @@ class _ClimateControlWidgetState extends State { } void _temperatureUp(ClimateEntity entity) { - _tmpTemp += _temperatureStep; + _tmpTemperature += _temperatureStep; _setTemperature(entity); } void _temperatureDown(ClimateEntity entity) { - _tmpTemp -= _temperatureStep; + _tmpTemperature -= _temperatureStep; _setTemperature(entity); } void _setTemperature(ClimateEntity entity) { setState(() { - _tmpTemp = double.parse(_tmpTemp.toStringAsFixed(1)); + _tmpTemperature = double.parse(_tmpTemperature.toStringAsFixed(1)); _changedHere = true; - eventBus.fire(new ServiceCallEvent(entity.domain, "set_temperature", entity.entityId,{"temperature": "${_tmpTemp.toStringAsFixed(1)}"})); + eventBus.fire(new ServiceCallEvent(entity.domain, "set_temperature", entity.entityId,{"temperature": "${_tmpTemperature.toStringAsFixed(1)}"})); _resetStateTimer(entity); }); } @@ -302,7 +302,7 @@ class _ClimateControlWidgetState extends State { final entityModel = EntityModel.of(context); final ClimateEntity entity = entityModel.entity; if (_changedHere) { - _showPending = (_tmpTemp != entity.temperature); + _showPending = (_tmpTemperature != entity.temperature); _changedHere = false; } else { _resetTimer?.cancel(); @@ -320,7 +320,7 @@ class _ClimateControlWidgetState extends State { children: [ Expanded( child: Text( - "$_tmpTemp", + "$_tmpTemperature", style: TextStyle( fontSize: entity.largeFontSize, color: _showPending ? Colors.red : Colors.black diff --git a/lib/entity_class/stateless_widgets.dart b/lib/entity_class/stateless_widgets.dart index fd7bbb3..11f5472 100644 --- a/lib/entity_class/stateless_widgets.dart +++ b/lib/entity_class/stateless_widgets.dart @@ -350,7 +350,7 @@ class ClimateStateWidget extends StatelessWidget { fontSize: entityModel.entity.stateFontSize, )), Text( - " ${entity.attributes["temperature"]}", + entity.temperature!= null ? " ${entity.temperature}" : " ${entity.targetLow} - ${entity.targetHigh}", textAlign: TextAlign.right, style: new TextStyle( fontSize: entityModel.entity.stateFontSize, diff --git a/lib/main.dart b/lib/main.dart index 4c9d4d6..fea4f71 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -30,7 +30,7 @@ part 'card_class.dart'; EventBus eventBus = new EventBus(); const String appName = "HA Client"; -const appVersion = "0.2.5.34"; +const appVersion = "0.2.5.35"; String homeAssistantWebHost; diff --git a/pubspec.yaml b/pubspec.yaml index c55fdeb..ced6ae4 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: hass_client description: Home Assistant Android Client -version: 0.2.5+34 +version: 0.2.5+35 environment: sdk: ">=2.0.0-dev.68.0 <3.0.0"