39_DLCD.pm - kleines Hilfsmodul um Datenzeilen für serial LCD vorzubereiten v2.0

Begonnen von epsrw1, 12 Juni 2014, 20:04:31

Vorheriges Thema - Nächstes Thema

R1F800

Hi, ja in der Weboberfläche steht korrekt

nn.n °C   


Die Ausgabe ist aber nn.n Y°C   (Y steht für das Yen Zeichen)

R1F800


FHEm2005

Wo kann ich hierzu eigentlich eine Frage absetzen? Über diesem Unterpunkt steht, dass man hier keine Fragen stellen soll. Dieses Modul gibt es nur hier.

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

rih

Ich denke, das hast Du falsch verstanden. Man soll hier keine Fragethemen starten. In dem jeweiligen Thema kannst Du natürlich schon Fragen stellen. Wenn Du also eine Frage zum DLCD-Modul hast, worauf Du in diesem Thema keine Antwort oder Lösung gefunden hast, dann bist Du hier richtig. Ob Dir jemand helfen kann, steht wieder auf einem anderen Blatt ...

FHEm2005

@rih: Danke für den Hinweis. Das habe ich wirklich absolut falsch verstanden.

Nun zu meinem Thema.
Ich habe ein LCD2004 das an einen WEMOS D1 angeschlossen ist und über das Modul ESPEasy mit Daten versorgt wird. Ich schaffe es nicht die Darstellung auf die Zeilen 1 und 3 zu begrenzen. Die Zeilen 2 und 4 sollen einfache Leerzeilen sein - und genau das funktioniert irgend wie nicht. Hier das Listing:
Internals:
   FUUID      5da84d86-f33f-9600-a0bd-aeef8f90e4831dd9
   NAME       FL_LCD
   NR         1370
   NTFY_ORDER 50-FL_LCD
   STATE      22:30:00
   TYPE       DLCD
   READINGS:
     2019-11-21 03:32:12   Line1           attr dlcdVal1 unreadable
     2019-11-21 03:32:12   Line2           attr dlcdVal1 unreadable
     2019-11-21 15:29:23   Line3           Temperatur: +5.8 °C
     2019-11-21 15:29:23   Line4           .
     2019-11-21 22:30:00   dLine0          set ESP_LegoHaus lcd 1 1 >Wetter�um�22:29:50<
     2019-11-21 22:30:00   dLine1          set ESP_LegoHaus lcd 2 1 .
     2019-11-21 22:30:00   dLine2          set ESP_LegoHaus lcd 3 1 Temperatur:�+5.0��C
     2019-11-21 15:29:23   dLine3          set ESP_LegoHaus lcd  1 .
     2019-11-21 22:30:00   debuglinelist   linelist:0-1-2-3
     2019-11-21 22:30:00   state           22:30:00
Attributes:
   disable    0
   dlcdClearAllCmd set ESP_LegoHaus lcdcmd clear
   dlcdClearLineCmd set ESP_LegoHaus lcd clear %L%
   dlcdCols   20
   dlcdDebugOutput 1
   dlcdLine1  >Wetter um %1%<
   dlcdLine2  .
   dlcdLine3  Temperatur: %2% °C
   dlcdLine4  .
   dlcdLineAddrMap 1,2,3,4
   dlcdPhysicalRows 4
   dlcdPollInterval 10
   dlcdReplaceRegex °=\x{DF},ä=\x{E1},ü=\x{F5},Ü=\x{A0},\x20=\x{A0}
   dlcdRows   4
   dlcdScrolling 0
   dlcdTriggerCmd set ESP_LegoHaus lcd %L% 1 %T%
   dlcdVal1   FL_LCD:state
   dlcdVal2   Prologue_145:temperature
   dlcdVal2formatnum 4+1+-
   room       ESPEASY

Warum in der 1. und 2. Zeile attr dlcdVal1 unreadable steht, kann ich auch nicht sagen.


2.Frage: Kann mir jemand sagen, wie ich eine Zeile in der n-ten Spalte beginnen kann?

Herzliche Grüße
Eberhard

Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

rih

Alle Fragen kann ich Dir leider nicht mit völliger Sicherheit beantworten.

Zur 1. Frage - nur Zeile 1 und 3 darstellen: statt
dlcdLineAddrMap 1,2,3,4
stellst Du ein:
dlcdLineAddrMap 1,3

Zur zweiten Frage: da sage ich mal, das geht leider nicht. Führende Leerzeichen bzw. mehrere Leerzeichen ignoriert das Modul. Text ab n-te Spalte oder z.B. zentriert geht meines Wissens nach nicht. Hatte da für mich auch keine Lösung gefunden.

Wegen dem dlcdVal1 unreadable: Die Zeit wird ja eigentlich trotz dem Fehler dargestellt, komisch. Vielleicht mal die Uhrzeit statt aus dem Status woanders herholen, z.B. aus einem Dummy.

Nobbynews

Bei mir gebe ich Datum und Uhrzeit mit festem Format zentriert übder das Attribut dlcdline aus:


dlcdLine5  \x{10} \x{10} \x{10}%date_dmy%
dlcdLine6  \x{10}  \x{10} \x{10} %time_hms%


@R1F800:
Die Ausgabe von °C im Display funktioniert bei mir so:

dlcdLine1  Temp.: %1% \x{DF}C


Norbert

FHEm2005

@Nobbynews & rih

vielen Dank für die guten Hinweise, sie scheinen im ESP-Umfeld bei mir nicht zu funktioniern. Nach etlichen Versuchen, habe ich es doch auf eien andere Weise geschafft.

Die Temperatur vom Device ESP_LegoHaus_Termperatur soll auf dem ESP-Display angezeigt werden. Das Device ESP_LegoHaus_Termperatur triggert ein notify mit folgender Definition:

defmod not_ESP_LCD notify ESP_LegoHaus_Temperatur:.*
{\
my ($text) = chr(20)."Wetter um ".$hms;;\                                                 // Zusammenbau der ersten Zeile
my ($tempe) = "Temperatur". (ReadingsVal("Prologue_145","temperature",""))." °C";;\       // Zusammenbau der zweiten Zeile
fhem("set ESP_LegoHaus_LCD lcd 1 1 $text");;\                                             // Anzeige der ersten Zeile
fhem("set ESP_LegoHaus_LCD lcd 3 13 $tempe ");;\                                          // Anzeige der zweiten Zeile
}
attr not_ESP_LCD room ESPEasy


Grundsätzlich baue ich die veränderlichen Teile zu einer Variablen zusammen, um diese dann mit einem konstanten Teil zuisammengebaut anzuzeigen. Dann kann ich auch ein Leerzeichen chr(20) am Anfang der Zeile darstellen.  ;D ;D

Vielleicht kann es ja mal jemand brauchen.

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM