Compare commits

...

17 Commits

Author SHA1 Message Date
1a5bb73c66 fixed energy out integrations 2025-12-14 15:38:10 -05:00
c38332ce90 adding more extraPackages to brain HA 2025-12-09 18:50:00 -05:00
7ffb7b4a37 adding AGENTS.md 2025-12-06 17:54:03 -05:00
eb04f4a56d 'system' has been renamed to/replaced by 'stdenv.hostPlatform.system' 2025-12-06 12:45:55 -05:00
5b8e543226 added environment sensor 2025-12-06 12:33:10 -05:00
da48f62195 splint HA battery monitoring 2025-12-06 12:33:10 -05:00
60f2ab1039 testing google antigravity 2025-12-06 12:24:54 -05:00
c1de454005 ran treefmt 2025-11-28 09:16:46 -05:00
391e37b746 fixing git user settings 2025-11-28 09:16:46 -05:00
github-actions[bot]
27565173d4 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/0d05242?dir=pkgs/firefox-addons' (2025-11-20)
  → 'gitlab:rycee/nur-expressions/cefce78?dir=pkgs/firefox-addons' (2025-11-21)
• Updated input 'home-manager':
    'github:nix-community/home-manager/ea164b7' (2025-11-17)
  → 'github:nix-community/home-manager/d10a9b1' (2025-11-21)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/973aa8b' (2025-11-21)
  → 'github:nixos/nixpkgs/8a7cf7e' (2025-11-22)
2025-11-22 09:49:19 -05:00
0c0ed92cb4 fixing user git settings 2025-11-20 21:36:54 -05:00
github-actions[bot]
cc9996d6fa flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/d84c9ea?dir=pkgs/firefox-addons' (2025-11-14)
  → 'gitlab:rycee/nur-expressions/0d05242?dir=pkgs/firefox-addons' (2025-11-20)
• Updated input 'home-manager':
    'github:nix-community/home-manager/827f2a2' (2025-11-12)
  → 'github:nix-community/home-manager/ea164b7' (2025-11-17)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/c5ae371' (2025-11-12)
  → 'github:nixos/nixpkgs/89c2b23' (2025-11-17)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/20f91b6' (2025-11-15)
  → 'github:nixos/nixpkgs/973aa8b' (2025-11-21)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/a2bcd1c' (2025-11-13)
  → 'github:Mic92/sops-nix/877bb49' (2025-11-20)
2025-11-20 21:30:32 -05:00
102f36eb1b adding post quantum ssh KexAlgorithms 2025-11-16 08:22:41 -05:00
9ec988729b testing zfs_unstable and linuxPackages_6_17 2025-11-15 13:47:13 -05:00
4e3c25afb4 added draw io setting 2025-11-15 13:47:13 -05:00
0d482aca4b HA update 2025-11-15 13:47:13 -05:00
github-actions[bot]
c624781d84 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-addons':
    'gitlab:rycee/nur-expressions/5cca27f1bb30a26140d0cf60ab34daa45b4fa11f?dir=pkgs/firefox-addons&narHash=sha256-h%2BliPhhMw1yYvkDGLHzQJQShQs%2ByLjNgjfAyZX%2BsRrM%3D' (2025-10-17)
  → 'gitlab:rycee/nur-expressions/d84c9ea299c1e4629f0d0716799f5c57975021ce?dir=pkgs/firefox-addons&narHash=sha256-FjnOyxTNNt85ZNjtLqRnG23LKQyvilGzyrO0bLffMm8%3D' (2025-11-14)
• Updated input 'home-manager':
    'github:nix-community/home-manager/722792af097dff5790f1a66d271a47759f477755?narHash=sha256-mlDqR1Ntgs9uYYEAUR1IhamKBO0lxoNS4zGLzEZaY0A%3D' (2025-10-17)
  → 'github:nix-community/home-manager/827f2a23373a774a8805f84ca5344654c31f354b?narHash=sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH%2BPEupBJqM%3D' (2025-11-12)
• Updated input 'nixos-hardware':
    'github:nixos/nixos-hardware/9ed85f8afebf2b7478f25db0a98d0e782c0ed903?narHash=sha256-2GoxVaKWTHBxRoeUYSjv0AfSOx4qw5CWSFz2b%2BVolKU%3D' (2025-10-10)
  → 'github:nixos/nixos-hardware/899dc449bc6428b9ee6b3b8f771ca2b0ef945ab9?narHash=sha256-BWWnUUT01lPwCWUvS0p6Px5UOBFeXJ8jR%2BZdLX8IbrU%3D' (2025-11-11)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/544961dfcce86422ba200ed9a0b00dd4b1486ec5?narHash=sha256-EVAqOteLBFmd7pKkb0%2BFIUyzTF61VKi7YmvP1tw4nEw%3D' (2025-10-15)
  → 'github:nixos/nixpkgs/c5ae371f1a6a7fd27823bc500d9390b38c05fa55?narHash=sha256-4PqRErxfe%2B2toFJFgcRKZ0UI9NSIOJa%2B7RXVtBhy4KE%3D' (2025-11-12)
• Updated input 'nixpkgs-master':
    'github:nixos/nixpkgs/d85429339c0bcf0428084fe1306c970aed364417?narHash=sha256-1296zQfPiLZNrLKzX1t%2BkunadeI/mH82hKze3voduEI%3D' (2025-10-18)
  → 'github:nixos/nixpkgs/20f91b6ba5eff456057e359946c3e832173b18df?narHash=sha256-jVuaLD1Yf2aHILt2EedLFhqJnQXAS8kIo3P4LbtYDyg%3D' (2025-11-15)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/ab8d56e85b8be14cff9d93735951e30c3e86a437?narHash=sha256-8mN3kqyqa2PKY0wwZ2UmMEYMcxvNTwLaOrrDsw6Qi4E%3D' (2025-10-13)
  → 'github:Mic92/sops-nix/a2bcd1c25c1d29e22756ccae094032ab4ada2268?narHash=sha256-A91a%2BK0Q9wfdPLwL06e/kbHeAWSzPYy2EGdTDsyfb%2Bs%3D' (2025-11-13)
2025-11-15 13:47:13 -05:00
19 changed files with 383 additions and 217 deletions

5
AGENTS.md Normal file
View File

@@ -0,0 +1,5 @@
## Dev environment tips
- use treefmt to format all files
- make python code ruff compliant
- use pytest to test python code

View File

@@ -37,6 +37,8 @@
TcpKeepAlive = "no"; TcpKeepAlive = "no";
X11Forwarding = lib.mkDefault false; X11Forwarding = lib.mkDefault false;
KexAlgorithms = [ KexAlgorithms = [
"sntrup761x25519-sha512@openssh.com"
"mlkem768x25519-sha256"
"curve25519-sha256@libssh.org" "curve25519-sha256@libssh.org"
"diffie-hellman-group-exchange-sha256" "diffie-hellman-group-exchange-sha256"
]; ];

View File

@@ -1,8 +1,8 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
boot = { boot = {
kernelPackages = pkgs.linuxPackages_6_16; kernelPackages = pkgs.linuxPackages_6_17;
zfs.package = pkgs.zfs_2_3; zfs.package = pkgs.zfs_unstable;
}; };
hardware.bluetooth = { hardware.bluetooth = {

View File

@@ -1,129 +0,0 @@
esphome:
name: batteries
friendly_name: batteries
esp32:
board: esp32dev
framework:
type: arduino
logger:
api:
encryption:
key: !secret api_key
external_components:
- source: github://syssi/esphome-jk-bms@main
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
captive_portal:
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: true
ble_client:
- mac_address: "C8:47:80:29:0F:DB"
id: jk_ble0
- mac_address: "C8:47:80:37:9D:DD"
id: jk_ble1
jk_bms_ble:
- ble_client_id: jk_ble0
protocol_version: JK02_32S
throttle: 1s
id: jk_bms0
- ble_client_id: jk_ble1
protocol_version: JK02_32S
throttle: 1s
id: jk_bms1
sensor:
# BMS1 sensors
- platform: jk_bms_ble
jk_bms_ble_id: jk_bms0
total_voltage:
name: "JK0 Total Voltage"
current:
name: "JK0 Current"
state_of_charge:
name: "JK0 SoC"
power:
name: "JK0 Power"
temperature_sensor_1:
name: "JK0 Temp 1"
temperature_sensor_2:
name: "JK0 Temp 2"
balancing:
name: "JK0 balancing"
charging_cycles:
name: "JK0 charging cycles"
total_runtime:
name: "JK0 total runtime"
balancing_current:
name: "JK0 balancing current"
# BMS2 sensors
- platform: jk_bms_ble
jk_bms_ble_id: jk_bms1
total_voltage:
name: "JK1 Total Voltage"
current:
name: "JK1 Current"
state_of_charge:
name: "JK1 SoC"
power:
name: "Jk1 Power"
temperature_sensor_1:
name: "JK1 Temp 1"
temperature_sensor_2:
name: "Jk1 Temp 2"
balancing:
name: "JK1 balancing"
charging_cycles:
name: "JK1 charging cycles"
total_runtime:
name: "JK1 total runtime"
balancing_current:
name: "JK1 balancing current"
text_sensor:
- platform: jk_bms_ble
jk_bms_ble_id: jk_bms0
errors:
name: "JK0 Errors"
- platform: jk_bms_ble
jk_bms_ble_id: jk_bms1
errors:
name: "JK1 Errors"
switch:
- platform: jk_bms_ble
jk_bms_ble_id: jk_bms0
charging:
name: "JK0 Charging"
discharging:
name: "JK0 Discharging"
balancer:
name: "JK0 Balancing"
- platform: jk_bms_ble
jk_bms_ble_id: jk_bms1
charging:
name: "JK1 Charging"
discharging:
name: "JK1 Discharging"
balancer:
name: "JK1 Balancing"

132
esphome/battery0.yml Normal file
View File

@@ -0,0 +1,132 @@
esphome:
name: batteries
friendly_name: batteries
esp32:
board: esp32dev
framework:
type: arduino
logger:
api:
encryption:
key: !secret api_key
external_components:
- source: github://syssi/esphome-jk-bms@main
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
fast_connect: on
captive_portal:
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: true
ble_client:
- mac_address: "C8:47:80:29:0F:DB"
id: jk_ble0
jk_bms_ble:
- ble_client_id: jk_ble0
protocol_version: JK02_32S
throttle: 1s
id: jk_bms0
button:
- platform: jk_bms_ble
retrieve_settings:
name: "JK0 retrieve settings"
retrieve_device_info:
name: "JK0 retrieve device info"
sensor:
- platform: jk_bms_ble
jk_bms_ble_id: jk_bms0
total_voltage:
name: "JK0 Total Voltage"
state_of_charge:
name: "JK0 SoC"
charging_power:
name: "JK0 charging power"
discharging_power:
name: "JK0 discharging power"
temperature_sensor_1:
name: "JK0 Temp 1"
temperature_sensor_2:
name: "JK0 Temp 2"
balancing:
name: "JK0 balancing"
total_runtime:
name: "JK0 total runtime"
balancing_current:
name: "JK0 balancing current"
delta_cell_voltage:
name: "JK0 cell delta voltage"
average_cell_voltage:
name: "JK0 cell average voltage"
cell_voltage_1:
name: "JK0 cell voltage 1"
cell_voltage_2:
name: "JK0 cell voltage 2"
cell_voltage_3:
name: "JK0 cell voltage 3"
cell_voltage_4:
name: "JK0 cell voltage 4"
cell_voltage_5:
name: "JK0 cell voltage 5"
cell_voltage_6:
name: "JK0 cell voltage 6"
cell_voltage_7:
name: "JK0 cell voltage 7"
cell_voltage_8:
name: "JK0 cell voltage 8"
cell_resistance_1:
name: "JK0 cell resistance 1"
cell_resistance_2:
name: "JK0 cell resistance 2"
cell_resistance_3:
name: "JK0 cell resistance 3"
cell_resistance_4:
name: "JK0 cell resistance 4"
cell_resistance_5:
name: "JK0 cell resistance 5"
cell_resistance_6:
name: "JK0 cell resistance 6"
cell_resistance_7:
name: "JK0 cell resistance 7"
cell_resistance_8:
name: "JK0 cell resistance 8"
total_charging_cycle_capacity:
name: "JK0 total charging cycle capacity"
text_sensor:
- platform: jk_bms_ble
jk_bms_ble_id: jk_bms0
errors:
name: "JK0 Errors"
switch:
- platform: jk_bms_ble
jk_bms_ble_id: jk_bms0
charging:
name: "JK0 Charging"
discharging:
name: "JK0 Discharging"
balancer:
name: "JK0 Balancing"
- platform: ble_client
ble_client_id: jk_ble0
name: "JK0 enable bluetooth connection"
id: ble_client_switch0

132
esphome/battery1.yml Normal file
View File

@@ -0,0 +1,132 @@
esphome:
name: battery1
friendly_name: battery1
esp32:
board: esp32dev
framework:
type: arduino
logger:
api:
encryption:
key: !secret api_key
external_components:
- source: github://syssi/esphome-jk-bms@main
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
fast_connect: on
captive_portal:
esp32_ble_tracker:
scan_parameters:
interval: 1100ms
window: 1100ms
active: true
ble_client:
- mac_address: "C8:47:80:37:9D:DD"
id: jk_ble1
jk_bms_ble:
- ble_client_id: jk_ble1
protocol_version: JK02_32S
throttle: 1s
id: jk_bms1
button:
- platform: jk_bms_ble
retrieve_settings:
name: "JK1 retrieve settings"
retrieve_device_info:
name: "JK1 retrieve device info"
sensor:
- platform: jk_bms_ble
jk_bms_ble_id: jk_bms1
total_voltage:
name: "JK1 Total Voltage"
state_of_charge:
name: "JK1 SoC"
charging_power:
name: "JK1 charging power"
discharging_power:
name: "JK1 discharging power"
temperature_sensor_1:
name: "JK1 Temp 1"
temperature_sensor_2:
name: "JK1 Temp 2"
balancing:
name: "JK1 balancing"
total_runtime:
name: "JK1 total runtime"
balancing_current:
name: "JK1 balancing current"
delta_cell_voltage:
name: "JK1 cell delta voltage"
average_cell_voltage:
name: "JK1 cell average voltage"
cell_voltage_1:
name: "JK1 cell voltage 1"
cell_voltage_2:
name: "JK1 cell voltage 2"
cell_voltage_3:
name: "JK1 cell voltage 3"
cell_voltage_4:
name: "JK1 cell voltage 4"
cell_voltage_5:
name: "JK1 cell voltage 5"
cell_voltage_6:
name: "JK1 cell voltage 6"
cell_voltage_7:
name: "JK1 cell voltage 7"
cell_voltage_8:
name: "JK1 cell voltage 8"
cell_resistance_1:
name: "JK1 cell resistance 1"
cell_resistance_2:
name: "JK1 cell resistance 2"
cell_resistance_3:
name: "JK1 cell resistance 3"
cell_resistance_4:
name: "JK1 cell resistance 4"
cell_resistance_5:
name: "JK1 cell resistance 5"
cell_resistance_6:
name: "JK1 cell resistance 6"
cell_resistance_7:
name: "JK1 cell resistance 7"
cell_resistance_8:
name: "JK1 cell resistance 8"
total_charging_cycle_capacity:
name: "JK1 total charging cycle capacity"
text_sensor:
- platform: jk_bms_ble
jk_bms_ble_id: jk_bms1
errors:
name: "JK1 Errors"
switch:
- platform: jk_bms_ble
jk_bms_ble_id: jk_bms1
charging:
name: "JK1 Charging"
discharging:
name: "JK1 Discharging"
balancer:
name: "JK1 Balancing"
- platform: ble_client
ble_client_id: jk_ble1
name: "JK1 enable bluetooth connection"
id: ble_client_switch0

48
esphome/environment.yml Normal file
View File

@@ -0,0 +1,48 @@
esphome:
name: "environment"
friendly_name: "environment"
esp32:
board: esp32dev
framework:
type: arduino
i2c:
sda: GPIO21
scl: GPIO22
scan: True
id: bus_a
sensor:
- platform: aht10
i2c_id: bus_a
address: 0x38
variant: AHT20
temperature:
name: "environment Temperature"
id: aht10_temperature
humidity:
name: "environment Humidity"
id: aht10_humidity
update_interval: 5s
web_server:
port: 80
logger:
level: DEBUG
api:
encryption:
key: !secret api_key
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
fast_connect: on
captive_portal:

36
flake.lock generated
View File

@@ -8,11 +8,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1760673822, "lastModified": 1763697825,
"narHash": "sha256-h+liPhhMw1yYvkDGLHzQJQShQs+yLjNgjfAyZX+sRrM=", "narHash": "sha256-AgCCcVPOi1tuzuW5/StlwqBjRWSX62oL97qWuxrq5UA=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "5cca27f1bb30a26140d0cf60ab34daa45b4fa11f", "rev": "cefce78793603231be226fa77e7ad58e0e4899b8",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -29,11 +29,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760662441, "lastModified": 1763748372,
"narHash": "sha256-mlDqR1Ntgs9uYYEAUR1IhamKBO0lxoNS4zGLzEZaY0A=", "narHash": "sha256-AUc78Qv3sWir0hvbmfXoZ7Jzq9VVL97l+sP9Jgms+JU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "722792af097dff5790f1a66d271a47759f477755", "rev": "d10a9b16b2a3ee28433f3d1c603f4e9f1fecb8e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -44,11 +44,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1760106635, "lastModified": 1762847253,
"narHash": "sha256-2GoxVaKWTHBxRoeUYSjv0AfSOx4qw5CWSFz2b+VolKU=", "narHash": "sha256-BWWnUUT01lPwCWUvS0p6Px5UOBFeXJ8jR+ZdLX8IbrU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "9ed85f8afebf2b7478f25db0a98d0e782c0ed903", "rev": "899dc449bc6428b9ee6b3b8f771ca2b0ef945ab9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -60,11 +60,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1760524057, "lastModified": 1763421233,
"narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=", "narHash": "sha256-Stk9ZYRkGrnnpyJ4eqt9eQtdFWRRIvMxpNRf4sIegnw=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5", "rev": "89c2b2330e733d6cdb5eae7b899326930c2c0648",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -76,11 +76,11 @@
}, },
"nixpkgs-master": { "nixpkgs-master": {
"locked": { "locked": {
"lastModified": 1760751316, "lastModified": 1763774007,
"narHash": "sha256-1296zQfPiLZNrLKzX1t+kunadeI/mH82hKze3voduEI=", "narHash": "sha256-PPeHfKA11P09kBkBD5pS3tIAFjnG5muHQnODQGTY87g=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d85429339c0bcf0428084fe1306c970aed364417", "rev": "8a7cf7e9e18384533d9ecd0bfbcf475ac1dc497e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -125,11 +125,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1760393368, "lastModified": 1763607916,
"narHash": "sha256-8mN3kqyqa2PKY0wwZ2UmMEYMcxvNTwLaOrrDsw6Qi4E=", "narHash": "sha256-VefBA1JWRXM929mBAFohFUtQJLUnEwZ2vmYUNkFnSjE=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "ab8d56e85b8be14cff9d93735951e30c3e86a437", "rev": "877bb495a6f8faf0d89fc10bd142c4b7ed2bcc0b",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -3,14 +3,14 @@
# When applied, the stable nixpkgs set (declared in the flake inputs) will be accessible through 'pkgs.stable' # When applied, the stable nixpkgs set (declared in the flake inputs) will be accessible through 'pkgs.stable'
stable = final: _prev: { stable = final: _prev: {
stable = import inputs.nixpkgs-stable { stable = import inputs.nixpkgs-stable {
system = final.system; system = final.stdenv.hostPlatform.system;
config.allowUnfree = true; config.allowUnfree = true;
}; };
}; };
# When applied, the master nixpkgs set (declared in the flake inputs) will be accessible through 'pkgs.master' # When applied, the master nixpkgs set (declared in the flake inputs) will be accessible through 'pkgs.master'
master = final: _prev: { master = final: _prev: {
master = import inputs.nixpkgs-master { master = import inputs.nixpkgs-master {
system = final.system; system = final.stdenv.hostPlatform.system;
config.allowUnfree = true; config.allowUnfree = true;
}; };
}; };

View File

@@ -70,6 +70,8 @@
py-improv-ble-client # for esphome py-improv-ble-client # for esphome
pymodbus # for modbus pymodbus # for modbus
pyopenweathermap # for weather pyopenweathermap # for weather
ical # for todo
uiprotect # unfi integration
]; ];
extraComponents = [ "isal" ]; extraComponents = [ "isal" ];
}; };

View File

@@ -1,45 +1,7 @@
template:
- sensor:
# Battery 0
- name: "JK0 charge power W"
unique_id: jk0_charge_power_w
unit_of_measurement: W
device_class: power
state_class: measurement
state: >
{% set p = states('sensor.batteries_jk0_power')|float(0) %}
{{ max(0, p) }}
- name: "JK0 discharge power W"
unique_id: jk0_discharge_power_w
unit_of_measurement: W
device_class: power
state_class: measurement
state: >
{% set p = states('sensor.batteries_jk0_power')|float(0) %}
{{ max(0, -p) }}
# Battery 1
- name: "JK1 charge power W"
unique_id: jk1_charge_power_w
unit_of_measurement: W
device_class: power
state_class: measurement
state: >
{% set p = states('sensor.batteries_jk1_power')|float(0) %}
{{ max(0, p) }}
- name: "JK1 discharge power W"
unique_id: jk1_discharge_power_w
unit_of_measurement: W
device_class: power
state_class: measurement
state: >
{% set p = states('sensor.batteries_jk1_power')|float(0) %}
{{ max(0, -p) }}
sensor: sensor:
# Battery 0 # Battery 0
- platform: integration - platform: integration
source: sensor.jk0_charge_power_w source: sensor.batteries_jk0_charging_power
name: "JK0 energy in" name: "JK0 energy in"
unique_id: jk0_energy_in_kwh unique_id: jk0_energy_in_kwh
unit_prefix: k unit_prefix: k
@@ -48,7 +10,7 @@ sensor:
max_sub_interval: max_sub_interval:
minutes: 5 minutes: 5
- platform: integration - platform: integration
source: sensor.jk0_discharge_power_w source: sensor.batteries_jk0_discharging_power
name: "JK0 energy out" name: "JK0 energy out"
unique_id: jk0_energy_out_kwh unique_id: jk0_energy_out_kwh
unit_prefix: k unit_prefix: k
@@ -59,7 +21,7 @@ sensor:
# Battery 1 # Battery 1
- platform: integration - platform: integration
source: sensor.jk1_charge_power_w source: sensor.battery1_jk1_charging_power
name: "JK1 energy in" name: "JK1 energy in"
unique_id: jk1_energy_in_kwh unique_id: jk1_energy_in_kwh
unit_prefix: k unit_prefix: k
@@ -68,7 +30,7 @@ sensor:
max_sub_interval: max_sub_interval:
minutes: 5 minutes: 5
- platform: integration - platform: integration
source: sensor.jk1_discharge_power_w source: sensor.battery1_jk1_discharging_power
name: "JK1 energy out" name: "JK1 energy out"
unique_id: jk1_energy_out_kwh unique_id: jk1_energy_out_kwh
unit_prefix: k unit_prefix: k

View File

@@ -68,7 +68,7 @@ in
jellyfin-apiclient-python jellyfin-apiclient-python
psycopg2 psycopg2
pymetno pymetno
pyownet aio-ownet
rokuecp rokuecp
uiprotect uiprotect
wakeonlan wakeonlan

View File

@@ -1,9 +1,11 @@
{ {
programs.git = { programs.git = {
enable = true; enable = true;
userEmail = "dov.kruger@gmail.com"; settings = {
userName = "Dov Kruger"; user = {
extraConfig = { email = "dov.kruger@gmail.com";
name = "Dov Kruger";
};
pull.rebase = true; pull.rebase = true;
color.ui = true; color.ui = true;
}; };

View File

@@ -1,9 +1,11 @@
{ {
programs.git = { programs.git = {
enable = true; enable = true;
userEmail = "DumbPuppy208@gmail.com"; settings = {
userName = "Elise Corvidae"; user = {
extraConfig = { email = "DumbPuppy208@gmail.com";
name = "Elise Corvidae";
};
pull.rebase = true; pull.rebase = true;
color.ui = true; color.ui = true;
}; };

View File

@@ -1,9 +1,11 @@
{ {
programs.git = { programs.git = {
enable = true; enable = true;
userEmail = "matthew.michal11@gmail.com"; settings = {
userName = "Matthew Michal"; user = {
extraConfig = { email = "matthew.michal11@gmail.com";
name = "Matthew Michal";
};
pull.rebase = true; pull.rebase = true;
color.ui = true; color.ui = true;
}; };

View File

@@ -1,9 +1,11 @@
{ {
programs.git = { programs.git = {
enable = true; enable = true;
userEmail = "mousikos112@gmail.com"; settings = {
userName = "megan"; user = {
extraConfig = { email = "mousikos112@gmail.com";
name = "megan";
};
pull.rebase = true; pull.rebase = true;
color.ui = true; color.ui = true;
}; };

View File

@@ -1,9 +1,11 @@
{ {
programs.git = { programs.git = {
enable = true; enable = true;
userEmail = "Richie@tmmworkshop.com"; settings = {
userName = "Richie Cahill"; user = {
extraConfig = { email = "Richie@tmmworkshop.com";
name = "Richie Cahill";
};
pull.rebase = true; pull.rebase = true;
color.ui = true; color.ui = true;
}; };

View File

@@ -9,23 +9,24 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
candy-icons candy-icons
chromium chromium
discord-canary
gimp gimp
gparted
jetbrains.datagrip
mediainfo mediainfo
nemo
nemo-fileroller
obs-studio obs-studio
obsidian obsidian
prismlauncher prismlauncher
proxychains
prusa-slicer prusa-slicer
signal-desktop
sweet-nova sweet-nova
util-linux util-linux
vlc vlc
# comms
discord-canary
signal-desktop
zoom-us zoom-us
# dev tools
jetbrains.datagrip
proxychains
master.antigravity-fhs
gparted
# games # games
dwarf-fortress dwarf-fortress
tower-pixel-dungeon tower-pixel-dungeon

View File

@@ -88,5 +88,6 @@
"redhat.telemetry.enabled": true, "redhat.telemetry.enabled": true,
"gitlens.plusFeatures.enabled": false, "gitlens.plusFeatures.enabled": false,
// new // new
"hediet.vscode-drawio.resizeImages": null "hediet.vscode-drawio.resizeImages": null,
"hediet.vscode-drawio.appearance": "automatic"
} }