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?
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
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.
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