1-Wire Statusdisplay für FHEM

Begonnen von Guest, 25 April 2012, 20:07:37

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hm, Programmieren lernt man - so meine Erfahrung aus hunderten von Stunden
vor Studierenden - nicht aus Beispielen. Sondern vor allem, indem man etwas
systematisch erklärt bekommt. Genau dieses fehlt hier aber in den meisten
Posts...

Code-Schnipsel sind keine didaktisch sinnvolle Einheit, also versuche ich
mal, das Beispiel etwas auseinander zu nehmen und zu systematisieren.
Umsetzen musst du das schon alleine.

# Automatischer Eintrag Temperatur in LCD-Modul - schrittweise

# FHEM-Code Definition eines notify

define W_LCD3 notify

# FHEM-Code Abfangen des Log-Eintrags
#ERKENNUNGSSTRING IM LOG
#, z.B. reading, temperature oder measured-temp, wird auch bei der
FileLog-Definition verwendet>
#

nt5000:reading.*

# Wenn gefunden, dann Perl-Code, darum in geschweifte Klammern
{

# Hier beginnt der auszuführende Schreibbefehl
# OWXLCD_SetLine(  LCD>')>,Zeilennummer, Fortsetzung
# nächste Zeile

OWXLCD_SetLine($defs{'OWX_LCD'},3, \

# Erster Teilstring der Ausgabe, im State steht die momentane Leistung
incl. der Einheit kW. Ausgabe also z.B. "PV 3.477 kW "
# LCD>')> Ende String >

"PV $defs{'nt5000'}{STATE} "

# Zweiter Teilstring der Ausgabe, dazu muss man in die Messwerte = READINGS
hinabsteigen. In denen steht jeder Messwert mit #Größe {VAL} und Zeit
[TIME}. Rundung mit int( x * 10)/10. Ausgabe also z.B. "30.4 kW"
# < RUNDUNG auf eine Nachkommastelle VON
#  von (''){READINGS}
#{ Wd=}{VAL} RUNDUNG ZU> von SetLine>

.(int($defs{'nt5000'}{READINGS}{Wd}{VAL}*10)/10)." kWh")


# und hier noch die geschweifte Klammer zu
}

LG

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Peter,

Danke, so wird's was :-) Wie kann ich die Übersetzung der Einheit noch
optimieren? Die "0" hinter Cool irritiert mich noch etwas..

Temp.Out:temperature.* {OWXLCD_SetLine($defs{'Display'},3,"Out
$defs{'Temp.Out'}{STATE}".(int($defs{'Temp.Out'}{READINGS}{Wd}{VAL}*10)/10))}

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Erst einmal folgendes Problem: Die LCD-Displays haben jeweils eine eigene
Codierung, sie verstehen weder HTML, noch ASCII. Das bedeutet, dass der
STATE-String auseinandergenommern werden muss, um statt "°" ein
Gradzeichen anzuzeigen.

Muss ich mir nachher mal ansehen - eigentlich sollte das das Modul selbst
machen,bei den Umlauten geht es jedenfalls.

Zweitens: Die Null kommt daher, dass in Deinem Thermometer die Größe "Wd"
natürlich nicht in den Readings steht - die gibt es nur bei meinem
Wechselrichter... Was soll denn nach "Cool" angezeigt werden ?

LG

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

> Zweitens: Die Null kommt daher, dass in Deinem Thermometer die Größe "Wd"
> natürlich nicht in den Readings steht - die gibt es nur bei meinem
> Wechselrichter...


Verdammt, und ich hatte schon gedacht, ich hab's kapiert. Das Wd hab ich
durch temperature ersetzt und damit greift die Rundung auch. Brauch ich
aber an der Stelle nicht, die die Temperatur schon zweistellig ist.

>
Damit ist die 0 jetzt raus:

Temp.Out:temperature.* {OWXLCD_SetLine($defs{'Display'},3,"T Out
$defs{'Temp.Out'}{STATE}")}

>
>
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Peter,

ich habe die Statusanzeige der Fenster auf folgende Art gelöst:

define Stat_Fens_SZ notify Fenster.SZ:Window.*
{OWXLCD_SetLine($defs{'Display'},0,"SZ $defs{'Fenster.SZ'}{STATE}")}

3 Fenster, 3 Zeilen + eine Zeile Aussentemperatur. Da die Fenster-Meldungen
kurz genug sind, passen zwei in eine Zeile und ich könnte eine Zeile für
eine Kalender-Meldung freischaufeln.

Ich möchte nun also zwei Meldungen in eine Zeile quetschen, also die zweite
Meldung soll auf Stelle 10 der Zeile 0 beginnen...wie bekommt man das hin?
Meine diversen Versuche in diese Richtung sind bisher fehlgeschlagen und
ich habe für das Display leider keine Adresstabelle.

Gibt's einen Tipp...? :-)

Danke und Gruß
Uwe

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Ist so noch nicht vorgesehen, könnte man aber machen. Müsst enur ein
Duplikat der Prozedur erstellen und den Schreibbefehl ein paar Bytes später
anfangen.

Derzeit werden nur ganze Zeilen geschrieben.

Ich habe im Moment aber keine Zeit das umzusetzen, weil ich an einem
"1-Wire-Überraschungsprojekt" arbeite.

LG

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Oha...welche Bauteile muss ich mir denn besorgen? ;-)
Und das, wo ich doch vorgestern erst bei Fuchs bestellt habe...

Gruß
Uwe

Am 23. Juni 2012 13:50 schrieb Prof. Dr. Peter A. Henning <
prof.dr.peter.a.henning@gmail.com>:

> Ist so noch nicht vorgesehen, könnte man aber machen. Müsst enur ein
> Duplikat der Prozedur erstellen und den Schreibbefehl ein paar Bytes später
> anfangen.
>
> Derzeit werden nur ganze Zeilen geschrieben.
>
> Ich habe im Moment aber keine Zeit das umzusetzen, weil ich an einem
> "1-Wire-Überraschungsprojekt" arbeite.
>
>
> LG
>
> pah
>
> --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

ext23

                                                 

Ich versuche mir auch gerade ein Grad Zeichen anzeigen zu lassen aber bin
irgendwie gescheitert. Auf dem LCD sind doch Zeichen gespeichert, nur wie
kann ich diese jetzt abrufen mit dem OWLCD Modul? Gibt es hier schon ein
Update? Ich wollt jetzt nicht ein extra Thread aufmachen, das passt ja hier
rein.

Gruß
Daniel

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

UweH

                                                   

Schau Dir mal OWLCD.pm an, Zeile 34. Da steht, wie die Symbole angesteuert
werden. Jetzt brauchst Du nur noch ein Display, welches diese Funktion
unterstützt...Durchsuch mal die diversen Threads zu dem Thema, irgendwo
hatte pah einen Link auf das Display (Conrad).

Gruß
Uwe




Am 18. November 2012 18:39 schrieb Ext23 :

> Ich versuche mir auch gerade ein Grad Zeichen anzeigen zu lassen aber bin
> irgendwie gescheitert. Auf dem LCD sind doch Zeichen gespeichert, nur wie
> kann ich diese jetzt abrufen mit dem OWLCD Modul? Gibt es hier schon ein
> Update? Ich wollt jetzt nicht ein extra Thread aufmachen, das passt ja hier
> rein.
>
> Gruß
> Daniel
>
>  --
> To unsubscribe from this group, send email to
> fhem-users+unsubscribe@googlegroups.com
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Die Codes der Controller sind eben nicht als ASCII codiert.

Umlaute werden im Modul schon automatisch umgesetzt.

Zur Erzeugung eines "Grad"-Zeichens habe ich eine kleine hochgestellte Null
verwendet - diese wird automatisch an Stelle des Strings ° eingesetzt.

Wem das nicht gefällt, der möge sich eigene Symbole definieren.

Ach ja: die korrekte Einheit lautet °C

LG

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

ext23

                                                 

> Zur Erzeugung eines "Grad"-Zeichens habe ich eine kleine hochgestellte
> Null verwendet - diese wird automatisch an Stelle des Strings °
> eingesetzt.
>
Das würde mich ja reichen, funktioniert nur nicht, da sehe ich nur ein
Leerzeichen.

Wem das nicht gefällt, der möge sich eigene Symbole definieren.
>
Naja mit meinen µC Basteleien habe ich das immer so gemacht ja, aber hier
bin ich erst mal etwas ratlos gewesen drauf zuzugreifen.
 

>  Ach ja: die korrekte Einheit lautet °C
>
Mhh nö wer sagt das? Bei mir nicht ... Oder werden Winkel in Grad Celsius
angegeben?

Aber gut egal, ich schau mit mal die OWLCD an was da noch so geht.

Gruß
Daniel

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Guest

Originally posted by: <email address deleted>

>  Ach ja: die korrekte Einheit lautet °C
>>
> Mhh nö wer sagt das? Bei mir nicht ... Oder werden Winkel in Grad Celsius
> angegeben?
>

Ahh, ein Denkender ....
Wenn man 100 Leute gesehen hat, die Temperaturen in "Grad" angeben und
Geschwindigkeiten in "kmh", neigt man automatisch dazu, den 101. auch für
ähnlich zu halten :-))

Also ein echter Tipp: In das Datenblatt des LC-Displays schauen, dort ist
die Codepage gelistet und man sieht, welchen hexadezimalen Code man für was
benötigt.

Bei meinem Display ist das 0x80 für die kleine obenstehende Null

LG

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

ext23

                                                 

> Also ein echter Tipp: In das Datenblatt des LC-Displays schauen, dort ist
> die Codepage gelistet und man sieht, welchen hexadezimalen Code man für was
> benötigt.
>

Naja das ist so ein Teil aus dem Fuchs Shop (LCD205-BW) die bieten da kein
Datenblatt zu an, da ist es immer schwer. Gut mein Problem war mehr das
Zeichen anzusprechen, aber das habe ich jetzt verstanden nachdem ich mir
mal das Modul angesehen habe.

Ich werde mir einfach ein kleines Script schreiben was mal alle Varianten
durchprobiert. Aber mein Display ist auch ein HD44780 kompatibles daher
sind deine Codes da leider andere.

Aber Danke für die Tipps, das bekomme ich jetzt auch noch hin.

Gruß
Daniel

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

ext23

                                                 

Ahh xDF ist es, glaube das ist sogar dieses Hochgestelle O was du meintest.
Naja ich dachte ich kann die hex Codes direkt im String verwenden aber das
geht wohl nicht so ohne weiteres, jedenfalls weiß ich nicht wie man das
escaped, aber egal es geht ja jetzt, danke!

Gruß Daniel

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Guest

Originally posted by: <email address deleted>

Das geht schon direkt im String - mache ich auch so. Einfach den Charakter
Nr. x auf \xDF setzen.

LG

pah

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com