Merge remote-tracking branch 'gum/master'

This commit is contained in:
lassulus 2019-11-12 19:38:18 +01:00
commit 68668f3066
13 changed files with 146 additions and 85 deletions

View File

@ -39,8 +39,6 @@ in {
})).override { })).override {
extraPackages = ps: with ps; [ extraPackages = ps: with ps; [
python-forecastio jsonrpc-async jsonrpc-websocket mpd2 python-forecastio jsonrpc-async jsonrpc-websocket mpd2
(callPackage ./deps/gtts-token.nix { })
(callPackage ./deps/pyhaversion.nix { })
]; ];
}; };
autoExtraComponents = true; autoExtraComponents = true;
@ -53,20 +51,24 @@ in {
elevation = 303; elevation = 303;
auth_providers = [ auth_providers = [
{ type = "homeassistant";} { type = "homeassistant";}
{ type = "legacy_api_password";}
{ type = "trusted_networks"; { type = "trusted_networks";
# allow_bypass_login = true; trusted_networks = [
"127.0.0.1/32"
"10.42.0.0/16"
"::1/128"
"fd00::/8"
];
} }
]; ];
}; };
# https://www.home-assistant.io/components/influxdb/ # https://www.home-assistant.io/components/influxdb/
influxdb = { #influxdb = {
database = "hass"; # database = "hass";
tags = { # tags = {
instance = "wolf"; # instance = "wolf";
source = "hass"; # source = "hass";
}; # };
}; #};
mqtt = { mqtt = {
broker = "localhost"; broker = "localhost";
port = 1883; port = 1883;
@ -95,8 +97,7 @@ in {
]; ];
sensor = sensor =
[{ platform = "version"; }] (import ./sensors/hass.nix)
++ (import ./sensors/hass.nix)
++ (import ./sensors/power.nix) ++ (import ./sensors/power.nix)
++ shackopen.sensor; ++ shackopen.sensor;
@ -105,31 +106,24 @@ in {
camera = []; camera = [];
frontend = { }; frontend = { };
config = { };
http = { http = {
# TODO: https://github.com/home-assistant/home-assistant/issues/16149
base_url = "http://hass.shack"; base_url = "http://hass.shack";
use_x_forwarded_for = true; use_x_forwarded_for = true;
trusted_proxies = "127.0.0.1"; trusted_proxies = "127.0.0.1";
api_password = "shackit";
trusted_networks = [
"127.0.0.1/32"
"10.42.0.0/16"
"::1/128"
"fd00::/8"
];
}; };
conversation = {}; #conversation = {};
history = {}; #history = {};
logbook = {}; #logbook = {};
tts = [ tts = [
{ platform = "google"; { platform = "google_translate";
language = "de"; language = "de";
} }
{ platform = "picotts"; #{ platform = "picotts";
language = "de-DE"; # language = "de-DE";
} #}
]; ];
recorder = {}; #recorder = {};
sun = {}; sun = {};
automation = wasser.automation; automation = wasser.automation;

View File

@ -4,8 +4,8 @@ let
pkg = pkgs.callPackage ( pkg = pkgs.callPackage (
pkgs.fetchgit { pkgs.fetchgit {
url = "https://git.shackspace.de/rz/node-light.git"; url = "https://git.shackspace.de/rz/node-light.git";
rev = "32d8064db5172b8068f633211c8bd5688b2c8773"; rev = "9c3fe451897cf170fb192a2643180fdfe22388e8";
sha256 = "14jzhs7pp3hq42wq3cwqarivn1z7vcgksfzfqfc4yyh21096yi1j"; sha256 = "1zsc38idg452r8wpcna5m3yqx0ri11bd1bw60bl0kpz96dqqnyba";
}) { mkYarnPackage = pkgs.yarn2nix-moretea.mkYarnPackage; }; }) { mkYarnPackage = pkgs.yarn2nix-moretea.mkYarnPackage; };
home = "/var/lib/node-light"; home = "/var/lib/node-light";
port = "8082"; port = "8082";

View File

@ -41,7 +41,7 @@ in {
makefu.server.primary-itf = "enp0s25"; makefu.server.primary-itf = "enp0s25";
# krebs.hidden-ssh.enable = true; # krebs.hidden-ssh.enable = true;
boot.kernelModules = [ "coretemp" "f71882fg" ]; boot.kernelModules = [ "coretemp" "f71882fg" ];
hardware.enableAllFirmware = true; hardware.enableRedistributableFirmware = true;
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
networking = { networking = {
wireless.enable = true; wireless.enable = true;

View File

@ -21,7 +21,7 @@
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "ehci_pci" "virtio_pci" "virtio_blk" ]; boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "ehci_pci" "virtio_pci" "virtio_blk" ];
boot.kernelModules = [ ]; boot.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
hardware.enableAllFirmware = true; hardware.enableRedistributableFirmware = true;
hardware.cpu.amd.updateMicrocode = true; hardware.cpu.amd.updateMicrocode = true;
# networking.firewall is enabled by default # networking.firewall is enabled by default

View File

@ -34,6 +34,6 @@
25 25
]; ];
hardware.enableAllFirmware = true; hardware.enableRedistributableFirmware = true;
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
} }

View File

@ -145,7 +145,7 @@ in {
#}; #};
# rt2870.bin wifi card, part of linux-unfree # rt2870.bin wifi card, part of linux-unfree
hardware.enableAllFirmware = true; hardware.enableRedistributableFirmware = true;
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
# rt2870 with nonfree creates wlp2s0 from wlp0s20u2 # rt2870 with nonfree creates wlp2s0 from wlp0s20u2
# not explicitly setting the interface results in wpa_supplicant to crash # not explicitly setting the interface results in wpa_supplicant to crash

View File

@ -4,7 +4,9 @@ let
ten_hours = import ./multi/10h_timers.nix { inherit lib; }; # provides: timer automation script ten_hours = import ./multi/10h_timers.nix { inherit lib; }; # provides: timer automation script
mittagessen = import ./multi/mittagessen.nix { inherit lib; }; # provides: automation script mittagessen = import ./multi/mittagessen.nix { inherit lib; }; # provides: automation script
matrix = import ./multi/matrix.nix { inherit lib; }; # provides: matrix automation matrix = import ./multi/matrix.nix { inherit lib; }; # provides: matrix automation
aramark = import ./multi/aramark.nix { inherit lib; }; # provides: pommes sensor frosch = import ./multi/frosch.nix { inherit lib; }; # provides: sensor binary_sensor switch light script automation
aramark = import ./multi/aramark.nix { inherit lib; }; # provides: sensor binary_sensor
standup = import ./multi/daily-standup.nix { inherit lib; }; # provides: automation script
in { in {
imports = [ imports = [
./ota.nix ./ota.nix
@ -88,10 +90,12 @@ in {
retain = true; retain = true;
}; };
}; };
switch = (import ./switch/tasmota_switch.nix) ++ switch = (import ./switch/tasmota_switch.nix)
(import ./switch/rfbridge.nix); ++ frosch.switch
light = (import ./light/statuslight.nix) ++ ++ (import ./switch/rfbridge.nix);
(import ./light/buzzer.nix); light = (import ./light/statuslight.nix)
++ (import ./light/buzzer.nix)
++ frosch.light;
timer = ten_hours.timer; timer = ten_hours.timer;
notify = [ notify = [
{ {
@ -117,31 +121,34 @@ in {
]; ];
script = lib.fold lib.recursiveUpdate {} [ script = lib.fold lib.recursiveUpdate {} [
((import ./script/multi_blink.nix) {inherit lib;}) ((import ./script/multi_blink.nix) {inherit lib;})
frosch.script
ten_hours.script ten_hours.script
mittagessen.script mittagessen.script
standup.script
]; ];
binary_sensor = binary_sensor =
(import ./binary_sensor/buttons.nix) ++ (import ./binary_sensor/buttons.nix)
(import ./binary_sensor/motion.nix) ++ ++ (import ./binary_sensor/motion.nix)
aramark.binary_sensor; ++ frosch.binary_sensor
++ aramark.binary_sensor;
sensor = sensor =
# [{ platform = "version"; }] ++ # pyhaversion # [{ platform = "version"; }] ++ # pyhaversion
(import ./sensor/pollen.nix) ++ (import ./sensor/pollen.nix)
(import ./sensor/espeasy.nix) ++ ++ (import ./sensor/espeasy.nix)
(import ./sensor/airquality.nix) ++ ++ (import ./sensor/airquality.nix)
((import ./sensor/outside.nix) {inherit lib;}) ++ ++ ((import ./sensor/outside.nix) {inherit lib;})
(import ./sensor/influxdb.nix) ++ ++ (import ./sensor/influxdb.nix)
(import ./sensor/tasmota_firmware.nix) ++ ++ (import ./sensor/tasmota_firmware.nix)
aramark.sensor; ++ frosch.sensor
++ aramark.sensor;
camera = camera =
(import ./camera/verkehrskamera.nix) (import ./camera/verkehrskamera.nix)
++ (import ./camera/comic.nix); ++ (import ./camera/comic.nix);
# not yet released person =
#person = (import ./person/team.nix );
# (import ./person/team.nix );
frontend = { }; frontend = { };
http = { http = {
@ -196,13 +203,22 @@ in {
"light.buslicht" "light.buslicht"
]; ];
team = [ team = [
"device_tracker.thorsten_phone" "person.thorsten"
"device_tracker.felix_phone" #"device_tracker.thorsten_phone"
"device_tracker.ecki_tablet" "person.felix"
"device_tracker.daniel_phone" "person.ecki"
"device_tracker.carsten_phone" "person.daniel"
"device_tracker.thierry_phone" # "person.carsten"
"device_tracker.frank_phone" "person.thierry"
"person.frank"
"person.emeka"
#"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.thorsten"
# "person.felix" # "person.felix"
# "person.ecki" # "person.ecki"
@ -237,8 +253,6 @@ in {
]; ];
sensors = [ sensors = [
"media_player.kodi" "media_player.kodi"
"script.blitz_10s"
"script.buzz_red_led_fast"
"timer.felix_10h" "timer.felix_10h"
"timer.frank_10h" "timer.frank_10h"
"sensor.easy2_dht22_humidity" "sensor.easy2_dht22_humidity"
@ -262,13 +276,15 @@ in {
# feedreader.urls = [ "http://www.heise.de/security/rss/news-atom.xml" ]; # feedreader.urls = [ "http://www.heise.de/security/rss/news-atom.xml" ];
# we don't use imports because the expressions do not merge in # we don't use imports because the expressions do not merge in
# home-assistant # home-assistant
automation = (import ./automation/bureau-shutdown.nix) ++ automation = (import ./automation/bureau-shutdown.nix)
(import ./automation/nachtlicht.nix) ++ ++ (import ./automation/nachtlicht.nix)
(import ./automation/schlechteluft.nix) ++ ++ (import ./automation/schlechteluft.nix)
(import ./automation/hass-restart.nix) ++ ++ (import ./automation/hass-restart.nix)
ten_hours.automation ++ ++ ten_hours.automation
matrix.automation ++ ++ matrix.automation
mittagessen.automation; ++ standup.automation
++ frosch.automation
++ mittagessen.automation;
device_tracker = (import ./device_tracker/openwrt.nix ); device_tracker = (import ./device_tracker/openwrt.nix );
}; };
}; };

View File

@ -122,7 +122,7 @@ let
trigger = { trigger = {
platform = "state"; platform = "state";
# TODO: ecki # TODO: ecki
entity_id = [ "device_tracker.${name}_phone"]; entity_id = [ "person.${name}"];
from = "not_home"; from = "not_home";
to = "home"; to = "home";
}; };
@ -166,7 +166,7 @@ let
condition = condition =
{ {
condition = "state"; condition = "state";
entity_id = "device_tracker.${name}_phone"; entity_id = "person.${name}";
state = "home"; state = "home";
}; };

View File

@ -0,0 +1,54 @@
{ lib }:
let
random_daily_text = ''{{ [
"Es ist so weit, es ist Standup Zeit!",
"Zehn Uhr Fünfunddreissig ist genau die richtige Zeit für ein Standup!",
"Hat jeder seine Hausaufgaben gemacht? Bitte einmal aufstehen und den Zettel nach rechts geben",
"Aufstehen zum Appell, es wird die Anwesenheit kontrolliert!",
"Hallo Kinder, wisst ihr welche Zeit es ist??? ... Genau! ... Standup Zeit!",
"Morgens, halb elf in Deutschland - das Standupchen" ] | random }}'';
in {
script =
{ "random_daily" = {
alias = "Random Daily Introduction";
sequence = [
{ service = "media_player.play_media";
data = {
entity_id = "media_player.mpd";
media_content_type = "playlist";
media_content_id = "ansage";
};
}
{ delay.seconds = 5; }
{ service = "tts.google_say";
entity_id = "media_player.mpd";
data_template = {
message = random_daily_text;
language = "de";
};
}
];
};
};
automation = [
{
alias = "Daily Standup";
trigger = {
platform = "time";
at = "10:35:00";
};
action =
[
{ service = "homeassistant.turn_on";
entity_id = [
"script.blitz_10s"
"script.random_daily"
];
}
];
}
];
}

View File

@ -1,6 +1,6 @@
{ lib }: { lib }:
# needs: binary_sensor.pommes
let let
random_pommes = '' {{ [ random_pommes = '' {{ [
"Nur ein Pommes Tag ist ein guter Tag", "Nur ein Pommes Tag ist ein guter Tag",
"Schaut wie schön sie fliegen, die Pommes Seifenblasen", "Schaut wie schön sie fliegen, die Pommes Seifenblasen",

View File

@ -1,7 +1,6 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
# vda1 ext4 (label nixos) -> only root partition # vda1 ext4 (label nixos) -> only root partition
with import <stockholm/lib>;
{ {
boot.loader.grub.enable = true; boot.loader.grub.enable = true;
boot.loader.grub.version = 2; boot.loader.grub.version = 2;
@ -16,6 +15,6 @@ with import <stockholm/lib>;
fsType = "ext4"; fsType = "ext4";
}; };
hardware.enableAllFirmware = true; hardware.enableRedistributableFirmware = true;
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
} }

View File

@ -15,7 +15,7 @@
networking.wireless.enable = lib.mkDefault true; networking.wireless.enable = lib.mkDefault true;
hardware.enableAllFirmware = true; hardware.enableRedistributableFirmware = true;
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
hardware.cpu.intel.updateMicrocode = true; hardware.cpu.intel.updateMicrocode = true;

View File

@ -1,19 +1,17 @@
{ stdenv, lib, pkgs, fetchurl }: { stdenv, lib, pkgs, fetchFromGitHub }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "bin2iso"; pname = "bin2iso";
version = "1.9b"; version = "1.9b";
_dlver = builtins.replaceStrings ["."] [""] version;
name = "${pname}-${version}";
src = fetchurl { src = fetchFromGitHub {
url = "http://users.eastlink.ca/~doiron/${pname}/linux/${pname}${_dlver}_linux.c"; owner = "einsteinx2";
sha256 = "0gg4hbzlm83nnbccy79dnxbwpn7lxl3fb87ka36mlclikvknm2hy"; repo = "bin2iso";
rev = "a08f6f93b833878dc009fe59da072643f06a7830";
sha256 = "1bnhj8z7wbq2v070zkx0xal6hx37y20a068gpy95zh13vihvbgh3";
}; };
unpackPhase = "true";
buildPhase ='' buildPhase =''
gcc -Wall -o $pname $src gcc -Wall -o $pname $src/src/linux_macos/${pname}_v${version}_linux.c
''; '';
installPhase = '' installPhase = ''
@ -21,7 +19,7 @@ stdenv.mkDerivation rec {
''; '';
meta = { meta = {
homepage = http://users.eastlink.ca/~doiron/bin2iso/ ; homepage = https://github.com/einsteinx2/bin2iso;
description = "converts bin+cue to iso"; description = "converts bin+cue to iso";
license = lib.licenses.gpl3; license = lib.licenses.gpl3;
}; };