Autor Thema: FHEM mit bunten Bildern  (Gelesen 9992 mal)

Offline kvo1

  • Hero Member
  • *****
  • Beiträge: 1475
  • FHEMonaut
Antw:FHEM mit bunten Bildern
« Antwort #15 am: 06 April 2015, 12:06:21 »
Hallo pah,

hmmm, entweder stell ich mich zu doof an, oder es hängt doch noch irgendwo ?

Ich habe den angegebenen Code an allen 3 Stellen ersetzt !.

Ergebnis:
p2=333.0          geht
p2=333             geht nicht
p2=rawValue     geht auch nicht

schönes Restostern !
kvo1
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8181
Antw:FHEM mit bunten Bildern
« Antwort #16 am: 06 April 2015, 12:58:49 »
OK, anderer Ansatz für den regulären Ausdruck: /[\.\d]*/

LG

pah

Offline kvo1

  • Hero Member
  • *****
  • Beiträge: 1475
  • FHEMonaut
Antw:FHEM mit bunten Bildern
« Antwort #17 am: 06 April 2015, 15:04:45 »
geht leider garnicht  :'(

habe es zunächst auf      /\d*\.+\d*/    zurück geändert !

RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Offline Reinhart

  • Hero Member
  • *****
  • Beiträge: 2356
Antw:FHEM mit bunten Bildern
« Antwort #18 am: 09 Juni 2015, 17:07:00 »
Fhem mit bunten Bildern ist eine tolle Sache und pah hat uns hier ein tolles Beispiel gegeben!

Da pah ja schon das Thermometer vorbereitet hat, habe ich es nun für mich ausgebaut um die Wassertemperatur des Pools darzustellen. Sie he dazu das angehängte Bild.
Es funktionieren ebenfalls nur die 3 Farben (red, green, blue), wobei beim Thermometer "Blue" den meisten Sinn macht.

Der Aufruf sieht z.B. so aus:
attr PoolWasser stateFormat <embed src='fhem/SVGX_widget?type=thermometer&subtype=blue&dev=CUL_HM 268735&size=200x240&p1=temperature&s1=35.0&p2=temperature&s2=1 °C&p3=Wassertemperatur'/>

Die Übergabeparameter entsprechen der Beschreibung von pah. Die Thermometeransicht muss mit Typ "thermometer" angegeben werden.

Ebenfalls hänge ich den erweiterten ursprünglichen Code hier an. Neu ist alles ab dieser Zeile:  elsif($type eq 'thermometer'){

sub SVGX_widget($)
{
  my ($arg) = @_;
  my $type = $FW_webArgs{type};
  my $subtype = $FW_webArgs{subtype};
 
  my @size=split('x',($FW_webArgs{size} ? $FW_webArgs{size} : 320x240));
  #Log 1,"++++++++++++++++++++++++++++++++++++++++++++";
  #Log 1,"SVGX_widget type $type (subtype $subtype) called with $arg";
  #Log 1,"SVG Plotmode is ".AttrVal($FW_wname, "plotmode", "SVG");
  #Log 1,"SVGX_widget has size ".$size[0]."x".$size[1];
  #Log 1,"++++++++++++++++++++++++++++++++++++++++++++";
 
  $FW_RETTYPE = "image/svg+xml";
  $FW_RET="";
  FW_pO '<svg xmlns="http://www.w3.org/2000/svg" viewBox="10 0 320 200" width="'.$size[0].'px" height="'.$size[1].'px">';

if( $type eq 'bar' ){
    #
    # Horizontal color bar
    #
    #  ---------------
    # | |    | |    | |
    #  ---------------
    #
    # 16           264
    # three parameters w. scale
    # p1 = interior display value - either as "reading" name or as number
    #      if it is given as "reading" name, a dev parameter must be given
    # s1 = scale, consisting of max. value and unit e.g.: 35.0 kWh
    # p2 = exterior display value - either as "reading" name or as number
    # s2 = scale, consisting of (ignored) number and unit, e.g.: 1 kW
    # p3 = lower bottom label

    my $p1 = $FW_webArgs{p1};
    my $raw1;
    if( $p1 =~ /\d*\.\d*/ ){
      $raw1 = $p1;
    } else {
      $raw1 = ReadingsVal($FW_webArgs{dev},$p1,0);
    }
    my @s1 = split(' ',$FW_webArgs{s1});
 
    my $p2 = $FW_webArgs{p2};
    my $raw2;
    if( $p2 =~ /\d*\.\d*/ ){
      $raw2 = $p2;
    } else {
      $raw2 = ReadingsVal($FW_webArgs{dev},$p2,0);
    }
    my @s2 = split(' ',$FW_webArgs{s2});

    #-- scaling
    my $val1 = int($raw1/$s1[0]*248+16);
 
    FW_pO '<defs>';
    #-- white - snow4
    FW_pO '<linearGradient id="grad0" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:white;stop-opacity:1"/><stop offset="100%" style="stop-color:rgb(139, 137, 137);stop-opacity:1"/></linearGradient>';
    if( $subtype eq 'red'){
      #-- lightsalmon/red and lightsalmon/lightsalmon3
      FW_pO '<linearGradient id="grad1" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 255, 192, 188);stop-opacity:1"/><stop offset="100%" style="stop-color:red;stop-opacity:1"/></linearGradient>';
      FW_pO '<linearGradient id="grad2" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 255, 192, 188);stop-opacity:1"/><stop offset="100%" style="stop-color:rgb( 255, 140, 105);stop-opacity:1"/></linearGradient>';
   }elsif( $subtype eq 'green'){
      #-- chartreuse/green and chartreuse/chartreuse3
      FW_pO '<linearGradient id="grad1" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 127,255, 0);stop-opacity:1"/><stop offset="100%" style="stop-color:green;stop-opacity:1"/></linearGradient>';
      FW_pO '<linearGradient id="grad2" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 127,255, 0);stop-opacity:1"/><stop offset="100%" style="stop-color:rgb( 102, 205, 0);stop-opacity:1"/></linearGradient>';
    }elsif( $subtype eq 'blue'){
      #-- cyan/blue and cyan/cyan3
      FW_pO '<linearGradient id="grad1" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:cyan;stop-opacity:1"/><stop offset="100%" style="stop-color:blue;stop-opacity:1"/></linearGradient>';
      FW_pO '<linearGradient id="grad2" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:cyan;stop-opacity:1"/><stop offset="100%" style="stop-color:rgb( 0, 205, 205);stop-opacity:1"/></linearGradient>';
    }
    #-- colored shadow 1 / 2 pixel
    FW_pO '<filter id="cshadow1" x="0" y="0" width="200%" height="200%"><feOffset result="offOut" in="SourceGraphic" dx="1" dy="1" /><feColorMatrix result="matrixOut" in="offOut" type="matrix" values="0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0.9 0.9 0.9 0.4 0" /><feGaussianBlur result="blurOut" in="matrixOut" stdDeviation="1" /><feBlend in="SourceGraphic" in2="blurOut" mode="normal" /></filter>';
    FW_pO '<filter id="cshadow2" x="0" y="0" width="200%" height="200%"><feOffset result="offOut" in="SourceGraphic" dx="2" dy="2" /><feColorMatrix result="matrixOut" in="offOut" type="saturate" values="0.2" /><feGaussianBlur result="blurOut" in="matrixOut" stdDeviation="1" /><feBlend in="SourceGraphic" in2="blurOut" mode="normal" /></filter>';
    FW_pO '</defs>';
   
    FW_pO '<g><g transform="translate(0,45)">';
    FW_pO '<rect x="16" y="5" width="40" height="80" rx="20" ry="40" fill="url(#grad0)"/>';
    FW_pO '<rect x="264" y="5" width="40" height="80" rx="20" ry="40" fill="rgb(255,250,250)"/>';
    FW_pO sprintf('<rect x="16" y="5" width="%d" height="80" rx="20" ry="40" fill="url(#grad1)"/>',$val1+20);
    FW_pO sprintf('<rect x="%d" y="5" width="40" height="80" rx="20" ry="40" fill="url(#grad2)"/>',$val1);
    FW_pO '<rect x="264" y="5" width="40" height="80" rx="20" ry="40" fill="none" stroke="rgb(139, 137, 137)" stroke-width="2"/>';
    FW_pO '<rect x="16" y="5" width="288" height="80" rx="20" ry="40" fill="none" stroke="rgb(139, 137, 137)" stroke-width="2"/>';
    #-- label
    FW_pO sprintf('<text x="150" y="52" fill="rgb(75, 75, 75)" style="filter:url(#cshadow1);font-size:24px;font-weight:bold">%5.2f %s</text>',$raw1,$s1[1]);
    FW_pO '</g>';
    FW_pO sprintf('<text x="30" y="40" fill="blue" style="filter:url(#cshadow2);font-family:Helvetica;font-size:32px;font-weight:bold">%5.2f %s</text>',$raw2,$s2[1]);
    FW_pO sprintf('<text x="16" y="160" fill="rgb(75, 75, 75)" style="filter:url(#cshadow1);font-family:Helvetica;font-size:24px;font-weight:bold">%s</text>',$FW_webArgs{p3});
    FW_pO '</g>';

  }elsif($type eq 'thermometer'){
    #
    # Vertical Color thermometer
    #
    #    ||
    #    || 
    #    ||
    #   |__|
    #
    # 16           264
    # three parameters w. scale
    # p1 = interior display value - either as "reading" name or as number
    #      if it is given as "reading" name, a dev parameter must be given
    # s1 = scale, consisting of max. value and unit e.g.: 35.0 Grad
    # p2 = exterior display value - either as "reading" name or as number
    # s2 = scale, consisting of (ignored) number and unit, e.g.: 1 Grad
    # p3 = lower bottom Label

    my $p1 = $FW_webArgs{p1};
    my $raw1;
    if( $p1 =~ /\d*\.+\d*/ ){
      $raw1 = $p1;
    } else {
      $raw1 = ReadingsVal($FW_webArgs{dev},$p1,0);
    }
    my @s1 = split(' ',$FW_webArgs{s1});
 
    my $p2 = $FW_webArgs{p2};
    my $raw2;
    if( $p2 =~ /\d*\.+\d*/ ){
      $raw2 = $p2;
    } else {
      $raw2 = ReadingsVal($FW_webArgs{dev},$p2,0);
    }
    my @s2 = split(' ',$FW_webArgs{s2});

    #-- scaling
    my $val1 = int($raw1/$s1[0]*195+16);
    FW_pO '<defs>';

    #-- white - snow4
    FW_pO '<linearGradient id="grad0" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:white;stop-opacity:1"/><stop offset="100%" style="stop-color:rgb(139, 137, 137);stop-opacity:1"/></linearGradient>';
    if( $subtype eq 'red'){
      #-- lightsalmon/red and lightsalmon/lightsalmon3
      FW_pO '<linearGradient id="grad1" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 255, 192, 188);stop-opacity:1"/><stop offset="100%" style="stop-color:red;stop-opacity:1"/></linearGradient>';
      FW_pO '<linearGradient id="grad2" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 255, 192, 188);stop-opacity:1"/><stop offset="100%" style="stop-color:rgb( 255, 140, 105);stop-opacity:1"/></linearGradient>';
      FW_pO '<linearGradient id="grad3" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 255, 0, 0);stop-opacity:1"/><stop offset="100%" style="stop-color:rgb( 205, 0, 0);stop-opacity:1"/></linearGradient>';
   }elsif( $subtype eq 'green'){
      #-- chartreuse/green and chartreuse/chartreuse3
      FW_pO '<linearGradient id="grad1" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 127,255, 0);stop-opacity:1"/><stop offset="100%" style="stop-color:green;stop-opacity:1"/></linearGradient>';
      FW_pO '<linearGradient id="grad2" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 127,255, 0);stop-opacity:1"/><stop offset="100%" style="stop-color:rgb( 102, 205, 0);stop-opacity:1"/></linearGradient>';
      FW_pO '<linearGradient id="grad3" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 50, 205, 50);stop-opacity:1"/><stop offset="100%" style="stop-color:rgb( 0, 100, 0);stop-opacity:1"/></linearGradient>';
    }elsif( $subtype eq 'blue'){
      #-- cyan/blue and cyan/cyan3
      FW_pO '<linearGradient id="grad1" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 255, 192, 188);stop-opacity:1"/><stop offset="100%" style="stop-color:blue;stop-opacity:1"/></linearGradient>';
      FW_pO '<linearGradient id="grad2" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 255, 192, 188);stop-opacity:1"/><stop offset="100%" style="stop-color:rgb( 0, 0, 139);stop-opacity:1"/></linearGradient>';
      FW_pO '<linearGradient id="grad3" x1="0%" y1="0%" x2="0%" y2="100%"><stop offset="0%" style="stop-color:rgb( 0, 0, 255);stop-opacity:1"/><stop offset="100%" style="stop-color:rgb( 0, 0, 139);stop-opacity:1"/></linearGradient>';
    }
    #-- colored shadow 1 / 2 pixel
    FW_pO '<filter id="cshadow1" x="0" y="0" width="200%" height="200%"><feOffset result="offOut" in="SourceGraphic" dx="1" dy="1" /><feColorMatrix result="matrixOut" in="offOut" type="matrix" values="0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0.9 0.9 0.9 0.4 0" /><feGaussianBlur result="blurOut" in="matrixOut" stdDeviation="1" /><feBlend in="SourceGraphic" in2="blurOut" mode="normal" /></filter>';
    FW_pO '<filter id="cshadow2" x="0" y="0" width="200%" height="200%"><feOffset result="offOut" in="SourceGraphic" dx="2" dy="2" /><feColorMatrix result="matrixOut" in="offOut" type="saturate" values="0.2" /><feGaussianBlur result="blurOut" in="matrixOut" stdDeviation="1" /><feBlend in="SourceGraphic" in2="blurOut" mode="normal" /></filter>';
    FW_pO '</defs>';
    FW_pO '<g><g transform="translate(0,45)">';

    # untere Thermometer Kugel
    FW_pO '<rect x="39" y="188" width="80" height="60" rx="80" ry="20" fill="url(#grad3)" stroke="rgb(161,161,161)" stroke-width="1"/>';

    # Thermometersäule
    FW_pO '<rect x="60" y="1" width="40" height="210" rx="40" ry="20" fill="none" stroke="rgb(161,161,161)" stroke-width="2"/>';

    # untere Fläche
    #FW_pO '<rect x="60" y="190" width="40" height="20" rx="40" ry="20" fill="url(#grad0)"/>';
    # obere Fläche
    #FW_pO '<rect x="60" y="1" width="40" height="20" rx="40" ry="20" fill="rgb(255,250,250)"/>';

    FW_pO sprintf('<rect x="60" y="%d" width="40" height="%d" rx="40" ry="20" fill="url(#grad1)"/>',211-$val1,$val1);

    #-- label
    FW_pO sprintf('<text x="52" y="235" fill="rgb(75, 75, 75)" style="filter:url(#cshadow1);font-size:28px;font-weight:bold">%5.1f %s</text>',$raw1,$s1[1]);

    # Beschriftung Max. 
    FW_pO sprintf('<text x="10" y="7" fill="rgb(75, 75, 75)" style="font-size:28px;font-weight:bold">%.2i --------%.2i</text>',$s1[0],$s1[0]);

    FW_pO sprintf('<text x="10" y="54" fill="rgb(75, 75, 75)" style="font-size:28px;font-weight:bold">%.2i --------%.2i</text>',$s1[0]/1.33,$s1[0]/1.33);

    FW_pO sprintf('<text x="10" y="102" fill="rgb(75, 75, 75)" style="font-size:28px;font-weight:bold">%.2i --------%.2i</text>',$s1[0]/2,$s1[0]/2);

    FW_pO sprintf('<text x="10" y="151" fill="rgb(75, 75, 75)" style="font-size:28px;font-weight:bold">%.2i --------%.2i</text>',$s1[0]/4,$s1[0]/4);

    FW_pO '</g>';
    FW_pO sprintf('<text x="30" y="5" fill="orange" style="filter:url(#cshadow1);font-family:Helvetica;font-size:32px;font-weight:bold">%5.1f %s</text>',$raw2,$s2[1]);

    # Beschriftung Text
    #FW_pO sprintf('<text x="76" y="160" fill="rgb(75, 75, 75)" style="filter:url(#cshadow1);font-family:Helvetica;font-size:28px;font-weight:bold">%s</text>',$FW_webArgs{p3});
FW_pO '</g>';
}
  FW_pO '</svg>';
  return ($FW_RETTYPE, $FW_RET);

Zurzeit funktionieren keine negativen Werte (also s2 ab -10 Grad) da ich das für die Darstellung der Pooltemperatur nicht benötige. Wenn ich Zeit habe werde ich mir das auch noch anschauen, wenn es auch wegen der Beschriftung etwas aufwändiger ist.

Vielleicht kann es wer für seine Implementation in FHEM gebrauchen.

LG
Reinhart

Code geändert am 09.06 um 18:10 wegen Fehler im Firefox.
« Letzte Änderung: 09 Juni 2015, 18:10:45 von Reinhart »
FHEM auf Raspy4 mit Buster + SSD, mit FS20, Homematic, ESP8266, Sonoff, Electrodragon, eBus, RPi mit COC,NanoCUL, MapleCUL, HM-CFG-LAN Adapter, MQTT2, Alexa

Offline kvo1

  • Hero Member
  • *****
  • Beiträge: 1475
  • FHEMonaut
Antw:FHEM mit bunten Bildern
« Antwort #19 am: 09 Juni 2015, 17:26:55 »
Hallo Reinhart,

Danke für das tolle Beispiel , sieht cool aus!
Ich glaube ich muss hier auch nochmal neu aufsetzen , das hat bei mir bisher noch nicht funktioniert.
Liegt aber wohl an mir  ;)

klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Offline Reinhart

  • Hero Member
  • *****
  • Beiträge: 2356
Antw:FHEM mit bunten Bildern
« Antwort #20 am: 09 Juni 2015, 18:05:44 »
Hallo kvo1!

Hallo Reinhart,

Danke für das tolle Beispiel , sieht cool aus!
Ich glaube ich muss hier auch nochmal neu aufsetzen , das hat bei mir bisher noch nicht funktioniert.
Liegt aber wohl an mir  ;)

klaus

Ich glaube nicht, das es an dir liegt!
Während ich den Code erweitert habe, hatte ich ähnliche Fehler wie du erwähnt hast. Das passierte jedes Mal wenn ich mit den Size Parametern herumgedreht habe. Einmal war kein Bild da und bei Änderung der Werte war es plötzlich wieder da.
Wenn du experimentieren willst, nimm vorher meine Einstellungen, mit denen passt alles soweit. Getestet habe ich mit IE11 (unter Win8.1 und Win10). Bei Firefox bekomme ich derzeit noch einen "XML Verarbeitungsfehler", da scheint ein fehlender Tag noch wo zu sein, meckert er zumindest so an.

LG
Reinhart

PS: den Firefoxfehler habe ich soeben im obigem Code um 18:10 gefixt. Es war die 4 vorletzte Zeile, die fehlte.
« Letzte Änderung: 09 Juni 2015, 18:12:31 von Reinhart »
FHEM auf Raspy4 mit Buster + SSD, mit FS20, Homematic, ESP8266, Sonoff, Electrodragon, eBus, RPi mit COC,NanoCUL, MapleCUL, HM-CFG-LAN Adapter, MQTT2, Alexa

Offline kvo1

  • Hero Member
  • *****
  • Beiträge: 1475
  • FHEMonaut
Antw:FHEM mit bunten Bildern
« Antwort #21 am: 09 Juni 2015, 20:11:48 »
Danke nochmal für den Hinweis !

klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8181
Antw:FHEM mit bunten Bildern
« Antwort #22 am: 09 Juni 2015, 20:36:27 »
Freut mich, dass das läuft - ich habe im Moment leider gatr keine Zeit, das zu testen.

Tipp zur Vermeidung von XML-Problemen: Richtigen Editor verwenden. oXygen XML bietet eine kostenlose Lizenz für 4 Wochen.

LG

pah

Offline Reinhart

  • Hero Member
  • *****
  • Beiträge: 2356
Antw:FHEM mit bunten Bildern
« Antwort #23 am: 10 Juni 2015, 11:58:11 »
@pah

Danke für den Hinweis, ich mach prinzipiell alles mit PSPad, außer bei FHEM, da nutze ich immer den integrierten Editor weil es per Webif einfacher zu handhaben ist.

Die Probleme die ich bei Firefox bemerkte waren aber typische Copy & Paste direkt aus dem Forum.

Ich staune immer wieder welche Ideen dir da so einfallen und vor allem wie elegant du die umsetzt. Hinterher was zu erweitern ist einfach wenn der Grundstock schon steht.

LG
Reinhart
FHEM auf Raspy4 mit Buster + SSD, mit FS20, Homematic, ESP8266, Sonoff, Electrodragon, eBus, RPi mit COC,NanoCUL, MapleCUL, HM-CFG-LAN Adapter, MQTT2, Alexa

Offline Hans Franz

  • Sr. Member
  • ****
  • Beiträge: 547
Antw:FHEM mit bunten Bildern
« Antwort #24 am: 13 September 2016, 12:45:37 »
Ich habe versucht, das widget um den subtype bar2 (vertikal) zu erweitern. In einem 99_SVG_Utils.pm.
Klappt auch (glaube ich ;) ).
Aber wie bekomme ich es auch im Dashboard zu sehen? Hat jemand einen Ansatz?

Gruß
Hans

Edit:
Da mir nichts Besseres einfiel, lasse ich jetzt die sub eine .svg-Datei schreiben und binde diese ein.
Bestimmt suboptimal, aber wenig Code (5 Zeilen) und mein Dashboard ist bunter.
« Letzte Änderung: 14 September 2016, 18:46:32 von Hans Franz »
Raspi
CUL, Nano-CUL
FHT8V, FHT80B, S300TH
WM1000WZ, ELRO
LW12, LD382,DS18B20

Offline mcfly71

  • Full Member
  • ***
  • Beiträge: 187
Antw:FHEM mit bunten Bildern
« Antwort #25 am: 15 September 2016, 11:56:54 »
Hallo Gemeinde,

ich finde diese Bars egal für was auch wirklich super. Habe auch viele Einsatzmöglichkeiten dafür. Es müsste nur alles auch im Floorplan und (so habe ich jetzt gelesen) auch im Dashboard funktionieren. Statt "embed src" habe ich es auch mit iframes und object probiert, leider ohne Erfolg. Im normalen fhem sieht man das schön, in dem floorplan leider nicht (jedoch mit einer anderen Fehlermeldung als 'ein plugin ist vonnöten'). Da ich mich mit HTML etc. nicht so sehr auskenne, benötige ich dafür von jemandem Hilfe.... ??!!!

Im Firefox / Safari passiert das oben beschriebene....

VG
mcfly
- HMLAN / Raspberry auf hmmode
- Homematic

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8181
Antw:FHEM mit bunten Bildern
« Antwort #26 am: 15 September 2016, 16:08:38 »
Na, im Zustand "nicht so auskennen" waren wir alle mal.

Siehe hier: https://wiki.selfhtml.org/

Da steht alles nötige drin.

LG

pah

Offline Bubbles71

  • Jr. Member
  • **
  • Beiträge: 61
Antw:FHEM mit bunten Bildern
« Antwort #27 am: 15 Dezember 2020, 15:37:16 »
Hallo,

solle nochmal jemand auf dieses Thema stoßen und selbige oben genannte Problem mit der Einbindung im Floorplan haben:

Die Lösung ist, die komplette url von FHEM einzugeben, also statt

attr PoolWasser stateFormat <embed src='fhem/SVGX_widget?... usw.

attr PoolWasser stateFormat <embed src='http://192.168.178.xxx:8083/fhem/SVGX_widget?... usw.

Mir hätte diese einfache Antwort eine Stunde Arbeit gespart. Vielleicht freut sich ja nun jemand nach mir ;-)

LG,

Roland

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 8181
Antw:FHEM mit bunten Bildern
« Antwort #28 am: 15 Dezember 2020, 18:48:31 »
Schon mal auf das Datum geschaut? Sowohl in den SmartHomeHacks, als auch im FHEM-Buch steht alles drin.

LG

pah

Offline Bubbles71

  • Jr. Member
  • **
  • Beiträge: 61
Antw:FHEM mit bunten Bildern
« Antwort #29 am: 16 Dezember 2020, 16:43:04 »
Nicht jeder hat die Bücher oder das gesamte Forum durchgelesen.
Manchmal ist es einfach schön, eine einfache und schnelle Lösung direkt hinter einer Frage zu finden, die man sich selber schon gestellt hat.
Wie gesagt, vielleicht freut sich ja irgendwann jemand, der den Post bis hierhin gelesen hat.
Und wenn nicht, schadet mein Post auch nicht.

LG,

Roland