Merge remote-tracking branch 'gum/master'
This commit is contained in:
commit
c809683293
|
@ -50,6 +50,7 @@ in {
|
|||
|
||||
|
||||
<stockholm/makefu/2configs/deployment/bureautomation>
|
||||
<stockholm/makefu/2configs/deployment/bureautomation/hass.nix>
|
||||
(let
|
||||
collectd-port = 25826;
|
||||
influx-port = 8086;
|
||||
|
|
|
@ -1,75 +1,125 @@
|
|||
{ pkgs, lib, ... }:
|
||||
let
|
||||
firetv = "192.168.1.238";
|
||||
in {
|
||||
imports = [
|
||||
<nixpkgs-unstable/nixos/modules/services/misc/home-assistant.nix>
|
||||
tasmota_plug = name: topic: {
|
||||
platform = "mqtt";
|
||||
inherit name;
|
||||
state_topic = "/bam/${topic}/stat/POWER";
|
||||
command_topic = "/bam/${topic}/cmnd/POWER";
|
||||
availability_topic = "/bam/${topic}/tele/LWT";
|
||||
qos = 1;
|
||||
payload_on= "ON";
|
||||
payload_off= "OFF";
|
||||
payload_available= "Online";
|
||||
payload_not_available= "Offline";
|
||||
retain= false;
|
||||
};
|
||||
espeasy_dht22 = name: [
|
||||
{
|
||||
platform = "mqtt";
|
||||
device_class = "temperature";
|
||||
state_topic = "/bam/${name}/dht22/Temperature";
|
||||
availability_topic = "/bam/${name}/status/LWT";
|
||||
payload_available = "Connected";
|
||||
payload_not_available = "Connection Lost";
|
||||
}
|
||||
{
|
||||
platform = "mqtt";
|
||||
device_class = "humidity";
|
||||
state_topic = "/bam/${name}/dht22/Temperature";
|
||||
unit_of_measurement = "C";
|
||||
availability_topic = "/bam/${name}/status/LWT";
|
||||
payload_available = "Connected";
|
||||
payload_not_available = "Connection Lost";
|
||||
}];
|
||||
espeasy_ds18 = name: [
|
||||
{
|
||||
platform = "mqtt";
|
||||
device_class = "temperature";
|
||||
state_topic = "/bam/${name}/ds18/Temperature";
|
||||
availability_topic = "/bam/${name}/status/LWT";
|
||||
payload_available = "Connected";
|
||||
payload_not_available = "Connection Lost";
|
||||
}
|
||||
];
|
||||
systemd.services.firetv = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
User = "nobody";
|
||||
ExecStart = "${pkgs.python-firetv}/bin/firetv-server -d ${firetv}:5555";
|
||||
};
|
||||
};
|
||||
nixpkgs.config.packageOverrides = oldpkgs: {
|
||||
home-assistant = (import <nixpkgs-unstable> {}).home-assistant;
|
||||
};
|
||||
ids.uids.hass = 286;
|
||||
ids.gids.hass = 286;
|
||||
in {
|
||||
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"homeassistant-0.65.5"
|
||||
];
|
||||
|
||||
services.home-assistant = {
|
||||
#panel_iframe:
|
||||
#configurator:
|
||||
# title: Configurator
|
||||
# icon: mdi:wrench
|
||||
# url: http://hassio.local:3218
|
||||
# sensor:
|
||||
# - platform: random
|
||||
enable = true;
|
||||
config = {
|
||||
homeassistant = {
|
||||
name = "Bureautomation";
|
||||
time_zone = "Europe/Berlin";
|
||||
};
|
||||
panel_iframe = {
|
||||
euer_blog = {
|
||||
title = "Euer Blog";
|
||||
icon = "mdi:wrench";
|
||||
url = "https://euer.krebsco.de";
|
||||
|
||||
mqtt = {
|
||||
broker = "localhost";
|
||||
port = 1883;
|
||||
client_id = "home-assistant";
|
||||
keepalive = 60;
|
||||
protocol = 3.1;
|
||||
birth_message = {
|
||||
topic = "/bam/hass/tele/LWT";
|
||||
payload = "Online";
|
||||
qos = 1;
|
||||
retain = true;
|
||||
};
|
||||
will_message = {
|
||||
topic = "/bam/hass/tele/LWT";
|
||||
payload = "Offline";
|
||||
qos = 1;
|
||||
retain = true;
|
||||
};
|
||||
};
|
||||
media_player = [
|
||||
{ platform = "kodi";
|
||||
host = firetv;
|
||||
}
|
||||
{ platform = "firetv";
|
||||
# assumes python-firetv running
|
||||
switch = [
|
||||
(tasmota_plug "Bauarbeiterlampe" "plug")
|
||||
(tasmota_plug "Blitzdings" "plug2")
|
||||
(tasmota_plug "Fernseher" "plug3")
|
||||
(tasmota_plug "Pluggy" "plug4")
|
||||
];
|
||||
binary_sensor = [
|
||||
{ # esp_easy
|
||||
platform = "mqtt";
|
||||
device_class = "motion";
|
||||
state_topic = "/bam/easy2/movement/Switch";
|
||||
payload_on = "1";
|
||||
payload_off = "0";
|
||||
availability_topic = "/bam/easy2/status/LWT";
|
||||
payload_available = "Connected";
|
||||
payload_not_available = "Connection Lost";
|
||||
}
|
||||
];
|
||||
sensor = [
|
||||
{
|
||||
platform = "luftdaten";
|
||||
name = "Shack 1";
|
||||
sensorid = "50";
|
||||
monitored_conditions = [ "P1" "P2" ];
|
||||
}
|
||||
{
|
||||
platform = "luftdaten";
|
||||
name = "Shack 2";
|
||||
sensorid = "658";
|
||||
monitored_conditions = [ "P1" "P2" ];
|
||||
}
|
||||
{
|
||||
platform = "luftdaten";
|
||||
name = "Ditzingen";
|
||||
sensorid = "5341";
|
||||
monitored_conditions = [ "P1" "P2" ];
|
||||
}
|
||||
{ platform = "random"; }
|
||||
];
|
||||
sensor =
|
||||
(espeasy_dht22 "easy2") ++
|
||||
[ (espeasy_ds18 "easy3" )
|
||||
{ platform = "luftdaten";
|
||||
name = "Ditzingen";
|
||||
sensorid = "5341";
|
||||
monitored_conditions = [ "P1" "P2" ];
|
||||
}
|
||||
{ platform = "influxdb";
|
||||
queries = [
|
||||
{ name = "mean value of feinstaub P1";
|
||||
where = '' "node" = 'esp8266-1355142' '';
|
||||
measurement = "feinstaub";
|
||||
database = "telegraf";
|
||||
field = "P1";
|
||||
}
|
||||
{ name = "mean value of feinstaub P2";
|
||||
where = '' "node" = 'esp8266-1355142' '';
|
||||
measurement = "feinstaub";
|
||||
database = "telegraf";
|
||||
field = "P2";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
frontend = { };
|
||||
http = { };
|
||||
feedreader.urls = [ "https://nixos.org/blogs.xml" ];
|
||||
feedreader.urls = [ "http://www.heise.de/security/rss/news-atom.xml" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
67
makefu/2configs/deployment/bureautomation/home.nix
Normal file
67
makefu/2configs/deployment/bureautomation/home.nix
Normal file
|
@ -0,0 +1,67 @@
|
|||
{ pkgs, lib, ... }:
|
||||
let
|
||||
firetv = "192.168.1.238";
|
||||
in {
|
||||
systemd.services.firetv = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
User = "nobody";
|
||||
ExecStart = "${pkgs.python-firetv}/bin/firetv-server -d ${firetv}:5555";
|
||||
};
|
||||
};
|
||||
services.home-assistant = {
|
||||
#panel_iframe:
|
||||
#configurator:
|
||||
# title: Configurator
|
||||
# icon: mdi:wrench
|
||||
# url: http://hassio.local:3218
|
||||
# sensor:
|
||||
# - platform: random
|
||||
enable = true;
|
||||
config = {
|
||||
homeassistant = {
|
||||
name = "Bureautomation";
|
||||
time_zone = "Europe/Berlin";
|
||||
};
|
||||
panel_iframe = {
|
||||
euer_blog = {
|
||||
title = "Euer Blog";
|
||||
icon = "mdi:wrench";
|
||||
url = "https://euer.krebsco.de";
|
||||
};
|
||||
};
|
||||
media_player = [
|
||||
{ platform = "kodi";
|
||||
host = firetv;
|
||||
}
|
||||
{ platform = "firetv";
|
||||
# assumes python-firetv running
|
||||
}
|
||||
];
|
||||
sensor = [
|
||||
{
|
||||
platform = "luftdaten";
|
||||
name = "Shack 1";
|
||||
sensorid = "50";
|
||||
monitored_conditions = [ "P1" "P2" ];
|
||||
}
|
||||
{
|
||||
platform = "luftdaten";
|
||||
name = "Shack 2";
|
||||
sensorid = "658";
|
||||
monitored_conditions = [ "P1" "P2" ];
|
||||
}
|
||||
{
|
||||
platform = "luftdaten";
|
||||
name = "Ditzingen";
|
||||
sensorid = "5341";
|
||||
monitored_conditions = [ "P1" "P2" ];
|
||||
}
|
||||
{ platform = "random"; }
|
||||
];
|
||||
frontend = { };
|
||||
http = { };
|
||||
feedreader.urls = [ "https://nixos.org/blogs.xml" ];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -2,8 +2,8 @@
|
|||
with import <stockholm/lib>;
|
||||
let
|
||||
shack-announce = pkgs.callPackage (builtins.fetchTarball {
|
||||
url = "https://github.com/makefu/events-publisher/archive/15fbe5cc6ac9617a08a042870795f9e879d9952a.tar.gz";
|
||||
sha256 = "1bqp1qdnwx5q1w468zbm57hmpjz3x8if3j29qrqcia0vzks1s37a";
|
||||
url = "https://github.com/makefu/events-publisher/archive/5e7b083c63f25182a02c1fddb3d32cb9534fbc50.tar.gz";
|
||||
sha256 = "1zzlhyj8fr6y3a3b6qlyrm474xxxs1ydqjpkd2jva3g1lnzlmvkp";
|
||||
}) {} ;
|
||||
home = "/var/lib/shackannounce";
|
||||
user = "shackannounce";
|
||||
|
|
|
@ -24,11 +24,10 @@ let
|
|||
];
|
||||
};
|
||||
# TODO: automate updating of this ref + cherry-picks
|
||||
ref = "14946ec63a1"; # nixos-18.03 @ 2018-05-31
|
||||
ref = "8f991294288"; # nixos-18.03 @ 2018-08-06
|
||||
# + do_sqlite3 ruby: 55a952be5b5
|
||||
# + exfat-nofuse bump: ee6a5296a35
|
||||
# + uhub/sqlite: 5dd7610401747
|
||||
# + forecastio: f27584df02337
|
||||
|
||||
in
|
||||
evalSource (toString _file) [
|
||||
|
|
Loading…
Reference in a new issue