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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -122,7 +122,7 @@ let
trigger = {
platform = "state";
# TODO: ecki
entity_id = [ "device_tracker.${name}_phone"];
entity_id = [ "person.${name}"];
from = "not_home";
to = "home";
};
@ -166,7 +166,7 @@ let
condition =
{
condition = "state";
entity_id = "device_tracker.${name}_phone";
entity_id = "person.${name}";
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 }:
# needs: binary_sensor.pommes
let
random_pommes = '' {{ [
"Nur ein Pommes Tag ist ein guter Tag",
"Schaut wie schön sie fliegen, die Pommes Seifenblasen",

View File

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

View File

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

View File

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