Namenskonvention für icons

Begonnen von UliM, 11 Juni 2013, 12:45:44

Vorheriges Thema - Nächstes Thema

justme1968

danke. das hilft schon mal weiter. damit kann ich off, die dimbaren (nicht farbigen) lampen und die farbigen lampen im weiss modus abdecken. probiere ich heute abend gleich aus.

die idee mit dem css ist auch besser als die farbe direkt anzugeben. zur zeit aber noch nicht vom {} code aus nutzbar. wenn wir noch eine möglichkeit finden vom {} aus das css für ein bestimmtes icon zu beeinflussen kann ich auch die farben mit den svg icons abbilden. die neuen icons sind so gut, es wäre dumm sie nicht zu nutzen.

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

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

justme1968

so... kurzer zwischenstand: im prinzip geht es fast. aber es hakt noch an diversen stellen.

- in zeile 2254 muss der operator 'eq' sein und nicht '=='. es ist ja ein string.
- so wie ich es bisher mache devStateIcon aus dem code heraus auf '{CommandGet("","'.$name.' devStateIcon")}' zu setzen geht nicht. weil beim CommandGet das undef das ich zurückgebe in ein '' verwandelt wird. (ich weiss du magst nicht das ich es so verwende aber es war so implementiert bevor FW_summaryFn gab und FW_summaryFn funktioniert noch nicht richtig)
- wenn ich es mit FW_summaryFn versuche klappt dann zwar die rückgabe, ich habe aber das problem das FW_summaryFn zu spät/gar nicht aufgerufen wird: beispiel: meine lampe ist aus und es wird das normale off icon angezeigt -> ich klicke auf die lampe, sie geht an und es wird das default on icon angezeigt ohne das FW_summaryFn aufgerufen wurde. erst wenn ich im browser ein refresh mache wird das icon angezeigt das FW_summaryFn zurück liefert.
- FW_summaryFn hat nicht die möglichkeit das beim klick auszuführende kommando mit zurückzugeben

gruss
  andre

edit: ich habe mir jetzt einen wrapper HUEDevice_devStateIcon() geschrieben der als default für das devStateIcon gesetz wird devStateIcon {(HUEDevice_devStateIcon($name),"toggle")} und der selber wiederum meine FW_summaryFn aufruft die ich aber fhem nicht bekannt gemacht habe. damit kann ich undef zurückgeben und das kommando und es wird zum richtigen zeitpunkt aufgerufen. das ist zwar sicher nicht im sinne des erfinders von FW_summaryFn aber es funktioniert. d.h. ich kann erst mal damit leben.

ich hab es gleich so gebaut das ich entweder den namen oder den hash übergeben kann. so kann ich es intern und für die user aufrufbar machen. gar nicht unpraktisch.

jetzt fehlt nur noch das ich irgendwie aus dem code das css für das icon setzen kann.

edit2: beim testen eben bemerkt: die webCmdFn wird auch zu spät bzw erst nach einem refresh der seite aufgerufen. nicht wenn ich auf der seite auf ein icon oder ein webCmd clicke.

edit3: ich hatte vorhin meine änderungen am hue modul schon eingecheckt ohne daran zu denken das der string vergleich noch falsch war. ich habe mir  deshalb eben ausnahmsweise erlaubt das in 01_FHEMWEB direkt zu fixen und einzuchecken damit morgen/nachher nach dem update die icons im hue modul bei den anwendern noch gehen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

wäre es für dich eine option das @... als rückgabe alternativ zum html zuzulassen? dann könnte ich genau das 'css austoben' das du vorgeschlagen hast vom modul code aus machen. sonst habe ich ja keine möglichkeit das icon spezifisch zu machen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rudolfkoenig

> eine option das @... als rückgabe ...

Du kannst ja auch FW_makeImage direkt aufrufen. Ich kann Dein Vorschlag mit @ einbauen, aber langsam wird es mir zu bunt mit den verschiedenen Rueckgabemoeglichkeiten: normal, undef, "" und @... Wer soll den Sinn ausser Dir noch verstehen...

> FW_summaryFn zu spät/gar nicht aufgerufen wird:

Das ist in der Tat ein Bug, ich hoffe ich habe es jetzt gefixed: es wurde bisher nur beim Seitenaufbau aufgerufen, aber nicht wenn longpoll nach dem Status gefragt hat. Kannst Du es bitte testen?
Die anderen Beispiele mit summaryFn (weblink/FileLog) generieren keine Events, deswegen kann ich es nicht so gut testen.


> webCmdFn wird auch zu spät bzw erst nach einem refresh der seite aufgerufen.

Stimmt, aber das bleibt erstmal auch so.



justme1968

Zitataber langsam wird es mir zu bunt
... genau darum geht es bei den ganzen bunten lampen :)

aber im ernst: ich probiere es mit FW_makeImage aus. wenn das geht brauche ich die @ erweiterung nicht unbedingt. der sinn ist die icons vom modul code zu steuern. ich weiss ich bin noch der einzige der es nutzt. und auch die nur fast 30 anwender sind im vergleich zur gesamten anwenderzahl nicht viel. aber beides kann sich ja ändern.

den FW_summaryFn fix probiere ich auch.

das mit webCmdFn ist schade... der colorpicker hat dann immer die farbe des letzten events und nicht des aktuellen.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

ich hab es gerade mit der neuen version probiert aber es funktioniert noch nicht ganz.

sollte der FW_summaryFn aufruf in FW_devState nicht vor die stelle an der die default icons erzeugt werden? was angezeigt wird (nichts, default oder modul code) ist ja  genau abhängig vom der rückgabe. sonst geht ja der undef und "" fall nicht mehr.

das hatten wir bisher definiert:
undef -> das default icon das fhem normalerweise verwenden würde
"" -> kein icon sondern state (oder STATE?) als text
<html...> -> der html code als icon
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

wenn man neben dem html code als zweite version state@color/css erlaubt könnte man die rückgabe aus dem {} auf zwei möglichkeiten beschränken von denen eine identisch zu dem ist was ein anwender im devStateIcon setzen kann. das wäre einfach und übersichtlich und deckt alles ab: einmal einfach wenn es nur im das icon für einen bestimmten state oder in einer bestimmten farbe geht mit allen defaults und konfigurationen die fhem bietet und einmal als html mit allen freiheiten.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rudolfkoenig

> sonst geht ja der undef und "" fall nicht mehr.

Sorry, das habe ich verdraengt :), aber jetzt wieder eingebaut.


> wenn man neben dem html code als zweite version state@color/css

Habe nichts dagegen, solange Du mir sagst, wie ich die beiden ausseinanderhalten soll.

justme1968

ZitatHabe nichts dagegen, solange Du mir sagst, wie ich die beiden ausseinanderhalten soll.

aus dem stehgreif würde ich sagen html fängt immer mit einem tag, d.h. mit '<' an. alles andere wäre dann der name des state mit optional angeängtem @...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rudolfkoenig

Hab schon gedacht, wollte aber von Dir hoeren :) Ist jetzt eingecheckt mit:
- <.*> -> Html
- sonst wird devStateIcon auf das erste Rueckgabewert gesetzt und ausgewertet.

justme1968

das klingt gut. schau ich mir so bald wie möglich an.

danke.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

justme1968

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

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

justme1968

kannst du bitte das matchen auf html code noch etwas erweitern das auch code mit newline erkannt wird?m/^<.*>$/ms

wenn ich die neue remote (mit obiger web erweiterung) als devstateIcon oder FW_summaryFn einbinde ist sie beim seiten aufbau kurz zu sehen und verschwindet dann. hast du eine idee woran das liegt ?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rudolfkoenig

Bist Du sicher dass wir den ms Modifier brauchen? s verstehe ich noch, aber ms?
Wenn es ms sein soll, dann will ich ein Beispiel, damit ich es verstehe.

justme1968

ich hatte es mit dem html code probiert den das neue remotecontroll modul liefert. da geht es ohne m nicht. der code wird nicht als html erkannt und fhem schmiert komplett ab. ich dachte es liegt an zu vielen \n am ende. jetzt hab ich noch mal genau nachgeschaut und es liegt an einem \n am anfang.

wenn man das in 95_remotecontrol ändert dann geht aus mit nur s.

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

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