AppleScript:execute command via netcat: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Krikan (Diskussion | Beiträge) (FHEM(R)) |
||
Zeile 1: | Zeile 1: | ||
== Systemvoraussetzungen: '''MacOS X''' == | == Systemvoraussetzungen: '''MacOS X''' == | ||
Ist ''netcat''auf dem FHEM-System installiert, lassen sich viele Funktionen von | Ist ''netcat''auf 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: | z.B.: Will man den Schaltzustand eines Geräts namens "KS300" abfragen könnte man folgendermaßen vorgehen: | ||
1. Den | 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). | ||
<nowiki>set cmd to "'{Value(" & quote & "KS300" & quote & ")};quit'"</nowiki> | <nowiki>set cmd to "'{Value(" & quote & "KS300" & quote & ")};quit'"</nowiki> | ||
Nun wird der | Nun wird der FHEM-Befehl mit dem Shell-Befehl (in diesem Falle "echo") kombiniert: | ||
<nowiki>set telnetCmd to "echo " & cmd & " | netcat 192.168.1.1 7072"</nowiki> | <nowiki>set telnetCmd to "echo " & cmd & " | netcat 192.168.1.1 7072"</nowiki> | ||
Zeile 20: | Zeile 20: | ||
<nowiki>do shell script telnetCmd | <nowiki>do shell script telnetCmd | ||
set x to the result</nowiki> | set x to the result</nowiki> | ||
So lassen sich viele Optionen von | So lassen sich viele Optionen von FHEM aus Applescript (und damit aus jedem AppleScript-fähigen MacOS X Programm) nutzen. | ||
Beispiel: | Beispiel: |
Aktuelle Version vom 27. Januar 2017, 16:09 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