SVG-Icons für bestimmte Geräte

Begonnen von Talkabout, 18 Januar 2015, 14:46:27

Vorheriges Thema - Nächstes Thema

Talkabout

Hallo zusammen,

ich habe hier im Forum Beispiele für RGB LED Lampen Icons gesehen, die sich entsprechend der eingestellten Farbe einfärben. Soweit ich das verstanden habe geht dies mit dieser Methode:

attr <device> devStateIcon {Color_devStateIcon(ReadingsVal($name,"rgb","000000"))}

(siehe http://www.fhemwiki.de/wiki/Color ganz unten)

Meinem Verständnis zu folge geht dies aber nur bei SVG-Grafiken, die man global für FHEM einstellen muss. Dies geht mit dem Befehl:

attr WEB iconPath fhemSVG:openautomation:default:icons_small

Genau hier kommt meine Frage:

Kann man diese SVG Icons auch nur bei einem bestimmten Gerät verwenden? Welches Attribut müsste man dann setzen?

Danke!

Gruss

justme1968

das iconPath attribut gibt nur an wo fhem nach den icons sucht.

ansonsten ist nichts global.

du setzt das devStateIcon attribut jeweils bei genau dem gerät bei dem du das icon haben möchtest.

gruß
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Talkabout

Zitat von: justme1968 am 18 Januar 2015, 17:00:58
das iconPath attribut gibt nur an wo fhem nach den icons sucht.

ansonsten ist nichts global.

du setzt das devStateIcon attribut jeweils bei genau dem gerät bei dem du das icon haben möchtest.

gruß
  andre
Hallo Andre,

das Problem ist, wenn ich den iconPath wie oben setze, haben plötzlich alle meine Lampen das SVG-Icon. Genau das möchte ich nicht. Ich will dass diese weiterhin das "alte" Icon (Glühbirne) anzeigen. Nur für die LED-Leiste soll das "neue" Icon verwendet werden, welches dann auch die jeweilige Farbei annehmen soll. Wie wären da die richtigen Attribute?

Danke!

Gruss

justme1968

dann musst du den icon path so setzen das zuerst die 'alten' icons gefunden werden:
attr WEB iconPath default:icons_small:fhemSVG:openautomation

und eine kopie der devStateIcon aus Color.pm in einer 99_myUtils.pm routine so ändern das statt der default icon namen die echten aus openautomation/iconalias.txt verwendet werden.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Talkabout

Zitat von: justme1968 am 18 Januar 2015, 18:41:03
dann musst du den icon path so setzen das zuerst die 'alten' icons gefunden werden:
attr WEB iconPath default:icons_small:fhemSVG:openautomation

und eine kopie der devStateIcon aus Color.pm in einer 99_myUtils.pm routine so ändern das statt der default icon namen die echten aus openautomation/iconalias.txt verwendet werden.

gruss
  andre
Hallo Andre,

ich glaube, ich habe die Funktionsweise der Funktion Color_devStateIcon missverstanden. Mein Verständnis war, dass diese Funktion in der Lage ist, SVN Icons dynamisch einzufärben. Heisst also, wenn ich ein SVG Icon habe, wie z.b. "light_led_stripe_rgb" aus dem openautomation Ordner, dass dieses Icon, wenn durch diese Funktion gejagt, mit der übergebenen Farbe gefüllt wird. Das scheint aber nicht so zu sein, zumindest nicht wenn ich den Code richtig verstanden habe. Es kann sein, dass ich da total falsch liege, aber kann man mit FHEM die von mir beschriebene Funktionalität überhaupt erreichen? Ansonsten müsste man ja für jede mögliche Farbe ein Icon anlegen, was nicht sehr sinnvoll wäre...

Danke!

Gruss

justme1968

fhem kann jedes svg icon einfärben in dem du an den icon namen ein @farbe anhängst. das ist statisch bzw. auf die zuordnung zwischen STATE und icon die du in devStateIcon angibst beschränkt.

die Color_devStateIcon nimmt den mechanismus den es in fhem gibt und wählt das icon abhängig von der helligkeit des RGB wertes (anzahl lichtstrahlen) und setzt abhängig vom die farbe des icons auf die zu diesem farb wert gehörenden hellst möglichen farbton.

es vermeidet also genau von hand jede mögliche kombination anzugeben und für jede mögliche kombination ein eigenes icon haben zu müssen.

wenn du das ganze mit einem eigenen icon machen möchtest und ohne die helligkeit in der anzahl der strahlen abzubilden kannst du dir dafür eine eigene routine schreiben.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Talkabout

Hallo Andre,

danke Dir für die Erklärung!

Demnach müsste ja etwas in der Richtung funktionieren, oder:

attr WZLED devStateIcon {"light_led_stripe_rgb.svg" . Color_devStateIcon(ReadingsVal($name,"rgb","000000"))}

Ich würde erwarten, dass dabei ein String raus kommt, der so aussieht:

light_led_stripe_rgb.svg@FARBTON

Mein Gedankengang ist aber wohl falsch, da es nicht funktioniert. Kannst Du mir einen Tipp geben, wo ich falsch liege?

Danke!

Gruss

justme1968

#7
Color_devStateIcon verwendet on/off/und die ganzen icons für die zwischenzustände mit der unterschiedlichen anzahl an lichtstralen.

was du brauchst ist einfach {"light_led_stripe_rgb@".ReadingsVal($name,"rgb","000000")}

aber achtung: dein icon wird unsichtbar sein wenn es die gleiche farbe wie der seiten hintergrund hat.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Talkabout

#8
Zitat von: justme1968 am 18 Januar 2015, 21:06:00
Color_devStateIcon verwendet on/off/und die ganzen icons für die zwischenzustände mit der unterschiedlichen anzahl an lichtstralen.

was du brauchst ist einfach {"light_led_stripe_rgb.svg@".ReadingsVal($name,"rgb","000000")}

aber achtung: dein icon wird unsichtbar sein wenn es die gleiche farbe wie der seiten hintergrund hat.

gruss
  andre
Hallo Andre,

irgendwas scheint bei mir noch zu fehlen, es funktioniert weder das eine noch das andere. Hier ist meine WEB Konfiguration:
define WEB FHEMWEB 8083 global
attr WEB basicAuth VGFsa2Fib3V0Ok1pc2l1MTk4MA==
attr WEB hiddenroom Server,Unsorted,DashboardRoom
attr WEB longpoll 1
attr WEB room Server
attr WEB stylesheetPrefix dark
attr WEB iconPath default:icons_small:fhemSVG:openautomation

Hier ist die Konfiguration meiner LED-Beleuchtung:
define WZLED WifiLight RGB LW12:192.168.20.22
attr WZLED alias LED Beleuchtung
attr WZLED colorCast 0, -20, -20, -25, 0, -10
attr WZLED eventMap on:an off:aus
attr WZLED fp_Erdgeschoss 545,17,5,Power
attr WZLED group Licht
attr WZLED room Wohnzimmer
attr WZLED webCmd RGB
attr WZLED whitePoint 1, 0.75, 0.25
attr WZLED widgetOverride RGB:colorpicker,RGB
#attr WZLED devStateIcon {"light_led_stripe_rgb.svg@".ReadingsVal($name,"rgb","000000")}
attr WZLED devStateIcon {Color_devStateIcon(ReadingsVal($name,"rgb","000000"))}

Hast Du vielleicht noch einen Tipp?

Danke Dir für die Mühe!

Gruss

justme1968

was genau funktioniert nicht?

was gibt ein list auf das device um das es geht?

wie heisst das reading bei dir denn wirklich? rgb oder RGB? in der einen version verwendest du das eine und in der anderen das andere.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Talkabout

Zitat von: justme1968 am 18 Januar 2015, 21:31:24
was genau funktioniert nicht?

was gibt ein list auf das device um das es geht?

wie heisst das reading bei dir denn wirklich? rgb oder RGB? in der einen version verwendest du das eine und in der anderen das andere.

gruss
  andre
Ich hatte das RGB=>rgb geändert :) Beides funktionierte nicht.

Hier das list:
Internals:
   CONNECTION LW12
   DEF        RGB LW12:192.168.20.22
   IP         192.168.20.22
   LEDTYPE    RGB
   NAME       WZLED
   NR         156
   NTFY_ORDER 50-WZLED
   PORT       5577
   PROTO      1
   SLOT       0
   STATE      an
   TYPE       WifiLight
   Readings:
     2015-01-18 21:16:22   RGB             0000FF
     2015-01-18 21:16:22   brightness      100
     2015-01-18 21:16:22   hue             240
     2015-01-18 21:16:22   saturation      100
     2015-01-18 21:16:22   state           on
   Helper:
     COMMANDSET on off dim dimup dimdown HSV RGB
     llLock     0
     COLORMAP:
       0
       1
       1
       2
       3
       3
       4
       5
       5
       6
       7
       7
       8
       9
       9
       10
       11
       11
       12
       13
       13
       14
       15
       15
       16
       17
       17
       18
       19
       19
       20
       21
       21
       22
       23
       23
       24
       25
       25
       26
       27
       27
       28
       29
       29
       30
       31
       31
       32
       33
       33
       34
       35
       35
       36
       37
       37
       38
       39
       39
       40
       41
       42
       43
       44
       45
       46
       47
       48
       49
       50
       51
       52
       53
       54
       55
       56
       57
       58
       59
       60
       61
       62
       63
       64
       65
       66
       67
       68
       69
       70
       71
       72
       73
       74
       75
       76
       77
       78
       79
       80
       81
       82
       83
       84
       85
       86
       87
       88
       89
       90
       91
       92
       93
       94
       95
       96
       97
       98
       99
       100
       101
       102
       103
       104
       105
       106
       106
       107
       108
       109
       110
       111
       112
       113
       114
       115
       116
       117
       117
       118
       119
       120
       121
       122
       123
       124
       125
       126
       127
       128
       128
       129
       130
       131
       132
       133
       134
       135
       136
       137
       138
       139
       139
       140
       141
       142
       143
       144
       145
       146
       147
       148
       149
       150
       150
       151
       152
       153
       154
       155
       156
       158
       159
       161
       162
       164
       165
       166
       168
       169
       171
       172
       173
       175
       176
       178
       179
       181
       182
       183
       185
       186
       188
       189
       190
       192
       193
       195
       196
       198
       199
       200
       202
       203
       205
       206
       207
       209
       210
       212
       213
       215
       216
       217
       219
       220
       222
       223
       224
       226
       227
       229
       230
       232
       233
       234
       236
       237
       239
       240
       241
       242
       243
       243
       244
       245
       246
       247
       248
       248
       249
       250
       251
       252
       253
       253
       254
       255
       256
       257
       258
       258
       259
       260
       261
       262
       263
       263
       264
       265
       266
       267
       268
       268
       269
       270
       271
       272
       273
       273
       274
       275
       276
       277
       278
       278
       279
       280
       281
       282
       283
       283
       284
       285
       286
       287
       288
       288
       289
       290
       291
       292
       294
       295
       296
       297
       298
       299
       301
       302
       303
       304
       305
       306
       308
       309
       310
       311
       312
       313
       315
       316
       317
       318
       319
       320
       322
       323
       324
       325
       326
       327
       329
       330
       331
       332
       333
       334
       336
       337
       338
       339
       340
       341
       343
       344
       345
       346
       347
       348
       350
       351
       352
       353
       354
       355
       357
       358
       359
       0
     GAMMAMAP:
       0
       0.0837677640068292
       0.243332430098219
       0.45405621299892
       0.70684316621699
       0.996357952001595
       1.31896324344069
       1.67196720192944
       2.05327034060355
       2.46117402090514
       2.89426612471675
       3.35134791378444
       3.83138472229589
       4.33347131986342
       4.85680675751166
       5.4006755921087
       5.96443354494847
       6.54749632988109
       7.14933080167485
       7.76944783828119
       8.40739654243209
       9.06275946322968
       9.73514861754315
       10.4242021465521
       11.1295814824596
       11.8509689292396
       12.5880655825711
       13.3405895300298
       14.1082742846809
       14.8908674144572
       15.6881293368749
       16.499832254239
       17.3257592089163
       18.1657032417713
       19.0194666396879
       19.8868602603794
       20.7677029245494
       21.6618208669846
       22.5690472394153
       23.4892216590168
       24.4221897972898
       25.3678030047821
       26.3259179677223
       27.2963963931522
       28.2791047195789
       29.2739138505435
       30.2806989088167
       31.2993390092098
       32.329717048222
       33.3717195089492
       34.4252362798567
       35.4901604861718
       36.5663883327847
       37.6538189576659
       38.7523542949095
       39.8618989466026
       40.982360062801
       42.1136472289627
       43.2556723602513
       44.4083496021795
       45.5715952371095
       46.7453275961738
       47.9294669762181
       49.1239355614018
       50.3286573491265
       51.5435580799885
       52.7685651714775
       54.0036076551689
       55.2486161171733
       56.5035226416311
       57.7682607570534
       59.0427653853271
       60.3269727932157
       61.6208205462015
       62.9242474645252
       64.237193581289
       65.5596001025013
       66.8914093689478
       68.2325648197832
       69.583010957744
       70.9426933158916
       72.3115584257991
       73.6895537871024
       75.0766278383415
       76.4727299290214
       77.8778102928286
       79.2918200219416
       80.7147110423796
       82.1464360903337
       83.5869486894341
       85.0362031289022
       86.4941544425471
       87.9607583885629
       89.4359714300888
       90.9197507164941
       92.4120540653557
       93.9128399450933
       95.4220674582326
       96.9396963252683
       98.4656868690975
       100
     hlCmdQueue:
     llCmdQueue:
Attributes:
   alias      LED Beleuchtung
   colorCast  0, -20, -20, -25, 0, -10
   devStateIcon {Color_devStateIcon(ReadingsVal($name,"rgb","000000"))}
   eventMap   on:an off:aus
   fp_Erdgeschoss 545,17,5,Power
   group      Licht
   room       Wohnzimmer
   webCmd     RGB
   whitePoint 1, 0.75, 0.25

Problem ist, dass trotz allem bei dem Device das "alte" Icon (Glühbirne) angezeigt wird, nicht das "neue" Icon.

Gruss

justme1968

Color_devStateIcon geht nicht wenn die SVG icons nicht vorne im pfad sind weil hier die normalen on/off/dim namen verwendet werden.

in deiner version musst du das .sag weg lassen. sorry. copy&paste fehler.

wenn es immer noch nicht geht nimm mal nur light_led_stripe_rgb als devStateIcon. siehst du dann etwas ?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Talkabout

Zitat von: justme1968 am 18 Januar 2015, 21:49:25
Color_devStateIcon geht nicht wenn die SVG icons nicht vorne im pfad sind weil hier die normalen on/off/dim namen verwendet werden.

in deiner version musst du das .sag weg lassen. sorry. copy&paste fehler.

wenn es immer noch nicht geht nimm mal nur light_led_stripe_rgb als devStateIcon. siehst du dann etwas ?

gruss
  andre
Hallo Andre,

Folgende Version funktioniert nicht:
define WZLED WifiLight RGB LW12:192.168.20.22
attr WZLED alias LED Beleuchtung
attr WZLED colorCast 0, -20, -20, -25, 0, -10
attr WZLED eventMap on:an off:aus
attr WZLED fp_Erdgeschoss 545,17,5,Power
attr WZLED group Licht
attr WZLED room Wohnzimmer
attr WZLED webCmd RGB
attr WZLED whitePoint 1, 0.75, 0.25
#attr WZLED widgetOverride RGB:colorpicker,RGB
attr WZLED devStateIcon {"light_led_stripe_rgb@".ReadingsVal($name,"RGB","000000")}
#attr WZLED devStateIcon {Color_devStateIcon(ReadingsVal($name,"rgb","000000"))}
#attr WZLED devStateIcon .*:light_led_stripe_rgb

Folgende Version funktioniert, aber eben ohne Einfärbung:
define WZLED WifiLight RGB LW12:192.168.20.22
attr WZLED alias LED Beleuchtung
attr WZLED colorCast 0, -20, -20, -25, 0, -10
attr WZLED eventMap on:an off:aus
attr WZLED fp_Erdgeschoss 545,17,5,Power
attr WZLED group Licht
attr WZLED room Wohnzimmer
attr WZLED webCmd RGB
attr WZLED whitePoint 1, 0.75, 0.25
#attr WZLED widgetOverride RGB:colorpicker,RGB
#attr WZLED devStateIcon {"light_led_stripe_rgb@".ReadingsVal($name,"RGB","000000")}
#attr WZLED devStateIcon {Color_devStateIcon(ReadingsVal($name,"rgb","000000"))}
attr WZLED devStateIcon .*:light_led_stripe_rgb

Gruss

justme1968

sorry. ich bin eine schlafmütze. es muss natürlich noch der STATE drin stehen...
attr WZLED devStateIcon {".*:light_led_stripe_rgb@".ReadingsVal($name,"RGB","000000")}
der string ist genau so aufgebaut wie ein normales devStateIcon im regex format

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Talkabout

Zitat von: justme1968 am 18 Januar 2015, 21:59:56
sorry. ich bin eine schlafmütze. es muss natürlich noch der STATE drin stehen...
attr WZLED devStateIcon {".*:light_led_stripe_rgb@".ReadingsVal($name,"RGB","000000")}
der string ist genau so aufgebaut wie ein normales devStateIcon im regex format

gruss
  andre
Hallo Andre,

SUPER, das funktioniert :)

Jetzt noch mal für mich zum Verständnis, die Standard-Icons (Vektor-Glühbirnen mit Lichtstrahlen) funktionieren deswegen nicht, weil dafür der Standard-Pfad (iconPath) erst die SVG-Grafiken auflisten muss, korrekt?

Danke!

Gruss