Files
homeassistant_espscreen/docs/TEGELS.md
T
Max Gramser ef0ca8b350 Custom icon per tile: 150 MDI icons in firmware and editor
- screen_manager/app/tile_icons.py is the single icon list (12 groups, 20 media
  and music icons); tools/generate_icons.py writes it into the three icon fonts
  of both boards and builds the editor's subset font.
- Firmware 0.2.18 shows o.icon when its fonts carry the glyph, else the domain
  icon. The app sends the chosen icon, or Home Assistant's own mdi icon on auto.
- Tile sheet gets an icon picker with search; the mockup shows the icon the
  screen actually draws.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 11:16:57 +02:00

7.7 KiB
Raw Blame History

Tegels instellen voor jouw Home Assistant

Bewerk device.yaml, binnen de bestaande substitutions:. De basiscode hoef je voor de onderstaande voorbeelden niet aan te passen. Elke wijziging vraagt opnieuw bouwen en flashen. Doorloop eerst de installatie.

Entity-ID's verzamelen

Open in HA Ontwikkelaarstools → Statussen. Zoek de gewenste entiteit en kopieer de volledige ID, bijvoorbeeld light.keuken. Controleer status en attributen. De schermtitel is vrij te kiezen; de entity-ID moet exact kloppen. Test onder Ontwikkelaarstools → Acties de gewenste actie met die entiteit. Een actie kan het echte apparaat bedienen: kies een geschikte test. Zie HA-acties.

Maak eerst een lijst met positie, titel, entity-ID, tikactie en lange-drukactie. Gebruik bestaande HA-scripts/scènes voor meerdere apparaten of complexe logica.

Posities en grenzen

Posities Bedoeld gebruik in deze firmware
1–6 Hoofdtegels; light, switch, scene, script, fan, cover en climate
6 Ook de vacuumkaart; de kaart is specifiek met tegel 6 verbonden
7 en 9 Extra lichttegels met helderheid/kleurbediening
8 en 10 Extra status-/actietegels; geen volledige numerieke/climatekaart

TILE_COUNT: "1" tot "10" bepaalt hoeveel opeenvolgende posities zichtbaar zijn. Tot en met zes zijn Vorige/Volgende verborgen; vanaf zeven staat 1–6 op pagina één en de rest op pagina twee. Vrij scrollen is vervangen door vaste pagina's. Laat ongebruikte posities op de neutrale voorbeeldentiteiten staan. Verander geen rastermaten om tegels toe te voegen.

Belangrijkste instellingen

Instelling (N = tegelnummer) Betekenis
TILEN_ENTITY Entiteit waarop de actie wordt uitgevoerd
TILEN_STATE_ENTITY Entiteit voor status/attributen; meestal dezelfde
TILEN_TITLE Korte titel, liefst maximaal circa 12 tekens
TILEN_TYPE Domein, bijvoorbeeld light, scene, climate
TILEN_TAP_ACTION auto, toggle of custom voor onderstaande voorbeelden
TILEN_TAP_SERVICE Expliciete HA-actie bij custom, bijvoorbeeld script.turn_on
TILEN_LONGPRESS none, slider of (alleen tegel 6) vacuum
TILEN_LONGPRESS_SLIDER auto; kiest passende regeling op basis van type
TILEN_LABEL_ON/OFF Tekst voor eenvoudige aan/uitstatus

De voorbeeldconfig vult ook de overige velden in. Laat die staan tenzij je ze bewust gebruikt. STATE_ENTITY kan bij een scène/script een echte lamp of schakelaar volgen; een scène heeft zelf geen betrouwbare aan/uitstatus.

Kleur, wittemperatuur en helderheid

Een RGB-/kleurenlamp met LONGPRESS: "slider" opent direct de lampkaart. Deze bevat maximaal drie horizontale schuiven:

  • Kleur: een doorlopende regenboog (0–360° hue, 100% verzadiging).
  • Wittemperatuur: warm naar koel, binnen de minimum-/maximum-Kelvinwaarden die de lamp in Home Assistant meldt.
  • Helderheid: 1–100%; aan/uit blijft via de tegel beschikbaar.

De kleur- en witschuif verschijnen alleen als supported_color_modes deze ondersteunt. Een uitsluitend dimbare lamp houdt de gewone helderheidskaart. Er zijn geen extra tegelinstellingen nodig. Gebruik voor een lamp dezelfde ENTITY en STATE_ENTITY. De kleurkaart volgt hs_color, color_temp_kelvin, min_color_temp_kelvin en max_color_temp_kelvin van de bediende entiteit. Ontbreekt het temperatuurbereik, dan wacht de witschuif op HA-gegevens.

De kaart neemt bij openen de laatst ontvangen lampwaarden over. Slepen toont lokaal de gekozen waarde; pas loslaten verstuurt één opdracht. Kleur kiest de kleurmodus, wittemperatuur kiest de witmodus. Helderheid verandert de kleurmodus niet. De regenboog regelt hue; pastel/verzadiging is geen aparte regelaar. De hue-lijst wordt via ESPHome data_template naar HA gestuurd; zie de officiële API-documentatie.

De gedeelde implementatie staat in light_controls.h. Beide schermprofielen gebruiken deze; de Guition heeft grotere regelaars, de CYD een compacte kaart. diagnostics/run_ui_test.py controleert ook de schuifevents met vervangen callbacks: geen echte HA-acties. Voor een veilige 40-secondenvoorbeeldkaart:

python diagnostics/control_ui.py light_controls_preview --host guition-wallbox.local --name guition-wallbox

Gebruik voor CYD de eigen host en naam. Tijdens deze voorbeeldkaart worden lichtopdrachten onderdrukt en verdwijnt de kaart vanzelf. Test vervolgens de werkelijke lamp: lang indrukken, kleur kiezen, wit kiezen, helderheid aanpassen, sluiten en heropenen. Controleer de fysieke lamp en de waarden in HA.

Voorbeelden

Wijzig deze sleutels in de bestaande map; plak niet nogmaals substitutions:.

Dimbare lamp op positie 1 (tik schakelt, lang indrukken opent de regeling):

  TILE1_ENTITY: "light.keuken"
  TILE1_STATE_ENTITY: "light.keuken"
  TILE1_TITLE: "Keuken"
  TILE1_TYPE: "light"
  TILE1_TAP_ACTION: "auto"
  TILE1_LONGPRESS: "slider"

Een niet-dimbare lamp/schakelaar krijgt LONGPRESS: "none". Kleurbediening vereist dat de lamp de betreffende kleurmodus ondersteunt.

Scène op positie 3:

  TILE3_ENTITY: "scene.avond"
  TILE3_STATE_ENTITY: "light.keuken"
  TILE3_TITLE: "Avond"
  TILE3_TYPE: "scene"
  TILE3_TAP_ACTION: "auto"
  TILE3_LONGPRESS: "none"

Script op positie 4:

  TILE4_ENTITY: "script.alles_uit"
  TILE4_STATE_ENTITY: "script.alles_uit"
  TILE4_TITLE: "Alles uit"
  TILE4_TYPE: "script"
  TILE4_TAP_ACTION: "auto"
  TILE4_LONGPRESS: "none"

Airco op positie 5 (lang indrukken opent climate):

  TILE5_ENTITY: "climate.woonkamer"
  TILE5_STATE_ENTITY: "climate.woonkamer"
  TILE5_TITLE: "Airco"
  TILE5_TYPE: "climate"
  TILE5_TAP_ACTION: "toggle"
  TILE5_TAP_SERVICE: "climate.toggle"
  TILE5_LONGPRESS: "slider"

Controleer min_temp, max_temp, target_temp_step, hvac_modes en de ondersteunde fan-/swingmodes in HA. Deze kaart is primair voor een enkel setpoint, niet een thermostaat die uitsluitend een temperatuurinterval gebruikt. Test de modi van jouw integratie afzonderlijk; een andere airco kan andere mogelijkheden hebben.

Robotstofzuiger op positie 6 (tik start; lang indrukken opent de kaart):

  TILE6_ENTITY: "vacuum.robot"
  TILE6_STATE_ENTITY: "vacuum.robot"
  TILE6_TITLE: "Stofzuiger"
  TILE6_TYPE: "vacuum"
  TILE6_TAP_ACTION: "custom"
  TILE6_TAP_SERVICE: "vacuum.start"
  TILE6_LONGPRESS: "vacuum"

De vacuumkaart gebruikt start/pauze/stop/terugkeren/lokaliseren en de snelheidsnamen quiet, balanced, turbo, max. Vergelijk deze met de ondersteunde acties en fan_speed_list in HA. De snelheidsknoppen moeten in de basiscode aangepast worden als jouw integratie andere namen verwacht. Dit is geen universele kaart voor ieder robotmodel.

Acties inschakelen en controleren

Zet na kalibratie en HA-koppeling DIRECT_ACTIONS: "true". Geef in de ESPHome-integratie toestemming voor Home Assistant-acties. Gebruik geen HA-automation die dezelfde schermactie daarnaast nogmaals uitvoert; dat kan een dubbele toggle veroorzaken. Bij DIRECT_ACTIONS: "false" kan de actie-sensor nog gebeurtenissen publiceren voor eigen automations.

Flash device.yaml en test één tegel tegelijk: juiste status, juiste fysieke actie, terugmelding vanuit HA en lange druk. Controleer ook dat externe wijzigingen in HA op het scherm verschijnen. Voer daarna de acceptatietest uit.

De iconfonts bevatten de tegeliconenset uit screen_manager/app/tile_icons.py; kies TILEn_ICON daaruit. Een ander icoon voeg je daar toe en draai je tools/generate_icons.py. De bundel bevat de fonts lokaal. De oudere uitgebreide TILE_CONFIGURATION.md beschrijft ook het oude scrollprofiel; gebruik die niet als hardware-/layoutinstructie voor dit bord.