Merge remote-tracking branch 'gum/master'

This commit is contained in:
lassulus 2019-01-28 22:51:27 +01:00
commit b74a981dcf
9 changed files with 142 additions and 8 deletions

View File

@ -1,5 +1,8 @@
{lib,pkgs, ... }: {lib,pkgs, ... }:
let let
pkg = lib.overrideDerivation pkgs.ympd (old: {
patches = [ ./ympd-top-next.patch ];
});
mpdHost = "mpd.shack"; mpdHost = "mpd.shack";
ympd = name: port: let ympd = name: port: let
webPort = 10000 + port; webPort = 10000 + port;
@ -7,7 +10,7 @@ let
systemd.services."ympd-${name}" = { systemd.services."ympd-${name}" = {
description = "mpd for ${name}"; description = "mpd for ${name}";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${pkgs.ympd}/bin/ympd --host ${mpdHost} --port ${toString port} --webport ${toString webPort} --user nobody"; serviceConfig.ExecStart = "${pkg}/bin/ympd --host ${mpdHost} --port ${toString port} --webport ${toString webPort} --user nobody";
}; };
services.nginx.virtualHosts."mobile.${name}.mpd.shack" = { services.nginx.virtualHosts."mobile.${name}.mpd.shack" = {
serverAliases = [ serverAliases = [

View File

@ -0,0 +1,16 @@
diff --git a/htdocs/index.html b/htdocs/index.html
index ed77279..eaf92b6 100644
--- a/htdocs/index.html
+++ b/htdocs/index.html
@@ -76,6 +76,11 @@
<div class="col-md-10 col-xs-12">
<div class="notifications top-right"></div>
+
+ <ul class="pager">
+ <li id="prev" class="page-btn hide"><a href="">Previous</a></li>
+ <li id="next" class="page-btn"><a href="">Next</a></li>
+ </ul>
<div class="panel panel-primary">
<!-- Default panel contents -->

View File

@ -14,10 +14,12 @@
<stockholm/makefu/2configs/main-laptop.nix> <stockholm/makefu/2configs/main-laptop.nix>
<stockholm/makefu/2configs/extra-fonts.nix> <stockholm/makefu/2configs/extra-fonts.nix>
<stockholm/makefu/2configs/tools/all.nix> <stockholm/makefu/2configs/tools/all.nix>
<stockholm/makefu/2configs/dict.nix>
<stockholm/makefu/2configs/backup/state.nix> <stockholm/makefu/2configs/backup/state.nix>
# <stockholm/makefu/2configs/dnscrypt/client.nix> # <stockholm/makefu/2configs/dnscrypt/client.nix>
<stockholm/makefu/2configs/avahi.nix> <stockholm/makefu/2configs/avahi.nix>
<stockholm/makefu/2configs/support-nixos.nix>
# Debugging # Debugging
# <stockholm/makefu/2configs/disable_v6.nix> # <stockholm/makefu/2configs/disable_v6.nix>
@ -64,7 +66,7 @@
<stockholm/makefu/2configs/tor.nix> <stockholm/makefu/2configs/tor.nix>
<stockholm/makefu/2configs/vpn/vpngate.nix> <stockholm/makefu/2configs/vpn/vpngate.nix>
# <stockholm/makefu/2configs/buildbot-standalone.nix> # <stockholm/makefu/2configs/buildbot-standalone.nix>
# <stockholm/makefu/2configs/remote-build/master.nix> <stockholm/makefu/2configs/remote-build/aarch64-community.nix>
# Hardware # Hardware
<stockholm/makefu/2configs/hw/tp-x230.nix> <stockholm/makefu/2configs/hw/tp-x230.nix>

View File

@ -5,7 +5,7 @@ let
port = 3001; port = 3001;
runit = pkgs.writeDash "runit" '' runit = pkgs.writeDash "runit" ''
set -xeuf set -xeuf
PATH=${pkgs.curl}/bin:${pkgs.coreutils}/bin PATH=${pkgs.mosquitto}/bin:${pkgs.coreutils}/bin
name=''${1?must provide name as first arg} name=''${1?must provide name as first arg}
state=''${2?must provide state as second arg} state=''${2?must provide state as second arg}
# val=''${3?must provide val as third arg} # val=''${3?must provide val as third arg}
@ -14,9 +14,10 @@ let
test $state = alerting || exit 0 test $state = alerting || exit 0
echo $name - $state echo $name - $state
curl 'http://bauarbeiterlampe/ay?o=1' topic=plug
mosquitto_pub -t /bam/$topic/cmnd/POWER -m ON
sleep 5 sleep 5
curl 'http://bauarbeiterlampe/ay?o=1' mosquitto_pub -t /bam/$topic/cmnd/POWER -m OFF
''; '';
in { in {
services.logstash = { services.logstash = {

View File

@ -1,5 +1,40 @@
{ pkgs, lib, ... }: { pkgs, lib, ... }:
let let
tasmota_rgb = name: topic:
# LED WS2812b
# effect_state_topic: "stat/led/Scheme"
# effect_command_topic: "cmnd/led/Scheme"
# effect_value_template: "{{ value_json.Scheme }}"
{ platform = "mqtt";
inherit name;
retain = false;
qos = 1;
optimistic = false;
# state
# TODO: currently broken, will not use the custom state topic
state_topic = "/bam/${topic}/stat/POWER";
command_topic = "/bam/${topic}/cmnd/POWER";
availability_topic = "/bam/${topic}/tele/LWT";
payload_on= "ON";
payload_off= "OFF";
payload_available= "Online";
payload_not_available= "Offline";
# brightness
brightness_state_topic = "/bam/${topic}/stat/Dimmer";
brightness_command_topic = "/bam/${topic}/cmnd/Dimmer";
brightness_value_template = "{{ value_json.Dimmer }}";
brightness_scale = 100;
# color
rgb_state_topic = "/bam/${topic}/stat/Color";
rgb_command_topic = "/bam/${topic}/cmnd/Color2";
rgb_command_mode = "hex";
rgb_command_template = "{{ '%02x%02x%02x' | format(red, green, blue)}}";
# effects
effect_state_topic = "/bam/${topic}/stat/Scheme";
effect_command_topic = "/bam/${topic}/cmnd/Scheme";
effect_value_template = "{{ value_json.Scheme }}";
effect_list = [ 0 1 2 3 4 5 6 7 8 9 10 11 12 ];
};
tasmota_plug = name: topic: tasmota_plug = name: topic:
{ platform = "mqtt"; { platform = "mqtt";
inherit name; inherit name;
@ -74,6 +109,10 @@ in {
(tasmota_plug "Blitzdings" "plug2") (tasmota_plug "Blitzdings" "plug2")
(tasmota_plug "Fernseher" "plug3") (tasmota_plug "Fernseher" "plug3")
(tasmota_plug "Feuer" "plug4") (tasmota_plug "Feuer" "plug4")
(tasmota_plug "Nachtlicht" "plug5")
];
light = [
(tasmota_rgb "Status Felix" "status1")
]; ];
binary_sensor = [ binary_sensor = [
{ platform = "mqtt"; { platform = "mqtt";
@ -169,12 +208,16 @@ in {
}; };
automation = [ automation = [
"automation.turn_off_fernseher_10_minutes_after_last_movement" "automation.turn_off_fernseher_10_minutes_after_last_movement"
"automation.turn_off_nachtlicht_on_sunrise"
"automation.turn_on_nachtlicht_on_motion_and_dusk"
]; ];
switches = [ switches = [
"switch.bauarbeiterlampe" "switch.bauarbeiterlampe"
"switch.blitzdings" "switch.blitzdings"
"switch.fernseher" "switch.fernseher"
"switch.feuer" "switch.feuer"
"switch.nachtlicht"
"light.status_felix"
]; ];
camera = [ camera = [
"camera.Baumarkt" "camera.Baumarkt"
@ -207,7 +250,51 @@ in {
}; };
action = { action = {
service = "homeassistant.turn_on"; service = "homeassistant.turn_on";
entity_id = [ "switch.fernseher" "switch.feuer" ]; entity_id = [
"switch.fernseher"
"switch.feuer"
"light.status_felix"
];
};
}
{
alias = "Turn off Nachtlicht on sunrise";
trigger =
{
platform = "sun";
event = "sunrise";
};
action =
{
service = "homeassistant.turn_off";
entity_id = [ "switch.nachtlicht" ];
};
}
{
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 = [ "switch.nachtlicht" ];
}; };
} }
{ alias = "Turn off Fernseher 10 minutes after last movement"; { alias = "Turn off Fernseher 10 minutes after last movement";
@ -226,7 +313,11 @@ in {
]; ];
action = { action = {
service = "homeassistant.turn_off"; service = "homeassistant.turn_off";
entity_id = [ "switch.fernseher" "switch.feuer" ]; entity_id = [
"switch.fernseher"
"switch.feuer"
"light.status_felix"
];
}; };
condition = condition =
{ condition = "and"; { condition = "and";

5
makefu/2configs/dict.nix Normal file
View File

@ -0,0 +1,5 @@
{ pkgs, ... }:
{
services.dictd.enable = true;
services.dictd.DBs = with pkgs.dictdDBs; [ wiktionary wordnet deu2eng eng2deu ];
}

View File

@ -0,0 +1,15 @@
{
nix = {
distributedBuilds = true;
buildMachines = [
{
hostName = "aarch64.nixos.community";
maxJobs = 64;
sshKey = toString <secrets/nixos-community>;
sshUser = "makefu";
system = "aarch64-linux";
supportedFeatures = [ "big-parallel" ];
}
];
};
}

View File

@ -4,6 +4,7 @@
users.users.makefu.packages = with pkgs;[ users.users.makefu.packages = with pkgs;[
python3 python3
python3Packages.pyserial python3Packages.pyserial
picocom
python3Packages.virtualenv python3Packages.virtualenv
# embedded # embedded
gi gi