Hauptmenü

Floorplan & Eigene Icons

Begonnen von Markus Hermann, 05 April 2013, 21:48:43

Vorheriges Thema - Nächstes Thema

Markus Hermann

Hallo Forum!

Da mir das HM-OU-LED zu unflexibel ist, plane ich jetzt ein Tablet an die Wand zu "nageln" und mit Floorplan die verschienden Devices abzubilden.

Leider werden nicht alle Icons dargestellt und ich weiß einfach nicht warum.

Ich nutze eigentlich nur 4 Icons:

sw.{state}.on.png
sw.{state}.off.png
sw.{state}.open.png
sw.{state}.closed.png

Die Icons sind nur die roten/grünen Buttons.

Die FS20 werden dargestellt:

define Alarm_sw FS20 50af 05
attr Alarm_sw fp_Panel 62,220,0,
attr Alarm_sw fp_image sw.{state}.png
attr Alarm_sw group Status
attr Alarm_sw room Info

Die HM-SEC-SC leider nicht, nur der Status.

define Terassentuer_1_Sensor CUL_HM 1C1F54
attr Terassentuer_1_Sensor fp_Panel 399,220,0,
attr Terassentuer_1_Sensor fp_image sw.{state}.png
attr Terassentuer_1_Sensor model HM-SEC-SC



(siehe Anhang / see attachement)

CUL/CUL-RFR/HM-LAN an Cubietruck

FS20/FHT/TFK/UTS/KS300/HM-SEC-SC/HMS100/HM-OU-CFM-PL/HM-RC-SEC3/

FLOORPLAN auf Android-Tablet und VDR

UliM

Hallo,
kannst Du mal bitte den html-code anschauen (im browser ctrl+u) und schauen, was da für FS20- vs HM-icons steht?

Willst Du diese icons so nur in floorplan oder auch in fhe mweb anzeigen? Wenn auch in fhemweb, brauchst Du die fp-spezifischen icons ja gar nicht...

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Markus Hermann

Hallo Uli,

ich will die eigenen Icons nur in Floorplan anzeigen, in Fhem sollen die default Icons bleiben.

Muss ich zu jedem Device denn zwei eigene Icons erstellen? Ich dachte ich brauche nur 1 pro Zustand, also zum Beispiel "gruen.on.png" und "rot.off.png". Das scheint aber nicht zu funktionieren.
Ich habe jetzt den Device ein Icon zugeordnet, also : "Aussenlicht1.on.png", "Aussenlicht1.off.png", "Garagentor.Closed.png", "Garagentor.Open.png".

Bei den Aussenlicht werden die Icons angezeigt, beim Garagentor nicht.

Liegt das am Device FHTTK? Denn im Browser-Source-Code wird das {state} nicht übergeben.



define Garagentor CUL_FHTTK 470b92
attr Garagentor IODev CUL2
attr Garagentor fp_Panel 220,220,0,
attr Garagentor fp_image Garagentor.{state}.png



<div style="position:absolute; top:220px; left:220px;" id="div-Garagentor">
<form method="get" action="/fhem/floorplan/Panel/Garagentor" autocomplete="off">
 <table class="CUL_FHTTK fp_Panel" id="table-Garagentor" align="center">
<tr class="devicestate fp_Panel" id="Garagentor">
<td colspan="0"><div id="Garagentor" align="center" class="col2"><img src="/fhem/icons/Garagentor..png"></div>
</td></tr>
</table></form>
</div>



Gruß
Markus
CUL/CUL-RFR/HM-LAN an Cubietruck

FS20/FHT/TFK/UTS/KS300/HM-SEC-SC/HMS100/HM-OU-CFM-PL/HM-RC-SEC3/

FLOORPLAN auf Android-Tablet und VDR

UliM

Hi,
das Problem liegt also hier:
<img src="/fhem/icons/Garagentor..png">

Den relevanten code in 95_FLOORPLAN.pm findest Du ab Zeile 465:
my $fp_image = AttrVal("$d", "fp_image", undef);                          # floorplan-independent icon        
        my $fp_fpimage = AttrVal("$d","fp_$FP_name".".image", undef);             # floorplan-dependent icon
        if ($fp_image) {
            my $state = ReadingsVal($d, "state", undef);
   $fp_image =~ s/\{state\}/$state/;                                     # replace {state} by actual device-status


Also wird dort, wo im Attribut fp_image {state} steht, durch den Wert des reading state ersetzt.
Was steht denn bei Deinem device (Garagentor) auf diesem reading?  Scheinbar hat das reading keinen Wert bzw. existiert gar nicht?

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Markus Hermann

Hallo Uli,

das Value() Garagentor des Garagentors nutze ich auch schon in einem notify  "....Value("Garagentor") eq "Open")...."


(siehe Anhang / see attachement)


Irgendwie verstehe ich die Floorplan-Logic nicht, vorallem was das Speichern angeht.

Wenn ich auf der Floorplan-Obfläche die Icons arrangiere, werden die Daten nicht in fhem.cfg übernommen.
In der fhem.cfg eingetragende FLOORPLAN attr, werden teilweise auch in FHEM ersetzt, obwohl sie als fp_image gekennzeichnet sind.

Müssen die Dateinamen immer ein "fp_" vorangestellt haben?


define Terassentuer_2_Sensor CUL_HM 1E7D72
attr Terassentuer_2_Sensor .devInfo 810101
attr Terassentuer_2_Sensor .stc 80
attr Terassentuer_2_Sensor actCycle 028:00
attr Terassentuer_2_Sensor actStatus alive
attr Terassentuer_2_Sensor expert 2_full
attr Terassentuer_2_Sensor firmware 2.0
attr Terassentuer_2_Sensor fp_Panel 399,220,0,
attr Terassentuer_2_Sensor fp_image fp_Terassentuer_2_Sensor.{state}.png
attr Terassentuer_2_Sensor model HM-SEC-SC
attr Terassentuer_2_Sensor peerIDs
attr Terassentuer_2_Sensor room CUL_HM
attr Terassentuer_2_Sensor serialNr JEQ0720084
attr Terassentuer_2_Sensor subType threeStateSensor
define FileLog_Terassentuer_2_Sensor FileLog ./log/Terassentuer_2_Sensor-%Y.log Terassentuer_2_Sensor
attr FileLog_Terassentuer_2_Sensor logtype text
attr FileLog_Terassentuer_2_Sensor room CUL_HM

define Kuechenfenster CUL_HM 1E7BB2
attr Kuechenfenster .devInfo 810101
attr Kuechenfenster .stc 80
attr Kuechenfenster actCycle 028:00
attr Kuechenfenster actStatus alive
attr Kuechenfenster expert 2_full
attr Kuechenfenster firmware 2.0
attr Kuechenfenster fp_Panel 430,220,0,
attr Kuechenfenster fp_image fp_Kuechenfenster.{state}.png
attr Kuechenfenster model HM-SEC-SC
attr Kuechenfenster peerIDs
attr Kuechenfenster room CUL_HM
attr Kuechenfenster serialNr JEQ0720532
attr Kuechenfenster subType threeStateSensor
define FileLog_Kuechenfenster FileLog ./log/Kuechenfenster-%Y.log Kuechenfenster
attr FileLog_Kuechenfenster logtype text
attr FileLog_Kuechenfenster room CUL_HM

<div style="position:absolute; top:399px; left:220px;" id="div-Terassentuer_2_Sensor">
<form method="get" action="/fhem/floorplan/Panel/Terassentuer_2_Sensor" autocomplete="off">
 <table class="CUL_HM fp_Panel" id="table-Terassentuer_2_Sensor" align="center">
<tr class="devicestate fp_Panel" id="Terassentuer_2_Sensor">
<td colspan="0"><div id="Terassentuer_2_Sensor" align="center" class="col2"><img src="/fhem/icons/fp_Terassentuer_2_Sensor.closed.png"></div>
</td></tr>
</table></form>
</div>


<div style="position:absolute; top:430px; left:220px;" id="div-Kuechenfenster">
<form method="get" action="/fhem/floorplan/Panel/Kuechenfenster" autocomplete="off">
 <table class="CUL_HM fp_Panel" id="table-Kuechenfenster" align="center">
<tr class="devicestate fp_Panel" id="Kuechenfenster">
<td colspan="0"><div id="Kuechenfenster" align="center" class="col2">closed</div>
</td></tr>
</table></form>
</div>




(siehe Anhang / see attachement)


Gruß
Markus



CUL/CUL-RFR/HM-LAN an Cubietruck

FS20/FHT/TFK/UTS/KS300/HM-SEC-SC/HMS100/HM-OU-CFM-PL/HM-RC-SEC3/

FLOORPLAN auf Android-Tablet und VDR

UliM

Zitat von: Markus Hermann schrieb am Sa, 06 April 2013 17:23Hallo Uli,

das Value() Garagentor des Garagentors nutze ich auch schon in einem notify  "....Value("Garagentor") eq "Open")...."

(siehe Anhang / see attachement)

Es wird eben nicht das STATE aus dem oberen Bereich genutzt (so wie Value() das tut), sondern es wird das Reading "state" ausgelesen - und das gibt es laut screenshot nicht. Übrigens recht unüblich - Konvention ist, dass ein eingehendes Telegramm das reading state füllt und dieser Wert dann (meist unverändert) in den oberen Bereicht nach STATE übernommen wird. Darum muss sich der Modulautor kümmern.
Als workaround könntest Du ein userreading bauen, das den Value("Garagentor") übernimmt, und in floorplan mit Stil3 das reading anzeigen lassen.

Zitat von: Markus Hermann schrieb am Sa, 06 April 2013 17:23Irgendwie verstehe ich die Floorplan-Logic nicht, vorallem was das Speichern angeht.
Wenn ich auf der Floorplan-Obfläche die Icons arrangiere, werden die Daten nicht in fhem.cfg übernommen.
Dann hast Du wahrscheinlich am Ende nicht den Befehl save abgesetzt. Steht auch so im floorplan.pdf .

Zitat von: Markus Hermann schrieb am Sa, 06 April 2013 17:23In der fhem.cfg eingetragende FLOORPLAN attr, werden teilweise auch in FHEM ersetzt, obwohl sie als fp_image gekennzeichnet sind.
Mit "FHEM" meinst Du FHEMWEB? Mit "FLOORPLAN attr" meinst Du fp_image?
Das kann eigentlich nicht sein, da das Attribut fp_image in FHEMWEB nicht ausgewertet wird.
Wenn Du hingegen icon-Dateien mit den passenden Namen platzierst, werden diese natürlich auch in FHEMWEB angezeigt.
Dem kommen wir aber ohne Beispiel nicht auf den Grund.

Zitat von: Markus Hermann schrieb am Sa, 06 April 2013 17:23Müssen die Dateinamen immer ein "fp_" vorangestellt haben?
Eigentlich nicht. Es wird halt das genommen, was im Attribut fp_image steht.

Gruß
Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Markus Hermann

Hallo Ulli,

wo kann ich denn in FLOORPLAN "save" eingeben?

Ich verstehe die Speicher-Logic von FHEMWEB & FLOORPLAN nicht.

Ich habe die ganze Zeit in fhem.cfg die Icons bearbeitet und immer schön "Save fhem.cfg" angeklickt.

Da sich aber keine Icons zeigen wollen habe ich einen shutdown restart gemacht.

Nun ist die die ganze Definition von FLOORPLAN weg, die attr sind jedoch noch da.

Wann speichert FHEMWEB in fhem.cfg und wann speichert FLOORPLAN.

Ich habe auch zu keinem Zeitpunkt die fhem.cfg über FTP angepasst.

Kann ich das irgendwo nachlesen? Im Wiki und commandref fand ich nichts, oder habe es überlesen.

Ergänzung vom 07.04.2013:
Ich habe jetzt alles durchprobiert. bei den HM-Device wird das Attribut fp_image oder fp_<floorplan>.image nicht beachtet.
Wenn ich die Icons mit der gleichen Bezeichung wie das Device (z.B. Kuechenfenster) in www/images/default ablege also als Kuechenfenster.open.png und Kuechenfenster.closed.png, dann werden sie im FLOORPLAN als auch in FHEMWEB angezeigt.

Verwende ich aber zum Beispiel "attr Kuechenfenster fp_image fp_Kuechenfenster.{state}.png", dann wird nur noch <state> im Textform dargestellt.

Ist HM noch nicht für fp_image implementiert?


Gruß
Markus
CUL/CUL-RFR/HM-LAN an Cubietruck

FS20/FHT/TFK/UTS/KS300/HM-SEC-SC/HMS100/HM-OU-CFM-PL/HM-RC-SEC3/

FLOORPLAN auf Android-Tablet und VDR

rudolfkoenig

ZitatKonvention ist, dass ein eingehendes Telegramm das reading state füllt und dieser Wert dann (meist unverändert) in den oberen Bereicht nach STATE übernommen wird. Darum muss sich der Modulautor kümmern.

Korrektur/Praezisierung:
- STATE ist der angezeigte Zustand des Geraetes
- READINGS->state ist der Vorschlag des Modulautors, kann vom Benutzer mit de stateFormat Attribut ueberschrieben werden.
- fuer die Uebernahme state -> STATE sind die readings*Update funktionen Zustaendig, d.h. das Framework.

Bei (alten) Modulen, die die readings*Update Funktionen nicht verwenden, ist READINGS->state gleich STATE.

UliM

Zitat von: rudolfkoenig schrieb am So, 07 April 2013 10:09Bei (alten) Modulen, die die readings*Update Funktionen nicht verwenden, ist READINGS->state gleich STATE.
Hi Rudi,
Danke für die Klärung.
Problem ist hier, dass bei CUL_FHTTK das reading state nicht existiert (siehe screenshot oben).
Bug oder feature?
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

UliM

Zitat von: Markus Hermann schrieb am Sa, 06 April 2013 19:56Wann speichert FHEMWEB in fhem.cfg und wann speichert FLOORPLAN.
Hi Markus,
Ist beantwortet in Deinem anderen diesbezüglichen Fred Link
Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

rudolfkoenig

> Problem ist hier, dass bei CUL_FHTTK das reading state nicht existiert (siehe screenshot oben).

Das ist ein Bug.