Offene Haustür als Handyanruf melden

Begonnen von Frank, 08 Januar 2014, 12:42:32

Vorheriges Thema - Nächstes Thema

Frank

Ich hab jetzt viel gestöbert, aber die richtige Lösung konnte ich bisher noch nicht implementieren.

Was ich möchte: Wenn die Haustür länger als z.B. 5 Minuten offen steht, soll meine Fritzbox mein Handy anrufen.
(Als Sensor würde ich einen FS20_TFK nehmen, oder wäre ein FHT80TF besser?)

Was ich bisher herausgefunden habe:

Anrufen über die Fritzbox am einfachsten über ein Script:
#!/bin/sh
echo "ATDT*121#01701234567" | nc 127.0.0.1 1011
sleep 10
echo "ATH" | nc 127.0.0.1 1011

Damit wird über die erste eingetragene Telefonnummer die Handynummer angerufen. Soweit ok!

Script aufrufen, wenn die Haustür länger als 5 Minuten offen ist:
define FS20_Anruf notify FS20_xxxxxx:on sleep 5*60;; "FHEM/FS20_Anruf.sh"

Das müsste so auch funktionieren, nur wie baue ich es ein, dass wenn die Tür ZWISCHENDURCH wieder zu ist, dass dann das Script NICHT aufgerufen wird. Hat da einer eine Idee?

marvin78

Du könntest ein 2. notify definieren, welches auf "Tür zu" horcht und das notify "FS20_Anruf" im Falles des Falles löscht.

Rossini600

Dafür ist meiner Meinung nach genau der Watchdog da.
Schau mal in der CommandRef.
Das erste Regex steht dann für Tür offen. Das zweite für Tür geschlossen.
Sobald der erste RegEx Fall eingetroffen ist, wird der Timer gestartet.
Wenn in dieser Zeit dann der zweite RegEx fall nicht eintritt wird das Watchdog ausgelöst.
Wenn der weiter Fall doch auftritt (Tür wieder geschlossen) wird der Watchdog wieder zürückgesetzt.
Mit    trigger <Watchdog> .    kannst du nach ausgeführten Watchdog diesen wieder starten. (Punkt hinten ist notwendig)
1 Cubietruck, 3 Raspi mit HMLan / HMUSB für Homematic, Jeelink für PCA301, Cul V3 für MAX

Fritzbox 7390 für VPN, Presence und Callmonitor

Octopus

Oder vielleicht so:


define FS20_Anruf notify FS20_xxxxxx:on define warte5min at +00:05:00 { if Value("FS20_xxxxxx" eq "on") { fhem ("FHEM/FS20_Anruf.sh") } }


Über das 2. Define wird nach 5 min geprüft, ob die Tür noch auf ist, wenn ja, dann Script ausführen. Ob ein Script-Aufruf so überhaupt funktioniert (FHEM/FS20_Anruf.sh) hab ich nicht geprüft.

Gruß
Octopus
FHEM 5.7 auf Raspi 2 mit FHZ1300 PC, 2 x HM-LAN-Adapter, div. FHT-Thermostate, FS20 FMS, div. HM-Gerät.

rudolfkoenig

Skriptaufruf aus perl heraus geht mit system("programm&") oder mit fhem('"programm"').

Btw. die notify+at Variante meldet auch, wenn ich die Tuer kurz oeffne/zumache, und nach genau 5 minuten wieder kurz oeffne.

Frank

Ok, dann würde fhem ("FHEM/FS20_Anruf.sh") ja schonmal funktionieren.
Das mit dem kurz öffnen und dann nach 5 Minuten nochmal öffnen stimmt natürlich. Dies würde auch den Anruf ausführen. Gibt's da eine andere Möglichkeit?

justme1968

schau dir den hinweis zum watchdog an. der ist genau dafür da.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Frank

Ok, danke! Wenn ich's mit dem Watchdog geschafft habe, werde ich hier den Codeschnipsel reinschreiben!

rudolfkoenig

ZitatOk, dann würde
fhem ("FHEM/FS20_Anruf.sh")
ja schonmal funktionieren.

Nein. Bitte die ' genau nachzaehlen.

Frank

Stimmt... :D
Kleiner Flüchtigkeitsfehler....

fhem ('"FHEM/FS20_Anruf.sh"')

Frank

Scheint ja ganz einfach zu sein:


define myFHT80 CUL_FHTTK xxxxxxxx

define w watchdog myFHT80.window:open 00:05 myFHT80.window:closed "my_script.sh"
triger w .


Wobei das Script einfach im fhem Verzeichnis stehen muss. Sollte doch eingentlich so funktionieren, oder? (Kann es leider noch nicht ausprobieren, da mir der FHT80TF noch fehlt...Ist die Abfrage auf "open" und "closed" so richtig?

Puschel74

#11
Hallo,

ZitatIst die Abfrage auf "open" und "closed" so richtig?
Fast  8)

Ich hab dir mal die Readings eines FHTTK im Screenshot angehängt.

Grüße

P.S.: Ja ich weiß - ein einfaches berichtigen des Codes hätte es auch getan aber du willst ja lernen, oder?  ;)

Edith: Grad aufgefallen: define myFHT80 CUL_FHTTK xxxxxxxx
myFHT80 ist evtl. ein unglücklicher Name für eine Tür  ;D
Du kannst auch "EG_Eingang_Tuer" schreiben oder einen anderen aussagekräftigen Namen verwenden.
Lässt sich bei mehreren FHTTK später mal leichter unterscheiden  ;)
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Frank

Besser so (?):


define Haustuer CUL_FHTTK xxxxxxxx

define w watchdog Haustuer.Window:Open 00:05 Haustuer.Window:Closed "my_script.sh"
triger w .

Puschel74

Hallo,

ZitatBesser so (?):
Wie du den FHTTK benennst ist deine Sache  ;)

Haustuer:Window.Open oder Haustuer:Window:.Open
Da bin ich mir grad nicht sicher da ich das notify auf "Haustuer:Window.*" lauschen lasse und im Code dann erst zwischen Open und Closed unterscheide.

$DEVICE = Haustuer
$EVENT = Window: Open
oder      = Window: Closed
Achtung! Zwischen : und Open (oder Closed) ist ein Leerzeichen.
Ich denke mal die zweite Variante Haustuer:Window:.Open sollte eher passen.

Alle Angaben ohne Gewähr.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Frank

Irgendwie scheint es nicht zu funktionieren. Ich habe jetzt folgendes mal ausprobiert (mein FHTTK ist noch nicht da, deshalb habe ich es mit meinem Dämmerungssensor mal getestet..):


define myWatchdog watchdog Daemmerung:on 00:05 Daemmerung:off "Anruf.sh"
trigger myWatchdog .


Der Anruf wird jetzt nach 5 Minuten ausgelöst (einmal!), egal ob die erste Bedingung (Daemmerung:on) zutrifft, oder nicht. Woran kann das liegen? Ist die Abfrage ":on" falsch?! "Daemmerung" ist ein FS20 Gerät.