summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--flake.lock6
-rw-r--r--kartei/kmein/default.nix22
-rw-r--r--kartei/lass/dishfire.nix40
-rw-r--r--kartei/makefu/default.nix2
-rw-r--r--kartei/makefu/wiregrill/telex.pub2
-rw-r--r--krebs/1systems/puyak/config.nix5
-rw-r--r--krebs/1systems/puyak/net.nix2
-rw-r--r--krebs/2configs/exim-smarthost.nix1
-rw-r--r--krebs/2configs/news-host.nix3
-rw-r--r--krebs/2configs/shack/esphome.nix7
-rw-r--r--krebs/2configs/shack/glados/default.nix13
-rw-r--r--krebs/2configs/shack/glados/zigbee-quirks/__init__.py0
-rw-r--r--krebs/2configs/shack/glados/zigbee-quirks/ts011f_power_monitoring.py96
-rw-r--r--krebs/2configs/shack/glados/zigbee.nix5
-rw-r--r--krebs/3modules/go.nix4
-rw-r--r--krebs/3modules/sync-containers3.nix20
-rw-r--r--krebs/5pkgs/simple/reaktor2-plugins.nix6
-rw-r--r--krebs/5pkgs/simple/stable-generate/default.nix2
m---------submodules/krops0
19 files changed, 167 insertions, 69 deletions
diff --git a/flake.lock b/flake.lock
index 6fba339f5..509ef218b 100644
--- a/flake.lock
+++ b/flake.lock
@@ -18,11 +18,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1702151865,
- "narHash": "sha256-9VAt19t6yQa7pHZLDbil/QctAgVsA66DLnzdRGqDisg=",
+ "lastModified": 1710272261,
+ "narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "666fc80e7b2afb570462423cb0e1cf1a3a34fedd",
+ "rev": "0ad13a6833440b8e238947e47bea7f11071dc2b2",
"type": "github"
},
"original": {
diff --git a/kartei/kmein/default.nix b/kartei/kmein/default.nix
index b096e2843..c840019b5 100644
--- a/kartei/kmein/default.nix
+++ b/kartei/kmein/default.nix
@@ -77,6 +77,28 @@ in
tinc.pubkey_ed25519 = "KhOetVTVLtGxB22NmZhkTWC0Uhg8rXJv4ayZqchSgCN";
};
};
+ fatteh = {
+ nets.retiolum = {
+ aliases = [ "fatteh.r" "fatteh.kmein.r" ];
+ ip4.addr = "10.243.2.77";
+ tinc.pubkey = ''
+ -----BEGIN RSA PUBLIC KEY-----
+ MIICCgKCAgEAoK5mMjFxzogpeg5H0pG224gqjknz3/s0iNqGTwsnuscw2HSBDQLi
+ o3J2Py6tD4pdRlLwAEMewwl/vt8/Um90OFkGCnedQXd/06TzxtYSRONYkCeJ7YIk
+ qxaV9w/KpSFmufR0R284KjAnydP5AIzRQH1fZNNLnxEbaoEkh00J5JrEcFncLd8i
+ 8y62ZxnMeD4lzdmn2+dSie3z0cDMWGaGmzFB4ejlD6BmRhQ2TttHSuOaskf7UHv9
+ dywNp3Mm2S1TWzQrDOfWal1OOoct+3aTpruYDrOkP375z4wueonIaI+Zpnd3HbyQ
+ MaosPFFMy330KEWtfJgrX8gPoJDryURqZ5Nlt5fdOmy23ztqPiZowFfGeKDbjl3n
+ i/xMDpgASnyFMZRryh5gqp3Fewzx2EkhLd2y3TFtcZVLrFCsR3m7Pg4IerKi1VuI
+ N0ibCWoScWqV4EHJEcLoXe2tLmZa6fReKkbuJce1oLVINZnUtLNCNM0ogTDFe9Fc
+ X7YAl5TmqOI+HnOnWFez+IJyoIExRAHuLwnWvfh1OGIpsTGRL2NXZbUp8Reh3FQ1
+ 8oAoMbQf+z/Wi7ftXc7V3h5WEJJ0kiF8wAUAcUAhOeun3bq7VGyX62ckD+FFJpRe
+ FyxedTdfoU2+94Cx5Ah9I970VG8sdl6Byp0tQCAd8GX9IuJoSCCbtWMCAwEAAQ==
+ -----END RSA PUBLIC KEY-----
+ '';
+ tinc.pubkey_ed25519 = "INp2fKLFIjkGnUGhd+J4X2io3MH9T158d6JYZv3pQ/B";
+ };
+ };
makanek = {
nets.retiolum = {
aliases = [
diff --git a/kartei/lass/dishfire.nix b/kartei/lass/dishfire.nix
deleted file mode 100644
index 548320584..000000000
--- a/kartei/lass/dishfire.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ r6, w6, ... }:
-{
- nets = rec {
- internet = {
- ip4 = rec {
- addr = "157.90.232.92";
- prefix = "${addr}/32";
- };
- aliases = [
- "dishfire.i"
- ];
- ssh.port = 45621;
- };
- retiolum = {
- via = internet;
- ip4.addr = "10.243.133.99";
- ip6.addr = r6 "d15f:1233";
- aliases = [
- "dishfire.r"
- "grafana.lass.r"
- "prometheus.lass.r"
- "alert.lass.r"
- ];
- tinc = {
- pubkey = ''
- -----BEGIN RSA PUBLIC KEY-----
- MIIBCgKCAQEAwKi49fN+0s5Cze6JThM7f7lj4da27PSJ/3w3tDFPvtQco11ksNLs
- Xd3qPaQIgmcNVCR06aexae3bBeTx9y3qHvKqZVE1nCtRlRyqy1LVKSj15J1D7yz7
- uS6u/BSZiCzmdZwu3Fq5qqoK0nfzWe/NKEDWNa5l4Mz/BZQyI/hbOpn6UfFD0LpK
- R4jzc9Dbk/IFNAvwb5yrgEYtwBzlXzeDvHW2JcPq3qQjK2byQYNiIyV3g0GHppEd
- vDbIPDFhTn3Hv5zz/lX+/We8izzRge7MEd+Vn9Jwb5NAzwDsOHl6ExpqASv9H49U
- HwgPw5pstabyrsDWXybSYUb+8LcZf+unGwIDAQAB
- -----END RSA PUBLIC KEY-----
- '';
- pubkey_ed25519 = "P+bhzhgTNdohWdec//t/e+8cI7zUOsS+Kq/AOtineAO";
- };
- };
- };
- ssh.pubkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGv0JMp0y+E5433GRSFKVK3cQmP0AAlS9aH9fk49yFxy";
-}
diff --git a/kartei/makefu/default.nix b/kartei/makefu/default.nix
index 785ec14eb..d6134cd8d 100644
--- a/kartei/makefu/default.nix
+++ b/kartei/makefu/default.nix
@@ -137,6 +137,7 @@ in {
aliases = [
"omo.r"
"dcpp.omo.r"
+ "hass.omo.r"
"backup.makefu.r"
"torrent.omo.r"
"music.omo.r"
@@ -249,6 +250,7 @@ in {
ul.work.euer IN A ${nets.internet.ip4.addr}
music.euer IN A ${nets.internet.ip4.addr}
ntfy.euer IN A ${nets.internet.ip4.addr}
+ paper.euer IN A ${nets.internet.ip4.addr}
'';
};
nets = rec {
diff --git a/kartei/makefu/wiregrill/telex.pub b/kartei/makefu/wiregrill/telex.pub
index 668d7ca68..4a5f666cc 100644
--- a/kartei/makefu/wiregrill/telex.pub
+++ b/kartei/makefu/wiregrill/telex.pub
@@ -1 +1 @@
-Y6fOW2QDt0SsHT7hSVzzJYQVB3JI/txO4/FDB54Z52A=
+yAKvxTvcEVdn+MeKsmptZkR3XSEue+wSyLxwcjBYxxo=
diff --git a/krebs/1systems/puyak/config.nix b/krebs/1systems/puyak/config.nix
index fb0f6ec61..d3891af82 100644
--- a/krebs/1systems/puyak/config.nix
+++ b/krebs/1systems/puyak/config.nix
@@ -1,4 +1,4 @@
-{ config, pkgs, ... }:
+{ config, pkgs, lib, ... }:
{
imports = [
./net.nix
@@ -23,7 +23,6 @@
<stockholm/krebs/2configs/container-networking.nix>
<stockholm/krebs/2configs/syncthing.nix>
- <stockholm/krebs/2configs/news-host.nix>
### shackspace ###
# handle the worlddomination map via coap
@@ -74,6 +73,7 @@
# hass.shack
<stockholm/krebs/2configs/shack/glados>
+ <stockholm/krebs/2configs/shack/esphome.nix>
# connect to git.shackspace.de as group runner for rz
<stockholm/krebs/2configs/shack/gitlab-runner.nix>
@@ -171,4 +171,5 @@
isNormalUser = true;
shell = "/run/current-system/sw/bin/zsh";
};
+ system.stateVersion = lib.mkForce "24.05";
}
diff --git a/krebs/1systems/puyak/net.nix b/krebs/1systems/puyak/net.nix
index 59b22b380..fe2fd238e 100644
--- a/krebs/1systems/puyak/net.nix
+++ b/krebs/1systems/puyak/net.nix
@@ -14,7 +14,7 @@ in {
interfaces."${ext-if}".ipv4.addresses = [
{
address = shack-ip;
- prefixLength = 22;
+ prefixLength = 20;
}
];
diff --git a/krebs/2configs/exim-smarthost.nix b/krebs/2configs/exim-smarthost.nix
index 2842e10d4..6445783f0 100644
--- a/krebs/2configs/exim-smarthost.nix
+++ b/krebs/2configs/exim-smarthost.nix
@@ -23,7 +23,6 @@ in {
{ mail = "krebstel-1difh7483axpiaq92ghi14r5cql822wbhixqb0nn3y3jkcj0b785@ni.r"; }
{ mail = "lass@green.r"; }
tv
- xkey
];
spam-ml = [
lass
diff --git a/krebs/2configs/news-host.nix b/krebs/2configs/news-host.nix
index 81922ef87..9b8627d61 100644
--- a/krebs/2configs/news-host.nix
+++ b/krebs/2configs/news-host.nix
@@ -1,5 +1,6 @@
-{ config, ... }:
+{ config,lib, ... }:
{
+ nixpkgs.config.allowUnfree = true; # "consul-1.18.0"
krebs.sync-containers3.containers.news = {
sshKey = "${config.krebs.secret.directory}/news.sync.key";
};
diff --git a/krebs/2configs/shack/esphome.nix b/krebs/2configs/shack/esphome.nix
new file mode 100644
index 000000000..b6bcbce3e
--- /dev/null
+++ b/krebs/2configs/shack/esphome.nix
@@ -0,0 +1,7 @@
+{
+ services.esphome = {
+ enable = true;
+ address = "0.0.0.0";
+ openFirewall = true;
+ };
+}
diff --git a/krebs/2configs/shack/glados/default.nix b/krebs/2configs/shack/glados/default.nix
index 236b5000d..e8ed18f0d 100644
--- a/krebs/2configs/shack/glados/default.nix
+++ b/krebs/2configs/shack/glados/default.nix
@@ -3,29 +3,26 @@ let
kodi-host = "192.168.8.11";
confdir = "/var/lib/homeassistant-docker";
in {
- imports = [
- ];
+ imports = [ ./zigbee.nix ];
- # networking.firewall.allowedTCPPorts = [ 8123 ];
+ networking.firewall.allowedTCPPorts = [ 8123 ];
virtualisation.oci-containers.containers.hass = {
image = "homeassistant/home-assistant:latest";
environment = {
TZ = "Europe/Berlin";
- # TODO create unique users
- PUID = toString config.users.users.news_container.uid;
- PGID = toString config.users.groups.news_container.gid;
UMASK = "007";
};
- extraOptions = ["--net=host" ];
+ extraOptions = ["--net=host" "--device=/dev/zigbee" ];
volumes = [
"${confdir}:/config"
+ "${./zigbee-quirks}:/quirks"
#"${confdir}/docker-run:/etc/services.d/home-assistant/run:"
];
};
systemd.tmpfiles.rules = [
#"f ${confdir}/docker-run 0770 kiosk kiosk - -"
# TODO:
- "d ${confdir} 0770 news_container news_container - -"
+ "d ${confdir} 0770 root root - -"
];
services.nginx.virtualHosts."hass.shack" = {
diff --git a/krebs/2configs/shack/glados/zigbee-quirks/__init__.py b/krebs/2configs/shack/glados/zigbee-quirks/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/krebs/2configs/shack/glados/zigbee-quirks/__init__.py
diff --git a/krebs/2configs/shack/glados/zigbee-quirks/ts011f_power_monitoring.py b/krebs/2configs/shack/glados/zigbee-quirks/ts011f_power_monitoring.py
new file mode 100644
index 000000000..b520fe947
--- /dev/null
+++ b/krebs/2configs/shack/glados/zigbee-quirks/ts011f_power_monitoring.py
@@ -0,0 +1,96 @@
+"""TS011F plug."""
+
+from zigpy.profiles import zgp, zha
+from zigpy.quirks import CustomDevice
+from zigpy.zcl.clusters.general import (
+ Basic,
+ GreenPowerProxy,
+ Groups,
+ Identify,
+ OnOff,
+ Ota,
+ Scenes,
+ Time,
+)
+from zigpy.zcl.clusters.homeautomation import ElectricalMeasurement
+from zigpy.zcl.clusters.lightlink import LightLink
+from zigpy.zcl.clusters.measurement import TemperatureMeasurement
+from zigpy.zcl.clusters.smartenergy import Metering
+
+from zhaquirks.const import (
+ DEVICE_TYPE,
+ ENDPOINTS,
+ INPUT_CLUSTERS,
+ MODEL,
+ MODELS_INFO,
+ OUTPUT_CLUSTERS,
+ PROFILE_ID,
+)
+from zhaquirks.quirk_ids import TUYA_PLUG_ONOFF
+from zhaquirks.tuya import (
+ EnchantedDevice,
+ TuyaNewManufCluster,
+ TuyaZB1888Cluster,
+ TuyaZBE000Cluster,
+ TuyaZBElectricalMeasurement,
+ TuyaZBExternalSwitchTypeCluster,
+ TuyaZBMeteringCluster,
+ TuyaZBMeteringClusterWithUnit,
+ TuyaZBOnOffAttributeCluster,
+)
+
+class Plug_v2l(EnchantedDevice):
+ """Another TS011F Tuya plug. First one using this definition is _TZ3000_okaz9tjs."""
+
+ quirk_id = TUYA_PLUG_ONOFF
+
+ signature = {
+ MODEL: "TS011F",
+ ENDPOINTS: {
+ # "profile_id": 260,
+ # "device_type": "0x0100",
+ # "in_clusters": ["0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0702", "0x0b04", "0xe001"],
+ # "in_clusters": ["0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x000a", "0x0702", "0x0b04", "0x1000", "0xe000", "0xe001"],
+ # "out_clusters": []
+ 1: {
+ PROFILE_ID: zha.PROFILE_ID,
+ DEVICE_TYPE: zha.DeviceType.ON_OFF_LIGHT,
+ INPUT_CLUSTERS: [
+ Basic.cluster_id,
+ Identify.cluster_id,
+ Groups.cluster_id,
+ Scenes.cluster_id,
+ OnOff.cluster_id,
+ Time.cluster_id,
+ Metering.cluster_id,
+ ElectricalMeasurement.cluster_id,
+ LightLink.cluster_id,
+ TuyaZBE000Cluster.cluster_id,
+ TuyaZBExternalSwitchTypeCluster.cluster_id,
+ ],
+ OUTPUT_CLUSTERS: [],
+ },
+ },
+ }
+ replacement = {
+ ENDPOINTS: {
+ 1: {
+ PROFILE_ID: zha.PROFILE_ID,
+ DEVICE_TYPE: zha.DeviceType.SMART_PLUG,
+ INPUT_CLUSTERS: [
+ Basic.cluster_id,
+ Identify.cluster_id,
+ Groups.cluster_id,
+ Scenes.cluster_id,
+ TuyaZBOnOffAttributeCluster,
+ Time.cluster_id,
+ TuyaZBMeteringClusterWithUnit,
+ TuyaZBElectricalMeasurement,
+ LightLink.cluster_id,
+ TuyaZBE000Cluster.cluster_id,
+ TuyaZBExternalSwitchTypeCluster,
+ ],
+ OUTPUT_CLUSTERS: [],
+ },
+ },
+ }
diff --git a/krebs/2configs/shack/glados/zigbee.nix b/krebs/2configs/shack/glados/zigbee.nix
new file mode 100644
index 000000000..a8967cc37
--- /dev/null
+++ b/krebs/2configs/shack/glados/zigbee.nix
@@ -0,0 +1,5 @@
+{
+ services.udev.extraRules = ''
+ SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="zigbee", MODE="0666"
+ '';
+}
diff --git a/krebs/3modules/go.nix b/krebs/3modules/go.nix
index 9dc8fe6d2..0c3f42f1c 100644
--- a/krebs/3modules/go.nix
+++ b/krebs/3modules/go.nix
@@ -20,9 +20,7 @@ let
};
imp = {
- services.redis = {
- enable = true;
- };
+ services.redis.servers.go.enable = true;
krebs.htgen.go = {
port = cfg.port;
diff --git a/krebs/3modules/sync-containers3.nix b/krebs/3modules/sync-containers3.nix
index 7373592a5..12a5ee4e7 100644
--- a/krebs/3modules/sync-containers3.nix
+++ b/krebs/3modules/sync-containers3.nix
@@ -43,6 +43,14 @@ in {
fi
'';
};
+ hostname = lib.mkOption {
+ type = lib.types.str;
+ description = ''
+ hostname of the container,
+ his is continously checked by ping and the container is restarted if unreachable
+ '';
+ default = config.name;
+ };
};
}));
};
@@ -68,6 +76,8 @@ in {
serviceConfig.ExecStart = pkgs.writers.writeDash "autoswitch" ctr.startCommand;
unitConfig.X-StopOnRemoval = false;
};
+ # get rid of stateVersion not set warning;
+ system.stateVersion = config.system.nixos.release;
};
autoStart = false;
enableTun = true;
@@ -110,8 +120,8 @@ in {
set -efux
consul lock sync_${ctr.name} ${pkgs.writers.writeDash "${ctr.name}-sync" ''
set -efux
- if ping -c 1 ${ctr.name}.r; then
- nice --adjustment=30 rsync -a -e "ssh -i $CREDENTIALS_DIRECTORY/ssh_key" --timeout=30 --inplace --sparse container_sync@${ctr.name}.r:disk "$HOME"/disk.rsync
+ if ping -c 1 ${ctr.hostname}; then
+ nice --adjustment=30 rsync -a -e "ssh -i $CREDENTIALS_DIRECTORY/ssh_key" --timeout=30 --inplace --sparse container_sync@${ctr.hostname}:disk "$HOME"/disk.rsync
touch "$HOME"/incomplete
nice --adjustment=30 rsync --inplace "$HOME"/disk.rsync "$HOME"/disk
rm -f "$HOME"/incomplete
@@ -153,7 +163,7 @@ in {
export payload
if [ "$(jq -rn 'env.payload | fromjson.host')" = '${config.networking.hostName}' ]; then
# echo 'we are the host, trying to reach container'
- if $(retry -t 10 -d 10 -- ping -q -c 1 ${ctr.name}.r > /dev/null); then
+ if $(retry -t 10 -d 10 -- ping -q -c 1 ${ctr.hostname} > /dev/null); then
# echo 'container is reachable, continueing'
continue
else
@@ -237,8 +247,8 @@ in {
/run/current-system/sw/bin/nixos-container start ${ctr.name}
# wait for system to become reachable for the first time
systemctl start ${ctr.name}_watcher.service
- retry -t 10 -d 10 -- ping -q -c 1 ${ctr.name}.r > /dev/null
- while systemctl is-active container@${ctr.name}.service >/devnull && ping -q -c 3 ${ctr.name}.r >/dev/null; do
+ retry -t 10 -d 10 -- ping -q -c 1 ${ctr.hostname} > /dev/null
+ while systemctl is-active container@${ctr.name}.service >/devnull && ping -q -c 3 ${ctr.hostname} >/dev/null; do
consul kv put containers/${ctr.name} "$(jq -cn '{host: "${config.networking.hostName}", time: now}')" >/dev/null
sleep 10
done
diff --git a/krebs/5pkgs/simple/reaktor2-plugins.nix b/krebs/5pkgs/simple/reaktor2-plugins.nix
index b51b53a48..5b7be5d33 100644
--- a/krebs/5pkgs/simple/reaktor2-plugins.nix
+++ b/krebs/5pkgs/simple/reaktor2-plugins.nix
@@ -1,7 +1,7 @@
-{ lib, pkgs, stockholm, ... }:
-with (builtins.trace (lib.attrNames stockholm) stockholm).lib;
+{ pkgs, stockholm, ... }:
+with stockholm.lib;
-rec {
+{
generators = {
command_hook = commands: {
pattern =
diff --git a/krebs/5pkgs/simple/stable-generate/default.nix b/krebs/5pkgs/simple/stable-generate/default.nix
index dc9c826f9..31cf6c23d 100644
--- a/krebs/5pkgs/simple/stable-generate/default.nix
+++ b/krebs/5pkgs/simple/stable-generate/default.nix
@@ -18,7 +18,7 @@ pkgs.writers.writeBashBin "stable-generate" ''
filename=$(mktemp)
curl -Ssf "$STABLE_URL/sdapi/v1/txt2img" \
-X POST \
- --Header 'Content-Type: application/json' \
+ --header 'Content-Type: application/json' \
--data "$PAYLOAD" |
jq -r '.images[0]' |
base64 --decode > "$filename"
diff --git a/submodules/krops b/submodules/krops
-Subproject 59aa5d0e41cf4a6d4356673feb1adbd0fcf6893
+Subproject a6c7ecd8ba90c1eb2515cb235d85649295848e6