Merge remote-tracking branch 'orange/master'
This commit is contained in:
commit
5316b58ab3
|
@ -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": {
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
8
kartei/makefu/retiolum/savarcast.pub
Normal file
8
kartei/makefu/retiolum/savarcast.pub
Normal 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-----
|
1
kartei/makefu/retiolum/savarcast_ed25519.pub
Normal file
1
kartei/makefu/retiolum/savarcast_ed25519.pub
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Ed25519PublicKey = s/m2cdP6VguKTzTFLdoHMG7t4+94NNT/+ZHYcmSxSVP
|
1
kartei/makefu/wiregrill/savarcast.pub
Normal file
1
kartei/makefu/wiregrill/savarcast.pub
Normal file
|
@ -0,0 +1 @@
|
||||||
|
mM/QKHTnLlC5qyClRY9WZKg3TK4F+WpLIKRtjCmCCHM=
|
|
@ -1 +1 @@
|
||||||
T7Cr80dBbtPFCPdz4OS7whDlQJzn2Orclq5rLVtD+Ds=
|
yAKvxTvcEVdn+MeKsmptZkR3XSEue+wSyLxwcjBYxxo=
|
||||||
|
|
|
@ -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";
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -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";
|
||||||
};
|
};
|
||||||
|
|
7
krebs/2configs/shack/esphome.nix
Normal file
7
krebs/2configs/shack/esphome.nix
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
services.esphome = {
|
||||||
|
enable = true;
|
||||||
|
address = "0.0.0.0";
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
}
|
|
@ -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" = {
|
||||||
|
|
|
@ -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: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
5
krebs/2configs/shack/glados/zigbee.nix
Normal file
5
krebs/2configs/shack/glados/zigbee.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="zigbee", MODE="0666"
|
||||||
|
'';
|
||||||
|
}
|
Loading…
Reference in a new issue