ma ham/flycounter: init
This commit is contained in:
parent
1ed4ded92f
commit
f4e98bc021
@ -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 =
|
||||||
{ }
|
{ }
|
||||||
|
67
makefu/2configs/ham/multi/fliegen-couter.nix
Normal file
67
makefu/2configs/ham/multi/fliegen-couter.nix
Normal 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";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user