summaryrefslogtreecommitdiffstats
path: root/makefu/2configs
diff options
context:
space:
mode:
Diffstat (limited to 'makefu/2configs')
-rw-r--r--makefu/2configs/ham/automation/giesskanne.nix102
-rw-r--r--makefu/2configs/ham/automation/light_buttons.nix44
-rw-r--r--makefu/2configs/ham/automation/urlaub.nix44
-rw-r--r--makefu/2configs/ham/automation/wohnzimmer_rf_fernbedienung.nix61
-rw-r--r--makefu/2configs/ham/default.nix10
-rw-r--r--makefu/2configs/ham/light/arbeitszimmer.nix24
-rw-r--r--makefu/2configs/ham/light/groups.nix41
-rw-r--r--makefu/2configs/ham/light/schlafzimmer.nix14
-rw-r--r--makefu/2configs/ham/light/wohnzimmer.nix24
-rw-r--r--makefu/2configs/home-manager/zsh.nix3
-rw-r--r--makefu/2configs/share/anon-sftp.nix25
11 files changed, 348 insertions, 44 deletions
diff --git a/makefu/2configs/ham/automation/giesskanne.nix b/makefu/2configs/ham/automation/giesskanne.nix
new file mode 100644
index 000000000..d89ea595b
--- /dev/null
+++ b/makefu/2configs/ham/automation/giesskanne.nix
@@ -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 ];
+ }
+ ];
+ }
+ ];
+ };
+}
diff --git a/makefu/2configs/ham/automation/light_buttons.nix b/makefu/2configs/ham/automation/light_buttons.nix
new file mode 100644
index 000000000..32d134ecc
--- /dev/null
+++ b/makefu/2configs/ham/automation/light_buttons.nix
@@ -0,0 +1,44 @@
+# light.wohnzimmerbeleuchtung
+# light.wohnzimmer_deko
+# light.arbeitszimmerbeleuchtung
+# light.arbeitszimmer_deko
+# light.schlafzimmerbeleuchtung
+
+let
+ toggle = light: btn:
+ {
+ alias = "Toggle Light ${light} via ${btn}";
+ trigger = {
+ platform = "state";
+ entity_id = "sensor.${btn}_click";
+ to = "single";
+ };
+ action = {
+ service = "light.toggle";
+ data.entity_id = light;
+ data.transition = 0;
+ };
+ };
+ turn_off_all = btn:
+ {
+ alias = "Turn of all lights via ${btn} double click";
+ trigger = {
+ platform = "state";
+ entity_id = "sensor.${btn}_click";
+ to = "double";
+ };
+ action = {
+ service = "light.turn_off";
+ entity_id = "all";
+ };
+ };
+in {
+ services.home-assistant.config.automation = [
+ (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")
+ ];
+}
diff --git a/makefu/2configs/ham/automation/urlaub.nix b/makefu/2configs/ham/automation/urlaub.nix
new file mode 100644
index 000000000..a6b9be96f
--- /dev/null
+++ b/makefu/2configs/ham/automation/urlaub.nix
@@ -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 ];
+ }
+ ];
+ }
+ ];
+ };
+}
diff --git a/makefu/2configs/ham/automation/wohnzimmer_rf_fernbedienung.nix b/makefu/2configs/ham/automation/wohnzimmer_rf_fernbedienung.nix
new file mode 100644
index 000000000..f06094662
--- /dev/null
+++ b/makefu/2configs/ham/automation/wohnzimmer_rf_fernbedienung.nix
@@ -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
+}
diff --git a/makefu/2configs/ham/default.nix b/makefu/2configs/ham/default.nix
index 9e3f7f669..d610fa5c1 100644
--- a/makefu/2configs/ham/default.nix
+++ b/makefu/2configs/ham/default.nix
@@ -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
@@ -26,8 +26,14 @@ in {
./calendar/nextcloud.nix
./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 = {
diff --git a/makefu/2configs/ham/light/arbeitszimmer.nix b/makefu/2configs/ham/light/arbeitszimmer.nix
new file mode 100644
index 000000000..bc60678b3
--- /dev/null
+++ b/makefu/2configs/ham/light/arbeitszimmer.nix
@@ -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;
+ }
+ ];
+}
diff --git a/makefu/2configs/ham/light/groups.nix b/makefu/2configs/ham/light/groups.nix
deleted file mode 100644
index e1812b68a..000000000
--- a/makefu/2configs/ham/light/groups.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-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 = [
- "schlafzimmer_komode_osram_light"
- ];
-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";
- entities = schlafzimmer_licht;
- }
- {
- platform = "group";
- name = "Alle Lichter";
- entities = arbeitszimmer_licht ++ wohnzimmer_licht ++ schlafzimmer_licht;
- }
- ];
-}
diff --git a/makefu/2configs/ham/light/schlafzimmer.nix b/makefu/2configs/ham/light/schlafzimmer.nix
new file mode 100644
index 000000000..e5370e3f8
--- /dev/null
+++ b/makefu/2configs/ham/light/schlafzimmer.nix
@@ -0,0 +1,14 @@
+let
+ schlafzimmer_licht = [
+ "light.schlafzimmer_komode_osram"
+ # "light.schlafzimmer_schrank_osram"
+ ];
+in {
+ services.home-assistant.config.light = [
+ {
+ platform = "group";
+ name = "Schlafzimmerbeleuchtung";
+ entities = schlafzimmer_licht;
+ }
+ ];
+}
diff --git a/makefu/2configs/ham/light/wohnzimmer.nix b/makefu/2configs/ham/light/wohnzimmer.nix
new file mode 100644
index 000000000..bc9c2778a
--- /dev/null
+++ b/makefu/2configs/ham/light/wohnzimmer.nix
@@ -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;
+ }
+ ];
+}
diff --git a/makefu/2configs/home-manager/zsh.nix b/makefu/2configs/home-manager/zsh.nix
index 862ee5df3..8d6c1f2f0 100644
--- a/makefu/2configs/home-manager/zsh.nix
+++ b/makefu/2configs/home-manager/zsh.nix
@@ -52,6 +52,7 @@
xo = "mimeopen";
nmap = "nmap -oN $HOME/loot/scan-`date +\%s`.nmap -oX $HOME/loot/scan-`date +%s`.xml";
};
+ # navi package does not come with the navi.plugin.zsh anymore so we use .src
initExtra = ''
bindkey -e
# shift-tab
@@ -69,7 +70,7 @@
zstyle ':completion::complete:secrets::' prefix "$HOME/.secrets-pass/"
# navi
- source ${pkgs.navi}/share/navi/shell/navi.plugin.zsh
+ . ${pkgs.navi.src}/shell/navi.plugin.zsh
# ctrl-x ctrl-e
autoload -U compinit && compinit
autoload -U edit-command-line
diff --git a/makefu/2configs/share/anon-sftp.nix b/makefu/2configs/share/anon-sftp.nix
new file mode 100644
index 000000000..7cde9317a
--- /dev/null
+++ b/makefu/2configs/share/anon-sftp.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+
+with import <stockholm/lib>;
+{
+ services.openssh = {
+ allowSFTP = true;
+ sftpFlags = [ "-l VERBOSE" ];
+ extraConfig = ''
+ Match User anonymous
+ ForceCommand internal-sftp
+ AllowTcpForwarding no
+ X11Forwarding no
+ PasswordAuthentication no
+ '';
+ };
+
+ users.users.anonymous = {
+ uid = genid "anonymous";
+ useDefaultShell = false;
+ password = "anonymous";
+ home = "/media/anon";
+ createHome = true;
+ };
+
+}