Ich bräuchte mal etwas Starthilfe...
Im Wiki hab ich folgendes Beispiel für eine Batterieanzeige mit Symbol-Widget gefunden
<div data-type="symbol"
data-device="WohnzimmerHeizung"
data-get="batteryLevel"
data-states='["3.[0-9]","2.[789]","2.[456]","2.[123]","((2.0)|([01].[0-9]))"]'
data-icons='["fa-battery-4","fa-battery-3","fa-battery-2","fa-battery-1","fa-battery-0"]'
data-colors='["#505050","#505050","#505050","#ad3333","#ad3333"]'>
</div>
Ich weiß leider nicht, um welches Device es sich hier handelt (und welcher Wert im Reading steht), aber ich bekomme für mein Device den Ladestand im Reading "battery" als Prozentwert, also z.B. "100 %", geliefert. Was gebe ich jetzt bei data-states an ? Mit regex kenn ich mich nicht wirklich aus ...
Ich kenne mich da ebenfalls wenig aus, würde aber raten das:
- WohnzimmerHeizung dein device name ist
- batteryLevel das reading in diesem device ist aus dem sich dann die anzeige ergibt (muss also existieren damit es funktioniert. wenn es nicht existiert, dann geht die anzeige nicht)
- dann gibt es 5 zustände (states) die jeweils ein entsprechendes icon besitzen
- icon fa-battery-4 wird angezeigt wenn: "3.[0-9]" = bereich 3.0 bis 3.9
- icon fa-battery-3 wird angezeigt wenn: "2.[789]" = bereich 2.7 bis 2.9
- icon fa-battery-2 wird angezeigt wenn: "2.[456]" = bereich 2.4 bis 2.6
- icon fa-battery-1 wird angezeigt wenn: "2.[123]" = bereich 2.1 bis 2.3
- icon fa-battery-0 wird angezeigt wenn: "((2.0)|([01].[0-9]))" = 2.0 oder der bereich 0 bis 1.9
Ich vermute die Bereiche sind die Spannungsbereiche der Batterie. Wenn dein device das nicht als Reading her gibt, dann kannst du diese Anzeige auch nicht basteln. Unter Umständen gibts das aber schon eventuell auch mit anderen Spannungsbereichen, dann musst du nur die Bereiche etwas anpassen. [x-y] bedutet oben immer eine Zahl im Bereich von X-Y. [ABC] bedeutet entweder A oder B oder C.
PS: Eventuell liefert dein device auch den Ladezustand deiner Batterie in Prozent 0-100. Dann kannst du dir das ebenfalls sehr einfach anpassen.
Wie ich oben schon geschrieben habe liefert mein Device im Reading "battery" einen Prozentwert als Text, also z.B. "100 %"
Hier ein List des Devices...
Internals:
AeonGen5_MSGCNT 63
AeonGen5_RAWMSG 00040015055b03538001
AeonGen5_TIME 2017-02-23 20:17:48
DEF d86af805 21
IODev AeonGen5
LASTInputDev AeonGen5
MSGCNT 63
NAME FGPB101_ID21
NR 310
STATE ???
TYPE ZWave
ZWaveSubDevice no
homeId d86af805
isWakeUp 1
lastMsgSent 1487792562.09131
nodeIdHex 15
Readings:
2017-02-21 19:30:25 CMD ZW_APPLICATION_UPDATE
2017-02-23 20:17:48 UNPARSED CENTRAL_SCENE 055b03538001
2017-02-22 20:40:52 assocGroup_1 Max 1 Nodes AeonGen5
2017-02-22 20:40:52 assocGroup_2 Max 5 Nodes
2017-02-22 20:40:52 assocGroup_3 Max 5 Nodes
2017-02-22 20:40:52 assocGroup_4 Max 5 Nodes
2017-02-22 20:40:52 assocGroups 4
2017-02-21 18:50:57 battery 100 %
2017-02-22 20:40:51 configAlarmFrameTriggers 127
2017-02-22 20:40:51 configAssociationsInZWaveNetwork3 7
2017-02-22 20:40:51 configKeyHeldDownCommandSentTo3rd29 BrighteningDimmingAlternately
2017-02-22 20:40:51 configKeyPressed1TimeCommandSentTo2nd10 SwitchONOFFAlternately
2017-02-22 20:40:52 configKeyPressed1TimeCommandSentTo3rd20 SwitchONOFFAlternately
2017-02-22 20:40:52 configKeyPressed1TimesValueOfSWITCHON11 255
2017-02-22 20:40:52 configKeyPressed1TimesValueOfSWITCHON21 255
2017-02-22 20:40:52 configKeyPressed2TimeCommandSentTo2nd12 SwitchON
2017-02-22 20:40:52 configKeyPressed2TimeCommandSentTo3rd22 SwitchON
2017-02-22 20:40:52 configKeyPressed2TimesValueOfSWITCHON13 99
2017-02-22 20:40:52 configKeyPressed2TimesValueOfSWITCHON23 99
2017-02-22 20:40:52 configKeyPressed3TimeCommandSentTo2nd14 NoAction
2017-02-22 20:40:52 configKeyPressed3TimeCommandSentTo3rd24 NoAction
2017-02-22 20:40:52 configKeyPressed3TimesValueOfSWITCHON15 255
2017-02-22 20:40:52 configKeyPressed3TimesValueOfSWITCHON25 255
2017-02-22 20:40:52 configScenesSentToTheController 127
2017-02-21 19:30:27 model FIBARO System FGPB101 Button
2017-02-21 19:30:27 modelConfig fibaro/fgpb101.xml
2017-02-21 19:30:27 modelId 010f-0f01-1000
2017-02-22 20:42:42 timeToAck 0.027
2017-02-22 20:42:42 transmit OK
2017-02-22 20:42:40 wakeup notification
2017-02-21 19:03:51 zwavePlusInfo version:01 role:PortableSlave node:Z-Wave+Node installerIcon:1600 userIcon:1600
Attributes:
IODev AeonGen5
alias Button Eingang
classes ZWAVEPLUS_INFO VERSION MANUFACTURER_SPECIFIC CENTRAL_SCENE DEVICE_RESET_LOCALLY ASSOCIATION_GRP_INFO ASSOCIATION POWERLEVEL WAKE_UP BATTERY ALARM CRC_16_ENCAP CONFIGURATION MULTI_CHANNEL_ASSOCIATION FIRMWARE_UPDATE_MD SECURITY SENSOR_ALARM MARK SWITCH_MULTILEVEL
group Schalter
room Eingang,_ZWave
vclasses ALARM:5 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 BATTERY:1 CENTRAL_SCENE:3 CONFIGURATION:1 CRC_16_ENCAP:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:3 MANUFACTURER_SPECIFIC:2 MULTI_CHANNEL_ASSOCIATION:3 POWERLEVEL:1 SECURITY:1 SENSOR_ALARM:1 SWITCH_MULTILEVEL:0 VERSION:2 WAKE_UP:2 ZWAVEPLUS_INFO:2
Das oben sieht wie ein HM Thermostat aus, fängt dann bei 3 Volt an.
[8-9][0-9].*
Das würde den Bereich von 80% - 99% abdecken, entsprechen kannst du es ja weiter nach unten anpassen. Für 100% würde ich einen eigenen state nehmen, sonst wird es zu kompliziert :)
<div data-type="symbol"
data-device="FGPB101_ID21"
data-get="battery"
data-states='["((100)|([98][0-9]))","[76][0-9]","[54][0-9]","[32][0-9]","(([0-9])|(1[0-9]))"]'
data-icons='["fa-battery-4","fa-battery-3","fa-battery-2","fa-battery-1","fa-battery-0"]'
data-colors='["#505050","#505050","#505050","#ad3333","#ad3333"]'>
</div>
Versuchs mal damit. Vielleicht muss man noch ein .* hinten an jeden state klemmen, siehe grad geschriebenen Beitrag... :o
Ich hab' es jetzt mal so eingebaut
<div data-type="symbol"
style="font-size:240%"
data-device="FGPB101_ID21"
data-get="battery"
data-states='["100.*","[8-9][0-9].*","[6-7][0-9].*","[4-5][0-9].*","[0-3][0-9].*"]'
data-icons='["fa-battery-4","fa-battery-3","fa-battery-2","fa-battery-1","fa-battery-0"]'
data-background-icons='["","","","",""]'
data-colors='["White","White","White","White","White"]'
data-background-colors='["transparent","transparent","transparent","transparent","transparent"]'>
</div>
Scheint zu funktionieren
Falls noch von interesse: ;D
<div data-type="symbol"
data-device="DEVICE"
data-get="battery"
data-states='["([0-9]|[1][0-9])", "([2][0-5])", "([2][6-9]|[3][0-9]|[4][0-9]|50)","([5][1-9]|[6][0-9]|[7][0-5])","([7][6-9]|[8][0-9]|[9][0-9]|100)"]'
data-icons='["fa-battery-0 fa-blink warn","fa-battery-1 warn","fa-battery-2", "fa-battery-3", "fa-battery-4"]'
data-colors='["firebrick", "firebrick", "#aa6900", "green", "green"]'
class="top-space">
</div>
0-20%; rot blinkend null balken mit anzeige der %
21-25%; rot ein balken mit anzeige der prozent
26-50%; orange zwei balken
51-75%; gün drei balken
76-100%; grün vier balken (voll)
Grüße^^
Die Prozentanzeige steht bei mir davor, brauch' ich also nicht im Icon. Farben hab' ich auch schon angepasst, aber die [0-9] hatte ich vergessen - danke dafür. Sieht bei mir übrigens so aus. Per Click auf die Uhr, das Diagramm-Icon und das Kamerabild lassen sich zusätzliche Dialoge öffnen - wie z.B. hier die Automatisierung der Eingangsbeleuchtung...