FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: riker1 am 13 August 2018, 11:07:38

Titel: (SOLVED)Globale Variable (Dummy) in System command übergeben Value?
Beitrag von: riker1 am 13 August 2018, 11:07:38
Hallo
würde gerne mit Value die Variable V_dummy1 übergeben.

{system('ssh -t pi@192.168.0.51 python.sh pi v1 v2 ".Value("V_dummy1")."')}

Leider wird sie so nicht aufgelöst.

enthalten ist es im Define:
defmod ReStart_Temp_Rpi51_V notify ssh_exe:ReStart_Temp_Rpi51_V {system('ssh -t pi@192.168.0.51 python.sh pi v1 v2 ".Value("V_dummy1")."')}

Was mache ich falsch? Danke

update

im log steht

ReStart_Temp_Rpi51_V exec {system('ssh -t pi@192.168.0.51 python.sh pi v1 v2  ".Value("V_dummy1")."')}
Titel: Antw:Globale Variable (Dummy) in System command übergeben Value?
Beitrag von: Otto123 am 13 August 2018, 12:02:19
Hi,

die Funktion da direkt reinschreiben, keine Ahnung ob und wie das geht.

Ich würde so versuchen (für die DEF):
{my $val = Value("V_dummy1"); system('ssh -t pi@192.168.0.51 python.sh pi v1 v2 '.$val)}

Gruß Otto
Titel: Antw:Globale Variable (Dummy) in System command übergeben Value?
Beitrag von: riker1 am 13 August 2018, 12:08:09
Zitat von: Otto123 am 13 August 2018, 12:02:19
Hi,

die Funktion da direkt reinschreiben, keine Ahnung ob und wie das geht.

Ich würde so versuchen (für die DEF):
{my $val = Value("V_dummy1"); system('ssh -t pi@192.168.0.51 python.sh pi v1 v2 '.$val)}

Gruß Otto

ok, danke, werde ich mal versuchen

Hallo Otto, im Log steht,
kann man sie die aufgelösten Variablen ausgeben lassen?
Verbose = 5


ReStart_Temp_Rpi51_V exec {my $val = Value("V_G_Thingspeak_TS");; system('ssh -t pi@192.168.0.51 python.sh pi w1_test_dht22_fhem_TS_1.4.py 91 12 $val Temp_Buero_RPI no &')}

2018.08.13 12:56:20.498 3 : ReStart_Temp_Rpi51_V return value: -1


?
Titel: Antw:Globale Variable (Dummy) in System command übergeben Value?
Beitrag von: riker1 am 13 August 2018, 13:33:53
Zitat von: Otto123 am 13 August 2018, 12:02:19
Hi,

die Funktion da direkt reinschreiben, keine Ahnung ob und wie das geht.

Ich würde so versuchen (für die DEF):
{my $val = Value("V_dummy1"); system('ssh -t pi@192.168.0.51 python.sh pi v1 v2 '.$val)}

Gruß Otto

Top, geht! Danke
Titel: Antw:(Solved)Globale Variable (Dummy) in System command übergeben Value?
Beitrag von: Otto123 am 13 August 2018, 14:06:23
Hi,

das hier ist normal
Zitat2018.08.13 12:56:20.498 3 : ReStart_Temp_Rpi51_V return value: -1
bei system Aufrufen.

Könntest Du verhindern durch
ZitatBeim system() Aufruf kann man die Ausgabe im Logfile durch eine Umleitung beim Aufruf mit >/dev/null verhindern.
Quelle (https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html)

Gruß Otto
Titel: Antw:Globale Variable (Dummy) in System command übergeben Value?
Beitrag von: riker1 am 15 August 2018, 08:53:02
Hallo Otto,

scheinbar war es doch nicht gelöst. Die Variablen kommen nicht an bei dem SSH.

{my $v_TS_TS = Value("V_G_Thingspeak_TS") ;
my $testvarzahl = 1234;
my $vdebug = Value("V_G_Python_Debug");
my $py_verbose = 123;
my $py_temp_filename = Value("V_G_Python_File_Temperatur");
my $py_rpi_user = "v_user";
system('ssh -t pi@192.168.0.51 test_python_1.sh p testsshvarv2 $v_TS_TS py_rpi_user viafhemssh   &')}




Die kommen irgendwie nicht an.

log:

2018.08.15 08:26:28.580 4: dummy set ssh_exe testsshvarv2
2018.08.15 08:26:28.601 5: Triggering testsshvarv2
2018.08.15 08:26:28.601 4: testsshvarv2 exec {my $v_TS_TS = Value("V_G_Thingspeak_TS") ;;
my $testvarzahl = 1234;;
my $vdebug = Value("V_G_Python_Debug");;
my $py_verbose = 123;;
my $py_temp_filename = Value("V_G_Python_File_Temperatur");;
my $py_rpi_user = "v_user";;
system('ssh -t pi@192.168.0.51 test_python_1.sh p testsshvarv2 $v_TS_TS py_rpi_user viafhemssh   &')}
2018.08.15 08:26:28.611 3: testsshvarv2 return value: -1
Pseudo-terminal will not be allocated because stdin is not a terminal.
1  p
2  testsshvarv2
3  py_rpi_user
4  viafhemssh
5
6
7
8



hier z.B. kommt:
$v_TS_TS

nicht an.

Inhalt ist: 33 als Zahl.

setstate V_G_Thingspeak_TS 33


Hast du hier  einen Tipp
Titel: Antw:Globale Variable (Dummy) in System command übergeben Value?
Beitrag von: Otto123 am 15 August 2018, 09:04:55
Moin,

weil Du nun etwas völlig anderes machst als wir besprochen haben. Zwischen ' ' werden Variablen Namen nicht aufgelöst sondern einfach als Text übernommen.

Ich hatte mir das mal für mich aufgeschrieben (https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html), vielleicht hilft Dir das.

Gruß Otto
Titel: Antw:Globale Variable (Dummy) in System command übergeben Value?
Beitrag von: riker1 am 15 August 2018, 14:48:22
Zitat von: Otto123 am 15 August 2018, 09:04:55
...Ich hatte mir das mal für mich aufgeschrieben, vielleicht hilft Dir das....

danke , super Beitrag, das mit den Ebenen ist echt kompliziert.....

eventuell mache ich lieber eine Scriptaufruf auf dem Fhem server und rufe dort ssh auf und reiche die Variablen so durch .

Bin am probieren.

Danke
Titel: Antw:Globale Variable (Dummy) in System command übergeben Value?
Beitrag von: riker1 am 15 August 2018, 17:57:34
Zitat von: Otto123 am 15 August 2018, 09:04:55

...Zwischen ' ' werden Variablen Namen nicht aufgelöst sondern einfach als Text übernommen.... für mich aufgeschrieben (https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html)...

Gruß Otto

...so nun hat es geklappt. die kleinen '' waren schuld.....also eigentlich ich!!

Danke für den tollen Artikel Otto und die Hilfe.

VG T