Raspberry PI 2 mit 8" Touchscreen zur Bedienung des IPS-WebFront

Hast du mal in die Datei einfach eingetragen, dass irgendwo eine Datei erstellt werden soll? Nur um zu sehen, ob die Datei überhaupt ausgeführt wird?

Dann kannst du noch prüfen, ob deine Netzwerkverbindung korrekt erkannt wird, sonst passiert auch nichts. Also hier mal was zum Test einbauen:

## Gegebenenfalls auf eure Netzwerkinterfaces anpassen (eth0, wlan0, ...)
while [ $CHECK -eq 0 ]; do
        if ifconfig eth0 | grep inet; then
                        CHECK=1;
                        ipadd="eth0"
        fi
        if ifconfig wlan0 | grep inet; then
                        CHECK=1;
                        ipadd="wlan0"
        fi
done

Wenn du das geprüft hast, dann kannst du nochmal schauen, ob der Browser-Aufruf funktioniert, so wie du ihn im Skript eingetragen hast.

Da kann man dir aus der Ferne leider nicht direkt sagen was los ist. Da musst du Stück für Stück eingrenzen, wo es dran hängt.

Grüße,
Chris

wie mache ich das? Wie schon angemerkt, bin ich da leider komplett neu auf dem Gebiet :frowning:

Das Netzwerk wird sofort erkannt und loggt sich im Wlan ein.

auch hier die Frage wie kann ich das machen?

Eine Datei kannst du zum Test erstellen, in dem du z.B. „touch /tmp/11111111“ an eine Stelle im Code schreibst. Wenn das Skript an dieser Stelle ist, dann wird im /tmp Ordner eine Datei „11111111“ erstellt.

Wie dein Netzwerk heißt findest du mit „ifconfig“ heraus (in der Console vom PI).

Prüfen, ob der Browser-Aufruf funktioniert > Einfach den Teil vom Browser rauskopieren und ebenfalls einfach in der Console ausführen.

>> Das sind alles Grundlagen für einen Besitzer eines PI, damit MUSST du dich dringend beschäftigen, wenn du das ernsthaft verwenden willst!

Grüße,
Chris

Also wenn ich den Code ins Terminal kopiere, dann funktioniert der Browseraufruf, dass die passende Seite aufgerufen wird, sowie dass die tmp Datei erstellt wird…

Wenn ich die Datei allerdings aus dem Explorer heraus direkt ausführen bzw von dort aus im Terminal ausführen will, passiert nichts… ich habe nochmal nach dem Teil geschaut, der von dir beschrieben wurde… habe es nochmal mit beiden Befehlen probiert, allerdings ohne Erfolg.

Wenn der Raspberry neu startet, dann blitzt ganz kurz das Terminal auf und das war es dann. Das Gleiche tritt auf, wenn ich aus dem Explorer versuche es im Terminal zu starten…

Da scheint der Fehler zu liegen. Irgendwas passt mit der Autostart Datei nicht, bzw will er die WebFrontStart.sh nicht richtig ausführen.

Nur wenn ich den kompletten Inhalt der WebFrontStart.sh ins Terminal kopiere und dort ausführe, kommt es zu dem Ergebnis wie bereits oben beschrieben.

Du hast absolut Recht, dass ich mich damit beschäftigen muss! Deswegen hab ich ja auch von Anfang an geschrieben, ich bin auf dem Gebiet total neu :wink:

Gruß Jens

Hi Jens!

Hast du mal „ifconfig“ im Terminal vom PI eingeben? Welchen Namen hat deine LAN/WLAN Verbindung dort? eth0? wlan0? Oder was anderes? Kannst ja mal die Ausgabe von dem Befehl posten.

Wenn du im „WebFrontStart.sh“ eine Datei im /tmp anlegen lässt (ganz am Anfang vom Code) mit z.B. „touch /tmp/11111111111“ … und wenn du den Raspberry dann neu startest und die Datei wird erstellt, dann wird auch das Skript ausgeführt. Also ist der Autostart ok und das Problem liegt vmtl. an der Netzwerk-Abfrage…
Hast du das WebFrontStart.sh mal zum Test ohne die Netzwerkabfrage gestartet? Funktioniert das?

Grüße,
Chris

PS: Sagen man hat keine Ahnung ist ok, aber nicht ausreichend :wink: Wenn man weiß, dass man keine Ahnung hat, bedeutet das nicht, dass man dann eine komplette Anfänger-Anleitung bekommt … sondern es bedeutet, man muss sich selbst genauer damit befassen und bekommt dabei Unterstützung :stuck_out_tongue: :slight_smile:

Hi,

Also ich hab das heute auch ausprobiert mit Pi2, chromium und einem Full HD Monitor. Definitiv ist meine variante zu schwach. Wie schon berichtet, mehrere Sekunden um ein Licht um zu schalten. Zu den extremen wie matchbox bin ich noch nicht gegangen.
Laufen die anderen browser inzwischen stabil und mit allen IPS features?
Ich habe ein altes iPad2 ohne screensaver und lock screen seit zwei monaten dran, mit mercury in full screen mode.
Das funzt einwandfrei 24/7, mit graphen und Kameras.

Gruß

Heinz

ja das habe ich bereits gemacht und die aktive Wlan Verbindung ist wlan0

 pi@raspberrypi ~ $ ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:62:2d:99  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:72 errors:0 dropped:0 overruns:0 frame:0
          TX packets:72 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6288 (6.1 KiB)  TX bytes:6288 (6.1 KiB)

wlan0     Link encap:Ethernet  HWaddr 00:0f:60:05:a0:fb  
          inet addr:192.168.123.16  Bcast:192.168.123.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2288 errors:0 dropped:223 overruns:0 frame:0
          TX packets:1282 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1082541 (1.0 MiB)  TX bytes:171502 (167.4 KiB)

pi@raspberrypi ~ $ 

Das habe ich gemacht und direkt an den Anfang geschrieben und die Datei wird auch erstellt.

Egal wie das Script aussieht… Wenn ich es per Hand in das Terminal kopiere und ausführe, geht auch der Browser auf und lädt das Webfront etc… Ob mit Netzwerkabfrage oder ohne. Aber ich muss es per Hand ins Terminal kopieren. Sobald das Script nach dem Neustart los läuft, passiert leider nichts. Das tritt ebenfalls auf, wenn ich im File Manager die Datei ausführe…ob per execute oder execute im Terminal, keine Reaktion… nur sieht man ganz kurz dass bei dem execute im Terminal, das Terminal ganz kurz aufblitzt, das war es.

So sollte es auch nicht aussehen, dass ich hier das Problem poste und dann eine 1:1 Anfänger-Anleitung bekomme, vorallem nicht den Thread vollspamen. Falls dies so rüberkam, bitte ich das zu entschuldigen.

keine Sorge, würde ich es denken, würde ich es direkt so sagen oder gar nicht antworten :wink: :smiley:

Hmmmm…dann bleibt ja nicht mehr viel übrig :confused:
Eigentlich nur diese 3 Zeilen :confused:

unclutter -display :0 -noevents -grab &
xdotool search --class epiphany windowactivate
xdotool key F11

xdotool lässt sich einfach aus dem Terminal testen. unclutter weiß ich spontan nicht…

Grüße,
Chris

So nun läuft der Raspberry.

Ein befreundeter Linuxkenner hat sich dem Problem mal angetan… Lag wohl an einigen Dingen, die entweder noch gefehlt haben, bzw sich nicht korrekt erstellt haben…

Aber nun funktioniert alles bestens! Trotzdem vielen lieben Dank für die Hilfe und überhaupt erstmal für die Idee :slight_smile:

Hätte mich/uns zwar interessiert, was genau bei dir nicht in Ordnung war. Aber naja, es läuft, alles gut :slight_smile:

Viel Spaß damit :slight_smile:
-Chris-

Wäre es möglich, dass du uns mitteilst im ungefähren was das Problem war?
Weil ich hänge auch dort fest wo du mal warst…

Gruß

Hallo da draussen,
nun hänge ich hies schon seit Tagen damit rum, herauszufinden, wie ich dieses WebFrontStart.sh Skript richtig zum Laufen bekomme. Leider stoße ich immer wieder auf Mauern (=Probleme).
Ich habe alles exakt so installiert und eingestellt, wie in der PDF angegeben.

  1. [li]1. Problem: Trage ich das Skript in /etc/xdg/lxsession/LXDE-pi/autostart ein, passiert rein gar nichts. Nach längerem Probieren und recherchieren habe ich es Erstellen einer Datei ~/.config/autostart/WebFrontStart.desktop mit Inhalt
    [/li]
    [Desktop Entry] Name=WebFrontStart Comment=Starts WebFront for Home auto Type=Application Exec=bash WebFrontStart.sh Terminal=true
    hinbekommen (oder Eintrag in ~/.config/lxsession/LXDE-pi/autostart)
    [li]2. Problem: Nutze ich dem Chromium Browser, so wird der Fullscreenmodus beim Autostart nicht aktiviert. Rufe ich das Skript jedoch manuell auf, so klappt alles prima!
    [/li][li]3. Problem: Nutze ich den Epiphany Browser, so bekomme ich beim Autostart eine Fehlermeldung: „Ups, die Seite 192.168.178.2:82 kann nicht aufgerufen werden“. Starte ich das Ganze wieder manuell, klappt alles prima!
    [/li]Ach ja, ich habe zwei PI 3 am laufen. Auf einem klappt der automatische Aufruf meistens, auf dem anderen kommt die besagte Fehlermeldung.

Hat jemadn eine Idee?

Meine WebFrontStart.sh für Chromium:

#!/bin/bash
CHECK=0

## Als 1. wird gewartet bis eine Netzwerkverbindung (LAN/WLAN) besteht
## Gegebenenfalls auf eure Netzwerkinterfaces anpassen (eth0, wlan0, ...)
while [ $CHECK -eq 0 ]; do
        if ifconfig eth0 | grep inet; then
                        CHECK=1;
                        ipadd="eth0"
        fi
        if ifconfig wlan0 | grep inet; then
                        CHECK=1;
                        ipadd="wlan0"
        fi
done

unclutter -display :0 -noevents -grab &

## In der nächsten Zeile die Adresse auf eure IPS-WebFront-URL anpassen
chromium-browser "https://192.168.178.2:82/#37312" &

## Nach 10 Sekunden wird nach dem offenen Browserfenster gesucht
sleep 10
xdotool search --class google-chrome windowactivate

## Mit F11 wird der Browser in den Fullscreen-Modus gebracht
xdotool key F11

while ps ax|grep -v grep| grep google-chrome && ifconfig $ipadd | grep inet; do
        sleep 10
        echo "still sleepin";
done

## Wenn man die "sudo shutdown -r now" Zeile nicht auskommentiert,
## dann kann man nur den Browser nutzen, sobald dieser geschlossen
## wird, dann wird der Raspberry automatisch neugestartet und das WebFront wird wieder geladen
#sudo shutdown -r now

Meine WebFrontStart.sh für Epiphany:

#!/bin/bash
CHECK=0

## Als 1. wird gewartet bis eine Netzwerkverbindung (LAN/WLAN) besteht
## Gegebenenfalls auf eure Netzwerkinterfaces anpassen (eth0, wlan0, ...)
while [ $CHECK -eq 0 ]; do
        if ifconfig eth0 | grep inet; then
                        CHECK=1;
                        ipadd="eth0"
        fi
        if ifconfig wlan0 | grep inet; then
                        CHECK=1;
                        ipadd="wlan0"
        fi
done

## Die nächsten Zeilen braucht man bei der Verwendung von Epiphany
if [ -a /home/pi/.config/epiphany/session_state.xml ];
        then
                rm /home/pi/.config/epiphany/session_state.xml;
fi

unclutter -display :0 -noevents -grab &

## In der nächsten Zeile die Adresse auf eure IPS-WebFront-URL anpassen
epiphany "https://192.168.178.2:82/#37312" &

## Nach 10 Sekunden wird nach dem offenen Browserfenster gesucht
sleep 10
xdotool search --class epiphany windowactivate

## Mit F11 wird der Browser in den Fullscreen-Modus gebracht
xdotool key F11

while ps ax|grep -v grep| grep epiphany && ifconfig $ipadd | grep inet; do
        sleep 10
        echo "still sleepin";
done

## Wenn man die "sudo shutdown -r now" Zeile nicht auskommentiert,
## dann kann man nur den Browser nutzen, sobald dieser geschlossen
## wird, dann wird der Raspberry automatisch neugestartet und das WebFront wird wieder geladen
#sudo shutdown -r now

Was genau macht eigentlich der Code

xdotool search --class epiphany windowactivate

?
Ja, er sucht nach dem Fenster des entsprechenden Browsers. Was hat es allerdings für Konsequenzen, wenn das Fenster nicht gefunden wird? Wird dann der nächste oder die nächsten Befehle nicht ausgeführt?

Moin,
Andreas

Ok, eines ist mir gerade gelungen!

Wenn ich die Wartezeit in

## Nach 10 Sekunden wird nach dem offenen Browserfenster gesucht
sleep 10
xdotool search --class google-chrome windowactivate

verdopple, dann klappt der Fullscreen Modus beim Chromium Browser. Er hat wohl etwas lange mit dem Hochfahren gebraucht!

## Nach 10 Sekunden wird nach dem offenen Browserfenster gesucht
sleep 20
xdotool search --class google-chrome windowactivate

Guten Abend,

ich hab mir das mal nachgebaut, bisher allerdings nur aufm Schreibtisch als Testobjekt.

Konfiguration: RPi3, schnelle SD-Karte, 10,1 Zoll Touchscreen, Raspbian, und Chromium. Chromium startet direkt aus der Konsole im Kioskmodus wie in #24 von mr_cg beschrieben. Bildschirmschoner hab ich auch erfolgreich deaktiviert, garnicht so einfach. Bei einer Sache komme ich jetzt nicht weiter, vielleicht hat jemand einen Tip ?

Ich möchte gerne den Bildschirm aus IPS steuern können (An, Aus). Man kann auf der Konsole mit

vcgencmd display_power 1

bzw.

vcgencmd display_power 0

den HDMI Ausgang ein und ausschalten.

Die Code-Zeile also in einem Script auf dem Pi abgelegt. Das Script auf dem Pi stosse ich über den IPS Server (Win Server 2012) mithilfe einer Batch Datei und plink (Putty) an:

plink.exe -ssh -pw passwort pi@AdressevomPI /home/pi/hdmiaus.sh

Das alleine finde ich schon ziemlich „von hinten durch die Brust ins Auge“ … aber geht nicht einfacher weil Windows nativ kein SSH kann, oder ? bzw. ich auch nicht weiss wie ich sonst ohne über ssh zu gehen praktikabel von dem Windows zu dem Pi komme … Diese Batch Dateien kann ich jedenfalls manuell zuverlässig ausführen. Nun kommt IPS ins Spiel:

IPS_ExecuteEx("C:\\IP-Symcon\\Putty\\moniaus.bat", "", false, false, -1);

Bei den Parametern von IPS_ExecuteEx bin ich mir nicht ganz sicher was ich nehmen muss in dem Fall, aber obiger Code hat heute mittag sicher funktioniert. Jetzt aber nicht mehr, von Hand ausgeführt funktionieren die .bat immer noch, nur aus IPS nicht mehr … was ist zu tun ?

Moin Inspra!

Es geht auch einfacher und schöner als über IPS_ExecuteEx :slight_smile:

Mit der phpseclib :cool: Genauer mit Net/SSH2
Infos dazu findest du reichlich im Forum und im Internet. Unter anderem hier:
SSH per PHP z.B. um AppleScript auszuführen mit Siri Beispiel :slight_smile: - Seite 7

Viele Grüße,
Chris

Danke für den Hinweis, hatte das auch schon gefunden gehabt, dachte aber irgendwie immer das geht nur auf Linux Systemen. Aber geht wunderbar, Danke !

folgender aus dem oben verlinkten Thread geklauter Codeschnipsel schaltet jetzt erfolgreich den HDMI Ausgang aus, wenn auch mit Fehlern, aber die haben hier im Thread denke ich ncihts zu suchen, mache im phpseclib Thread weiter.

<?

include('/ssh/SSH2.php');

$ssh = NEW Net_ssh2('192.168.5.28');
$username=UTF8_encode('pi');
$password=UTF8_encode('passwort');

IF(!$ssh->login ($username,$password))
{
       exit('Login*Failed');
}


$ssh->exec("vcgencmd display_power 0"); 

?>