AppleScript:execute command via netcat: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 38: | Zeile 38: | ||
[[Kategorie:HOWTOS]] | [[Kategorie:HOWTOS]] | ||
[[Kategorie:Code Snippets]] |
Version vom 11. Mai 2013, 23:05 Uhr
Systemvoraussetzungen: MacOS X
Ist netcatauf dem FHEM-System installiert, lassen sich viele Funktionen von fhem einfach via AppleScript realisieren.
z.B.: Will man den Schaltzustand eines Geräts namens "KS300" abfragen könnte man folgendermaßen vorgehen:
1. Den fhem-Befehl können wir - zum vereinfachten Lesen - in der Variable "cmd" speichern (Achtung: Anführungszeichen beachten, da der Name ja auch Leerzeichen, etc. enthalten kann).
set cmd to "'{Value(" & quote & "KS300" & quote & ")};quit'"
Nun wird der fhem-Befehl mit dem Shell-Befehl (in diesem Falle "echo") kombiniert:
set telnetCmd to "echo " & cmd & " | netcat 192.168.1.1 7072"
falls das 'nc' alias installiert ist, kann man natürlich auch:
set telnetCmd to "echo " & cmd & " | nc 192.168.1.1 7072"
Das funktioniert natürlich auch mit xmllist, jsonlist, etc:
set telnetCmd to "echo jsonlist | nc 192.168.1.1 7072"
Anschliessend wird der Befehl via Shell ausgeführt. Das Ergebnis erhält man dabei in der AppleScript Variable 'the result'.
do shell script telnetCmd set x to the result
So lassen sich viele Optionen von fhem aus Applescript (und damit aus jedem AppleScript-fähigen MacOS X Programm) nutzen.
Beispiel:
set cmd to "'{Value(" & quote & "KS300" & quote & ")};quit'" set telnetCmd to "echo " & cmd & " | netcat 192.168.1.1 7072" do shell script telnet set x to the result tell application "Microsoft Excel" tell document 1 tell sheet 1 set value of cell "A1" to x set value of cell "F1" to "=Summe(A1:E1)" end tell end tell end tell