summaryrefslogtreecommitdiffstats
path: root/krebs/2configs
diff options
context:
space:
mode:
Diffstat (limited to 'krebs/2configs')
-rw-r--r--krebs/2configs/shack/glados/automation/party-time.nix29
-rw-r--r--krebs/2configs/shack/glados/default.nix16
-rw-r--r--krebs/2configs/shack/glados/multi/schlechte_luft.nix37
-rw-r--r--krebs/2configs/shack/glados/multi/wasser.nix13
-rw-r--r--krebs/2configs/shack/prometheus/blackbox.nix19
-rw-r--r--krebs/2configs/shack/prometheus/server.nix54
6 files changed, 120 insertions, 48 deletions
diff --git a/krebs/2configs/shack/glados/automation/party-time.nix b/krebs/2configs/shack/glados/automation/party-time.nix
new file mode 100644
index 000000000..dfa42d05c
--- /dev/null
+++ b/krebs/2configs/shack/glados/automation/party-time.nix
@@ -0,0 +1,29 @@
+# Needs:
+# sun.sunset
+# switch.lounge_diskoschalter_relay
+let
+ glados = import ../lib;
+ disko_schalter = "switch.lounge_diskoschalter_relay";
+ player = "media_player.lounge";
+in
+[
+ { alias = "Party um 21 Uhr";
+ trigger = {
+ platform = "sun";
+ event = "sunset";
+ };
+ action =
+ ( glados.say.kiosk "Die Sonne geht unter. Und jetzt geht die Party im shack erst richtig los. Partybeleuchtung, aktiviert!" )
+ ++
+ [
+ {
+ service = "homeassistant.turn_on";
+ entity_id = disko_schalter;
+ }
+ {
+ service = "media_player.turn_on";
+ data.entity_id = player;
+ } # TODO: also start playlist if nothing is running?
+ ];
+ }
+]
diff --git a/krebs/2configs/shack/glados/default.nix b/krebs/2configs/shack/glados/default.nix
index b6bcc8673..9bf90bca4 100644
--- a/krebs/2configs/shack/glados/default.nix
+++ b/krebs/2configs/shack/glados/default.nix
@@ -29,8 +29,7 @@ in {
};
in {
enable = true;
- package = (pkgs.home-assistant.overrideAttrs (old: {
- # TODO: find correct python package
+ package = (pkgs.home-assistant.overrideAttrs (old: { # TODO: find correct python package
installCheckPhase = ''
echo LOLLLLLLLLLLLLLL
'';
@@ -70,6 +69,8 @@ in {
# source = "hass";
# };
#};
+ esphome = {};
+ api = {};
mqtt = {
broker = "localhost";
port = 1883;
@@ -130,11 +131,9 @@ in {
trusted_proxies = "127.0.0.1";
};
#conversation = {};
- history = {};
+ # history = {};
#logbook = {};
- logger = {
- default = "info";
- };
+ logger.default = "info";
#recorder = {};
tts = [
{ platform = "google_translate";
@@ -143,16 +142,13 @@ in {
cache = true;
time_memory = 57600;
}
- { platform = "picotts";
- language = "de-DE";
- service_name = "pico";
- }
];
sun = {};
automation = wasser.automation
++ badair.automation
++ (import ./automation/shack-startup.nix)
+ ++ (import ./automation/party-time.nix)
++ (import ./automation/hass-restart.nix);
device_tracker = [];
diff --git a/krebs/2configs/shack/glados/multi/schlechte_luft.nix b/krebs/2configs/shack/glados/multi/schlechte_luft.nix
index 529454a41..31373d7b9 100644
--- a/krebs/2configs/shack/glados/multi/schlechte_luft.nix
+++ b/krebs/2configs/shack/glados/multi/schlechte_luft.nix
@@ -1,5 +1,7 @@
let
glados = import ../lib;
+ feinstaub_sensor = "sensor.fablab_particulate_matter_2_5um_concentration";
+ ledring = "light.fablab_led_ring";
in
{
automation =
@@ -8,15 +10,15 @@ in
trigger = [
{
platform = "numeric_state";
- below = 25;
- entity_id = "sensor.fablab_feinstaub_2_5um";
+ entity_id = feinstaub_sensor;
+ below = 3;
}
];
action =
[
{ service = "light.turn_on";
data = {
- entity_id = "light.fablab_led";
+ entity_id = ledring;
effect = "Twinkle";
color_name = "green";
};
@@ -25,23 +27,18 @@ in
}
{ alias = "mäßige Luft Fablab";
trigger = [
- #{
- # platform = "numeric_state";
- # above = 25;
- # entity_id = "sensor.fablab_feinstaub_25m";
- #}
{
platform = "numeric_state";
- above = 25;
- below = 50;
- entity_id = "sensor.fablab_feinstaub_2_5um";
+ above = 3;
+ below = 10;
+ entity_id = feinstaub_sensor;
}
];
action =
[
{ service = "light.turn_on";
data = {
- entity_id = "light.fablab_led";
+ entity_id = ledring;
effect = "Twinkle";
color_name = "yellow";
};
@@ -52,16 +49,16 @@ in
trigger = [
{
platform = "numeric_state";
- above = 50;
- entity_id = "sensor.fablab_feinstaub_2_5um";
+ above = 10;
+ entity_id = feinstaub_sensor;
}
];
action =
[
{ service = "light.turn_on";
data = {
- entity_id = "light.fablab_led";
- effect = "Twinkle";
+ entity_id = ledring;
+ effect = "Fireworks";
color_name = "red";
};
}
@@ -72,14 +69,14 @@ in
{
platform = "state";
to = "unavailable";
- entity_id = "sensor.fablab_feinstaub_2_5um";
+ entity_id = feinstaub_sensor;
}
];
action =
[
{ service = "light.turn_on";
data = {
- entity_id = "light.fablab_led";
+ entity_id = ledring;
effect = "Rainbow";
color_name = "blue";
};
@@ -91,14 +88,14 @@ in
{
platform = "state";
from = "unavailable";
- entity_id = "light.fablab_led";
+ entity_id = ledring;
}
];
action =
[
{ service = "light.turn_on";
data = {
- entity_id = "light.fablab_led";
+ entity_id = ledring;
effect = "Rainbow";
color_name = "orange";
};
diff --git a/krebs/2configs/shack/glados/multi/wasser.nix b/krebs/2configs/shack/glados/multi/wasser.nix
index cdfe01405..0a7ffc41c 100644
--- a/krebs/2configs/shack/glados/multi/wasser.nix
+++ b/krebs/2configs/shack/glados/multi/wasser.nix
@@ -1,6 +1,9 @@
+# uses:
+# switch.crafting_giesskanne_relay
let
glados = import ../lib;
- seconds = 20;
+ seconds = 5;
+ wasser = "switch.crafting_giesskanne_relay";
in
{
switch = [
@@ -22,14 +25,14 @@ in
{
service = "homeassistant.turn_on";
entity_id = [
- "switch.wasser"
+ wasser
];
}
{ delay.seconds = seconds; }
{
service = "homeassistant.turn_off";
entity_id = [
- "switch.wasser"
+ wasser
];
}
];
@@ -38,7 +41,7 @@ in
trigger = [
{
platform = "state";
- entity_id = "switch.wasser";
+ entity_id = wasser;
to = "on";
for.seconds = seconds*2;
}
@@ -47,7 +50,7 @@ in
[
{
service = "homeassistant.turn_off";
- entity_id = [ "switch.wasser" ];
+ entity_id = [ wasser ];
}
];
}
diff --git a/krebs/2configs/shack/prometheus/blackbox.nix b/krebs/2configs/shack/prometheus/blackbox.nix
new file mode 100644
index 000000000..82ce003e8
--- /dev/null
+++ b/krebs/2configs/shack/prometheus/blackbox.nix
@@ -0,0 +1,19 @@
+{pkgs, ... }:
+{
+ systemd.services.prometheus-blackbox-exporter.serviceConfig = {
+ CapabilityBoundingSet = ["CAP_NET_RAW"]; # icmp allow
+ AmbientCapabilities = ["CAP_NET_RAW"];
+ };
+ services.prometheus.exporters.blackbox = {
+ enable = true;
+ # openFirewall = true; # not requred if running on the same host as prometheus
+ port = 9115;
+ configFile = pkgs.writeText "icmp" ''
+ modules:
+ icmp:
+ prober: icmp
+ icmp:
+ preferred_ip_protocol: ip4
+ '';
+ };
+}
diff --git a/krebs/2configs/shack/prometheus/server.nix b/krebs/2configs/shack/prometheus/server.nix
index f5d2e7640..c088a3b08 100644
--- a/krebs/2configs/shack/prometheus/server.nix
+++ b/krebs/2configs/shack/prometheus/server.nix
@@ -18,16 +18,6 @@
};
prometheus = {
enable = true;
- extraFlags = [
- "-storage.local.retention 720h"
- "-storage.local.series-file-shrink-ratio 0.3"
- "-storage.local.memory-chunks 2097152"
- "-storage.local.max-chunks-to-persist 1048576"
- "-storage.local.index-cache-size.fingerprint-to-metric 2097152"
- "-storage.local.index-cache-size.fingerprint-to-timerange 1048576"
- "-storage.local.index-cache-size.label-name-to-label-values 2097152"
- "-storage.local.index-cache-size.label-pair-to-fingerprints 41943040"
- ];
ruleFiles = lib.singleton (pkgs.writeText "prometheus-rules.yml" (builtins.toJSON {
groups = lib.singleton {
name = "mf-alerting-rules";
@@ -41,7 +31,7 @@
static_configs = [
{
targets = [
- "localhost:9100"
+ "wolf.shack:9100"
];
labels = {
alias = "wolf.shack";
@@ -49,7 +39,15 @@
}
{
targets = [
- "localhost:9130"
+ "infra01.shack:9100"
+ ];
+ labels = {
+ alias = "infra01.shack";
+ };
+ }
+ {
+ targets = [
+ "unifi.shack:9130"
];
labels = {
alias = "unifi.shack";
@@ -57,7 +55,7 @@
}
{
targets = [
- "10.42.22.184:9100" # puyak.shack
+ "puyak.shack:9100" # puyak.shack
];
labels = {
alias = "puyak.shack";
@@ -81,6 +79,36 @@
}
];
}
+ {
+ job_name = "blackbox";
+ metrics_path = "/probe";
+ params.module = [ "icmp" ];
+ static_configs = [
+ {
+ targets = [
+ "google.com"
+ "wolf.shack"
+ "web.de"
+ "10.0.0.1"
+ "licht.shack"
+ ];
+ }
+ ];
+ relabel_configs = [
+ {
+ source_labels = ["__address__"];
+ target_label = "__param_target";
+ }
+ {
+ source_labels = ["__param_target"];
+ target_label = "instance";
+ }
+ {
+ target_label = "__address__";
+ replacement = "127.0.0.1:9115";
+ }
+ ];
+ }
];
alertmanagers = [
{ scheme = "http";