Hauptmenü

WebHook Status setzen

Begonnen von Andy200877, 01 August 2018, 01:34:05

Vorheriges Thema - Nächstes Thema

Andy200877

Hallo...
Ich habe mir eine preiswerte WLAN-Zeitschaltuhr zugelegt. Diese lässt sich per App (Smart Life) steuern.
Dort kann man auch feste Timer anlegen. (z.B. täglich um 20:00 Uhr einschalten und um 21:00 Uhr ausschalten, für 30min einschalten,...)

Nun wollte ich diese Zeitschaltuhr auch in FHEM einbinden.
Ich habe über IFTTT.com folgende Applets angelegt :

- "If Maker Event "Poolpumpe_aus", then turn off Poolpumpe" => Wenn ich per FHEM den Dummy-Schalter "Poolpumpe" auf aus schalte wird ein Webrequest an ifttt.com geschickt. => IFTTT.com schaltet dann die Pumpe über "Smart Life" ab.


- "If Maker Event "Poolpumpe_an", then turn on Poolpumpe" => Wenn ich per FHEM den Dummy-Schalter "Poolpumpe" auf EIN schalte wird ein Webrequest an ifttt.com geschickt. => IFTTT.com schaltet dann die Pumpe über "Smart Life" ein.


- "If Poolpumpe is turned off, then make a web request" => Wenn die Poolpumpe ausgeschaltet wird (über die Handy-App) => setzte den Status der Poolpumpe in FHEM auf AUS.


- "If Poolpumpe is turned on, then make a web request" => Wenn die Poolpumpe eingeschaltet wird (über die Handy-App) => setzte den Status der Poolpumpe in FHEM auf EIN.



Das ganze funktioniert auch so wie es soll. Jedoch werden die Befehle immer wieder doppelt gesendet.

Schaltet die SmartLife App die Zeitschaltuhr ab => Wird in meinem FHEM über Webhook der Status der Pumpe auf "aus" geändert. => Durch den Notify in FHEM wird erneut ein Steuerbefehl an IFTTT.com geschickt. (Poolpumpe jetzt ausschalten)


Es wird also immer 2x geschaltet....


Hat jemand eine Idee wie ich es lösen kann ? Z.B. der Notify in FHEM nur anspringt, wenn wirklich manuell der Schalter in FHEM betätigt worden ist (Nicht nach einem URL aufruf)


Den Schalter habe ich wie folgt unter FHEM angelegt :

define Poolpumpe_Schalter dummy
attr Poolpumpe_Schalter icon sani_domestic_waterworks
attr Poolpumpe_Schalter room Pool
attr Poolpumpe_Schalter setList on off
define Poolpumpe_Schalter_ntfy notify (Poolpumpe_Schalter:on.*|Poolpumpe_Schalter:off.*) {\
  my $v=Value("Poolpumpe_Schalter");;\
  if ($v eq "on") {GetFileFromURL "https://maker.ifttt.com/trigger/Poolpumpe_an/with/key/xxxxxxxxxxxxxxxxxxxxxxxxxx"};;\
  if ($v eq "off") {GetFileFromURL "https://maker.ifttt.com/trigger/Poolpumpe_aus/with/key/xxxxxxxxxxxxxxxxxxxxxxxxxx"};;\
}



Den Status in FHEM ändere ich über IFTTT.com über folgenden Webhook :
https://USER:PASS@MEINE-DYNDNS:PORT/fhem?cmd=set%20Poolpumpe_Schalter%20off



Mir ist bewusst das ich die ganze Zeitschaltuhr auch nur über FHEM realisieren könnte, aber ich möchte die Smart-Life App, (Alexa usw.) trotzdem nutzen...




Amenophis86

spontan würde ich jetzt sagen, dass du einen Zwischenschritt gehen musst. Entweder FHEM, oder die App sollte erst einen Dummy, alternativ ein eigenes Reading, schalten. Dann kannst du unterscheiden, wer geschaltet hat und schaltest nicht doppelt.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Wuehler

event-on-change-reading sollte auch helfen.

Amenophis86

Stimmt, manchmal kann es so einfach sein :D
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Wuehler

Amenophis hatte doch recht. Habe die Zusammenhänge erst falsch verstanden. Brsuchst denke ich einen dummy für den Status in der App.

Bekommt die App denn mit, wenn du über fhem schaltest? Wenn nicht wird es wieder schwieriger, da es dann dort Inkosistenzen gibt.

nils_

Zitat von: Wuehler am 02 August 2018, 10:16:47
Bekommt die App denn mit, wenn du über fhem schaltest? Wenn nicht wird es wieder schwieriger, da es dann dort Inkosistenzen gibt.

ich vermute mal ja, denn er schaltet in fhem ja nur einen dummy, der wiederum was über iftt macht, und damit dann "smart life" schaltet. und das ist dann wiederum (vermutlich) synchron ?!


hast du uns alle betreffenden devices gezeigt?? oder gibt es noch ein notify??

hilft die setstate weiter?? --> http://commandref.fhem.de/commandref_DE.html#setstate
also von "außen" / webhook dann nicht set, sondern setstate (geht das überhaupt??)
viele Wege in FHEM es gibt!