summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlassulus <lassulus@lassul.us>2021-03-19 09:19:25 +0100
committerlassulus <lassulus@lassul.us>2021-03-19 09:19:25 +0100
commit86b458d5d3aaac94d51b0a860376725c0a70b6fb (patch)
tree82407d4e8454b3abfbb8288f8bc6765c64bf036b
parent3bbbc82ae9ab9f0ac737b2ff0b55b50ae9c77b8a (diff)
parent758660945c712b645e755e9101a9fd3d8a325c91 (diff)
Merge remote-tracking branch 'gum/master'
-rw-r--r--makefu/1systems/omo/config.nix3
-rw-r--r--makefu/1systems/wbob/config.nix2
-rw-r--r--makefu/2configs/bureautomation/automation/philosophische-tuer.nix128
-rw-r--r--makefu/2configs/bureautomation/default.nix133
-rw-r--r--makefu/2configs/bureautomation/device_tracker/openwrt.nix1
-rw-r--r--makefu/2configs/bureautomation/sensor/outside.nix13
-rw-r--r--makefu/2configs/git/cgit-retiolum.nix1
-rw-r--r--makefu/2configs/home/ham/default.nix3
-rw-r--r--makefu/2configs/home/zigbee2mqtt/default.nix (renamed from makefu/2configs/home/ham/zigbee2mqtt/default.nix)0
-rw-r--r--makefu/2configs/home/zigbee2mqtt/hass.nix (renamed from makefu/2configs/home/ham/zigbee2mqtt/hass.nix)0
-rw-r--r--makefu/2configs/home/zigbee2mqtt/osram.nix (renamed from makefu/2configs/home/ham/zigbee2mqtt/osram.nix)0
-rw-r--r--makefu/2configs/storj/client.nix20
-rw-r--r--makefu/krops.nix1
13 files changed, 112 insertions, 193 deletions
diff --git a/makefu/1systems/omo/config.nix b/makefu/1systems/omo/config.nix
index a0459371..d44980ce 100644
--- a/makefu/1systems/omo/config.nix
+++ b/makefu/1systems/omo/config.nix
@@ -93,10 +93,11 @@ in {
<stockholm/makefu/2configs/virtualisation/docker.nix>
<stockholm/makefu/2configs/bluetooth-mpd.nix>
- <stockholm/makefu/2configs/home/ham>
<stockholm/makefu/2configs/home/airsonic.nix>
<stockholm/makefu/2configs/home/photoprism.nix>
<stockholm/makefu/2configs/home/metube.nix>
+ <stockholm/makefu/2configs/home/ham>
+ <stockholm/makefu/2configs/home/zigbee2mqtt>
{
makefu.ps3netsrv = {
enable = true;
diff --git a/makefu/1systems/wbob/config.nix b/makefu/1systems/wbob/config.nix
index b70b4844..f99e493b 100644
--- a/makefu/1systems/wbob/config.nix
+++ b/makefu/1systems/wbob/config.nix
@@ -50,7 +50,7 @@ in {
<stockholm/makefu/2configs/bureautomation> # new hass entry point
<stockholm/makefu/2configs/bureautomation/led-fader.nix>
- <stockholm/makefu/2configs/bureautomation/kalauerbot.nix>
+ # <stockholm/makefu/2configs/bureautomation/kalauerbot.nix> now runs in thales
# <stockholm/makefu/2configs/bureautomation/visitor-photostore.nix>
# <stockholm/makefu/2configs/bureautomation/mpd.nix> #mpd is only used for TTS, this is the web interface
<stockholm/makefu/2configs/mqtt.nix>
diff --git a/makefu/2configs/bureautomation/automation/philosophische-tuer.nix b/makefu/2configs/bureautomation/automation/philosophische-tuer.nix
index 9ccb8134..8c3fed6d 100644
--- a/makefu/2configs/bureautomation/automation/philosophische-tuer.nix
+++ b/makefu/2configs/bureautomation/automation/philosophische-tuer.nix
@@ -16,93 +16,83 @@ let
sha256 = "0bm0697fyf6s05c6yw6y25cyck04rlxj1dgazkq8mfqk6756v2bq";
};
samples = user: lib.mapAttrsToList
- (file: _: ''"${prefix}/${name}/${user}/${file}"'')
+ (file: _: ''"${prefix}/${user}/${file}"'')
(builtins.readDir (toString ( recordrepo+ "/recordings/${user}")));
random_tuerspruch = ''{{'' + (lib.concatStringsSep "," ((samples "Felix") ++ (samples "Sofia") ++ (samples "Markus"))) + ''| random}}''; # TODO read from derivation
in
{
- systemd.tmpfiles.rules = [
- "d ${audiodir} - hass hass - -"
- ];
-
systemd.services.copy-philosophische-tuersounds = {
description = "copy philosophische tuer";
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Type = "oneshot";
- User = "hass";
- WorkingDirectory = audiodir;
ExecStart = pkgs.writeDash "update-samples" ''
- cp -vr ${recordrepo} ${audiodir}
+ rm -rf "${audiodir}"
+ cp -vr "${recordrepo}/recordings" "${audiodir}"
'';
};
};
-
- services.home-assistant.config.media_extractor = { };
- services.home-assistant.config.script."philosophische_tuer" = {
- alias = "Durchsage der philosophischen Tür";
- sequence = [
- { service = "media_player.play_media";
- data = {
- entity_id = "media_player.mpd";
- media_content_type = "playlist";
- media_content_id = "ansage";
+ services.home-assistant.config = {
+ media_extractor = { };
+ script."philosophische_tuer" = {
+ alias = "Durchsage der philosophischen Tür";
+ sequence = [
+ { service = "media_player.play_media";
+ data = {
+ entity_id = "media_player.mpd";
+ media_content_type = "playlist";
+ media_content_id = "ansage";
+ };
+ }
+ { delay.seconds = 5; }
+ { service = "media_extractor.play_media";
+ entity_id = "media_player.mpd";
+ data_template = {
+ media_content_id = random_tuerspruch;
+ media_content_type = "MUSIC";
+ };
+ }
+ ];
+ };
+ automation =
+ [
+ {
+ alias = "Tür offen seit ${toString short_threshold} sekunden";
+ trigger =
+ { platform = "state";
+ entity_id = sensor;
+ to = "on";
+ for.seconds = 60;
};
+ action = [
+ { service = "homeassistant.turn_on";
+ entity_id = "script.philosophische_tuer";
+ }
+ ];
}
- { delay.seconds = 5; }
- { service = "media_extractor.play_media";
- entity_id = "media_player.mpd";
- data_template = {
- media_content_id = random_tuerspruch;
- media_content_type = "MUSIC";
+ {
+ alias = "Tür offen seit ${toString long_threshold} minuten";
+ trigger =
+ { platform = "state";
+ entity_id = sensor;
+ to = "on";
+ for.minutes = long_threshold;
};
+
+ action = [
+ { service = "homeassistant.turn_on";
+ entity_id = "script.philosophische_tuer" ;
+ }
+ { service = "tts.google_say";
+ entity_id = "media_player.mpd";
+ data_template = {
+ message = "BEEP BOOP - Die Tür ist schon seit ${toString long_threshold} Minuten offen! Student Nummer {{ range(1,500) | random }}, bitte schliesse die Tür";
+ language = "de";
+ };
+ }
+ ];
}
];
};
- services.home-assistant.config.automation =
- [
- {
- alias = "Tür offen seit ${toString short_threshold} sekunden";
- trigger =
- { platform = "state";
- entity_id = sensor;
- to = "on";
- for.seconds = 60;
- };
- condition = { };
- action = [
- { service = "homeassistant.turn_on";
- entity_id = [
- "script.philosophische_tuer"
- ];
- }
- ];
- }
- {
- alias = "Tür offen seit ${toString long_threshold} minuten";
- trigger =
- { platform = "state";
- entity_id = sensor;
- to = "on";
- for.minutes = long_threshold;
- };
- condition = { };
-
- action = [
- { service = "homeassistant.turn_on";
- entity_id = [
- "script.philosophische_tuer"
- ];
- }
- { service = "tts.google_say";
- entity_id = "media_player.mpd";
- data_template = {
- message = "BEEP BOOP - Die Tür ist schon seit ${toString long_threshold} Minuten offen! Student Nummer {{ range(1,500) | random }}, bitte schliesse die Tür";
- language = "de";
- };
- }
- ];
- }
- ];
}
diff --git a/makefu/2configs/bureautomation/default.nix b/makefu/2configs/bureautomation/default.nix
index 7ac90f5c..7eb29787 100644
--- a/makefu/2configs/bureautomation/default.nix
+++ b/makefu/2configs/bureautomation/default.nix
@@ -56,7 +56,11 @@ in {
package = (unstable.home-assistant.overrideAttrs (old: {
doInstallCheck = false;
})).override {
- extraPackages = p: [ p.APScheduler ];
+ extraPackages = p: [
+ # TODO: put somewhere else
+ (p.callPackage <stockholm/makefu/2configs/home/ham/deps/dwdwfsapi.nix> {})
+ (p.callPackage <stockholm/makefu/2configs/home/ham/deps/pykodi.nix> {})
+ p.APScheduler ];
};
autoExtraComponents = true;
config = {
@@ -119,13 +123,13 @@ in {
name = "wbob-kodi";
host = kodi-host;
}
- {
- platform = "telegram";
- name = "telegrambot";
- chat_id = builtins.elemAt
- (builtins.fromJSON (builtins.readFile
- <secrets/hass/telegram-bot.json>)).allowed_chat_ids 0;
- }
+ #{
+ # platform = "telegram";
+ # name = "telegrambot";
+ # chat_id = builtins.elemAt
+ # (builtins.fromJSON (builtins.readFile
+ # <secrets/hass/telegram-bot.json>)).allowed_chat_ids 0;
+ #}
];
media_player = [
{ platform = "kodi";
@@ -136,7 +140,7 @@ in {
}
];
- sensor = [{ platform = "version"; }]; # pyhaversion
+ # sensor = [{ platform = "version"; }]; # pyhaversion
@@ -158,113 +162,16 @@ in {
api_key = builtins.readFile <secrets/hass/voicerss.apikey>;
language = "de-de";
}
- { platform = "picotts";
- language = "de-DE";
- }
+ #{ platform = "picotts";
+ # language = "de-DE";
+ #}
];
recorder = {};
sun = {};
- telegram_bot = [
- (builtins.fromJSON
- (builtins.readFile <secrets/hass/telegram-bot.json>))
- ];
- group =
- { default_view =
- { view = "yes";
- entities = [
- "group.sensors"
- "group.camera"
- "group.outside"
- "group.team"
- "group.nachtlicht"
- "group.switches"
- "group.aramark"
- ];
- };
- automation = [];
-
- switches = [
- "switch.bauarbeiterlampe"
- "switch.blitzdings"
- "switch.fernseher"
- "switch.feuer"
- "switch.frosch_blasen"
- "light.status_felix"
- # "light.status_daniel"
- # "light.buslicht"
- ];
- team = [
- "person.thorsten"
- #"device_tracker.thorsten_phone"
- "person.felix"
- "person.ecki"
- "person.daniel"
- # "person.carsten"
- "person.thierry"
- "person.frank"
- "person.emeka"
- "person.tancrede"
- #"device_tracker.felix_phone"
- #"device_tracker.ecki_tablet"
- #"device_tracker.daniel_phone"
- #"device_tracker.carsten_phone"
- #"device_tracker.thierry_phone"
- #"device_tracker.frank_phone"
- #"device_tracker.emeka_phone"
- # "person.thorsten"
- # "person.felix"
- # "person.ecki"
- # "person.daniel"
- ];
- camera = [
- "camera.Baumarkt"
- "camera.Autobahn_Heilbronn"
- "camera.Autobahn_Singen"
- "camera.puppies"
- "camera.poorly_drawn_lines"
- "camera.xkcd"
- ];
- nachtlicht = [
- "switch.nachtlicht_a"
- "switch.nachtlicht_b"
- "switch.nachtlicht_c"
- "switch.nachtlicht_d"
- ];
- Aramark = [
- "binary_sensor.pommes"
- "sensor.menu_1"
- "sensor.menu_1_text"
- "sensor.menu_1_preis"
- "sensor.menu_2"
- "sensor.menu_2_text"
- "sensor.menu_2_preis"
- "sensor.aktion"
- "sensor.aktion_text"
- "sensor.aktion_preis"
- "sensor.mercato"
- "sensor.mercato_text"
- "sensor.mercato_preis"
- ];
- sensors = [
- "media_player.kodi"
- "timer.felix_10h"
- "timer.frank_10h"
- "sensor.easy2_dht22_humidity"
- "sensor.easy2_dht22_temperature"
- "sensor.air_quality"
- # "binary_sensor.aramark_pommes"
- # "binary_sensor.redbutton"
- ];
- outside = [
- # "sensor.ditzingen_pm10"
- # "sensor.ditzingen_pm25"
- "sensor.dark_sky_temperature"
- "sensor.dark_sky_humidity"
- "sensor.dark_sky_uv_index"
- # "sensor.dark_sky_pressure"
- "sensor.dark_sky_hourly_summary"
- ];
- };
+ #telegram_bot = [
+ # (builtins.fromJSON
+ # (builtins.readFile <secrets/hass/telegram-bot.json>))
+ #];
# only for automation
# feedreader.urls = [ "http://www.heise.de/security/rss/news-atom.xml" ];
# we don't use imports because the expressions do not merge in
diff --git a/makefu/2configs/bureautomation/device_tracker/openwrt.nix b/makefu/2configs/bureautomation/device_tracker/openwrt.nix
index 6b014412..b597548e 100644
--- a/makefu/2configs/bureautomation/device_tracker/openwrt.nix
+++ b/makefu/2configs/bureautomation/device_tracker/openwrt.nix
@@ -12,7 +12,6 @@
consider_home = 300; # 5 minutes timeout
new_device_defaults = {
track_new_devices = true;
- hide_if_away = false;
};
}
];
diff --git a/makefu/2configs/bureautomation/sensor/outside.nix b/makefu/2configs/bureautomation/sensor/outside.nix
index b5d25ecd..e7b4d9a7 100644
--- a/makefu/2configs/bureautomation/sensor/outside.nix
+++ b/makefu/2configs/bureautomation/sensor/outside.nix
@@ -20,10 +20,13 @@
units = "si" ;
scan_interval = "00:30:00";
}
- { platform = "luftdaten";
- name = "Ditzingen";
- sensorid = "5341";
- monitored_conditions = [ "P1" "P2" ];
- }
];
+ services.home-assistant.config.luftdaten = {
+ sensor_id = "26237";
+ show_on_map = true;
+ sensors.monitored_conditions = [
+ "P1"
+ "P2"
+ ];
+ };
}
diff --git a/makefu/2configs/git/cgit-retiolum.nix b/makefu/2configs/git/cgit-retiolum.nix
index 3e3ef09a..114febe8 100644
--- a/makefu/2configs/git/cgit-retiolum.nix
+++ b/makefu/2configs/git/cgit-retiolum.nix
@@ -36,6 +36,7 @@ let
cgit.desc = "Build new Stockholm hosts";
};
cac-api = { };
+ oof = { };
euer_blog = { };
ampel = { };
europastats = { };
diff --git a/makefu/2configs/home/ham/default.nix b/makefu/2configs/home/ham/default.nix
index e164b177..33e406e0 100644
--- a/makefu/2configs/home/ham/default.nix
+++ b/makefu/2configs/home/ham/default.nix
@@ -14,11 +14,10 @@ in {
imports = [
./nginx.nix
./mqtt.nix
- ./zigbee2mqtt
./signal-rest
# hass config
- ./zigbee2mqtt/hass.nix
+ ../zigbee2mqtt/hass.nix
# ./multi/flurlicht.nix
./multi/kurzzeitwecker.nix
./multi/the_playlist.nix
diff --git a/makefu/2configs/home/ham/zigbee2mqtt/default.nix b/makefu/2configs/home/zigbee2mqtt/default.nix
index 6ccf8b24..6ccf8b24 100644
--- a/makefu/2configs/home/ham/zigbee2mqtt/default.nix
+++ b/makefu/2configs/home/zigbee2mqtt/default.nix
diff --git a/makefu/2configs/home/ham/zigbee2mqtt/hass.nix b/makefu/2configs/home/zigbee2mqtt/hass.nix
index faf864ba..faf864ba 100644
--- a/makefu/2configs/home/ham/zigbee2mqtt/hass.nix
+++ b/makefu/2configs/home/zigbee2mqtt/hass.nix
diff --git a/makefu/2configs/home/ham/zigbee2mqtt/osram.nix b/makefu/2configs/home/zigbee2mqtt/osram.nix
index d1bf2b29..d1bf2b29 100644
--- a/makefu/2configs/home/ham/zigbee2mqtt/osram.nix
+++ b/makefu/2configs/home/zigbee2mqtt/osram.nix
diff --git a/makefu/2configs/storj/client.nix b/makefu/2configs/storj/client.nix
index e37e2ce2..5e675340 100644
--- a/makefu/2configs/storj/client.nix
+++ b/makefu/2configs/storj/client.nix
@@ -1,4 +1,8 @@
{ lib, ... }:
+let
+ port = "14002";
+internal-ip = "192.168.1.11";
+in
{
networking.firewall.allowedTCPPorts = [ 28967 ];
virtualisation.oci-containers.containers.storj-storagenode = {
@@ -6,7 +10,7 @@
ports = [
# TODO: omo ip
"0.0.0.0:28967:28967"
- "127.0.0.1:14002:14002"
+ "127.0.0.1:${port}:${port}"
];
environment = {
# SETUP = "true"; # must be run only once ...
@@ -24,4 +28,18 @@
StandardOutput = lib.mkForce "journal";
StandardError = lib.mkForce "journal";
};
+
+ services.nginx.virtualHosts."storj" = {
+ serverAliases = [
+ "storj.lan"
+ ];
+
+ locations."/".proxyPass = "http://localhost:${port}";
+ locations."/".proxyWebsockets = true;
+ extraConfig = ''
+ if ( $server_addr != "${internal-ip}" ) {
+ return 403;
+ }
+ '';
+ };
}
diff --git a/makefu/krops.nix b/makefu/krops.nix
index 12c003b2..69703972 100644
--- a/makefu/krops.nix
+++ b/makefu/krops.nix
@@ -86,6 +86,7 @@ in {
# usage: $(nix-build --no-out-link --argstr name HOSTNAME -A deploy)
deploy = pkgs.krops.writeDeploy "${name}-deploy" {
source = source { test = false; };
+ fast = true;
target = "root@${target}/var/src";
buildTarget = if target == buildTarget then "root@${target}/var/src" else "root@${buildTarget}/tmp/";
};