pepe: home-assistant cleanup
This commit is contained in:
parent
2dc5647f87
commit
000ee7974b
6 changed files with 68 additions and 178 deletions
|
@ -4,13 +4,13 @@ in {
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
#./home-assistant/chaospott.nix
|
#./home-assistant/chaospott.nix
|
||||||
#./home-assistant/holiday.nix
|
|
||||||
#./home-assistant/mpd.nix
|
#./home-assistant/mpd.nix
|
||||||
./home-assistant/sonoff.nix
|
|
||||||
./home-assistant/mqtt.nix
|
|
||||||
#./home-assistant/dayOfWeek.nix
|
|
||||||
#./home-assistant/timer.nix
|
#./home-assistant/timer.nix
|
||||||
./home-assistant/kodi.nix
|
./home-assistant/kodi.nix
|
||||||
|
./home-assistant/mqtt.nix
|
||||||
|
./home-assistant/sonoff.nix
|
||||||
|
./home-assistant/weather.nix
|
||||||
|
./home-assistant/workday.nix
|
||||||
./home-assistant/zigbee2mqtt.nix
|
./home-assistant/zigbee2mqtt.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -82,6 +82,7 @@ in {
|
||||||
# entity_id = "group.kitchen";
|
# entity_id = "group.kitchen";
|
||||||
# };
|
# };
|
||||||
#}
|
#}
|
||||||
|
|
||||||
];
|
];
|
||||||
|
|
||||||
group = {
|
group = {
|
||||||
|
@ -116,7 +117,6 @@ in {
|
||||||
name = "Not Used";
|
name = "Not Used";
|
||||||
view = false;
|
view = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
view_rooms = {
|
view_rooms = {
|
||||||
name = "Räume";
|
name = "Räume";
|
||||||
view = true;
|
view = true;
|
||||||
|
@ -128,7 +128,6 @@ in {
|
||||||
"group.tv"
|
"group.tv"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
view_overview = {
|
view_overview = {
|
||||||
name = "Übersicht";
|
name = "Übersicht";
|
||||||
view = true;
|
view = true;
|
||||||
|
@ -143,33 +142,6 @@ in {
|
||||||
|
|
||||||
script.turn_all_on.sequence = [ ];
|
script.turn_all_on.sequence = [ ];
|
||||||
|
|
||||||
sensor = [
|
|
||||||
# Weather prediction
|
|
||||||
{
|
|
||||||
platform = "zamg";
|
|
||||||
name = "Weather";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
# todo: add holidays package to home-assiatnt
|
|
||||||
binary_sensor = [
|
|
||||||
{
|
|
||||||
name = "before_workday";
|
|
||||||
platform = "workday";
|
|
||||||
country = "DE";
|
|
||||||
province = "NW";
|
|
||||||
workdays = [ "mon" "tue" "wed" "thu" "fri" ];
|
|
||||||
days_offset = 1;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "workday";
|
|
||||||
platform = "workday";
|
|
||||||
country = "DE";
|
|
||||||
province = "NW";
|
|
||||||
workdays = [ "mon" "tue" "wed" "thu" "fri" ];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.home-assistant = {
|
services.home-assistant = {
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
let
|
|
||||||
|
|
||||||
folderPath = config.services.home-assistant.configDir;
|
|
||||||
filePath = "${folderPath}/dayOfWeek.json";
|
|
||||||
|
|
||||||
in {
|
|
||||||
services.homeAssistantConfig = {
|
|
||||||
|
|
||||||
sensor = [{
|
|
||||||
platform = "file";
|
|
||||||
name = "day_of_week";
|
|
||||||
file_path = filePath;
|
|
||||||
value_template = "{{ value_json.dayOfWeek }}";
|
|
||||||
}];
|
|
||||||
|
|
||||||
homeassistant = {
|
|
||||||
whitelist_external_dirs = [ folderPath ];
|
|
||||||
customize."sensor.day_of_week" = {
|
|
||||||
icon = "mdi:calendar-today";
|
|
||||||
friendly_name = "Wochen Tag";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
group = { overview.entities = [ "sensor.day_of_week" ]; };
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.dayOfWeek = {
|
|
||||||
enable = true;
|
|
||||||
before = [ "home-assistant.service" ];
|
|
||||||
wantedBy = [ "home-assistant.service" ];
|
|
||||||
serviceConfig = {
|
|
||||||
User = "hass";
|
|
||||||
Type = "oneshot";
|
|
||||||
};
|
|
||||||
description = "set day of wek for homeassistant";
|
|
||||||
script = # sh
|
|
||||||
''
|
|
||||||
date +'{"dayOfWeek":"%A"}' >> ${filePath}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
systemd.timers.dayOfWeek = {
|
|
||||||
enable = true;
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
timerConfig = {
|
|
||||||
OnCalendar = "00:01:00";
|
|
||||||
Persistent = "true";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,92 +0,0 @@
|
||||||
{ config, pkgs, ... }:
|
|
||||||
let
|
|
||||||
|
|
||||||
state = "NW"; # NRW
|
|
||||||
# state = "BE"; # Berlin
|
|
||||||
|
|
||||||
name = "holiday";
|
|
||||||
folderPath = config.services.home-assistant.configDir;
|
|
||||||
filePath = "${folderPath}/${name}.json";
|
|
||||||
|
|
||||||
in {
|
|
||||||
services.homeAssistantConfig = {
|
|
||||||
|
|
||||||
# todo : use the python tool
|
|
||||||
sensor = [
|
|
||||||
{
|
|
||||||
platform = "file";
|
|
||||||
name = "${name}_date";
|
|
||||||
file_path = filePath;
|
|
||||||
value_template = "{{ value_json.date }}";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
platform = "file";
|
|
||||||
name = "${name}_name";
|
|
||||||
file_path = filePath;
|
|
||||||
value_template = "{{ value_json.name }}";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
homeassistant = {
|
|
||||||
whitelist_external_dirs = [ folderPath ];
|
|
||||||
customize = {
|
|
||||||
"sensor.${name}_date" = {
|
|
||||||
icon = "mdi:calendar";
|
|
||||||
friendly_name = "Nächster Feiertag";
|
|
||||||
};
|
|
||||||
"sensor.${name}_name" = {
|
|
||||||
icon = "mdi:calendar";
|
|
||||||
friendly_name = "Nächster Feiertag";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
group = {
|
|
||||||
|
|
||||||
holidays = {
|
|
||||||
name = "Feiertage";
|
|
||||||
view = false;
|
|
||||||
control = "hidden";
|
|
||||||
entities = [ "sensor.${name}_date" "sensor.${name}_name" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
view_overview.entities = [ "group.holidays" ];
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services."${name}" = {
|
|
||||||
enable = true;
|
|
||||||
before = [ "home-assistant.service" ];
|
|
||||||
wantedBy = [ "home-assistant.service" ];
|
|
||||||
serviceConfig = {
|
|
||||||
User = "hass";
|
|
||||||
Type = "oneshot";
|
|
||||||
};
|
|
||||||
description = "set ${name} for homeassistant";
|
|
||||||
script = # sh
|
|
||||||
''
|
|
||||||
${pkgs.curl}/bin/curl \
|
|
||||||
-Ls "https://feiertage-api.de/api/?jahr=$( date +%Y )&nur_land=${state}" \
|
|
||||||
| ${pkgs.jq}/bin/jq --compact-output '
|
|
||||||
map_values( .datum ) |
|
|
||||||
to_entries |
|
|
||||||
map( { date: .value, name : .key } ) |
|
|
||||||
sort_by( .date ) |
|
|
||||||
map(select ( .date >= "'`date +%Y-%m-%d`'" )) |
|
|
||||||
.[0]' \
|
|
||||||
>> ${filePath}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.timers."${name}" = {
|
|
||||||
enable = true;
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
timerConfig = {
|
|
||||||
OnCalendar = "daily";
|
|
||||||
Persistent = "true";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
16
configs/pepe/home-assistant/weather.nix
Normal file
16
configs/pepe/home-assistant/weather.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ config, ... }: {
|
||||||
|
services.homeAssistantConfig = {
|
||||||
|
|
||||||
|
sensor = [
|
||||||
|
# Weather prediction
|
||||||
|
{
|
||||||
|
platform = "zamg";
|
||||||
|
name = "weather";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
group = { overview.entities = [ "sensor.weather" ]; };
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
45
configs/pepe/home-assistant/workday.nix
Normal file
45
configs/pepe/home-assistant/workday.nix
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
{ config, ... }: {
|
||||||
|
services.homeAssistantConfig = {
|
||||||
|
|
||||||
|
# todo: add holidays package to home-assiatnt
|
||||||
|
binary_sensor = [
|
||||||
|
{
|
||||||
|
name = "before_workday";
|
||||||
|
platform = "workday";
|
||||||
|
country = "DE";
|
||||||
|
province = "NW";
|
||||||
|
workdays = [ "mon" "tue" "wed" "thu" "fri" ];
|
||||||
|
days_offset = 1;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
name = "workday";
|
||||||
|
platform = "workday";
|
||||||
|
country = "DE";
|
||||||
|
province = "NW";
|
||||||
|
workdays = [ "mon" "tue" "wed" "thu" "fri" ];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
homeassistant.customize = {
|
||||||
|
"binary_sensor.workday" = {
|
||||||
|
icon = "mdi:calendar";
|
||||||
|
friendly_name = "Today?";
|
||||||
|
};
|
||||||
|
"binary_sensor.before_workday" = {
|
||||||
|
icon = "mdi:calendar";
|
||||||
|
friendly_name = "Tomorrow?";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
group = {
|
||||||
|
is_workday = {
|
||||||
|
name = "Workday";
|
||||||
|
control = "hidden";
|
||||||
|
entities = [ "binary_sensor.before_workday" "binary_sensor.workday" ];
|
||||||
|
};
|
||||||
|
view_overview.entities = [ "group.is_workday" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -110,7 +110,8 @@ in {
|
||||||
};
|
};
|
||||||
sputnik = {
|
sputnik = {
|
||||||
realAddress = [
|
realAddress = [
|
||||||
# "195.201.134.247:443"
|
"195.201.134.247"
|
||||||
|
"195.201.134.247:443"
|
||||||
"static.247.134.201.195.clients.your-server.de"
|
"static.247.134.201.195.clients.your-server.de"
|
||||||
"static.247.134.201.195.clients.your-server.de:443"
|
"static.247.134.201.195.clients.your-server.de:443"
|
||||||
];
|
];
|
||||||
|
|
Loading…
Reference in a new issue