FHEM Forum

FHEM => Automatisierung => Thema gestartet von: matze.h am 14 Januar 2017, 14:50:42

Titel: solved: notify system Aufruf mit Parameterübergabe
Beitrag von: matze.h am 14 Januar 2017, 14:50:42
Hallo FHEM-Gemeinde,

da erster Post hier möchte ich mir zu allererst bei allen die aktiv an FHEM und dessen Komponenten mitgearbeitet haben herzlich bedanken! Ich nutze das System nun mehr seit über 7 Jahren zur Haus-Steuerung und Speicherung von Daten wie Temperaturen, Stromverbrauch, etc.

Da ich nach längerer Zeit den Heim-Server neu aufsetzen muss, habe ich mir ein frisches 16.04 Ubuntu auf einem Pine64 aufgesetzt. FHEM 5.7 mit HMLAN und CUL läuft darauf wunderbar. Allerdings funktioniert meine auf fhem 5.6 verwendeten notify zur Übergabe von Daten an ein Python-Skript nicht mehr in der neuen Version.

Bisher hatte ich immer folgende notify verwendet:

define HobbyDB notify Hobby:T.* "/usr/local/bin/fhemtodb.rb @ "%""


was mir dann folgende Systemaufrufe generiert hatte

/usr/local/bin/fhemtodb.rb Hobby T: 21.3  H: 55.5

die dann in eine DB geschrieben und über ein Ruby-Projekt visualisiert wurden.

Jetzt scheinen es nur noch Systemaufruf der Natur zu sein:

/usr/local/bin/fhemtodb.rb @ %

Auch eine Umstellung auf verschiedene Varianten mit {system("")} hatten keinen Erfolg erzielt.

define HobbyDB notify Hobby:T.* {system("/usr/local/bin/fhemtodb.rb @ &")}

Ziel ist es einen Systemcall der Form

/usr/local/fhemtodb.rb {Devicename} {Werte}

zu haben.

Habe ich etwas entscheidendes übersehen? Fhem-Plugin?

Vielen Dank für Eure Mühen!

Matze
Titel: Antw:notify system Aufruf mit Parameterübergabe
Beitrag von: stromer-12 am 14 Januar 2017, 17:21:40
Das mit @ und % hat sich vor einiger Zeit geändert. Du musst jetzt $NAME und $EVENT verwenden.
Titel: Antw:notify system Aufruf mit Parameterübergabe
Beitrag von: rudolfkoenig am 14 Januar 2017, 19:42:59
Alternativ "attr global featurelevel 5.6" setzen.
Das hat natuerlich andere Konsequenzen.
Titel: Antw:notify system Aufruf mit Parameterübergabe
Beitrag von: matze.h am 15 Januar 2017, 11:47:24
Vielen Dank für Eure schnelle Antwort.

So sieht es jetzt aus.

define HobbyDB notify Hobby:T.* {system("/usr/local/bin/fhemtodb.rb $NAME '$EVENT' &")}

Habe auch versucht es in der Doku oder Wiki zu finden, leider selbst jetzt mit dem Wissen der beiden Variablen bin ich nicht fündig geworden. Evtl. kann noch jemand den/die relevanten Stellen hier verlinken, dann ist der Thread perfekt.

Vielen Dank!
Titel: Antw:solved: notify system Aufruf mit Parameterübergabe
Beitrag von: rudolfkoenig am 15 Januar 2017, 12:42:40
ZitatHabe auch versucht es in der Doku oder Wiki zu finden, leider selbst jetzt mit dem Wissen der beiden Variablen bin ich nicht fündig geworden.

Das wundert mich, und wuerde gerne wissen wo du gesucht hast. In https://fhem.de/commandref.html#notify (https://fhem.de/commandref.html#notify) steht doch:
Zitat

       
  • in the command section you can access the event:

            
    • The variable $EVENT will contain the complete event, e.g. measured-temp: 21.7 (Celsius)
    • $EVTPART0,$EVTPART1,$EVTPART2,etc contain the space separated event parts (e.g. $EVTPART0="measured-temp:", $EVTPART1="21.7", $EVTPART2="(Celsius)". This data is available as a local variable in perl, as environment variable for shell scripts, and will be textually replaced for FHEM commands.
    • $NAME and $TYPE contain the name and type of the device triggering the event, e.g. myFht and FHT
  • Note: the following is deprecated and will be removed in a future release. It is only active for featurelevel up to 5.6. The described replacement is attempted if none of the above variables ($NAME/$EVENT/etc) found in the command.

            
    • The character % will be replaced with the received event, e.g. with on or off or measured-temp: 21.7 (Celsius)
      It is advisable to put the % into double quotes, else the shell may get a syntax error.
    • The character @ will be replaced with the device name.
...
Diesen Text kriegt man auch, wenn man in FHEMWEB, notify DetailAnsicht auf Device-Help klickt.
Titel: Antw:solved: notify system Aufruf mit Parameterübergabe
Beitrag von: matze.h am 16 Januar 2017, 22:22:22
hmmm... jertzt sehe ich es auf den ersten Blick. Hatte vermutlich nur unter Befehle und nicht unter Hilfs-Module geschaut gehabt ...