update ha components

This commit is contained in:
mjallen18
2025-12-05 17:22:51 -06:00
parent f54285bfe6
commit 0b4d63fd09
16 changed files with 91 additions and 228 deletions

10
flake.lock generated
View File

@@ -1573,16 +1573,16 @@
]
},
"locked": {
"lastModified": 1764603586,
"narHash": "sha256-bJK+w6XxNRXtPevYgzlfXulgSql9HqOvKJV8ADWJNZ8=",
"lastModified": 1764974171,
"narHash": "sha256-Da9/3xlOzlGHXkUaPYUwwFet3uWjnNlYHNUNBrl0WD4=",
"owner": "mjallen18",
"repo": "lib",
"rev": "ddfab125d3331c792c02a98fb1b0cb1fec755e9a",
"repo": "snowfall-lib",
"rev": "e4bb3f2fd33b26e512f1d90de4c7197d58e708ad",
"type": "github"
},
"original": {
"owner": "mjallen18",
"repo": "lib",
"repo": "snowfall-lib",
"type": "github"
}
},

View File

@@ -6,7 +6,7 @@
# The name "snowfall-lib" is required due to how Snowfall Lib processes your
# flake's inputs.
snowfall-lib = {
url = "github:mjallen18/lib";
url = "github:mjallen18/snowfall-lib";
inputs.nixpkgs.follows = "nixpkgs";
};

View File

@@ -18,12 +18,14 @@
"libraspberrypi"
"libsecret"
"linux"
"opencv"
"pipewire"
"qemu"
"raspberrypi-utils"
"sdl"
"sdl2"
"uv"
"webkitgtk"
# "yubioath-flutter"
];
cacheDir = "/var/cache/ccache"; # default location

View File

@@ -0,0 +1,4 @@
{ ... }:
final: _prev: {
redis = final.valkey;
}

View File

@@ -44,11 +44,11 @@
stdenv.mkDerivation rec {
pname = "bolt-launcher";
version = "0.19.1";
version = "0.20.6";
src = fetchzip {
url = "https://github.com/Adamcake/Bolt/releases/download/${version}/Bolt-Linux.zip";
sha256 = "sha256-5tGXz2PIz0HIHMGNF7NpYVsB8hnueitNYKi6LtJpuPw=";
url = "https://codeberg.org/Adamcake/Bolt/releases/download/${version}/Bolt-Linux.zip";
sha256 = "sha256-kQwQixUwcbyC53q5lyNdcVbMh40Ay5vmWOj4ZVEVznY=";
stripRoot = false;
};

View File

@@ -7,13 +7,13 @@
buildHomeAssistantComponent rec {
owner = "greghesp";
domain = "bambu_lab";
version = "v2.2.12";
version = "v2.2.16";
src = fetchFromGitHub {
owner = owner;
repo = "ha-bambulab";
rev = version;
hash = "sha256-WCUXzfJGfzgFL24V4NljCnml8SJ1un85t5IjkTj3lJY=";
hash = "sha256-fn9Q+AILvZdOmjVTwzGwlFj/AzwPDqNTiiL11CPseD4=";
};
propagatedBuildInputs = with python3Packages; [

View File

@@ -8,27 +8,23 @@
buildHomeAssistantComponent rec {
owner = "simbaja";
domain = "ge_home";
version = "v2025.7.0";
version = "v2025.11.0";
src = fetchFromGitHub {
owner = owner;
repo = "ha_gehome";
rev = version;
hash = "sha256-sCOXzrbUpbRb09QDpcm1Pbr2Xxsg0q3Ecc+tAQv2pXk=";
hash = "sha256-48z2fP2gKo7gM69RcQMOHeF1H/vqUb0hBDk2+uCqYc8=";
};
propagatedBuildInputs = with python3Packages; [
gehomesdk
# gehomesdk
slixmpp
pkgs.${namespace}.gehomesdk
pkgs.${namespace}.magicattr
];
postPatch = ''
substituteInPlace custom_components/ge_home/manifest.json \
--replace '"slixmpp==1.8.3"' '"slixmpp>=1.8.3"'
'';
meta = {
changelog = "https://github.com/simbaja/ha_gehome/releases/tag/${version}";
description = "Integration for GE WiFi-enabled appliances into Home Assistant.";

View File

@@ -7,13 +7,13 @@
buildHomeAssistantComponent rec {
owner = "gcobb321";
domain = "icloud3";
version = "3.3.1";
version = "3.3.4.1";
src = fetchFromGitHub {
owner = owner;
repo = "icloud3";
rev = "v${version}";
hash = "sha256-dwJXGgAramiBtKmbG0i3iJTeAAeGjmq+2CwZjbcPRlw=";
hash = "sha256-5uw1guGLTpaLPjhXQ6jP7kA0iWdbEgNZ/vnBjJWeCPA=";
};
propagatedBuildInputs = with python3Packages; [

View File

@@ -7,13 +7,13 @@
buildHomeAssistantComponent rec {
owner = "acon96";
domain = "llama_conversation";
version = "v0.4.3";
version = "v0.4.4";
src = fetchFromGitHub {
owner = owner;
repo = "home-llm";
rev = version;
hash = "sha256-VldTF7G/ZUexLAAKiyuFWmFlzfvjcCioqjogScQ3Z3g=";
hash = "sha256-L5AL+f5i+LHIF0Fj+Hb5qlmYQbjDeGkAhBeL+qYXrMA=";
};
propagatedBuildInputs = with python3Packages; [

View File

@@ -1,14 +1,14 @@
{ buildHomeAssistantComponent, fetchFromGitHub, ... }:
{ lib, buildHomeAssistantComponent, fetchFromGitHub, ... }:
buildHomeAssistantComponent rec {
owner = "jjjonesjr33";
domain = "petlibro";
version = "v1.2.30.5";
version = "v1.2.30.7";
src = fetchFromGitHub {
owner = owner;
repo = "petlibro";
rev = version;
hash = "sha256-Jcl1DxYFuddcQiqdjs1P62wCwNPrWdBbhdWrmECGUxQ=";
hash = "sha256-+zmeUQHRXrBYQ5pEWLAtu9TZ8ELiwCLliRPktKlpI8k=";
};
meta = {

View File

@@ -0,0 +1,45 @@
{
lib,
python3Packages
}:
python3Packages.buildPythonPackage rec {
pname = "gehomesdk";
version = "2025.11.5";
pyproject = true;
disabled = python3Packages.pythonOlder "3.9";
src = python3Packages.fetchPypi {
inherit pname version;
hash = "sha256-HS33yTE+3n0DKRD4+cr8zAE+xcW1ca7q8inQ7qwKJMA=";
};
build-system = with python3Packages; [ setuptools ];
dependencies = with python3Packages;[
aiohttp
beautifulsoup4
bidict
humanize
lxml
requests
slixmpp
websockets
];
# Tests are not shipped and source is not tagged
# https://github.com/simbaja/gehome/issues/32
doCheck = false;
pythonImportsCheck = [ "gehomesdk" ];
meta = with lib; {
description = "Python SDK for GE smart appliances";
homepage = "https://github.com/simbaja/gehome";
changelog = "https://github.com/simbaja/gehome/blob/master/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
mainProgram = "gehome-appliance-data";
};
}

View File

@@ -1,14 +1,14 @@
{ python3Packages, fetchFromGitHub, ... }:
python3Packages.buildPythonPackage rec {
pname = "nanokvm";
version = "0.0.4";
version = "0.1.0";
format = "pyproject";
src = fetchFromGitHub {
owner = "puddly";
repo = "python-${pname}";
rev = "v${version}";
sha256 = "sha256-L2Z4zZUbNQPrJVd0TGA5obB3tnd+Pk7HL5J+9WOAes0=";
sha256 = "sha256-vIxvQtjaInnWQce7syiOWpP2kaw0IVw03HPovnB2J5M=";
};
buildInputs = with python3Packages; [

View File

@@ -8,7 +8,7 @@
python3Packages.buildPythonPackage rec {
pname = "python-roborock";
version = "3.8.0";
version = "3.10.2";
pyproject = true;
disabled = python3Packages.pythonOlder "3.11";
@@ -17,7 +17,7 @@ python3Packages.buildPythonPackage rec {
owner = "humbertogontijo";
repo = "python-roborock";
tag = "v${version}";
hash = "sha256-Ts1X07eTv4KXv344F3fGazHlDx6XXGQfdmxb+gd/0qc=";
hash = "sha256-iDypFBZe9hCoHdZjgDT56M8SgBiUomCIttMrFdhsN/k=";
};
pythonRelaxDeps = [ "pycryptodome" ];

View File

@@ -6,7 +6,7 @@
python3Packages.buildPythonPackage rec {
pname = "pyvesync";
version = "3.0.0b8";
version = "3.3.3";
pyproject = true;
disabled = python3Packages.pythonOlder "3.11";
@@ -14,8 +14,8 @@ python3Packages.buildPythonPackage rec {
src = fetchFromGitHub {
owner = "webdjoe";
repo = "pyvesync";
rev = "dev-2.0";
hash = "sha256-hJGlcszXD8EXNPppOUuBt9obtunhymlqIGAltkAuZjA=";
rev = "3.3.3";
hash = "sha256-T8cDp1C95gubCfgvkEiqHUn4Rw7pFNCPELo3qNwt9vI=";
};
build-system = with python3Packages; [ setuptools ];

View File

@@ -1,195 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
nodejs,
yarn,
python3,
poetry,
makeWrapper,
fetchYarnDeps,
fixup-yarn-lock,
...
}:
stdenv.mkDerivation rec {
pname = "tabby-web";
version = "0.0.1";
src = fetchFromGitHub {
owner = "Eugeny";
repo = "tabby-web";
rev = "16847cea93f730814c1855241d8ebdea20b1ff6e";
sha256 = "sha256-FaVJdizSQq600awY9HAwMNv6vpcjLVAVqdWnn+sYAxk=";
};
# Fetch yarn dependencies separately for reproducibility
yarnDeps = fetchYarnDeps {
yarnLock = "${src}/frontend/yarn.lock";
hash = "sha256-NInsyKgp2+ppHJZLFn3qKW08rvSSIShhh2JbR91WgOk=";
};
nativeBuildInputs = [
nodejs
yarn
python3
poetry
makeWrapper
fixup-yarn-lock
];
buildInputs = [
python3
];
propagatedBuildInputs = with python3.pkgs; [
gunicorn
django
];
configurePhase = ''
runHook preConfigure
# Set up yarn
export HOME=$TMPDIR
cd frontend
# Fix up yarn.lock and set up offline cache
fixup-yarn-lock yarn.lock
yarn config --offline set yarn-offline-mirror ${yarnDeps}
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
patchShebangs node_modules/
cd ..
# Set up poetry
export POETRY_CACHE_DIR=$TMPDIR/poetry-cache
export POETRY_VENV_IN_PROJECT=1
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
echo "Building frontend..."
cd frontend
yarn run build
cd ..
echo "Backend is ready (dependencies will be handled by Nix)"
runHook postBuild
'';
installPhase = ''
runHook preInstall
# Create output directories
mkdir -p $out/lib/tabby-web
mkdir -p $out/bin
mkdir -p $out/share/tabby-web
# Install backend
cp -r backend/* $out/lib/tabby-web/
# Install frontend build output
if [ -d frontend/dist ]; then
cp -r frontend/dist/* $out/share/tabby-web/
elif [ -d frontend/build ]; then
cp -r frontend/build/* $out/share/tabby-web/
fi
# Create main executable wrapper
makeWrapper ${
python3.withPackages (
ps: with ps; [
gunicorn
django
]
)
}/bin/python $out/bin/tabby-web \
--add-flags "-m gunicorn tabby_web.wsgi:application" \
--set PYTHONPATH "$out/lib/tabby-web" \
--set DJANGO_SETTINGS_MODULE "tabby_web.settings" \
--set STATIC_ROOT "$out/share/tabby-web" \
--run "cd $out/lib/tabby-web" \
--run 'export DATABASE_URL="''${DATABASE_URL:-sqlite:///tmp/tabby-web.db}"' \
--run 'export APP_DIST_STORAGE="''${APP_DIST_STORAGE:-file:///tmp/tabby-web-dist}"' \
--run 'export PORT="''${PORT:-9000}"' \
--add-flags '--bind "0.0.0.0:$PORT"' \
--add-flags "--workers 4" \
--add-flags "--timeout 120"
# Create Django management wrapper
makeWrapper ${
python3.withPackages (ps: with ps; [ django ])
}/bin/python $out/bin/tabby-web-manage \
--add-flags "manage.py" \
--set PYTHONPATH "$out/lib/tabby-web" \
--set DJANGO_SETTINGS_MODULE "tabby_web.settings" \
--set STATIC_ROOT "$out/share/tabby-web" \
--run "cd $out/lib/tabby-web" \
--run 'export DATABASE_URL="''${DATABASE_URL:-sqlite:///tmp/tabby-web.db}"' \
--run 'export APP_DIST_STORAGE="''${APP_DIST_STORAGE:-file:///tmp/tabby-web-dist}"'
# Create a help script
cat > $out/bin/tabby-web-help << 'HELP_EOF'
#!/bin/bash
cat << 'HELP'
Tabby Web - Terminal application server
Usage:
tabby-web Start the server
tabby-web-manage <command> Run Django management commands
tabby-web-help Show this help
Environment Variables:
DATABASE_URL Database connection URL
Examples: sqlite:///path/to/db.sqlite
postgresql://user:pass@host:5432/dbname
APP_DIST_STORAGE Storage URL for app distributions
Examples: file:///path/to/storage
s3://bucket-name/path
gcs://bucket-name/path
PORT Server port (default: 9000)
Social Authentication (optional):
SOCIAL_AUTH_GITHUB_KEY GitHub OAuth key
SOCIAL_AUTH_GITHUB_SECRET GitHub OAuth secret
SOCIAL_AUTH_GITLAB_KEY GitLab OAuth key
SOCIAL_AUTH_GITLAB_SECRET GitLab OAuth secret
SOCIAL_AUTH_MICROSOFT_GRAPH_KEY Microsoft Graph OAuth key
SOCIAL_AUTH_MICROSOFT_GRAPH_SECRET Microsoft Graph OAuth secret
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY Google OAuth2 key
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET Google OAuth2 secret
Examples:
# Development with defaults
tabby-web
# Production with PostgreSQL
DATABASE_URL="postgresql://user:pass@localhost:5432/tabby" tabby-web
# Run migrations
tabby-web-manage migrate
# Add app version
tabby-web-manage add_version 1.0.156-nightly.2
HELP
HELP_EOF
chmod +x $out/bin/tabby-web-help
runHook postInstall
'';
meta = with lib; {
description = "Web-based terminal application";
homepage = "https://github.com/Eugeny/tabby-web";
license = licenses.mit;
maintainers = [ ];
platforms = platforms.linux ++ platforms.darwin;
};
}

View File

@@ -289,6 +289,17 @@ in
tpm2-tools
tpm2-tss
];
persistence."/media/nas/main/persist" = {
hideMounts = true;
directories = [
{
directory = "/var/cache/ccache";
user = "nobody";
group = "nobody";
mode = "u=rwx,g=rwx,o=rx";
}
];
};
};
# Configure programs