[gelöst] devStateIcon und Farbwechsel geht nicht

Begonnen von andies, 07 August 2017, 18:35:31

Vorheriges Thema - Nächstes Thema

andies

Guten Tag, obwohl das schon ein oder zweimal hier vorkam, passen die Lösungen nicht bei mir. Ich habe ein (eigenes, siehe Anhang) icon definiert: fussgaenger.svg und auto.svg. Beide Icons wurden mit Adobe Illustrator erzeugt und sind auch nach Größenanpassungen im FHEMWEB sichtbar. Nun möchte ich gern die Farben einstellen und habe das so getan:
-*:car@gray:ZuAuf X*:car@black:ZuAuf
Das geht aber nicht, wie der Screenshot zeigt: Die Icons sind grün und bleiben es auch. Hier das Listing des Gerätes.
Internals:
   NAME       Gartentor_Auto
   NR         28
   STATE      XXXXX
   TYPE       dummy
   READINGS:
     2017-08-07 17:52:26   Zustand         XXXXX
     2017-08-07 17:52:26   state           ZuAuf
Attributes:
   alias      Gartentor Auto
   devStateIcon -*:car@gray:ZuAuf X*:car@black:ZuAuf
   group      Gartentor
   room       App,Schalter
   setList    ZuAuf
   stateFormat {ReadingsVal($name, "Zustand", "undef")}
   userReadings Zustand
   webCmd     ZuAuf

und Zustand wird durch ein Notify geschaltet:
Internals:
   DEF        Gartentor_Auto:ZuAuf {fhem("set sduino raw <ausgeblendet>;;"); if (ReadingsVal("Gartentor_Auto", "Zustand", "") eq "-------"){fhem("setreading Gartentor_Auto Zustand XXXXX")} else {fhem("setreading Gartentor_Auto Zustand -------")}}
   NAME       Gartentor_Auto_bewegen
   NOTIFYDEV  Gartentor_Auto
   NR         30
   NTFY_ORDER 50-Gartentor_Auto_bewegen
   REGEXP     Gartentor_Auto:ZuAuf
   STATE      2017-08-07 17:52:26
   TYPE       notify

Hat jemand eine Idee, woran das liegen kann?
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

rudolfkoenig

Die SVG-Einfaerbungs-Routine ersetzt in der Datei alle

fill="#000000" durch fill="$col"
fill:#000000 durch fill:$col
FHEM_COLOR durch $col

wobei $col das Wort hinter dem @ ist, in deinem Fall also gray.
Ich gehe davon aus, dass deine SVG-Datei kein fill="#000000" enthaelt, bzw. nicht als Hauptfarbe.

Zitat-*:car@gray:ZuAuf X*:car@black:ZuAuf
Ich gehe davon aus, dass du Fileglobbing (-* passt auf alles, was mit - anfaengt) mit Regexp verwechselst (-* passt auf einem String was nur - beliebig oft enthaelt).
FHEM verwendet ausschliesslich Regexp, d.h du musst vmtl. Folgedes schreiben
-.*:car@gray:ZuAuf X.*:car@black:ZuAuf

andies

Vielen Dank. In der Tat enthält die Datei keine Fill-Anweisung, hier ist der Text beim Fußgänger:
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="400px" height="800px" viewBox="0 0 400 800" enable-background="new 0 0 400 800" xml:space="preserve">
<path d="M213.414,0c37.082,0,67.141,30.371,67.141,67.836s-30.059,67.836-67.141,67.836c-37.076,0-67.135-30.371-67.135-67.836
S176.339,0,213.414,0z"/>
<path d="M14.396,457.913c181.856-286.705,164.661-294.775,232.597-296.797c39.566,1.212,40.766,12.117,107.904,65.413
c82.727,61.376,76.752,62.183,75.537,129.625c-0.404,81.164,5.191,75.107-58.748,105.391V324.657l-56.367-50.877v192.614
l-134.277-1.225l-1.214-152.641C69.552,484.581,76.742,474.872,14.396,457.913z"/>
<path d="M183.454,485.776h130.681c0,30.289,9.592,27.865,79.135,159.9c73.137,136.084,74.334,126.81,32.352,204.717L244.586,522.112
C73.143,857.28,94.724,847.182,0,840.722l94.724-179.289C175.86,513.241,180.259,512.845,183.454,485.776z"/>
</svg>

Dann muss ich das irgendwie hinzufügen, mal sehen, wo ich dazu was finde.

Zum zweiten Teil (fileglob vs Regex): Ich hatte als STATE damals, um etwas sofort sichtbares zu haben, die beiden Zustände -------- und XXXXXX definiert. Der dummy, der das Gartentor schaltet, kennt leider keine AUS- und EIN-Schalter, sondern nur einen einzigen Taster, der je nach Zustand dann das Tor entweder öffnet oder schließt.

Von daher müsste als RegEx durchaus -* passen, denn dadurch wieder der STATE=------- erkannt. Oder habe ich das falsch verstanden? Ich habe definitiv nicht -<und-dann-beliebige-Zeichen> gemeint.
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

andies

Die folgende Änderung innerhalb der SVG-Datei löst das Problem, danke an RKoenig:

<path fill="#000000" d="M213.414,0c37.082,0,67.141,30.371,67.141,67.836s-3
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann