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

Marekh


ak323

Hi, bei meinem HD44780 funktioniert das mit:

dlcdReplaceRegex    °=\x{DF}

VG ak323
RaspberryPi 2 im 19" Rack mit 16x2 i2c LCD, FHEM, diverse HomeMatic, 1-Wire (8x DS18B20, 3x DS2408, 2x DS2413, 5x DS2401, DS2423 ATTiny) über DS9490R#, Waterkotte Ai1QE (WWPR) Wärmepumpe über Modbus, WH1080 über Signalduino, 433MHz Funksteckdosen, WiFi RGBWW via Tasmota, ...

ak323

Hi epsrw,
Dein DLCD ist super und ich habe damit auch endlich mal mein HD44780 Display angesteuert bekommen (I2C).

Was mir nur auffällt:
Wenn ich die fhem.cfg editiere und speichere oder ein "shutdown restart" mache, dann geht das Display aus und bleibt auch aus (Anm. 12.11.: habe gerade festgestellt, daß das Display läuft, aber die Beleuchtung nicht aktiviert wird ...)?!
Nur mit einem sudo /etc/init.d/fhem stop sudo /etc/init.d/fhem start bekomme ich es wieder zum Leben erweckt .. !

Hat irgendjemand eine Erklärung dafür ?

Und wann wird das Modul des endlich mal in die offizielle Distribution von FHEM aufgenommen ?!

VG ak323
RaspberryPi 2 im 19" Rack mit 16x2 i2c LCD, FHEM, diverse HomeMatic, 1-Wire (8x DS18B20, 3x DS2408, 2x DS2413, 5x DS2401, DS2423 ATTiny) über DS9490R#, Waterkotte Ai1QE (WWPR) Wärmepumpe über Modbus, WH1080 über Signalduino, 433MHz Funksteckdosen, WiFi RGBWW via Tasmota, ...

Marekh

@ak323

Danke, aber hilft auch nicht, es steht immer noch dieses komische Zeichen da.

Marek

rih

Hallo,
da das Modul schon einige Zeit nicht mehr gepflegt wird, habe ich es mir für meine Bedürfnisse angepasst. Statt 10 Zeilen sind nun bis zu 20 Zeilen möglich, statt 20 Variablen kann man nun bis zu 30 verwenden.
Weiterhin gibt es jetzt das neue Attribut dlcdScrollPage, mit dem das Scrolling von zeilenweise auf seitenweise eingestellt werden kann (0 = zeilenweise, 1 = seitenweise). Mit "seitenweise" ist gemeint, dass die Anzeige z.B. bei einem vierzeiligen LCD um 4 Zeilen weiter scrollt. Vorausgesetzt, es sind mehr als 4 Zeilen definiert. Idealerweise wird zum seitenweise Scrollen z.B. bei einem vierzeiligen Display ein vielfaches der physikalischen Zeilen definiert, also z.B. 8, 12,...
Die geänderte Moduldatei habe ich angehängt. Vielleicht kann's jemand brauchen. Insbesondere bei sehr vielen anzuzeigenden Zeilen ist das seitenweise Scrollen sinnvoll.

The-Holgi

Hallo,
bastel gerade mit dem Modul und espeasy herum.
Soweit funktioniert es das die Temperatur eines Sensors von fhem auf dem 2004 Display am ESP angezeigt wird.
Schaffe es aber irgendwie nicht die richtige Zeile zu treffen, der Wert soll auf Zeile 4 angezeigt werden.
dlcdLine4  Aussen %4%
          dlcdPhysicalRows 4
          dlcdTriggerCmd set ESPEasy_ESP05_DHT05 lcd %L% 1 %T%
          dlcdVal4 Aussen_Sensor:temperature
          dlcdVal4formatnum 2+1

er wird jedoch immer in Zeile 3 dargestellt.

Edit: Habe jetzt heraus gefunden, dass Zeile 1 auf meinem Display Zeile 4 ist und Zeile 2 dann auf dem Display Zeile 1 usw.

Gruß Holgi
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

rih

Hallo,
mit dem Attribut dlcdLineAddrMap kannst du die Zeilen-Addressierung anpassen.
Versuch mal dlcdLineAddrMap 1,2,3,4 ... statt 0,1,2,3 ...

The-Holgi

HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

The-Holgi

(https://uploads.tapatalk-cdn.com/20180109/a8fa6b6f5be88f968b91439c016edf65.jpg)
Hat jemand eine Idee warum die readings der einzelnen Zeilen ( Line 1 bis Line 4) nicht angezeigt werden?
Auf dem LCD wird alles richtig dargestellt.
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

The-Holgi

Hallo, mir ist gerade aufgefallen, dass die Werte die ans Display geschickt werden auch immer ins logfile geschrieben werden. Atr. verbose 0 ist gesetzt. Ist das normal?
Edit: Nach setzen von verbose 2 in global ist ruhe. Sollte das nicht auch aus dem Modul raus funktionieren?
Gruss Holgi
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

Rampler

Hallo zusammen,
funktioniert einwandfrei !!!  :) ;)

Evtl. findet die 39_DLCD.pm den Weg in die Repository, wäre echt klasse.
Woran hängt es, dass das Plugin noch nicht eingecheckt ist ?

VG
Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

Rampler

Hallo zusammen,
habe noch ein paar Ungereimtheiten:

Folgende Meldungen erscheinen bei FHEM Restart:
2018.02.21 15:11:28 3: DLCD WZ.lcd has been defined
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line1 (22) is longer than display (20), ignoring some data
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line1: attr dlcdLine1 %time1%
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line2 (22) is longer than display (20), ignoring some data
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line2: attr dlcdLine2 %time1%
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line3 (22) is longer than display (20), ignoring some data
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line3: attr dlcdLine3 %time1%
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line4 (22) is longer than display (20), ignoring some data
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line4: attr dlcdLine4 %time1%
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line1 (24) is longer than display (16), ignoring some data
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line1: attr dlcdVal2 unreadable
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line2 (24) is longer than display (16), ignoring some data
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line2: attr dlcdVal3 unreadable
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line3 (24) is longer than display (16), ignoring some data
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line3: attr dlcdVal3 unreadable
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line4 (24) is longer than display (16), ignoring some data
2018.02.21 15:11:33 3: DLCD WZ.lcd: Line4: attr dlcdVal3 unreadable


Trotzdem läuft alles wie es soll ...
Internals:
   NAME       WZ.lcd
   NR         593
   NTFY_ORDER 50-WZ.lcd
   STATE      <div style="text-align: left">A: T: 3.3 H:61<br>I: T: 21.7<br>Mi 21 Feb 2018</div>
   TYPE       DLCD
   READINGS:
     2018-02-21 15:14:57   Line1           A: T: 3.3 H:61
     2018-02-21 15:17:36   Line2           I: T: 21.7
     2018-02-21 15:15:47   Line3           Mi 21 Feb 2018
     2018-02-21 15:18:06   scrollingState  1
     2018-02-21 15:17:36   state           15:17:36
Attributes:
   dlcdBlankspaceReplace \\x{10}
   dlcdClearAllCmd {GetHttpFile("192.168.1.28","/control?cmd=lcdcmd,clear")};;{GetHttpFile("192.168.1.28","/control?cmd=lcdcmd,on")}
   dlcdCols   16
   dlcdLine1  A: T: %1% H:%2%
   dlcdLine2  I: T: %3%
   dlcdLine3  %date_WD_ger% %date_D% %date_M_ger% %date_Y%
   dlcdLineAddrMap 1,2,3
   dlcdPhysicalRows 2
   dlcdPollInterval 10
   dlcdRows   3
   dlcdScrolling 1
   dlcdTriggerCmd {GetHttpFile("192.168.1.28","/control?cmd=lcd,%L%,1,%T%")}
   dlcdVal1   Wetterstation:temperature
   dlcdVal1formatnum none
   dlcdVal2   Wetterstation:humidity
   dlcdVal2formatnum none
   dlcdVal3   WZ.hk_clima:measured-temp
   dlcdVal3formatnum none
   room       ToDo
   stateFormat <div style="text-align: left">Line1<br>Line2<br>Line3</div>
   verbose    2


VG
Klaus
3 HMUART (2 via ESP8266), 1 DUOFERN, 9 ESP8266, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

t1me2die

Moin liebe Leute, ich habe ein kleines Problem bei der Einrichtung und der Wiki Eintrag hilft mir nicht sonderlich weiter.

Ich weiß nicht, wie ich den Command "dlcdTriggerCmd" befüllen muss?

Hier mein List vom LCD Display:

Internals:
   DEF        192.168.178.52 80 espBridge LCD-Display_LCD
   HOST       192.168.178.52
   IDENT      LCD-Display_LCD
   INTERVAL   300
   IODev      espBridge
   LASTInputDev espBridge
   MSGCNT     62325
   NAME       WeMos_LCD
   NOTIFYDEV  global
   NR         742
   NTFY_ORDER 50-WeMos_LCD
   PORT       80
   STATE      absent
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1.38
   WARNING    read from http://192.168.178.52:80 timed out
   espBridge_MSGCNT 62325
   espBridge_TIME 2018-08-25 08:42:12
   READINGS:
     2018-08-25 08:42:12   presence        absent
     2018-08-25 08:42:12   state           absent
   helper:
     fpc        1535135455.70764
     pm:
       Encode     1
       JSON       1
     received:
Attributes:
   DbLogExclude .*
   IODev      espBridge
   group      DLCD
   room       ESPEasy,QNAP
   verbose    0


Nun mein dlcd-Device:

Internals:
   CFGFN     
   NAME       dlcd_WeMoS_LCD
   NR         1568
   NTFY_ORDER 50-wemos1
   STATE      08:43:44
   TYPE       DLCD
   Helper:
     DBLOG:
       state:
         myDbLog:
           TIME       1535139062.88851
           VALUE      initialized
   OLDREADINGS:
   READINGS:
     2018-08-25 08:43:44   state           08:43:44
Attributes:
   DbLogExclude .*
   dlcdLine1  BackUp : %1%
   dlcdLine2  Informationen
   dlcdLine3  Server : %3% Grad
   dlcdLine4  Luefter: %4% Grad
   dlcdPhysicalRows 4
   dlcdTriggerCmd set WeMos_LCD lcd %L% 1 %T% ; set WeMos_LCD lcd %L% 2 %T% ; set WeMos_LCD lcd %L% 3 %T% ; set WeMos_LCD lcd %L% 4 %T%
   dlcdVal1   fl_BackUp:state
   dlcdVal3   temp_Server:temperature
   dlcdVal4   temp_Luefter:temperature
   dlcdVal4formatnum 2+1
   group      DLCD
   room       QNAP


Ich möchte insgesamt vier Zeilen anzeigen, wie folgt:

Informationen
Server : xx,x Grad
Luefter: xx,x Grad
BackUp : ON / OFF


Irgendwie habe ich die Readings auch auf das Display bekommen, jedoch bekomme ich haufenweise Logeinträge:

...
2018.08.25 07:51:46 2: ESPEasy espBridge: httpReq failed:  192.168.178.52 LCD-Display_LCD 'lcd %L%,3,%25T%25'
2018.08.25 07:51:46 2: ESPEasy espBridge: httpReq failed:  192.168.178.52 LCD-Display_LCD 'lcd %L%,4,%25T%25'
2018.08.25 07:52:49 2: ESPEasy espBridge: httpReq failed:  192.168.178.52 LCD-Display_LCD 'lcd %L%,4,%25T%25'
2018.08.25 07:56:46 2: ESPEasy espBridge: httpReq failed:  192.168.178.52 LCD-Display_LCD 'lcd 2,1,Server%20%3a%2028%2e4%20Grad'
2018.08.25 07:56:51 2: ESPEasy espBridge: httpReq failed:  192.168.178.52 LCD-Display_LCD 'lcd %L%,2,%25T%25'
2018.08.25 07:56:51 2: ESPEasy espBridge: httpReq failed:  192.168.178.52 LCD-Display_LCD 'lcd %L%,3,%25T%25'
2018.08.25 07:58:47 2: ESPEasy espBridge: httpReq failed:  192.168.178.52 LCD-Display_LCD 'lcd 1,1,Informationen'
2018.08.25 07:58:49 2: ESPEasy espBridge: httpReq failed:  192.168.178.52 LCD-Display_LCD 'lcd %L%,2,%25T%25'
2018.08.25 07:58:51 2: ESPEasy espBridge: httpReq failed:  192.168.178.52 LCD-Display_LCD 'lcd %L%,3,%25T%25'
...


Außerdem sind meine Readings "Line1", "Line2", ... weg seitdem ich "dlcdTriggerCmd" wohl falsch angegeben habe.

Wie geht es richtig?

Gruß
Mathze

R1F800

Hallo,

ich habe das Modul in Betrieb genommen und gebe da mit auf einem Standard 2004A Display 20x40 Temperaturen aus.
Ich kann mir aktuell nicht erklären woher ein Yen Zeichen auf dem Display kommt.

Weder bei der REGEXP Ersetzung für ° noch in den Leerzeichen habe ich das drin ...

Hat jemand eine Idee?

epsrw1

Zitat von: R1F800 am 12 Oktober 2018, 11:43:41
Ich kann mir aktuell nicht erklären woher ein Yen Zeichen auf dem Display kommt.
Hat jemand eine Idee?

Möglicherweise handelt es sich um einen Zeilenumbruch der falsch interpretiert wird, oder sonst ein Zeichen dass Dein Display nicht kennt. Wie sieht es in der Web Oberfläche aus? Ist da die Ausgabe in Ordnung?
Gruß Florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel