Compare commits

..

1 Commits

Author SHA1 Message Date
tm24fan8 772860344c First attempt 2026-04-11 02:23:56 -04:00
12 changed files with 353 additions and 73 deletions
+1 -1
View File
@@ -1 +1 @@
2026.6.0
2026.4.1
+2 -6
View File
@@ -374,6 +374,8 @@
action: script.tony_desktop_refresh
- data: {}
action: script.tina_desktop_refresh
- data: {}
action: script.asus_laptop_refresh
- data: {}
action: script.kallen_desktop_refresh
- data: {}
@@ -6690,10 +6692,4 @@
entity_id: input_boolean.white_noise_emma_bedroom
data: {}
alias: Turn off white noise
- action: input_boolean.turn_off
metadata: {}
target:
entity_id: input_boolean.emma_bedroom_mode_switch
data: {}
alias: Turn off mode switch
mode: restart
+6 -4
View File
@@ -6,18 +6,20 @@
state = hass?.states[this.config?.entity]?.state || '';
}
let bg_color = 'var(--bubble-main-background-color)';
let off_color = this.config?.state_color_button?.off_color
? `var(--${this.config.state_color_button.off_color})`
: 'var(--bubble-main-background-color)';
// Use the configured color or default to accent color
let on_color = this.config?.state_color_button?.color
? `var(--${this.config.state_color_button.color})`
let on_color = this.config?.state_color_button?.on_color
? `var(--${this.config.state_color_button.on_color})`
: 'var(--bubble-accent-color)';
// Main button background
const mainButton = card?.querySelector('.bubble-button-background');
if (mainButton) {
mainButton.style.opacity = '1';
mainButton.style.backgroundColor = state === 'on' ? on_color : bg_color;
mainButton.style.backgroundColor = state === 'on' ? on_color : off_color;
mainButton.style.transition = 'background-color 1s';
}
+7 -2
View File
@@ -1,5 +1,10 @@
- name: color
label: Color (CSS Variable)
- name: on_color
label: On Color (CSS Variable)
selector:
text: {}
required: false
- name: off_color
label: Off Color (CSS Variable)
selector:
text: {}
required: false
+16 -9
View File
@@ -1,6 +1,6 @@
state_color_button:
name: State Color Button
version: 1.2.0
version: 2.0.0
creator: Tony Stork
supported:
- button
@@ -14,7 +14,7 @@ state_color_button:
alt_entity: sensor.your_face
</pre></code-block>
code: |-
${(() => {
`${(() => {
let state;
if (this.config?.state_color_button?.alt_entity) {
state = hass?.states[this.config?.state_color_button?.alt_entity]?.state || '';
@@ -22,18 +22,20 @@ state_color_button:
state = hass?.states[this.config?.entity]?.state || '';
}
let bg_color = 'var(--bubble-main-background-color)';
let off_color = this.config?.state_color_button?.off_color
? `var(--${this.config.state_color_button.off_color})`
: 'var(--bubble-main-background-color)';
// Use the configured color or default to accent color
let on_color = this.config?.state_color_button?.color
? `var(--${this.config.state_color_button.color})`
let on_color = this.config?.state_color_button?.on_color
? `var(--${this.config.state_color_button.on_color})`
: 'var(--bubble-accent-color)';
// Main button background
const mainButton = card?.querySelector('.bubble-button-background');
if (mainButton) {
mainButton.style.opacity = '1';
mainButton.style.backgroundColor = state === 'on' ? on_color : bg_color;
mainButton.style.backgroundColor = state === 'on' ? on_color : off_color;
mainButton.style.transition = 'background-color 1s';
}
@@ -54,10 +56,15 @@ state_color_button:
// No CSS string needed
return '';
})()}
})()}`
editor:
- name: color
label: Color (CSS Variable)
- name: on_color
label: On Color (CSS Variable)
selector:
text: {}
required: false
- name: off_color
label: Off Color (CSS Variable)
selector:
text: {}
required: false
-3
View File
@@ -130,7 +130,6 @@ recorder:
- sensor.*airpods_info
- sensor.*airpods_pro_info
- sensor.*response_time*
- sensor.system_monitor*
entities:
- sensor.avg_ping
- sensor.max_ping
@@ -293,7 +292,6 @@ influxdb:
- sensor.adguard*
- sensor.*response_time*
- sensor.weatheralerts*
- sensor.system_monitor*
entities:
- media_player.living_room_tv
- media_player.basement_tv
@@ -475,7 +473,6 @@ prometheus:
- sensor.adguard*
- sensor.*response_time*
- sensor.weatheralerts*
- sensor.system_monitor*
include_entities:
- media_player.living_room_tv
- media_player.basement_tv
+1 -38
View File
@@ -111,43 +111,6 @@ template:
unique_id: 1577cb2c-234d-41c8-a12e-5111a77df958
state: "{{ (states('sensor.master_bedroom_temperature') | float) <= (states('input_number.master_bedroom_cold_threshold') | float) }}"
device_class: cold
- name: "Second Floor Windows Open"
unique_id: 5656bf10-ac5b-467e-8cf7-e8331598352d
state: >
{% set open = states.binary_sensor
| selectattr('attributes.device_class','eq','window')
| selectattr('entity_id','in',label_entities('window'))
| selectattr('entity_id','in',floor_entities('second_floor'))
| selectattr('state','eq','on')
| list
| count %}
{{ open > 0 }}
attributes:
open_windows: >
{% set open = states.binary_sensor
| selectattr('attributes.device_class','eq','window')
| selectattr('entity_id','in',label_entities('window'))
| selectattr('entity_id','in',floor_entities('second_floor'))
| selectattr('state','eq','on')
| list
| count %}
{{ open }}
- name: "Emma Bedroom Climate Inhibit"
unique_id: 76f8ff76-2994-46bf-913c-736e97d72c3b
state: >
{{ is_state('binary_sensor.second_floor_windows_open','on') and is_state('binary_sensor.emma_bedroom_door','on') }}
- name: "Master Bedroom Climate Inhibit"
unique_id: e529bf0c-7975-477e-a0f8-4a05480674a9
state: >
{% set open = states.binary_sensor
| selectattr('attributes.device_class','eq','window')
| selectattr('entity_id','in',label_entities('window'))
| selectattr('entity_id','in',area_entities('master_bedroom'))
| selectattr('state','eq','on')
| list
| count %}
{% set shower_mode = states('input_boolean.shower_mode') %}
{{ (open > 0) and (shower_mode == 'off') }}
- sensor:
- name: "Master Bedroom Target Temp"
unique_id: 2ce31844-b115-42b8-8213-feccf24e236c
@@ -713,4 +676,4 @@ intent_script:
data:
entity_id: "{{ mode }}"
speech:
text: "Master bedroom set to {{ mode }}"
text: "Master bedroom set to {{ mode }}"
+8 -6
View File
@@ -36,7 +36,8 @@ template:
{% set apparent_temps = [
states.sensor.pirateweather_apparent_temperature,
states.sensor.home_temperature_feels_like,
states.sensor.home_tempest_feels_like
states.sensor.home_tempest_feels_like,
states.sensor.stratton_ave_apparent_temperature
] %}
{% set sensor = apparent_temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(sensor) | float }}
@@ -149,7 +150,8 @@ template:
{% set apparent_temps = [
states.sensor.pirateweather_apparent_temperature,
states.sensor.home_temperature_feels_like,
states.sensor.home_tempest_feels_like
states.sensor.home_tempest_feels_like,
states.sensor.stratton_ave_apparent_temperature
] %}
{% set sensor = apparent_temps | selectattr('state','ne','unavailable') | selectattr('state','ne','unknown') | map(attribute='entity_id') | list | first %}
{{ states(sensor) | float }}
@@ -623,12 +625,12 @@ template:
- name: Heat Index Threshold
unique_id: aae2cd89-dde2-4557-923c-b476d1b49b88
state: >
{% set feelslike = states('sensor.home_tempest_feels_like') | int %}
{% set feelslike = states('sensor.stratton_ave_apparent_temperature') | int %}
{% set threshold = states('input_number.heat_index_threshold') | int %}
{{ feelslike >= threshold }}
device_class: heat
attributes:
current_temp: "{{ states('sensor.home_tempest_feels_like') | int }}"
current_temp: "{{ states('sensor.stratton_ave_apparent_temperature') | int }}"
threshold: "{{ states('input_number.heat_index_threshold') | int }}"
- name: Cold Threshold
unique_id: a7c97b91-6d42-433a-a96b-94e39c58d63f
@@ -653,7 +655,7 @@ template:
- name: Wind Chill Threshold
unique_id: c734b642-b85d-465c-b3c3-aadbe4a00dc1
state: >
{% set feelslike = states('sensor.home_tempest_feels_like') | int %}
{% set feelslike = states('sensor.stratton_ave_apparent_temperature') | int %}
{% set threshold = states('input_number.wind_chill_threshold') | int %}
{{ feelslike <= threshold }}
device_class: cold
@@ -1575,7 +1577,7 @@ sensor:
# - platform: statistics
# unique_id: 6192c95a-8fd1-4ba0-87de-d06fdc071d6b
# name: Apparent Temp Average
# entity_id: sensor.home_tempest_feels_like
# entity_id: sensor.stratton_ave_apparent_temperature
# state_characteristic: average_linear
# max_age:
# days: 7
+306
View File
@@ -0,0 +1,306 @@
mqtt:
sensor:
- name: "ASUS Laptop - GPU Temperature"
unique_id: c3015c8d-ebd7-42fb-9b52-49a6ecb55b69
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/temperatures/gpu_core"
unit_of_measurement: 'C'
icon: mdi:thermometer
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - CPU Temperature"
unique_id: 74b9bc51-0910-4c74-9870-8aa7a2556b70
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/cpu/temperatures/cpu_package"
unit_of_measurement: 'C'
icon: mdi:thermometer
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - Storage C Temperature"
unique_id: fb629ac3-5360-41db-b01f-357aec81bfe7
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/storages/samsung_mznty128hdhp-00000/temperatue"
unit_of_measurement: 'C'
icon: mdi:thermometer
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - Storage D Temperature"
unique_id: 0d24052d-9ba9-4c3d-af11-2d4467437357
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/storages/hgst_hts721010a9e630/temperatue"
unit_of_measurement: 'C'
icon: mdi:thermometer
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - Memory Usage"
unique_id: e30e6644-3a42-4b56-94a5-e9c0096a8858
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/memory/load/memory"
unit_of_measurement: '%'
icon: mdi:memory
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - Virtual Memory Usage"
unique_id: dfff214e-5bcc-414e-b00a-8d6861679eb5
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/memory/load/virtual_memory"
unit_of_measurement: '%'
icon: mdi:memory
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - GPU Core Load"
unique_id: 4484205b-1e04-4365-b25e-e4a01076f360
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/load/gpu_core"
unit_of_measurement: '%'
icon: mdi:speedometer
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - GPU VRAM Usage"
unique_id: 53cf8537-617b-45ea-a127-6f6b9155da73
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/load/gpu_memory"
unit_of_measurement: '%'
icon: mdi:memory
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - GPU Video Engine Load"
unique_id: 2884c6c9-a337-4aa1-a06e-e641abff31de
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/load/gpu_video_engine"
unit_of_measurement: '%'
icon: mdi:speedometer
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - GPU Memory Controller Load"
unique_id: 52ac486e-7788-46a5-ace5-18e6e5bf14f3
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/load/gpu_memory_controller"
unit_of_measurement: '%'
icon: mdi:speedometer
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - GPU Memory Total"
unique_id: e9bf0b89-ba65-40e1-9960-66f13f9a783f
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/data/gpu_memory_total"
unit_of_measurement: 'MB'
icon: mdi:memory
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - GPU Memory Free"
unique_id: 93df12e0-0ddc-496d-b84f-38ae5e98ded4
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/data/gpu_memory_free"
unit_of_measurement: 'MB'
icon: mdi:memory
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - GPU Memory Used"
unique_id: 27451394-529c-414d-b5e5-c0ab00531eb8
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/gpu_nvidia/data/gpu_memory_used"
unit_of_measurement: 'MB'
icon: mdi:memory
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - Memory Used (GB)"
unique_id: 322daf24-a2d4-4404-abde-1d2cfa6d8b44
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/memory/data/memory_used"
unit_of_measurement: 'GB'
icon: mdi:memory
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - Memory Available (GB)"
unique_id: 9112abfe-335f-4f97-9dc5-c1f82d767ff4
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/memory/data/memory_available"
unit_of_measurement: 'GB'
icon: mdi:memory
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - Virtual Memory Used (GB)"
unique_id: 863af510-a677-4e92-82ab-e5f4c9e6ae22
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/memory/data/virtual_memory_used"
unit_of_measurement: 'GB'
icon: mdi:memory
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
- name: "ASUS Laptop - Virtual Memory Available (GB)"
unique_id: 55c14b4a-f483-4f64-95c9-94507aacd313
state_topic: "iotlink/workgroup/asus-laptop/monitor/stats/memory/data/virtual_memory_available"
unit_of_measurement: 'GB'
icon: mdi:memory
value_template: "{{ value }}"
availability_topic: "iotlink/workgroup/asus-laptop/lwt"
payload_available: "ON"
payload_not_available: "OFF"
qos: 1
script:
# asus_laptop_wake:
# # To enable see https://www.home-assistant.io/components/wake_on_lan/
# alias: "Asus Laptop - Wake"
# sequence:
# - service: wake_on_lan.send_magic_packet
# data:
# mac: "18:C0:4D:82:00:95"
asus_laptop_shutdown:
alias: "Asus Laptop - Shutdown"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/commands/shutdown"
payload: ""
asus_laptop_suspend:
alias: "Asus Laptop - Suspend"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/commands/suspend"
payload: ""
asus_laptop_hibernate:
alias: "Asus Laptop - Hibernate"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/commands/hibernate"
payload: ""
asus_laptop_reboot:
alias: "Asus Laptop - Reboot"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/commands/reboot"
payload: ""
asus_laptop_lock:
alias: "Asus Laptop - Lock"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/commands/lock"
payload: ""
asus_laptop_logoff:
alias: "Asus Laptop - Logoff"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/commands/logoff"
payload: ""
asus_laptop_vol_mute:
alias: "Asus Laptop - Toggle Mute"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/commands/volume/mute"
payload: ""
asus_laptop_vol_max:
alias: "Asus Laptop - Vol Max"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/commands/volume/set"
payload: "100"
asus_laptop_displays_on:
alias: "Asus Laptop - Displays ON"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/commands/displays/on"
payload: ""
asus_laptop_displays_off:
alias: "Asus Laptop - Displays OFF"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/commands/displays/off"
payload: ""
asus_laptop_refresh:
alias: "Asus Laptop - Refresh"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/refresh"
payload: ""
- service: button.press
target:
entity_id:
- button.asus_laptop_hassagent_user_refresh
- button.asus_laptop_hassagent_satellite_refresh
asus_laptop_notify:
alias: "Asus Laptop - Notify"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/commands/notify"
payload: '{ "title": "My Notification Title", "message": "This is an example of notification using IOT Link", "launchParams": "toast://open/https://iotlink.gitlab.io" }'
asus_laptop_run_chrome:
alias: "Asus Laptop - Run Chrome"
sequence:
- service: mqtt.publish
data:
topic: "iotlink/workgroup/asus-laptop/commands/run"
payload: '{ "command": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe", "args": "https://iotlink.gitlab.io", "path": "C:\\Program Files\\Google\\Chrome\\Application", "user": "", "visible": true, "fallback": true }'
+2 -2
View File
@@ -494,12 +494,12 @@ template:
unit_of_measurement: 'faults'
state: >-
{% set window_faults = states('sensor.window_faults') | int %}
{% set door_faults = states('sensor.doors_open') | int %}
{% set door_faults = states('sensor.door_faults') | int %}
{{ door_faults + window_faults }}
attributes:
faulted: >
{% set windows = state_attr('sensor.window_faults','faulted') %}
{% set doors = state_attr('sensor.doors_open','faulted') %}
{% set doors = state_attr('sensor.door_faults','faulted') %}
{{ doors + windows }}
icon: >-
{% if states('sensor.total_faults') | int == 0 %}
+3
View File
@@ -106,6 +106,9 @@ template:
- name: Kallen Desktop Idle
unique_id: 680c6ae3-2ed2-451e-858b-2aee688af461
state: "{{ (states('sensor.kallen_desktop_system_idle_time') | int) > (states('input_number.basement_computers_idle_time') | int * 60) }}"
- name: Asus Laptop Idle
unique_id: 7d8eb80a-0a2e-48a9-84b3-33175304dd95
state: "{{ states('sensor.asus_laptop_system_idle_time') | int > 1800 }}"
# - platform: influxdb
# host: 192.168.1.26
+1 -2
View File
@@ -76,8 +76,7 @@ ## HACS Lovelace Cards
- [Layout Card](https://github.com/thomasloven/lovelace-layout-card)
- [Scheduler Card](https://github.com/nielsfaber/scheduler-card) (required for Scheduler component)
- [Horizon Card](https://github.com/rejuvenate/lovelace-horizon-card)
- [Lovelace Home Feed Card](https://github.com/ben-jam1n/lovelace-home-feed-card)
- [Chronicle Card](https://github.com/KadenThomp36/chronicle-card)
- [Lovelace Home Feed Card](https://github.com/gadgetchnnel/lovelace-home-feed-card)
- [Mini Graph Card](https://github.com/kalkih/mini-graph-card)
- [Battery State Card](https://github.com/maxwroc/battery-state-card)
- [Flipdown Timer Card](https://github.com/pmongloid/flipdown-timer-card)