Rückgabewert eines Shell-Befehles als State setzen

Begonnen von Ralf-F, 04 August 2018, 03:36:45

Vorheriges Thema - Nächstes Thema

Ralf-F

Hallo,
ich komme einfach mit der Syntax nicht klar. Ich habe viel probiert und nichts klappt.
Ich will einfach das, was ein Shellbefehlt wie z.B. 'uptime -s' (gibt Datum und Zeit des letzten Systemstarts aus) ausgibt in ein Device als State geschrieben wird.
set LetzterSystemStart system('uptime -s')
Klar, so steht dann als state von LetzterSystemStart der Text "system('uptime -s')"
Ich hätte aber gern das dort, was 'uptime -s' auf Shellebne zurückgibt in LetzterSystemStart
Also wie muss das notify
defmod setLetzterStartSystem notify TestDummy1:on set LetzterStartSystem system('uptime -s')
richtig geschrieben werden?

Kennt jemand die Syntax


CoolTux

system ist eine Perl Funktion welche von einem Perlmodul zur Verfügung gestellt wird.

https://perldoc.perl.org/functions/system.html
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Ralf-F

Hallo,
ja, schon gelesen. Mir ist vollkommen klar, dass das so wie ich schrieb nicht geht. Geht auch nicht mit geschweiften Klammern, ... .
Ich finde einfach die Lösung nicht. Darum (und nur darum) habe ich es so einfach geschrieben.
Ich hoffe, dass wenn doch überall steht wie es richtig geht, mir einfach jemand mal die Klammern so setzt, dass es geht.
Also nicht nur, dass die Funktion aufgerufen wird, sondern auch das Ergebnis zurückgeschrieben wird.

Wenn ich dann nochmal lese, versteh ich vielleicht auch wo mein Fehler ist.

Danke Ralf
--

JoWiemann

system() gibt nur den Erfolgsstatus zurück. qx() das Ergebnis des Funktionsaufrufs. Tausend mal im Forum erklärt.


Gesendet von iPhone mit Tapatalk

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Ralf-F

Hallo Otto,
wollte immer mal Danke sagen, da ich so das Problem lösen konnte. So richtig ging das nicht, aber dann mit:
defmod setLetzterStartSystem notify global:INITIALIZED { my $result = qx "uptime -s";; fhem "setreading LetzterStartSystem state $result";; }

So habe ich dann immer im dummy LetzterStartSystem das letzte Startdatum der PI wie z.B. STATE = 2019-09-20 03:18:01

Und dann noch letzter Neustart der FHEM:
defmod setLetzterStartFHEM notify global:INITIALIZED {readingsSingleUpdate($main::defs{LetzterStartFHEM}, 'state', TimeNow(), 1)}

So habe ich dann immer im dummy LetzterStartFHEM das letzte Startdatum der FHEM wie z.B. STATE = 2019-10-19 01:39:10

Grüße Ralf
--