Merge remote-tracking branch 'orange/master'

This commit is contained in:
tv 2024-05-22 19:56:07 +02:00
commit 5316b58ab3
14 changed files with 145 additions and 15 deletions

6
flake.lock generated
View File

@ -18,11 +18,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1707956935, "lastModified": 1715447595,
"narHash": "sha256-ZL2TrjVsiFNKOYwYQozpbvQSwvtV/3Me7Zwhmdsfyu4=", "narHash": "sha256-VsVAUQOj/cS1LCOmMjAGeRksXIAdPnFIjCQ0XLkCsT0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a4d4fe8c5002202493e87ec8dbc91335ff55552c", "rev": "062ca2a9370a27a35c524dc82d540e6e9824b652",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -96,6 +96,16 @@ in {
retiolum.ip4.addr = "10.243.0.212"; retiolum.ip4.addr = "10.243.0.212";
}; };
}; };
savarcast = rec {
nets = {
retiolum.ip4 = {
addr = "10.243.136.238";
};
retiolum.aliases = [
"sava.r"
];
};
};
x = { x = {
syncthing.id = "OA36OF6-JEFCUJQ-OEYVTMH-DPCACQI-3AJRE5G-BFVMOUG-RPYJQE3-4ZCUWA5"; syncthing.id = "OA36OF6-JEFCUJQ-OEYVTMH-DPCACQI-3AJRE5G-BFVMOUG-RPYJQE3-4ZCUWA5";
nets = { nets = {
@ -127,6 +137,7 @@ in {
aliases = [ aliases = [
"omo.r" "omo.r"
"dcpp.omo.r" "dcpp.omo.r"
"hass.omo.r"
"backup.makefu.r" "backup.makefu.r"
"torrent.omo.r" "torrent.omo.r"
"music.omo.r" "music.omo.r"
@ -239,6 +250,7 @@ in {
ul.work.euer IN A ${nets.internet.ip4.addr} ul.work.euer IN A ${nets.internet.ip4.addr}
music.euer IN A ${nets.internet.ip4.addr} music.euer IN A ${nets.internet.ip4.addr}
ntfy.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 { nets = rec {

View File

@ -0,0 +1,8 @@
-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEAvxhCwL7g+p3rp2aelJHKHowLLcDZVqZnsuViW5jzQ5kQuDB6Rc7f
IiUXXzg6/BL2o7jUW1gRrHbiVy7360HxsTwQvV8j0/s+UsCQCybWclGE2NlsjCUM
xi/zTn/R523o43J4t6L7ohDlJVBCPMVJu5ZWVIlMAWSHI45WFu9JAyKOZJnPEYQb
eyw8P93ztZyijoRTV1SEYK9FiSsfmNgGIqPlE6QPE1S+oR6j+718WSrmQjcBO8uO
cbj4ZPEgokYRF+WH4m9fPfkTWH6qQ1idqiWZfeUR2TfLLDQ+zDpJpoXlXk/JOqMu
7kdx3dfuiulI93pUDVeGXh0YCyTmVvavdQIDAQAB
-----END RSA PUBLIC KEY-----

View File

@ -0,0 +1 @@
Ed25519PublicKey = s/m2cdP6VguKTzTFLdoHMG7t4+94NNT/+ZHYcmSxSVP

View File

@ -0,0 +1 @@
mM/QKHTnLlC5qyClRY9WZKg3TK4F+WpLIKRtjCmCCHM=

View File

@ -1 +1 @@
T7Cr80dBbtPFCPdz4OS7whDlQJzn2Orclq5rLVtD+Ds= yAKvxTvcEVdn+MeKsmptZkR3XSEue+wSyLxwcjBYxxo=

View File

@ -1,4 +1,4 @@
{ config, pkgs, ... }: { config, pkgs, lib, ... }:
{ {
imports = [ imports = [
./net.nix ./net.nix
@ -73,6 +73,7 @@
# hass.shack # hass.shack
<stockholm/krebs/2configs/shack/glados> <stockholm/krebs/2configs/shack/glados>
<stockholm/krebs/2configs/shack/esphome.nix>
# connect to git.shackspace.de as group runner for rz # connect to git.shackspace.de as group runner for rz
<stockholm/krebs/2configs/shack/gitlab-runner.nix> <stockholm/krebs/2configs/shack/gitlab-runner.nix>
@ -170,4 +171,5 @@
isNormalUser = true; isNormalUser = true;
shell = "/run/current-system/sw/bin/zsh"; shell = "/run/current-system/sw/bin/zsh";
}; };
system.stateVersion = lib.mkForce "24.05";
} }

View File

@ -14,7 +14,7 @@ in {
interfaces."${ext-if}".ipv4.addresses = [ interfaces."${ext-if}".ipv4.addresses = [
{ {
address = shack-ip; address = shack-ip;
prefixLength = 22; prefixLength = 20;
} }
]; ];

View File

@ -1,5 +1,6 @@
{ config, ... }: { config,lib, ... }:
{ {
nixpkgs.config.allowUnfree = true; # "consul-1.18.0"
krebs.sync-containers3.containers.news = { krebs.sync-containers3.containers.news = {
sshKey = "${config.krebs.secret.directory}/news.sync.key"; sshKey = "${config.krebs.secret.directory}/news.sync.key";
}; };

View File

@ -0,0 +1,7 @@
{
services.esphome = {
enable = true;
address = "0.0.0.0";
openFirewall = true;
};
}

View File

@ -3,29 +3,26 @@ let
kodi-host = "192.168.8.11"; kodi-host = "192.168.8.11";
confdir = "/var/lib/homeassistant-docker"; confdir = "/var/lib/homeassistant-docker";
in { in {
imports = [ imports = [ ./zigbee.nix ];
];
# networking.firewall.allowedTCPPorts = [ 8123 ]; networking.firewall.allowedTCPPorts = [ 8123 ];
virtualisation.oci-containers.containers.hass = { virtualisation.oci-containers.containers.hass = {
image = "homeassistant/home-assistant:latest"; image = "homeassistant/home-assistant:latest";
environment = { environment = {
TZ = "Europe/Berlin"; 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"; UMASK = "007";
}; };
extraOptions = ["--net=host" ]; extraOptions = ["--net=host" "--device=/dev/zigbee" ];
volumes = [ volumes = [
"${confdir}:/config" "${confdir}:/config"
"${./zigbee-quirks}:/quirks"
#"${confdir}/docker-run:/etc/services.d/home-assistant/run:" #"${confdir}/docker-run:/etc/services.d/home-assistant/run:"
]; ];
}; };
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
#"f ${confdir}/docker-run 0770 kiosk kiosk - -" #"f ${confdir}/docker-run 0770 kiosk kiosk - -"
# TODO: # TODO:
"d ${confdir} 0770 news_container news_container - -" "d ${confdir} 0770 root root - -"
]; ];
services.nginx.virtualHosts."hass.shack" = { services.nginx.virtualHosts."hass.shack" = {

View File

@ -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: [],
},
},
}

View File

@ -0,0 +1,5 @@
{
services.udev.extraRules = ''
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="zigbee", MODE="0666"
'';
}