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

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

Vorheriges Thema - Nächstes Thema

PeMue

Hallo zusammen,

jetzt habe ich ein für mich ungelöstes Problem:
Ich schalte beim Raspberry Pi per crontab (als root) mit
/sbin/ifup wlan0 und
/sbin/ifdown wlan0 das WLAN zeitgesteuert ab. Funktioniert auch, ohne das der vcontrold (der auch auf 127.0.0.1 abfragen kann) stehen bleibt.
Jetzt wollte ich das LCD Display nutzen, um in einem Menüpunkt das WLAN bei Bedarf wieder einzuschalten.
#------------------------------------------------------------------------------
# RPI_LCD_menuWlanOn (PeMue)
# start with sudo ifup wlan0
# stop with sudo ifdown wlan0
# get status with ifconfig wlan0
#------------------------------------------------------------------------------
sub RPI_LCD_menuWlanOn($) {
my ($hash) = @_;

my ($hash, $buttonState) = @_;

my $cmdline;
my $state;
my $result;

RPI_LCD_contentClear($hash);
RPI_LCD_command($hash, 'setFont,0');

# $cmdline = 'ifconfig wlan0 2>&1 | grep UP';
$cmdline = "ip -o addr show | grep inet | grep wlan0";
$result = `$cmdline`;

Log (3, "vor Abfrage: $result");

if (length($result) == 0) # WLAN is off
{
$cmdline = "sudo /sbin/ifup wlan0 &";
# $cmdline = "sudo ifconfig wlan0 up";
Log (3, "Einschalten: $cmdline");
$state = qx($cmdline);
Log (3, "WLAN eingeschaltet: $state");
RPI_LCD_command($hash, 'text,0,13,WLAN:eingeschaltet,0,1');
}

else                      # WLAN is on
{
RPI_LCD_command($hash, 'text,0,13,WLAN:an,0,1');
}
}

Die Abfrage funktioniert, aber das WLAN schaltet sich ums Verr... nicht ein. Was mache ich falsch? Ich habe es schon mit ' und mit " bzw. auch mit qx() probiert, aber es klappt nicht. Ich weiß, dass das Einschalten lange dauert, daher das & am Ende.

Wäre klasse, wenn mir jemand einen Tipp hätte.

Danke + Gruß

PeMue
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

betateilchen

Zitat von: PeMue schrieb am Do, 26 September 2013 08:32Was mache ich falsch? Ich habe es schon mit ' und mit " bzw. auch mit qx() probiert

' und " wird nicht klappen, das entsprechende Zeichen für qx() ist der rückwärts-Accent `

Gib mal in Deiner $cmdline die kompletten Pfade (sowohl für sudo als auch für ifup) mit an. Das & am Ende kannst Du weglassen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

PeMue

Hallo zusammen,

da es mit der Software nicht so ganz klappt, habe ich das Display über Flachbandkabel in den Schaltkasten eingebaut:


(siehe Anhang / see attachement)


Jetzt brauche ich nur noch einen Streifen schwarzes Tonpapier für den Rand. Cool finde ich die abgesägte LED für die beiden LEDs (Duo LED?) vom CSM. Doku folgt.

Gruß PeMue
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

ed_2

Hallo zusammen,

ich habe von Dirk meine Platine bekommen und die auf meinen
Raspberry aufgesteckt. Jetzt leuchtet das LCD hell und beim starten wird
folgendes im LOG angezeigt.

2013.10.13 22:01:24 0: Server shutdown
2013.10.13 22:01:44 1: Including fhem.cfg
2013.10.13 22:01:46 3: telnetPort: port 7072 opened
2013.10.13 22:01:48 3: WEB: port 8083 opened
2013.10.13 22:01:48 3: WEBphone: port 8084 opened
2013.10.13 22:01:48 3: WEBtablet: port 8085 opened
2013.10.13 22:02:04 1: Including ./log/fhem.save
2013.10.13 22:02:04 1: statefile: Please define CUL_0 first
2013.10.13 22:02:04 1: usb create starting
2013.10.13 22:02:07 3: Opening CUL device /dev/ttyAMA0
2013.10.13 22:02:09 3: Setting CUL baudrate to 38400
2013.10.13 22:02:09 3: CUL device opened
2013.10.13 22:02:09 1: define CUL_0 CUL /dev/ttyAMA0@38400 1034
2013.10.13 22:02:10 3: Opening CUL_0 device /dev/ttyAMA0
2013.10.13 22:02:10 3: Setting CUL_0 baudrate to 38400
2013.10.13 22:02:10 3: CUL_0 device opened
2013.10.13 22:02:10 3: CUL_0: Possible commands: mBCFiAGMRTVWXefltx
2013.10.13 22:02:10 1: usb create end
2013.10.13 22:02:10 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart fhem for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2013.10.13 22:02:10 0: Server started with 27 defined entities (version $Id: fhem.pl 3872 2013-09-07 11:58:33Z rudolfkoenig $, os linux, user fhem, pid 1111)

Was muss ich jetzt weiter machen??
Ich habe von einm RPI_LCD  Modul gelesen und in der PDF steht was von rpiLcdDaemon.tgz
wo kann ich das downladen? Was muss ich noch installieren?
@Dirk hast du das CUL/CNC schon geflasht??
Ich betreibe Rasbmc und darauf FHEM und will FS 20 komponenten schalten.

Wer kann mir weiter helfen??

Besten Dank

ed_2

stgeran

Ich warte auf betateilchens Komentar. "Duck und weg"
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

Achim

Hallo ed_2

in dem Thread weiter vorne (http://forum.fhem.de/index.php/topic,12854.msg83311.html#msg83311) hat Dirk eine Doku gepostet. Da ist die komplette Anleitung zur Softwareinstallation drin.

Die Software ist unter https://github.com/kc-GitHub/rpiLcdDaemon zu finden. Steht im anderen Thread http://forum.fhem.de/index.php/topic,13221.msg83321.html#msg83321

MfG
Achim
1x RPi V1, COC, 6x FHT, 1x S300TH, 2x DS18B20, 1x KS300
1x Arduino Nano mit Firmata, 2x DS2423old, 4x DS18B20, HIH5030, verschiedene Ein/Ausgangsschaltungen am Arduino
Mysensors-Seriell Gateway, Si7021, BH1750, Relais

ed_2

Hi,

ja die Anleitung hatte ich auch gelesen und den GIT habe ich auch gefunden.
Nur wie lade ich da was runter wie komme ich an die tgz Datei?
Irgendwie bin ich zu blöd dazu.

Mfg

ed_2

Achim

Hallo ed_2

der Downloadbutton auf GITHUB ist bei mir immer rechts im unteren Drittel des Bildschirms. So als grobe Orientierung. ;) Dort bekommts du das gesamte Paket als ZIP. Dann eben nach Dirks Anleitung anstelle des TGZ Archives das ZIP verwenden und den entsprechenden unzip anstelle des tar verwenden. Oder auf einem Windows System entpacken und mit z.B: WINSCP auf den RPi kopieren.

Oder du holst dir das komplette Image von Dirk (http://forum.fhem.de/index.php/topic,13221.msg83321.html#msg83321) und "baust" darauf deine FHEM Installation auf.

MfG
Achim
1x RPi V1, COC, 6x FHT, 1x S300TH, 2x DS18B20, 1x KS300
1x Arduino Nano mit Firmata, 2x DS2423old, 4x DS18B20, HIH5030, verschiedene Ein/Ausgangsschaltungen am Arduino
Mysensors-Seriell Gateway, Si7021, BH1750, Relais

ed_2

#143
Hallo zusammen,

ihr könnt mich ja für blöd halten aber es funktioniert noch immer nicht.
Jetzt kommt folgende Meldung.

pi@raspbmc:/opt/rpiLcdDaemon$ sudo ./scripts/install_startscripts
update-rc.d: using dependency based boot sequencing
update-rc.d: using dependency based boot sequencing
update-rc.d: warning: default start runlevel arguments (2 3 4 5) do not match rpiLcdDaemon Default-Start values (S)
pi@raspbmc:/opt/rpiLcdDaemon$ sudo /etc/init.d/rpiLcdDaemon start
[ ok ] Starting RasperyPi LCD Daemon : rpiLcdDaemon.
pi@raspbmc:/opt/rpiLcdDaemon$ /opt/rpiLcdDaemon/client 1234 setBacklight,100
/opt/rpiLcdDaemon/client: error while loading shared libraries: libwiringPi.so.1: cannot open shared object file: No such file or directory
pi@raspbmc:/opt/rpiLcdDaemon$

Danach habe ich nach dieser Anleitung wiringpi installiert.
https://projects.drogon.net/raspberry-pi/wiringpi/

Dazu musste gcc und make noch installiert werden aber ich bekomme immer noch
diese Meldung und am Display ändert sich nichts es kommt keine Anzeige.

Was kann ich noch machen?

Mfg

ed_2

Dirk

Hi ed_2,

also entweder ist WireingPi nicht richtig installiert. Oder aber in einem anderen Verzeichniss.
Starte doch mal das kompiliere den Deamon doch noch einmal neu.
Einfach in das src-Verzeichniss wechsel und make eingeben.

cd /opt/rpiLcdDaemon/src
make
cp rpiLcdDaemon ..


Wenn es keine Fehler gab, dann sollte es danach funktionieren.

Gruß
Dirk

ed_2

Hallo Dirk,

jetzt hat es soweit funktioniert das jetzt die Anzeige auf den Display erscheint.
Wenn ich aber den Befehl zum dimmen des Displays gebe kommt immer noch der Fehler.
Anbei mal die Befehle die ich eingegeben habe und die Meldungen die dann kamen.

pi@raspbmc:/opt/rpiLcdDaemon/wiringPi$ cd /opt/rpiLcdDaemon/src
pi@raspbmc:/opt/rpiLcdDaemon/src$ make
gcc -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -marm -O0 -Wall -g   -c -o rpiLcdDaemon.o rpiLcdDaemon.c
gcc -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -marm -O0 -Wall -g   -c -o libs/lcd.o libs/lcd.c
gcc -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -marm -O0 -Wall -g   -c -o libs/utility.o libs/utility.c
gcc -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -marm -O0 -Wall -g   -c -o libs/server.o libs/server.c
gcc -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -marm -O0 -Wall -g   -c -o libs/command.o libs/command.c
gcc -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -marm -O0 -Wall -g   -c -o libs/timer.o libs/timer.c
gcc -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -marm -O0 -Wall -g   -c -o libs/rpiHardware.o libs/rpiHardware.c
gcc -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -marm -O0 -Wall -g -D_REENTRANT -o rpiLcdDaemon rpiLcdDaemon.o libs/lcd.o libs/utility.o libs/server.o libs/command.o libs/timer.o libs/rpiHardware.o -lrt -I/usr/local/include -L/usr/local/lib -lwiringPi -lpthread
pi@raspbmc:/opt/rpiLcdDaemon/src$ cp rpiLcdDaemon ..
pi@raspbmc:/opt/rpiLcdDaemon/src$ cd ..
pi@raspbmc:/opt/rpiLcdDaemon$ ls -l
total 108
-rwxrwxrwx 1 root root    87 Aug 18 10:46 README.md
-rwxrwxrwx 1 root root 11423 Aug 18 10:46 client
drwxrwxrwx 2 root root  4096 Oct 14 13:35 images
-rwxrwxrwx 1 root root 75098 Oct 14 20:54 rpiLcdDaemon
drwxrwxrwx 3 root root  4096 Oct 14 13:35 scripts
drwxrwxrwx 6 root root  4096 Oct 14 20:53 src
drwxr-xr-x 8 root root  4096 Oct 14 18:26 wiringPi
pi@raspbmc:/opt/rpiLcdDaemon$ sudo /etc/init.d/rpiLcdDaemon start
[ ok ] Starting RasperyPi LCD Daemon : rpiLcdDaemon.
pi@raspbmc:/opt/rpiLcdDaemon$ cd /opt/rpiLcdDaemon
pi@raspbmc:/opt/rpiLcdDaemon$ sudo ./scripts/install_startscripts
update-rc.d: using dependency based boot sequencing
update-rc.d: using dependency based boot sequencing
update-rc.d: warning: default start runlevel arguments (2 3 4 5) do not match rpiLcdDaemon Default-Start values (S)
pi@raspbmc:/opt/rpiLcdDaemon$ /opt/rpiLcdDaemon/client 1234 setBacklight,100
/opt/rpiLcdDaemon/client: error while loading shared libraries: libwiringPi.so.1: cannot open shared object file: No such file or directory
pi@raspbmc:/opt/rpiLcdDaemon$ sudo /opt/rpiLcdDaemon/client 1234 setBacklight,100
/opt/rpiLcdDaemon/client: error while loading shared libraries: libwiringPi.so.1: cannot open shared object file: No such file or directory
pi@raspbmc:/opt/rpiLcdDaemon$

Was kann ich da noch machen? Oder ist das so OK?

Mfg

ed_2

Dirk

Soweit sieht alles gut aus.

So wie es aussieht ist der der Client aber auch gegen die wiringPi libs gelinkt. was eigentlich nicht sein müsset.
Mach noch mal ein:
cd /opt/rpiLcdDaemon/src
make client
cp client ..


Aber, den Client brauchst du im Einsatz mit FHEM nicht. Wenn du also das Startbilld bereits siehst, sollte das auch jetzt schon funktionieren.

Gruß
Dirk

ed_2

Hi,

habe ich auch gemacht und bekomme jetzt keine Fehlermeldung mehr
aber das Display wird auch nicht dunkler.


pi@raspbmc:/opt/rpiLcdDaemon$ /opt/rpiLcdDaemon/client 1234 setBacklight,100
RaspberryPi LCD deamon
Backlight 100 is set.

Mfg

ed_2

stgeran

Frage zu backlight: Ich habe in der config am Ende de Sequenz des LCD Parts "set rpiLcd backlight 1" eingegeben. Das klappt und das Display wird dunkler. Wenn ich aber nach längerer Zeit wieder auf das Display schaue, hat es die urspüngliche Helligkeit wieder. Ein Aufruf von fhem und eine Eingabe von "set rpiLcd backlight 1" in die Befehlszeile bewirkt wieder ein abdunkeln des Displays. Warum schaltet es immer wieder hoch?
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

Dirk

Zitat von: ed_2 am 14 Oktober 2013, 21:25:27
aber das Display wird auch nicht dunkler.
100 ist schon ziemlich hell.

Mit
/opt/rpiLcdDaemon/client 1234 setBacklight,1
Sollte es deutlich dunkler werden.


Zitat von: stgeran am 15 Oktober 2013, 08:15:36
Frage zu backlight: Ich habe in der config am Ende de Sequenz des LCD Parts "set rpiLcd backlight 1" eingegeben. Das klappt und das Display wird dunkler. Wenn ich aber nach längerer Zeit wieder auf das Display schaue, hat es die urspüngliche Helligkeit wieder.
Ich habe in der Beispilekonfiguration eine einfache Automatische Helligkeitssteuerug nach Daylight eingebaut. Das überschreibt deine Manuelle Ändeurng. Das kannst du einfach ausschalten.

Gruß
Dirk