ma ham: use home-assistant from unstable, enable androidtv support
This commit is contained in:
parent
843ee70248
commit
2563c59e73
38
makefu/2configs/ham/androidtv/adbshell.nix
Normal file
38
makefu/2configs/ham/androidtv/adbshell.nix
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchPypi
|
||||||
|
, cryptography
|
||||||
|
, pyasn1
|
||||||
|
, rsa
|
||||||
|
, pycryptodome
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "adb_shell";
|
||||||
|
version = "0.0.8";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "01f9jinhfyjldg9793gz2i7gcd9xyx0a62r7a5ijssklcnn2rwnm";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
cryptography
|
||||||
|
pyasn1
|
||||||
|
rsa
|
||||||
|
];
|
||||||
|
|
||||||
|
# tests are not part of pypi package
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
checkInputs = [
|
||||||
|
pycryptodome
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "A Python implementation of ADB with shell and FileSync functionality";
|
||||||
|
homepage = https://github.com/JeffLIrion/adb_shell/;
|
||||||
|
license = licenses.mit;
|
||||||
|
# maintainers = [ maintainers. ];
|
||||||
|
};
|
||||||
|
}
|
30
makefu/2configs/ham/androidtv/default.nix
Normal file
30
makefu/2configs/ham/androidtv/default.nix
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, callPackage
|
||||||
|
, fetchPypi
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "androidtv";
|
||||||
|
version = "0.0.34";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "13078i2a9hglpv4ldycph5n5485np21vs6z2qn830hybmx8kfxsw";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
(callPackage ./adbshell.nix {})
|
||||||
|
(callPackage ./purepythonadb.nix {})
|
||||||
|
];
|
||||||
|
|
||||||
|
# tests are not packaged in pypi release
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Communicate with an Android TV or Fire TV device via ADB over a network";
|
||||||
|
homepage = https://github.com/JeffLIrion/python-androidtv/;
|
||||||
|
license = licenses.mit;
|
||||||
|
# maintainers = [ maintainers. ];
|
||||||
|
};
|
||||||
|
}
|
21
makefu/2configs/ham/androidtv/purepythonadb.nix
Normal file
21
makefu/2configs/ham/androidtv/purepythonadb.nix
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, fetchPypi
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "pure-python-adb";
|
||||||
|
version = "0.2.3.dev0";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "88e5a4578435197799aa368fb1a5d87fe43e02a888cb7e85c2ad66173b383c89";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Pure python implementation of the adb client";
|
||||||
|
homepage = https://github.com/Swind/pure-python-adb;
|
||||||
|
license = licenses.mit;
|
||||||
|
# maintainers = [ maintainers. ];
|
||||||
|
};
|
||||||
|
}
|
26
makefu/2configs/ham/automation/firetv_restart.nix
Normal file
26
makefu/2configs/ham/automation/firetv_restart.nix
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
alias = "Nightly reboot of firetv";
|
||||||
|
trigger = {
|
||||||
|
platform = "time";
|
||||||
|
at = "03:00:00";
|
||||||
|
};
|
||||||
|
action = [
|
||||||
|
{
|
||||||
|
service = "androidtv.adb_command";
|
||||||
|
data = {
|
||||||
|
entity_id = "media_player.firetv_stick";
|
||||||
|
command = "reboot";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{ delay.minutes = 2; }
|
||||||
|
{
|
||||||
|
service = "media_player.select_source";
|
||||||
|
data = {
|
||||||
|
entity_id = "media_player.firetv_stick";
|
||||||
|
source = "com.amazon.bueller.music";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
]
|
@ -4,13 +4,14 @@
|
|||||||
## wake-on-lan server
|
## wake-on-lan server
|
||||||
##
|
##
|
||||||
let
|
let
|
||||||
|
upkgs = (import <nixpkgs-unstable> {}).pkgs;
|
||||||
hlib = (import ./lib);
|
hlib = (import ./lib);
|
||||||
prefix = hlib.prefix;
|
prefix = hlib.prefix;
|
||||||
tasmota = hlib.tasmota;
|
tasmota = hlib.tasmota;
|
||||||
firetv_stick = "192.168.1.24";
|
firetv_stick = "192.168.1.24";
|
||||||
hassdir = "/var/lib/hass";
|
hassdir = "/var/lib/hass";
|
||||||
zigbee = import ./multi/zigbee2mqtt.nix;
|
zigbee = import ./multi/zigbee2mqtt.nix;
|
||||||
flurlicht = import ./multi/flurlicht.nix;
|
#flurlicht = import ./multi/flurlicht.nix;
|
||||||
kurzzeitwecker = import ./multi/kurzzeitwecker.nix;
|
kurzzeitwecker = import ./multi/kurzzeitwecker.nix;
|
||||||
# switch
|
# switch
|
||||||
# automation
|
# automation
|
||||||
@ -24,6 +25,13 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
services.home-assistant = {
|
services.home-assistant = {
|
||||||
|
package = (upkgs.home-assistant.overrideAttrs (old: {
|
||||||
|
})).override {
|
||||||
|
extraPackages = ps: with ps; [
|
||||||
|
python-forecastio jsonrpc-async jsonrpc-websocket mpd2 pkgs.picotts
|
||||||
|
(ps.callPackage ./androidtv {})
|
||||||
|
];
|
||||||
|
};
|
||||||
config = {
|
config = {
|
||||||
input_select = zigbee.input_select; # dict
|
input_select = zigbee.input_select; # dict
|
||||||
timer = zigbee.timer // kurzzeitwecker.timer; # dict
|
timer = zigbee.timer // kurzzeitwecker.timer; # dict
|
||||||
@ -71,7 +79,7 @@ in {
|
|||||||
sun.elevation = 247;
|
sun.elevation = 247;
|
||||||
recorder = {};
|
recorder = {};
|
||||||
media_player = [
|
media_player = [
|
||||||
{ platform = "kodi";
|
{ platform = "FireTV Stick kodi";
|
||||||
host = firetv_stick;
|
host = firetv_stick;
|
||||||
}
|
}
|
||||||
{ platform = "androidtv";
|
{ platform = "androidtv";
|
||||||
@ -79,10 +87,13 @@ in {
|
|||||||
device_class = "firetv";
|
device_class = "firetv";
|
||||||
# adb_server_ip = firetv_stick;
|
# adb_server_ip = firetv_stick;
|
||||||
host = firetv_stick;
|
host = firetv_stick;
|
||||||
|
port = 5555;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
mqtt = {
|
mqtt = {
|
||||||
broker = "localhost";
|
broker = "localhost";
|
||||||
|
discovery = true; #enable esphome discovery
|
||||||
|
discovery_prefix = "homeassistant";
|
||||||
port = 1883;
|
port = 1883;
|
||||||
client_id = "home-assistant";
|
client_id = "home-assistant";
|
||||||
username = "hass";
|
username = "hass";
|
||||||
@ -107,8 +118,8 @@ in {
|
|||||||
sensor_id = 679;
|
sensor_id = 679;
|
||||||
sensors.monitored_conditions = [ "P1" "P2" ];
|
sensors.monitored_conditions = [ "P1" "P2" ];
|
||||||
};
|
};
|
||||||
binary_sensor =
|
#binary_sensor =
|
||||||
flurlicht.binary_sensor;
|
# flurlicht.binary_sensor;
|
||||||
sensor = [
|
sensor = [
|
||||||
{ platform = "speedtest";
|
{ platform = "speedtest";
|
||||||
monitored_conditions = [ "ping" "download" "upload" ];
|
monitored_conditions = [ "ping" "download" "upload" ];
|
||||||
@ -118,53 +129,13 @@ in {
|
|||||||
++ ((import ./sensor/outside.nix) {inherit lib;})
|
++ ((import ./sensor/outside.nix) {inherit lib;})
|
||||||
++ zigbee.sensor ;
|
++ zigbee.sensor ;
|
||||||
frontend = { };
|
frontend = { };
|
||||||
light = flurlicht.light;
|
# light = flurlicht.light;
|
||||||
group =
|
|
||||||
{ default_view =
|
|
||||||
{ view = "yes";
|
|
||||||
entities = [
|
|
||||||
"group.flur"
|
|
||||||
"group.schlafzimmer"
|
|
||||||
"group.draussen"
|
|
||||||
"group.wohnzimmer"
|
|
||||||
"group.arbeitszimmer"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
flur = [
|
|
||||||
"light.flurlicht"
|
|
||||||
"binary_sensor.flur_bewegung"
|
|
||||||
"automation.dunkel_bei_sonnenuntergang"
|
|
||||||
"automation.hell_bei_sonnenaufgang"
|
|
||||||
];
|
|
||||||
wohnzimmer = [
|
|
||||||
"media_player.kodi"
|
|
||||||
"media_player.firetv_stick"
|
|
||||||
];
|
|
||||||
draussen = [
|
|
||||||
"sensor.dark_sky_temperature"
|
|
||||||
"sensor.dark_sky_hourly_summary"
|
|
||||||
"sensor.dark_sky_humidity"
|
|
||||||
"sensor.dark_sky_pressure"
|
|
||||||
"sensor.muehlhausen_pm10"
|
|
||||||
"sensor.muehlhausen_pm25"
|
|
||||||
];
|
|
||||||
schlafzimmer = [
|
|
||||||
"sensor.schlafzimmer_temperatur"
|
|
||||||
"sensor.schlafzimmer_luftdruck"
|
|
||||||
"sensor.schlafzimmer_luftfeuchtigkeit"
|
|
||||||
"switch.lichterkette_schlafzimmer"
|
|
||||||
];
|
|
||||||
arbeitszimmer = [
|
|
||||||
"switch.strom_staubsauger"
|
|
||||||
"sensor.arbeitszimmer_temperatur"
|
|
||||||
"sensor.arbeitszimmer_luftfeuchtigkeit"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
http = { };
|
http = { };
|
||||||
switch = [];
|
switch = [];
|
||||||
automation =
|
automation =
|
||||||
flurlicht.automation
|
(import ./automation/firetv_restart.nix)
|
||||||
++ kurzzeitwecker.automation
|
kurzzeitwecker.automation
|
||||||
|
#++ flurlicht.automation
|
||||||
++ zigbee.automation;
|
++ zigbee.automation;
|
||||||
script = kurzzeitwecker.script; # dict
|
script = kurzzeitwecker.script; # dict
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user