v0.15.0
This commit is contained in:
@@ -594,8 +594,8 @@ fn sanitize_imported_device(device: &mut Device, now: chrono::DateTime<Utc>) {
|
||||
device.mode = "cool".into();
|
||||
device.target_temperature = 23.0;
|
||||
device.fan_speed = 0;
|
||||
device.swing_vertical = false;
|
||||
device.swing_horizontal = false;
|
||||
device.swing_vertical = 0;
|
||||
device.swing_horizontal = 0;
|
||||
device.quiet = false;
|
||||
device.turbo = false;
|
||||
device.light = false;
|
||||
|
||||
+2
-2
@@ -116,8 +116,8 @@ async fn add_device(
|
||||
mode: "cool".into(),
|
||||
target_temperature: 24.0,
|
||||
fan_speed: 0,
|
||||
swing_vertical: false,
|
||||
swing_horizontal: false,
|
||||
swing_vertical: 0,
|
||||
swing_horizontal: 0,
|
||||
quiet: false,
|
||||
quiet_wire_value: None,
|
||||
turbo: false,
|
||||
|
||||
+22
-8
@@ -53,6 +53,15 @@ fn flow_u8(config: &Value, key: &str) -> Option<u8> {
|
||||
fn flow_bool(config: &Value, key: &str) -> Option<bool> {
|
||||
config.get(key).and_then(Value::as_bool)
|
||||
}
|
||||
fn flow_louver_position(config: &Value, key: &str) -> Option<u8> {
|
||||
match config.get(key) {
|
||||
Some(Value::Bool(value)) => Some(u8::from(*value)),
|
||||
Some(value) => value
|
||||
.as_u64()
|
||||
.and_then(|raw| u8::try_from(raw).ok()),
|
||||
None => None,
|
||||
}
|
||||
}
|
||||
|
||||
fn generated_flow_name(flow_id: &str, action_node_id: &str) -> String {
|
||||
let digest = Sha256::digest(format!("{flow_id}:{action_node_id}").as_bytes());
|
||||
@@ -1108,8 +1117,8 @@ fn compile_flow(
|
||||
&& preset_for_schedule != "auto"
|
||||
&& mode_for_schedule == "auto"
|
||||
&& flow_bool(&action_node.config, "power").is_none()
|
||||
&& flow_bool(&action_node.config, "swing_vertical").is_none()
|
||||
&& flow_bool(&action_node.config, "swing_horizontal").is_none();
|
||||
&& flow_louver_position(&action_node.config, "swing_vertical").is_none()
|
||||
&& flow_louver_position(&action_node.config, "swing_horizontal").is_none();
|
||||
if schedule_only {
|
||||
let zone_id = flow_string(&action_node.config, "zone_id")
|
||||
.ok_or_else(|| AppError::BadRequest("thermostat block needs a zone".into()))?;
|
||||
@@ -1287,8 +1296,11 @@ fn compile_flow(
|
||||
}
|
||||
item.action.mode = Some(mode);
|
||||
}
|
||||
item.action.swing_vertical = flow_bool(&action_node.config, "swing_vertical");
|
||||
item.action.swing_horizontal = flow_bool(&action_node.config, "swing_horizontal");
|
||||
item.action.swing_vertical =
|
||||
flow_louver_position(&action_node.config, "swing_vertical");
|
||||
item.action.swing_horizontal =
|
||||
flow_louver_position(&action_node.config, "swing_horizontal");
|
||||
engine::validate_command(&item.action)?;
|
||||
}
|
||||
"device_action" => {
|
||||
let id = flow_string(&action_node.config, "device_id")
|
||||
@@ -1304,8 +1316,10 @@ fn compile_flow(
|
||||
item.action.target_temperature =
|
||||
flow_f64(&action_node.config, "target_temperature");
|
||||
item.action.fan_speed = flow_u8(&action_node.config, "fan_speed");
|
||||
item.action.swing_vertical = flow_bool(&action_node.config, "swing_vertical");
|
||||
item.action.swing_horizontal = flow_bool(&action_node.config, "swing_horizontal");
|
||||
item.action.swing_vertical =
|
||||
flow_louver_position(&action_node.config, "swing_vertical");
|
||||
item.action.swing_horizontal =
|
||||
flow_louver_position(&action_node.config, "swing_horizontal");
|
||||
item.action.quiet = flow_bool(&action_node.config, "quiet");
|
||||
item.action.turbo = flow_bool(&action_node.config, "turbo");
|
||||
item.action.light = flow_bool(&action_node.config, "light");
|
||||
@@ -1733,8 +1747,8 @@ fn dry_run_block_reason(
|
||||
command.mode = flow_string(&action.config, "mode");
|
||||
command.target_temperature = flow_f64(&action.config, "target_temperature");
|
||||
command.fan_speed = flow_u8(&action.config, "fan_speed");
|
||||
command.swing_vertical = flow_bool(&action.config, "swing_vertical");
|
||||
command.swing_horizontal = flow_bool(&action.config, "swing_horizontal");
|
||||
command.swing_vertical = flow_louver_position(&action.config, "swing_vertical");
|
||||
command.swing_horizontal = flow_louver_position(&action.config, "swing_horizontal");
|
||||
command.quiet = flow_bool(&action.config, "quiet");
|
||||
command.turbo = flow_bool(&action.config, "turbo");
|
||||
command.light = flow_bool(&action.config, "light");
|
||||
|
||||
@@ -300,8 +300,8 @@ async fn add_gree_cloud_device(
|
||||
mode: "cool".into(),
|
||||
target_temperature: 24.0,
|
||||
fan_speed: 0,
|
||||
swing_vertical: false,
|
||||
swing_horizontal: false,
|
||||
swing_vertical: 0,
|
||||
swing_horizontal: 0,
|
||||
quiet: false,
|
||||
quiet_wire_value: None,
|
||||
turbo: false,
|
||||
|
||||
Reference in New Issue
Block a user