ma ham/flycounter: init

This commit is contained in:
makefu 2020-07-01 09:35:01 +02:00
parent 1ed4ded92f
commit f4e98bc021
No known key found for this signature in database
GPG Key ID: 36F7711F3FC0F225
2 changed files with 75 additions and 1 deletions

View File

@ -15,6 +15,7 @@ let
kurzzeitwecker = import ./multi/kurzzeitwecker.nix; kurzzeitwecker = import ./multi/kurzzeitwecker.nix;
firetv_restart = import ./multi/firetv_restart.nix; firetv_restart = import ./multi/firetv_restart.nix;
the_playlist = import ./multi/the_playlist.nix; the_playlist = import ./multi/the_playlist.nix;
fliegen-counter = import ./multi/fliegen-couter.nix;
# switch # switch
# automation # automation
# binary_sensor # binary_sensor
@ -28,10 +29,13 @@ in {
services.home-assistant = { services.home-assistant = {
package = (upkgs.home-assistant.overrideAttrs (old: { package = (upkgs.home-assistant.overrideAttrs (old: {
doCheck = false;
checkPhase = ":";
installCheckPhase = ":";
})).override { })).override {
extraPackages = ps: with ps; [ extraPackages = ps: with ps; [
python-forecastio jsonrpc-async jsonrpc-websocket mpd2 pkgs.picotts python-forecastio jsonrpc-async jsonrpc-websocket mpd2 pkgs.picotts
(ps.callPackage ./androidtv {}) (callPackage ./androidtv {})
]; ];
}; };
config = { config = {
@ -48,6 +52,7 @@ in {
conversation = {}; conversation = {};
history = {}; history = {};
logbook = {}; logbook = {};
counter = fliegen-counter.counter;
logger = { logger = {
default = "info"; default = "info";
}; };
@ -138,6 +143,7 @@ in {
++ the_playlist.sensor ++ the_playlist.sensor
++ zigbee.sensor ; ++ zigbee.sensor ;
frontend = { }; frontend = { };
calendar = [ (import ./calendar/nextcloud.nix) ];
# light = flurlicht.light; # light = flurlicht.light;
http = { }; http = { };
switch = []; switch = [];
@ -146,6 +152,7 @@ in {
++ kurzzeitwecker.automation ++ kurzzeitwecker.automation
#++ flurlicht.automation #++ flurlicht.automation
++ the_playlist.automation ++ the_playlist.automation
++ fliegen-counter.automation
++ zigbee.automation; ++ zigbee.automation;
script = script =
{ } { }

View File

@ -0,0 +1,67 @@
# uses:
# sensor.btn1_click
# sensor.btn2_click
let
hlib = import ../lib;
fly_swat = for: btn: method: incr: {
alias = "Increment ${method} for ${for}";
trigger = {
platform = "state";
entity_id = "sensor.${btn}_click";
to = method;
};
action = builtins.genList (cnt: {
service = "counter.increment";
data.entity_id = "counter.${for}_fliegen";
}) incr;
};
in {
counter = {
felix_fliegen = {};
misa_fliegen = {};
};
automation = [
(fly_swat "misa" "btn1" "single" 1)
(fly_swat "misa" "btn1" "double" 2)
(fly_swat "misa" "btn1" "triple" 3)
(fly_swat "felix" "btn2" "single" 1)
(fly_swat "felix" "btn2" "double" 2)
(fly_swat "felix" "btn2" "triple" 3)
{
alias = "Send Fly Counter Update";
trigger = [
{
platform = "state";
entity_id = "counter.felix_fliegen";
}
{
platform = "state";
entity_id = "counter.misa_fliegen";
#above = -1;
}
];
action = {
service = "mqtt.publish";
data_template = { # gauge-style
payload = "{{ trigger.to_state.state }}";
topic = "${hlib.prefix}/flycounter/{{ trigger.to_state.object_id }}";
};
};
}
{
alias = "Reset Fly counters on midnight";
trigger = {
platform = "time";
at = "01:00:00";
};
action = [
{ service = "counter.reset";
data.entity_id = "counter.misa_fliegen";
}
{ service = "counter.reset";
data.entity_id = "counter.felix_fliegen";
}
];
}
];
}