FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: Markus M. am 27 Februar 2016, 01:23:03

Titel: Bug bei Icons in FHEMWEB
Beitrag von: Markus M. am 27 Februar 2016, 01:23:03
Mit ist gerade aufgefallen dass es einen unschönen Bug bei der Anzeige von Icons gibt.

Für STATE Werte werden bekanntlich die Standard Icons gesetzt, sobald sie den Namen des Werts haben.
Wenn ein Icon allerdings den Namen eines Devices oder sogar eines Moduls hat, werden sämtliche Text-Werte in STATE mit diesem Icon überschrieben.

Kann sich das viellicht mal jemand ansehen, der sich in FHEMWEB zurechtfindet?
Die Ersetzung sollte nur bei einem Match von Icon-Name auf den Wert stattfinden.

Gruss, Markus
Titel: Antw:Bug bei Icons in FHEMWEB
Beitrag von: rudolfkoenig am 27 Februar 2016, 15:37:15
ZitatDie Ersetzung sollte nur bei einem Match von Icon-Name auf den Wert stattfinden.
Wo ist das denn spezifiziert?
Ich habe die "Iconfindung" zwar irgendwo schon dokumentiert, weiss aber nicht mehr wo, deswegen hier nochmal, direkt aus 01_FHEMWEB.pm, ich meine es ist auch so verstaendlich. Gilt nur dann, falls der Benutzer es nicht explizit mit devStateIcon spezifiziert hat:

  $icon = FW_iconName("$name.$state")   if(!$icon);           # lamp.Aus.png
  $icon = FW_iconName("$name.$rstate")  if(!$icon);           # lamp.on.png
  $icon = FW_iconName($name)            if(!$icon);           # lamp.png
  $icon = FW_iconName("$model.$state")  if(!$icon && $model); # fs20st.off.png
  $icon = FW_iconName($model)           if(!$icon && $model); # fs20st.png
  $icon = FW_iconName("$type.$state")   if(!$icon);           # FS20.Aus.png
  $icon = FW_iconName("$type.$rstate")  if(!$icon);           # FS20.on.png
  $icon = FW_iconName($type)            if(!$icon);           # FS20.png
  $icon = FW_iconName($state)           if(!$icon);           # Aus.png
  $icon = FW_iconName($rstate)          if(!$icon);           # on.png
Titel: Antw:Bug bei Icons in FHEMWEB
Beitrag von: Markus M. am 27 Februar 2016, 17:03:45
Zitat von: rudolfkoenig am 27 Februar 2016, 15:37:15
Wo ist das denn spezifiziert?
Ich habe die "Iconfindung" zwar irgendwo schon dokumentiert, weiss aber nicht mehr wo, deswegen hier nochmal, direkt aus 01_FHEMWEB.pm, ich meine es ist auch so verstaendlich. Gilt nur dann, falls der Benutzer es nicht explizit mit devStateIcon spezifiziert hat:

Danke für die Stelle!
Ich bin nur drüber gestolpert als ich mir ein paar Icons gebaut habe und plötzlich alles damit zugepflastert war.
Finde ich in der aktuellen Version allerdings unschön, weil teilweise die State Information durch das Icon verborgen wird und ich zusätzlich noch ein ungültiges Icon definieren müsste, obwohl ich mir bereits explizit Gedanken über das stateFormat gemacht habe.

Was hältst du stattdessen hiervon?
  $icon = FW_iconName("$name.$state")   if(!$icon);           # lamp.Aus.png
  $icon = FW_iconName("$name.$rstate")  if(!$icon);           # lamp.on.png
  $icon = FW_iconName("$model.$state")  if(!$icon && $model); # fs20st.off.png
  $icon = FW_iconName("$type.$state")   if(!$icon);           # FS20.Aus.png
  $icon = FW_iconName("$type.$rstate")  if(!$icon);           # FS20.on.png
  $icon = FW_iconName($state)           if(!$icon);           # Aus.png
  $icon = FW_iconName($rstate)          if(!$icon);           # on.png
  if(!AttrVal($name, "stateFormat", undef)) {
    $icon = FW_iconName($name)            if(!$icon);         # lamp.png
    $icon = FW_iconName($model)           if(!$icon && $model); # fs20st.png
    $icon = FW_iconName($type)            if(!$icon);         # FS20.png
  }


Gruss, Markus
Titel: Antw:Bug bei Icons in FHEMWEB
Beitrag von: rudolfkoenig am 27 Februar 2016, 17:59:45
ZitatWas hältst du stattdessen hiervon?
Wenig. Wenn du keine Icons willst, musst du devStateIcon mit .* und einem ungueltigen Icon definieren.