Formatierung auf LCD-Display

Begonnen von Muschelpuster, 21 April 2016, 18:54:59

Vorheriges Thema - Nächstes Thema

Muschelpuster

Hallo zusammen,

Nachdem ich hier viele interessante Diskussionen gelesen habe, war mein Displaymodul erst einmal in der Versenkung verschwunden. Nun habe ich mich aber doch mal ran getraut und was soll ich sagen - eigentlich lief es auf Anhieb (ok, nachdem ich das Anschlusskabel endlich korrekt gecrimpt hatte). Mit OWServer und OWDevice.
Nun stelle ich meine Messwerte über ein at dar und komme an die Feinheiten, wo ich Eure Hilfe in Anspruch nehmen möchte:
define at_Terra_Display at +*00:01:00 set 1Wire_Terra_Display line20.0 Luftfeuchte: [1Wire_TerraLF:Luftfeuchte]% ; set 1Wire_Terra_Display line20.1 Hotspot     [1Wire_TerraTemp_HS:Temperatur]°CSo weit fast schick, aber:

  • Das Grad-Symbol wird (erwartungsgemäß) nicht korrekt dargestellt. Bekommt man das hin?
  • Ich möchte die Werte natürlich untereinander haben, bräuchte also ein paar Leerzeichen zur Formatierung. Die stehen zwar in der Definition drin, werden aber nicht angezeigt. Gut, da könnte ich mir noch mit Punkten helfen, aber schöner wären ja Leerzeichen.

visualisierte Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Muschelpuster

Ein Blick in das Datenblatt vom Display zeigt übrigens, dass das Grad-Symbol geht (1111 1101). Also habe ich mal mit einem Hex-Editor FD in eine textdatei geschrieben - raus kommt ý. Das Einfügen des Zeichens anstelle vom Grad-Zeichen brachte aber nichts (das Zeichen kommt ja auch bei allen undefinierten Zeichen raus).
Wie sende ich jetzt also Binär- oder Hex-Werte an das Display bzw. baue die in den String ein? Auf gleichem Wege müsste ich ja auch Leerzeichen einbauen können.

hexadezimale Grüße
Niels

fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

det.

Wenn Du nicht auf OWServer limitiert wärst, könnte ich Dir mit Beispielcode per pm für OWX helfen.
LG
det.

fruit

I think that datasheet may be showing a different ROM set, see  https://www.sparkfun.com/datasheets/LCD/HD44780.pdf
Feel free to follow up in German if you prefer

Muschelpuster

Zitat von: det. am 22 April 2016, 20:46:05
Wenn Du nicht auf OWServer limitiert wärst, könnte ich Dir mit Beispielcode per pm für OWX helfen.
Tja, leider raten mir meine limitierten Fähigkeiten in der Bewertung von internen Abläufen in den Modulen und grundsätzlichen Programmierphilosophien mich aus diesem Glaubens-/Philosophiekrieg raus zu halten.
Es wäre jetzt auch etwas unglücklich, das produktive System zu zerlegen und grundlegend umzubauen. Vorher lebe ich ohne das Grad-Zeichen. Aber hier habe ich noch nicht kapituliert!

Zitat von: fruit am 22 April 2016, 22:11:20
I think that datasheet may be showing a different ROM set, see  https://www.sparkfun.com/datasheets/LCD/HD44780.pdf
Oh thank you. But it's the same, I have confused the mapping of columns and rows. But DF ist not a printable sign at Windows  :-\

limitierte Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

det.

Zitat von: Muschelpuster am 23 April 2016, 11:35:41
Tja, leider raten mir meine limitierten Fähigkeiten in der Bewertung von internen Abläufen in den Modulen und grundsätzlichen Programmierphilosophien mich aus diesem Glaubens-/Philosophiekrieg raus zu halten.
limitierte Grüße
Niels
OK 1:0 für Dich, das ist sehr klug, da gab es hier in den letzten 5 Jahren schon wilde Schlachten und es ist auch unerheblich, da beide  Wege definitiv zum Ziel führen.
LG
det.

fruit

Ugly but...
define DS18B20_59AA62060000 OWDevice 28.59AA62060000 60
attr DS18B20_59AA62060000 IODev myOWServer
attr DS18B20_59AA62060000 model DS18B20
attr DS18B20_59AA62060000 userReadings Td {sprintf("%0.3f", ReadingsVal("DS18B20_59AA62060000","temperature","0")).chr(223)."C"}

define LCD_test at +*00:01:00 set LCD_870900000100 line20.0 Temp [DS18B20_59AA62060000:Td]

Feel free to follow up in German if you prefer

Muschelpuster

Zitat von: fruit am 23 April 2016, 19:01:40
Ugly but...
...but it works! Thanks a lot!
On this way I can get the missing spaces too. Here my definition with rounding the temperature:attr 1Wire_TerraTemp_HS userReadings tempDisplay  { "   ".int ( 10 * ReadingsVal("1Wire_TerraTemp_HS","temperature",0) + 0.5 ) / 10 .chr(223)."C"}
I tried it directly via perl in the job, but this works not:set 1Wire_Terra_Display line20.1 Hotspot:[1Wire_TerraTemp_HS:tempDisplay]{chr(223)}C

Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

fruit

I am sure it can be refined in many ways
At least we have a solution :)

I could not see a way to add to the 'set LCD' command string either
Feel free to follow up in German if you prefer

Muschelpuster

Apparently this is a problem (or the idea) of the module, that it does not accept perl-commands.

Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF