Batteriestatus HM-CC-RT-DN

Begonnen von coolice, 07 September 2014, 18:39:37

Vorheriges Thema - Nächstes Thema

Andy07

Hallo Peter,

jetzt habe ich 2 Probleme:

1.   Ich komme über das WEBinterface nicht auch die entsprechende readingGroup (im meinem Fall ,,HeizungRg". Ich habe die readingGroup als Schnipsel geladen und dann angepasst, das Ganze hatte auch keine Fehlermeldung beim Speichern hervorgebracht. Jetzt ergibt sich das Bild im Anhang daraus, ohne dass ich darin etwas anwählen kann.
2.   Ich habe noch eine andere Batterieüberwachung (Testweise – readingGroup ,,ZE.Batterie" in der ich Batterie und BatteryLevel überwache.(Bild2) Bei der funktioniert deine Anleitung bis auf die Ausgabe der Spannungswerte, aber das kann vielleicht auch daran liegen, dass da noch alle beiden Abfragen (Status und Level) drin sind.
Hier nochmal ein Bild aus der Visualisierung und ein Auszug der beiden readingGroups.
Ich glaube der Fehler liegt beim Anlegen der readingGroup ,,HeizungRg" – hab hur keinen Ansatzpunkt wie ich sie dazu übereden kann, dass ich sie im Bild anwählen kann.

Gruß Andre


#Batteriestatus aller Devices im Raum Zentral anzeigen
define ZE.Batterie readingsGroup .*:[Bb]attery\
.*:[Bb]atteryLevel
attr ZE.Batterie group Batteriestatus
attr ZE.Batterie notime 1
attr ZE.Batterie room Zentral
attr ZE.Batterie valueFormat {return "0" if( $VALUE eq "low" );; return "100" if( $VALUE eq "ok" );; return "25" if( $VALUE < 2.1 );; return "50" if( $VALUE < 2.3 );; return "75" if( $VALUE < 2.5 );; return "100"}
attr ZE.Batterie valueIcon {'battery.0' => 'measure_battery_0@red','battery.100' => 'measure_battery_100@green','Battery.0' => 'measure_battery_0@red','Battery.100' => 'measure_battery_100@green','batteryLevel.0' => 'measure_battery_0@red','batteryLevel.25' => 'measure_battery_25@red','batteryLevel.50' => 'measure_battery_50@orange','batteryLevel.75' => 'measure_battery_75@green','batteryLevel.100' => 'measure_battery_100@green'}


# Darsteelung der Heizung und Steuerung aller Räume ############################
define HeizungRg readingsGroup <%sani_heating@D4BA90>,<>,<Soll>,<>,<Soll neu>,<>,<Ist>,<>,<Ventil>,<>,<Modus>,<>,<Batterie>,<>,<Boost>,<>,<Auto On>,<>,<Manu On>\
.*._Clima:,<>,desired-temp,<>,<sollsetz>,<>,measured-temp,<>,ValvePosition,<>,controlMode,<>,<{if(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"batteryLevel","0")>=3.0){"%measure_battery_100\@green"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"batteryLevel","0")>=2.7){"%measure_battery_75\@green"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"batteryLevel","0")>=2.5){"%measure_battery_50\@orange"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"batteryLevel","0")>=2.2){"%measure_battery_25\@orange"}else{"%measure_battery_0\@red"}}>,<>,<%sani_heating_boost>,<>,<%sani_heating_automatic>,<>,<%sani_heating_manual>
attr HeizungRg commands {'HeizungRg.sollsetz'=>'desired-temp:off,5.0,12.0,17.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,24.5,25.0',"HeizungRg.sani_heating_boost"=>"set %DEVICE controlMode boost","HeizungRg.sani_heating_automatic"=>"set %DEVICE controlMode auto","HeizungRg.sani_heating_manual"=>"set %DEVICE controlMode manual"}
attr HeizungRg nameStyle style="text-align:left;;"
attr HeizungRg noheading 1
attr HeizungRg nolinks 1
attr HeizungRg room 01_Heizung
attr HeizungRg valueFormat {if(($READING eq "measured-temp")or( $READING eq "desired-temp") ){ "$VALUE °C"}elsif(($READING eq "ValvePosition" && $VALUE ne "0")){$VALUE = 1}}
attr HeizungRg valueIcon {'controlMode.manual' => 'sani_heating_manual','controlMode.auto' => 'sani_heating_automatic','ValvePosition.0' => 'sani_heating@blue','ValvePosition.1' => 'sani_heating@red'}

ph1959de

Hallo Andy,

zu 1.: du hast dann wahrscheinlich beim Kopieren das noheading Attribut übernommen; über Befehlsfeld entweder ein
list TYPE=readingsGroup
oder
list HeizungRg
machen; in beiden Fällen bekommst Du einen klickbaren Link auf Deine readingsGroup Definition.

Alternativ könntest Du auch versuchen
deleteattr HeizungRg noheading
ich weiss allerdings nicht, ob Du den resultierenden Effekt wirklich willst.

2. In der Batterieüberwachung hast Du ja auch gar keine Spalte definiert, die batteryLevel enthält - dann funktioniert natürlich auch das Mapping in valueSuffix nicht.

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Andy07

Danke für die schnelle Antwort.

Problem 1 ist mit noheading und nolinks gelöst. An den Anderen Dingen wird noch gearbeitet.  ;)

Gruß Andre

Andy07

Hallo nochmal,

kann es sein, dass der Platz für die Darstellung im Raum "01_Heizung" nicht reicht? Wenn ich das Ganze mit dem Raum "Zentrale"(readingGroup-ZE.Batterie) eingebe funktionieren die Spannungswerte. Im Raum "01_Heizung"(readingGroup-HeizungRG) funktionieren leider nur die Prozentangaben der Ventile.

Gruß Andre

ph1959de

Zitat von: Andy07 am 29 April 2016, 14:32:35
kann es sein, dass der Platz für die Darstellung im Raum "01_Heizung" nicht reicht? Wenn ich das Ganze mit dem Raum "Zentrale"(readingGroup-ZE.Batterie) eingebe funktionieren die Spannungswerte. Im Raum "01_Heizung"(readingGroup-HeizungRG) funktionieren leider nur die Prozentangaben der Ventile.

  • Die Räume bzw. die Darstellungsbreite haben sicherlich nichts mit dem Problem zu tun; es ist lediglich relevant, welche readingsGroup (Definition) betrachtet werden soll
  • Die Batteriewerte in der Heizungs-RG (ich vermute mal, das sind HM-CC-RT-DN?) gehen nicht, weil Du die _Clima Kanäle der Thermostate selektierst (.*._Clima:), das Reading batteryLevel hängt aber am "Master-Device" also das ohne den "_Clima"-Suffix. Wär doch jetzt mal ne schöne Aufgabe, herauszufinden, wie Du an das andere Device kommst  ;) ... im readingsGroup Wiki gibt es einen Absatz zum Thema "readings eines anderen Device anzeigen" (oder so ähnlich).

Peter






<spoiler warning>
batteryLevel@{delSfx($DEVICE,"_Clima")}
im DEF und in die 99_myUtils.pm
# -----------------------------------------------------------
### Hilfsfunktion für ("eigene") readingsGroup HM-CC-RT-DN
# -----------------------------------------------------------
# Delete (specified) suffix from devicename (e.g. "_Clima" for HM-CC-RT-DN)
sub delSfx($$){
  my ($DEVICE,$mySfx) = @_;

  return substr($DEVICE,0,index($DEVICE,$mySfx));

}

</spoiler warning>
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

ChHerrm

Hallo! Auch wenn das Thema schon älter ist, habe ich ebenfalls ein Problem mit der Anzeige. Ich hätte gerne einen Slider für die einstellbare Soll-Temperatur. Außerdem passt das mit der Batterie bei mir nicht mit den Zeichen, die Variable scheint wohl nicht gefunden zu werden:-/ Was muss ich als Variable der Batterie angeben?:-/



# Bad-Thermostat
define HM_HM_CC_RT_DN_NEQ1011241 HMCCUDEV NEQ1011241
attr HM_HM_CC_RT_DN_NEQ1011241 IODev HMLAN1
attr HM_HM_CC_RT_DN_NEQ1011241 alias Bad_Thermostat
attr HM_HM_CC_RT_DN_NEQ1011241 ccureadingfilter (^UNREACH|LOWBAT|TEMPERATURE|VALVE_STATE|CONTROL)
attr HM_HM_CC_RT_DN_NEQ1011241 ccureadingformat datapoint
attr HM_HM_CC_RT_DN_NEQ1011241 cmdIcon Auto:sani_heating_automatic Manu:sani_heating_manual Boost:sani_heating_boost on:general_an off:general_aus
attr HM_HM_CC_RT_DN_NEQ1011241 controldatapoint 4.SET_TEMPERATURE
attr HM_HM_CC_RT_DN_NEQ1011241 event-on-change-reading .*
attr HM_HM_CC_RT_DN_NEQ1011241 eventMap /datapoint 4.MANU_MODE 20.0:Manu/datapoint 4.AUTO_MODE 1:Auto/datapoint 4.BOOST_MODE 1:Boost/datapoint 4.MANU_MODE 4.5:off/datapoint 4.MANU_MODE 30.5:on/
attr HM_HM_CC_RT_DN_NEQ1011241 group Raumklima
attr HM_HM_CC_RT_DN_NEQ1011241 room Wohnzimmer
attr HM_HM_CC_RT_DN_NEQ1011241 stateFormat Temperatur: 4.ACTUAL_TEMPERATURE°C\
Batterie: 4.BATTERY_STATE[V]\
Ventil: 4.VALVE_STATE%
attr HM_HM_CC_RT_DN_NEQ1011241 statedatapoint 4.SET_TEMPERATURE
attr HM_HM_CC_RT_DN_NEQ1011241 stripnumber 1
attr HM_HM_CC_RT_DN_NEQ1011241 substexcl control
attr HM_HM_CC_RT_DN_NEQ1011241 substitute UNREACH,LOWBAT!(0|false):no,(1|true):yes;;CONTROL_MODE!0:AUTO,1:MANU,2:PARTY,3:BOOST;;SET_TEMPERATURE!#0-3.5:off,#30.5-40:on
attr HM_HM_CC_RT_DN_NEQ1011241 webCmd control:Auto:Manu:Boost:on:off
attr HM_HM_CC_RT_DN_NEQ1011241 widgetOverride control:slider,3.5,0.5,30.5,1

# Readinggroup der Werte
define HeizungRg readingsGroup <%sani_heating@D4BA90>,<>,<Soll>,<>,<Soll neu>,<>,<Ist>,<>,<Ventil>,<>,<Modus>,<>,<Batterie>,<>,<Boost>,<>,<Auto On>,<>,<Manu On>\
HM_HM_CC_RT_DN_NEQ1011241:,<>,4.SET_TEMPERATURE,<>,4.SET_TEMPERATURE,<>,4.ACTUAL_TEMPERATURE,<>,4.VALVE_STATE,<>,controlMode,<>,<{if(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"%4.BATTERY_STATE","0")>=3.0){"%measure_battery_100\@green"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"%4.BATTERY_STATE","0")>=2.7){"%measure_battery_75\@green"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"%4.BATTERY_STATE","0")>=2.5){"%measure_battery_50\@orange"}elsif(ReadingsVal(substr("$DEVICE",0,length("$DEVICE")-6),"%4.BATTERY_STATE","0")>=2.2){"%measure_battery_25\@orange"}else{"%measure_battery_0\@red"}}>,<>,<%sani_heating_boost>,<>,<%sani_heating_automatic>,<>,<%sani_heating_manual>\
attr HeizungRg group Raumklima
attr HeizungRg nameStyle style="text-align:left;;"
attr HeizungRg nolinks 1
attr HeizungRg room Wohnzimmer
attr HeizungRg valueFormat {if(($READING eq "4.ACTUAL_TEMPERATURE")or( $READING eq "4.SET_TEMPERATURE") ){ "$VALUE °C"}elsif(($READING eq "4.VALVE_STATE")){"$VALUE %"}}
attr HeizungRg valueIcon {'controlMode.manual' => 'sani_heating_manual','controlMode.auto' => 'sani_heating_automatic','ValvePosition.0' => 'sani_heating@blue','ValvePosition.1' => 'sani_heating@red'}


martinp876

Slider haben wir nicht. Halte ich nicht für sinnvoll, da schlecht einstellbar. Ein Pulldown steht zu Verfügung.
Kannst du den nicht selbst einrichten? Die Allgemeinheit scheint zufrieden.

Das batteriereading steht zu Verfügung

Apollon

Hallo,

als ich über den Batteriestatus gestolpert bin, fand ich ihn gut und habe ihn eingefügt. Solange ich lediglich Geräte hatte, die den Batterielevel ausgeben war auch alles OK. Nun habe ich aber Sensoren, die lediglich den Batteriestatus ausgeben.  Daraufhin habe ich meine readingsGroup um .*:[Bb]attery ergänzt.
define Batterie readingsGroup .*:[Bb]atteryLevel\
.*:[Bb]attery
attr Batterie valueFormat {return "0" if( $VALUE eq "low" );; \
return "100" if( $VALUE eq "ok" );; \
return "25" if( $VALUE < 2.4 );; \
return "50" if( $VALUE < 2.6 );; \
return "75" if( $VALUE < 2.8 );; \
return "100"}
attr Batterie valueIcon {'battery.0' => 'measure_battery_0@red',\
'battery.100' => 'measure_battery_100@green',\
'Battery.0' => 'measure_battery_0@red',\
'Battery.100' => 'measure_battery_100@green',\
'batteryLevel.0' => 'measure_battery_0@red',\
'batteryLevel.25' => 'measure_battery_25@red',\
'batteryLevel.50' => 'measure_battery_50@orange',\
'batteryLevel.75' => 'measure_battery_75@yellow',\
'batteryLevel.100' => 'measure_battery_100@green'}
...

Das ist genau das, was einige hier verwenden. Bei mir tritt aber das Problem auf, dass durch das define die Geräte mit Batteriestatus und Batterielevel für jedes Reading eine Ausgabe erhalten. Durch  .*:[Bb]atteryLevel .*:[Bb]attery scheint mir das auch logisch. Aber bei anderen wird scheinbar jedes Gerät nur einmal angezeigt.
Habe ich hier einen Fehler?

Gruß
Apollon

hobu

Zitat von: martinp876 am 05 Januar 2017, 21:55:13
Slider haben wir nicht. Halte ich nicht für sinnvoll, da schlecht einstellbar.
Nicht zwingend...
Im realistischen Wertebereich zw. ca. 16 und 23 Grad kann man auch Halbgradschritte noch recht gut einstellen. Wär' somit durchaus eine Alternative zu Dropdown.
Raspberry Pi (Model B)
HM-CFG-USB, HM-CC-RT-DN, HM-LC-SW1-FM, HM-Dis-WM55, HM-FK-SCO

mikrobi

auch wenn das hier nun schon ziemlich alt ist - sorry habe vergessen noch mal meinen Senf dazu zu geben: battery reading ist wieder da, warum auch immer.

battery
ok
2018-04-05 21:58:47
batteryLevel
2.8
2018-04-05 21:58:47

Ich habe in meiner config Thermostat absolut nichts geändert. Warum auch immer es verschwunden war, es scheint mit irgendeinem update wieder gekommen zu sein  ;D