Ich möchte gern auf einer Seite sämtliche Statusanzeigen mit einem Label machen, was auch ganz prima geht.
Jetzt möchte ich gern Rollläden Anzeigen haben.
Dieses mache ich für die Anzeigepostionen folgendermaßen
<div class="large"
data-type="label"
data-device="RollladenSZ"
data-get="state"
data-substitution='["100","Rollladen SZ Oben - Offen","75","Rollladen SZ - HOME 75%","50","Rollladen SZ - Beschattung 50%","25","Rollladen SZ - Beschattung 25%","0","Rollladen SZ - Geschlossen"]'
data-colors='["green","orange","orange","orange","royalblue"]'
data-limits='[100,75,50,25,0]'>
</div>
Aus dem Wiki konnte ich das z.T. gut entnehmen.
Ich habe praktisch 5 Positionen mit Anzeigen belegt... das funktioniert leider auch nicht so richtig, grad die Farben Zuordnung geht nicht so wie ich es oben dargestellt habe. Sollte aber doch richtig sein..?
Dann zeigt er mir mal den Text bei z.B. 75, dann wieder nur die Zahl 75, wo liegt mein Fehler.?
Wei mache ich das jetzt aber wenn ich alle anderen Positionen mit z.B. Zwischenpositionen anzeigen möchte, ich kann ja nicht alle Prozente rein schreiben gibt es dafür eine Platzhalter/Wert oder soetwas ähnliches..?
Kann ich eigentlich auch Werte aus der 99_myUtils auslesen..?
Hi,
meine Rollladenanzeige sieht so aus:
<div data-type="symbol" class="cell bigger left" data-device="dg_ku_Rollladen" data-get="level"
data-icons='["oa-fts_shutter_100","oa-fts_shutter_90",
"oa-fts_shutter_80","oa-fts_shutter_70","oa-fts_shutter_60","oa-fts_shutter_50",
"oa-fts_shutter_40","oa-fts_shutter_30","oa-fts_shutter_20","oa-fts_shutter_10","oa-fts_window_2w"]'
data-get-on='["0","10","20","30","40","50","60","70","80","90","100"]' data-on-color="#2A2A2A"
data-on-background-color="#aa6900" data-background-icon="fa-square">
</div>
Das ergibt dann ein Bild wie im Anhang.
Ich würde übrigens nicht das Reading "state" nehmen, da das je nach Aktor auch noch andere Werte annehmen kann als nur den Rollladen-Level.
Gruß,
Thorsten
Zitat von: Thorsten Pferdekaemper am 27 Februar 2017, 07:42:09
Ich würde übrigens nicht das Reading "state" nehmen, da das je nach Aktor auch noch andere Werte annehmen kann als nur den Rollladen-Level.
Gruß,
Thorsten
Vielen Dank Thorsten, ja das mit dem Reading "state" habe ich schon bemerkt, dass habe ich jetzt mal so wie bei dir gemacht mit "level".
Ich möchte ja einen reinen Text darstellen und habe das heute nochmals geändert, aber farblich klappt das gar nicht...! und wie ich das für sämtliche Zwischenstellungen machen müßte die ja jederzeit eintreten wenn ich einfach nur mal auf die Fernbedienung drücke und den Rollladen verfahre weiß ich auch noch nicht.
Ich habe ja einfach mal die Werte die der Rollladen per Fhem verfährt eingegeben nur zeigt er mir jetzt wo der Rollladen oben ist die Farbe Blau an obwohl oben eigentlich grün ist, ich weiß jetzt nicht warum.
Das wäre erst einmal das Problem, mal schauen wie es jetzt dann mit dem "level" aussieht..!
Er zeigt ja dann immer die Zahl des level an und bei nicht bekannten level möchte ich das er Zwischenposition anzeigt und wie bei mir bei den bekannten level 80,70,60 soll er dann Beschattung anzeigen... Aber das bekomme ich nicht geregelt
<div class="large left-align"
data-type="label"
data-hide-on="!on"
data-hide-off="on"
data-device="RollladenWZT"
data-get="level"
data-substitution='["0","Rollladen WZT Oben - Offen","80","Rollladen Rollladen WZT Beschattung 80%","70","Rollladen WZT Beschattung 70%","60","Rollladen WZT Beschattung 60%","100","Rollladen WZT Geschlossen"]'
data-colors='["lightgreen","darkorange","darkorange","darkorange","royalblue"]'
data-limits='[100,80,70,60,0]'></div>
also ich schaffe es nicht bei 3 Rollläden, die Farben gleich hinzubekommen... entweder bin ich dazu nicht in der Lage oder es gibt noch Fehler.
Ich möchte passend zu den Positionen auch die Texte haben und in der entsprechenden Farbe, geht aber nicht.
Ich bin nach dem Wiki vorgegangen welches das "Label" (https://wiki.fhem.de/wiki/FTUI_Widget_Label#Hinweise) beschreibt
Die Farben werden bei mir nicht korrekt zugeordnet, dann stimmen sie mal bei zwei Rollläden und bei dem 3. nicht
Hier mal mein aktueller Code für alle 3 Rollläden, evtl habe ich da auch was falsch zusammen gestellt.?
<!-- ==== Rollladen - Wohnzimmer ==== -->
<div class="large left-align"
data-type="label"
data-device="RollladenWZ"
data-get="level"
data-substitution='["0","Rollladen WZ - Geschlossen","60","Rollladen Rollladen WZ Beschattung 60%","70","Rollladen WZ Beschattung 70%","80","Rollladen WZ Beschattung 80%","100","Rollladen WZ Oben - Offen"]'
data-limits='["0","60","70","80","100"]'
data-colors='["royalblue","orange","orange","orange","lightgreen"]'>
</div>
<!-- ==== Rollladen - WZ - Terrasse ==== -->
<div class="large left-align"
data-type="label"
data-device="RollladenWZT"
data-get="level"
data-substitution='["0","Rollladen WZT - Geschlossen","60","Rollladen Rollladen WZT Beschattung 60%","70","Rollladen WZT Beschattung 70%","80","Rollladen WZT Beschattung 80%","100","Rollladen WZT Oben - Offen"]'
data-limits='[0,60,70,80,100]'
data-colors='["royalblue","orange","orange","orange","lightgreen"]'>
</div>
<!-- ==== Rollladen - Schlafzimmer ==== -->
<div class="large left-align"
data-type="label"
data-device="RollladenSZ"
data-get="level"
data-substitution='["0","Rollladen SZ Oben - Offen ","25","Rollladen SZ - Beschattung 25%","50","Rollladen SZ - Beschattung 50%","75","Rollladen SZ - HOME 75%","100","Rollladen SZ Geschlossen"]'
data-limits='[0,25,50,75,100]'
data-colors='["royalblue","orange","orange","orange","lightgreen"]'>
</div>
Und im Reading Level steht auch nur der Zahlenwert? Nicht "25%" oder "25 %"
Die Text Substitution passt aber nur für genau diese Werte, nicht für Bereiche. Bei 26 wird nichts ersetzt.
Ja im level stehen immer nur Zahlenwerte.... Also von 0-100
Schade das man nicht schreiben kann z.B. Von 1-24 Zwischenposition, dann wieder von 26-49 Zwischenposition usw. Eben jeder wie er es braucht und bei den Werten die speziell angegeben werden wie bei mir z.B. 0, 25,50,75,100 dann eben die entsprechenden Textangaben.
Aber wie geschrieben der Text ist das eine, die Farben das nächste.... Selbst die nimmt er nicht richtig.
Ich habe 5 Werte und die Zahlen 0,25,50,75,100 und dazu die Farben 5x aber die ordnet er nicht richtig zu....
Welches Muster gibt es? Alles bleibt grau? Alles bleibt blau? Alles orange? Immer grün?
Workaround: Userreading mit der Farbe, die mittels "FHEM-Logik" gesetzt wird .... FTUI Farbe in allen Fällen auf das gleiche Reading zeigen lassen?
Zitat von: setstate am 28 Februar 2017, 09:43:56
Welches Muster gibt es? Alles bleibt grau? Alles bleibt blau? Alles orange? Immer grün?
OK ich fange mal an...! Habe einen Screenshot gemacht...
1. Anzeige "Home" in orange
Ich habe jetzt diese Anzeige als Test dazu gemacht und habe nur mal 3 Farben genommen, hier wird mir nicht der level, der 75 ist angezeigt sondern die Stellung "Home" eigentlich sollte ja die 75 angezeigt werden, aber auch die Farbe stimmt nicht denn die sollte "lightgreen" sein und alles ohne Text siehe Code
Der Code dazu:
<!-- Test wegen Farben -->
<div class="large left-align"
data-type="label"
data-device="RollladenSZ"
data-get="level"
data-limits='[50,75,80]'
data-colors='["blue","lightgreen","orange"]'>
</div>
2. und 3. Anzeige in Blau stimmt, aber auch nur wenn der Rollladen geschlossen ist, der hinterlegte Text stimmt auch, aber am Tage wenn der Rollladen auf ist, soll die Farbe "lightgreen" sein ist aber "orange"
Der Code dazu:
<!-- ==== Rollladen - Wohnzimmer ==== -->
<div class="large left-align"
data-type="label"
data-device="RollladenWZ"
data-get="level"
data-substitution='["0","Rollladen WZ - Geschlossen","60","Rollladen Rollladen WZ Beschattung 60%","70","Rollladen WZ Beschattung 70%","80","Rollladen WZ Beschattung 80%","100","Rollladen WZ Oben - Offen"]'
data-limits='["0","60","70","80","100"]'
data-colors='["blue","orange","orange","orange","lightgreen"]'>
</div>
<!-- ==== Rollladen - WZ - Terrasse ==== -->
<div class="large left-align"
data-type="label"
data-device="RollladenWZT"
data-get="level"
data-substitution='["0","Rollladen WZT - Geschlossen","60","Rollladen Rollladen WZT Beschattung 60%","70","Rollladen WZT Beschattung 70%","80","Rollladen WZT Beschattung 80%","100","Rollladen WZT Oben - Offen"]'
data-limits='[0,60,70,80,100]'
data-colors='["blue","orange","orange","orange","lightgreen"]'>
</div>
4. Anzeige "Home" in "lightgreen" ist total verkehrt, hier sollte stehen.
"Rollladen SZ - HOME 75%" in blau
Der code dazu:
<!-- ==== Rollladen - Schlafzimmer ==== -->
<div class="large left-align"
data-type="label"
data-device="RollladenSZ"
data-get="level"
data-substitution='["0","Rollladen SZ Oben - Offen ","25","Rollladen SZ - Beschattung 25%","50","Rollladen SZ - Beschattung 50%","75","Rollladen SZ - HOME 75%","100","Rollladen SZ Geschlossen"]'
data-limits='[0,25,50,75,100]'
data-colors='["lightgreen","darkorange","darkorange","darkorange","royalblue"]'>
</div>
Was ich damit also sagen will... es paßt etwas mit den Farben nicht und auch die Anzeigen vom Text her passen nicht.
Somit kann ich keinen Text richtig anzeigen lassen und auch nicht in der Farbe die ich gern hätte, egal jetzt welche Farben man verwendet.
Und ja bei level steht nur eine Zahl drin... nichts weiter
Ich habe mal im Vergleich darunter zwei Beleuchtungs label mit state von Switchen da funktioniert das alles wunderbar, aber auch "state" funktioniert bei Rollläden total verquer sage ich mal...
2. Screenshot
Nach mehrmaligen F5 drücken zeigt er auf einmal oben im Testdiv die Zahl richtig an und auch die Farbe
Weiter unten die 4. Anzeige ist jetzt der Text richtig, aber immer noch die verkehrte Farbe.. also so richtig als Anzeige ist das nicht zu nutzen weil man sich nicht auf den angezeigten Text und die Farbe verlassen kann
Brauchst du noch Angaben.?
Code1: Wenn "Home" angezeigt wird, dann kann "level" nicht "75" enthalten, sondern "Home"
schau dir in der Webconsole mal
ftui.deviceStates["RolladenSZ"]
an, was da alles drinsteht. Vielleicht wird etwas nicht aktualisiert im client.
Zitat von: setstate am 01 März 2017, 13:02:45
Code1: Wenn "Home" angezeigt wird, dann kann "level" nicht "75" enthalten, sondern "Home"
es steht tatsächlich 75 drin, werde heute Abend nochmal schauen und dann ein list machen
Zitat von: setstate am 01 März 2017, 13:02:45
schau dir in der Webconsole mal
ftui.deviceStates["RolladenSZ"]
du meinst im Webinterface oben in der Eingabezeile... wo ich auch jedes list Abfrage
da kommt nichts... :-\ nur ne Fehleranzeige
ich hänge hier mal das list RollladenSZ an
Internals:
CFGFN ./FHEM/Schlafzimmer.cfg
DEF 2D7A80
HMUSB_MSGCNT 92
HMUSB_RAWMSG E2D7A80,0000,2819DC26,FF,FFB7,2AA4102D7A801EA1210601C800
HMUSB_RSSI -73
HMUSB_TIME 2017-03-01 09:45:10
IODev HMUSB
LASTInputDev HMUSB
MSGCNT 92
NAME RollladenSZ
NOTIFYDEV global
NR 2551
STATE Hoch
TYPE CUL_HM
lastMsg No:2A - t:10 s:2D7A80 d:1EA121 0601C800
protLastRcv 2017-03-01 09:45:10
protSnd 92 last_at:2017-03-01 09:45:10
protState CMDs_done
rssi_HMUSB cnt:51 min:-78 avg:-75.39 max:-74 lst:-75
rssi_at_HMUSB cnt:92 min:-79 avg:-73.48 max:-70 lst:-73
Readings:
2017-03-01 09:45:00 CommandAccepted yes
2016-11-01 20:14:48 D-firmware 2.5
2016-11-01 20:14:48 D-serialNr LEQ0634534
2016-11-01 20:15:35 PairedTo 0x1EA121
2016-11-01 20:15:36 R-driveDown 22 s
2016-11-01 20:15:36 R-driveTurn 0.5 s
2016-11-01 20:15:36 R-driveUp 23.4 s
2016-11-01 20:15:35 R-pairCentral 0x1EA121
2016-11-01 20:15:36 R-sign off
2016-11-01 20:15:35 RegL_00. 02:01 0A:1E 0B:A1 0C:21 15:FF 18:00 00:00
2016-11-01 20:15:36 RegL_01. 08:00 09:00 0A:00 0B:00 0C:DC 0D:00 0E:EA 0F:05 10:00 30:06 57:24 56:00 00:00
2017-03-01 09:45:10 deviceMsg on (to HMUSB)
2017-03-01 09:45:10 level 100
2017-03-01 09:45:10 motor stop:on
2017-03-01 09:45:10 pct 100
2017-03-01 09:45:10 recentStateType info
2017-03-01 09:45:10 state on
2017-03-01 09:45:10 timedOn off
Helper:
HM_CMDNR 42
cSnd 111EA1212D7A80020196,111EA1212D7A800201C80000
dlvlCmd ++A0111EA1212D7A800201C80000
mId 0005
rxType 1
supp_Pair_Rep 0
Dir:
cur stop
rct up
Expert:
def 1
det 0
raw 1
tpl 0
Io:
newChn +2D7A80,00,00,00
nextSend 1488357910.4169
prefIO
rxt 0
vccu
p:
2D7A80
00
00
00
Mrssi:
mNo 2A
Io:
HMUSB -71
Prt:
bErr 0
sProc 0
Rspwait:
Q:
qReqConf
qReqStat
Role:
chn 1
dev 1
prs 1
Rpt:
IO HMUSB
flg A
ts 1488357910.31944
ack:
HASH(0x36e11b0)
2A80021EA1212D7A8000
Rssi:
Hmusb:
avg -75.3921568627451
cnt 51
lst -75
max -74
min -78
At_hmusb:
avg -73.4891304347827
cnt 92
lst -73
max -70
min -79
Tmpl:
Attributes:
IODev HMUSB
alias Schlafzimmer: Rollladen
autoReadReg 4_reqStatus
devStateIcon Hoch:fts_shutter_10 Schatten:fts_shutter_80@blue Home:fts_shutter_30@blue 100:fts_shutter_10 50:fts_shutter_40@blue .*:fts_shutter_30@blue
eventMap on:Hoch 25:Schatten 75:Home off:Runter stop:Stop
expert 2_full
firmware 2.5
group Rollläden OG
icon fts_shutter_automatic@#7a0099
model HM-LC-BL1-FM
peerIDs 00000000,
room Automation,Schlafzimmer
serialNr LEQ0634534
sortby 02
subType blindActuator
verbose 3
webCmd Hoch:Runter:Home:Schatten:Stop
schau mal den aktuellen Screenshot von gerade eben 13.50 Uhr an, alle Rollläden sind oben, alle haben den "level" 100...! alle müßten die Farbe grün haben und anzeigen Rollladen xx Oben - Offen bis auf die Zahl ganz oben, dass ist nur zum probieren wegen dem level aber die Farbe ist richtig und die level Anzeige auch.
Dieser Code hier ist der einzig richtige, obere Anzeige der Zahl:
<!-- Test wegen Farben -->
<div class="large left-align"
data-type="label"
data-device="RollladenSZ"
data-get="level"
data-limits='[50,75,100]'
data-colors='["orange","royalblue","lightgreen"]'>
</div>
mir kommt es so vor als wenn die beiden "data-substitution" und "data-limits" nicht richtig zusammen arbeiten, denn die sind ja dafür verantwortlich was angezeigt wird.
Ich habe eine Anzeige mit Symbolen die ähnlich ist mit "symbol" für die Rollläden hier funktioniert diese hervorragend.
hier arbeitet ja "data-icons", "data-get-on" und "data-colors" zusammen
Da ist etwas komplett daneben, aber ich weiß nicht was...!! vllt. habe ich ja auch einen Fehler drin, aber ich weiß nicht wo..? :-\
@moonsorrox
Konnte das Verhalten bei mir mit einem Dummy nachstellen ... die Farben werden wohl richtig anhand von data-limits vergeben ... data-substitution macht aber auch bei mir "lustige" Sachen ... bei level 100 schreibt er geschlossen rein, genauso wie bei 60, 70, .... bei 45, 55 die Zahlen ohne irgendwas zu ersetzen rein ... limits gilt also nicht für data-substitution .... aber selbst das sollte zumindest die angegebenen Werte richtig ersetzen?
Ich muss das mal selbst ausprobieren. Ich sehe jetzt nicht mehr durch, welcher Output welchem Snippet zugeordnet ist.
data-substitution und data-limit sind unabhängig von einander.
Problem bei substitution gefunden. Es muss beim RegEx '^' davor und '$' danach, damit '0' nicht bei 70 matched.
Hab's in der Funktion substitution ergänzt.
ÜBRIGENS: Zum Mappen von Readings kann man auch das nutzen:
data-map-get='{"0":"Rollladen WZ - Geschlossen","60":"Rollladen Rollladen WZ Beschattung 60%","70":"Rollladen WZ Beschattung 70%","80":"Rollladen WZ Beschattung 80%","100":"Rollladen WZ Oben - Offen"}'
Frage die geschweiften Klammern sind richtig..?
habe ich so drin ;)
Folgendes dazu: ich habe das mal bei einem Rollladen eingebaut, dass funktioniert farblich noch nicht...!
Muss ich dazu die neue Version laden... habe grad etwas Bammel, da dazu so viel geschrieben wird mit Fehleranzeigen habe seit ca. 5 Tagen kein Update gezogen...!
also ich habe jetzt ein Update gemacht um die neue Version zu bekommen.
Folgendes ich habe die normalen Rollläden Codes drin und zweimal eine Test Instanz.
<td><!-- ==== Rollladen - Test ==== -->
<div class="large left-align"
data-type="label"
data-device="RollladenWZT"
data-get="level"
data-map-get='{"0":"Rollladen Test WZ - Geschlossen","60":"Rollladen Test WZ Beschattung 60%","70":"Rollladen Test WZ Beschattung 70%","80":"Rollladen Test WZ Beschattung 80%","100":"Rollladen Test WZ Oben - Offen"}'
data-limits='[0,60,70,80,100]'
data-colors='["royalblue","darkorange","darkorange","darkorange","lightgreen"]'>
</div>
<!-- ==== Rollladen - Wohnzimmer ==== -->
<div class="large left-align"
data-type="label"
data-device="RollladenWZ"
data-get="level"
data-substitution='["0","Rollladen WZ - Geschlossen","60","Rollladen WZ - Beschattung 60%","70","Rollladen WZ - Beschattung 70%","80","Rollladen WZ - Beschattung 80%","100","Rollladen WZ Oben - Offen"]'
data-limits='[0,60,70,80,100]'
data-colors='["royalblue","darkorange","darkorange","darkorange","lightgreen"]'>
</div>
<!-- ==== Rollladen - WZ - Terrasse ==== -->
<div class="large left-align"
data-type="label"
data-device="RollladenWZT"
data-get="level"
data-substitution='["0","Rollladen WZT - Geschlossen","60","Rollladen WZT - Beschattung 60%","70","Rollladen WZT - Beschattung 70%","80","Rollladen WZT - Beschattung 80%","100","Rollladen WZT Oben - Offen"]'
data-limits='[0,60,70,80,100]'
data-colors='["royalblue","darkorange","darkorange","darkorange","lightgreen"]'>
</div>
<!-- ==== Rollladen - Schlafzimmer ==== -->
<div class="large left-align"
data-type="label"
data-device="RollladenSZ"
data-get="level"
data-substitution='["0","Rollladen SZ - Geschlossen","25","Rollladen SZ - Beschattung 25%","50","Rollladen SZ - Beschattung 50%","75","Rollladen SZ - HOME 75%","100","Rollladen SZ Oben - Offen"]'
data-limits='[0,25,50,75,100]'
data-colors='["crimson","orange","darkorange","royalblue","lightgreen"]'>
</div>
<!-- ==== Rollladen - Schlafzimmer Test ==== -->
<div class="large left-align"
data-type="label"
data-device="RollladenSZ"
data-get="level"
data-map-get='{"0":"Rollladen Test SZ - Geschlossen","25":"Rollladen Test SZ Beschattung 25%","50":"Rollladen Test SZ Beschattung 50%","75":"Rollladen Test SZ Home 75%","100":"Rollladen Test SZ Oben - Offen"}'
data-limits='[0,25,50,75,100]'
data-colors='["crimson","orange","darkorange","royalblue","lightgreen"]'>
</div>
Mit data-substitution zeigt er es immer noch nicht richtig an, die Farbe ist OK aber der Zustand falsch.
Mit data-map-get zeigt er es alles richtig an.
ABER... das ist nicht bei jeder Position so.... schau mal bitte unten hab eich es beschrieben.
Habe mal ein paar Screenshots dazu gemacht.
Mal alles mit Rollladen SZ getestet, wo Test drin steht ist es mit "data-map-get" gemacht
das ohne Test ist mit "data-substitution" gemacht
Screenshot status_label:
Der Rollladen ist oben in der Offen Position, zeigt aber Geschlossen an -Farbe ist richtig
Test Instanz ist absolut OK
Screenshot status_label1:
Der Rollladen ist in der Home 75% Position, zeigt auch alles richtig an -Farbe ist auch richtig
Test Instanz ist absolut OK
Screenshot status_label2:
Der Rollladen ist in der Beschattung 50% Position, zeigt aber die falsche Position "Rollladen SZ Geschlossen" an -Farbe ist richtig
Test Instanz ist wieder absolut OK
Alles wie gesagt als Hilfestellung für dich, ich/wir kann ja mit data-map-get arbeiten, da das funktioniert
Das sollte evtl. auch im Wiki mit aufgeführt werden. Ich bin da nicht drin.