FHEM Forum

FHEM => Frontends => FLOORPLAN => Thema gestartet von: golem am 19 Mai 2014, 09:11:23

Titel: Firmata FRM_IN device wird im Floorplan nicht richtig angezeigt
Beitrag von: golem am 19 Mai 2014, 09:11:23
Hallo,

ich habe versucht ein Device vom Type Frm_In im floorplan als Icon darzustellen. Das funktioniert auch problemlos. Da aber dea Device keine Lampe ist habe ich versucht nur im Floorplan andere icon als in WEB zu benutzen.
Also habe ich folgendes Attribut am FRM_IN device gesetzt
attr in3 fp_image pumpe.{state}.png
Mit dem Erfolg, das in Floorplan jetz ein Icon mit dem Namen .../fhem/images/default/pumpe.Initialized.png angezeigt werden soll.
ich hätte eher erwartet, das:
.../fhem/images/default/pumpe.on.png
.../fhem/images/default/pumpe.off.png
angezeigt werden soll.
Was muss ich eingeben, damit das funktioniert.

Gruß Denis
Titel: Antw:Firmata FRM_IN device wird im Floorplan nicht richtig angezeigt
Beitrag von: UliM am 19 Mai 2014, 09:15:01
Kein Attribut nutzen. Stattdessen ein Ordner unter images/default anlegen mit selbem Namen wie der floorplan, dort die floorplan-spezifischen icons reinpacken.
Rereadicons nicht vergessen.
Viel Erfolg,
Uli
Titel: Antw:Firmata FRM_IN device wird im Floorplan nicht richtig angezeigt
Beitrag von: golem am 19 Mai 2014, 10:47:08
hallo Uli,

habe ich gerade getestet,
unter .../images/default/ den Ordner Heizung angelegt, darein die Icons pumpe.on.pgn und pumpe.off.png kopiert.
Die Dateien dann in on.pgn und off.png umbenannt.
set web rereadicons
Floorplan Heizung angesehen und  :( ich sehe die "normalen" Icons aber nicht die speziellen...

Denis
Titel: Antw:Firmata FRM_IN device wird im Floorplan nicht richtig angezeigt
Beitrag von: golem am 19 Mai 2014, 13:14:46
Habe mir fürs erste selbst geholfen...

in der 95_FLOORPLAN.pm habe ich ab Zeile 512 folgende Änderung eingebaut.


my $fp_reading = AttrVal("$d", "fp_reading", undef);                                       # floorplan-independent reading
        if ($fp_reading){ 
        }else{
            $fp_reading = "state";
        }     
        my $state = ReadingsVal($d, $fp_reading, undef);                                 
        if ($fp_image) {
     $fp_image =~ s/\{state\}/$state/;                                                       # replace {state} by actual device-status
            $txt =~ s/\<img\ src\=\"(.*)\"/\<img\ src\=\"\/fhem\/icons\/$fp_image\"/;           # replace icon-link in html
            $txt =~ s/\<img\ (.*) src\=\"(.*)\"/\<img\ $1 src\=\"\/fhem\/images\/default\/$fp_image\"/;           # replace icon-link in html (new)
        }
        if ($fp_fpimage) {
            $fp_fpimage =~ s/\{state\}/$state/;                                                 # replace {state} by actual device-status
            $txt =~ s/\<img\ src\=\"(.*)\"/\<img\ src\=\"\/fhem\/icons\/$fp_fpimage\"/;         # replace icon-link in html
            $txt =~ s/\<img\ (.*) src\=\"(.*)\"/\<img\ $1 src\=\"\/fhem\/images\/default\/$fp_fpimage\"/;     # replace icon-link in html (new)
        }


damit kann jedes reading über das Userattribut fp_reading für die Icons herangezogen werden.

evt. kann das ja so übernommen weden

Gruß Denis