FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: AndreasMair am 29 November 2017, 16:12:05

Titel: Browser per Fhem aus aufrufbar ?
Beitrag von: AndreasMair am 29 November 2017, 16:12:05
Hallo,
in einer Console funktioniert der Befehl unter raspberry pi und betriebssystem rasberian problemlos:
ich habe in Fhem definiert:
google:on { system ("/usr/bin/chromium-browser --start-maximized http://www.google.de" ) }

und erhalte im Log von Fhem:
2017.11.28 17:57:15 3: on_ELRO_11111_1 return value: -1
[1838:1838:1128/180312.508655:ERROR:browser_main_loop.cc(582)] Failed to put Xlib into threaded mode.
(chromium-browser:1838): Gtk-WARNING **: cannot open display:


Auch probiert hab ich schon ... aber ohne Erfolg.
google:on { system ("export DISSLAY=:0.0" ) }
google:on { system ("/usr/bin/chromium-browser --start-maximized http://www.google.de" ) }

2017.11.28 18:03:12 3: on_google return value: -1
2017.11.28 18:13:01 1: PERL WARNING: Can't exec "export": Datei oder Verzeichnis nicht gefunden at (eval 31) line 1.
2017.11.28 18:13:01 3: eval: my $SELF='on_google';my $TYPE='dummy';my $EVTPART0='on';my $NAME='google';my $EVENT='on';{ system ("export DISSLAY=:0.0" ) }
google:on { system ("/usr/bin/chromium-browser --start-maximized http://www.google.de" ) }
[2741:2741:1128/181302.162830:ERROR:browser_main_loop.cc(582)] Failed to put Xlib into threaded mode.

(chromium-browser:2741): Gtk-WARNING **: cannot open display:
Titel: Antw:Browser per Fhem aus aufrufbar ?
Beitrag von: Otto123 am 29 November 2017, 16:30:57
Hi,

gibt es dass wirklich: rasberian ?  :D

In der Console arbeitest Du mit dem User pi.
FHEM arbeitet unter dem User fhem.

fhem hat nach meinem Verständnis normalerweise keine "Anmeldeumgebung"
Das ist ja auch im Prinzip was die Fehlermeldung sagt.

Was willst Du damit erreichen?

Gruß Otto
Titel: Antw:Browser per Fhem aus aufrufbar ?
Beitrag von: rudolfkoenig am 29 November 2017, 16:38:49
- ich habe Schwierigkeiten einen Fall vorzustellen, wo das starten eines Browsers aus FHEM heraus sinn macht
- { system("...") } ist die schlechte Variante von "...", weil es FHEM blockiert. Doku lesen ist manchmal sinnvoll, siehe https://fhem.de/commandref.html#command (https://fhem.de/commandref.html#command)
- Mit export setzt man Umgebungsvariablen, diese Werden an die "Kinder" vererbt. Wenn man zwei system() Aufrufe hat, dann sind das jeweils "Brueder" (um in diesem Vergleichswelt zu bleiben), und vom Onkel erbt man nicht. Richtig ist "export DISPLAY=:0;; /usr/bin/..."
- DISPLAY != DISSLAY
- system fuehrt, je nach Inhalt, das Programm direkt aus, oder uebergibt die Ausfuehrung an einem Shell. export ist ein shell builtin, deswegen die Fehlermeldung mit "can't exec"
Titel: Antw:Browser per Fhem aus aufrufbar ?
Beitrag von: AndreasMair am 29 November 2017, 16:58:59
Sorry... Tippfehler. Ich hab raspbian.
Was ich machen will... einfach Alex sagen.... Google an...
und es startet dann den fernseher, den raspbery pi, schaltet das inputsignal des fernsehers um (was schon funktioniert)
nur eben mit dem browser starten klappt das nicht... (Google ist nur ein test. ich hab natürlich da noch mehr vor...)

Ich verstehe die Fehlermeldung nicht.  Warum ist der user / Anmeldeumgebung entscheident ? Was ich dazu finde ist dass chromium denselben fehler nach einem update ausgeworfen hat, aber das kann es ja nicht sein, weil der Befehl über console funktioiniert.
Andere Befehle in der Shell abzsetzen sind kein Problem, so setze ich zum Beispiel ein commando ab, um ein Funksignal abzusetzen.... funktioniert.