FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Markus am 21 Februar 2013, 21:23:37

Titel: % werte in icons anzeigen
Beitrag von: Markus am 21 Februar 2013, 21:23:37
Hallo

Ich hab jetzt für meine HM Dimmer 100 Lampen Icons angelegt jetzt wird im web immer schön eine Lampe mit entsprechendem wert angezeigt.

zb: "20 %.png"

Leider wird die Lampe auch für meine HM Stelantriebe verwendet...
Ich überlege jetzt auch 100 Symbole für die Heizung zu erstellen aber um die dann richtig zuzuweisen mus ich bei 6 Heizkörpern 600 Icons umbenennen

zb: "Heizkorper_Wohnzimmer.20 %.png"

gibt es nicht eine Möglichkeit das ich die Symbole nur "Heizung.20 %.png" benenne und dann werden sie für alle Heizkörper verwendet.

ich erinnere mich das der stell antrieb früher "set_20%" anzeigte jetzt zeigt er nur mehr"20 %" an vielleicht kann ich ja auch das wieder verändern leider weiß ich nicht wie...
Titel: Aw: % werte in icons anzeigen
Beitrag von: justme1968 am 21 Februar 2013, 21:45:37
schau mal nach devStateIcon

gruss
  andre
Titel: Aw: % werte in icons anzeigen
Beitrag von: Markus am 21 Februar 2013, 22:00:01
ja das hab ich schon gefunden aber mus ich da nicht auch 100 einträge pro aktor anlegen?

attr Bad_Rolladen devStateIcon hoch:shutter_open runter:shutter_closed halb:shutter_halfopen
Titel: Aw: % werte in icons anzeigen
Beitrag von: justme1968 am 21 Februar 2013, 22:09:08
nur wenn du 100 unterschiedliche icons willst...

sonst kannst du mit wildcards arbeiten:on:shutter_closed off:shutter_open \d+.*:shutter_halfopen

z.b. 1\d.* 2\d.* ... für 10er schritte

gruss
  andre
Titel: Aw: % werte in icons anzeigen
Beitrag von: Markus am 23 Februar 2013, 16:10:00
Danke!
Ich habs jetzt so gemacht scheint zu Funktionieren nur bei Null wird weiterhin 0% angezeigt.

attr Heizkorper_Kuche devStateIcon 0\d.*:0% 1\d.*:10% 2\d.*:20% 3\d.*:30% 40\d.*:40% 5\d.*:50% \
6\d.*:60% 7\d.*:70% 8\d.*:80% 9\d.*:90% 100\d.*:100%


Gruß Markus
Titel: Aw: % werte in icons anzeigen
Beitrag von: justme1968 am 23 Februar 2013, 16:28:00
die null ist ja auch ein stetig also nur 0.*

gruss
  andre
Titel: Aw: % werte in icons anzeigen
Beitrag von: Markus am 24 Februar 2013, 07:48:53
Jetzt schaut es so aus und Funktioniert Perfekt!!
Danke!!
devStateIcon 0.*:0% 1.*:9% 2.*:9% 3.*:9% 4.*:9% 5.*:9% 6.*:9% 7.*:9% 8.*:9% 9.*:9% \
1\d.*:10% 2\d.*:20% 3\d.*:30% 40\d.*:40% 5\d.*:50% 6\d.*:60% 7\d.*:70% 8\d.*:80% 9\d.*:90% 100\d.*:100%


Gruß Markus
Titel: Aw: % werte in icons anzeigen
Beitrag von: Markus am 25 Februar 2013, 22:21:36
zu früh gefreut jetzt wird immer das 9% icon geladen der rest interesiert fhem nicht mehr :-(


devStateIcon 0.*:0% 1.*:9% 2.*:9% 3.*:9% 4.*:9% 5.*:9% 6.*:9% 7.*:9% 8.*:9% 9.*:9% \
1\d.*:10% 2\d.*:20% 3\d.*:30% 40\d.*:40% 5\d.*:50% 6\d.*:60% 7\d.*:70% 8\d.*:80% 9\d.*:90% 100\d.*:100%


gruß Markus
Titel: Aw: % werte in icons anzeigen
Beitrag von: justme1968 am 25 Februar 2013, 22:44:12
du hast gesagt alles das mit 1,2,3,... anfängt soll auf 9 gemappt werden. 10,20,30,... fangen auch alle mit 1,2,3,... an!

die einstelligen solltest du so erwischen \d.%:9%

gruss
  andre
Titel: Aw: % werte in icons anzeigen
Beitrag von: justme1968 am 25 Februar 2013, 23:39:56
und noch eine version ganz ohne icons mit dem neuen devStateIcon feature von heute.

das hier im web interface als devStateIcon eingeben:{my $v=Value("RolladenBuero");my $p=33; $p=int($v/3) if($v ne "up");  return '<div align="top" style="width:33px;height:'.(33-$p).'px;margin-bottom:'.$p.'px;border: 1px solid #000;background-color:#888;"></div>'}

RolladenBuero durch den device namen ersetzen und up durch den zustand den der rolladen  hat wenn er ganz oben ist.

gruss
  andre
Titel: Aw: % werte in icons anzeigen
Beitrag von: Markus am 02 März 2013, 08:01:40
Jetzt Funktioniert es Danke Andre!

das hab ich nicht probiert... wo muss ich es eingeben? In das Eingabefeld ganz oben neben dem verwirrendem "Save" Button? ;-)
oder soll es auch Funktionieren wen ich es direkt in die .cfg Eingebe?
Würde der Code dann so ausschauen?
attr Heizkorper_Kuche devStateIcon {my $v=Value("Heizkorper_Kuche");my $p=33; $p=int($v/3) if($v ne "Heis");  return '<div align="top" style="width:33px;height:'.(33-$p).'px;margin-bottom:'.$p.'px;border: 1px solid #000;background-color:#888;"></div>'}


Gruß Markus

ps sorry für meine vielen Fragen aber ich kann die Doku für devStateIcon nicht finden.
Titel: Aw: % werte in icons anzeigen
Beitrag von: justme1968 am 02 März 2013, 08:41:31
am  besten gibst du es hier ein:

(siehe Anhang / see attachement)

und zwar nur den teil mit den {} und danach auf den "attr" button klicken.

das beispiel ist eher für einen rolladen. wenn es eine temperatur sein soll ist es vielleicht besser die breite auf 10px zu ändern, die farbe auf #f00 und marin-bottom zu marin-top.

gruss
  andre

ach ja: diese feature geht erst seit etwa einer woche. also nur mut aktuellem update.
Titel: Aw: % werte in icons anzeigen
Beitrag von: Markus am 04 März 2013, 16:40:49
ok Danke habs hingekrigt aber mir gefält es mit Bildern besser.

Gruß Markus
Titel: Aw: % werte in icons anzeigen
Beitrag von: Markus am 10 März 2013, 17:09:38
Wenn ich jetzt 100 Bilder erstellen würde, ist es dann auch möglich alle mit einer Formel zu erwischen zb durch Weitergabe des wertes..

attr Heizkorper_Kuche devStateIcon %.*:Heizung.%*

nimmt dann halt das richtige Bild zb:

Heizung.14%.png
Heizung.15%.png"

es Funktioniert aber ist doch auch keine Lösung oder?... :-(

devStateIcon 0.*:Heizung.0% \d.%:Heizung.9% 10.*:Heizung.10% 11.*:Heizung.11% \
12.*:Heizung.12% 13.*:Heizung.13% 14.*:Heizung.14% 15.*:Heizung.15% 16.*:Heizung.16% 17.*:Heizung.17% \
18.*:Heizung.18% 19.*:Heizung.19% 20.*:Heizung.20% 21.*:Heizung.21% 22.*:Heizung.22% 23.*:Heizung.23% \
24.*:Heizung.24% 25.*:Heizung.25% 26.*:Heizung.26% 27.*:Heizung.27% 28.*:Heizung.28% 29.*:Heizung.29% \
30.*:Heizung.30% 31.*:Heizung.31% 32.*:Heizung.32% 33.*:Heizung.33% 34.*:Heizung.34% 35.*:Heizung.35% \
36.*:Heizung.36% 37.*:Heizung.37% 38.*:Heizung.38% 39.*:Heizung.39% 40.*:Heizung.40% 41.*:Heizung.41% \
42.*:Heizung.42% 43.*:Heizung.43% 44.*:Heizung.44% 45.*:Heizung.45% 46.*:Heizung.46% 47.*:Heizung.47% \
48.*:Heizung.48% 49.*:Heizung.49% 50.*:Heizung.50% 51.*:Heizung.51% 52.*:Heizung.52% 53.*:Heizung.53% \
54.*:Heizung.54% 55.*:Heizung.55% 56.*:Heizung.56% 57.*:Heizung.57% 58.*:Heizung.58% 59.*:Heizung.59% \
60.*:Heizung.60% 61.*:Heizung.61% 62.*:Heizung.62% 63.*:Heizung.63% 64.*:Heizung.64% 65.*:Heizung.65% \
66.*:Heizung.66% 67.*:Heizung.67% 68.*:Heizung.68% 69.*:Heizung.69% 70.*:Heizung.70% 71.*:Heizung.71% \
72.*:Heizung.72% 73.*:Heizung.73% 74.*:Heizung.74% 75.*:Heizung.75% 76.*:Heizung.76% 77.*:Heizung.77% \
78.*:Heizung.78% 79.*:Heizung.79% 80.*:Heizung.80% 81.*:Heizung.81% 82.*:Heizung.82% 83.*:Heizung.83% \
84.*:Heizung.84% 85.*:Heizung.85% 86.*:Heizung.86% 87.*:Heizung.87% 88.*:Heizung.88% 89.*:Heizung.89% \
90.*:Heizung.90% 91.*:Heizung.91% 92.*:Heizung.92% 93.*:Heizung.93% 94.*:Heizung.94% 95.*:Heizung.95% \
96.*:Heizung.96% 97.*:Heizung.97% 98.*:Heizung.98% 99.*:Heizung.99% 100.*:Heizung.100%
Titel: Aw: % werte in icons anzeigen
Beitrag von: wkarl am 03 Juli 2013, 10:49:58
Hallo,

zusätzliche Frage: geht es das icon und den Wert anzuzeigen?

ciao walter
Titel: Aw: % werte in icons anzeigen
Beitrag von: justme1968 am 03 Juli 2013, 11:34:40
im prinzip schon aber nur mit eigenem perl code.

gruss
  andre
Titel: Aw: % werte in icons anzeigen
Beitrag von: rudolfkoenig am 03 Juli 2013, 20:39:01
Ersetzungen kann man (neuerdings) auch in der Datei iconalias.txt machen, das muss jeweils im Bilderverzeichnis liegen, eine Beispieldatei liegt in www/images/openautomation.

Fuer Freunde von Perl ist folgende Variante gedacht:

attr Heizkorper_Kuche devStateIcon { ".*%:Heizung.".Value("Heizkorper_Kuche") }

Siehe auch http://fhem.de/commandref.html#devStateIcon (//fhem.de/commandref.html#devStateIcon)
Titel: Aw: % werte in icons anzeigen
Beitrag von: wkarl am 04 Juli 2013, 20:33:49
Hallo Rudolf,

ich hab das bei mir versucht, leider mit wenig Erfolg. Es wird kein icon angezeigt.


(siehe Anhang / see attachement)


Irgendeine Idee warum es nicht tut?

Danke und ciao walter
Titel: Aw: % werte in icons anzeigen
Beitrag von: RobertJ am 08 September 2013, 20:14:43
Zitat von: justme1968 schrieb am Mo, 25 Februar 2013 23:39und noch eine version ganz ohne icons mit dem neuen devStateIcon feature von heute.

das hier im web interface als devStateIcon eingeben:{my $v=Value("RolladenBuero");my $p=33; $p=int($v/3) if($v ne "up");  return '<div align="top" style="width:33px;height:'.(33-$p).'px;margin-bottom:'.$p.'px;border: 1px solid #000;background-color:#888;"></div>'}

RolladenBuero durch den device namen ersetzen und up durch den zustand den der rolladen  hat wenn er ganz oben ist.

gruss
  andre

Wie geil ist das denn? Und ich habe gerade angefangen Balken zu zeichnen ....
Hehe, danke.
Titel: Aw: % werte in icons anzeigen
Beitrag von: RobertJ am 09 September 2013, 19:57:36
Und zu früh gefreut....
Also ich habe das ganze etwas umgebaut, um den Stand eines Rolladens in den Floorplan einzubauen. Sieht im Floorplan so aus:

(siehe Anhang / see attachement)


und in der room-Übersicht:

(siehe Anhang / see attachement)


Das ist der Code dazu: den ich direkt in der Webübericht in das Feld eintrage:
{my $v=Value("Rollo_AZ"); my $p=90; my $x=int($v); my $y=$x/100; $p=int($p*$y) if($v ne "off"); return '<div align="top" style="width:5px;height:'.(90-$p).'px;margin-bottom:'.$p.'px;border: 1px solid #000;background-color:#FFC;"></div>'}

Das Problem ist jetzt das das ganze auch funktioniert. Bis ich einen "shutdown restart" mache.
Dann kommt zwar die fhem Startseite, sobald ich aber auf den room Rolladen klicke geht fhem down.

Titel: Aw: % werte in icons anzeigen
Beitrag von: justme1968 am 09 September 2013, 20:56:08
das problem ist das #FFC. wenn fhem das aus dem config file liesst ist # das kommentar zeichen und die zeile wird danach abgebrochen und ist fehlerhaft.

der einfachste weg das in den griff zu bekommen ist das ganze als funktion in 99_myUtils zu definieren und im devStateIcon die funktion aufzurufen.

gruss
  andre
Titel: Aw: % werte in icons anzeigen
Beitrag von: RobertJ am 10 September 2013, 09:24:42
Ok, funktioniert jetzt so ...
Aufruf im devStateIcon:
{rolloIcon("<Name Rollo>",<länge Rollo>,"<Aurichtung Rollo>")}
z.B.:
{rolloIcon("Rollo_AZ",90,"NS")}

Wobei die Ausrichtung "NS" für NordSüd steht.

und in der 99_myUtils.pm
sub rolloIcon($$$)
{
my ($name) = @_[0];
my ($laenge) = @_[1];
my ($ausri) = @_[2];
my $val=Value("$name");
my $valx=int($val);
my $valx=$valx/100;
if ($ausri eq "NS"){
my $p = int($laenge*$valx) if ($val ne "off");
return '<div align="top" style="width:5px;height:'.($laenge-$p).'px;margin-bottom:'.$p.'px;border: 1px solid #000;background-color:#FFC;"></div>'
}
else {
my $p = int($laenge*$valx) if ($val ne "off");
return '<div align="top" style="width:'.($laenge-$p).'px;height:5px;margin-bottom:'.$p.'px;border: 1px solid #000;background-color:#FFC;"></div>'

}
}


Vielen Dank für den Schubs in die richtige Richtung
Gruß, Robert.