Autor Thema: HM-Dis-EP-WM55: Anzeige von Wetterdaten  (Gelesen 525 mal)

Offline Susis_Strolch

  • New Member
  • *
  • Beiträge: 4
HM-Dis-EP-WM55: Anzeige von Wetterdaten
« am: 07 Juli 2021, 09:43:27 »
Die Wetterstation HmIP-SWO-PL sollte an das e-Paper Display HM-Dis-EP-WM55 die drei wichtigsten Daten melden:
Temperatur
Luftfeuchtigkeit
regnet es?

Folgendes setze ich vorraus:
1. die Wetterstation ist eingebunden und liefert Werte
2. Das Display ist grundsätzlich im System vorhanden und kann angesteuert werden.

Bei mir sieht das so aus:
define Status_Display CUL_HM 51D9E9
setuuid Status_Display 60e454f6-f33f-d3fe-79a6-637c2d95911a3f18
attr Status_Display .mId 00FB
attr Status_Display IODev HMLAN
attr Status_Display autoReadReg 4_reqStatus
attr Status_Display expert rawReg
attr Status_Display firmware 1.1
attr Status_Display model HM-DIS-EP-WM55
attr Status_Display msgRepeat 1
attr Status_Display room Systemware
attr Status_Display serialNr NEQ1595384
attr Status_Display subType display
attr Status_Display webCmd getConfig:clear msgEvents

define Status_Display_Btn_01 CUL_HM 51D9E901
attr Status_Display_Btn_01 model HM-DIS-EP-WM55
attr Status_Display_Btn_01 peerIDs 00000000

define Status_Display_Btn_02 CUL_HM 51D9E902
attr Status_Display_Btn_02 model HM-DIS-EP-WM55
attr Status_Display_Btn_02 peerIDs 00000000

define Status_Display_Dis CUL_HM 51D9E903
attr Status_Display_Dis model HM-DIS-EP-WM55
Die Key-Kanäle benötige ich nicht. Die Button-Kanäle haben aktuell keine echte Funktion, ausser dass man später mit ihnen noch die Anzeige aktualisieren können soll.

Ich definiere noch dazu 2 notifys und eine at Funktion, die die Anzeige stündlich aktualisiert. Je öfter man die Anzeige aktualisiert, um so schneller werden die Batterien geleert.
define Status_Display_Btn_01_short notify Status_Display_Btn_01 {StatusDisplayAktualisierung}

define Status_Display_Btn_02_short notify Status_Display_Btn_02 {StatusDisplayAktualisierung}

define at_Status_Display_Update at +*01:00:00 {StatusDisplayAktualisierung}

In der 99_myUtils.pm ist eine weitere Funktion definiert, StatusDisplayAktualisierung, die für die Aktualisierung der Anzeige sorgt.
Es geht dabei um die Zeilen2, 3 und 4.
Zeile 1 habe ich mittels
set Status_Display_Btn_02 text Wetter
auf die Anzeige von "Wetter" gesetzt. Zeile 5 nutze ich nicht.

Die Zeilen 2-4 werden mit dieser Funktion aktualisiert:
##########################################################
# Status Display aktualisierung
# Der Wettersensor heisst Wetter_FuchsbauIP (HmIP-SWO-PL)
##########################################################
sub StatusDisplayAktualisierung()
{
my $fuchsbau_temp = ReadingsVal("Wetter_FuchsbauIP","1.ACTUAL_TEMPERATURE","defekt");
my $fuchsbau_hum = ReadingsVal("Wetter_FuchsbauIP","1.HUMIDITY","defekt");
my $fuchsbau_rain = ReadingsVal("Wetter_FuchsbauIP","1.RAINING","");
if ($fuchsbau_rain eq "yes")
{
$fuchsbau_rain="ja";
}
else
{
$fuchsbau_rain="nein";
}
fhem("set Status_Display_Dis displayEP Temp.\x5c_$fuchsbau_temp^C,noIcon:Feucht.\x5c_$fuchsbau_hum\%,noIcon:Regen\x5c_$fuchsbau_rain,noIcon:");
}
Die ersten Zeilen definieren Variablen und in diese werden die von der Wetterstation gelieferten Daten gespeichert. Das if-Konstrukt macht nichts anderes als die englischen Begriffe durch die deutschen zu ersetzen.

Die letzte Zeile ist Erklärungsbedürftig:
Temp., Feucht. und Regen sind dabei die Inahlte der drei Zeilen
\x5c ist ein Leerzeichen
^C wird zu °C
\% ist das Prozentzeichen für die Luftfeuchtigkeit
noIcon bredeutet, dass in keiner Zeile ein Icon angezeigt werden soll.

Die Anzeige sieht also grundsätzlich so aus:
      Wetter
_____________

Temp. 25,1°C
Feucht. 95%
Regen ja
_____________


Ein Druck auf die Tasten sorgt nur dafür, dass die Anzeige außerhalb der geplanten Zeit aktualisiert werden soll. Dazu dient das oben definierte notify
« Letzte Änderung: 07 Juli 2021, 09:47:37 von Susis_Strolch »

 

decade-submarginal