summaryrefslogtreecommitdiffstats
path: root/lass/2configs/hass/default.nix
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2020-04-22 00:30:37 +0200
committermakefu <github@syntax-fehler.de>2020-04-22 00:30:37 +0200
commitcb7ea9d84af46b606e5daa1252c60eb210d7e576 (patch)
tree5166a62dc73c45b3cd3b996078913588d1844266 /lass/2configs/hass/default.nix
parent0b371833e9ef68fd891fac65a657d8e38b5b3fad (diff)
parentc49867b40327f83a18b956404875637ca379c1ba (diff)
Merge remote-tracking branch 'lass/20.03' into 20.03
Diffstat (limited to 'lass/2configs/hass/default.nix')
-rw-r--r--lass/2configs/hass/default.nix86
1 files changed, 86 insertions, 0 deletions
diff --git a/lass/2configs/hass/default.nix b/lass/2configs/hass/default.nix
new file mode 100644
index 000000000..ef9361102
--- /dev/null
+++ b/lass/2configs/hass/default.nix
@@ -0,0 +1,86 @@
+{ config, lib, pkgs, ... }:
+{
+ imports = [
+ ./zigbee.nix
+ ./rooms/bett.nix
+ ];
+
+ krebs.iptables.tables.filter.INPUT.rules = [
+ { predicate = "-i int0 -p tcp --dport 1883"; target = "ACCEPT"; } # mosquitto
+ { predicate = "-i docker0 -p tcp --dport 1883"; target = "ACCEPT"; } # mosquitto
+ { predicate = "-i int0 -p tcp --dport 8123"; target = "ACCEPT"; } # hass
+ { predicate = "-i retiolum -p tcp --dport 8123"; target = "ACCEPT"; } # hass
+ ];
+
+ services.home-assistant = {
+ enable = true;
+ package = pkgs.home-assistant.override {
+ # extraComponents = [ "hue" ];
+ };
+ configWritable = true;
+ };
+
+ lass.hass.config = let
+ tasmota_s20 = name: topic: {
+ platform = "mqtt";
+ inherit name;
+ state_topic = "stat/${topic}/POWER";
+ command_topic = "cmnd/${topic}/POWER";
+ payload_on = "ON";
+ payload_off = "OFF";
+ };
+ in {
+ homeassistant = {
+ name = "Home";
+ time_zone = "Europe/Berlin";
+ latitude = "48.7687";
+ longitude = "9.2478";
+ elevation = 247;
+ };
+ config = {};
+ sun.elevation = 66;
+ discovery = {};
+ frontend = {};
+ mqtt = {
+ broker = "localhost";
+ port = 1883;
+ client_id = "home-assistant";
+ username = "gg23";
+ password = "gg23-mqtt";
+ keepalive = 60;
+ protocol = 3.1;
+
+ discovery = true;
+ birth_message = {
+ topic = "/hass/status";
+ payload = "online";
+ };
+ will_message = {
+ topic = "/hass/status";
+ payload = "offline";
+ };
+ };
+ sensor = [
+ ];
+ switch = [
+ (tasmota_s20 "TV" "tv")
+ (tasmota_s20 "Drucker Strom" "drucker")
+ (tasmota_s20 "Waschmaschine" "wasch")
+ (tasmota_s20 "Stereo Anlage" "stereo")
+ ];
+ mobile_app = {};
+ };
+
+ services.mosquitto = {
+ enable = true;
+ host = "0.0.0.0";
+ allowAnonymous = false;
+ checkPasswords = true;
+ users.gg23 = {
+ password = "gg23-mqtt";
+ acl = [ "topic readwrite #" ];
+ };
+ };
+
+ environment.systemPackages = [ pkgs.mosquitto ];
+}