AppleScript:execute command via netcat: Unterschied zwischen den Versionen

Aus FHEMWiki
(Die Seite wurde neu angelegt: „== Systemvoraussetzungen: '''MacOS X''' == Ist ''netcat''auf dem FHEM-System installiert, lassen sich viele Funktionen von fhem einfach via AppleScript realisi…“)
 
(FHEM(R))
 
(2 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
== Systemvoraussetzungen: '''MacOS X''' ==
== Systemvoraussetzungen: '''MacOS X''' ==
Ist ''netcat''auf dem FHEM-System installiert, lassen sich viele Funktionen von fhem einfach via AppleScript realisieren.
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 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).
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(" &amp; quote &amp; "KS300" &amp; quote &amp; ")};quit'"</nowiki>
  <nowiki>set cmd to "'{Value(" &amp; quote &amp; "KS300" &amp; quote &amp; ")};quit'"</nowiki>
Nun wird der fhem-Befehl mit dem Shell-Befehl (in diesem Falle "echo") kombiniert:
Nun wird der FHEM-Befehl mit dem Shell-Befehl (in diesem Falle "echo") kombiniert:


  <nowiki>set telnetCmd to "echo " &amp; cmd &amp; " | netcat 192.168.1.1 7072"</nowiki>
  <nowiki>set telnetCmd to "echo " &amp; cmd &amp; " | 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 fhem aus Applescript (und damit aus jedem AppleScript-fähigen MacOS X Programm) nutzen.
So lassen sich viele Optionen von FHEM aus Applescript (und damit aus jedem AppleScript-fähigen MacOS X Programm) nutzen.


Beispiel:
Beispiel:
Zeile 36: Zeile 36:
end tell
end tell
end tell</nowiki>
end tell</nowiki>
[[Kategorie:HOWTOS]]
[[Kategorie:Code Snippets]]

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