Batteriestand prozentual statt ok/bad.

Begonnen von moemoe, 26 September 2014, 12:28:14

Vorheriges Thema - Nächstes Thema

kvo1

Zitat von: hexenmeister am 04 Januar 2015, 16:47:32
Ich habe das so realisiert, dass die Farben die ABweichung von Soll darstellen, Grün: +/- 1 Grad, Blau: mehr als 1 Grad niedriger als Soll, Rot: 1 Grad mehr als Soll.

Verstanden  ;)

Das Modul ist echt genial !
@Andre , danke nochmal dafür
@Alex:   ....dir für Deine Geduld und Hilfe

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

kvo1

Hallo Zusammen,
ich würde gern die Spalten "Batterie" und Ventilöffnung" rechtsbündig formatieren ,
ist mir aber bisher weder mit   valueStyle  noch mit cellstyle  gelungen ! Geht das überhaupt (wenn ICON + Wert)?

die bisherige Formatierung schaut so aus

attr heatingInfo2 valueFormat {if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10}elsif($READING eq "batteryLevel"){if($VALUE>=3){$VALUE=100}elsif($VALUE>=2.7){$VALUE=75}elsif($VALUE>=2.5){$VALUE=50}elsif($VALUE>=2.2){$VALUE=25}else{$VALUE=0}}}
attr heatingInfo2 valueIcon {'controlMode.manual' => 'sani_heating_manual@lightgreen','controlMode.auto' => 'sani_heating_automatic', 'controlMode.boost' => 'sani_heating_boost@FB0C02','ValvePosition'=>'ValvePosition@6FD9FB', 'ValvePosition.0' => 'Heizung.0%','ValvePosition.10' => 'Heizung.10%','ValvePosition.20' => 'Heizung.20%','ValvePosition.30' => 'Heizung.30%','ValvePosition.40' => 'Heizung.40%','ValvePosition.50' => 'Heizung.50%','ValvePosition.60' => 'Heizung.60%','ValvePosition.70' => 'Heizung.70%','ValvePosition.80' => 'Heizung.80%','ValvePosition.90' => 'Heizung.90%','ValvePosition.100' => 'Heizung.100%','batteryLevel.100'=>'measure_battery_100@0CFB0C','batteryLevel.75'=>'measure_battery_75@42BC0A','batteryLevel.50'=>'measure_battery_50@F5FF10','batteryLevel.25'=>'measure_battery_25@FB5909','batteryLevel.0'=>'measure_battery_0@E50005','controlMode.set_boost' => 'hourglass','controlMode.set_auto' => 'hourglass','controlMode.set_manual' => 'hourglass','R-globalBtnLock.set_on' => 'hourglass','R-globalBtnLock.set_off' => 'hourglass'}
attr heatingInfo2 valueStyle {if($READING eq "measured-temp"){my $t=$VALUE;;my $d=ReadingsVal($DEVICE,'desired-temp',0);;if($t-$d>=1){'style="color:rgb(251,63,11);;"'}elsif($t-$d<=-1){'style="color:rgb(79,58,251);;"'}else{'style="color:rgb(12,251,12);;"'}}}


gruss
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

Domjo75

Hallo,
ich habe mal versucht das Codeschnispel in meine CFG einzubauen. Irgendwie bin ich zu blöd dazu. Bei mir ist immer nur die Überschrift zu sehen. Kann mir hier jemand auf die Sprünge helfen? Ich bin blutiger Anfänger und möchte gerne verstehen was ich falsch mache.

Beste Grüße

Wuppi68

Ohne Glaskugel geht das ganze nicht ....

zeig uns was Du hast ...

mach ein LIST von dem Device und zeige die Fehlermeldung :-)
FHEM unter Proxmox als VM

Domjo75

Guten Morgen,
sorry, hat ein bisschen gedauert. Jeden Abend nach der Arbeit am PC rumhängen gibt irgendwann Ärger  ;D

Ich habe einen HM-Lan Adapter und zwei HM-CC-RT-DN. FHEM läuft auf einem RASPI.
Die Thermostate habe ich umbenannt in wz_HeizungEssen bzw. wz_HeizungSofa. Der Channel_04 heisst jeweils Heizung_Essen und Heizung_Sofa. Das kann man bestimmt auch schöner machen und ich denke da liegt auch das Problem.

Internals:
   DEF        3B0D81
   HMLAN1_MSGCNT 1360
   HMLAN1_RAWMSG E3B0D81,0000,1DF551AF,FF,FFB8,0C86103B0D810000000A9CD1100200
   HMLAN1_RSSI -72
   HMLAN1_TIME 2015-11-20 07:43:30
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     1360
   NAME       wz_HeizungEssen
   NR         51
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 HM_3B0D81_Weather
   channel_02 HM_3B0D81_Climate
   channel_03 HM_3B0D81_WindowRec
   channel_04 Heizung_Esstisch
   channel_05 HM_3B0D81_ClimaTeam
   channel_06 HM_3B0D81_remote
   lastMsg    No:0C - t:10 s:3B0D81 d:000000 0A9CD1100200
   protLastRcv 2015-11-20 07:43:30
   protSnd    29 last_at:2015-11-19 13:05:03
   protState  CMDs_done
   rssi_at_HMLAN1 max:-64 avg:-72.1 lst:-72 cnt:1360 min:-93
   Readings:
     2015-11-17 23:22:37   Activity        alive
     2015-11-17 23:30:29   CommandAccepted yes
     2015-11-13 09:37:59   D-firmware      1.4
     2015-11-13 09:37:59   D-serialNr      MEQ0450562
     2015-11-17 23:20:32   PairedTo        0x2CD8CD
     2015-11-13 09:41:14   R-backOnTime    10 s
     2015-11-13 09:41:14   R-burstRx       on
     2015-11-13 09:41:14   R-cyclicInfoMsg on
     2015-11-13 09:41:14   R-cyclicInfoMsgDis 0
     2015-11-13 09:41:14   R-pairCentral   0x2CD8CD
     2015-11-17 23:20:32   RegL_00:        01:01 02:01 09:01 0A:2C 0B:D8 0C:CD 0E:0A 0F:01  11:00 12:15 16:01 18:00 19:00 1A:00 00:00
     2015-11-20 07:43:30   actuator        2
     2015-11-15 21:19:31   battery         ok
     2015-11-20 07:43:30   batteryLevel    3.1
     2015-11-20 07:43:30   desired-temp    19.5
     2015-11-20 07:43:30   measured-temp   20.9
     2015-11-20 07:43:30   motorErr        ok
     2015-11-19 13:05:03   state           CMDs_done
     2015-11-19 13:05:03   time-request    -
     Regl_07::
       VAL
   Helper:
     HM_CMDNR   12
     PONtest    1
     cSnd       012CD8CD3B0D810603,012CD8CD3B0D8106040000000001
     mId        0095
     rxType     140
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +3B0D81,00,00,00
       nextSend   1448001810.62029
       prefIO
       rxt        2
       vccu
       p:
         3B0D81
         00
         00
         00
     Mrssi:
       mNo        0C
       Io:
         HMLAN1     -70
     Prt:
       bErr       0
       sProc      0
       sleeping   1
       Rspwait:
     Q:
       qReqConf
       qReqStat
     Role:
       dev        1
       prs        1
     Rssi:
       At_hmlan1:
         avg        -72.1014705882354
         cnt        1360
         lst        -72
         max        -64
         min        -93
     Shregw:
       07         04
Attributes:
   IODev      HMLAN1
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_full
   firmware   1.4
   icon       sani_heating_temp
   model      HM-CC-RT-DN
   serialNr   MEQ0450562
   subType    thermostat
   webCmd     getConfig:clear msgEvents:burstXmit


Wäre schön, wenn Ihr mir weiterhelfen könntet. Das Codesnipped habe ich inzwischen wieder gelöscht. Ich kann es aber nochmal zusammen basteln.

LG
Dominik

Domjo75

Hallo zusammen,

ich hab´s dann auch endlich mal geschafft weiter zu probieren. Leider bekomme ich das nicht hin. Ich glaube mir fehlt hier was grundsätzliches.
Hier mal mein Eintrag in der Config:
#ReadingsGoup anlegen.
define heatingInfo readingsGroup <%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Ventil / RH>,<Modus>,<Lock>,<Bat>\HM_3B0D81_Climate:desired-temp,<sollsetz>,measured-temp,humidity,controlMode,R-globalBtnLock@HM_3B0D81_Climate,batteryLevel@HM_3B0D81_Climate\<>,<>,<>,<>,<>,<>,<>,<> \
#eg_wz_wt01

#Schrift fett setzen etc.
attr heatingInfo cellStyle { "r:1"=>'style="font-weight:bold;;font-size:16px"',"r:2,c:0"=>'style="font-weight:bold"',"r:6,c:0" =>'style="font-weight:bold"',"r:9,c:0"=>'style="font-weight:bold"',"r:12,c:0"=>'style="font-weight:bold"'}

#Heizungssteuerung ermöglichen
attr heatingInfo commands {'heatingInfo.sollsetz'=>'desired-temp:5.0,12.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0',"controlMode.manual"=>"set %DEVICE controlMode auto","controlMode.auto"=>"set %DEVICE controlMode manual","R-globalBtnLock.on"=>"set %DEVICE regSet globalBtnLock off","R-globalBtnLock.off"=>"set %DEVICE regSet globalBtnLock on"}

#Gewünschte Namen definieren.
attr heatingInfo mapping {HM_3B0D81_Climate=>"Wohnzimmer",'desired-temp' => }

#Werte vorformatieren (für die Icon-Zuordnung).
attr heatingInfo valueFormat {if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10}elsif($READING eq "batteryLevel"){if($VALUE>=3){$VALUE=100}elsif($VALUE>=2.7){$VALUE=75}elsif($VALUE>=2.5){$VALUE=50}elsif($VALUE>=2.2){$VALUE=25}else{$VALUE=0}}}

#Icons zuordnen.
attr heatingInfo valueIcon {'controlMode.manual' => 'sani_heating_manual@795CFF','controlMode.auto' => 'sani_heating_automatic@FFC13A', 'controlMode.boost' => 'sani_heating_boost@FB0C02','humidity'=>'humidity@6FD9FB', 'R-globalBtnLock.on'=>'secur_locked@F7301D','R-globalBtnLock.off'=>'secur_open@0CFB0C','ValvePosition.0' => 'sani_heating_level_0@002AE0','ValvePosition.10' => 'sani_heating_level_10@F8D53D','ValvePosition.20' => 'sani_heating_level_20@FF9341','ValvePosition.30' => 'sani_heating_level_30@F17F3F','ValvePosition.40' => 'sani_heating_level_40@E46C3C','ValvePosition.50' => 'sani_heating_level_50@DE3B3A','ValvePosition.60' => 'sani_heating_level_60@A30D2D','ValvePosition.70' => 'sani_heating_level_70@B40A23','ValvePosition.80' => 'sani_heating_level_80@C40619','ValvePosition.90' => 'sani_heating_level_90@D4030F','ValvePosition.100' => 'sani_heating_level_100@E50005','batteryLevel.100'=>'measure_battery_100@0CFB0C','batteryLevel.75'=>'measure_battery_75@42BC0A','batteryLevel.50'=>'measure_battery_50@F5FF10','batteryLevel.25'=>'measure_battery_25@FB5909','batteryLevel.0'=>'measure_battery_0@E50005','controlMode.set_boost' => 'hourglass','controlMode.set_auto' => 'hourglass','controlMode.set_manual' => 'hourglass','R-globalBtnLock.set_on' => 'hourglass','R-globalBtnLock.set_off' => 'hourglass'}

#Farben (zu kalt: blau, zu warm: rot, ok: grün).
attr heatingInfo valueStyle {if($READING eq "measured-temp"){my $t=$VALUE;;my $d=ReadingsVal($DEVICE,'desired-temp',0);;if($t-$d>=1){'style="color:rgb(251,63,11);;"'}elsif($t-$d<=-1){'style="color:rgb(79,58,251);;"'}else{'style="color:rgb(12,251,12);;"'}}}

#Messeinheiten und Zahlenwerte.
attr heatingInfo valueSuffix {"desired-temp"=>" °C", "measured-temp"=>" °C","ValvePosition"=>" (".ReadingsVal($DEVICE,$READING,0)." %)","humidity"=>" ".ReadingsVal($DEVICE,$READING,0)." % RH","batteryLevel"=>" (".ReadingsVal($DEVICE,$READING,0)." V)"}


Das Einzige was ich sehe ist ein heatingInfo

Ich sehe den Fehler nicht und würde es gerne verstehen.  :(

Domjo75

Guten Morgen,
fehlt Euch noch irgendwas, oder bin ich einfach zu ungeduldig?
:)

Domjo75

Ich hatte am Wochenende Zeit und hatte wohl auch einen Geistesblitz. Jedenfalls hab ich´s hinbekommen :) Nur die Tastensperre bekomme ich nicht angezeigt

kvo1

Hallo

ist ... HM_3B0D81_Climate  das Device selbst oder cannel 02 ?? (das "_Climate"  deutet m.E. auf cannel 02 hin)

die Tastensperre geht doch auf das Device ??

http://www.fhemwiki.de/wiki/HM-CC-RT-DN_Funk-Heizk%C3%B6rperthermostat
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

Domjo75

Hi,
das ist Channel02.
Also ich hab´s nicht hinbekommen mit der Tastensperre. Laut diesem Forumseintrag, ist es z.Zt. nicht möglich die Readings auszulesen.
http://forum.fhem.de/index.php/topic,42535.0.html
Das wäre natürlich das Sahnehäubchen. Wenn ich es nicht sofort hinbekomme, ist das aber auch kein Beinbruch :)

chr2k

Zitat von: moemoe am 26 September 2014, 12:28:14
Ich wollte in meinen Reading-Groups nicht nur stumpf den Batteriezustand darstellen, sondern wenn die HM-CC-RT-DN schon eine Spannung liefern, diese etwas aufbereiteter darstellen.


Nur zum Verständnis:
Die Heizkörper Thermostate liefern als Reading die Batteriespannung?

kvo1

Zitat von: chr2k am 24 Dezember 2015, 14:58:15
Nur zum Verständnis:
Die Heizkörper Thermostate liefern als Reading die Batteriespannung?
Ja genau, es gibt am Device selbst zwei Readings

battery   liefert einen Status
batteryLevel liefert die Spannung

Gruß
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