(gelöst) Python Script über Shell funktioniert aber aus FHEM NICHT! Warum?

Begonnen von Ma_Bo, 06 Januar 2018, 01:01:39

Vorheriges Thema - Nächstes Thema

Ma_Bo

Hallo Leute,

ich habe hier

Zitathttps://github.com/Pat-Carter/stream2chromecast

die Python Dateien um meine Google Home Geräte z.B. per Befehl lauter oder leiser zu stellen.
Wenn ich diesen Befehl über die Shell eingebe, dann funktioniert er:

Befehl:
python /opt/fhem/chromecast/stream2chromecast.py -devicename 192.168.178.111 -setvol 0.2
Rückmeldung:
Zitatip_addr: 192.168.178.111 device name: Büro

Gebe ich folgendes über die FHEM Command ein:
"python /opt/fhem/chromecast/stream2chromecast.py -devicename 192.168.178.111 -setvol 0.2"

kommt folgende Fehlermeldung:
Zitatip_addr: 192.168.178.111 device name: Traceback (most recent call last):
  File "/opt/fhem/chromecast/stream2chromecast.py", line 798, in <module>
    run()
  File "/opt/fhem/chromecast/stream2chromecast.py", line 768, in run
    set_volume(float(args[1]), device_name=device_name)
  File "/opt/fhem/chromecast/stream2chromecast.py", line 656, in set_volume
    CCMediaController(device_name=device_name).set_volume(v)
  File "/opt/fhem/chromecast/cc_media_controller.py", line 45, in __init__
    self.host = self.get_device(device_name)
  File "/opt/fhem/chromecast/cc_media_controller.py", line 69, in get_device
    print "ip_addr:", host, "device name:", cc_device_finder.get_device_name(host)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 1: ordinal not in range(128)

Aber warum funktioniert es über die einfache Linux Kommandozeile und über FHEM nicht...?

Ein:

ls -lha /opt/fhem/chromecast

liefert folgendes:

Zitatinsgesamt 96K
drwxr-xr-x  2 fhem fhem 4,0K Jan  6 00:11 .
drwxrwxrwx 17 fhem root 4,0K Jan  6 00:08 ..
-rwxr-xr-x  1 fhem fhem 9,5K Jan  6 00:08 cc_device_finder.py
-rwxr-xr-x  1 fhem fhem 6,7K Jan  6 00:11 cc_device_finder.pyc
-rwxr-xr-x  1 fhem fhem  15K Jan  6 00:08 cc_media_controller.py
-rwxr-xr-x  1 fhem fhem  12K Jan  6 00:11 cc_media_controller.pyc
-rwxr-xr-x  1 fhem fhem 5,1K Jan  6 00:08 cc_message.py
-rwxr-xr-x  1 fhem fhem 4,6K Jan  6 00:11 cc_message.pyc
-rwxr-xr-x  1 fhem fhem  24K Jan  6 00:08 stream2chromecast.py

Kann mir da jemand weiterhelfen...?

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

MadMax-FHEM

Ich kenne mich ja mit python nicht so aus aber vielleicht hat es was mit dem "Environmement" zu tun.

Mit welchem User führst du es denn auf der Console aus?

Wenn anderer User, dann sind da vielleicht andere Pfade, Umgebungsvariablen etc.

Ansonsten habe ich keine Idee...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Ma_Bo

NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

herrmannj

Ein Fehler im py script. Benenne das device von "Büro" in "Buero" um.

MadMax-FHEM

Mal eine andere Frage: das GOOGLECAST-Modul kommt nicht in Frage?

https://forum.fhem.de/index.php/topic,45505.0.html

Damit lässt sich die Lautstärke und vieles mehr steuern...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Ma_Bo

Das ist eine Alternative, werde ich nächste Woche mal testen...


Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Wernieman

Nur mals so als Info:
Wenn Du in der ersten zeile Deines Scryptes den Interptreter angibst, brauchst Du es nicht über phyton zu starten.
Also z.B.
#!/usr/bin/python
...
...
...


Dann reicht das Starten mit "Dein-Tolles-Script.py"

Du bist Dir Sicher, das die Umgebung, d.h. User Manuell und User FHEM wirklich der gleiche ist?
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Ma_Bo

Zitat von: Wernieman am 07 Januar 2018, 11:51:52
Nur mals so als Info:
Wenn Du in der ersten zeile Deines Scryptes den Interptreter angibst, brauchst Du es nicht über phyton zu starten.
Also z.B.
#!/usr/bin/python
...
...
...


Dann reicht das Starten mit "Dein-Tolles-Script.py"

Du bist Dir Sicher, das die Umgebung, d.h. User Manuell und User FHEM wirklich der gleiche ist?
Danke für den Hinweis. Das Script habe ich ja nicht erstellt, es ist von dem angegebenen Link. Werde ich aber mal dort einfügen.

Ja, mit dem User bin ich mir eigentlich sicher.
Hab ich ne Möglichkeit zu prüfen, ob FHEM  berechtigt ist?
Aber für mich sieht es so aus, als ob er das Script ausführt, dann aber auf ein weiteres zugreift und dort der Fehler entsteht.


Tapatalk iPhone, daher kurz gehalten.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

MadMax-FHEM

Zitat von: Ma_Bo am 07 Januar 2018, 12:01:42
Ja, mit dem User bin ich mir eigentlich sicher.
Hab ich ne Möglichkeit zu prüfen, ob FHEM  berechtigt ist?
Aber für mich sieht es so aus, als ob er das Script ausführt, dann aber auf ein weiteres zugreift und dort der Fehler entsteht.


Tapatalk iPhone, daher kurz gehalten.

Daher ja die Frage nach der "Umgebung"...

Die kannst du mittels "printenv" ausgeben lassen...

Mach das doch mal per fhemweb und direkt auf der Linux Console wo das Script ja tut...

Wobei ich nicht weiß, ob jetzt dann Python noch mal eine andere Umgebung "setzt/aufbaut"...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Ma_Bo

NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

MadMax-FHEM

Keine Ahnung.

Aber wenn die Umgebung identisch ist (wovon du ausgehst) sollte kein Unterschied sein...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

herrmannj


Ma_Bo

NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.