Fixx service calls
This commit is contained in:
parent
139533d2ca
commit
551a8dfa31
@ -26,10 +26,10 @@ class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPane
|
|||||||
|
|
||||||
void _callService(AlarmControlPanelEntity entity, String service) {
|
void _callService(AlarmControlPanelEntity entity, String service) {
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain,
|
domain: entity.domain,
|
||||||
service,
|
service: service,
|
||||||
entity.entityId,
|
entityId: entity.entityId,
|
||||||
{"code": "$code"}
|
data: {"code": "$code"}
|
||||||
);
|
);
|
||||||
setState(() {
|
setState(() {
|
||||||
code = "";
|
code = "";
|
||||||
@ -62,10 +62,9 @@ class _AlarmControlPanelControlsWidgetWidgetState extends State<AlarmControlPane
|
|||||||
child: new Text("Yes"),
|
child: new Text("Yes"),
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain,
|
domain: entity.domain,
|
||||||
"alarm_trigger",
|
service: "alarm_trigger",
|
||||||
entity.entityId,
|
entityId: entity.entityId
|
||||||
null
|
|
||||||
);
|
);
|
||||||
Navigator.of(context).pop();
|
Navigator.of(context).pop();
|
||||||
},
|
},
|
||||||
|
@ -84,10 +84,10 @@ class _ClimateControlWidgetState extends State<ClimateControlWidget> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain,
|
domain: entity.domain,
|
||||||
"set_temperature",
|
service: "set_temperature",
|
||||||
entity.entityId,
|
entityId: entity.entityId,
|
||||||
{"temperature": "${_tmpTemperature.toStringAsFixed(1)}"}
|
data: {"temperature": "${_tmpTemperature.toStringAsFixed(1)}"}
|
||||||
);
|
);
|
||||||
_resetStateTimer(entity);
|
_resetStateTimer(entity);
|
||||||
});
|
});
|
||||||
@ -107,10 +107,10 @@ class _ClimateControlWidgetState extends State<ClimateControlWidget> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain,
|
domain: entity.domain,
|
||||||
"set_temperature",
|
service: "set_temperature",
|
||||||
entity.entityId,
|
entityId: entity.entityId,
|
||||||
{"target_temp_high": "${_tmpTargetHigh.toStringAsFixed(1)}", "target_temp_low": "${_tmpTargetLow.toStringAsFixed(1)}"}
|
data: {"target_temp_high": "${_tmpTargetHigh.toStringAsFixed(1)}", "target_temp_low": "${_tmpTargetLow.toStringAsFixed(1)}"}
|
||||||
);
|
);
|
||||||
_resetStateTimer(entity);
|
_resetStateTimer(entity);
|
||||||
});
|
});
|
||||||
@ -121,7 +121,12 @@ class _ClimateControlWidgetState extends State<ClimateControlWidget> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_tmpTargetHumidity = value.roundToDouble();
|
_tmpTargetHumidity = value.roundToDouble();
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(entity.domain, "set_humidity", entity.entityId, {"humidity": "$_tmpTargetHumidity"});
|
ConnectionManager().callService(
|
||||||
|
domain: entity.domain,
|
||||||
|
service: "set_humidity",
|
||||||
|
entityId: entity.entityId,
|
||||||
|
data: {"humidity": "$_tmpTargetHumidity"}
|
||||||
|
);
|
||||||
_resetStateTimer(entity);
|
_resetStateTimer(entity);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -130,7 +135,12 @@ class _ClimateControlWidgetState extends State<ClimateControlWidget> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_tmpHVACMode = value;
|
_tmpHVACMode = value;
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(entity.domain, "set_hvac_mode", entity.entityId, {"hvac_mode": "$_tmpHVACMode"});
|
ConnectionManager().callService(
|
||||||
|
domain: entity.domain,
|
||||||
|
service: "set_hvac_mode",
|
||||||
|
entityId: entity.entityId,
|
||||||
|
data: {"hvac_mode": "$_tmpHVACMode"}
|
||||||
|
);
|
||||||
_resetStateTimer(entity);
|
_resetStateTimer(entity);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -139,7 +149,12 @@ class _ClimateControlWidgetState extends State<ClimateControlWidget> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_tmpSwingMode = value;
|
_tmpSwingMode = value;
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(entity.domain, "set_swing_mode", entity.entityId, {"swing_mode": "$_tmpSwingMode"});
|
ConnectionManager().callService(
|
||||||
|
domain: entity.domain,
|
||||||
|
service: "set_swing_mode",
|
||||||
|
entityId: entity.entityId,
|
||||||
|
data: {"swing_mode": "$_tmpSwingMode"}
|
||||||
|
);
|
||||||
_resetStateTimer(entity);
|
_resetStateTimer(entity);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -148,7 +163,7 @@ class _ClimateControlWidgetState extends State<ClimateControlWidget> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_tmpFanMode = value;
|
_tmpFanMode = value;
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(entity.domain, "set_fan_mode", entity.entityId, {"fan_mode": "$_tmpFanMode"});
|
ConnectionManager().callService(domain: entity.domain, service: "set_fan_mode", entityId: entity.entityId, data: {"fan_mode": "$_tmpFanMode"});
|
||||||
_resetStateTimer(entity);
|
_resetStateTimer(entity);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -157,7 +172,7 @@ class _ClimateControlWidgetState extends State<ClimateControlWidget> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_tmpPresetMode = value;
|
_tmpPresetMode = value;
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(entity.domain, "set_preset_mode", entity.entityId, {"preset_mode": "$_tmpPresetMode"});
|
ConnectionManager().callService(domain: entity.domain, service: "set_preset_mode", entityId: entity.entityId, data: {"preset_mode": "$_tmpPresetMode"});
|
||||||
_resetStateTimer(entity);
|
_resetStateTimer(entity);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -175,7 +190,7 @@ class _ClimateControlWidgetState extends State<ClimateControlWidget> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_tmpAuxHeat = value;
|
_tmpAuxHeat = value;
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(entity.domain, "set_aux_heat", entity.entityId, {"aux_heat": "$_tmpAuxHeat"});
|
ConnectionManager().callService(domain: entity.domain, service: "set_aux_heat", entityId: entity.entityId, data: {"aux_heat": "$_tmpAuxHeat"});
|
||||||
_resetStateTimer(entity);
|
_resetStateTimer(entity);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ class _CoverControlWidgetState extends State<CoverControlWidget> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_tmpPosition = position.roundToDouble();
|
_tmpPosition = position.roundToDouble();
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(entity.domain, "set_cover_position", entity.entityId,{"position": _tmpPosition.round()});
|
ConnectionManager().callService(domain: entity.domain, service: "set_cover_position", entityId: entity.entityId, data: {"position": _tmpPosition.round()});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ class _CoverControlWidgetState extends State<CoverControlWidget> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_tmpTiltPosition = position.roundToDouble();
|
_tmpTiltPosition = position.roundToDouble();
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(entity.domain, "set_cover_tilt_position", entity.entityId,{"tilt_position": _tmpTiltPosition.round()});
|
ConnectionManager().callService(domain: entity.domain, service: "set_cover_tilt_position", entityId: entity.entityId, data: {"tilt_position": _tmpTiltPosition.round()});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,17 +136,17 @@ class _CoverControlWidgetState extends State<CoverControlWidget> {
|
|||||||
class CoverTiltControlsWidget extends StatelessWidget {
|
class CoverTiltControlsWidget extends StatelessWidget {
|
||||||
void _open(CoverEntity entity) {
|
void _open(CoverEntity entity) {
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "open_cover_tilt", entity.entityId, null);
|
domain: entity.domain, service: "open_cover_tilt", entityId: entity.entityId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _close(CoverEntity entity) {
|
void _close(CoverEntity entity) {
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "close_cover_tilt", entity.entityId, null);
|
domain: entity.domain, service: "close_cover_tilt", entityId: entity.entityId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _stop(CoverEntity entity) {
|
void _stop(CoverEntity entity) {
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "stop_cover_tilt", entity.entityId, null);
|
domain: entity.domain, service: "stop_cover_tilt", entityId: entity.entityId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -3,17 +3,26 @@ part of '../../../main.dart';
|
|||||||
class CoverStateWidget extends StatelessWidget {
|
class CoverStateWidget extends StatelessWidget {
|
||||||
void _open(CoverEntity entity) {
|
void _open(CoverEntity entity) {
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "open_cover", entity.entityId, null);
|
domain: entity.domain,
|
||||||
|
service: "open_cover",
|
||||||
|
entityId: entity.entityId
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _close(CoverEntity entity) {
|
void _close(CoverEntity entity) {
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "close_cover", entity.entityId, null);
|
domain: entity.domain,
|
||||||
|
service: "close_cover",
|
||||||
|
entityId: entity.entityId
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _stop(CoverEntity entity) {
|
void _stop(CoverEntity entity) {
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "stop_cover", entity.entityId, null);
|
domain: entity.domain,
|
||||||
|
service: "stop_cover",
|
||||||
|
entityId: entity.entityId
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -36,6 +36,6 @@ class DateTimeEntity extends Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setNewState(Map newValue) {
|
void setNewState(Map newValue) {
|
||||||
ConnectionManager().callService(domain, "set_datetime", entityId, newValue);
|
ConnectionManager().callService(domain: domain, service: "set_datetime", entityId: entityId, data: newValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -32,15 +32,17 @@ class EntityWrapper {
|
|||||||
void handleTap() {
|
void handleTap() {
|
||||||
switch (uiAction.tapAction) {
|
switch (uiAction.tapAction) {
|
||||||
case EntityUIAction.toggle: {
|
case EntityUIAction.toggle: {
|
||||||
ConnectionManager().callService("homeassistant", "toggle", entity.entityId, null);
|
ConnectionManager().callService(domain: "homeassistant", service: "toggle", entityId: entity.entityId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case EntityUIAction.callService: {
|
case EntityUIAction.callService: {
|
||||||
if (uiAction.tapService != null) {
|
if (uiAction.tapService != null) {
|
||||||
ConnectionManager().callService(uiAction.tapService.split(".")[0],
|
ConnectionManager().callService(
|
||||||
uiAction.tapService.split(".")[1], null,
|
domain: uiAction.tapService.split(".")[0],
|
||||||
uiAction.tapServiceData);
|
service: uiAction.tapService.split(".")[1],
|
||||||
|
data: uiAction.tapServiceData
|
||||||
|
);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -74,15 +76,17 @@ class EntityWrapper {
|
|||||||
void handleHold() {
|
void handleHold() {
|
||||||
switch (uiAction.holdAction) {
|
switch (uiAction.holdAction) {
|
||||||
case EntityUIAction.toggle: {
|
case EntityUIAction.toggle: {
|
||||||
ConnectionManager().callService("homeassistant", "toggle", entity.entityId, null);
|
ConnectionManager().callService(domain: "homeassistant", service: "toggle", entityId: entity.entityId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case EntityUIAction.callService: {
|
case EntityUIAction.callService: {
|
||||||
if (uiAction.holdService != null) {
|
if (uiAction.holdService != null) {
|
||||||
ConnectionManager().callService(uiAction.holdService.split(".")[0],
|
ConnectionManager().callService(
|
||||||
uiAction.holdService.split(".")[1], null,
|
domain: uiAction.holdService.split(".")[0],
|
||||||
uiAction.holdServiceData);
|
service: uiAction.holdService.split(".")[1],
|
||||||
|
data: uiAction.holdServiceData
|
||||||
|
);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,11 @@ class _FanControlsWidgetState extends State<FanControlsWidget> {
|
|||||||
_tmpOscillate = oscillate;
|
_tmpOscillate = oscillate;
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
"fan", "oscillate", entity.entityId,
|
domain: "fan",
|
||||||
{"oscillating": oscillate});
|
service: "oscillate",
|
||||||
|
entityId: entity.entityId,
|
||||||
|
data: {"oscillating": oscillate}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,8 +38,11 @@ class _FanControlsWidgetState extends State<FanControlsWidget> {
|
|||||||
_tmpDirectionForward = forward;
|
_tmpDirectionForward = forward;
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
"fan", "set_direction", entity.entityId,
|
domain: "fan",
|
||||||
{"direction": forward ? "forward" : "reverse"});
|
service: "set_direction",
|
||||||
|
entityId: entity.entityId,
|
||||||
|
data: {"direction": forward ? "forward" : "reverse"}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -45,8 +51,11 @@ class _FanControlsWidgetState extends State<FanControlsWidget> {
|
|||||||
_tmpSpeed = value;
|
_tmpSpeed = value;
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
"fan", "set_speed", entity.entityId,
|
domain: "fan",
|
||||||
{"speed": value});
|
service: "set_speed",
|
||||||
|
entityId: entity.entityId,
|
||||||
|
data: {"speed": value}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ class FlatServiceButton extends StatelessWidget {
|
|||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
void _setNewState() {
|
void _setNewState() {
|
||||||
ConnectionManager().callService(serviceDomain, serviceName, entityId, null);
|
ConnectionManager().callService(domain: serviceDomain, service: serviceName, entityId: entityId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -29,8 +29,11 @@ class _LightControlsWidgetState extends State<LightControlsWidget> {
|
|||||||
_tmpBrightness = value.round();
|
_tmpBrightness = value.round();
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "turn_on", entity.entityId,
|
domain: entity.domain,
|
||||||
{"brightness": _tmpBrightness});
|
service: "turn_on",
|
||||||
|
entityId: entity.entityId,
|
||||||
|
data: {"brightness": _tmpBrightness}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -39,8 +42,11 @@ class _LightControlsWidgetState extends State<LightControlsWidget> {
|
|||||||
_tmpWhiteValue = value.round();
|
_tmpWhiteValue = value.round();
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "turn_on", entity.entityId,
|
domain: entity.domain,
|
||||||
{"white_value": _tmpWhiteValue});
|
service: "turn_on",
|
||||||
|
entityId: entity.entityId,
|
||||||
|
data: {"white_value": _tmpWhiteValue}
|
||||||
|
);
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -50,8 +56,11 @@ class _LightControlsWidgetState extends State<LightControlsWidget> {
|
|||||||
_tmpColorTemp = value.round();
|
_tmpColorTemp = value.round();
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "turn_on", entity.entityId,
|
domain: entity.domain,
|
||||||
{"color_temp": _tmpColorTemp});
|
service: "turn_on",
|
||||||
|
entityId: entity.entityId,
|
||||||
|
data: {"color_temp": _tmpColorTemp}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,10 +68,12 @@ class _LightControlsWidgetState extends State<LightControlsWidget> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_tmpColor = color;
|
_tmpColor = color;
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
Logger.d( "HS Color: [${color.hue}, ${color.saturation}]");
|
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "turn_on", entity.entityId,
|
domain: entity.domain,
|
||||||
{"hs_color": [color.hue, color.saturation*100]});
|
service: "turn_on",
|
||||||
|
entityId: entity.entityId,
|
||||||
|
data: {"hs_color": [color.hue, color.saturation*100]}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,8 +83,11 @@ class _LightControlsWidgetState extends State<LightControlsWidget> {
|
|||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
if (_tmpEffect != null) {
|
if (_tmpEffect != null) {
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "turn_on", entity.entityId,
|
domain: entity.domain,
|
||||||
{"effect": "$value"});
|
service: "turn_on",
|
||||||
|
entityId: entity.entityId,
|
||||||
|
data: {"effect": "$value"}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -7,11 +7,11 @@ class LockStateWidget extends StatelessWidget {
|
|||||||
const LockStateWidget({Key key, this.assumedState: false}) : super(key: key);
|
const LockStateWidget({Key key, this.assumedState: false}) : super(key: key);
|
||||||
|
|
||||||
void _lock(Entity entity) {
|
void _lock(Entity entity) {
|
||||||
ConnectionManager().callService("lock", "lock", entity.entityId, null);
|
ConnectionManager().callService(domain: "lock", service: "lock", entityId: entity.entityId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _unlock(Entity entity) {
|
void _unlock(Entity entity) {
|
||||||
ConnectionManager().callService("lock", "unlock", entity.entityId, null);
|
ConnectionManager().callService(domain: "lock", service: "unlock", entityId: entity.entityId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -57,10 +57,10 @@ class _MediaPlayerSeekBarState extends State<MediaPlayerSeekBar> {
|
|||||||
focusColor: Colors.white,
|
focusColor: Colors.white,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
"media_player",
|
domain: "media_player",
|
||||||
"media_seek",
|
service: "media_seek",
|
||||||
"${entity.entityId}",
|
entityId: entity.entityId,
|
||||||
{"seek_position": _savedPosition}
|
data: {"seek_position": _savedPosition}
|
||||||
);
|
);
|
||||||
setState(() {
|
setState(() {
|
||||||
_savedPosition = 0;
|
_savedPosition = 0;
|
||||||
@ -104,10 +104,10 @@ class _MediaPlayerSeekBarState extends State<MediaPlayerSeekBar> {
|
|||||||
Timer(Duration(milliseconds: 500), () {
|
Timer(Duration(milliseconds: 500), () {
|
||||||
if (!_seekStarted) {
|
if (!_seekStarted) {
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
"media_player",
|
domain: "media_player",
|
||||||
"media_seek",
|
service: "media_seek",
|
||||||
"${entity.entityId}",
|
entityId: entity.entityId,
|
||||||
{"seek_position": val}
|
data: {"seek_position": val}
|
||||||
);
|
);
|
||||||
setState(() {
|
setState(() {
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
|
@ -122,13 +122,17 @@ class MediaPlayerPlaybackControls extends StatelessWidget {
|
|||||||
if (entity.state == EntityState.off) {
|
if (entity.state == EntityState.off) {
|
||||||
Logger.d("${entity.entityId} turn_on");
|
Logger.d("${entity.entityId} turn_on");
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "turn_on", entity.entityId,
|
domain: entity.domain,
|
||||||
null);
|
service: "turn_on",
|
||||||
|
entityId: entity.entityId
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
Logger.d("${entity.entityId} turn_off");
|
Logger.d("${entity.entityId} turn_off");
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "turn_off", entity.entityId,
|
domain: entity.domain,
|
||||||
null);
|
service: "turn_off",
|
||||||
|
entityId: entity.entityId
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -136,8 +140,10 @@ class MediaPlayerPlaybackControls extends StatelessWidget {
|
|||||||
void _callAction(MediaPlayerEntity entity, String action) {
|
void _callAction(MediaPlayerEntity entity, String action) {
|
||||||
Logger.d("${entity.entityId} $action");
|
Logger.d("${entity.entityId} $action");
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
entity.domain, "$action", entity.entityId,
|
domain: entity.domain,
|
||||||
null);
|
service: "$action",
|
||||||
|
entityId: entity.entityId
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@ -264,27 +270,50 @@ class _MediaPlayerControlsState extends State<MediaPlayerControls> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
_newVolumeLevel = value;
|
_newVolumeLevel = value;
|
||||||
ConnectionManager().callService("media_player", "volume_set", entityId, {"volume_level": value});
|
ConnectionManager().callService(
|
||||||
|
domain: "media_player",
|
||||||
|
service: "volume_set",
|
||||||
|
entityId: entityId,
|
||||||
|
data: {"volume_level": value}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void _setVolumeMute(bool isMuted, String entityId) {
|
void _setVolumeMute(bool isMuted, String entityId) {
|
||||||
ConnectionManager().callService("media_player", "volume_mute", entityId, {"is_volume_muted": isMuted});
|
ConnectionManager().callService(
|
||||||
|
domain: "media_player",
|
||||||
|
service: "volume_mute",
|
||||||
|
entityId: entityId,
|
||||||
|
data: {"is_volume_muted": isMuted}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _setVolumeUp(String entityId) {
|
void _setVolumeUp(String entityId) {
|
||||||
ConnectionManager().callService("media_player", "volume_up", entityId, null);
|
ConnectionManager().callService(
|
||||||
|
domain: "media_player",
|
||||||
|
service: "volume_up",
|
||||||
|
entityId: entityId
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _setVolumeDown(String entityId) {
|
void _setVolumeDown(String entityId) {
|
||||||
ConnectionManager().callService("media_player", "volume_down", entityId, null);
|
ConnectionManager().callService(
|
||||||
|
domain: "media_player",
|
||||||
|
service: "volume_down",
|
||||||
|
entityId: entityId
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _setSoundMode(String value, String entityId) {
|
void _setSoundMode(String value, String entityId) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_newSoundMode = value;
|
_newSoundMode = value;
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService("media_player", "select_sound_mode", entityId, {"sound_mode": "$value"});
|
ConnectionManager().callService(
|
||||||
|
domain: "media_player",
|
||||||
|
service: "select_sound_mode",
|
||||||
|
entityId: entityId,
|
||||||
|
data: {"sound_mode": "$value"}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -292,7 +321,12 @@ class _MediaPlayerControlsState extends State<MediaPlayerControls> {
|
|||||||
setState(() {
|
setState(() {
|
||||||
_newSource = source;
|
_newSource = source;
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
ConnectionManager().callService("media_player", "select_source", entityId, {"source": "$source"});
|
ConnectionManager().callService(
|
||||||
|
domain: "media_player",
|
||||||
|
service: "select_source",
|
||||||
|
entityId: entityId,
|
||||||
|
data: {"source": "$source"}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,8 +11,12 @@ class SelectStateWidget extends StatefulWidget {
|
|||||||
class _SelectStateWidgetState extends State<SelectStateWidget> {
|
class _SelectStateWidgetState extends State<SelectStateWidget> {
|
||||||
|
|
||||||
void setNewState(domain, entityId, newValue) {
|
void setNewState(domain, entityId, newValue) {
|
||||||
ConnectionManager().callService(domain, "select_option", entityId,
|
ConnectionManager().callService(
|
||||||
{"option": "$newValue"});
|
domain: domain,
|
||||||
|
service: "select_option",
|
||||||
|
entityId: entityId,
|
||||||
|
data: {"option": "$newValue"}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -18,8 +18,12 @@ class _SliderControlsWidgetState extends State<SliderControlsWidget> {
|
|||||||
_newValue = newValue;
|
_newValue = newValue;
|
||||||
_changedHere = true;
|
_changedHere = true;
|
||||||
});
|
});
|
||||||
ConnectionManager().callService(domain, "set_value", entityId,
|
ConnectionManager().callService(
|
||||||
{"value": "${newValue.toString()}"});
|
domain: domain,
|
||||||
|
service: "set_value",
|
||||||
|
entityId: entityId,
|
||||||
|
data: {"value": "${newValue.toString()}"}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -39,7 +39,10 @@ class _SwitchStateWidgetState extends State<SwitchStateWidget> {
|
|||||||
domain = entity.domain;
|
domain = entity.domain;
|
||||||
}
|
}
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
domain, (newValue as bool) ? "turn_on" : "turn_off", entity.entityId, null);
|
domain: domain,
|
||||||
|
service: (newValue as bool) ? "turn_on" : "turn_off",
|
||||||
|
entityId: entity.entityId
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
@ -26,8 +26,12 @@ class _TextInputStateWidgetState extends State<TextInputStateWidget> {
|
|||||||
|
|
||||||
void setNewState(newValue, domain, entityId) {
|
void setNewState(newValue, domain, entityId) {
|
||||||
if (validate(newValue, _minLength, _maxLength)) {
|
if (validate(newValue, _minLength, _maxLength)) {
|
||||||
ConnectionManager().callService(domain, "set_value", entityId,
|
ConnectionManager().callService(
|
||||||
{"value": "$newValue"});
|
domain: domain,
|
||||||
|
service: "set_value",
|
||||||
|
entityId: entityId,
|
||||||
|
data: {"value": "$newValue"}
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
setState(() {
|
setState(() {
|
||||||
_tmpValue = _entityState;
|
_tmpValue = _entityState;
|
||||||
|
@ -77,10 +77,9 @@ class VacuumControls extends StatelessWidget {
|
|||||||
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:play")),
|
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:play")),
|
||||||
iconSize: iconSize,
|
iconSize: iconSize,
|
||||||
onPressed: () => ConnectionManager().callService(
|
onPressed: () => ConnectionManager().callService(
|
||||||
"vacuum",
|
domain: "vacuum",
|
||||||
entity.entityId,
|
entityId: entity.entityId,
|
||||||
"start",
|
service: "start"
|
||||||
null
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -91,10 +90,9 @@ class VacuumControls extends StatelessWidget {
|
|||||||
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:play-pause")),
|
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:play-pause")),
|
||||||
iconSize: iconSize,
|
iconSize: iconSize,
|
||||||
onPressed: () => ConnectionManager().callService(
|
onPressed: () => ConnectionManager().callService(
|
||||||
"vacuum",
|
domain: "vacuum",
|
||||||
entity.entityId,
|
entityId: entity.entityId,
|
||||||
"start_pause",
|
service: "start_pause"
|
||||||
null
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -104,10 +102,9 @@ class VacuumControls extends StatelessWidget {
|
|||||||
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:pause")),
|
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:pause")),
|
||||||
iconSize: iconSize,
|
iconSize: iconSize,
|
||||||
onPressed: () => ConnectionManager().callService(
|
onPressed: () => ConnectionManager().callService(
|
||||||
"vacuum",
|
domain: "vacuum",
|
||||||
entity.entityId,
|
entityId: entity.entityId,
|
||||||
"pause",
|
service: "pause"
|
||||||
null
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -118,10 +115,9 @@ class VacuumControls extends StatelessWidget {
|
|||||||
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:stop")),
|
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:stop")),
|
||||||
iconSize: iconSize,
|
iconSize: iconSize,
|
||||||
onPressed: () => ConnectionManager().callService(
|
onPressed: () => ConnectionManager().callService(
|
||||||
"vacuum",
|
domain: "vacuum",
|
||||||
entity.entityId,
|
entityId: entity.entityId,
|
||||||
"stop",
|
service: "stop"
|
||||||
null
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -132,10 +128,9 @@ class VacuumControls extends StatelessWidget {
|
|||||||
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:broom")),
|
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:broom")),
|
||||||
iconSize: iconSize,
|
iconSize: iconSize,
|
||||||
onPressed: () => ConnectionManager().callService(
|
onPressed: () => ConnectionManager().callService(
|
||||||
"vacuum",
|
domain: "vacuum",
|
||||||
entity.entityId,
|
entityId: entity.entityId,
|
||||||
"clean_spot",
|
service: "clean_spot"
|
||||||
null
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -146,10 +141,9 @@ class VacuumControls extends StatelessWidget {
|
|||||||
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:map-marker")),
|
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:map-marker")),
|
||||||
iconSize: iconSize,
|
iconSize: iconSize,
|
||||||
onPressed: () => ConnectionManager().callService(
|
onPressed: () => ConnectionManager().callService(
|
||||||
"vacuum",
|
domain: "vacuum",
|
||||||
entity.entityId,
|
entityId: entity.entityId,
|
||||||
"locate",
|
service: "locate"
|
||||||
null
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -160,10 +154,9 @@ class VacuumControls extends StatelessWidget {
|
|||||||
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:home-map-marker")),
|
icon: Icon(MaterialDesignIcons.getIconDataFromIconName("mdi:home-map-marker")),
|
||||||
iconSize: iconSize,
|
iconSize: iconSize,
|
||||||
onPressed: () => ConnectionManager().callService(
|
onPressed: () => ConnectionManager().callService(
|
||||||
"vacuum",
|
domain: "vacuum",
|
||||||
entity.entityId,
|
entityId: entity.entityId,
|
||||||
"return_to_base",
|
service: "return_to_base"
|
||||||
null
|
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@ -201,10 +194,10 @@ class VacuumControls extends StatelessWidget {
|
|||||||
options: entity.fanSpeedList,
|
options: entity.fanSpeedList,
|
||||||
value: entity.fanSpeed,
|
value: entity.fanSpeed,
|
||||||
onChange: (val) => ConnectionManager().callService(
|
onChange: (val) => ConnectionManager().callService(
|
||||||
"vacuum",
|
domain: "vacuum",
|
||||||
entity.entityId,
|
entityId: entity.entityId,
|
||||||
"set_fan_speed",
|
service: "set_fan_speed",
|
||||||
{"fan_speed": val}
|
data: {"fan_speed": val}
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -348,16 +348,16 @@ class ConnectionManager {
|
|||||||
_currentMessageId += 1;
|
_currentMessageId += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Future callService(String domain, String service, String entityId, Map additionalServiceData) {
|
Future callService({@required String domain, @required String service, String entityId, Map data}) {
|
||||||
eventBus.fire(NotifyServiceCallEvent(domain, service, entityId));
|
eventBus.fire(NotifyServiceCallEvent(domain, service, entityId));
|
||||||
Logger.d("Service call: $domain.$service, $entityId, $additionalServiceData");
|
Logger.d("Service call: $domain.$service, $entityId, $data");
|
||||||
Completer completer = Completer();
|
Completer completer = Completer();
|
||||||
Map serviceData = {};
|
Map serviceData = {};
|
||||||
if (entityId != null) {
|
if (entityId != null) {
|
||||||
serviceData["entity_id"] = entityId;
|
serviceData["entity_id"] = entityId;
|
||||||
}
|
}
|
||||||
if (additionalServiceData != null && additionalServiceData.isNotEmpty) {
|
if (data != null && data.isNotEmpty) {
|
||||||
serviceData.addAll(additionalServiceData);
|
serviceData.addAll(data);
|
||||||
}
|
}
|
||||||
if (serviceData.isNotEmpty)
|
if (serviceData.isNotEmpty)
|
||||||
sendHTTPPost(
|
sendHTTPPost(
|
||||||
|
@ -45,7 +45,7 @@ class MobileAppIntegrationManager {
|
|||||||
positiveText: "Restart now",
|
positiveText: "Restart now",
|
||||||
negativeText: "Later",
|
negativeText: "Later",
|
||||||
onPositive: () {
|
onPositive: () {
|
||||||
ConnectionManager().callService("homeassistant","restart", null, null);
|
ConnectionManager().callService(domain: "homeassistant", service: "restart");
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
});
|
});
|
||||||
|
@ -56,7 +56,7 @@ class _IntegrationSettingsPageState extends State<IntegrationSettingsPage> {
|
|||||||
positiveText: "Sure. Make it so",
|
positiveText: "Sure. Make it so",
|
||||||
negativeText: "What?? No!",
|
negativeText: "What?? No!",
|
||||||
onPositive: () {
|
onPositive: () {
|
||||||
ConnectionManager().callService("homeassistant", "restart", null, null);
|
ConnectionManager().callService(domain: "homeassistant", service: "restart");
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
@ -68,7 +68,7 @@ class _IntegrationSettingsPageState extends State<IntegrationSettingsPage> {
|
|||||||
positiveText: "Sure. Make it so",
|
positiveText: "Sure. Make it so",
|
||||||
negativeText: "What?? No!",
|
negativeText: "What?? No!",
|
||||||
onPositive: () {
|
onPositive: () {
|
||||||
ConnectionManager().callService("homeassistant","stop", null, null);
|
ConnectionManager().callService(domain: "homeassistant", service: "stop");
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
@ -89,10 +89,10 @@ class _PlayMediaPageState extends State<PlayMediaPage> {
|
|||||||
}
|
}
|
||||||
Navigator.pop(context);
|
Navigator.pop(context);
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
serviceDomain,
|
domain: serviceDomain,
|
||||||
"play_media",
|
service: "play_media",
|
||||||
entity.entityId,
|
entityId: entity.entityId,
|
||||||
{
|
data: {
|
||||||
"media_content_id": _mediaUrl,
|
"media_content_id": _mediaUrl,
|
||||||
"media_content_type": _contentType
|
"media_content_type": _contentType
|
||||||
}
|
}
|
||||||
@ -100,10 +100,9 @@ class _PlayMediaPageState extends State<PlayMediaPage> {
|
|||||||
HomeAssistant().sendToPlayerId = entity.entityId;
|
HomeAssistant().sendToPlayerId = entity.entityId;
|
||||||
if (HomeAssistant().sendFromPlayerId != null && HomeAssistant().sendFromPlayerId != HomeAssistant().sendToPlayerId) {
|
if (HomeAssistant().sendFromPlayerId != null && HomeAssistant().sendFromPlayerId != HomeAssistant().sendToPlayerId) {
|
||||||
ConnectionManager().callService(
|
ConnectionManager().callService(
|
||||||
HomeAssistant().sendFromPlayerId.split(".")[0],
|
domain: HomeAssistant().sendFromPlayerId.split(".")[0],
|
||||||
"turn_off",
|
service: "turn_off",
|
||||||
HomeAssistant().sendFromPlayerId,
|
entityId: HomeAssistant().sendFromPlayerId
|
||||||
null
|
|
||||||
);
|
);
|
||||||
HomeAssistant().sendFromPlayerId = null;
|
HomeAssistant().sendFromPlayerId = null;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user