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

epsrw1

ich fasse mal die aktuekllen todo's zusammen:

* datum+uhrzeit funktion einbauen
* number format ins modul integrieren
* rechenfunktion integrieren (um zB aus 1-10 wert eine prozent-anzeige zu generieren)
* direkt-download-link für das modul

bei diesen sachen ist mir noch nicht ganz klar wo es klemmt:
* die sache mit den leerzeichen ist mir nicht ganz klar, in DLCD werden die leerzeichen korrekt verarbeitet soweit ich sehe.
* ich habe kein 40 spalten display um das schreiben der 40.spalte nachzuvollziehen. bei mir, mit 16 und 20 spalten, ist es möglich jedes zeichen zu schreiben. falls es ein bug in meinem modul sein sollte benötige ich hilfe eines freiwilligen testers

gibt es sonst noch wünsche? wäre kein problem wenn ich eh am version überarbeiten bin
Ich habe keine Ahnung, aber davon wenigstens ganz viel

det.

Hallo Florian,
wenn wir beim Wünschen sind - derzeit zeigen meine Displays in Abhängigkeit div. offener Türen verschiedene Informationen siehe cfg Ausschnitt:
define W_LCD03 notify (BueroTemp_KG:.*|CUL_Bad) {\
   if (Value("CUL_Badtuer") eq "closed")\
    {prg_LCD_Badtuer()}\
   else {prg_LCD_Buerotemp()}\
   }
define W_LCD10 notify (KS300:temperature|OWSWITCHB) {\
  if (ReadingsVal("OWSWITCHB","B","20") eq "OFF")\
    {prg_LCD_Buerofenster1()}\
   else {prg_LCD_Aussentemp1()}\
   }
attr W_LCD10 DbLogExclude 1
define W_LCD11 notify (OWX_WW_SP:temperature|CUL_Kellertuer)  {\
   if (Value("CUL_Kellertuer") eq "Open")\
    {prg_LCD_Kellertuer()}\
   else {prg_LCD_WW_Speicher()}\
   }
define W_LCD12 notify (CUL_HM_HM_CC_RT_DN_21FDBA_Clima:measured-temp|CUL_Hoftor) {\
   if (Value("CUL_Hoftor") eq "Open")\
    {prg_LCD_Hoftor1()}\
   else {prg_LCD_Bad_Temp()}\
   }
LG
det.

kpwg

Zitat von: epsrw1 am 21 Juli 2014, 12:55:32
ich fasse mal die aktuekllen todo's zusammen:

* datum+uhrzeit funktion einbauen
* number format ins modul integrieren
* rechenfunktion integrieren (um zB aus 1-10 wert eine prozent-anzeige zu generieren)
* direkt-download-link für das modul
Das wäre toll. Vor allem der erste Punkt würde hier den WAF erhöhen.
Zitat von: epsrw1 am 21 Juli 2014, 12:55:32
bei diesen sachen ist mir noch nicht ganz klar wo es klemmt:
* die sache mit den leerzeichen ist mir nicht ganz klar, in DLCD werden die leerzeichen korrekt verarbeitet soweit ich sehe.
* ich habe kein 40 spalten display um das schreiben der 40.spalte nachzuvollziehen. bei mir, mit 16 und 20 spalten, ist es möglich jedes zeichen zu schreiben. falls es ein bug in meinem modul sein sollte benötige ich hilfe eines freiwilligen testers
Das war gestern abend (für meine Verhältnisse) etwas spät. Da haperts dann schon mal mit dem Satzbau  ::)

Die HD44780-LCD's am Ethersex werden- im Gegensatz zu anderen Formen des Beschreibens- mit einer Zeile an entsprechender Position beschrieben, welche keine weiteren Leerzeichen enthalten darf. Diese Leerzeichen würden dann als weiteres Argument gewertet, was schief geht. Daher kann ich ein \x20 direkt "durchreichen", was erst im LCD entsprechend verwertet wird. Auch andere Sonderzeichen wie ä, ü und ö oder °C sind damit erreichbar, wenn man die Zeichentabelle des LCD kennt. Ich habe leider keine andere Form der Ansteuerung für ein HD44780 in Benutzung. Selbst der Vorschlag, das \x20 für eine bessere  Ansicht zu decodieren, würde immer noch implizieren, das Du den Zeichensatz kennst. \x20 mag zwar immer identisch sein, andere Sonderzeichen jedoch nicht. Wenn sich sonst keiner meldet => ich kann damit leben.

Als Tester für das 40-Spalten-Display würde ich zur Verfügung stehen. Folgendes habe ich soeben versucht:
attr DLCD_40x4 dlcdLine4 1234567890123456789012345678901234567890
Damit will ich Variablen oder Anderes ausschließen. Ergebnis: die letzte Null fehlt.
Ein Beschreiben aus FHEM heraus mit
set LCD_40x4 write 3 0 1234567890123456789012345678901234567890 funktioniert. Falls Dein LCD so initalisiert ist, das die Zeilen fortlaufen beschrieben werden können, kann man sicher auch in einem 20x4 dem System ein 40x2 vorgaukeln.

Viele Grüße, Ricardo


kpwg

Nachtrag:

das Ändern von dlcdCols von 40 auf 41 oder 50 brachte auch keinen Erfolg. Ich komme nicht an die 40. Stelle.

Verbose 5 am LCD bringt Folgendes:
2014.07.21 17:57:42 3: DLCD DLCD_40x4: Line Line2 is longer than display, ignoring some data
2014.07.21 17:57:42 5: ECMDDevice: Analyze command >{"lcd goto 1 0\n\000lcd write Bad\x20T:22.0\x20H:76\x20Schlafzimmer\x20T:22.6\x20H:74\n"}<
2014.07.21 17:57:42 5: Postprocessing "OK\nOK\n" with perl command {s/([OK\n|;]*)/success/; "$_" eq "success" ? "ok" : "error";}.
2014.07.21 17:57:42 5: Postprocessed value is "ok".
2014.07.21 17:57:43 4: ECMDDevice LCD_40x4 write ok

epsrw1

update:

# $Id: 39_DLCD.pm 1101 2014-07-21 23:21:00Z Florian Duesterwald $


erledigt:
* datum+uhrzeit funktion einbauen
* number format ins modul integrieren
* direkt-download-link für das modul
* 'kpmg'-funktion: neues attr für blankspace ersetzen (zB durch x20)

noch offen:
* rechenfunktion integrieren (um zB aus 1-10 wert eine prozent-anzeige zu generieren)

feedback freut mich immer ;)
gerne würde ich auch Eure config ins wiki als beispiel aufnehmen, wer kann ist herzlich eingeladen diese einfach einzufügen, wer nicht im wiki ist bitte hier über das forum
Ich habe keine Ahnung, aber davon wenigstens ganz viel

epsrw1

Zitat von: det. am 21 Juli 2014, 16:21:43
Hallo Florian,
wenn wir beim Wünschen sind - derzeit zeigen meine Displays in Abhängigkeit div. offener Türen verschiedene Informationen siehe cfg Ausschnitt:
define W_LCD03 notify (BueroTemp_KG:.*|CUL_Bad) {\
   if (Value("CUL_Badtuer") eq "closed")\
    {prg_LCD_Badtuer()}\
   else {prg_LCD_Buerotemp()}\
   }
define W_LCD10 notify (KS300:temperature|OWSWITCHB) {\
  if (ReadingsVal("OWSWITCHB","B","20") eq "OFF")\
    {prg_LCD_Buerofenster1()}\
   else {prg_LCD_Aussentemp1()}\
   }
attr W_LCD10 DbLogExclude 1
define W_LCD11 notify (OWX_WW_SP:temperature|CUL_Kellertuer)  {\
   if (Value("CUL_Kellertuer") eq "Open")\
    {prg_LCD_Kellertuer()}\
   else {prg_LCD_WW_Speicher()}\
   }
define W_LCD12 notify (CUL_HM_HM_CC_RT_DN_21FDBA_Clima:measured-temp|CUL_Hoftor) {\
   if (Value("CUL_Hoftor") eq "Open")\
    {prg_LCD_Hoftor1()}\
   else {prg_LCD_Bad_Temp()}\
   }


das kann FHEM besser als es ein einzelmodul machen könnte. falls ich es einbauen würde, wäre das entweder nur ein abklatsch, bzw das rad neu erfunden, oder aber es wäre eine erweitrung mit naturgemäß wieder einer anderen/neuen art zu konfigurieren. irgendwie nicht das gelbe vom ei.

wenn Du die config anpaßt daß einfach die attr. für die DLCD zeilen jeweils neu gesetzt werden hast Du Deine alerts wieder ohne großen aufwand.

LG, florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

epsrw1

Zitat von: kpwg am 21 Juli 2014, 18:00:02
Nachtrag:

das Ändern von dlcdCols von 40 auf 41 oder 50 brachte auch keinen Erfolg. Ich komme nicht an die 40. Stelle.

Verbose 5 am LCD bringt Folgendes:
2014.07.21 17:57:42 3: DLCD DLCD_40x4: Line Line2 is longer than display, ignoring some data
2014.07.21 17:57:42 5: ECMDDevice: Analyze command >{"lcd goto 1 0\n\000lcd write Bad\x20T:22.0\x20H:76\x20Schlafzimmer\x20T:22.6\x20H:74\n"}<
2014.07.21 17:57:42 5: Postprocessing "OK\nOK\n" with perl command {s/([OK\n|;]*)/success/; "$_" eq "success" ? "ok" : "error";}.
2014.07.21 17:57:42 5: Postprocessed value is "ok".
2014.07.21 17:57:43 4: ECMDDevice LCD_40x4 write ok


so wie ich das rekontruieren kann liegt der fehler irgendwo anders außerhalb DLCD.
in der aktuellen version 1101 in der zeile 244 steht:
fhem($dlcdTriggerCmd);
wenn Du an dieser stelle (egal ob vor oder nachher) die zeile:
Log3($name, 3, "DLCD-debug: $dlcdTriggerCmd");
hinzufügst kannst Du aus dem log genau ersehen was DLCD an Dein device sendet, und das manuell nachvollziehen und das problem zu lösen. im idealfall siehst Du gleich eine fehlermeldung die alles erklärt

LG, florian

Ich habe keine Ahnung, aber davon wenigstens ganz viel

kpwg

Hallo Florian,

habe die neue Version installiert. Den Eintrag zum loggen habe ich eingefügt.
Ein Logauszug der Initialisierung:
2014.07.22 17:47:55 3: DLCD DLCD_40x4 has been defined
2014.07.22 17:47:55 3: DLCD DLCD_40x4: attribute-value [dlcdCols] = 40 changed
2014.07.22 17:47:55 3: DLCD DLCD_40x4: attribute-value [dlcdLine1] = Keller\x20T:%1%\x20H:%2%\x20vorn\x20T:%3%\x20H:%4% changed
2014.07.22 17:47:55 3: DLCD DLCD_40x4: attribute-value [dlcdLine2] = Bad\x20T:%5%\x20H:%6%\x20Schlafzimmer\x20T:%7%\x20H:%8% changed
2014.07.22 17:47:55 3: DLCD DLCD_40x4: attribute-value [dlcdLine4] = 1234567890123456789012345678901234567890 changed
2014.07.22 17:47:55 3: DLCD DLCD_40x4 attribute-value [dlcdPollInterval] = 30 changed
2014.07.22 17:47:55 3: DLCD DLCD_40x4: attribute-value [dlcdRows] = 4 changed
2014.07.22 17:47:55 3: DLCD DLCD_40x4: attribute-value [dlcdTriggerCmd] = set LCD_40x4 write %L% 0 %T% changed
2014.07.22 17:47:55 3: DLCD DLCD_40x4: attribute-value [room] = ECMD_test changed


Ich dachte mir, testweise die \x20 durch _ zu ersetzen, was aber leider auch nichts auf die 40. Position bringt:
2014.07.22 17:48:00 3: DLCD DLCD_40x4: Line Line1 is longer than display, ignoring some data
2014.07.22 17:48:00 3: DLCD DLCD_40x4: Line Line2 is longer than display, ignoring some data
2014.07.22 17:48:30 3: DLCD DLCD_40x4: Line Line1 is longer than display, ignoring some data
2014.07.22 17:49:30 3: DLCD DLCD_40x4: Line Line1 is longer than display, ignoring some data
2014.07.22 17:50:00 3: DLCD DLCD_40x4: attribute-value [dlcdLine1] = Keller_T:%1%_H:%2%_vorn_T:%3%_H:%4% changed
2014.07.22 17:50:40 3: DLCD DLCD_40x4: attribute-value [dlcdLine2] = Bad_T:%5%_H:%6%_Schlafzimmer_T:%7%_H:%8% changed
2014.07.22 17:55:00 3: DLCD-debug: set LCD_40x4 write 0 0 Keller_T:+20.6_H:+68_vorn_T:+19.7_H:+73
2014.07.22 17:55:00 3: DLCD DLCD_40x4: Line Line2 is longer than display, ignoring some data
2014.07.22 17:55:00 3: DLCD-debug: set LCD_40x4 write 1 0 Bad_T:+23.8_H:+50_Schlafzimmer_T:+23.4_H:+50
2014.07.22 17:55:00 3: set LCD_40x4 write 2 0 attr dlcdLine3 %time1% : Wrong number of parameters.
2014.07.22 17:55:00 3: DLCD-debug: set LCD_40x4 write 2 0 attr dlcdLine3 %time1%
2014.07.22 17:58:00 3: DLCD-debug: set LCD_40x4 write 0 0 Keller_T:+20.6_H:+68_vorn_T:+19.7_H:+72
2014.07.22 18:15:30 3: DLCD DLCD_40x4: Line Line2 is longer than display, ignoring some data
2014.07.22 18:15:30 3: DLCD-debug: set LCD_40x4 write 1 0 Bad_T:+23.8_H:+49_Schlafzimmer_T:+23.4_H:+50
2014.07.22 18:15:35 3: DLCD DLCD_40x4: Line Line2 is longer than display, ignoring some data
2014.07.22 18:15:35 3: DLCD-debug: set LCD_40x4 write 1 0 Bad_T:+23.8_H:+50_Schlafzimmer_T:+23.4_H:+50
2014.07.22 18:16:30 3: DLCD DLCD_40x4: Line Line2 is longer than display, ignoring some data
2014.07.22 18:16:30 3: DLCD-debug: set LCD_40x4 write 1 0 Bad_T:+23.8_H:+49_Schlafzimmer_T:+23.4_H:+50
2014.07.22 18:16:35 3: DLCD DLCD_40x4: Line Line2 is longer than display, ignoring some data
2014.07.22 18:16:35 3: DLCD-debug: set LCD_40x4 write 1 0 Bad_T:+23.8_H:+50_Schlafzimmer_T:+23.4_H:+50
2014.07.22 18:18:00 3: DLCD-debug: set LCD_40x4 write 0 0 Keller_T:+20.6_H:+68_vorn_T:+19.7_H:+73
2014.07.22 18:27:30 3: DLCD-debug: set LCD_40x4 write 0 0 Keller_T:+20.6_H:+68_vorn_T:+19.7_H:+72

Seltsam, nun bringt DLCDxformatnum 0 ein Vorzeichen vor die Feuchte? Das ist so seit der neuen Version.
Also Attribut gelöscht, was dann so aussieht:
2014.07.22 18:35:26 3: DLCD DLCD_40x4: attribute-value [attrName] =  changed
2014.07.22 18:35:26 3: DLCD DLCD_40x4: attribute [dlcdVal4formatnum] deleted
2014.07.22 18:35:30 3: DLCD-debug: set LCD_40x4 write 0 0 Keller_T:+20.6_H:+68_vorn_T:+19.7_H:72.2
2014.07.22 18:35:33 3: DLCD DLCD_40x4: attribute-value [attrName] =  changed
2014.07.22 18:35:33 3: DLCD DLCD_40x4: attribute [dlcdVal8formatnum] deleted
2014.07.22 18:35:35 3: DLCD DLCD_40x4: Line Line2 is longer than display, ignoring some data
2014.07.22 18:35:35 3: DLCD-debug: set LCD_40x4 write 1 0 Bad_T:+23.8_H:+50_Schlafzimmer_T:+23.4_H:50
2014.07.22 18:35:38 3: DLCD DLCD_40x4: attribute-value [attrName] =  changed
2014.07.22 18:35:38 3: DLCD DLCD_40x4: attribute [dlcdVal6formatnum] deleted
2014.07.22 18:35:48 3: DLCD DLCD_40x4: attribute-value [attrName] =  changed
2014.07.22 18:35:48 3: DLCD DLCD_40x4: attribute [dlcdVal2formatnum] deleted
2014.07.22 18:36:00 3: DLCD-debug: set LCD_40x4 write 0 0 Keller_T:+20.6_H:68_vorn_T:+19.7_H:72.2
2014.07.22 18:36:00 3: DLCD DLCD_40x4: Line Line2 is longer than display, ignoring some data
2014.07.22 18:36:00 3: DLCD-debug: set LCD_40x4 write 1 0 Bad_T:+23.8_H:49.8_Schlafzimmer_T:+23.4_H:50


Bis Schlafzimmer_T:+23.4 ist alles ok, danach fehlt's. also bis zur 39. Stelle. Kann es auch ein Problem mit der Zählweise sein? Ich beginne bei Zeile 0 und Spalte 0 und komme dann jeweils zur 4 bzw. 39. Haben wir da verschiedene Ansätze?

Kannst Du bitte noch etwas zum \x20 Attribut schreiben? Die Sache mit der Zeit funktioniert. Schön, das man eine Wahl zwischen kompletter Zeit und jeweils Stunden, Minuten und Sekunden hat. Die einstelligen Sekunden haben beim ersten Beschreiben des LCD noch keine führende Null. Beim nächsten Durchgang einer Minute funktionierte es. Sehe gerade, das es bei den Minuten auch so ist. Da ist es unschön, weil die Sekunden dann "dreistellig" werden, wenn der Doppelpunkt durch die fehlende Zehner-Minute eine Stelle nach vorn rückt. Da ich die Poll-Zeit auf 30sec stehen habe und auch gut mit 60sec leben kann, hätte ich die Aktualisierung der Zeit gerne zur vollen Minute. Geht sowas?

Viele Grüße, Ricardo

ps: ja, es ist sehr warm in unserem Schlafzimmer! :'(

epsrw1

die fehlende führende null bei einstelligen zahlen habe ich bereits in arbeit, schlichtweg nicht bedacht gewesen.

wenn Du \x20 als wert für das attr nimmst (ich glaube fhem-bedingt doppel-backslash??) kannst Du mit normalen leerzeichen arbeiten und DLCD ersetzt diese kurz bevor das trigger-command abgesetzt wird, ohne daß die readings von DLCD verunstaltet werden.

den komplizierten part (sp.40) mache ich sobald wie möglich.

LG, florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

kpwg

Keine Eile, es geht doch mit großen Schritten voran.  :D

Weitere Entdeckungen:

Habe das Datum gesehen. der Monat ist noch einen Monat "hinterher". In Zeile 175 und 177 scheint das zu geschehen. Ansonsten => funktioniert!

Da das Modul- vermute ich- vorwiegend auf Punktmatrixdisplays Anwendung findet, könnte ich mir Zeile 45 so vorstellen:
my($attrList)=" dlcdCols:6,8,12,16,20,24,40".
Hier sind alle gängigen Displaygrößen aufgelistet: http://www.sprut.de/electronic/lcd/index.htm#adressen
Bin mir nicht ganz sicher, ob es LCDs mit 6 Spalten gibt.  :)
Eine Menge verschiedener LCDs sieht man hier: http://stores.ebay.de/Ego-China-Electronics/Character-LCD-Module-/_i.html?_fsub=297038014

Das mit \x20 und \\x20 gehe ich morgen an.

Viele Grüße, Ricardo

det.

Hallo Florian,
das sieht richtig gut aus und vereinfacht die Datenaufbereitung für die Displays enorm. Bis ich das produktiv eingebaut habe wird noch etwas Zeit vergehen. Bis dahin erst mal vielen Dank für Deine Mühe.
LG
det.

kpwg

Ich habe mal wieder ein wenig getestet, komme aber nicht weiter. Als problematisch haben sich die noch unvollständigen Möglichkeiten zur Formatierung und Platzierung erwiesen. Weiterhin gibt es noch Ideen, die ich gerne beschreiben möchte.

1. Die Readings lassen sich zwar per Zahlenformatierung anpassen, jedoch habe ich ohne führende Nullen immer wieder Versatz in der Darstellung. Daher ist es sinnvoll, entweder führende Nullen (wie bei der Uhrzeit vorgesehen) einzufügen oder besser Leerzeichen für eine gut lesbare Darstellung. Beispiel: -13.5°C benötigt 7 Zeichen, 8.1°C nur 5 Zeichen plus zwei Platzhalter davor, um folgenden Text nicht zu verschieben (was wiederum ein externes löschen jeder Zeile vor dem neuen Beschreiben notwendig macht).

2. Bei mir erzeugt formatnum immer ein Vorzeichen. Ich kann also entweder das Attribut weglassen und habe kein Vorzeichen, dann aber zB unsinnige Nachkommastellen bei der Feuchte, oder ich kann formatieren auf Nachkommastellen oder Ganzzahl, habe jedoch bei jeder Einstellung das Vorzeichen dabei.

3. Ich habe ein 16x1 LCD, auf welches ich per Notify beim Eintreffen der Readings verschiedene Klimadaten schreibe. Ich habe keine Idee, wie ich hier zB wechselweise diese Zeile mit verschiedenen Klimadaten beschreiben soll. Klar kann man extern zeitgesteuert zB per at das Reading der jeweiligen Zeile jeweils vor Aktion von PollIntervall neu beschreiben, was aber der Übersichtlichkeit nicht zuträglich ist. Das muss doch besser gehen ...  8)

Gibt es bereits weitere Tester mit Ideen und Erfahrungen?

Viele Grüße, Ricardo

Edit: die 40. Spalte kann ich beschreiben, wenn ich bei dlcdTriggerCmd in Spalte 1 anstelle Spalte 0 beginne. Dann jedoch erreiche ich Spalte 0 nicht mehr.

epsrw1

Zitat von: kpwg am 24 August 2014, 12:08:36
1. Die Readings lassen sich zwar per Zahlenformatierung anpassen, jedoch habe ich ohne führende Nullen immer wieder Versatz in der Darstellung. Daher ist es sinnvoll, entweder führende Nullen (wie bei der Uhrzeit vorgesehen) einzufügen oder besser Leerzeichen für eine gut lesbare Darstellung. Beispiel: -13.5°C benötigt 7 Zeichen, 8.1°C nur 5 Zeichen plus zwei Platzhalter davor, um folgenden Text nicht zu verschieben (was wiederum ein externes löschen jeder Zeile vor dem neuen Beschreiben notwendig macht).
2. Bei mir erzeugt formatnum immer ein Vorzeichen. Ich kann also entweder das Attribut weglassen und habe kein Vorzeichen, dann aber zB unsinnige Nachkommastellen bei der Feuchte, oder ich kann formatieren auf Nachkommastellen oder Ganzzahl, habe jedoch bei jeder Einstellung das Vorzeichen dabei.
ich habe den formatnum bereich überarbeitet. die bisherigen attr einstellungen funktionieren leider nicht mehr in der neuen version. im wiki steht die beschreibung: man stellt jetzt feste anzahl ziffern ein und dezimalstellen. das mit dem vorzeichen ist gefixed (war nur ein fehler von mir drin daß man es nicht abschalten konnte)

Zitat
3. Ich habe ein 16x1 LCD, auf welches ich per Notify beim Eintreffen der Readings verschiedene Klimadaten schreibe. Ich habe keine Idee, wie ich hier zB wechselweise diese Zeile mit verschiedenen Klimadaten beschreiben soll. Klar kann man extern zeitgesteuert zB per at das Reading der jeweiligen Zeile jeweils vor Aktion von PollIntervall neu beschreiben, was aber der Übersichtlichkeit nicht zuträglich ist. Das muss doch besser gehen ...  8)
ich könnte eine art rollierfunktion anbieten. wenn Du Dein 16/1 dann in DLCD als 16/4 einrichtest wechselt er 4 anzeigen durch. würde das reichen?

das spalte 40 problem ist außerhalb DLCD zu suchen, muß ein problem mit Deinem display bzw dessen ansteuerungsmodul sein. auch daß bei manchen displays mehrere leerzeichen zusammengefaßt werden ist ein solches treiberproblem

LG, florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel

kpwg

Zitat von: epsrw1 am 25 August 2014, 12:06:37
ich könnte eine art rollierfunktion anbieten. wenn Du Dein 16/1 dann in DLCD als 16/4 einrichtest wechselt er 4 anzeigen durch. würde das reichen?
Das wäre obercool. 8) Na klar reicht das! Der PollIntervall als Umschaltzeit würde genauso genügen, wäre sogar ideal. Dann kann ich in einer Ecke die Uhrzeit hh:mm aktuell halten bzw. einfach stets mit schreiben und auf dem Rest Daten schreiben. Ein PollIntervall von 30sec. ist aus meiner Sicht ausreichend.

Zitat von: epsrw1 am 25 August 2014, 12:06:37
das spalte 40 problem ist außerhalb DLCD zu suchen, muß ein problem mit Deinem display bzw dessen ansteuerungsmodul sein. auch daß bei manchen displays mehrere leerzeichen zusammengefaßt werden ist ein solches treiberproblem
Da teste ich wieder weiter und logge usw. mit anschließendem Bericht.


Es gibt noch ein Problem:
2014.08.25 16:44:07 1: reload: Error:Modul 39_DLCD deactivated:
Global symbol "$name" requires explicit package name at ./FHEM/39_DLCD.pm line 366.
Global symbol "$name" requires explicit package name at ./FHEM/39_DLCD.pm line 366.

Das Modul kommt nicht mit hoch. Wenn ich die Zeile auskommentiere, funktioniert es. Die Zeile lautet:
Log3($name, 3, "DLCD $name L.".__LINE__." value:".$rep." is not a number");


Viele Grüße, Ricardo

epsrw1

update:
# $Id: 39_DLCD.pm 1107 2014-08-25 17:16:00Z Florian Duesterwald


Zitat von: kpwg am 25 August 2014, 16:56:24
Es gibt noch ein Problem:
2014.08.25 16:44:07 1: reload: Error:Modul 39_DLCD deactivated:
Global symbol "$name" requires explicit package name at ./FHEM/39_DLCD.pm line 366.
Global symbol "$name" requires explicit package name at ./FHEM/39_DLCD.pm line 366.

das fängt den fehler beim start ab, wenn die werte die zahlen sein sollten noch auf initialized oder so stehen. hab's gerade korrigiert und neu hochgeladen

rollieren mach ich demnächst fertig.

mit dem 40/4 nochmal, ich könnte es auch selbst testen, würd dafür auf das angebot des leihweisen displays gerne zurückkommen

LG, florian
Ich habe keine Ahnung, aber davon wenigstens ganz viel