FHEM von extern ansteuern

Begonnen von Nimral, 29 Dezember 2017, 23:02:53

Vorheriges Thema - Nächstes Thema

Nimral

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.

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Fixel2012

Eine weitere (meiner Meinung einfacherer) wäre, eine Verbindung mit Telnet auf zu bauen und die entsprechende Aktion auszuführen.
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Otto123

Telnet Scripte - Hast Du ein praktisches Beispiel? Für Windows?  :)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Fixel2012

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
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Otto123

Naja Powershell ist einfach da :) auch wenn nicht so geläufig.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Frank_Huber

#6
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