summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/home/ham/automation/fenster_auf.nix
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2022-09-23 23:41:30 +0200
committermakefu <github@syntax-fehler.de>2022-09-23 23:41:30 +0200
commit3e8f855f60dfa5bf56ab3a1d1a54e0accccbd618 (patch)
tree85674a93388edfb7a0646b46aafc18d64d7aa0c6 /makefu/2configs/home/ham/automation/fenster_auf.nix
parent2dfde5dc6d37fb5bab8a1b658cfe7e5b21f5a2f4 (diff)
ma ham: update
Diffstat (limited to 'makefu/2configs/home/ham/automation/fenster_auf.nix')
-rw-r--r--makefu/2configs/home/ham/automation/fenster_auf.nix55
1 files changed, 51 insertions, 4 deletions
diff --git a/makefu/2configs/home/ham/automation/fenster_auf.nix b/makefu/2configs/home/ham/automation/fenster_auf.nix
index fa2052be8..b3682fe0c 100644
--- a/makefu/2configs/home/ham/automation/fenster_auf.nix
+++ b/makefu/2configs/home/ham/automation/fenster_auf.nix
@@ -4,6 +4,11 @@
# binary_sensor.badezimmer_fenster_contact
# binary_sensor.dusche_fenster_contact
let
+ hlib = import ../lib;
+ say = hlib.say.office;
+ draussen = "sensor.wohnzimmer_temp_temperature";
+ draussen_diff = "sensor.unterschied_draussen_drinnen";
+ draussen_heiss = 23;
min = 20;
fenster_offen = name: entity:
{ alias = "${name} seit ${toString min} Minuten offen";
@@ -16,10 +21,6 @@ let
}
];
condition = [
- { condition = "state";
- entity_id = "input_boolean.ist_sommer";
- state = "off";
- }
];
action =
[
@@ -67,6 +68,17 @@ let
};
in {
services.home-assistant.config = {
+ template = [
+ { sensor = {
+ name = "Unterschied Draussen Drinnen";
+ unit_of_measurement = "°C";
+ state = ''
+ {% set inside = states("${draussen}") | float | round(2) -%}
+ {% set outside = states("sensor.dark_sky_temperature") | float | round(2) -%}
+ {{ ((outside - inside) | round(1) )}}'';
+ };
+ }
+ ];
sensor = [
{ platform = "season"; type = "meteorological";}
];
@@ -86,6 +98,41 @@ in {
(fenster_offen "Badezimmerfenster" "binary_sensor.badezimmer_fenster_contact")
(fenster_offen "Duschfenster" "binary_sensor.dusche_fenster_contact")
+
+ { alias = "Draussen ist wieder kaelter";
+ trigger = [
+ {
+ platform = "numeric_state";
+ entity_id = draussen_diff;
+ below = 0;
+ for.minutes = 20;
+ }
+ ];
+ condition = [
+ { condition = "numeric_state";
+ entity_id = draussen;
+ above = draussen_heiss;
+ }
+ ];
+ action = (say "Draussen ist es endlich kühler, jetzt kann man die Fenster auf machen");
+ }
+ { alias = "Draussen ist zu warm";
+ trigger = [
+ {
+ platform = "numeric_state";
+ entity_id = draussen_diff;
+ above = 0;
+ for.minutes = 20;
+ }
+ ];
+ condition = [
+ { condition = "numeric_state";
+ entity_id = draussen;
+ above = draussen_heiss;
+ }
+ ];
+ action = (say "Draussen wird es jetzt zu warm, besser das fenster schliessen");
+ }
];
};
}