FHEM Forum

FHEM => Automatisierung => Thema gestartet von: Nimral am 29 Dezember 2017, 23:02:53

Titel: FHEM von extern ansteuern
Beitrag von: Nimral am 29 Dezember 2017, 23:02:53
Hi allseits,

nachdem die Sufu mir nicht weitergeholfen hat, frage ich mal direkt: wie kann man in FHEM eingebundene Funkschalter von extern per Programm antriggern (Windows)?

Hintergrund: ich habe eine Überwachungskamera, besser, eine ganze Batterie davon, die über eine PC Software (iSpy) ausgelesen werden. iSpy hat auch eine leistungsfähige Bewegungserkennung die weit besser ist als das was in (bezahlbaren) Kameras eingebaut ist. Neben diversen Standardaktionen (Aufnahme starten, E-Mail senden, usw) kann iSpy bei Bewegung auch ein beliebiges Programm/Script starten.

Ich möchte gerne die Außenbeleuchtung anschalten, die bereits in FHEM integriert ist (FS20 Funkschalter über CUL/CUNO).

Wo finde ich Infos, wie das "Missing Link", also das von außen aufrufbare Script, realisiert und eingebunden werden muss?

Thx, Armin.
Titel: Antw:FHEM von extern ansteuern
Beitrag von: Otto123 am 29 Dezember 2017, 23:22:50
Hallo Armin,

eine Möglichkeit: per Webrequest - mit Powershell
$Hostname="FEHMServer"
$Hostname=$Hostname + ":8083"
$Name="Objekt in FHEM"
$Event="Event für FHEM"

Set-Location $PSScriptRoot

# out-nulll verhindert Ausgaben und verhindert Sicherheitsmeldungen vom System
$wp=Invoke-WebRequest -UseBasicParsing -Uri "http://$Hostname/fhem?XHR=1"
$token = $wp.Headers["X-FHEM-csrfToken"]

$URL="http://$Hostname/fhem?cmd=set%20$Name%20$Event&fwcsrf=$token"
Invoke-WebRequest -UseBasicParsing -Uri $URL | out-null


Das ist bloß ein Beispiel aus einem meiner Scripts extrahiert. Man muss sich um den csrf Token kümmern deswegen so umfangreich.

Gruß Otto
Titel: Antw:FHEM von extern ansteuern
Beitrag von: Fixel2012 am 29 Dezember 2017, 23:39:09
Eine weitere (meiner Meinung einfacherer) wäre, eine Verbindung mit Telnet auf zu bauen und die entsprechende Aktion auszuführen.
Titel: Antw:FHEM von extern ansteuern
Beitrag von: Otto123 am 29 Dezember 2017, 23:45:12
Telnet Scripte - Hast Du ein praktisches Beispiel? Für Windows?  :)
Titel: Antw:FHEM von extern ansteuern
Beitrag von: Fixel2012 am 29 Dezember 2017, 23:53:54
Oops, da habe ich wohl nicht richtig gelesen  ???

Stellt sich via Telnet auf Windows tatsächlich als nicht so leicht raus.

Würde es nicht gehen einen Umweg über z.B. perl zu nehmen, und dort die Telbet lib zu benutzen? Dann müsste man nur ein Perl script aufrufen. Dazu muss natürlich Perl installiert sein.

Ist nur eine Idee, ob und wie genau das geht...  ;D
Titel: Antw:FHEM von extern ansteuern
Beitrag von: Otto123 am 29 Dezember 2017, 23:56:01
Naja Powershell ist einfach da :) auch wenn nicht so geläufig.
Titel: Antw:FHEM von extern ansteuern
Beitrag von: Frank_Huber am 30 Dezember 2017, 11:02:58
Zitat von: Otto123 am 29 Dezember 2017, 23:45:12
Telnet Scripte - Hast Du ein praktisches Beispiel? Für Windows?  :)

Hab ich, über ein vbs script.

Inhalt von "Scriptname.vbs":
set sh=WScript.CreateObject("WScript.Shell")
sh.run "Telnet 192.168.xxx.xxx 7772" 
WScript.Sleep 200
sh.SendKeys "********"&vbcr
WScript.Sleep 200
sh.SendKeys "set FW_Alarm on"&vbcr
WScript.Sleep 200
sh.SendKeys "quit"&vbcr
WScript.Sleep 200
sh.SendKeys "exit"&vbcr


Aufruf über:
wscript.exe C:\Scriptaname.vbs