RasperyPi + LCD + CSM / RS485 Platine = "FHEM-Zentrale"

Begonnen von Dirk, 15 Mai 2013, 21:29:16

Vorheriges Thema - Nächstes Thema

Dirk

Zitat von: dampf123 am 18 Januar 2014, 19:28:50
bis jetzt habe ich kein einziges mal "Pixelsalat" gehabt.  :)
Somit scheint der Wert von spiWait mit 50 OK zu sein.
Sehr schön. Dann lass ich das so.
Danke für das Feedback

Zitat von: ext23 am 19 Januar 2014, 12:17:16
sag mal eine Frage, die Funktion, dass das Bild auf dem Kopf steht brauche ich jetzt ;-) ...
Kann man das irgendwo konfigurieren oder ist das hard coded?
Könnte man da ein Parameter einführen womit man das einstellen kann?
Aktuell ist das hard coded. Bei der Initialisierung des Displays in lcd.c in LCD_Init.
ändern von
lcd_write_cmd(0xC8);

nach
lcd_write_cmd(0xC0);
Sollte das gewünschte Ergebniss bringen.
Ich kann da aber auch eine Option für einbauen.

Zitat von: PeMue am 19 Januar 2014, 13:31:58
Wie war bei Euch die Taktfrequenz eingestellt? Erlaubt ihr übertakten oder nur die Standardfrequenz 700 MHz? Ich denke, das wäre gut für Dirk, das zu
Da das rpiHW_spiWait hier durch eine simple Warteschleife realisiert wird, ist die Frequenz des RPI hier wichtig.
Wer seinen Raspi also mit einer Frequenz > 700Mhz betreibt muss die Anzahl der Loops wohl vergrößern.

Wenn ich dann aber schon bei weiteren Konfigurationsoptionen bin, dann werde ich für das Wait auch eine Option mit einbauen.
Dann kann man das optional anpassen.

Viele grüße
Dirk

dampf123

Hallo Dirk,
eine Frage zum Stand deiner Softwareentwicklung zu dieser Erweiterungsplatine:
gibt es da schon etwas Neues ?

Gruß
Klaus (der leider kein Programmierer ist, und es toll findet, wenn jemand für so ein Projekt seine Freizeit opfert )
RPi V2 mit LCD und CSM FW1.57
HM-WDS40-TH-I, HM-LC-SW4-DR, HM-SCI-3-FM, HM-CC-RT-DN

Dirk

Hallo Klaus,

ich bin da schon drann.
Ich denke am Wochenende kann ich dir schon mal eine Version vom FHEM-Modul schicken die zumindest schon mal die Textausgabe selber beherrscht. Also ohne umwege über Shell-Befehle.

Gruß
Dirk

dampf123

RPi V2 mit LCD und CSM FW1.57
HM-WDS40-TH-I, HM-LC-SW4-DR, HM-SCI-3-FM, HM-CC-RT-DN

Dirk

#199
Hallo Zusammen,

anbei das Modul mit etwas mehr Möglichkeiten.
Folgende Befehle gibt hier:

# Viereck zeichen
set <name> rect x1 y1 x2 y2 outline

# Linie zeichnen
set <name> line x1 y1 x2 y2

# Text schreiben (bei mehreren Wörtern muss string in Anführungszeichen geschrieben werden)
# Der komplette String kann auch in {} eingeschlossen werden, dann wird der string als Perl interpretiert.
# Somit kann man dann auch variablen ausgeben.
set <name> text x y string [invert] [clearBg]

# Beispiel um das Reading einens Sensors auszugeben
set rpiLCD text 30 30 {ReadingsVal('KS300','humidity','').'%'}

# bmp ausgeben (der Dateiname muss absolut angegeben werden)
set <name> bmp x y filename

# Font festlegen (0, 1, 2, 3
set <name> setFont fontNum

#Datum an Position ausgeben. Dieses Datum wird an dieser Position automatisch aktualisiert.
set <name> date x y fontNum

# Zeit ausgeben. Wenn showSeconds 1 ist, wird die Zeit mit laufenden Sekunden ausgegeben
set <name> time x y fontNum showSeconds

# Zeitaktualisierung stoppen
set <name> stopTime

# Datumsaktualisierung stoppen
set <name> stopDate

# Kreis zeichen
set <name> circle x y r

# Screen löschen (nur unterhalb der Datumszeile)
set <name> cls

# Kompletten Screen löschen
set <name> clearAll

# LED's schalten (ledNum = 1-3, state = 0 oder 1)
set <name> led ledNum state

# Hintergrundhelligkeit setzen (level = 0 - 255, 0 = aus)
set <name> backlight level


Wenn das so alles funktioniert bitte ein kleine Feedback.
Dann check ich das Modul auch ein.

Gruß
Dirk

Update Anhang gelöscht.

PeMue

Hallo Dirk,

hast Du eine Nachtschicht eingelegt? Werde morgen mal testen und schauen, wie weit sich mein daemon von Deinem Modul "wegentwickelt" hat und berichten. Bin gerade dabei, für meine Photovoltaikanlage einen Konverter zu schreiben, daher liegt das Display etwas "auf Eis".

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Dirk

Zitathast Du eine Nachtschicht eingelegt
Ja. Ich wollte fertig werden. Sonst hätte das wieder ein paar Tage liegen geblieben :)

Gruß
Dirk

dampf123

Hallo Dirk,
da warst du ja richtig fleißig, sogar eine Nachtschicht hast du eingelegt. :)

Das Modul habe ich auch schon bei mir mal auf den Raspi gezogen und getestet.
Leider kann ich noch keinen Erfolg vermelden.  :(

Folgendes Problem:

set RPI_LCD text 30 30 {ReadingsVal('TH_1','humidity','').'%'}
erzeugt auf dem LCD-Display nur das %-Zeichen. Leider keinen Messwert.

Wenn ich in der Komandozeile
{ReadingsVal('TH_1','humidity','').'%'}
eingebe, wird mir brav 61% auf dem Monitor ausgegeben.

Das habe ich auch noch mal via PuTTY und Telnet Verbindung versucht, auch da wird mir der Meßwert zurückgegeben.

Die anderen Funktionen, so wie Rechteck zeichnen und Textausgabe klappt einwandfrei.

Ich hoffe du kannst mit meiner "Fehler"-Beschreibung etwas anfangen.

Gruß Klaus

RPi V2 mit LCD und CSM FW1.57
HM-WDS40-TH-I, HM-LC-SW4-DR, HM-SCI-3-FM, HM-CC-RT-DN

Dirk

Wenn das %-Zeichen angezeigt wird, scheint der Ausdruck aber interpretiert zu werden.
Was kommt denn bei:
set RPI_LCD text 30 30 {ReadingsVal('TH_1','humidity','99').'%'}

dampf123

Hallo Dirk,
auf dem Display erscheint dann: 99%

Gruß Klaus
RPi V2 mit LCD und CSM FW1.57
HM-WDS40-TH-I, HM-LC-SW4-DR, HM-SCI-3-FM, HM-CC-RT-DN

dampf123

Ups,
ich glaube mit dem Befehl set led stimmt auch was nicht.
set led 1 1
führt zum Absturz. Kann das aber noch nicht verifizieren. Das muss ich noch mehr eingrenzen.

Später mehr ( habe gleich leider noch einen Termin ......, daher zu wenig Zeit)

Gruß
Klaus
RPi V2 mit LCD und CSM FW1.57
HM-WDS40-TH-I, HM-LC-SW4-DR, HM-SCI-3-FM, HM-CC-RT-DN

Dirk

Zitat von: dampf123 am 31 Januar 2014, 16:47:21
auf dem Display erscheint dann: 99%
Dann passt das aber.
99 ist der Default-Wert den die Funktion liefert wenn das Reading kein Ergebniss hat.
Tippfehler im Device-Name?

Zitatführt zum Absturz. Kann das aber noch nicht verifizieren. Das muss ich noch mehr eingrenzen.
Was stürztz ab? FHEM?
Gibt es Logeinträge?

dampf123

Moin Dirk,
so ich habe mal etwas mit dem Raspi rumgespielt.
Ich habe mal das Device umbenannt, und zwar von RPI_LCD auf LCD1. Ergebnis ist aber das gleiche.
set LCD1 text 30 30 {ReadingsVal('TH_1','humidity','').'%'}
bringt ein %-Zeichen auf das LCD-Display.

In der Komandozeile
{ReadingsVal('TH_1','humidity','').'%'}
eingegeben bringt mir auf dem Monitor den aktuellen Wert zurück.
Da steht dann: 63%

Somit schließe ich Tippfehler aus, der Temperatursensor ist auch OK.

Dann zum Absturz bei der Eingabe von:
set LCD1 led 1 1

dabei stürzt das fhem ab.

Auf der Konsole vom raspi steht dann folgendes:
Undefined subroutine &main::rpiLCD_command called at ./FHEM/00_RPI_LCD.pm line 442

Hilft dir das weiter ?

Gruß Klaus



RPi V2 mit LCD und CSM FW1.57
HM-WDS40-TH-I, HM-LC-SW4-DR, HM-SCI-3-FM, HM-CC-RT-DN

Dirk

ZitatAuf der Konsole vom raspi steht dann folgendes:
Undefined subroutine &main::rpiLCD_command called at ./FHEM/00_RPI_LCD.pm line 442

Hilft dir das weiter ?
Definitiv.
Ich schaue mir das heute abend an.

Warum das Reading bei dir nicht ausgegeben wird ist mir ein Rätsel. Vor allem weil der Defaultwert ja angezeigt wird.
Vielleicht finde ich da noch was.

Gruß
Dirk

stgeran

Ich habe das Modul heruntergeladen und in /opt/fhem/FHEM gespeichert. Ein" reload 00_RPI_LCD.pm" bringt folgenden Fehler:
Too many arguments for main::RPI_LCD_text at ./FHEM/00_RPI_LCD.pm line 376, near "$clearBg)"
BEGIN not safe after errors--compilation aborted at ./FHEM/00_RPI_LCD.pm line 552.

Was habe ich vergessen oder falsch gemacht?
FHEM auf Raspberry
CSM 866MHz für EM1010 mit Strom und Gaszähler
CUL 866MHz für MAX! Radiator Thermostat 
CUL 433MHz für Innen und Aussen Temp
HMLAN für HM-LC-Sw1-PI-2