Dashboard Floorplan dla Home Assistant Plan Domu Cz.2 #OdZeraDoAutomatykiDomu #14
Witajcie w serii Od Zera Do Automatycznego Domu. Zabiorę was razem ze mną na przygodę tworzenia od podstaw automatycznego domu na bazie Home Assistant. Postaram się wrzucać do tej serii wszystkie rzeczy które robię na moim nowym sprzęcie. Robię wszystko od nowa! Będzie tego naprawdę sporo…
W tym odcinku pokażę wam jak stworzyć interaktywny plan domu w Home Assistant jako dashboard do sterowania waszym domem i go monitorować. Każdy etap staram się omówić w szczegółach i dawać wiele cennych wskazówek.
Strony:
Program do modelowania: https://www.sweethome3d.com/
Modele 3D: https://www.sweethome3d.com/importModels.jsp
Tekstury: https://www.sweethome3d.com/importTextures.jsp
Narzędzie do renderów: https://sourceforge.net/p/sweethome3d/plug-ins/33/
Program graficzny: https://www.gimp.org/
Kod z materiału:
Configuration.yaml
lovelace:
mode: storage
# Add yaml dashboards
dashboards:
lovelace-yaml:
title: Parter
mode: yaml
icon: mdi:floor-plan
show_in_sidebar: true
filename: panel-parter.yaml
panel-parter.yaml:
title: Home Dashboard
views:
- path: home
title: " "
icon: mdi:floor-plan
panel: true
cards:
#################################### START - OBRAZKI ####################################
- type: picture-elements
image: /local/floorplan/parter-off.png
style:
filter: brightness(10%)
elements:
- entity: light.kitchen_table
state_image:
'unavailable': /local/floorplan/transparent.png
'off': /local/floorplan/transparent.png
'on': /local/floorplan/parter-stol.png
tap_action:
action: none
style:
left: 50%
top: 50%
width: 100%
mix-blend-mode: lighten
type: image
- type: image
image: /local/floorplan/parter-pasekgora.png
style:
left: 50%
top: 50%
width: 100%
- type: image
image: /local/floorplan/parter-pasekdol3.png
style:
left: 50%
top: 50%
width: 100%
#################################### END - OBRAZKI ####################################
################################ ŚWIATŁA ############################################
############# KOTŁOWNIA
- type: custom:mushroom-chips-card
style:
top: 28%
left: 64%
chips:
- type: template
entity: light.boilerroom_track
icon: mdi:vanity-light
name: Swiatla-Kotlownia
icon_color: >-
{% if is_state('light.boilerroom_track', 'on') %}
#cd9b1d
{% else %}
black
{% endif %}
############## WIATROŁAP
- type: custom:mushroom-chips-card
style:
top: 46%
left: 65%
chips:
- type: template
entity: light.windcatcher_track
icon: mdi:vanity-light
name: Swiatla-Wiatrolap
icon_color: >-
{% if is_state('light.windcatcher_track', 'on') %}
#cd9b1d
{% else %}
black
{% endif %}
############################################# ŚWIATŁO END ################################
############################################### CHIPSY TEMPERATURA ##################################
- type: custom:mushroom-chips-card
style:
top: 30%
left: 58%
transform: scale(0.8)
card_mod:
style: |
ha-card {
--chip-background: black;
--primary-text-color: #00BFFF;
}
chips:
- type: template
entity: sensor.boilerroom_t_temperature
tap_action:
action: more-info
content: "{{ states('sensor.boilerroom_t_temperature') }}"
card_mod:
style: |
ha-card {
border: 1px solid #00BFFF !important;
--chip-font-size: 14px;
justify-content: center;
}
- type: custom:mushroom-chips-card
style:
top: 43.5%
left: 57.5%
transform: scale(0.8)
card_mod:
style: |
ha-card {
--chip-background: black;
--primary-text-color: #00BFFF;
}
chips:
- type: conditional
conditions:
- entity: input_boolean.temperature
state: "on"
chip:
type: template
entity: sensor.windcatcher_t_temperature
tap_action:
action: more-info
content: "{{ states('sensor.windcatcher_t_temperature') }}"
card_mod:
style: |
ha-card {
border: 1px solid #00BFFF !important;
--chip-font-size: 14px;
justify-content: center;
}
#################################################### CZIPSY CZUJNIKI RUCHU ################################################
###### PLAKIETKA KOTLOWNIA CZUJNIK RUCHU ######
- type: custom:mushroom-chips-card
style:
top: 35%
left: 60%
transform: scale(0.8)
card_mod:
style: |
ha-card {
--chip-background: black;
}
chips:
- type: conditional
conditions:
- entity: input_boolean.motions
state: "on"
chip:
type: template
entity: binary_sensor.boilerroom_m_occupancy
tap_action:
action: more-info
icon: >
{% if is_state('binary_sensor.boilerroom_m_occupancy', 'on') %}
mdi:motion-sensor
{% else %}
mdi:motion-sensor-off
{% endif %}
icon_color: >
{% if is_state('binary_sensor.boilerroom_m_occupancy', 'on') %}
red
{% else %}
white
{% endif %}
card_mod:
style: |
ha-card {
border: 1px solid red !important;
}
###### PLAKIETKA WIATROLAP CZUJNIK RUCHU ######
- type: custom:mushroom-chips-card
style:
top: 38%
left: 64%
transform: scale(0.8)
card_mod:
style: |
ha-card {
--chip-background: black;
}
chips:
- type: conditional
conditions:
- entity: input_boolean.motions
state: "on"
chip:
type: template
entity: binary_sensor.windcatcher_m_occupancy
tap_action:
action: more-info
icon: >
{% if is_state('binary_sensor.windcatcher_m_occupancy', 'on') %}
mdi:motion-sensor
{% else %}
mdi:motion-sensor-off
{% endif %}
icon_color: >
{% if is_state('binary_sensor.windcatcher_m_occupancy', 'on') %}
red
{% else %}
white
{% endif %}
card_mod:
style: |
ha-card {
border: 1px solid red !important;
}
###### PLAKIETKA NAZEWNATRZ NAD GARAZEM CZUJNIK RUCHU ######
- type: custom:mushroom-chips-card
style:
top: 62.5%
left: 84%
transform: scale(0.8)
card_mod:
style: |
ha-card {
--chip-background: black;
}
chips:
- type: template
entity: binary_sensor.frontyard_m_garage_occupancy
tap_action:
action: more-info
icon: >
{% if is_state('binary_sensor.frontyard_m_garage_occupancy', 'on') %}
mdi:motion-sensor
{% else %}
mdi:motion-sensor-off
{% endif %}
icon_color: >
{% if is_state('binary_sensor.frontyard_m_garage_occupancy', 'on') %}
red
{% else %}
white
{% endif %}
card_mod:
style: |
ha-card {
border: 1px solid red !important;
}
#################################################### CZIPSY ROLETY ################################################
###### PLAKIETKA ROLETA KUCHNIA OKNO ######
- type: custom:mushroom-chips-card
style:
top: 22.5%
left: 31%
transform: scale(0.8)
card_mod:
style: |
ha-card {
--chip-background: black;
}
chips:
- type: conditional
conditions:
- entity: input_boolean.shutters
state: "on"
chip:
type: template
entity: cover.kitchen_window
tap_action:
action: more-info
icon: >
{% if is_state('cover.kitchen_window', 'open') %}
mdi:window-shutter-open
{% else %}
mdi:window-shutter
{% endif %}
icon_color: >
{% if is_state('cover.kitchen_window', 'open') %}
#3b8132
{% else %}
white
{% endif %}
card_mod:
style: |
ha-card {
border: 1px solid #3b8132 !important;
}
#################################################### CZIPSY KONTAKTRONY ################################################
###### PLAKIETKA NAZEWNATRZ KONTAKTRON BRAMA ######
- type: custom:mushroom-chips-card
style:
top: 60%
left: 94%
transform: scale(0.8)
card_mod:
style: |
ha-card {
--chip-background: black;
}
chips:
- type: template
entity: binary_sensor.frontyard_c_gate_contact
tap_action:
action: more-info
hold_action:
action: call-service
service: switch.turn_on
service_data:
entity_id: switch.frontyard_entry_gate
icon: >
{% if is_state('binary_sensor.frontyard_c_gate_contact', 'on') %}
mdi:gate-open
{% else %}
mdi:gate
{% endif %}
icon_color: >
{% if is_state('binary_sensor.frontyard_c_gate_contact', 'on') %}
#FFBF00
{% else %}
white
{% endif %}
card_mod:
style: |
ha-card {
border: 1px solid #FFBF00 !important;
}
###### PLAKIETKA KUCHNIA KONTAKTRON DRZWI ######
- type: custom:mushroom-chips-card
style:
top: 35%
left: 14%
transform: scale(0.8)
card_mod:
style: |
ha-card {
--chip-background: black;
}
chips:
- type: conditional
conditions:
- entity: input_boolean.doors
state: "on"
chip:
type: template
entity: binary_sensor.kitchen_c_door_contact
tap_action:
action: more-info
icon: >
{% if is_state('binary_sensor.kitchen_c_door_contact', 'on') %}
mdi:window-open
{% else %}
mdi:window-closed
{% endif %}
icon_color: >
{% if is_state('binary_sensor.kitchen_c_door_contact', 'on') %}
#FFBF00
{% else %}
white
{% endif %}
card_mod:
style: |
ha-card {
border: 1px solid #FFBF00 !important;
}
#################################################### PASEK DÓŁ ################################################
###### ON OFF TEMPERATURA ######
- type: custom:mushroom-chips-card
style:
top: 89%
left: 4%
card_mod:
style: |
ha-card {
--chip-background: black;
}
chips:
- type: template
entity: input_boolean.temperature
icon: mdi:thermometer
name: Termometry
icon_color: >-
{% if is_state('input_boolean.temperature', 'on') %}
#00BFFF
{% else %}
#D3D3D3
{% endif %}
card_mod:
style: |
ha-card {
border: 1px solid #00BFFF !important;
}
###### ON OFF CZUJNIK RUCHU ######
- type: custom:mushroom-chips-card
style:
top: 89%
left: 9%
card_mod:
style: |
ha-card {
--chip-background: black;
}
chips:
- type: template
entity: input_boolean.motions
icon: mdi:motion-sensor
name: CzujnikiRuchu
icon_color: >-
{% if is_state('input_boolean.motions', 'on') %}
red
{% else %}
#D3D3D3
{% endif %}
card_mod:
style: |
ha-card {
border: 1px solid red !important;
}
###### ON OFF ROLETY ######
- type: custom:mushroom-chips-card
style:
top: 95%
left: 9%
card_mod:
style: |
ha-card {
--chip-background: black;
}
chips:
- type: template
entity: input_boolean.shutters
icon: mdi:window-shutter-open
name: Rolety
icon_color: >-
{% if is_state('input_boolean.shutters', 'on') %}
green
{% else %}
#D3D3D3
{% endif %}
card_mod:
style: |
ha-card {
border: 1px solid green !important;
}
###### ON OFF DRZWI ######
- type: custom:mushroom-chips-card
style:
top: 95%
left: 4%
card_mod:
style: |
ha-card {
--chip-background: black;
}
chips:
- type: template
entity: input_boolean.doors
icon: mdi:door-closed
name: DrzwiBramy
icon_color: >-
{% if is_state('input_boolean.doors', 'on') %}
#FFBF00
{% else %}
#D3D3D3
{% endif %}
card_mod:
style: |
ha-card {
border: 1px solid #FFBF00 !important;
}
Tworzenie Imponującego Panelu Home Assistant z Integracją Planu Podłogi (Część 2)
Witamy z powrotem w drugiej części naszego przewodnika po budowaniu atrakcyjnego wizualnie i funkcjonalnego panelu Home Assistant z wykorzystaniem planu podłogi! W poprzedniej części omówiliśmy podstawy tworzenia planu podłogi w Sweet Home 3D. Teraz zagłębimy się w ekscytującą część: dodawanie interaktywnych elementów, które ożywią Twój panel. Ten artykuł towarzyszy samouczkowi wideo [link do Twojego filmu tutaj], który gorąco polecamy obejrzeć, aby w pełni zrozumieć ten proces.
Ten samouczek koncentruje się na użyciu Kart Grzybowych (Mushroom Cards) do stworzenia dynamicznego i przyjaznego dla użytkownika interfejsu. Przeprowadzimy Cię przez dodawanie interaktywnych kontrolek dla świateł, czujników (ruchu, otwarcia/kontaktu), rolet i innych, wszystko zintegrowane bezpośrednio z Twoim planem podłogi.
Konfiguracja Panelu i Przygotowanie Zasobów
Zaczynamy od utworzenia nowego panelu w Home Assistant i skonfigurowania go dla łatwiejszej edycji kodu za pomocą edytora plików. Korzystanie z edytora plików jest kluczowe dla efektywnego zarządzania kodem panelu. Dostarczamy niezbędne fragmenty kodu, w tym nazwy plików i ikony, w opisie filmu. Pamiętaj, aby używać edytora kodu, który poprawnie obsługuje wcięcia, takiego jak VS Code lub Notepad++.
Kluczowym krokiem jest przygotowanie obrazu planu podłogi i innych zasobów wizualnych. Pokażemy Ci, jak utworzyć folder „www” w katalogu konfiguracji Home Assistant. Ten folder będzie służył jako lokalna lokalizacja przechowywania wszystkich obrazów i zasobów Twojego panelu.
Dodawanie Interaktywnych Elementów za Pomocą Kart Grzybowych
Sercem tego samouczka jest wykorzystanie Kart Grzybowych do dodawania interaktywnych elementów do Twojego planu podłogi. Zademonstrujemy, jak dodawać interaktywne kontrolki dla różnych urządzeń inteligentnego domu:
- Interaktywne Światła: Pokażemy Ci, jak tworzyć dynamiczne efekty świetlne na Twoim planie podłogi. Obejmuje to tworzenie oddzielnych renderów obrazu dla sytuacji, gdy światło jest włączone, wyłączone i niedostępne. Udostępnimy kod i wyjaśnimy znaczenie poprawnych ścieżek plików. Omówimy również korzystanie z GIMP, darmowego programu do edycji grafiki, do tworzenia przezroczystych obrazów PNG niezbędnych do efektu włączania/wyłączania światła.
- Górne i Dolne Paski: Przeprowadzimy Cię przez dodawanie górnych i dolnych pasków do Twojego panelu za pomocą GIMP. Paski te zapewniają miejsce na dodatkowe informacje i kontrolki, poprawiając funkcjonalność panelu.
Praca z Interaktywnymi „Chipami”
Następnie przejdziemy do dodawania interaktywnych „chipów”, które wyświetlają informacje i umożliwiają sterowanie różnymi urządzeniami. Omówimy dodawanie chipów dla:
- Czujników Temperatury: Wyświetlanie odczytów temperatury bezpośrednio na planie podłogi i zapewnienie dostępu do wykresów danych historycznych.
- Czujników Ruchu: Zmiana wyglądu chipów (ikony i kolory) w zależności od statusu wykrycia ruchu.
- Rolet i Czujników Kontaktu: Wyświetlanie ich statusu (otwarte/zamknięte) za pomocą różnych ikon i kolorów.
Kluczowym aspektem tego samouczka jest użycie kodu warunkowego do pokazywania lub ukrywania chipów w zależności od stanu encji pomocniczej (input_boolean). Pozwala to na uzyskanie czystego i uporządkowanego panelu, wyświetlającego tylko istotne informacje w danym momencie. Wyjaśnimy, jak tworzyć te encje pomocnicze i używać ich do kontrolowania widoczności chipów. Pokażemy również, jak stosować style warunkowe, aby zmieniać wygląd chipów w zależności od ich stanu.
Rozszerzanie Panelu i Ostatnie Poprawki
Krótko omówimy dodawanie innych elementów, takich jak:
- Czujniki Otwarcia (Kontaktrony) i Rolety: Implementacja jest podobna do czujników ruchu, a kod zostanie udostępniony.
- Inne Urządzenia: Wspomnimy o dodawaniu innych urządzeń inteligentnego domu, takich jak monitory zużycia energii, oczyszczacze powietrza, odkurzacze, telewizory i Xboxy. Chociaż nie będziemy demonstrować każdego z nich osobno, zasady są podobne do świateł, a kod będzie dostępny.
- Śledzenie Wywozu Śmieci: Krótko wspomnimy o użyciu integracji kalendarza i niestandardowych chipów do śledzenia dni wywozu śmieci. Zostanie to szczegółowo omówione w następnej części samouczka.
Odnosimy się również do potencjalnych rozbieżności wizualnych między wyglądem panelu na ekranie komputera i tabletu, upewniając się, że wygląda idealnie na docelowym urządzeniu.
Dostępność Kodu i Podsumowanie
Cały kod użyty w tym samouczku zostanie udostępniony, abyś mógł go skopiować i dostosować do własnych konfiguracji Home Assistant. Zachęcamy do obejrzenia towarzyszącego filmu [link do Twojego filmu tutaj], aby uzyskać pełny obraz procesu.
Mamy nadzieję, że ten samouczek pomógł Ci stworzyć bardziej interaktywny i informacyjny panel Home Assistant. Jeśli masz jakieś pytania, zostaw komentarz poniżej. Bądź na bieżąco z ostatnią częścią tej serii, w której omówimy śledzenie wywozu śmieci i inne zaawansowane opcje dostosowywania.
Opublikuj komentarz