FHEM Forum

FHEM - Hausautomations-Systeme => 1Wire => Thema gestartet von: Muschelpuster am 21 April 2016, 18:54:59

Titel: Formatierung auf LCD-Display
Beitrag von: Muschelpuster am 21 April 2016, 18:54:59
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:
visualisierte Grüße
Niels
Titel: Antw:Formatierung auf LCD-Display
Beitrag von: Muschelpuster am 22 April 2016, 10:50:38
Ein Blick in das Datenblatt vom Display (http://www.fuchs-shop.com/download/LCD205.pdf) 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

Titel: Antw:Formatierung auf LCD-Display
Beitrag 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.
Titel: Antw:Formatierung auf LCD-Display
Beitrag 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 (https://www.sparkfun.com/datasheets/LCD/HD44780.pdf)
Titel: Antw:Formatierung auf LCD-Display
Beitrag von: Muschelpuster am 23 April 2016, 11:35:41
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 (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
Titel: Antw:Formatierung auf LCD-Display
Beitrag von: det. am 23 April 2016, 14:04:47
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.
Titel: Antw:Formatierung auf LCD-Display
Beitrag von: fruit am 23 April 2016, 19:01:40
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]

Titel: Antw:Formatierung auf LCD-Display
Beitrag von: Muschelpuster am 23 April 2016, 21:23:11
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
Titel: Antw:Formatierung auf LCD-Display
Beitrag von: fruit am 23 April 2016, 21:49:38
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
Titel: Antw:Formatierung auf LCD-Display
Beitrag von: Muschelpuster am 24 April 2016, 10:19:46
Apparently this is a problem (or the idea) of the module, that it does not accept perl-commands.

Niels