FHEM Forum

FHEM - Hausautomations-Systeme => 1Wire => Thema gestartet von: Mathias007 am 02 September 2014, 19:35:30

Titel: 1-Wire LCD Display
Beitrag von: Mathias007 am 02 September 2014, 19:35:30
Ich hab mir eine Dispalykontroller für ein 4x20 Display gekauft ist auch über IP:2121 Aufrufbar. Nur finde ich im Internet leider keine Anwendungsbeispiele z.B die Temperatur von DS19B20 Sensoren Anzuzeigen. Wäre toll wenn mir jeman zeigen könnte wie ich das Löse ;)

Hier  der Link zum Controller: http://www.fuchs-shop.com/de/shop/6/1/13372316/

lg. Mathias
Titel: Antw:1-Wire LCD Display
Beitrag von: ext23 am 02 September 2014, 21:08:25
Wie, was ist denn da jetzt dein genaues Problem?

Beispiel:
ba_Temperatur_868:T.* {
  my $value1 = "%EVTPART1";
  my $value2 = "%EVTPART3";
  fhem "set az_OW_LCD1 line 0 Aussen: $value1°C $value2%";
undef
}


Gruß
Daniel

Titel: Antw:1-Wire LCD Display
Beitrag von: Mathias007 am 02 September 2014, 21:57:16
Geht leider nicht.
2014.09.02 21:55:59 3: ntf_LCD_Start return value: Bareword "prg_Display_Start" not allowed while "strict subs" in use at (eval 12) line 1.
Titel: Antw:1-Wire LCD Display
Beitrag von: ext23 am 02 September 2014, 22:07:32
Wie hast du denn das LCD definiert?

Bei mir sieht das so aus, ich habs mit OWX gemacht:
define MP00202 OWX /dev/MP00202

define az_OW_LCD1 OWLCD DB0700000100
attr az_OW_LCD1 IODev MP00202
Titel: Antw:1-Wire LCD Display
Beitrag von: ntruchsess am 02 September 2014, 23:59:43
Wenn Du den 1-Wire-Bus über owfs (bzw. OWServer) ansteuerst (Darauf läßt IP:2121 jedenfalls schließen): Das wird von OWLCD nicht unterstützt, das geht bisher ausschließlich mit OWX und OWX_ASYNC.

Den Post von Uwe (http://forum.fhem.de/index.php/topic,16434.msg107670.html#msg107670) musst Du Dir auch noch mal genau durchlesen, das erwähnte define reicht nicht, da fehlt noch die sub prg_Display_Start in der 99_myUtils.pm.

Gruß,

Norbert
Titel: Antw:1-Wire LCD Display
Beitrag von: Mathias007 am 03 September 2014, 21:27:42
Das es da kein ToDo dazu gibt. Warum muss das so kompliziert sein  :-\ Ich will als erstes einfach nur Datum und Uhrzeit anzeigen. In der Zweiten Zeile die Temperatur.
Titel: Antw:1-Wire LCD Display
Beitrag von: ntruchsess am 03 September 2014, 21:45:51
Sorry, dass ich Dir mit dem OWLCD nicht wirklich helfen kann. Ich habe das Modul zwar für OWX_ASYNC angepasst, das war aber mehr oder weniger blind, weil es mit meinem eigenen Display auch nicht wirklich wollte und ich mich rein auf das Userfeedback verlassen habe.

Vieleicht könnten mal alle, die das Modul erfolgreich einsetzen angeben, ob bzw. was sie darin ändern mussten und für welche Hardware genau sie es einsetzen, dann wüsste ich, ob man noch was per Attribut konfigurierbar machen müsste damit es universeller einsetzbar wäre.
Titel: Antw:1-Wire LCD Display
Beitrag von: det. am 03 September 2014, 21:56:17
Zitat von: Mathias007 am 03 September 2014, 21:27:42
Das es da kein ToDo dazu gibt. Warum muss das so kompliziert sein  :-\ Ich will als erstes einfach nur Datum und Uhrzeit anzeigen. In der Zweiten Zeile die Temperatur.
Hallo Mathias,


Dass mit Uhrzeit und Datum hab ich auf einem meiner Test Systeme. Kann ich Dir morgen hier reinstellen oder DAU suchst mal nach DLCD im Forum...
Titel: Antw:1-Wire LCD Display
Beitrag von: UweH am 03 September 2014, 22:00:45
Hier mal ein Beispiel für eine Anzeige mit 4 Zeilen...läuft so auf meiner Testmaschine. Die Readings musst Du durch Deine ersetzen...

fhem.cfg:

define LCDup at +*00:01:00 {prg_LCDup()}


99_myUtils:

sub
prg_LCDup()
{

my $LCD_text_1 = sprintf("%.1f",ReadingsVal("Temp.AZ","temperature",0))." C";
my $LCD_text_2 = Value("iButton");
my $LCD_text_3 = Value("Lichtsensor");
my $LCD_text_4 = Value("star");

my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(time);
my $CTIME_String = localtime(time);
$Monat+=1;
$Jahrestag+=1;
$Monat = $Monat < 10 ? $Monat = "0".$Monat : $Monat;
$Monatstag = $Monatstag < 10 ? $Monatstag = "0".$Monatstag : $Monatstag;
$Stunden = $Stunden < 10 ? $Stunden = "0".$Stunden : $Stunden;
$Minuten = $Minuten < 10 ? $Minuten = "0".$Minuten : $Minuten;
$Sekunden = $Sekunden < 10 ? $Sekunden = "0".$Sekunden : $Sekunden;
$Jahr+=1900;
my @Wochentage = ("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
my @Monatsnamen = ("","Januar","Februar","März","April","Mai","Juni",
           "Juli","August","September","Oktober","November","Dezember");




fhem ("set LCD line 0 Temp AZ: $LCD_text_1");
fhem ("set LCD line 1 iButton: $LCD_text_2");
fhem ("set LCD line 2 Sonne: $LCD_text_3");
fhem ("set LCD line 3 $Stunden:$Minuten Diesel:$LCD_text_4");


}
Titel: Antw:1-Wire LCD Display
Beitrag von: Mathias007 am 03 September 2014, 22:08:41
Das Problem ist ich kann zwar in FHEM über set OWX_LCD screen 16 z.B Hello World anzeigen lassen aber mit der Config funktioniert es nicht  :-\

Hier mal ein Auszug aus fhem.cfg:

#1-Wire Bus


define myOWServer OWServer localhost:4304

define temp1 OWDevice 28.4B7714050000 30
attr temp1 icon icoKLIMA
attr temp1 model DS18B20
attr temp1 room Beispielraum
define FileLog_temp1 FileLog ./log/temp1-%Y.log temp9
attr FileLog_temp1 Beispielraum

define OWX_LCD OWDevice FF8A0800000100D9


define LCDup at +*00:01:00 {prg_LCDup()}


In die 99_Utils.pm hab ich schon etliches eingefügt.

Ach ich nutze diesen 1-Wire-Busmaster:
http://mathias-biedert.de/2014/09/01/raspberry-pi-fhem-modul/
Titel: Antw:1-Wire LCD Display
Beitrag von: Tobias am 04 September 2014, 18:34:52
ich habe denselben LCD-controller. Mit OWX und OWLCD habe ich es nicht vernünftig initialisiert bekommen. Mit OWServer und OWDevice läuft es seit monaten stabil :)
Titel: Antw:1-Wire LCD Display
Beitrag von: UweH am 04 September 2014, 19:18:40
Zitat von: Tobias am 04 September 2014, 18:34:52
ich habe denselben LCD-controller. Mit OWX und OWLCD habe ich es nicht vernünftig initialisiert bekommen. Mit OWServer und OWDevice läuft es seit monaten stabil :)
Kann ich nicht bestätigen, ich habe ein Display am "Produktiv"-FHEM-Server mit OWServer und auf dem Testsystem mit OWX/OWLCD laufen und beide sind problemlos zu handhaben. Aber das war nicht das Thema, wir müssen Mathias007 nicht mit Grundsatz- und Glaubensfragen quälen.

@Mathias007: Interessant ist vielmehr (für mich...) der Befehl set OWX_LCD screen 16...
Aus welcher Doku stammt das denn?
Was hast Du "etliches" in die 99_myUtils eingefügt? Klingt irgendwie planlos.
Hat OWX das Display so angelegt oder Du? Was passiert bei set OWX_LCD test
Titel: Antw:1-Wire LCD Display
Beitrag von: det. am 04 September 2014, 19:57:52
Zitat von: ntruchsess am 03 September 2014, 21:45:51
Sorry, dass ich Dir mit dem OWLCD nicht wirklich helfen kann. Ich habe das Modul zwar für OWX_ASYNC angepasst, das war aber mehr oder weniger blind, weil es mit meinem eigenen Display auch nicht wirklich wollte und ich mich rein auf das Userfeedback verlassen habe.

Vieleicht könnten mal alle, die das Modul erfolgreich einsetzen angeben, ob bzw. was sie darin ändern mussten und für welche Hardware genau sie es einsetzen, dann wüsste ich, ob man noch was per Attribut konfigurierbar machen müsste damit es universeller einsetzbar wäre.
my $owx_version="5.3";
#-- controller may be HD44780 or KS0073
#   these values have to be changed for different display
#   geometries or memory maps
my $lcdcontroller = "KS0073";
my $lcdlines      = 4;
my $lcdchars      = 20;
#my @lcdpage       = (0,32,64,96);
my @lcdpage       = (0,64,20,84);

die 4  Zeilen oben müssen im Code von 21_OWLCD.pm nach jedem Update bisher auf den vorhandenen LCD Typ angepasst werden, sonst zeigts nur Müll an. Wenn Du das in der Definition konfigurierbar hinbekommst, wäre das ein großer Schritt nach vorn.
Bei mir funktionieren 2 Displays mit OWX seit Monaten produktiv ohne Probleme
Titel: Antw:1-Wire LCD Display
Beitrag von: Tobias am 08 September 2014, 08:01:37
Also mit "nicht hinbekommen" meinte ich, das die @lcdpage Parameter nicht passten bzw ich nicht passend hinbekommen hatte.
Abgesehen davon ist es ziemlich umständlich den code zu ändern, insbesondere nach jedem update. Jedenfalls mit OWDevice läuft es super...
Titel: Antw:1-Wire LCD Display
Beitrag von: Prof. Dr. Peter Henning am 08 September 2014, 20:06:06
Es steht jedem frei, die Software zu verwenden, mit der er seine Ziele erreicht.

Allerdings sollte man wissen, wie die eigenen Werkzeuge funktionieren - und dann eben mal das Datenblatt seines LCD-Controllers anschauen und die Parameter anpassen.

LG

pah