NEWS
Lovelace Absturz bei Abfrage
-
Hey Community,
nachdem ich all meiner Skripte angepasst habe, möchte ich nun die Visualisierung in Lovelace überarbeiten.
Ich planne, verschiedene custom:multiple-entity-rows zu benutzen mit einer Main-Entity, welche alle Kontake (Fenster) abbildet und Secondary-Entities, die wiederum den einzelnen Kontakt darstellen:
Nun sollen die Second-Entities die Farbe vom Icon je nach Status ändern. Dazu benötigt man ja den Card-Mod und etwas CSS.
Mein jetziger Code wäre:
type: entities entities: - type: custom:multiple-entity-row entity: binary_sensor.Raum_Entwicklung_KontaktAufEntwicklung name: Kontakte icon: mdi:window-closed-variant card_mod: style: | .entities-row div.entity:nth-child(1) { color: orange; {% if is_state('sensor.00365F29B30BDE_1_STATE', 'on') %} --card-mod-icon-color: red; {% else %} --card-mod-icon-color: green; {% endif %} } } .entities-row div.entity:nth-child(3) { color: magenta; } entities: - entity: sensor.00365F29B30BDE_1_STATE icon: mdi:window-closed-variant name: Entwicklung 4 - entity: sensor.003660C9933284_1_STATE icon: mdi:window-closed-variant name: Entwicklung 3
Aber es scheint, als wäre die Abfrage nicht richtig, da der Adapter sofort abstürzt.
Das sind die Protokolle:
Kennt ihr eine Lösung zum Problem?
-
-
@arteck Hier das richtige Log
2024-07-01 15:42:55.595 - error: lovelace.0 (8881) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 2024-07-01 15:42:55.595 - error: lovelace.0 (8881) unhandled promise rejection: Error The pattern "% if is_state('sensor.00365F29B30BDE_1_STATE', 'on') %" is not a valid ID pattern 2024-07-01 15:42:55.596 - error: lovelace.0 (8881) ReplyError: Error The pattern "% if is_state('sensor.00365F29B30BDE_1_STATE', 'on') %" is not a valid ID pattern at parseError (/opt/iobroker/node_modules/redis-parser/lib/parser.js:179:12) at parseType (/opt/iobroker/node_modules/redis-parser/lib/parser.js:302:14) 2024-07-01 15:42:55.596 - error: lovelace.0 (8881) Error The pattern "% if is_state('sensor.00365F29B30BDE_1_STATE', 'on') %" is not a valid ID pattern 2024-07-01 15:42:55.597 - info: lovelace.0 (8881) cleaned everything up... 2024-07-01 15:42:55.598 - info: lovelace.0 (8881) terminating 2024-07-01 15:42:55.599 - warn: lovelace.0 (8881) Terminated (UNCAUGHT_EXCEPTION): Without reason 2024-07-01 15:42:56.099 - info: lovelace.0 (8881) terminating 2024-07-01 15:42:56.125 - error: host.svr-smartoffice Caught by controller[0]: Unknown request: {"type":"repairs/list_issues","id":27} 2024-07-01 15:42:56.125 - error: host.svr-smartoffice instance system.adapter.lovelace.0 terminated with code 6 (UNCAUGHT_EXCEPTION) 2024-07-01 15:42:56.125 - info: host.svr-smartoffice Restart adapter system.adapter.lovelace.0 because enabled 2024-07-01 15:42:56.125 - warn: host.svr-smartoffice Do not restart adapter system.adapter.lovelace.0 because restart loop detected
MOD-EDIT: Code in code-tags gesetzt!
-
@timmss sagte in Lovelace Absturz bei Abfrage:
% if is_state('sensor.00365F29B30BDE_1_STATE', 'on') %
damit kommt der nicht klar..
-
@arteck So hatte ich das bei einem HA-User (https://community.simon42.com/t/card-mod-icon-farbe-anhand-von-zustands-wert-aendern/8390/9) gesehen.
Er hat zwar einen binary-sensor genutzt, aber das hatte ich vorher auch mal probiert und da kam dasselbe bei raus.
Weißt du warum der mit der Abfrage nicht klar kommt?
-
-
@homoran Das ist ja klar, dennoch hab ich noch nichts gefunden, wie es für ioBroker geschrieben werden muss
-
Ich habe mal ChatGPT gefragt:
Die von dir verwendete Syntax {% if is_state('sensor.00365F29B30BDE_1_STATE', 'on') %} ist ein Jinja2-Template, das direkt in Home Assistant verwendet wirdDann hat es mir vorgeschlagen, wie es für ioBroker umsetzbar wäre:
type: entities entities: - type: custom:multiple-entity-row entity: binary_sensor.Raum_Entwicklung_KontaktAufEntwicklung name: Kontakte icon: mdi:window-closed-variant card_mod: style: | :host { --icon-color: {% if states['sensor.00365F29B30BDE_1_STATE'].state == 'false' %}red{% else %}green{% endif %}; } entities: - entity: sensor.00365F29B30BDE_1_STATE icon: mdi:window-closed-variant name: Entwicklung 4 - entity: sensor.003660C9933284_1_STATE icon: mdi:window-closed-variant name: Entwicklung 3
Aber das funktioniert ebenso nicht.
Ich habe auch verschiedene Vergleiche ausprobiert, sprich da es sich um einen Homematic-IP Fensterkontakt handelt, ist der Datentyp vom STATE-Wert Integer, also habe ich auch auf 0 geprüft, auf false, auf CLOSED und closed aber nichts hat geklappt.
Es scheint also wirklich allgemein an der Syntax der Abfrage zu legen.
-
Ich hab es auch mal so versucht, wie ich es schon bei meinen Custom-Buttons habe:
type: custom:button-card entity: sensor.00365F29B04BD0_1_STATE name: Fenster 1 state: - value: CLOSED icon: mdi:window-closed-variant - value: OPEN icon: mdi:window-open-variant color: rgb(251,197,22)
type: entities entities: - entity: binary_sensor.Raum_Entwicklung_KontaktAufEntwicklung type: custom:multiple-entity-row name: Entwicklung icon: mdi:code-block-tags show_state: false state_color: true state_header: null entities: - entity: sensor.00365F29B30BDE_1_STATE name: Fenster 4 icon: mdi:window-closed-variant type: custom:button-card state: - value: CLOSED icon: mdi:window-closed-variant fill_ocapity: 50% - value: OPEN icon: mdi:window-open-variant color: rgb(251,197,22)
Aber auch das ohne Erfolg
-
Ich hab meine Visu jetzt weitesgehend fertig, es ist nur noch die eine Sache die fehlt.
Man hat die Möglichkeit, bei den Secondary-Entities einer custom:multiple-entity-row sie je nach Status zu verstecken:
type: entities entities: - entity: binary_sensor.Raum_Entwicklung_KontaktAufEntwicklung type: custom:multiple-entity-row name: Entwicklung entities: - entity: sensor.00365F29AF194C_1_STATE name: Tür icon: mdi:door-open card_mod: null hide_if: value: CLOSED
Daraus kann man ja schließen, dass man anhand des Wertes der Secondary Entity sie verändern kann.
Wie aber kann ich es nutzen, sodass ich die Farbe und das Icon verändern kann je nach Status.
Das würde mir sehr doll helfen, da ich nachts davon schon geträumt habe.
-
Ich fasse es selber noch nicht, aber ich habe eine Lösung gefunden.
type: entities entities: - entity: binary_sensor.Raum_Entwicklung_KontaktAufEntwicklung type: custom:multiple-entity-row name: Entwicklung icon: mdi:code-block-tags show_state: false entities: - entity: sensor.00365F29B30BDE_1_STATE name: Fenster 4 icon: mdi:window-closed-variant hide_if: value: OPEN - entity: sensor.00365F29B30BDE_1_STATE name: Fenster 4 icon: mdi:window-open-variant styles: '--paper-item-icon-color': rgb(251,197,22) hide_if: value: CLOSED
Ich habe für ein Fenster zwei Entitäten. Ist das Fenster CLOSED, ist die Farbe normal weiß und das Icon ist ein geschlossenes Fenster:
Dank der hide_if Eigenschaft kann man diese Entität ausblenden, sollte der Status OPEN sein.
An der Stelle kommt jetzt die zweite Entität des selben Fensters in Spiel.
Hier ist die Farbe dank styles: '--paper-item-icon-color': rgb(251,197,22) verändert und das Ico ist ein offenes Fenster:Dank hide_if CLOSED wird diese Entität wieder ausgeblendet, sollte das Fenster wieder geschlossen werden.
Ich hoffe, diese Lösung hilft irgendwem auch so dolle wie mir.