Hallo,
ich bin neu hier und fange gerade an mit FHEM zu arbeiten. Ich habe FHEM auf dem RPI 2 mit dem Z-Wave Gateway "Razberry" eingerichtet. Ich habe als ersten Aktor den Fibaro Roller Shutter 2 installiert und wie im FHEM wiki beschrieben in Betrieb genommen.
Ich kann hoch und runter fahren sowie über set dimXY Zwischenpositionen anfahren. Es wird als Rückmeldung immer dim XY angezeigt, hierfür möchte ich Icons angezeigt bekommen an dennen ich den Zustand erkennen kann. Ich dachte sowas sollte einfach zu machen sein, ich habe mich durch zig Beiträge gelesen habe alles ausprobiert aber nichts funktioniert. Verstanden habe ich:
- angezeigt wird "state"
- den Wert von "state" kann ich im Attribute "devstateIcon" verwenden
das funktioniert auch für on/off, aber nicht für die dim Werte. Wie ist der Syntax für deviconState???? oder in was für einem format liegt "state" vor???? Kann man das irgendwo sehen????
ich habe zum testen einen Wert angefahren: dim 52
dann habe ich bei devstateIcon versucht:
dim 52:fts_shutter_50
52:fts_shutter_50
52%:fts_shutter_50
dim52::fts_shutter_50
........
5\d.*::fts_shutter_50
5\d:fts_shutter_50
......
nichts funktioniert...
*:fts_shutter_50 -> funktioniert für jeden Wert also scheint generell was zu passieren
wie bekomme ich raus was in "state" steht das ich es benutzen kann und wo steht die Syntax beschrieben?
folgendes steht bei Readings:
CMD
ZW_APPLICATION_UPDATE
2017-03-12 12:07:44
UNKNOWN
multilevel type 00 fl: 22 arg: 0885
2017-03-11 16:06:41
assocGroup_3
Max 1 Nodes ZWAVE1
2017-03-11 13:57:43
energy
0.05 kWh
2017-03-13 20:32:32
model
FIBARO System FGR222 Roller Shutter Controller 2
2017-03-12 10:16:33
modelConfig
fibaro/fgr222.xml
2017-03-12 10:16:33
modelId
010f-0302-1000
2017-03-12 10:16:33
position
16
2017-03-12 13:33:47
power
216.5 W
2017-03-13 20:28:18
protection
Local: unprotected RF: unprotected
2017-03-12 10:19:22
reportedState
dim 52
2017-03-13 20:28:31
state
dim 52
2017-03-13 20:28:31
timeToAck
0.092
2017-03-12 21:15:05
transmit
NO_ACK
2017-03-13 20:28:21
version
Lib 3 Prot 3.52 App 25.25
2017-03-12 10:19:31
Vielen Dank für eure Hilfe!
Hi,
schau mal hier https://forum.fhem.de/index.php?topic=14235.0
Gruß Otto
Hey danke für die schnelle Antwort,
Ich habe diese Beiträge schon gelesen und getestet, leider ohne Erfolg. Auch geht es mir für die weitere Arbeit mit FHEM auch um das Verständnis und den Syntax. Gibt es keinen Sheet oder ähnliches?
Ist das was links neben der on/off oder hoch/runter der Wert der von state übergeben wird??? Also "dim 52" ??? Oder steht in state nur zb. "52" und dim wird dabei geschrieben... wenn ich einem Wert ein Icon zuweisen möchte muss ich doch wissen wie der Wert und sein Syntax ist!? Muss ich den Rohwert haben? Und wo kann ich die Werte sehen? Es wäre echt total nett wenn mir da mal jema d auf die Sprünge helfen könnte. Für mich fängt das lernen eines Programmes oder Programmiersprache immer mit der Syntax an, es muss doch eine Logik dahinter stehen!? Besten Dank nochmal :)
Moin,
naja ich bin auch nicht der devStateIcon Spezi :)
Zunächst zu Diener Frage: "was links steht" :)
Ganz links wird das icon angezeigt (falls definiert) daneben der Name, daneben der STATE. Nach rechts folgen dann webCmd
Die Anzeige von STATE kann durch ein Symbol ersetzt werden -> devStateIcon. Ist kein Symbol definiert wird der Wert von STATE im Frontend angezeigt.
Wichtig: das Reading state und das Internal STATE müssen nicht gleich sein! -> https://fhem.de/commandref_DE.html#setstate
Am Besten Du probierst an einem Dummy ;)
In deinem state steht "dim 52" (erster Post) -> nehmen wir an in STATE steht das gleiche. dim 52 enthält ein Leerzeichen, dies müsstest Du beim regEx besonders behandeln.
versuch mal dim.5.:fts_shutter_50
dim.5\d:fts_shutter_50
Und wenn Du Farbe machen willst -> https://wiki.fhem.de/wiki/Icons
Versuch der Erklärung Deiner vergeblichen Versuche (probiere das bitte wirklich an einem Dummy aus, das hilft!):
dim 52:fts_shutter_50 -> geht nicht weil das Leerzeichen den Trenner darstellt. Könnte für STATE=52 funktionieren
52:fts_shutter_50 -> funktioniert für STATE=52
52%:fts_shutter_50 -> funktioniert für STATE=52%
dim52::fts_shutter_50 -> funktioniert für STATE=dim52, zeigt kein Icon (zwischen : und : steht nix) und führt den Befehl fts_shutter_50 aus -> https://fhem.de/commandref_DE.html#devStateIcon
........ -> funktioniert für alles mit acht Zeichen und zeigt kein Icon -> völlig sinnlos ;D ;D ;D
5\d.*::fts_shutter_50 -> funktioniert für STATE=alle Begriffe die mit 50 -59 beginnen, zeigt kein Icon und führt den Befehl fts_shutter_50 aus -> https://fhem.de/commandref_DE.html#devStateIcon
5\d:fts_shutter_50 -> funktioniert für STATE=Zahlen von 50 -59
So, jetzt hab ich es auch halbwegs verstanden ;)
Gruß Otto
Noch ein Tipp für die Zukunft: Wenn Du sowas wie oben postest kopierst Du nicht die Readings direkt in der Web Oberfläche sondern machst vor ein list <Gerätename> Dieser text lässt sich besser lesen.
Moin Otto
Danke für deine Hilfe, werde es heute direkt ausprobieren! Ich denke das es dann das Leerzeichen ist... wofür ich einen Punkt setzten muss... aber steht das nirgendwo zusammengefasst beschrieben? Also ein Sheet wo man mal schnell den Syntax nachsehen kann?
Moin,
Du findest meine Erklärung unverständlich? Du findest man kann das Leben auf einer Seite "zusammenfassen"? Du kannst den Link mit der commandref nicht lesen? Da steht es kurz und knapp
ZitatdevStateIcon
Erste Variante:
Leerzeichen getrennte Auflistung von regexp:icon-name:cmd Dreierpärchen, icon-name und cmd dürfen leer sein.
Wenn der Zustand des Gerätes mit der regexp übereinstimmt, wird als icon-name das entsprechende Status Icon angezeigt, und (falls definiert), löst ein Klick auf das Icon das entsprechende cmd aus. Wenn fhem icon-name nicht finden kann, wird der Status als Text angezeigt. Beispiel:
attr lamp devStateIcon on:closed off:open
attr lamp devStateIcon on::A0 off::AI
attr lamp devStateIcon .*:noIcon
Anmerkung: Wenn das Icon ein SVG Bild ist, kann das @colorname Suffix verwendet werden um das Icon einzufärben. Z.B.:
attr Fax devStateIcon on:control_building_empty@red off:control_building_filled:278727
Falls cmd noFhemwebLink ist, dann wird kein HTML-Link generiert, d.h. es passiert nichts, wenn man auf das Icon/Text klickt.
Zweite Variante:
Perl regexp eingeschlossen in {}. Wenn der Code undef zurückliefert, wird das Standard Icon verwendet; wird ein String in <> zurück geliefert, wird dieser als HTML String interpretiert. Andernfalls wird der String als devStateIcon gemäß der ersten Variante interpretiert, siehe oben. Beispiel:
{'<div style="width:32px;height:32px;background-color:green"></div>'}
Was verstehst Du daran nicht?
Gruß Otto
Hallo Otto,
Fühl dich doch nicht angergriffen. Ich danke dir für deine Hilfe und verstehe was du schreibst. Ich denke du hast mich falsch verstanden! Ich wundere mich das es anscheinend kein Sheet gibt wo der Syntax von FHEM beschrieben ist! Das ist für Programmier oder Script Sprachen üblich und da kommt auch nicht das ganze Leben drauf sondern der Syntax. Meiner Meinung nach ist das unabdingbar.
Woher soll ich sonst wissen das ein Leerzeichen als Punkt gesetzt wird?
Zitat von: Clockwork am 15 März 2017, 18:25:59
Woher soll ich sonst wissen das ein Leerzeichen als Punkt gesetzt wird?
Das ist Perl und hat mit FHEM nichts zu tun.
Ein Perl-Einsteigerbuch kann nicht schaden aber die Grundlagen lassen sich auch per Google finden.
Zitat von: Puschel74 am 15 März 2017, 19:07:38
Das ist Perl und hat mit FHEM nichts zu tun.
Ein Perl-Einsteigerbuch kann nicht schaden aber die Grundlagen lassen sich auch per Google finden.
Das hat noch nicht einmal was direkt mit Perl zu tun!
Das ist stinknormaler RegEx wie er in vielen Programmiersprachen benutzt wird. 8)
Gruß
Dan
Auch wenn der Punkt in anderen Programmiersprachen als RegEx für ein beliebiges Zeichen steht schadet es nicht sich ein bischen in Perl einzuarbeiten 8)
Und ein Hinweis auf <beliebige Programmiersprache != Perl> wäre im Zusammenhang mit FHEM etwas weniger zielführend gewesen ;)
Hallo Clockwork,
ich fühlte mich überhaupt nicht angegriffen, ich wollte nur nochmal klar stellen, dass es eine Doku gibt. Da steht drin wie das mit dem devStateIcon funktioniert.
Das sheet, wie Du es nennst, ist hier -> https://fhem.de/commandref.html und da steckt mit Sicherheit mindestens "ein Leben" drin :)
Aber ich weiß, die Welt ist schlecht ;D
Ich hoffe Du hast meine umfangreiche Detailerläuterung Deines Beispiels richtig verstanden - weil das war es nicht
ZitatWoher soll ich sonst wissen das ein Leerzeichen als Punkt gesetzt wird?
Der entscheidende Hinweis ist nun aber oft genug genannt worden:
Zitatdies müsstest Du beim regEx besonders behandeln.
Ich würde an Deiner Stelle schon den hier nehmen:
dim.5\d:fts_shutter_50
8)
Gruß Otto
ZitatIch würde an Deiner Stelle schon den hier nehmen:
Code:
dim.5\d:fts_shutter_50
getestet und funktioniert, besten Dank nochmal!
Zitat von: Clockwork am 15 März 2017, 20:29:35
getestet und funktioniert, besten Dank nochmal!
lieber wäre mir Du sagst: ich habe es verstanden. ;D