summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--makefu/2configs/bureautomation/automation/bureau-shutdown.nix42
-rw-r--r--makefu/2configs/bureautomation/automation/hass-restart.nix31
-rw-r--r--makefu/2configs/bureautomation/automation/nachtlicht.nix72
-rw-r--r--makefu/2configs/bureautomation/default.nix3
-rw-r--r--makefu/2configs/bureautomation/hass.nix27
-rw-r--r--makefu/2configs/bureautomation/light/statuslight.nix5
-rw-r--r--makefu/2configs/bureautomation/ota.nix15
-rw-r--r--makefu/2configs/bureautomation/sensor/tasmota_firmware.nix16
-rw-r--r--makefu/2configs/deployment/owncloud.nix4
-rw-r--r--makefu/2configs/home-manager/default.nix2
-rw-r--r--makefu/2configs/home-manager/desktop.nix6
-rw-r--r--makefu/2configs/home-manager/recording.nix4
-rw-r--r--makefu/2configs/home-manager/taskwarrior.nix6
-rw-r--r--makefu/2configs/home-manager/zsh.nix1
-rw-r--r--makefu/2configs/homeautomation/default.nix1
-rw-r--r--makefu/2configs/hw/tp-x2x0.nix2
-rw-r--r--makefu/5pkgs/prison-break/default.nix6
-rw-r--r--makefu/krops.nix2
18 files changed, 181 insertions, 64 deletions
diff --git a/makefu/2configs/bureautomation/automation/bureau-shutdown.nix b/makefu/2configs/bureautomation/automation/bureau-shutdown.nix
index c632a9e6..d54d9762 100644
--- a/makefu/2configs/bureautomation/automation/bureau-shutdown.nix
+++ b/makefu/2configs/bureautomation/automation/bureau-shutdown.nix
@@ -5,14 +5,40 @@
entity_id = "group.team";
from = "not_home";
to = "home";
+ for.seconds = 30;
};
- action = {
- service = "homeassistant.turn_on";
- entity_id = [
- "switch.fernseher"
- "switch.feuer"
- ];
- };
+ action = [
+ {
+ service = "homeassistant.turn_on";
+ entity_id = [
+ "switch.fernseher"
+ "switch.feuer"
+ ];
+ }
+ {
+ service = "media_player.kodi_call_method";
+ data = {
+ entity_id = "media_player.kodi";
+ method = "Player.Open";
+ item.partymode = "music";
+ };
+ }
+ {
+ service = "tts.google_say";
+ entity_id = "media_player.kodi";
+ data = {
+ message = "Willkommen in deinem Lieblingsbüro";
+ language = "de";
+ };
+ }
+ {
+ service = "notify.telegrambot";
+ data = {
+ title = "Bureau Startup";
+ message = "Willkommen {{ trigger.platform }}";
+ };
+ }
+ ];
}
{ alias = "Turn off Fernseher after last in group left";
trigger = [
@@ -42,7 +68,7 @@
service = "notify.telegrambot";
data = {
title = "Bureau Shutdown";
- message = "All devices are turned off due to {{ trigger.platform }} - {{ trigger }}";
+ message = "All devices are turned off due to {{ trigger.platform }}";
};
}
];
diff --git a/makefu/2configs/bureautomation/automation/hass-restart.nix b/makefu/2configs/bureautomation/automation/hass-restart.nix
new file mode 100644
index 00000000..be16f696
--- /dev/null
+++ b/makefu/2configs/bureautomation/automation/hass-restart.nix
@@ -0,0 +1,31 @@
+[
+ { alias = "State on HA start-up";
+ trigger = {
+ platform = "homeassistant";
+ event = "start";
+ };
+ action = [
+ # Startup State
+ { service = "mqtt.publish";
+ data = {
+ topic = "/bam/sonoffs/cmnd/state";
+ payload = "";
+ };
+ }
+ # Firmware Version
+ { service = "mqtt.publish";
+ data = {
+ topic = "/bam/sonoffs/cmnd/status";
+ payload = "2";
+ };
+ }
+ # Will trigger restart of all devices!
+ #{ service = "mqtt.publish";
+ # data = {
+ # topic = "sonoffs/cmnd/SetOption59"; # configure sending state on power change
+ # payload = "1";
+ # };
+ #}
+ ];
+ }
+]
diff --git a/makefu/2configs/bureautomation/automation/nachtlicht.nix b/makefu/2configs/bureautomation/automation/nachtlicht.nix
index 2becd4a3..ec6fa20c 100644
--- a/makefu/2configs/bureautomation/automation/nachtlicht.nix
+++ b/makefu/2configs/bureautomation/automation/nachtlicht.nix
@@ -1,43 +1,35 @@
[
- {
- alias = "Turn off Nachtlicht on sunrise";
- trigger =
- {
- platform = "sun";
- event = "sunrise";
- };
- action =
- {
- service = "homeassistant.turn_off";
- entity_id = [ "group.nachtlicht" ];
- };
- }
+ # TODO: trigger if it is before dusk and somebody arives but nachtlichter are
+ # off from last day
+ # TODO: do not have nachtlicht turned on at night
+ {
+ alias = "Turn on Nachtlicht at dusk"; # when it gets dim
+ trigger =
+ { platform = "numeric_state";
+ entity_id = "sun.sun";
+ value_template = "{{ state.attributes.elevation }}";
+ below = 10;
- {
- alias = "Turn on Nachtlicht on motion and dusk";
- trigger =
- {
- platform = "state";
- entity_id = "binary_sensor.motion";
- to = "on";
- };
- condition = # 'when dark'
- {
- condition = "or";
- conditions = [
- { condition = "sun";
- after = "sunset";
- after_offset = "-00:45:00"; # on dusk
- }
- { condition = "sun";
- before = "sunrise";
- }
- ];
- };
- action =
- {
- service = "homeassistant.turn_on";
- entity_id = [ "group.nachtlicht" ];
- };
- }
+ };
+ action =
+ { service = "homeassistant.turn_on";
+ entity_id = [ "group.nachtlicht" ];
+ };
+ }
+ {
+ alias = "Turn off Nachtlicht at dawn";
+ trigger =
+ { platform = "sun";
+ event = "sunrise";
+ offset = "01:30:00"; # on dawn
+ };
+ # TODO: when somebody is still in the buero
+ # condition =
+ #{
+ #};
+ action =
+ { service = "homeassistant.turn_off";
+ entity_id = [ "group.nachtlicht" ];
+ };
+ }
]
diff --git a/makefu/2configs/bureautomation/default.nix b/makefu/2configs/bureautomation/default.nix
index 917044d6..1782becd 100644
--- a/makefu/2configs/bureautomation/default.nix
+++ b/makefu/2configs/bureautomation/default.nix
@@ -20,6 +20,9 @@ let
mosquitto_pub -t /bam/$topic/cmnd/POWER -m OFF
'';
in {
+ imports = [
+ ./ota.nix
+ ];
services.logstash = {
package = pkgs.logstash5;
enable = true;
diff --git a/makefu/2configs/bureautomation/hass.nix b/makefu/2configs/bureautomation/hass.nix
index 4e5fe7b6..02465520 100644
--- a/makefu/2configs/bureautomation/hass.nix
+++ b/makefu/2configs/bureautomation/hass.nix
@@ -6,6 +6,7 @@ in {
state = [ "/var/lib/hass/known_devices.yaml" ];
services.home-assistant = {
enable = true;
+ package = pkgs.home-assistant.override { python3 = pkgs.python36; };
config = {
homeassistant = {
name = "Bureautomation";
@@ -13,8 +14,14 @@ in {
latitude = "48.8265";
longitude = "9.0676";
elevation = 303;
+ auth_providers = [
+ { type = "homeassistant";}
+ { type = "legacy_api_password";}
+ { type = "trusted_networks";
+ # allow_bypass_login = true;
+ }
+ ];
};
-
mqtt = {
broker = "localhost";
port = 1883;
@@ -79,7 +86,8 @@ in {
sensor =
(import ./sensor/espeasy.nix) ++
((import ./sensor/outside.nix) {inherit lib;}) ++
- (import ./sensor/influxdb.nix);
+ (import ./sensor/influxdb.nix) ++
+ (import ./sensor/tasmota_firmware.nix);
camera =
(import ./camera/verkehrskamera.nix);
@@ -89,12 +97,22 @@ in {
# (import ./person/team.nix );
frontend = { };
- http = { };
+ http = {
+ # TODO: https://github.com/home-assistant/home-assistant/issues/16149
+ api_password = "sistemas";
+ trusted_networks = [
+ "127.0.0.1/32"
+ "192.168.8.0/24"
+ "::1/128"
+ "fd00::/8"
+ ];
+ };
conversation = {};
history = {};
logbook = {};
tts = [ { platform = "google";} ];
recorder = {};
+ sun = {};
telegram_bot = [
(builtins.fromJSON
(builtins.readFile <secrets/hass/telegram-bot.json>))
@@ -156,8 +174,10 @@ in {
outside = [
# "sensor.ditzingen_pm10"
# "sensor.ditzingen_pm25"
+ "sensor.dark_sky_icon"
"sensor.dark_sky_temperature"
"sensor.dark_sky_humidity"
+ "sensor.dark_sky_uv_index"
# "sensor.dark_sky_pressure"
"sensor.dark_sky_hourly_summary"
"device_tracker.router"
@@ -169,6 +189,7 @@ in {
# home-assistant
automation = (import ./automation/bureau-shutdown.nix) ++
(import ./automation/nachtlicht.nix) ++
+ (import ./automation/hass-restart.nix) ++
(import ./automation/10h_timer.nix);
device_tracker = (import ./device_tracker/openwrt.nix );
};
diff --git a/makefu/2configs/bureautomation/light/statuslight.nix b/makefu/2configs/bureautomation/light/statuslight.nix
index 0acab728..31f52f49 100644
--- a/makefu/2configs/bureautomation/light/statuslight.nix
+++ b/makefu/2configs/bureautomation/light/statuslight.nix
@@ -20,7 +20,7 @@ let
payload_not_available= "Offline";
# brightness
brightness_state_topic = "/bam/${topic}/tele/STATE";
- brightness_value_template = "{{value_json.Dimmer}}";
+ brightness_value_template = "{{value_json.Dimmer|default(100)}}";
brightness_command_topic = "/bam/${topic}/cmnd/Dimmer";
brightness_scale = 100;
# color
@@ -30,9 +30,8 @@ let
rgb_command_template = "{{ '%02x%02x%02x' | format(red, green, blue)}}";
# effects
effect_state_topic = "/bam/${topic}/tele/STATE";
- effects_value_template = "{{value_json.Scheme}}";
+ effects_value_template = "{{value_json.Scheme|default(0)}}";
effect_command_topic = "/bam/${topic}/cmnd/Scheme";
- effect_value_template = "{{ value_json.Scheme }}";
effect_list = [
0 # single color for LED light
1 # start wake up sequence (same as Wakeup)
diff --git a/makefu/2configs/bureautomation/ota.nix b/makefu/2configs/bureautomation/ota.nix
new file mode 100644
index 00000000..f2f931d2
--- /dev/null
+++ b/makefu/2configs/bureautomation/ota.nix
@@ -0,0 +1,15 @@
+{
+ # mosquitto_pub -t /bam/sonoffs/cmnd/OtaUrl -m "http://192.168.8.11/sonoff.bin"
+ # mosquitto_pub -t /bam/sonoffs/cmnd/upgrade -m "6.5.0"
+ # wget https://github.com/arendst/Sonoff-Tasmota/releases/download/v6.5.0/sonoff.bin
+ # wget https://github.com/arendst/Sonoff-Tasmota/releases/download/v6.5.0/sonoff-minimal.bin
+ services.nginx = {
+ enable = true;
+ virtualHosts."192.168.8.11" = {
+ root = "/var/www/tasmota";
+ extraConfig = ''
+ autoindex on;
+ '';
+ };
+ };
+}
diff --git a/makefu/2configs/bureautomation/sensor/tasmota_firmware.nix b/makefu/2configs/bureautomation/sensor/tasmota_firmware.nix
new file mode 100644
index 00000000..1a4738e1
--- /dev/null
+++ b/makefu/2configs/bureautomation/sensor/tasmota_firmware.nix
@@ -0,0 +1,16 @@
+let
+ tasmota_firmware = topic:
+ { platform = "mqtt";
+ name = "${topic} Firmware";
+ state_topic = "/bam/${topic}/stat/STATUS2";
+ availability_topic = "/bam/${topic}/tele/LWT";
+ value_template = "v{{value_json.StatusFWR.Version}}";
+ payload_available= "Online";
+ payload_not_available= "Offline";
+ };
+in
+ map tasmota_firmware [
+ "plug" "plug2" "plug3" "plug4" "plug5"
+ "status1" "status2" "buslicht"
+ "rfbridge"
+ ]
diff --git a/makefu/2configs/deployment/owncloud.nix b/makefu/2configs/deployment/owncloud.nix
index d7c08266..6f073fd4 100644
--- a/makefu/2configs/deployment/owncloud.nix
+++ b/makefu/2configs/deployment/owncloud.nix
@@ -23,9 +23,9 @@ let
in {
system.activationScripts."prepare-nextcloud-${domain}" = ''
if test ! -e ${root} ;then
- echo "copying latest ${pkgs.owncloud.name} release to ${root}"
+ echo "copying latest ${pkgs.nextcloud.name} release to ${root}"
mkdir -p $(dirname "${root}")
- cp -r ${pkgs.owncloud} "${root}"
+ cp -r ${pkgs.nextcloud} "${root}"
chown -R nginx:nginx "${root}"
chmod 770 "${root}"
fi
diff --git a/makefu/2configs/home-manager/default.nix b/makefu/2configs/home-manager/default.nix
index 2a4574cc..f68b1092 100644
--- a/makefu/2configs/home-manager/default.nix
+++ b/makefu/2configs/home-manager/default.nix
@@ -2,7 +2,9 @@
imports = [
<home-manager/nixos>
];
+ home-manager.useUserPackages = true;
home-manager.users.makefu = {
+ home.stateVersion = "19.03";
};
environment.variables = {
GTK_DATA_PREFIX = "/run/current-system/sw";
diff --git a/makefu/2configs/home-manager/desktop.nix b/makefu/2configs/home-manager/desktop.nix
index 63a5cdbe..406f7f0d 100644
--- a/makefu/2configs/home-manager/desktop.nix
+++ b/makefu/2configs/home-manager/desktop.nix
@@ -5,7 +5,10 @@
home-manager.users.makefu = {
systemd.user.services.network-manager-applet.Service.Environment = ''XDG_DATA_DIRS=/run/current-system/sw/share:${pkgs.networkmanagerapplet}/share GDK_PIXBUF_MODULE_FILE=${pkgs.librsvg.out}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache'';
programs.browserpass = { browsers = [ "firefox" ] ; enable = true; };
- programs.firefox.enable = true;
+ programs.firefox = {
+ enable = true;
+ enableIcedTea = true;
+ };
programs.obs-studio.enable = true;
xdg.enable = true;
services.network-manager-applet.enable = true;
@@ -20,7 +23,6 @@
filenamePattern=%F_%T_shot
'';
- systemd.user.services.pasystray.Service.Environment = "PATH=" + (lib.makeBinPath (with pkgs;[ pavucontrol paprefs /* pavumeter */ /* paman */ ]) );
programs.chromium = {
enable = true;
extensions = [
diff --git a/makefu/2configs/home-manager/recording.nix b/makefu/2configs/home-manager/recording.nix
new file mode 100644
index 00000000..31ca77b2
--- /dev/null
+++ b/makefu/2configs/home-manager/recording.nix
@@ -0,0 +1,4 @@
+{pkgs, ... }:
+{
+ home-manager.users.makefu.programs.obs-studio.enable = true;
+}
diff --git a/makefu/2configs/home-manager/taskwarrior.nix b/makefu/2configs/home-manager/taskwarrior.nix
index 8ad16dcf..57ba1a08 100644
--- a/makefu/2configs/home-manager/taskwarrior.nix
+++ b/makefu/2configs/home-manager/taskwarrior.nix
@@ -3,6 +3,12 @@ let
loc = "/home/makefu/.task";
in {
state = [ "${loc}/keys" ];
+ environment.shellAliases = {
+ tshack = "task tags:shack";
+ tkrebs = "task tags:krebs";
+ thome = "task tags:home";
+ t = "task project: ";
+ };
home-manager.users.makefu.programs.taskwarrior = {
enable = true;
dataLocation = loc;
diff --git a/makefu/2configs/home-manager/zsh.nix b/makefu/2configs/home-manager/zsh.nix
index 6c7b632e..267a2e87 100644
--- a/makefu/2configs/home-manager/zsh.nix
+++ b/makefu/2configs/home-manager/zsh.nix
@@ -67,6 +67,7 @@
home-manager.users.makefu.programs.zsh.shellAliases = {
cat = "bat";
catn = "${pkgs.coreutils}/bin/cat";
+ ncat = "${pkgs.coreutils}/bin/cat";
};
}
];
diff --git a/makefu/2configs/homeautomation/default.nix b/makefu/2configs/homeautomation/default.nix
index 4e9ac0ee..c4fef1bf 100644
--- a/makefu/2configs/homeautomation/default.nix
+++ b/makefu/2configs/homeautomation/default.nix
@@ -108,6 +108,7 @@ in {
];
services.home-assistant = {
+ package = pkgs.home-assistant.override { python3 = pkgs.python36; };
config = {
homeassistant = {
name = "Home"; time_zone = "Europe/Berlin";
diff --git a/makefu/2configs/hw/tp-x2x0.nix b/makefu/2configs/hw/tp-x2x0.nix
index 42ae309d..b4b2562f 100644
--- a/makefu/2configs/hw/tp-x2x0.nix
+++ b/makefu/2configs/hw/tp-x2x0.nix
@@ -1,6 +1,5 @@
{ config, lib, pkgs, ... }:
-with import <stockholm/lib>;
{
imports = [
./tpm.nix
@@ -19,7 +18,6 @@ with import <stockholm/lib>;
hardware.cpu.intel.updateMicrocode = true;
zramSwap.enable = true;
- zramSwap.numDevices = 2;
# enable synaptics so we can easily disable the touchpad
# enable the touchpad with `synclient TouchpadOff=0`
diff --git a/makefu/5pkgs/prison-break/default.nix b/makefu/5pkgs/prison-break/default.nix
index f86ac376..051a4618 100644
--- a/makefu/5pkgs/prison-break/default.nix
+++ b/makefu/5pkgs/prison-break/default.nix
@@ -3,12 +3,12 @@ with pkgs.python3.pkgs;
buildPythonPackage rec {
pname = "prison-break";
- version = "0.1.0";
+ version = "1.0.0";
src = fetchFromGitHub {
owner = "makefu";
repo = pname;
- rev = "5eed6371e151e716faafa054e005bd98d77b4b5d";
- sha256 = "170zs9grbgkx83ghg6pm13v7vhi604y44j550ypp2x26nidaw63j";
+ rev = "1.0.0";
+ sha256 = "0ab42z6qr42vz4fc077irn9ykrrylagx1dzlw8dqcanf49dxd961";
};
propagatedBuildInputs = [
docopt
diff --git a/makefu/krops.nix b/makefu/krops.nix
index 219e00d7..36c882d7 100644
--- a/makefu/krops.nix
+++ b/makefu/krops.nix
@@ -71,7 +71,7 @@
(lib.mkIf ( host-src.home-manager ) {
home-manager.git = {
url = https://github.com/rycee/home-manager;
- ref = "4aa07c3";
+ ref = "ff602cb906e3dd5d5f89c7c1d0fae65bc67119a0";
};
})
];