diff --git a/hosts/iron/configuration.nix b/hosts/iron/configuration.nix index 75bba3f..329758c 100644 --- a/hosts/iron/configuration.nix +++ b/hosts/iron/configuration.nix @@ -197,6 +197,8 @@ with lib; { hardware.enableRedistributableFirmware = true; + sound.enable = true; + virtualisation.containers.storage.settings = { storage = { driver = "zfs"; diff --git a/hosts/iron/ports.nix b/hosts/iron/ports.nix index 80a74ea..9ec9ba2 100644 --- a/hosts/iron/ports.nix +++ b/hosts/iron/ports.nix @@ -16,6 +16,7 @@ custom-utils.validatePortAttrset { qbittorrent-webui.tcp = 8099; radicale.tcp = 5232; rmfakecloud.tcp = 3000; + snapserver.tcp = 1705; unifi.tcp = 8443; wireguard-public-ip-tunnel.udp = 51000; } diff --git a/hosts/iron/secrets.yaml b/hosts/iron/secrets.yaml index 5c12373..a8cddef 100644 --- a/hosts/iron/secrets.yaml +++ b/hosts/iron/secrets.yaml @@ -9,7 +9,7 @@ dkim-keys: radicale-htpasswd: ENC[AES256_GCM,data:Q0WnleP9I4xozsL/H+5oV3Ag7khfalV40A6ub+DA07U8UKna3/ju533RmjWOnETzSNa6XK140nfCcfGZCiqGyF9tfuuXcKFu+j4=,iv:87PSvHyKF7QUQZmEuxM+IT0VKSGnS0MjoUmCqJ+6tzI=,tag:yrP3TgxE8aSZf0MrCF9dsQ==,type:str] synapse-turn-shared-secret: ENC[AES256_GCM,data:Q1XRds3Zud1kYkvD6s9WUzP+kNDNsxB5SHd6oCAaLCHhHhYENSAYTZOF+rGjCPNyKFL0e/A=,iv:zScRQrz+pXHNUh/BGOaV+TVnDR3wu1Z/UO1zXarKwtA=,tag:ckpVziE+yb0FjctcT7tAkg==,type:str] rmfakecloud: ENC[AES256_GCM,data:ktKBKb6cRv1VF8tRvXIpxIy9hPinVPKK05mgvYzz18PEdcrCLpldm5xf7ffHtY5XzDOAMXDCiz6x4xyv7071frrF0spOEPnIzVhxwG8H2Ck=,iv:qJdHjv0RziAs4G9UGeRwGQ4GE5kaObJWpIYWpRKhr9c=,tag:PXgvU1hZK/gvWGyFJaHekg==,type:str] -esphome: ENC[AES256_GCM,data:8mXqZnGaiWTO3pNozXCG/NmPEb9fTWBIs/2gX4xLPQwoUg8rw18pVfm0GbEQG1e/crV8ykeYcbKvvZdvVIrc4M/khoO7iuqJHURTcoQh/q/9pH1K2Tg+f7w6V24BozP3GnHXGo+zfo4gX8TgQzx7kktMIiWWnP5gyc1KOw5mQlGmOwfe/Ny6ziCWuGOCPIzd4qtMGOn2lie9HztJ5h0HR9NMJar007grRUS/DXtgw4Z6/PQ80bQJPJF3qsCuJuW9YiI1ImqherYiGaS+ptdZI/nkj9RZFrDBf1NOt1ZizROoeKKO0uJ134Rh+YeuAtWeT+NcQMnj20YdJ75aBHGd+Kx/fICOmO/yXKyuwk1ZyvIvnlauG0bgi2nMrAQJdgO7FRBflmZd6IIFv6a2kOHkS8sigBi2Movq/mZTEF13XBsFxgEZugEqh5MvEd10iaLusYNCa5pc3z5DoeAcbsOGfmcgy4RdHurtVImfLSvPyelRAsWXceOPzU+zLVyAGZ4MeqP5cO2oK1qC9sntMz3s5sjl7BsT9SieiaScK4Tdadh0ZjlzVYzh+XIDTvbgUu6EFmU3t4UeAanPywJIdnnJVMCvgN6FLHk098h9PL2DgKWfS8aiywKXctXUA78WYpYInqS531liF8Jc5HM91Azp1q+ImpzmZjfm0kgD7wLiGzZaPeKsQaB7ykMpvWpTSq+QHW4=,iv:qLn56QxmWFaYtz3MwZyCP7NEfypmWRW4HxQiZmn27fE=,tag:9bHVx5NDf3nZG0alxb4p1w==,type:str] +esphome: ENC[AES256_GCM,data:u8fNhi3J2wEJ6uxYT5LfYzktnmhTuHX4Tundu8iPxstFHkk7eF4HjlZi7KWmSZSFNqZqCRQ/Kksmtylc5LxGvVUAgwr4fUu9qBns3UbwwdrOrenefrcDZDq2Z2VjNtIHK2CbmqmDoodZy7JWgezY8ZzEjqcpv+btZ/91+ApM/5Q81gxcbFWMmurOp/yl0LSaCVu4sE7L60IstZisJMtmJ/YTY6KYop6TMuwUUDwVa5kgqzxLJWc0MEDt7rSutqVd7ryGzacvcaC4HcOcbVHVNc5tCqELBxExV4zd56rK2RLfBtDJVX7S3h+deWmNg6IMnPkAtgaer0QT8x4BIhbj8r7S2lcWDF1r1V2aZQ33mXbiuMlDVdmHliMnKpY+QIVLLtC0xNofRKixD+S1zmsjqQTJaMZO76dk8dRrZ+mnDPjDdLjT6687YPOeRuIAzLYhJrgyvQdE+SBgx0B71L/Q0Jp2joO4esx0iWwa8A6h8WZMulO1CGQpRfhI5GABz/sJtSm1pkZbxHJnhKXxAV3KiAP3RH673xkdo3Wmn1Q7RsOVsogXodYd4klmSgAszvF0eBl/pazCgfErI6ReNIr7cUGYd82Ub0gveSvPzqCPGJMkxwZ51QOUKI/pvw4pywolpH1JN5edPfoepVvbrrk/TD8X0Dd6YKOWuzjZ8LsuM1znqywwGh5BGvWzSpK1JZcYJG4Na5LFHgniyOuL6y6aANXSW6TBuehNwNEHkbm2GOjpxy3Ml5nWwQLkkD2wEdSU0/MW23rr6cOVUOrYiZvxip8l5Nf5Cl/JTLGaepRJaMBkTZj4G5x+r4zqOTBsbcEG8eiPAZG5uIxxVYo=,iv:U1srWrPW11lz/UYFW7Z9apla+ShH7W/QzDiw+evfcXg=,tag:1dxPp+m2O6xSyAZEsSf0dw==,type:str] sops: kms: [] gcp_kms: [] @@ -25,8 +25,8 @@ sops: TjdZRldhSzVtMkVoTzY1NjdGbCswRVUK0pi+8UuLqRmytcR2ikxOAM02iccl8P1y ixv0PKPLd+vQ23QeeQy/TfoGx16XttaDUnUrPLZR3TUKtAcld8+m6w== -----END AGE ENCRYPTED FILE----- - lastmodified: "2023-12-18T16:45:32Z" - mac: ENC[AES256_GCM,data:ZsC4C+VpUnHuMyqHa3/TIursyWDPV1+we/cBrUhyeqeNdeDveJ4a26jmIzNxWWHbJU7uMPy6BF6iHpS91YK4m+KKSqoXZiTjB8b9p3y9ietT9XQOLXdt8pxVFBEOSH7g9DeVbrJUHTOhzYpugMqC/QXcDLE1GQwa0eGUq3JIDh8=,iv:vbDpVJAXvYw1qQ5Or6CxOs8OO4yhtlVF4zh07bkkFJw=,tag:IqVAItuv23AbbGQsPh5dsg==,type:str] + lastmodified: "2024-01-12T02:04:19Z" + mac: ENC[AES256_GCM,data:pXHs+ucPNr+v/x3R2Jb+1zxnHdAeSneT+6lt20eLhjvcMQIFckYXFxc0eOMnV00jTWb+vyz6g5zHsg9+kv+xm/xBHozw9sRJi01Ni+AR/ZLSbVDa6NiMyu536MrA1TeD3iZrxgmpDTuxsChdETz0mmPyEPOMT29seWYlhzI/++o=,iv:2guaerRyQj6qz9Dyo2HbC/dXUA6cuAA+yuDwbUDCcK8=,tag:HcVT4KdLCyjwtWP24JVfhg==,type:str] pgp: - created_at: "2023-05-02T19:30:42Z" enc: | diff --git a/hosts/iron/services/default.nix b/hosts/iron/services/default.nix index d2507e6..f5cddc8 100644 --- a/hosts/iron/services/default.nix +++ b/hosts/iron/services/default.nix @@ -2,8 +2,8 @@ imports = [ ./dnsmasq.nix ./dyndns.nix - ./home-assistant.nix ./esphome + ./home-assistant.nix ./jellyfin.nix ./mail.nix ./matrix.nix @@ -13,6 +13,7 @@ ./public-ip-tunnel.nix ./radicale.nix ./remarkable.nix + ./snapserver.nix ./sturzbach.nix ./unifi-controller.nix ]; diff --git a/hosts/iron/services/esphome/devices/kueche-leiste.yaml b/hosts/iron/services/esphome/devices/kueche-leiste.yaml new file mode 100644 index 0000000..deaf92d --- /dev/null +++ b/hosts/iron/services/esphome/devices/kueche-leiste.yaml @@ -0,0 +1,54 @@ +esphome: + name: "kueche-leiste" + friendly_name: "Küche Leiste" + platformio_options: + board_build.flash_mode: dio + on_boot: + then: + - light.turn_on: + id: led_light + brightness: 50% + color_temperature: 2700 K + +esp32: + board: esp32-c3-devkitm-1 + variant: ESP32C3 + framework: + type: esp-idf + +logger: + +api: + encryption: + key: !secret apikey_kueche_leiste + +ota: + password: !secret otapass_kueche_leiste + +wifi: + ssid: !secret wifi_ssid_bw + password: !secret wifi_password_bw + domain: .iot.bw.jalr.de + power_save_mode: none + enable_on_boot: True + fast_connect: On + output_power: 8.5 + +output: + - platform: ledc + pin: GPIO0 + id: output_warm + - platform: ledc + pin: GPIO1 + id: output_cold + +light: + - platform: cwww + name: "LED light" + id: led_light + cold_white: output_cold + warm_white: output_warm + cold_white_color_temperature: 6500 K + warm_white_color_temperature: 2700 K + constant_brightness: true + gamma_correct: 0 diff --git a/hosts/iron/services/home-assistant.nix b/hosts/iron/services/home-assistant.nix index a3d1633..27d40ac 100644 --- a/hosts/iron/services/home-assistant.nix +++ b/hosts/iron/services/home-assistant.nix @@ -82,10 +82,30 @@ in "light.yeelight_meteorite_ceiling_light" "light.eingang_deckenleuchte_deckenleuchte" "light.led_panel_schreibtisch_panel" + "light.kueche_leiste_led_light" ]; min_brightness = 20; } ]; + automation = [ + { + alias = "Waschmaschine fertig Benachrichtigung"; + trigger = { + platform = "state"; + entity_id = "sensor.waschmaschine_aktueller_vorgang"; + to = "Knitterschutz/Ende"; + }; + action = [ + { + service = "notify.mobile_app_shift6mq"; + data = { + message = "Die Waschmaschine hat das Programm beendet."; + title = "Wäsche fertig"; + }; + } + ]; + } + ]; }; }; diff --git a/hosts/iron/services/snapserver.nix b/hosts/iron/services/snapserver.nix new file mode 100644 index 0000000..9a2c13d --- /dev/null +++ b/hosts/iron/services/snapserver.nix @@ -0,0 +1,26 @@ +args@{ lib, pkgs, config, custom-utils, ... }: +let + ports = import ../ports.nix args; +in +{ + services.snapserver = { + enable = true; + tcp = { + enable = true; + port = ports.snapserver.tcp; + }; + port = 1704; + http = { + enable = true; + port = 1780; + listenAddress = "127.0.0.1"; + }; + streams.default.location = "/run/snapserver/default"; + #streams.default = { + # type = "alsa"; + # sampleFormat = "48000:16:2"; + # location = ""; + # codec = "flac"; + #}; + }; +}