diff options
Diffstat (limited to 'makefu/2configs')
-rw-r--r-- | makefu/2configs/bureautomation/automation/bureau-shutdown.nix | 42 | ||||
-rw-r--r-- | makefu/2configs/bureautomation/automation/hass-restart.nix | 31 | ||||
-rw-r--r-- | makefu/2configs/bureautomation/automation/nachtlicht.nix | 72 | ||||
-rw-r--r-- | makefu/2configs/bureautomation/default.nix | 3 | ||||
-rw-r--r-- | makefu/2configs/bureautomation/hass.nix | 27 | ||||
-rw-r--r-- | makefu/2configs/bureautomation/light/statuslight.nix | 5 | ||||
-rw-r--r-- | makefu/2configs/bureautomation/ota.nix | 15 | ||||
-rw-r--r-- | makefu/2configs/bureautomation/sensor/tasmota_firmware.nix | 16 | ||||
-rw-r--r-- | makefu/2configs/deployment/owncloud.nix | 4 | ||||
-rw-r--r-- | makefu/2configs/home-manager/default.nix | 2 | ||||
-rw-r--r-- | makefu/2configs/home-manager/desktop.nix | 6 | ||||
-rw-r--r-- | makefu/2configs/home-manager/recording.nix | 4 | ||||
-rw-r--r-- | makefu/2configs/home-manager/taskwarrior.nix | 6 | ||||
-rw-r--r-- | makefu/2configs/home-manager/zsh.nix | 1 | ||||
-rw-r--r-- | makefu/2configs/homeautomation/default.nix | 1 | ||||
-rw-r--r-- | makefu/2configs/hw/tp-x2x0.nix | 2 |
16 files changed, 177 insertions, 60 deletions
diff --git a/makefu/2configs/bureautomation/automation/bureau-shutdown.nix b/makefu/2configs/bureautomation/automation/bureau-shutdown.nix index c632a9e69..d54d9762a 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 000000000..be16f6966 --- /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 2becd4a39..ec6fa20c7 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 917044d63..1782becd8 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 4e5fe7b63..02465520c 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 0acab7281..31f52f492 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 000000000..f2f931d21 --- /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 000000000..1a4738e12 --- /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 d7c082662..6f073fd4c 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 2a4574cc8..f68b1092f 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 63a5cdbef..406f7f0d1 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 000000000..31ca77b2b --- /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 8ad16dcf2..57ba1a08d 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 6c7b632e1..267a2e878 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 4e9ac0ee3..c4fef1bfc 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 42ae309d0..b4b2562fe 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` |