Merge remote-tracking branch 'gum/master'
This commit is contained in:
commit
053044834c
102
makefu/2configs/ham/automation/giesskanne.nix
Normal file
102
makefu/2configs/ham/automation/giesskanne.nix
Normal file
@ -0,0 +1,102 @@
|
||||
# uses:
|
||||
# switch.crafting_giesskanne_relay
|
||||
let
|
||||
cam = {
|
||||
name = "chilicam";
|
||||
camera = "camera.espcam_02";
|
||||
light = "light.espcam_02_light";
|
||||
seconds = 60; # default shutoff to protect the LED from burning out
|
||||
};
|
||||
seconds = 6;
|
||||
pump = "switch.arbeitszimmer_giesskanne_relay";
|
||||
# sensor = "sensor.statistics_for_sensor_crafting_brotbox_soil_moisture";
|
||||
in
|
||||
{
|
||||
services.home-assistant.config =
|
||||
{
|
||||
#sensor = map ( entity_id: {
|
||||
# platform = "statistics";
|
||||
# name = "Statistics for ${entity_id}";
|
||||
# inherit entity_id;
|
||||
# max_age.minutes = "60";
|
||||
# sampling_size = 1000;
|
||||
# }) [ "sensor.crafting_brotbox_soil_moisture" ];
|
||||
|
||||
automation =
|
||||
[
|
||||
|
||||
##### brotbox
|
||||
{ alias = "Water the plant for ${toString seconds} seconds";
|
||||
trigger = [
|
||||
{ # trigger at 23:15 no matter what
|
||||
# TODO: retry or run only if switch.wasser is available
|
||||
platform = "time";
|
||||
at = "23:15:00";
|
||||
}
|
||||
];
|
||||
action =
|
||||
[
|
||||
{ # take a snapshot before watering
|
||||
service = "homeassistant.turn_on";
|
||||
entity_id = [ cam.light ];
|
||||
}
|
||||
{ # TODO: we could also create a recording with camera.record
|
||||
service = "camera.snapshot";
|
||||
data = {
|
||||
entity_id = cam.camera;
|
||||
# TODO: create /var/lib/hass/cam/ - now being done manually
|
||||
filename = "/var/lib/hass/cam/${cam.name}_{{ now().strftime('%Y%m%d-%H%M%S') }}.jpg";
|
||||
};
|
||||
}
|
||||
|
||||
{ # now turn on the pumping services
|
||||
# i do not start hte pump and light before the snapshot because i do
|
||||
# not know how long it takes (do not want to water the plants for too long)
|
||||
service = "homeassistant.turn_on";
|
||||
entity_id = [ pump ];
|
||||
}
|
||||
{ delay.seconds = seconds; }
|
||||
{
|
||||
service = "homeassistant.turn_off";
|
||||
entity_id = [ pump cam.light ];
|
||||
}
|
||||
];
|
||||
}
|
||||
{ alias = "Always turn off the light after ${toString (cam.seconds)}s";
|
||||
trigger = [
|
||||
{
|
||||
platform = "state";
|
||||
entity_id = cam.light;
|
||||
to = "on";
|
||||
for.seconds = cam.seconds;
|
||||
}
|
||||
];
|
||||
action =
|
||||
[
|
||||
{
|
||||
service = "homeassistant.turn_off";
|
||||
entity_id = [ pump cam.light ];
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
{ alias = "Always turn off water after ${toString (seconds * 2)}s";
|
||||
trigger = [
|
||||
{
|
||||
platform = "state";
|
||||
entity_id = pump;
|
||||
to = "on";
|
||||
for.seconds = seconds*2;
|
||||
}
|
||||
];
|
||||
action =
|
||||
[
|
||||
{
|
||||
service = "homeassistant.turn_off";
|
||||
entity_id = [ pump cam.light ];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
@ -1,3 +1,9 @@
|
||||
# light.wohnzimmerbeleuchtung
|
||||
# light.wohnzimmer_deko
|
||||
# light.arbeitszimmerbeleuchtung
|
||||
# light.arbeitszimmer_deko
|
||||
# light.schlafzimmerbeleuchtung
|
||||
|
||||
let
|
||||
toggle = light: btn:
|
||||
{
|
||||
@ -9,7 +15,8 @@ let
|
||||
};
|
||||
action = {
|
||||
service = "light.toggle";
|
||||
entity = light;
|
||||
data.entity_id = light;
|
||||
data.transition = 0;
|
||||
};
|
||||
};
|
||||
turn_off_all = btn:
|
||||
@ -22,12 +29,16 @@ let
|
||||
};
|
||||
action = {
|
||||
service = "light.turn_off";
|
||||
entity = "light.alle_lichter";
|
||||
entity_id = "all";
|
||||
};
|
||||
};
|
||||
in {
|
||||
services.home-assistant.config.automation = [
|
||||
(toggle "light.wohnzimmer_lichter" "btn3")
|
||||
(turn_off_all "btn3")
|
||||
(toggle "light.arbeitszimmerbeleuchtung" "arbeitszimmer_btn1")
|
||||
(toggle "light.schlafzimmerbeleuchtung" "schlafzimmer_btn2")
|
||||
(toggle "light.wohnzimmerbeleuchtung" "wohnzimmer_btn3")
|
||||
(turn_off_all "arbeitszimmer_btn1")
|
||||
(turn_off_all "schlafzimmer_btn2")
|
||||
(turn_off_all "wohnzimmer_btn3")
|
||||
];
|
||||
}
|
||||
|
44
makefu/2configs/ham/automation/urlaub.nix
Normal file
44
makefu/2configs/ham/automation/urlaub.nix
Normal file
@ -0,0 +1,44 @@
|
||||
# uses:
|
||||
# light.wohnzimmer_schrank_osram
|
||||
# light.wohnzimmer_fernseher_led_strip
|
||||
# "all" lights
|
||||
|
||||
let
|
||||
schranklicht = "light.wohnzimmer_schrank_osram";
|
||||
fernsehlicht = "light.wohnzimmer_fernseher_led_strip";
|
||||
final_off = "01:00";
|
||||
|
||||
turn_on = entity_id: at:
|
||||
{ alias = "Turn on ${entity_id} at ${at}";
|
||||
trigger = [
|
||||
{ platform = "time"; inherit at; }
|
||||
];
|
||||
action =
|
||||
[
|
||||
{ service = "light.turn_on"; inherit entity_id; }
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
services.home-assistant.config =
|
||||
{
|
||||
automation =
|
||||
[
|
||||
(turn_on schranklicht "17:30")
|
||||
(turn_on fernsehlicht "19:00")
|
||||
|
||||
{ alias = "Always turn off the urlaub lights at ${final_off}";
|
||||
trigger = [
|
||||
{ platform = "time"; at = final_off; }
|
||||
];
|
||||
action =
|
||||
[
|
||||
{
|
||||
service = "light.turn_off";
|
||||
entity_id = [ schranklicht fernsehlicht ];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
@ -0,0 +1,61 @@
|
||||
# This module maps the RF433 Remote Control to zigbee and wifi lights
|
||||
let
|
||||
rf_turn_off = code: light:
|
||||
{
|
||||
alias = "Turn off ${light} via rf code ${code}";
|
||||
trigger = {
|
||||
platform = "event";
|
||||
event_type = "esphome.rf_code_received";
|
||||
event_data.code = code;
|
||||
};
|
||||
action = {
|
||||
service = "light.turn_off";
|
||||
data.entity_id = light;
|
||||
};
|
||||
};
|
||||
rf_turn_on = code: light:
|
||||
{
|
||||
alias = "Turn on ${light} via rf code ${code}";
|
||||
trigger = {
|
||||
platform = "event";
|
||||
event_type = "esphome.rf_code_received";
|
||||
event_data.code = code;
|
||||
};
|
||||
action = {
|
||||
service = "light.turn_on";
|
||||
data.entity_id = light;
|
||||
};
|
||||
};
|
||||
rf_toggle = code: light:
|
||||
{
|
||||
alias = "Toggle ${light} via rf code ${code}";
|
||||
trigger = {
|
||||
platform = "event";
|
||||
event_type = "esphome.rf_code_received";
|
||||
event_data.code = code;
|
||||
};
|
||||
action = {
|
||||
service = "light.toggle";
|
||||
data.entity_id = light;
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
services.home-assistant.config.automation = [
|
||||
(rf_toggle "400551" "light.wohnzimmer_fernseher_led_strip") # A
|
||||
(rf_toggle "401151" "light.wohnzimmer_stehlampe_osram") # B
|
||||
(rf_toggle "401451" "light.wohnzimmer_komode_osram") # C
|
||||
(rf_toggle "401511" "light.wohnzimmer_schrank_osram") # D
|
||||
|
||||
# OFF Lane
|
||||
(rf_turn_off "400554" "all") # A
|
||||
(rf_toggle "401154" "light.wohnzimmer_fenster_lichterkette_licht") # B
|
||||
(rf_toggle "401454" "light.wohnzimmer_fernsehwand_led") # C
|
||||
# (rf_toggle "401514" "") # D
|
||||
];
|
||||
# "400554" # A OFF
|
||||
# "401154" # B OFF
|
||||
# "401454" # C OFF
|
||||
# "401514" # D OFF
|
||||
}
|
@ -17,7 +17,7 @@ in {
|
||||
# ./multi/flurlicht.nix
|
||||
./multi/kurzzeitwecker.nix
|
||||
./multi/the_playlist.nix
|
||||
./multi/fliegen-couter.nix
|
||||
# ./multi/fliegen-couter.nix
|
||||
|
||||
./device_tracker/openwrt.nix
|
||||
|
||||
@ -27,8 +27,13 @@ in {
|
||||
|
||||
./automation/firetv_restart.nix
|
||||
./automation/light_buttons.nix
|
||||
./automation/wohnzimmer_rf_fernbedienung.nix
|
||||
./automation/giesskanne.nix
|
||||
./automation/urlaub.nix
|
||||
|
||||
./light/groups.nix
|
||||
./light/arbeitszimmer.nix
|
||||
./light/schlafzimmer.nix
|
||||
./light/wohnzimmer.nix
|
||||
];
|
||||
|
||||
services.home-assistant = {
|
||||
|
24
makefu/2configs/ham/light/arbeitszimmer.nix
Normal file
24
makefu/2configs/ham/light/arbeitszimmer.nix
Normal file
@ -0,0 +1,24 @@
|
||||
let
|
||||
arbeitszimmer_deko = [
|
||||
"light.led_wand"
|
||||
"light.box_led_status"
|
||||
"light.arbeitszimmer_led1_led_strip" # LED-Kreis in cube
|
||||
];
|
||||
arbeitszimmerbeleuchtung = [
|
||||
"light.arbeitszimmer_schrank_dimmer"
|
||||
"light.arbeitszimmer_kerze" # arbeitszimmer_kerze
|
||||
];
|
||||
in {
|
||||
services.home-assistant.config.light = [
|
||||
{
|
||||
platform = "group";
|
||||
name = "Arbeitszimmerbeleuchtung";
|
||||
entities = arbeitszimmerbeleuchtung;
|
||||
}
|
||||
{
|
||||
platform = "group";
|
||||
name = "Arbeitszimmer Deko";
|
||||
entities = arbeitszimmer_deko;
|
||||
}
|
||||
];
|
||||
}
|
@ -1,41 +1,14 @@
|
||||
let
|
||||
arbeitszimmer_licht = [
|
||||
"light.led_wand"
|
||||
"light.arbeitszimmer_led1_led_strip" # LED-Kreis in cube
|
||||
"light.arbeitszimmer_flur_osram_light"
|
||||
"light.arbeitszimmer_schrank_dimmer_light"
|
||||
"light.arbeitszimmer_schrank_osram_light"
|
||||
];
|
||||
wohnzimmer_licht = [
|
||||
"light.wohnzimmer_fernseher_led_strip" # led um fernseher
|
||||
"light.wohnzimmer_komode_osram_light"
|
||||
"light.wohnzimmer_schrank_osram_light"
|
||||
"light.wohnzimmer_stehlampe_osram_light"
|
||||
];
|
||||
schlafzimmer_licht = [
|
||||
"light.schlafzimmer_komode_osram_light"
|
||||
"light.schlafzimmer_komode_osram"
|
||||
# "light.schlafzimmer_schrank_osram"
|
||||
];
|
||||
in {
|
||||
services.home-assistant.config.light = [
|
||||
{
|
||||
platform = "group";
|
||||
name = "Arbeitszimmer Lichter";
|
||||
entities = arbeitszimmer_licht;
|
||||
}
|
||||
{
|
||||
platform = "group";
|
||||
name = "Wohnzimmer Lichter";
|
||||
entities = wohnzimmer_licht;
|
||||
}
|
||||
{
|
||||
platform = "group";
|
||||
name = "Schlafzimmer Lichter";
|
||||
name = "Schlafzimmerbeleuchtung";
|
||||
entities = schlafzimmer_licht;
|
||||
}
|
||||
{
|
||||
platform = "group";
|
||||
name = "Alle Lichter";
|
||||
entities = arbeitszimmer_licht ++ wohnzimmer_licht ++ schlafzimmer_licht;
|
||||
}
|
||||
];
|
||||
}
|
||||
|
24
makefu/2configs/ham/light/wohnzimmer.nix
Normal file
24
makefu/2configs/ham/light/wohnzimmer.nix
Normal file
@ -0,0 +1,24 @@
|
||||
let
|
||||
wohnzimmerbeleuchtung = [
|
||||
"light.wohnzimmer_komode_osram_light"
|
||||
"light.wohnzimmer_schrank_osram_light"
|
||||
];
|
||||
wohnzimmer_deko = [
|
||||
"light.wohnzimmer_fernseher_led_strip" # led um fernseher
|
||||
"light.wohnzimmer_lichterkette_led_strip" # led um fernsehwand
|
||||
"light.kinderzimmer_lichterkette_licht" # led um fenster
|
||||
];
|
||||
in {
|
||||
services.home-assistant.config.light = [
|
||||
{
|
||||
platform = "group";
|
||||
name = "Wohnzimmerbeleuchtung";
|
||||
entities = wohnzimmerbeleuchtung;
|
||||
}
|
||||
{
|
||||
platform = "group";
|
||||
name = "Wohnzimmer Deko";
|
||||
entities = wohnzimmer_deko;
|
||||
}
|
||||
];
|
||||
}
|
Loading…
Reference in New Issue
Block a user