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...
schau mal nach devStateIcon
gruss
andre
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
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
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
die null ist ja auch ein stetig also nur 0.*
gruss
andre
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
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
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
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
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.
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.
ok Danke habs hingekrigt aber mir gefält es mit Bildern besser.
Gruß Markus
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%
Hallo,
zusätzliche Frage: geht es das icon und den Wert anzuzeigen?
ciao walter
im prinzip schon aber nur mit eigenem perl code.
gruss
andre
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)
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
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.
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.
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
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.