fix avahi

This commit is contained in:
mjallen18
2026-03-31 13:33:42 -05:00
parent 6ca55504f0
commit bd799661b9
59 changed files with 3758 additions and 3829 deletions

View File

@@ -1,21 +1,26 @@
{
buildHomeAssistantComponent,
fetchFromGitHub,
pkgs,
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
...
}:
buildHomeAssistantComponent rec {
owner = "adamoutler";
domain = "anycubic_wifi";
version = "HACS-10";
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
src = fetchFromGitHub {
owner = owner;
repo = "anycubic-homeassistant";
rev = version;
hash = "sha256-TfZadwgdEJR11MaL+nfIgEYld3trWg3v6lOHSoxQ98Q=";
};
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.anycubic;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
in
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "anycubic_wifi";
inherit version;
src = sources.anycubic;
nativeBuildInputs = [ pkgs.${namespace}.uart-wifi ];

View File

@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"variables": {
"version": "HACS-10"
},
"sources": {
"anycubic": {
"fetcher": "github",
"owner": "adamoutler",
"repo": "anycubic-homeassistant",
"tag": "HACS-10",
"hash": "sha256-TfZadwgdEJR11MaL+nfIgEYld3trWg3v6lOHSoxQ98Q="
}
}
}

View File

@@ -1,20 +1,27 @@
{
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
fetchFromGitHub,
home-assistant,
...
}:
buildHomeAssistantComponent rec {
owner = "greghesp";
domain = "bambu_lab";
version = "v2.2.21";
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
src = fetchFromGitHub {
owner = owner;
repo = "ha-bambulab";
tag = version;
hash = "sha256-56aAJAsmn+PzLZijFQ9DbTfHSrbeNk+OM/ibu32UHtg=";
};
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.bambu_lab;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
in
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "bambu_lab";
inherit version;
src = sources.bambu_lab;
nativeBuildInputs = with home-assistant.python.pkgs; [
beautifulsoup4

View File

@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"variables": {
"version": "v2.2.21"
},
"sources": {
"bambu_lab": {
"fetcher": "github",
"owner": "greghesp",
"repo": "ha-bambulab",
"tag": "v2.2.21",
"hash": "sha256-56aAJAsmn+PzLZijFQ9DbTfHSrbeNk+OM/ibu32UHtg="
}
}
}

View File

@@ -1,20 +1,27 @@
{
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
fetchFromGitHub,
home-assistant,
...
}:
buildHomeAssistantComponent rec {
owner = "natekspencer";
domain = "bedjet";
version = "2.0.1";
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
src = fetchFromGitHub {
owner = owner;
repo = "ha-bedjet";
tag = version;
hash = "sha256-FAuL3A8wtGwt+GM180A7wMlIvJvGoLmxNLCtnomxV3o=";
};
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.bedjet;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
in
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "bedjet";
inherit version;
src = sources.bedjet;
nativeBuildInputs = with home-assistant.python.pkgs; [
beautifulsoup4

View File

@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"variables": {
"version": "2.0.1"
},
"sources": {
"bedjet": {
"fetcher": "github",
"owner": "natekspencer",
"repo": "ha-bedjet",
"tag": "2.0.1",
"hash": "sha256-FAuL3A8wtGwt+GM180A7wMlIvJvGoLmxNLCtnomxV3o="
}
}
}

View File

@@ -1,22 +1,27 @@
{
buildHomeAssistantComponent,
fetchFromGitHub,
home-assistant,
pkgs,
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
home-assistant,
...
}:
buildHomeAssistantComponent rec {
owner = "simbaja";
domain = "ge_home";
version = "v2026.2.0";
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
src = fetchFromGitHub {
owner = owner;
repo = "ha_gehome";
tag = version;
hash = "sha256-7c2GfTagNsIsSiT/sCqSV+BZZJMcvlsecDD+ZDZx9BA=";
};
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.ge_home;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
in
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "ge_home";
inherit version;
src = sources.ge_home;
# gehomesdk and magicattr must be built against HA's Python
dependencies = with pkgs.${namespace}; [

View File

@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"variables": {
"version": "v2026.2.0"
},
"sources": {
"ge_home": {
"fetcher": "github",
"owner": "simbaja",
"repo": "ha_gehome",
"tag": "v2026.2.0",
"hash": "sha256-7c2GfTagNsIsSiT/sCqSV+BZZJMcvlsecDD+ZDZx9BA="
}
}
}

View File

@@ -1,29 +1,36 @@
{
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
fetchFromGitHub,
home-assistant,
...
}:
buildHomeAssistantComponent rec {
owner = "LaggAt";
domain = "govee";
version = "2025.7.1";
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
src = fetchFromGitHub {
owner = owner;
repo = "hacs-govee";
rev = version;
hash = "sha256-3SnYjjQU2qRBcKs40bCpN75Ad3HqMcn/hRj1faSSeHw=";
};
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.govee;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
in
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "govee";
inherit version;
src = sources.govee;
nativeBuildInputs = with home-assistant.python.pkgs; [
dacite
];
meta = {
changelog = "https://github.com/${owner}/hacs-govee/releases/tag/${version}";
changelog = "https://github.com/${src-meta.owner}/hacs-govee/releases/tag/${version}";
description = "The Govee integration allows you to control and monitor lights and switches using the Govee API.";
homepage = "https://github.com/${owner}/hacs-govee";
homepage = "https://github.com/${src-meta.owner}/hacs-govee";
maintainers = [ ];
};
}

View File

@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"variables": {
"version": "2025.7.1"
},
"sources": {
"govee": {
"fetcher": "github",
"owner": "LaggAt",
"repo": "hacs-govee",
"tag": "2025.7.1",
"hash": "sha256-3SnYjjQU2qRBcKs40bCpN75Ad3HqMcn/hRj1faSSeHw="
}
}
}

View File

@@ -1,20 +1,27 @@
{
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
fetchFromGitHub,
home-assistant,
...
}:
buildHomeAssistantComponent rec {
owner = "gcobb321";
domain = "icloud3";
version = "v3.3.4.4";
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
src = fetchFromGitHub {
owner = owner;
repo = "icloud3";
rev = "${version}";
hash = "sha256-B63iY4OC00PGXx/3aq/rkiO0xK11hXz66KaglwmgxIk=";
};
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.icloud3;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
in
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "icloud3";
inherit version;
src = sources.icloud3;
nativeBuildInputs = with home-assistant.python.pkgs; [
fido2

View File

@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"variables": {
"version": "v3.3.4.4"
},
"sources": {
"icloud3": {
"fetcher": "github",
"owner": "gcobb321",
"repo": "icloud3",
"tag": "v3.3.4.4",
"hash": "sha256-B63iY4OC00PGXx/3aq/rkiO0xK11hXz66KaglwmgxIk="
}
}
}

View File

@@ -1,20 +1,27 @@
{
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
fetchFromGitHub,
home-assistant,
...
}:
buildHomeAssistantComponent rec {
owner = "acon96";
domain = "llama_conversation";
version = "v0.4.6";
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
src = fetchFromGitHub {
owner = owner;
repo = "home-llm";
rev = version;
hash = "sha256-QmpyqNRhmnqFNiKPHm8GKuvZhbuYWDLck3eFC9MlIKQ=";
};
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.llama_conversation;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
in
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "llama_conversation";
inherit version;
src = sources.llama_conversation;
nativeBuildInputs = with home-assistant.python.pkgs; [
anthropic

View File

@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"variables": {
"version": "v0.4.6"
},
"sources": {
"llama_conversation": {
"fetcher": "github",
"owner": "acon96",
"repo": "home-llm",
"tag": "v0.4.6",
"hash": "sha256-QmpyqNRhmnqFNiKPHm8GKuvZhbuYWDLck3eFC9MlIKQ="
}
}
}

View File

@@ -1,20 +1,27 @@
{
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
fetchFromGitHub,
home-assistant,
...
}:
buildHomeAssistantComponent rec {
owner = "moralmunky";
domain = "mail_and_packages";
version = "0.5.0";
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
src = fetchFromGitHub {
owner = owner;
repo = "Home-Assistant-Mail-And-Packages";
tag = version;
hash = "sha256-Am3EYkSYCQuYJmm6xdUwCa0h/ldk4hwTxRTxc0BU2j8=";
};
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.mail_and_packages;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
in
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "mail_and_packages";
inherit version;
src = sources.mail_and_packages;
nativeBuildInputs = with home-assistant.python.pkgs; [
aioimaplib

View File

@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"variables": {
"version": "0.5.0"
},
"sources": {
"mail_and_packages": {
"fetcher": "github",
"owner": "moralmunky",
"repo": "Home-Assistant-Mail-And-Packages",
"tag": "0.5.0",
"hash": "sha256-Am3EYkSYCQuYJmm6xdUwCa0h/ldk4hwTxRTxc0BU2j8="
}
}
}

View File

@@ -1,22 +1,38 @@
{
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
fetchFromGitHub,
home-assistant,
...
}:
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.nanokvm;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
# python-nanokvm must be built against HA's Python interpreter.
# Re-use the source from its own version.json to avoid duplication.
nanokvm-ver = importJSON ../../python/python-nanokvm/version.json;
nanokvm-selected = selectVariant nanokvm-ver null null;
nanokvm-sources = mkAllSources pkgs nanokvm-selected;
python3Packages = home-assistant.python.pkgs;
python-nanokvm = python3Packages.buildPythonPackage rec {
python-nanokvm = python3Packages.buildPythonPackage {
pname = "nanokvm";
version = "0.1.0";
version =
if nanokvm-selected.sources."python-nanokvm" ? tag then
nanokvm-selected.sources."python-nanokvm".tag
else
nanokvm-selected.sources."python-nanokvm".rev;
format = "pyproject";
src = fetchFromGitHub {
owner = "puddly";
repo = "python-${pname}";
rev = "v${version}";
sha256 = "sha256-vIxvQtjaInnWQce7syiOWpP2kaw0IVw03HPovnB2J5M=";
};
src = nanokvm-sources."python-nanokvm";
prePatch = ''
rm -f pyproject.toml
@@ -50,9 +66,7 @@ let
EOF
'';
buildInputs = with python3Packages; [
setuptools
];
buildInputs = with python3Packages; [ setuptools ];
propagatedBuildInputs = with python3Packages; [
aiohttp
@@ -66,21 +80,14 @@ let
doCheck = false;
};
in
buildHomeAssistantComponent rec {
owner = "Wouter0100";
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "nanokvm";
version = "v0.0.4";
inherit version;
src = fetchFromGitHub {
owner = owner;
repo = "homeassistant-nanokvm";
rev = "bdd2ca39d8050e4b38bb7917ee4034f2fcd49471";
hash = "sha256-S6g9mfPEixqeGQkXVK8PZJ/dnEC5ThKtbELAIAhCANM=";
};
src = sources.nanokvm;
propagatedBuildInputs = [
python-nanokvm
];
propagatedBuildInputs = [ python-nanokvm ];
postPatch = ''
substituteInPlace custom_components/nanokvm/manifest.json \

View File

@@ -0,0 +1,18 @@
{
"schemaVersion": 1,
"variables": {
"version": "v0.0.4"
},
"sources": {
"nanokvm": {
"fetcher": "github",
"owner": "Wouter0100",
"repo": "homeassistant-nanokvm",
"rev": "bdd2ca39d8050e4b38bb7917ee4034f2fcd49471",
"hash": "sha256-S6g9mfPEixqeGQkXVK8PZJ/dnEC5ThKtbELAIAhCANM="
}
},
"notes": {
"hint": "The nanokvm component embeds a vendored copy of python-nanokvm. The dep is tracked separately in packages/python/python-nanokvm/version.json."
}
}

View File

@@ -1,22 +1,29 @@
{
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
fetchFromGitHub,
home-assistant,
...
}:
buildHomeAssistantComponent rec {
owner = "HASwitchPlate";
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.openhasp;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
in
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "openhasp";
version = "0.7.8";
inherit version;
src = fetchFromGitHub {
owner = owner;
repo = "openHASP-custom-component";
rev = version;
hash = "sha256-5h1EqwpnsmWexqB3J/X4OcN9bfBYUxGxLF1Hrmoi5LY=";
};
src = sources.openhasp;
# Use HA's own Python (3.14) packages to satisfy the manifest check for jsonschema
# Use HA's own Python packages to satisfy the manifest check for jsonschema
nativeBuildInputs = [ home-assistant.python.pkgs.jsonschema ];
meta = {

View File

@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"variables": {
"version": "0.7.8"
},
"sources": {
"openhasp": {
"fetcher": "github",
"owner": "HASwitchPlate",
"repo": "openHASP-custom-component",
"tag": "0.7.8",
"hash": "sha256-5h1EqwpnsmWexqB3J/X4OcN9bfBYUxGxLF1Hrmoi5LY="
}
}
}

View File

@@ -1,21 +1,26 @@
{
buildHomeAssistantComponent,
fetchFromGitHub,
pkgs,
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
...
}:
buildHomeAssistantComponent rec {
owner = "vaparr";
domain = "overseerr";
version = "0.1.42";
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
src = fetchFromGitHub {
owner = owner;
repo = "ha-overseerr";
rev = version;
hash = "sha256-UvUowCgfay9aRV+iC/AQ9vvJzhGZbH+/1kVjxPFBKcI=";
};
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.overseerr;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
in
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "overseerr";
inherit version;
src = sources.overseerr;
nativeBuildInputs = [ pkgs.${namespace}.pyoverseerr ];

View File

@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"variables": {
"version": "0.1.42"
},
"sources": {
"overseerr": {
"fetcher": "github",
"owner": "vaparr",
"repo": "ha-overseerr",
"tag": "0.1.42",
"hash": "sha256-UvUowCgfay9aRV+iC/AQ9vvJzhGZbH+/1kVjxPFBKcI="
}
}
}

View File

@@ -1,15 +1,26 @@
{ buildHomeAssistantComponent, fetchFromGitHub, ... }:
buildHomeAssistantComponent rec {
owner = "jjjonesjr33";
domain = "petlibro";
version = "v1.2.30.7";
{
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
...
}:
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
src = fetchFromGitHub {
owner = owner;
repo = "petlibro";
rev = version;
hash = "sha256-+zmeUQHRXrBYQ5pEWLAtu9TZ8ELiwCLliRPktKlpI8k=";
};
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.petlibro;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
in
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "petlibro";
inherit version;
src = sources.petlibro;
meta = {
changelog = "https://github.com/jjjonesjr33/petlibro/releases/tag/${version}";

View File

@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"variables": {
"version": "v1.2.30.7"
},
"sources": {
"petlibro": {
"fetcher": "github",
"owner": "jjjonesjr33",
"repo": "petlibro",
"tag": "v1.2.30.7",
"hash": "sha256-+zmeUQHRXrBYQ5pEWLAtu9TZ8ELiwCLliRPktKlpI8k="
}
}
}

View File

@@ -1,21 +1,26 @@
{
buildHomeAssistantComponent,
fetchFromGitHub,
pkgs,
lib,
namespace,
pkgs,
buildHomeAssistantComponent,
...
}:
buildHomeAssistantComponent rec {
owner = "SecKatie";
domain = "wyzeapi";
version = "0.1.36";
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
src = fetchFromGitHub {
owner = owner;
repo = "ha-wyzeapi";
rev = version;
hash = "sha256-4i5Ne3LYV7DXn6F6e5MCVZhIdDYR7fe3tT2GeSmYb/k=";
};
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
src-meta = selected.sources.wyzeapi;
version = if src-meta ? tag then src-meta.tag else src-meta.rev;
in
buildHomeAssistantComponent {
owner = src-meta.owner;
domain = "wyzeapi";
inherit version;
src = sources.wyzeapi;
# wyzeapy must be built against HA's Python; pkgs.mjallen.wyzeapy uses home-assistant.python
dependencies = [ pkgs.${namespace}.wyzeapy ];

View File

@@ -0,0 +1,15 @@
{
"schemaVersion": 1,
"variables": {
"version": "0.1.36"
},
"sources": {
"wyzeapi": {
"fetcher": "github",
"owner": "SecKatie",
"repo": "ha-wyzeapi",
"tag": "0.1.36",
"hash": "sha256-4i5Ne3LYV7DXn6F6e5MCVZhIdDYR7fe3tT2GeSmYb/k="
}
}
}

View File

@@ -1,24 +1,38 @@
{ pkgs, fetchPypi, ... }:
pkgs.python3Packages.buildPythonPackage rec {
pname = "homeassistant_api";
version = "5.0.0";
format = "pyproject";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-UNKTtgInrVJtjHb1WVlUbcbhjBOtTX00eHmm54ww0rY=";
};
{
lib,
namespace,
pkgs,
...
}:
let
inherit (lib.trivial) importJSON;
inherit (lib.${namespace}) selectVariant mkAllSources;
versionSpec = importJSON ./version.json;
selected = selectVariant versionSpec null null;
sources = mkAllSources pkgs selected;
version = selected.variables.version;
in
pkgs.python3Packages.buildPythonPackage {
pname = "homeassistant_api";
inherit version;
format = "pyproject";
src = sources.homeassistant_api;
# do not run tests
doCheck = false;
nativeBuildInputs = with pkgs.python3Packages; [
poetry-core
requests-cache
];
dependencies = with pkgs.python3Packages; [
requests-cache
pydantic
websockets
];
propagatedBuildInputs = with pkgs.python3Packages; [
aiohttp
aiohttp-client-cache
@@ -28,11 +42,13 @@ pkgs.python3Packages.buildPythonPackage rec {
simplejson
websockets
];
pythonRelaxDeps = [
"requests-cache"
"pydantic"
"websockets"
];
pythonImportsCheck = [
"homeassistant_api"
];

View File

@@ -0,0 +1,13 @@
{
"schemaVersion": 1,
"variables": {
"version": "5.0.0"
},
"sources": {
"homeassistant_api": {
"fetcher": "pypi",
"name": "homeassistant_api",
"hash": "sha256-UNKTtgInrVJtjHb1WVlUbcbhjBOtTX00eHmm54ww0rY="
}
}
}