Howto: Mit FHEM Push-Nachrichten aufs iPhone schicken (Update)

IM EINSATZ?

Dann schau dir UNSEREN LOXKURS an und profitiere von unserem Wissen!

Vor einigen Tagen hatte ich in diesem Post ein Howto veröffentlicht, das zeigt, wie man per FHEM und Prowl-App Pushnachrichten auf das iPhone schickt. Einen noch einfacheren und meiner Meinung nach eleganteren Weg bietet die App Pushover, welche nicht nur für iOS-, sondern auch für Android-Endgeräte verfügbar ist. Einfacher deswegen, weil keinerlei erweiterte Anpassung in der FHEM-Config notwendig ist und ausschließlich die gewünschten Pushbenachrichtigungen als Befehl in der fhem.cfg selbst hinterlegt werden müssen. Eleganter auch deswegen, weil man durch diese Möglichkeit obendrein jeden gewünschten Variablenwert (z.B. ausgelesene Temperatur) mit in die Pushnachricht packen kann. Wie das funktioniert, wird nachfolgend an einigen Beispielen erklärt.

Trigger für die Pushmitteilung

Als Auslöser für die spätere Pushmitteilung wurde ein sicherheitsorientiertes Szenario gewählt, welches ich seit Kurzem selbst im Einsatz habe. Dabei überwacht der FHEM-Server auf Basis eines Raspberry Pi per Bluetooth-Dongle im Rahmen einer Anwesenheitserkennung, ob sich mindestens eines im Haushalt genutzten iPhones in Reichweite befindet. Öffnet sich die Wohnungstür, welche mit dem Sensor HomeMatic HM-Sec-Sc Funk-Tür-/Fensterkontakt (Affiliate-Link) ausgestattet ist, und keines der definierten iPhones ist in Reichweite, sendet FHEM sofort per Pushmitteilung einen Warnhinweis, dass eine unautorisierte Türöffnung stattfand. Aus Komplexitätsgründen wird in nachfolgendem Beispiel die Erkennung von nur einem Bluetooth-Gerät erläutert.

Anwesenheitserkennung per Bluetooth einrichten

Das hier gewählte Beispiel setzt einen vorkonfigurierten FHEM-Server (FHEM-Server auf dem Raspberry Pi in einer Stunde einrichten) sowie einen damit gekoppelten HMLan-Adapter (Affiliate-Link) (HMLan-Adapter am FHEM-Server einrichten) voraus. Weiterhin wird ein handelsüblicher Bluetooth-Dongle benötigt. Ich selbst nutze den CSL – USB micro Bluetooth-Adapter V4.0 (Affiliate-Link) (Abbildung links), welcher schon seit Längerem ohne Probleme seine Arbeit am RPI verrichtet. Er zeichnet sich durch eine hohe Reichweite (bis 100 Meter) aus, so dass bei mittiger Positionierung die Anwesenheitserkennung in der gesamten Wohnung auch durch Wände funktionieren sollte. (Anmerkung: Anscheinend hat sich das Layout des Sticks in den letzten Monaten geändert, da die aktuelle Version jetzt anders aussieht.)

Um den Bluetooth-Stick in FHEM nutzen zu können, müssen vorab einige Treiber per Terminalbefehl installiert werden (die IP muss natürlich jeder selbst anpassen):

ssh pi@192.168.177.56

Ist man eingeloggt, werden mit nachfolgendem Befehl die relevanten Treiber heruntergeladen und installiert:

sudo apt-get update && sudo apt-get upgrade && sudo apt-get install bluetooth bluez-utils blueman -y && sudo reboot

B00DOQJTF4
Nachdem der RPI die Paketquellen aktualisiert, Updates eingespielt, die Treiber installiert und schließlich neugestartet hat, ist der per USB angeschlossene Bluetooth-Stick betriebsbereit (weitere Informationen zum Test des Sticks gibt es z.B. unter modmypi.com).

Die fhem.cfg kann nun mit den Befehlen bestückt werden, welche die Anwesenheitserkennung über das PRESENCE-Modul ermöglichen (weitere Informationen zur Anwesenheitserkennung gibt es im FHEMWiki).

Das Zeichen # am Zeilenanfang bedeutet übrigens, dass diese Zeile auskommentiert ist und damit von FHEM ignoriert wird.

#Bluetooth-Anwesenheit
define HA.JayBluetooth PRESENCE local-bluetooth 28:E1:4C:91:AA:D5 10 60

Die individuelle Bluetooth-Adresse des jeweiligen Smartphones (im obigen Beispiel 28:E1:4C:91:AA:D5) findet sich in den Geräteeinstellungen. Beim iPhone ist die Bluetooth-Seriennummer unter Einstellungen -> Allgemein -> Info -> Bluetooth zu finden (siehe Bild links). Damit die Anwensenheitserkennung ordnungsgemäß auch dann funktioniert, wenn sich das iPhone im Standby befindet, muss das iPhone selbst mit mindestens einem Bluetooth-Gerät gekoppelt worden sein. Sofern noch nicht geschehen, das iPhone einfach per Bluetooth z.B. mit einem MacBook koppeln, damit mindestens ein Eintrag am iPhone unter Einstellungen -> Bluetooth -> Geräte zu finden ist. Dann bleibt die Bluetooth-Funktion am iPhone auch im Standby permanent aktiviert, was den Akku nicht merkbar belastet. Ob ein entsprechendes Koppeln auch bei Android-Devices notwendig ist, kann ich leider nicht sagen. Schaden kann es jedenfalls nichts.

Nach der Seriennummer werden beim PRESENCE-Befehl noch zwei Zahlen (oben 10 60) eingetragen. Die erste Zahl (10) bedeutet, dass alle 10 Sekunden nach dem Gerät gesucht wird (ein Pingtest durchgeführt wird), sofern es abwesend ist. Die zweite Zahl (60) bedeutet, dass alle 60 Sekunden nach dem Gerät gesucht wird, sofern es anwesend ist. Hier kann man etwas mit den Werten spielen, obige Einstellungen funktionieren jedenfalls bei mir problemlos. (Anmerkung: Bei Werten um 1 Sekunde und der Nutzung mehrerer Geräte kann es leicht zu Ping-Problemen kommen und der Akku des angepingten Gerätes wird natürlich auch stärker belastet.)

Kommt das iPhone in Reichweite, bekommt das Device HA.JayBluetooth in FHEM den Status “present”, ist es nicht mehr in Reichweite, bekommt es den Status “absent” zugewiesen. Damit die Erkennung valide bleibt, sobald einmal ein Ping-Versuch fehlschlägt, obwohl das Gerät eigentlich noch anwesend ist, wird noch ein Dummy und ein watchdog verwendet:

#HA.Jay definieren
define HA.Jay dummy
attr HA.Jay eventMap 1
attr HA.Jay room Haus
define FileLog_HA.Jay FileLog ./log/HA.Jay-%Y-%m.log HA.Jay
attr FileLog_HA.Jay logtype text

#HA.Jay auf on setzen bei Anwesenheit
define HAJayOn notify HA.JayBluetooth:present { fhem (“set HA.Jay on setstate watchdogHAJayBluetoothAbwesend defined”) if (Value(“HA.Jay”) ne “on”) }

#HA.Jay auf off setzen nach 3 Min Abwesenheit
define watchdogHAJayBluetoothAbwesend watchdog HA.JayBluetooth:absent 00:03 HA.JayBluetooth:present set HA.Jay off
attr watchdogHAJayBluetoothAbwesend regexp1WontReactivate 1
attr watchdogHAJayBluetoothAbwesend room Haus

Damit wird sichergestellt, dass der Dummy HA.Jay erst nach 3 Minuten auf “off” gesetzt wird, sofern bis dahin kein Lebenszeichen mehr vom Bluetooth-Gerät ankommt. Die Anwesenheitserkennung sollte nach dem Abspeichern durch “Save fhem.cfg” bereits funktionieren.

Push-Service (Pushover) einrichten

Auf der Seite von Pushover kann ein neuer Account erstellt werden. Neben der Angabe der eigenen Email-Adresse wird noch ein Passwort benötigt. Daraufhin erhält man einen Bestätigungslink per Email gesendet, mit welchem man seine Daten verifiziert. Im Browser sieht man nun unter “Your User Key” den persönlichen Schlüssel, welcher später benötigt wird. Unter Your Applications kann nur mit Create eine neue “Anwendung” erstellt werden. Wichtig ist nur Name (hier: Wuerzburgbude), Type (z.B. Plugin) und evtl. noch ein Icon, welches später auch in der App angezeigt wird. Nach einem Klick auf “Create Application” kann der “API Token/Key” der eben erstellten Anwendung eingesehen werden (Bild links). Dieser wird später ebenfalls benötigt.

Jetzt benötigt man noch die kostenpflichtige Pushover-App für iPhone (App-Store-Link) bzw. die Pushover-App für Android.

Ist diese installiert und hat man sich in der App eingeloggt, kann es in FHEM weitergehen.

FHEM-Config mit Push-Benachrichtigungen füttern

Die Push-Benachrichtigung wird durch die Statusänderung des Dummies FL.UnautorisierteTueroeffnung getriggert, welche dann die entsprechende Nachricht auslöst. Die Statusänderung des Dummies selbst wird durch den HomeMatic HM-Sec-Sc Funk-Tür-/Fensterkontakt (Affiliate-Link) namens FL.Tuerkontakt eingeleitet.

#FL.UnautorisierteTueroeffnung definieren
define FL.UnautorisierteTueroeffnung dummy
attr FL.UnautorisierteTueroeffnung room Haus

#FL.UnautorisierteTueroeffnung definieren
define FLUnautorisierteTueroeffnungAn notify FL.Tuerkontakt:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”) if (Value(“HA.Jay”) eq “off”)}
define FLUnautorisierteTueroeffnungAus notify FL.Tuerkontakt:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”) if (Value(“HA.Jay”) eq “on”)}

#Pushover Notification bei unautorisierter Türöffnung
define FLUnautorisierteTueroeffnungPushover notify FL.UnautorisierteTueroeffnung:on { system (“curl -s -F ‘token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz‘ -F ‘user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93‘ -F ‘message=FlurnUnautorisierte Türöffnung’ https://api.pushover.net/1/messages.json”)}

Token am4uA61Gx2Jw9GA24rePRyMJw8B3hz sowie User u4zDygNRGFbQUSmcxXj6fGsWJl9d93 müssen natürlich noch mit den eigenen Daten, die man vorher auf der Pushover-Seite notiert hatte, ausgetauscht werden. Testen kann man die Pushover-Notification z.B. direkt im Weboberfläche des FHEM-Servers über den Kommandozeilenbefehl:

set FL.UnautorisierteTueroeffnung on

Daraufhin sollte in sekundenschnelle die entsprechende Pushbenachrichtigung auf dem Smartphone auftauchen.

Aus meinem täglichen Leben

Der Pushover-Dienst hat mich echt überzeugt und konnte Prowl als Push-App-Dienst verdrängen. Pushover bietet dabei einige Vorteile, wie z.B. eine Kategorisierung der verschiedenen eigenen “Applications” in der App, was für Übersichtlichkeit sorgt. Auch lassen sich so – wie oben bereits erwähnt – ausgelesene FHEM-Werte als Variablen in die Pushmitteilungen packen.

So lässt sich z.B. eine LowBattery-Pushmeldung ans iPhone schicken, sobald einem batteriebetriebenen Homematic-Gerät die Puste ausgeht. Der folgende Code kann ohne Änderungen in die fhem.cfg kopiert werden, nur Token und User müssen natürlich noch angepasst werden:

#Pushover-Batteriewarnung
define BatteriewarnungNotify notify .*:[Bb]attery:.* { if(“%” !~ m/ok/) { system (“curl -s -F ‘token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz‘ -F ‘user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93‘ -F ‘message=Batteriewarnungn@ %’ https://api.pushover.net/1/messages.json”)}}

Als weiteres Beispiel hier noch eine tägliche Benachrichtigung um 07:30 Uhr mit der aktuellen Temperatur und Luftfeuchtigkeit, welche aus dem Homematic Temperatur-/Feuchtesensor EQ3 76923 (Affiliate-Link) namens TE.Temperatur ausgelesen wird:

define AussentempPushover at *07:30:00 {my $TETemperatur = ReadingsVal(“TE.Temperatur”,”temperature”, “”) my $TEHumidity = ReadingsVal(“TE.Temperatur”,”humidity”, “”) system (“curl -s -F ‘token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz‘ -F ‘user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93‘ -F ‘message=TerrassenTemperatur $TETemperatur°CnLuftfeuchte $TEHumidity%’ https://api.pushover.net/1/messages.json”)}

Und hier noch ein Beispiel für eine Kältewarnung, sobald bestimmte Temperaturwerte unter- bzw. überschritten werden:

#TE.TempIndicator definieren
define TE.TempIndicator dummy
attr TE.TempIndicator event-on-change-reading state
attr TE.TempIndicator room Terrasse

#TE.TempIndicator Wertzuweisung
define TETempIndicatorToFreezing notify TE.Temperatur:temperature.* {fhem(“set TE.TempIndicator freezing”) if (ReadingsVal(“TE.Temperatur”,”temperature”,””) < 0)}
define TETempIndicatorToCold notify TE.Temperatur:temperature.* {fhem(“set TE.TempIndicator cold”) if ((ReadingsVal(“TE.Temperatur”,”temperature”,””) < 3) && (ReadingsVal(“TE.Temperatur”,”temperature”,””) >= 0))}
define TETempIndicatorToNormal notify TE.Temperatur:temperature.* {fhem(“set TE.TempIndicator normal”) if (ReadingsVal(“TE.Temperatur”,”temperature”,””) >= 4)}

#Pushover-Notify für Kältewarnung durch TE.TempIndicator
define TETempIndicatorToFreezingPushover notify TE.TempIndicator:freezing { system (“curl -s -F ‘token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz‘ -F ‘user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93‘ -F ‘message=TerrassenEs ist kälter als 0 °CnAchtung erhöhte Glättegefahr’ https://api.pushover.net/1/messages.json”)}
define TETempIndicatorToColdPushover notify TE.TempIndicator:cold { system (“curl -s -F ‘token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz‘ -F ‘user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93‘ -F ‘message=TerrassenEs ist kälter als 3 °CnAchtung Glättegefahr’ https://api.pushover.net/1/messages.json”)}
define TETempIndicatorToNormalPushover notify TE.TempIndicator:normal { system (“curl -s -F ‘token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz‘ -F ‘user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93‘ -F ‘message=TerrassenEs ist wärmer als 4 °C’ https://api.pushover.net/1/messages.json”)}

Das Ganze lässt sich sicherlich noch durch if-Conditions vereinfachen, dafür fehlt es mir aber noch an Perl-Wissen.. Verbesserungen können gerne per Kommentar mitgeteilt werden.

Wer interessante Einsatzzwecke für Pushover-Notifcations mit FHEM ausgemacht hat, ist gerne eingeladen diese über die Kommentarfunktion zu teilen. Als Anregung sind mal einige mögliche Sensoren aufgelistet, welche als Trigger dienen können.

167 Kommentare
  1. Super 🙂 Aber zu erwähnen das es ca 4€ Kostet für Android. Nutze derzeit Andnotify wo man auch wunderbar Icons oder Einstellen kann.
    Ein Tipp wäre nicht schlecht diesne Befehl etwas zu kürzen da sma vll nur send push “MEINTEXT” nutzen kann ohne die ganzen API Keys mit einzubauen das wird doch recht unübersichtlich??

    1. Danke!
      Naja, da App-Preise auch schwanken können, habe ich eben nur “kostenpflichtig” im Artikel angegeben.
      Mir ging es darum erstmal ohne viel Schnickschnack eigene Pushbenachrichtigungen NUR durch einen einfachen Befehl aus der fhem.cfg heraus verschicken zu können. Wenn ich eine elegantere Lösung habe, werde ich sie hier natürlich teilen.

    2. Update: Die Umsetzung durch einfache Befehle ist zwar in der Tat etwas umständlicher, kann aber auch vorteilhaft sein, gerade wenn man weitere Pushover-Parameter (https://pushover.net/api) in die Nachricht packt, um noch differenziertere Push-Nachrichten abzusetzen. So kann das dann z.B. aussehen, wenn man nur einem bestimmten Gerät mit einer hohen Priorität eine Nachricht schickt, die sich mit einem speziellen Ton (alarm) meldet:

      define FLUnautorisierteTueroeffnungPushover notify FL.UnautorisierteTueroeffnung:on { system (“curl -s -F ‘token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz’ -F ‘user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93’ -F ‘device=Jays_iPhone’ -F ‘priority=1’ -F ‘sound=siren’ -F ‘message=Flur\nUnautorisierte Türöffnung’ https://api.pushover.net/1/messages.json”)}

  2. Hi Jörg,

    danke für die super Anleitung,
    jedoch wenn ich set FL.UnautorisierteTueroeffnung on eingebe, bekomme ich keine puover message und im Log steht leider nur FLUnautorisierteTueroeffnungPushover return value: -1.

    pushover einstellungen habe ich mit windows Powershell gestestet, so das der Token und User stimmt.
    Leider bin ich ein totaler perl Neuling.

    Danke Andreas

    1. Die Mitteilung im Log (-1) ist normal, die bekomme ich auch. Evtl. kam es ja beim Kopieren des obigen Codes nach FHEM zu Formatierungsfehlern. Bitte nochmal überprüfen, da es bei mir mit obigem Code (natürlich angepasst mit meinen Daten) ohne Probleme funktioniert.

  3. Hallo Jörg,

    Vielen Dank für die gut erklärte Anleitung!
    Ich habe alles genau so gemacht wie in deiner Anleitung. Die Elemente die ich verwendet habe, sind genau die gleichen wie von Dir beschrieben.
    Ich habe alles soweit hinbekommen, die Anwesenheitserkenung per Bluetooth läuft super auf meinem Android 4.2.2 Smartphone. Ohne noch mit einem anderen Gerät gepairt zu sein, hält fhem zum Smartphone zuverlässig die Verbindung. Auch die Pushover-Funktionen habe ich schon erfolgreich eingebaut und diese sogar noch um ein paar erweitert. Alles funktioniert so wie von Dir beschrieben, einfach klasse.
    Der HmLan Adapter lässt sich ohne Probleme so einstellen, wie von dir in den anderen Artikeln beschrieben. Ich konnte auch den HomeMatic HM-Sec-Sc Funk-Tür-/Fensterkontakt erfolgreich mit dem HM-Adapter pairen und er zeigt soger den Status “open” und “closed” an, nachdem ich ihn so wie beschrieben in FL.Tuerkontakt umbenannt habe.
    Der Befehl “set FL.UnautorisierteTueroeffnung on” löst ohne Probleme über die Konsole aus und gibt eine Pushover Benachrichtigung auf mein Smartphone ab.
    Da ist dann leider Schluß. Ich kann sehen, dass der Türkontakt beim Öffnen und Schließen am HM-Adapter Funksignale auslöst. Der LED Status schlägt jedes Mal aus. Leider löst der Türkontakt beim Öffnen und Schließen selber keine Pushover Benachrichtigung aus.
    Mir ist noch aufgefallen, dass beim Pairen einmal der CUL_HM 225111 gefunden wird und zusätzlich noch ein ActionDetector der irgendwie dem CUL_HM zugeordnet wird.
    Wo kann das Problem liegen? Habe ich irgendetwas nicht richtig zugeordnet?

    Hier ein Ausschnitt aus meiner fhem.cfg wie sie aussieht nach dem Pairen:

    ___________________________________________________________

    define COC_RPi CUL /dev/ttyAMA0@38400 0001
    attr COC_RPi model CUL

    #HM-Lan Adapter
    define HMLAN1 HMLAN 192.168.178.40:1000
    attr HMLAN1 hmId 23A111
    attr HMLAN1 hmLanQlen 1_min

    #Bluetooth-Anwesenheit
    define HA.JayBluetooth PRESENCE local-bluetooth BA:72:B1:33:11:11 10 60

    #HA.Jay definieren
    define HA.Jay dummy
    attr HA.Jay eventMap 1
    attr HA.Jay room Homebase
    define FileLog_HA.Jay FileLog ./log/HA.Jay-%Y-%m.log HA.Jay
    attr FileLog_HA.Jay logtype text

    #HA.Jay auf on setzen bei Anwesenheit
    define HAJayOn notify HA.JayBluetooth:present { fhem (“set HA.Jay on;; setstate watchdogHAJayBluetoothAbwesend defined”) if (Value(“HA.Jay”) ne “on”) }

    #HA.Jay auf off setzen nach 3 Min Abwesenheit
    define watchdogHAJayBluetoothAbwesend watchdog HA.JayBluetooth:absent 00:03 HA.JayBluetooth:present set HA.Jay off
    attr watchdogHAJayBluetoothAbwesend regexp1WontReactivate 1
    attr watchdogHAJayBluetoothAbwesend room Homebase

    #FL.UnautorisierteTueroeffnung definieren
    define FL.UnautorisierteTueroeffnung dummy
    attr FL.UnautorisierteTueroeffnung room Homebase

    #FL.UnautorisierteTueroeffnung definieren
    define FLUnautorisierteTueroeffnungAn notify FL.Tuerkontakt:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”) if (Value(“HA.Jay”) eq “off”)}
    define FLUnautorisierteTueroeffnungAus notify FL.Tuerkontakt:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”) if (Value(“HA.Jay”) eq “on”)}

    #Pushover Notification bei unautorisierter Türöffnung
    define FLUnautorisierteTueroeffnungPushover notify FL.UnautorisierteTueroeffnung:on { system (“curl -s -F ‘token=abiRQAGwje6Ab8Y7tBeP9k3frxxxxx’ -F ‘user=uvDhrePBLueh8hd5cNnl39kHXxxxxx’ -F ‘message=Flur\nUnautorisierte Türöffnung’ https://api.pushover.net/1/messages.json”)}

    #Pushover Notification Zuhause
    define HA.JayPushoveran notify HA.Jay:on { system (“curl -s -F ‘token=amkJLkjYDtLj8ryXonct1Veznxxxxx’ -F ‘user=uvDhrePBLueh8hd5cNnKLA9kHXxxxxx’ -F ‘sound=pushover’ -F ‘message=Flur\nSven ist Zuhause’ https://api.pushover.net/1/messages.json”)}

    #Pushover Notification Alarmanlage An
    define HA.JayPushoveraus notify HA.Jay:off { system (“curl -s -F ‘token=aMcQNwUL9UR3pT6DNgJxS7WSLxxxxx’ -F ‘user=uvDhrePBLueh8hd5cNnKLA9kHXxxxxx’ -F ‘sound=pushover’ -F ‘message=Flur\nAlarmanlage scharf geschaltet !’ https://api.pushover.net/1/messages.json”)}

    #Licht an Empfang
    define HA.Jaylichtan notify HA.Jay:on set schalter1 on

    #Licht aus Gehen
    define HA.Jaylichtaus notify HA.Jay:off set schalter1 off

    #Licht schalten Eingang
    define schalter1 IT 000000000F FF F0
    attr schalter1 model itswitch

    define ActionDetector CUL_HM 000000
    attr ActionDetector actCycle 600
    attr ActionDetector event-on-change-reading .*
    attr ActionDetector room CUL_HM
    define FileLog_ActionDetector FileLog ./log/ActionDetector-%Y.log ActionDetector
    attr FileLog_ActionDetector logtype text
    attr FileLog_ActionDetector room CUL_HM
    define CUL_HM_HM_SEC_SC_225D6E CUL_HM 225111
    attr CUL_HM_HM_SEC_SC_225D6E .devInfo 810101
    attr CUL_HM_HM_SEC_SC_225D6E .stc 80
    attr CUL_HM_HM_SEC_SC_225D6E actCycle 028:00
    attr CUL_HM_HM_SEC_SC_225D6E actStatus alive
    attr CUL_HM_HM_SEC_SC_225D6E firmware 2.1
    attr CUL_HM_HM_SEC_SC_225D6E model HM-SEC-SC
    attr CUL_HM_HM_SEC_SC_225D6E room CUL_HM
    attr CUL_HM_HM_SEC_SC_225D6E serialNr KEQ0451111
    attr CUL_HM_HM_SEC_SC_225D6E subType threeStateSensor
    define FileLog_CUL_HM_HM_SEC_SC_225D6E FileLog ./log/CUL_HM_HM_SEC_SC_225D6E-%Y.log CUL_HM_HM_SEC_SC_225D6E
    attr FileLog_CUL_HM_HM_SEC_SC_225D6E logtype text
    attr FileLog_CUL_HM_HM_SEC_SC_225D6E room CUL_HM

    __________________________________________________________

    Ich benutze fhem auf dem Raspberry Pi mit COC Erweiterung von Busware und einen HM-Lan-Adapter.

    Vielleicht hast du ja einen Tip für mich und ich übersehe einfach eine Kleinigkeit.

    Danke
    Sven

    1. Hi Sven,
      ich habe mir mal vorab erlaubt die angegebenen Seriennummern aus deinem Kommentar zu anonymisieren…
      Freut mich, dass alles bis auf die eine Kleinigkeit bei dir funktioniert!
      In deinem Code ist bei dein Türkontakt noch als CUL_HM_HM_SEC_SC_225D6E definiert. Der sollte doch eigentlich FL.Tuerkontakt heissen, damit er beim entsprechenden notify-Befehl auch auslösen kann. Also mal entsprechend umbenennen. Evtl. war es das auch schon.
      Auch sehe ich in deinem Code falsch formatierte Anführungszeichen. Es müssen immer ” verwendet werden, damit es klappt. In deinem Code gibt es aber auch noch “ und ”, womit FHEM nicht immer klar kommt. Ich würde empfehlen den Code entweder direkt im FHEM-Editor anzupassen oder einen vernünftigen Text-Editor zu nutzen. Unter OSX benutze ich TextEdit (Einstellung: Format Reiner Text), unter Windows Notepad++.
      Insgesamt würde ich dir empfehlen in der fhem.cfg alle Einträge chronologisch (schon alleine aus Übersichtlichkeit) zu sortieren. Also z.B. erstmal alle Device- und Dummy-Definitionen (inkl. ActionDetector) und danach erst notify-Befehle. Zur Fehlersuche kann man sich auch das LogFile (im FHEM-Menü in der linken Spalte relativ weit unten) ansehen. Die neuesten Log-Einträge stehen ganz unten. Hier sind dann neben den Schaltvorgängen z.B. auch Syntaxfehler aufgelistet, sofern welche im Code existieren. Hoffe das hilft weiter!

    2. Hi Jörg,

      Vielen Dank !! Es funktioniert jetzt ! 🙂

      Ich habe alles im Dreamweaver noch einmal editiert und es läuft nun wunderbar ! Jetzt muß ich nur noch die fhem.cfg etwas aufräumen.
      Als nächstes werde ich mal mich mal nach deiner Anleitung an die Anbindung von dem Funk-Thermostat “HM-CC-RT-DN” machen.

      Vielleicht hast du ja noch einen kleinen Tip für mich.
      Ich hatte leider etwas voreilig einen Intertechno PIR-1000 Bewegungsmelder gekauft, über welchen ich mein Licht im Flur schalten möchte.
      Da ich mich ja nun nach deinen Artikeln für die COC Erweiterung für den Raspberry Pi von Busware entschieden habe, ist nun die Frage ob ich diesen mit dem COC, welcher sich wohl ähnlich wie ein CUL verhält, pairen bzw. über fhem benutzen kann. Der PIR-1000 sendet ja im 433,92 Mhz Bereich. Ich habe schon einiges versucht, bekomme aber keine Ergebnisse…vielleicht weißt du ja Rat. Mir ging es Hauptsache darum das der Bewegungsmelder klein und unauffällig ist, da er bei mir im Eingangsbereich sitzt. Sollte es mit Intertechno nicht laufen, hast du evtl noch eine andere Alternative als Bewegungsmelder ?

      Ich finde deinen Blog und deine Artikel echt super ! Vielen Dank für die Mühe, welche du Dir machst. Ich konnte durch Dich sehr einfach in die Materie fhem & co einsteigen. Mache bitte weiter so ! 🙂
      Wenn man dich irgendwie supporten kann (facebook, internet, donation…) so lass es mich bitte wissen, da du mir so einige Stunden an Recherche im Netz erspart hast, möchte ich gerne was zurück geben !

      DANKE !

      Sven

    3. Hi Sven,
      super, dass es geklappt hat!

      Die Anbindung des PIR-1000 wird nicht funktionieren, auch wenn der COC auf 443 Mhz senden kann. Grund ist, dass unter FHEM keine 433 Mhz-Signale empfangen werden können (siehe: http://www.fhemwiki.de/wiki/SlowRF “Eine Ausnahme stellt der IT-Modus zum Betrieb von InterTechno Komponenten (sogenannte “Baumarkt Funkschalter”) dar. Da FHEM derzeit keine IT Kommandos empfangen kann, muss und kann dieser Modus nicht explizit eingestellt werden…”).

      Als Alternative kann ich HomeMatic-Geräte empfehlen. Das Funkprotokoll ist durch die bidirektionale Datenübertragung einfach super und viele Geräte (wie auch die Bewebungsmelder) tauschen Daten mit der Station auch nur signiert und damit etwas sicherer aus. Wirklich kleine Bewegungsmelder gibt es von HomeMatic nocht nicht, leider. Ich selbst habe den HM-Sec-MDIR-2 (Affiliate-Link) im Einsatz. Er funktioniert in Verbindung mit einem HM-Lan-Adapter und FHEM super. Dadurch, dass jedoch eine signierte Verbindung aufgebaut werden muss, kann nur der HM-Lan und nicht der CUL/COC/CUNO verwendet werden, da dieser zwar HomeMatic unterstützt, aber eben keine Signatur.
      In deinem Fall würde ich deswegen empfehlen einen FS20 Bewegungsmelder zu kaufen und deinen COC (http://busware.de/tiki-index.php?page=COC) auf “attribute COCxxx rfmode SlowRF” einzustellen, dann empfängt dieser die Signale von FS20-Komponenten und kann aber auch gleichzeitig noch Signale für FS10 (Intertechno) aussenden.

      Es freut mich immer zu hören, wenn die hier veröffentlichten Artikel anderen Leuten helfen. Ich selbst hab mich gerade am Anfang super schwer mit der gesamten Konfiguration getan, da die Hilfestellungen im Netz oftmals falsch, veraltet oder nur bruchstückweise vorhanden sind. Das koset dann echt Nerven sich da einzufuchsen. Würde mich dabei natürlich freuen, wenn meine Artikel z.B. über Facebook und anderen Foren weiter verbreitet werden würden. Entsprechende Facebook- und Twitter-Share-Buttons sind bspw. auch immer direkt am Artikelende eingeblendet.

      Grüße
      Jörg

    4. Welcher Fehler? “Value:-1”? Die Info bekomme ich auch im Log. Kommen denn Pushnachrichten an? Wenn ja, dann ist doch alles tiptop!

  4. Hallo Jörg,
    super Beitrag. In den letzten Wochen ist das hier definitiv mein Lieblingsblog, ich habe mir schon einige Anregungen für meine fhem Installation holen können.
    Der verlinkte Bluetooth USB Stick hat eine Reichweite von 10m (nicht 100m), leider komme ich damit kaum durch die Stahlbetondecke des Kellers. Glücklicherweise habe ich noch einen zweiten RasberryPi im Wohnzimmer, zusammen mit der Erklärung in dem Wiki-Artikel kann ich mir also eine Lösung für das Problem basteln.
    http://www.fhemwiki.de/wiki/Anwesenheitserkennung#Jeden_Raum_einzeln_ansprechen_.28presenced.29
    Gibt es auch Bluetooth USB Sticks die tatsächlich eine Reichweite von 100m haben und am RaspberryPi mit Linux laufen?

    Freue mich schon auf die nächsten tollen Artikel.
    Grüße
    Martin

    1. Hi Martin!
      Freut mich echt total, dass die Inhalte auf meintechlog.de anderen Usern weiterhelfen! Genau dazu sollen sie auch da sein… Das waren definitiv nicht die letzten Postings im Bereich FHEM, keine Angst. Ich habe tausend Ideen, die ich bis zum perfekten “Smart Home” noch umsetzen – und hier teilen – möchte.
      Der verlinkte Bluetooth-USB-Stick hat bei mir beinahe die Reichtweite meines WLan, so dass er auch die gesamte Wohnung abdeckt. Habe auch schon andere Bluetooth-Sticks ausprobiert, keiner ging bisher so weit. Wenn ich noch einen besseren Stick (100m) finde, folgt ein Update des Artikels.
      Die im FHEM-Wiki beschriebene Lösung mit einem zweiten RPI, welcher über das Netzwerk mit dem presence-Modul kommuniziert, habe ich auch schon getestet. Das war mir aber noch nicht ausgereift genug, da – je nach eingetragenen Intervallen – laufend Daten zwischen den RPIs hin- und hergeschaufelt werden, auch wenn sich der Anwesenheitszustand nicht verändert. Da habe ich glaube ich eine etwas geschicktere Möglichkeit gefunden, die ich teilen werde, sobald sie sich im Alltagseinsatz bewähren konnte.

      Grüße
      Jörg

  5. Hallo,
    vielen Dank für die Idee. Ich haben nun ca. 14 Fensterkontakte von MAX im Einsatz und würdemich bei Öffnung gerne benachrichtigen lassen.
    #FL.UnautorisierteTueroeffnung definieren
    define FL.UnautorisierteTueroeffnung dummy
    attr FL.UnautorisierteTueroeffnung room Haus

    #FL.UnautorisierteTueroeffnung definieren
    define FLUnautorisierteTueroeffnungAn notify FL.Tuerkontakt:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”) if (Value(“Garage_Silke”) eq “opened”)}
    define FLUnautorisierteTueroeffnungAus notify FL.Tuerkontakt:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”) if (Value(“Garage_Silke”) eq “closed”)}

    #Pushover Notification bei unautorisierter Türöffnung
    define FLUnautorisierteTueroeffnungPushover notify FL.UnautorisierteTueroeffnung:on { system (“curl -s -F ‘token=MEIN_TOKEN’ -F ‘user=MEINE USER’ -F ‘message=Licht\nLicht eingeschaltet’ https://api.pushover.net/1/messages.json”)}

    ” if (Value(“Garage_Silke”) eq “opened”)}” macht es schon mal nicht, obgleich die Statusmeldung opened lautet. Habt ihr vielleicht eine Idee? Für Hilfe wäre ich dankbar.

    1. Hi Mike,
      das Auslesen des Zustands per “Value” geht wohl nur bei Dummies. Du willst den “STATE” eines Sensors auslesen und musst die if-Abfrage deshalb mit “ReadingsVal” umsetzen. Außerdem gibt es den STATE “closed” und “open”. Der Status “opened”, wie bei dir angegeben, dürfte nicht funktionieren. Hier die Überarbeitung:

      define FLUnautorisierteTueroeffnungAn notify FL.Tuerkontakt:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”) if (ReadingsVal(“Garage_Silke”,”state”,””) eq “open”)}
      define FLUnautorisierteTueroeffnungAus notify FL.Tuerkontakt:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”) if (ReadingsVal(“Garage_Silke”,”state”,””) eq “closed”)}

      Insgesamt schon echt einige Stolpersteine, die es zu überwinden gilt. Hoffe so klappt es nun auch bei dir!

      Grüße
      Jörg

      PS: Die Kommentarfunktion in meinem Blog formatiert die Anführungszeichen falsch um, so dass nach einem 1:1-Kopieren die jeweiligen Anführungszeichen nochmal manuell umformatiert werden müssen.

      UPDATE vom 22.11.2013: Konnte das Problem mit den Anführungszeichen in den Kommentaren durch die Ergänzung von remove_filter(‘comment_text’, ‘wptexturize’); in der Datei functions.php lösen. Der Code-Text kann nun überall vom Blog (auch aus bereits veröffentlichten Kommentaren) 1:1 kopiert werden!

  6. Hallo Jörg,

    hier der Eintrag zu einem Shutter Contact:
    DEF
    ShutterContact 0735e3
    NAME
    Bad_rechts
    NR
    43
    STATE
    opened
    TYPE
    MAX
    addr
    0735e3
    type
    ShutterContact

    Da steht, das der Status opened ist. Ob das Max spezifisch ist weiß ich nicht. Ich hab Deinen Code mit C&P übernommen. Aber egal, welche Variante mit dem austauschen der Anführungszeichen ich versuche. Es klappt noch nicht.
    Aber vielleicht sollte ich einfach kurz schildern, was ich vorhabe. Ich hatte das auch mal im FHEM Forum angebracht. Leider driftete da die Diskussion etwas ab.
    Ich möchte mit den Kontakten zunächst eine Fensterüberwachung. Daraus folgt dann im zweiten Schritt eine Alarmanlage. Bei Alarmierung soll aber nur eine Blitzleuchte im Haus angehen. Ich denke, für eine Aktivierung der Anlage würde es reichen, das man diese per Dummy ein- bzw. ausschaltet. Vielleicht könnte man sowas ja später mit einem Kontakt in der Tür verfeinern.
    Der Hintergrund ist, dass ich glaube, das ein Einbrecher vermutlich durch aufhebeln einer Terassentür versuchen wird ins Haus zu kommen. Vielleicht schlägt er auch eine Scheibe ein. Aber auch dann wird er die Tür bzw. das Fenster öffnen. Und jetzt stelle ich mir die Frage, was passiert, wenn beim öffnen eine Blitzleuchte im Haus angeht. Ich denke, er wird den Einbruch an der Stelle abbrechen.
    Natürlich dient die Benachrichtigung per push der schnellen Signalisierung. Jetzt erstmal nur die Kontakte, später einen push mit Alarm.
    Ich schätze sowas als eine einfache und effiziente Möglichkeit ein. Leider bin ich da programmiertechnisch am Anfang und nicht wirklich bewandert. Aber wenn das klappt hätte ich als Dankeschön noch eine rote Xenon Blitzleuchte abzugeben:-)
    Mike

    1. Hi Mike,
      bei meinem Homematic-Türsensor heissen die Zustände “open” und “closed”. Echt konfus, dass die Deklaration bei MAX-Komponenten abweicht.
      Aber zu deinem Problem: Funktionieren bei dir manuell (über die FHEM-Konsole) ausgeführte Push-Benachrichtigungen überhaupt? Und was ist, wenn du einmal testweise die if-Confitions in den Befehlen weglässt? Dann sollte ja immer bei Türöffnung (FL.Tuerkontakt:open.*) eine Push-Mitteilung verschickt werden. Oder heisst dein Device, was das notify auslöst, einfach anders? Und was sagt die FHEM-Logdatei zu dem Ganzen? Werden hier Mitteilungen angezeigt, die das Problem eingrenzen könnten (z.B. Syntaxfehler)? Insgesamt kann die Fehlersuche oftmals etwas dauern, bei hartnäckigem Suchen kommt man aber in der Regel zum gewünschten Ergebnis. Und vorher unbedingt ein Backup des Systems ausführen!!! Hoffe du kommst so weiter.
      Grüße
      Jörg

    2. Hallo Jörg,
      wenn ich den push über die Konsole auslöse funktiniert Deine Lösung hervorragend. Also scheint der Teil ok zu sein.
      Ich hab das jetzt mal so gelöst:
      define Fenster_auf notify Kontakt.* { if (Value(“Kontakt_Bad_links”) eq “closed” && Value(“Kontakt_Badezimmer_unten”) eq “closed” && Value(“Kontakt_Bad_rechts”) eq “closed” && Value(“Kontakt_Schlafz_unten_gross”) eq “closed” && Value(“Kontakt_Balkon_WZ”) eq “closed” && Value(“Kontakt_Buero_Tuer”) eq “closed” && Value(“Kontakt_Esszimmer”) eq “closed” && Value(“Kontakt_Garage_Mike”) eq “closed” && Value(“Kontakt_Garage_Silke”) eq “closed” && Value(“Kontakt_Haustuer_oben”) eq “closed” && Value(“Kontakt_Haustuer_unten”) eq “closed” && Value(“Kontakt_Kueche_links”) eq “closed” && Value(“Kontakt_Kueche_rechts”) eq “closed” && Value(“Kontakt_Schlafz_unten_klein”) eq “closed” && Value(“Kontakt_Schlafzimmer_oben”) eq “closed”) { fhem (“set FL.UnautorisierteTueroeffnung off”) } else { fhem (“set FL.UnautorisierteTueroeffnung on”) }}

      Das ist die umständliche Variante. Jetzt bekomme ich Meldung, wenn ich eine Kontakt öffne. Leider aber auch immer mal wieder, wenn ich gar nichts mache. Scheint, als wenn er Statusmeldungen als open erkennt und dann eine Meldung absetzt. Ausserdem macht er mir immer gleich drei Meldungen per push.
      DerLog sieht so aus:
      2013.11.23 10:56:02 3: FLUnautorisierteTueroeffnungPushover return value: -1
      2013.11.23 10:56:03 3: FLUnautorisierteTueroeffnungPushover return value: -1
      2013.11.23 10:56:03 3: FLUnautorisierteTueroeffnungPushover return value: -1
      2013.11.23 10:56:13 3: FLUnautorisierteTueroeffnungPushover return value: -1
      2013.11.23 10:56:14 3: FLUnautorisierteTueroeffnungPushover return value: -1
      2013.11.23 10:56:15 3: FLUnautorisierteTueroeffnungPushover return value: -1
      2013.11.23 10:59:33 3: FLUnautorisierteTueroeffnungPushover return value: -1
      2013.11.23 10:59:34 3: FLUnautorisierteTueroeffnungPushover return value: -1
      2013.11.23 10:59:35 3: FLUnautorisierteTueroeffnungPushover return value: -1

      Ich habe da aber auch immer nur einen Kontakt geöffnet. Vielleicht ist die Sache mit “prüfe ob zu, ansonsten auf” nicht der korrekte Weg.

      Hast Du irgendeine Idee?

      mfg
      Mike

    3. Hallo Mike,

      bei mir waren es 2 Fehler, als es nicht lief. Einer war der Richtige Syntax, Formatirungs und Schreibfehler im Code.
      Ein anderes Problem war, das man unbedingt dran denken muß Bluetooth im Samrtphone/Tablet auszustellen, wenn man testet, da die der Alarm ja nur auslöst, wenn du nicht zu Hause bist, also wenn dein Smartphone oder deine Bluetoothverbindung nicht an bzw anwesend sind.

      Danach lief bei mir alles mit den von Jörg gemachten Vorlagen.

    4. Hi Sven,

      die Nummer mit dem BT Stick habe ich ja noch gar nicht. Das möchte ich gerne anders lösen. Bluetooth frisst mir zu sehr den Akku leer. Das würde ich gerne mit einem Dummy Schalter “Alarm on/off” realisieren.

      Push setzt ja bereits die Meldung ab. Leider immer gleich drei mal hintereinander und leider auch, wenn keiner ein Fenster öffnet. Ich denke, ich bekomme hier immer wieder die Statusmeldung der Kontakte übermittelt.

      Vielleicht würde hier eine “nur 1 X versenden” verriegelung weiterhelfen.

      Wisst ihr was ich meine?

    5. Hi Mike, mit “notify Kontakt.*” kann es auch nicht zuverlässig funktionieren, da jede neue Nachricht aller Kontakte die Benachrichtigung auslöst (also auch Statusmeldungen wie Battery ok). Probier es mal mit “notify Kontakt.*:open.*”, dann wird wirklich nur ein notify ausgelöst, wenn einer der Kontakte mindestens auch “open” übermittelt, also wenn sich ein Fenster auch tatsächlich öffnet.
      Welches Smartphone setzt du denn für die Bluetooth-Anwesenheitserkennung ein? Beim iPhone merkt man akkutechnisch keinen Unterschied.

    6. Hi Mike,
      du kannst deinen Code auch maßgeblich verkürzen, indem du deine Kontaktsensoren strukturierst. Das sieht dann so aus (HA steht bei mir für Haus):
      define HA.Kontakte structure room Kontakt_Bad_links Kontakt_Badezimmer_unten Kontakt_Bad_rechts Kontakt_Schlafz_unten_gross
      attr HA.Kontakte room Haus

      Das Beispiel musst du natürlich noch ergänzen um alle deine ganzen Kontakte.
      Dann kannst du dein notify so schreiben:
      define Fenster_auf notify Kontakt.* { if (Value(“HA.Kontakte”) eq “closed”) { fhem (“set FL.UnautorisierteTueroeffnung off”) } else { fhem (“set FL.UnautorisierteTueroeffnung on”) }}

    7. Hallo Jörg,

      ich hab das gestern Abend nochmal umgesetzt. Nun geht es! Perfekt. Endlich mal jemand, der die Dinge auch für Anfänger verständlich formuliert. Auf diese Art erkennt man Zusammenhänge und kommt dann doch hinter die Logik von Perl. Ich werde den structure Befehl aber so nicht einsetzen. Mir fiel auf, dass ich nun Nachricht bekomme das ein Fenster geöffnet wurde. Welches geht aber natürlich nicht daraus hervor. Ich werde mal versuchen einen Block pro Kontakt zu schreiben, entsprechend mit dem Text, welches Fenster geöffnet wurde. Wenn ich das heute schaffe, werde ich das mal posten. In jedem Fall bis hier her erst einmal recht herzlichen Dank. Und mach weiter so… Das hilft Anfängern echt weiter!

    8. Hi Mike,
      super, dass ich dir weiterhelfen konnte!
      Hier noch eine Anregung:
      Wenn du direkt eine Push-Mitteilung mit der Info senden willst, welches Fenster geöffnet wurde, könntest du es ja evtl. auch so machen (Hier werden im else-Pfad gleichzeitig der Dummy für die unautorisierte Türöffnung auf on gesetzt und die PushOver-Mitteilung gesendet):

      define Fenster_auf notify Kontakt.* { if (Value(“HA.Kontakte”) eq “closed”) { fhem (“set FL.UnautorisierteTueroeffnung off”) } else { fhem (“set FL.UnautorisierteTueroeffnung on”);; system (“curl -s -F ‘token=MEIN_TOKEN’ -F ‘user=MEINE USER’ -F ‘message=Fensteröffnung\nDas Fenster @ wurde geöffnet.’ https://api.pushover.net/1/messages.json”)}}

      Relevant ist dabei das @ in der zu sendenden Nachricht. Es steht als Platzhalter für den Gerätenamen, welches das notify auslöst. Wenn also Kontakt_Bad_rechts das notify auslöst, würde obige Nachricht lauten: “Fensteröffnung\nDas Fenster Kontakt_Bad_rechts wurde geöffnet.”

      Grüße
      Jörg

    9. Hallo Jörg.
      Also das mit dem @ geht prima. Allerdings habe ich das eq “closed” in ne “closed” geändert. Er hat mir Mit dem eq hat er mir immer geschlossene Fenster gemeldet. Übrigens: Danke für den Tipp mit dem structure. Das kann ich noch prima für andere Sachen verwenden.

      Jetzt läuft soweit (fast) alles. Immer wenn ich einen Kontakt öffne, drückt mir push gleich drei Meldungen auf mein Handy. Ich denke, das die Max Kontakte eine dreifache Meldung (open) an den FHEM senden. Könnte man das auch auf eine Meldung reduzieren? Hast Du eine Idee?
      Ausserdem verstehe ich nicht, warum wir, wenn der eigentliche Befehl zum absetzen der Meldung per push in der Zeile erfolgt, noch eine FL.UnautorisierteTueroeffnung on/off brauchen. Kann man die dann nicht weglassen?
      mfg
      Mike

    10. Ich hab eine Idee, ja.
      Versuch doch mal deine ganzen Kontakte mit dem attribut event-on-change-reading auszustatten. Also z.B. für deinen Kontakt Kontakt_Bad_links:
      attr Kontakt_Bad_links event-on-change-reading state,battery
      Das bewirkt, dass das notify vom Kontakt nur noch dann getriggert werden kann, wenn sich dessen Status (bzw. Batteriezustand) tatsächlich ändert. Wenn also der auslösende Kontakt drei Mal nacheinander am Stück open übermittelt, ohne dazwischen closed zu schicken, löst nur das erste open das notify aus.
      FL.UnautorisierteTueroeffnung on/off habe ich in obigem Beispiel einfach drin gelassen. In diesem Fall brauchst du es natürlich nicht. Ich löse solche etwas komplexeren Sachen gerne mit zusätzlichen Dummies, da ich den dummy-Zustand dann manchmal noch für andere if-Schleifen nutzen kann. Das ist aber natürlich Geschmackssache. Im Grund ist ja alles Recht, was zielführend ist. 😉

    11. Hallo Jörg,

      bin etwas krank und habe zudem ein paar andere Sachen zu erledigen. Aber ich wollte Dir kurz eine Rückmeldung geben. Funktioniert jetzt soweit super. Ich musste aber die define Fenster_auf notify Kontakt.* { if (Value(“HA.Kontakte”) eq “closed”) in define Fenster_auf notify Kontakt.* { if (Value(“HA.Kontakte”) ne “closed”) ändern.
      Jetzt funktioniert das recht gut, allerdings erhalte ich manchmal doppel push´s von ein und demselben Vorgang. In der Log schreibt er aber richtigerweise nur eine Open Meldung. Da muss ich mal schauen, wie ich das mache, bzw. woran das liegen kann.
      Als nächstes werde ich dann versuchen eine FS20 Steckdose mit einzubinden bei Alarm.
      Aber bis hier erstmal recht herzlichen Dank.

      Mike

    12. Hi Mike,
      dann erstmal gute Besserung!
      Versuch des doch mal etwas anders:
      define Fenster_auf notify Kontakt.*:opened { system (“curl -s -F ‘token=MEIN_TOKEN’ -F ‘user=MEINE USER’ -F ‘message=Fensteröffnung\nDas Fenster @ wurde geöffnet. %’ https://api.pushover.net/1/messages.json”)}
      Damit sollte es eigentlich funktionieren. Das von mir testweise eingefügte % am Ende der Nachricht bewirkt, dass der Zustand des auslösenden Devices übermittelt wird. Da sollte dann in deinem Fall “opened” stehen. Das % kannst du dann natürlich wieder löschen, wenn du es nicht brauchst.
      Grüße
      Jörg

    13. Hallo Jörg,

      so… nu iss besser!
      Kurze Rückmeldung: Jetzt geht´s prima. Jede Öffnung eines Kontaktes bewirkt nun auch ein sofortiges auslösen des push. Manchmal taucht die Meldung sofort auf, hin und wieder dauert es mal 2 Sekunden. Das liegt aber vermutlich am gateway von pushover und ist absolut akzeptabel.

      Nach langem hin und her werden wir auf die Blutooth Sache verzichten und uns ein TAB an die Wand hängen. Der soll als digitaler Bilderrahmen fungieren. Die FHEM App Widgets sind dann auf dem Desktop abgebildet und zeigen die Stati der Fenster. Heute sind die Tab so günstig, dass sowas Sinn macht. Ich denke, alles was man an Statusmeldungen sehen muss, lässt sich prima Abbilden.

      Wir wollen einen Dummyschalter Alarmanlage EIN/AUS, der dann die Anlage nach ca. 10 Sekunden Scharf schaltet. Im Flur soll dann das Flurlicht als Bestätigung dreimal blinken. Vielleicht macht ein weiterer Dummyschalter Sinn, der die Alarmanlage “still” scharf schaltet. Wenn man es mal vergessen hat und dies von unterwegs aus anschaltet. Dann müsste ja eigentlich das Flurlicht auch nicht blinken. Wenn es das doch macht ist das aber auch nicht wild.

      Bei Auslösung der Anlage (Irgendein Fenster wird geöffnet, sollte dann eine Schaltsteckdose für 60 Sekunden eingeschaltet werden.

      Den Dummy für die Alarmanlage habe ich schon:

      define Kontakt_ALARMANLAGE FS20 1234 99
      attr Kontakt_ALARMANLAGE dummy 1
      attr Kontakt_ALARMANLAGE room Alarmanlage

      Fällt Dir auf, ob ich was übersehen habe?

  7. Hallo,

    ich habe mich noch einmal genauer Informiert bezüglich des Bluetooth USB Sticks. Der verlinkte Stick ist ein Class 2 Stick.
    Class 2 Sticks haben eine geringere Sendeleistung und somit nur eine Reichweite von 10m.

    Kauft euch also einen Class 1 Stick!!!!! Der LogiLink BT0015 (Affiliate-Link) soll in Verbindung mit dem Raspberry gut funktionieren.

    Grüße
    Martin

  8. Hallo zusammen,

    wenn ich mir den State vom PRESENCE per Pushover senden lassen möchte, z.B. wenn sich der Status von absent auf present oder umgedreht ändert, wir muss ich das angehen. Sorry bin absolut neu und habe hierzu nichts gefunden war bei meinen Tests jetzt funktioniert hätte.
    Gruss
    Chris

    1. Hi Chris,
      versuch es doch mal hiermit:

      define HABTJayStatusPushover notify HA.BT_Jay:(absent|present) { system (“curl -s -F ‘token=MEIN_TOKEN’ -F ‘user=MEINE USER’ -F ‘message=Anwesenheitserkennung\n@ ist %.’ https://api.pushover.net/1/messages.json”)}

      :(absent|present) könnte man dabei auch weglassen. Es bedeutet nur, dass HA.BT_Jay nur dann den notify-Befehl triggert, wenn sich der Status entweder auf absent of present ändert. Das @ in der Nachricht übermittelt den Namen des auslösenden Elements und % dessen Status. Die Nachricht würde also z.B. lauten “Anwesenheitserkennung\nHA.BT_Jay ist absent.”.

      Grüße
      Jörg

  9. Moin,
    Super klasse Anleitung. Bin super mit klargekommen, nur eine Frage. Wie hast du das gemacht das du eine Push bekommst mit: Jörg ist gekommen.?
    Kannst du mir das erklären? Kann man auch ein zweites Smartphone hinzufügen?

    Gruss

    1. Per Bluetooth kannst du in FHEM natürlich auch den Anwesenheitszustand mehrerer Smartphones überwachen. Im Pushover-Dienst lassen sich für jedes Smartphone dann entsprechende einzelne Devices anlegen, welche einzeln oder auch gemeinsam per Pushnachricht angesprochen werden können. Dazu muss der Pushover-Code bspw. mit dem Attribut ‘device=Jays_iPhone’ ergänzt werden. Eine Übersicht der möglichen Zusatzattribute findest du unter: https://pushover.net/api
      Grüße
      Jörg

    1. Oh, da habe ich mich wohl falsch ausgedrückt. Ich meine ein zweites Smartphone das sich am Pi anmeldet. Sprich mein Kind von der Schule nach Hause gekommen ist und ich dann eine Push erhalte mit: …. ist jetzt zu Hause.

    2. Naja, im Pushover Webinterface (pushover.net) kann man mehrere Geräte hinzufügen.
      Wenn man bei einer Nachricht kein spezielles Gerät definiert, dann wird an alle gesendet.
      Man kann allerdings auch ein Gerät angeben und dann wird nur an dieses geschickt.

      Gruß,

      Johannes

    3. Achso, und mit PRESENCE ist da natürlich auch möglich mehrere Geräte zu definieren.
      Einfach den Define kopieren, Namen und Bluetooth Adresse austauschen und fertig…

  10. Ich poste mal meine config. Was ist denn verkehrt?
    Komm nicht weiter.

    #Bluetooth-Anwesenheit
    define HA.JayBluetooth PRESENCE local-bluetooth Xxxxxxxxxxxxx 10 60
    define HA.JayBluetooth PRESENCE local-bluetooth xxxxxxxxxxxxx 10 60

    #HA.Jay definieren
    define HA.Jay dummy
    attr HA.Jay eventMap 1
    attr HA.Jay room Wohnung
    define FileLog_HA.Jay FileLog ./log/HA.Jay-%Y-%m.log HA.Jay
    attr FileLog_HA.Jay logtype text

    #HA.Jay auf on setzen bei Anwesenheit
    define HA.JayOn notify HA.JayBluetooth:present { fhem (“set HA.Jay on;; setstate watchdogHA.JayBluetoothAbwesend defined”) if (Value(“HA.Jay”) ne “on”) }

    #HA.Jay auf off setzen nach 3 Min Abwesenheit
    define watchdogHA.JayBluetoothAbwesend watchdog HA.JayBluetooth:absent 00:03 HA.JayBluetooth:present set HA.Jay off
    attr watchdogHA.JayBluetoothAbwesend regexp1WontReactivate 1
    attr watchdogHA.JayBluetoothAbwesend room Wohnung

    #HA.Jay definieren
    define HA.Jay dummy
    attr HA.Jay eventMap 1
    attr HA.Jay room Wohnung
    define FileLog_HA.Jay FileLog ./log/HA.Jay-%Y-%m.log HA.Jay
    attr FileLog_HA.Jay logtype text

    #HA.Jay auf on setzen bei Anwesenheit
    define HA.JayOn notify HA.JayBluetooth:present { fhem (“set HA.Jay on;; setstate watchdogHA.JayBluetoothAbwesend defined”) if (Value(“HA.Jay”) ne “on”) }

    #HA.Jay auf off setzen nach 3 Min Abwesenheit
    define watchdogHA.JayaBluetoothAbwesend watchdog HA.JayBluetooth:absent 00:03 HA.JayBluetooth:present set HA.Jay off
    attr watchdogHA.JayBluetoothAbwesend regexp1WontReactivate 1
    attr watchdoHA.JayBluetoothAbwesend room Wohnung

    #Pushover einrichten
    define Pushover1 Pushover Token User
    attr Pushover1 icon remotecontrol/black_btn_TEXT
    attr Pushover1 room Wohnung

    #FL.UnautorisierteTueroeffnung definieren
    define FL.UnautorisierteTueroeffnung dummy
    attr FL.UnautorisierteTueroeffnung room Wohnung

    #FL.UnautorisierteTueroeffnung definieren
    define FLUnautorisierteTueroeffnungAn notify FL.Tuerkontakt:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”) if (Value(“HA.Jay”) eq “off”)}
    define FLUnautorisierteTueroeffnungAus notify FL.Tuerkontakt:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”) if (Value(“HA.Jay”) eq “on”)}

    #Pushover Notification bei unautorisierter Türöffnung
    define FLUnautorisierteTueroeffnungPushover notify FL.UnautorisierteTueroeffnung:on { system (“curl -s -F ‘token=Xxxxxxx’ -F ‘user=http://xxxxxxxxXxx’ -F ‘message=Flur\nUnautorisierte Türöffnung’ https://api.pushover.net/1/messages.json”)}

    define HABTJayStatusPushover notify HA.BT_Jay:(absent|present) { system (“curl -s -F ‘token=’Xxxxxxccccc -F ‘user=Xxxxxxxxxxxxx’ -F ‘message=Anwesenheitserkennung\n@ ist %.’ https://api.pushover.net/1/messages.json”)}

    #Türkontakt Wohnung Haustür
    define ActionDetector CUL_HM 000000
    attr ActionDetector actCycle 600
    attr ActionDetector event-on-change-reading .*
    attr ActionDetector room Wohnung
    define FileLog_ActionDetector FileLog ./log/ActionDetector-%Y.log ActionDetector
    attr FileLog_ActionDetector logtype text
    attr FileLog_ActionDetector room Wohnung
    define FL.Tuerkontakt CUL_HM xxxxxx
    attr FL.Tuerkontakt .devInfo xxxxxxx
    attr FL.Tuerkontakt .stc 80
    attr FL.Tuerkontakt actCycle 028:00
    attr FL.Tuerkontakt actStatus unknown
    attr FL.Tuerkontakt expert 2_full
    attr FL.Tuerkontakt firmware 2.1
    attr FL.Tuerkontakt model HM-SEC-SC
    attr FL.Tuerkontakt peerIDs
    attr FL.Tuerkontakt room Wohnung
    attr FL.Tuerkontakt serialNr Xxxxxxxxx
    attr FL.Tuerkontakt subType threeStateSensor
    define FileLog_FL.Tuerkontakt FileLog ./log/FL.Tuerkontakt-%Y.log FL.Tuerkontakt
    attr FileLog_FL.Tuerkontakt logtype text
    attr FileLog_FL.Tuerkontakt room Wohnung

    1. Ich empfange keine push-Benachrichtigungen. Immer kommt der Fehler den Mike hier auch hat oder hatte.
      FLUnautorisierteTueroeffnungPushover Return value: -1
      Genau so passiert nix wenn ich set FL.UnautorisierteTueroeffnung on in die Leiste eingebe. Passiert auch nix.
      Ich hatte eigentlich anstatt HA.Jay einen Namen vergeben zB. Otto 1 und Otto 2 . Das kann man doch machen oder?

    2. Hi Jens,
      solange zwischen Otto1 und Otto2 keine Leerzeichen sind dann ja. Versuch doch mal direkt einen Pushover-Befehl in die FHEM-Kommandozeile/-leiste einzugeben und damit manuell die Pushnachricht zu verschicken:
      { system (“curl -s -F ‘token=Xxxxxxx’ -F ‘user=xxxxxxxxXxx’ -F ‘message=Flur\nUnautorisierte Türöffnung’ https://api.pushover.net/1/messages.json”)}
      Funktioniert das erstmal? Falls ja dann würde ich empfehlen Schritt für Schritt mögliche weitere Fehlerquellen der Reihe nach auszuschließen. Das ist zwar manchmal nervig, wenn Fehler nicht offensichtlich sind, durch hartnäckiges Ausprobieren kommt man aber meistens zum gewünschten Ergebnis. Mit den hier vorgestellten Beispielen kannst du es sicher schaffen!
      Grüße
      Jörg

    3. Wenn ich diesen Befehl eingebe erhalte ich -1.
      Funktioniert nicht.
      Gebe ich allerdings:s set Pushover1 msg ‘Test’ ‘Test’ ” 0 ” funktioniert das.

    4. Bin einen Schritt weiter. Hatte bei user http:// zu stehen. Probiere jetzt weiter. Jetzt funktioniert es. Super.

    5. Hallo Jörn, kannst du evtl. Mal ein Blick auf mein Code werfen. Versuche es mit 2 iPhones hinzu bekommen. Leide bekomme ich keine Pushmeldung. Code mit einem Handy funktioniert wunderbar. Sinn macht es für mich aber erst wenn beide iPhones abwesend sind eine Pushmeldung zu bekommen.
      Ich habe die Ottovariante angewendet:
      #Abwesenheit
      #Otto1 definieren
      define Otto1 dummy
      attr Otto1 eventMap 1
      attr Otto1 room Haus
      define FileLog_Otto1 FileLog ./log/Otto1-%Y-%m.log Otto1
      attr FileLog_Otto1 logtype text

      #Otto1 auf on setzen bei Anwesenheit
      define Otto1On notify Otto1Bluetooth:present { fhem (“set Otto1 on;; setstate watchdogOtto1Abwesend defined”) if (Value(“Otto1”) ne “on”) }

      #Otto1 auf off setzen nach 3 Min Abwesenheit
      define watchdogOtto1BluetoothAbwesend watchdog Otto1Bluetooth:absent 00:03 Otto1Bluetooth:present set Otto1 off
      attr watchdogOtto1BluetoothAbwesend regexp1WontReactivate 1
      attr watchdogOtto1BluetoothAbwesend room Haus

      #Otto2 definieren
      define Otto2 dummy
      attr Otto2 eventMap 1
      attr Otto2 room Haus
      define FileLog_Otto2 FileLog ./log/Otto2-%Y-%m.log Otto2
      attr FileLog_Otto2 logtype text

      #Otto2 auf on setzen bei Anwesenheit
      define Otto2On notify Otto2Bluetooth:present { fhem (“set Otto2 on;; setstate watchdogOtto2BluetoothAbwesend defined”) if (Value(“Otto2”) ne “on”) }

      #Otto2 auf off setzen nach 3 Min Abwesenheit
      define watchdogOtto2BluetoothAbwesend watchdog Otto2Bluetooth:absent 00:03:10 Otto2Bluetooth:present set Otto2 off
      attr watchdogOtto2BluetoothAbwesend regexp1WontReactivate 1
      attr watchdogOtto2BluetoothAbwesend room Haus

      #FL.UnautorisierteTueroeffnung definieren
      define FL.UnautorisierteTueroeffnung dummy
      attr FL.UnautorisierteTueroeffnung room Haus

      #FL.UnautorisierteTueroeffnung definieren
      define FL.UnautorisierteTueroeffnungAn notify FL.Fensterkontakt1:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”) if (Value(“Otto1”) eq “off” && Value(“Otto2”) eq “off”)}
      define FL.UnautorisierteTueroeffnungAus notify FL.Fensterkontakt1:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”) if (Value(“Otto1”) eq “on” || Value(“Otto2”) eq “on”)}

      #Pushover Notification bei unautorisierter Türöffnung
      define Otto1BluetoothStatusPushover notify Otto1:(on|off) { system (“curl -s -F ‘token=absv4aof8cq6o96uo6ytvazkvywey2’ -F ‘user=xxxxxxxxxxxxxxxx’ -F ‘message=Unautorisierte Türöffnung’ https://api.pushover.net/1/messages.json”)}

      #Pushover Notification bei unautorisierter Türöffnung
      define Otto2BluetoothStatusPushover notify Otto2:(on|off) { system (“curl -s -F ‘token=absv4aof8cq6o96uo6ytvazkvywey2’ -F ‘user=xxxxxxxxxxxxxxxx’ -F ‘message=Unautorisierte Türöffnung’ https://api.pushover.net/1/messages.json”)}

    6. Hi,
      ich hänge mich als blutiger Neuanfänger mal hier dran, ist ok?
      Ich habe hier bereits das Problem, dass mein zweites iPhone (also das meiner Frau) nicht erkannt wird. Es steht nach wie vor mit Status ??? da.
      Hier meine Config:

      #Bluetooth-Anwesenheit
      define Arne_sein_iPhoneBT PRESENCE local-bluetooth D0:4F:7E:C5:FA:31 10 60
      define Sonja_ihr_iPhoneBT PRESENCE local-bluetooth F0:DB:F8:B2:A6:FB 10 60

      #Arnes iPhone definieren
      define Arne_sein_iPhone dummy
      attr Arne_sein_iPhone eventMap 1
      attr Arne_sein_iPhone room Mobile Geräte
      define FileLog_Arne_sein_iPhone FileLog ./log/Arne_sein_iPhone-%Y-%m.log Arne_sein_iPhone
      attr FileLog_Arne_sein_iPhone logtype text

      #Sonjas iPhone definieren
      define Sonja_ihr_iPhone dummy
      attr Sonja_ihr_iPhone eventMap 1
      attr Sonja_ihr_iPhone room Mobile Geräte
      define FileLog_Sonja_ihr_iPhone FileLog ./log/Sonja_ihr_iPhone-%Y-%m.log Sonja_ihr_iPhone
      attr FileLog_Sonja_ihr_iPhone logtype text

      #Arne_sein_iPhone auf on setzen bei Anwesenheit
      define Arne_sein_iPhoneOn notify Arne_sein_iPhone:present { fhem (“set Arne_sein_iPhone on;; setstate watchdogArne_sein_iPhoneAbwesend defined”) if (Value(“Arne_sein_iPhone”) ne “on”) }

      #Sonja_ihr_iPhone auf on setzen bei Anwesenheit
      define Sonja_ihr_iPhoneOn notify Sonja_ihr_iPhone:present { fhem (“set Sonja_ihr_iPhone on;; setstate watchdogSonja_ihr_iPhoneAbwesend defined”) if (Value(“Sonja_ihr_iPhone”) ne “on”) }

      #Arne_sein_iPhone auf off setzen nach 3 Min Abwesenheit
      define watchdogArne_sein_iPhoneAbwesend watchdog Arne_sein_iPhone:absent 00:03 Arne_sein_iPhone:present set Arne_sein_iPhone off
      attr watchdogArne_sein_iPhoneAbwesend regexp1WontReactivate 1
      attr watchdogArne_sein_iPhoneAbwesend room hidden

      #Sonja_ihr_iPhone auf off setzen nach 3 Min Abwesenheit
      define watchdogSonja_ihr_iPhoneAbwesend watchdog Sonja_ihr_iPhone:absent 00:03 Sonja_ihr_iPhone:present set Sonja_ihr_iPhone off
      attr watchdogSonja_ihr_iPhoneAbwesend regexp1WontReactivate 1
      attr watchdogSonja_ihr_iPhoneAbwesend room hidden

      Ich hab mir gedacht, ich mache es mir einfach, indem in erst mein iPhone konfiguriere (was auch anstandslos geklappt hat), mir anschließend alles in einen beliebigen Texteditor kopiere und mittels suchen&ersetzen editiere. Das vor allem auch, um Tippfehler zu vermeiden.
      Damit das iPhone meiner Frau auch immer brav BT “macht” habe ich es zunächst mit meinem Mac gekoppelt, was aber irgendwie nicht so recht wollte, ich konnte anschließend keine Daten per BT versenden/empfangen. Daher habe ich es dann mal mit der Freisprecheinrichtung meines Autos probiert. Das hat funktioniert. Daher vermute ich jetzt mal, dass das iPhone wie gewünscht seine ID in die Welt schreit.

      Woran kann es sonst noch liegen?

      Gruß,
      Arne

  11. Tach Jörg.
    Ich habe mal deine Anwesendheitserkennung mit der Push-MSG bei Statusänderung. Antwort von dir am 25.11. funktioniert auch, nur ich bekomme alle 60sec eine Message. Wie kann ich das abstellen?
    Gruss

    1. In deinem gestern geposteten Code ein paar Kommentare weiter oben sehe ich gerade spontan schon einige Fehler. Poste doch nochmal deine aktuellen Codezeilen, die betroffen sind. Dann schau ich mir das näher an…

  12. Hallo und schönen 2ten Advent.
    Hier der LOG.
    Ich habe 2 Bluetooth Geräte integriert, eventuell kann man ja beide Geräte in einen Baustein zusammen fassen. Hab ich probiert aber nicht geschafft.

    #Bluetooth-Anwesenheit
    define Otto1Bluetooth PRESENCE local-bluetooth D6:XXXXXXXXXXXX 10 60
    define Otto2Bluetooth PRESENCE local-bluetooth 78:XXXXXXXXXXXX 10 60

    #Otto1 definieren
    define Otto1 dummy
    attr Otto1 eventMap 1
    attr Otto1 room Wohnung
    define FileLog_Otto1 FileLog ./log/Otto1-%Y-%m.log Otto1
    attr FileLog_Otto1 logtype text

    #Otto1 auf on setzen bei Anwesenheit
    define Otto1On notify Otto1Bluetooth:present { fhem (“set Otto1 on;; setstate watchdogOtto1BluetoothAbwesend defined”) if (Value(“Otto1”) ne “on”) }

    #Otto1 auf off setzen nach 3 Min Abwesenheit
    define watchdogOtto1BluetoothAbwesend watchdog Otto1Bluetooth:absent 00:03 Otto1Bluetooth:present set Otto1 off
    attr watchdogOtto1BluetoothAbwesend regexp1WontReactivate 1
    attr watchdogOtto1BluetoothAbwesend room Wohnung

    #Otto2 definieren
    define Otto2 dummy
    attr Otto2 eventMap 1
    attr Otto2 room Wohnung
    define FileLog_Otto2 FileLog ./log/Otto2-%Y-%m.log Otto2
    attr FileLog_Otto2 logtype text

    #Otto2 auf on setzen bei Anwesenheit
    define Otto2On notify Otto2Bluetooth:present { fhem (“set Otto2 on;; setstate watchdogOtto2BluetoothAbwesend defined”) if (Value(“Otto2”) ne “on”) }

    #Otto2 auf off setzen nach 3 Min Abwesenheit
    define watchdogOtto2BluetoothAbwesend watchdog Otto2Bluetooth:absent 00:03 Otto2Bluetooth:present set Otto2 off
    attr watchdogOtto2BluetoothAbwesend regexp1WontReactivate 1
    attr watchdogOtto2BluetoothAbwesend room Wohnung

    #Pushover einrichten
    define Pushover1 Pushover XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    attr Pushover1 icon remotecontrol/black_btn_TEXT
    attr Pushover1 room Wohnung

    #FL.UnautorisierteTueroeffnung definieren
    define FL.UnautorisierteTueroeffnung dummy
    attr FL.UnautorisierteTueroeffnung room Wohnung

    #FL.UnautorisierteTueroeffnung definieren
    define FLUnautorisierteTueroeffnungAn notify Wohnungstuer:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”) if (Value(“Otto1”) eq “off”)}
    define FLUnautorisierteTueroeffnungAus notify Wohnungstuer:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”) if (Value(“Otto1”) eq “on”)}

    #FL.UnautorisierteTueroeffnung definieren
    define FLUnautorisierteTueroeffnungAn notify Wohnungstuer:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”) if (Value(“Otto2”) eq “off”)}
    define FLUnautorisierteTueroeffnungAus notify Wohnungstuer:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”) if (Value(“Otto2”) eq “on”)}

    #Pushover Notification bei unautorisierter Türöffnung
    define FLUnautorisierteTueroeffnungPushover notify FL.UnautorisierteTueroeffnung:on { system (“curl -s -F ‘token=XXXXXXXXXXXXXXXXXXXXXXX’ -F ‘user=XXXXXXXXXXXXXXXXXXXXXXXXx’ -F ‘message=Haustür\nUnautorisierte Türöffnung’ https://api.pushover.net/1/messages.json”)}

    #define Otto1BluetoothStatusPushover notify Otto1Bluetooth:(absent|present) { system (“curl -s -F ‘token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX’ -F ‘user=XXXXXXXXXXXXXXXXXXXXXXXXXXXX’ -F ‘message=Anwesenheitserkennung\n@ ist %.’ https://api.pushover.net/1/messages.json”)}

    1. Hi Jens,
      du hast zwei Einträge hintereinander mit “define FLUnautorisierteTueroeffnungAn”. Das kann so schon mal nicht funktionieren, da es unterschiedliche Bezeichnungen hinter define braucht. Bei der Nutzung von zwei Bluetooth-Devices machen aber zwei solcher Ausdrücke, wie du sie verwendest, logisch schonmal keinen Sinn. Ersetzte diese beiden Einträge durch diesen einen (&& bedeutet in dem Beispiel UND, || bedeutet ODER):
      #FL.UnautorisierteTueroeffnung definieren
      define FLUnautorisierteTueroeffnungAn notify Wohnungstuer:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”) if (Value(“Otto1”) eq “off” && Value(“Otto2”) eq “off”)}
      define FLUnautorisierteTueroeffnungAus notify Wohnungstuer:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”) if (Value(“Otto1”) eq “on” || Value(“Otto2”) eq “on”)}
      Jetzt noch zu deinem Pushover-Befehl zur Übermittlung des Anwesenheitsstatus. Hier musst du als Trigger den Dummy Otto1 benutzen und nicht Otto1Bluetooth, da Otto1 immer nur bei Statusänderung einen entsprechenden Pushoverbefehl auslöst, Otto1Bluetooth dagegen kontinuierlich alle 10 bzw. 60 Sekunden. Es muss also lauten:
      define Otto1BluetoothStatusPushover notify Otto1:(off|on) { system (“curl -s -F ‘token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX’ -F ‘user=XXXXXXXXXXXXXXXXXXXXXXXXXXXX’ -F ‘message=Anwesenheitserkennung\n@ ist %.’ https://api.pushover.net/1/messages.json”)}
      Durch eine kleine Änderung des Codes kann man auch direkt beide Dummies als Trigger nutzen und braucht damit keinen extra Code für Otto2:
      define OttoBluetoothStatusPushover notify Otto.:(off|on) { system (“curl -s -F ‘token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX’ -F ‘user=XXXXXXXXXXXXXXXXXXXXXXXXXXXX’ -F ‘message=Anwesenheitserkennung\n@ ist %.’ https://api.pushover.net/1/messages.json”)}
      Hoffe du verstehst die zugrundeliegende Logik jetzt langsam besser, so dass du durch Ausprobieren auch selbst zum Ziel kommst.
      Grüße
      Jörg

  13. Danke, jetzt wird mir einiges klar. Ich habe auch gutes Vorstellungsvermögen, doch an der Umsetzung hapert es. Die Begriffe sind mir zu neu, diese Zeichensetzung finde ich schon schwierig.
    Aber ich habe einen Fehler entdeckt und zwar bei dem Anwesenheitsstatus muss Otto1:(on|off) stehen.
    Jetzt funktioniert es tadellos.
    Danke für deine Mühe und Geduld.
    Super Blog, mach weiter so.
    Gruss
    Jens

    1. Bitte! Und danke für den Hinweis, habe meinen Kommentar entsprechend überarbeitet, dass es Otto1:(on|off) heisst und NICHT Otto1:(absent|present). Funktioniert denn die Variante mit Otto.:(on|off) ebenfalls? Der . steht in diesem Fall als Platzhalter für exakt EIN beliebiges Zeichen, so dass Otto1 und Otto2 das notify auslösen können.

    2. Hallo,
      ich habe Otto.: nicht in Verwendung. Ich benutze Otto1.: .
      Wenn du willst kann ich das ja mal probieren.
      Habe mir jetzt einen Temperatursensor besorgt. Möchte dein Skript für die TempPush einsetzen. Mir reicht es aber wenn um 7Uhr die aktuelle Temp gepusht wir. Bräuchte nur den Begriff für die aktuelle Temp, den Rest kann man ja fast so übernehmen.
      Das Batterieskript hatte ich auch in Benutzung, doch da bekomme ich alle 60s von jedem Gerät eine Push in der steht Batteriewarnung ORT batterylevel:3.1V . Kann man das so machen das sie Warnung nur bei kritischem Stand kommt?
      Gruss

    3. Hi Jens,
      ich lasse mir einmal morgens auch um 7:30 Uhr die Temperatur sowie Luftfeuchtigkeit zuschicken. Bei mir sieht das so aus:
      define AussentempPushoverJay at *07:30:00 {my $TETemperatur = ReadingsVal(“TE.Temperatur”,”temperature”, “”);; my $TEHumidity = ReadingsVal(“TE.Temperatur”,”humidity”, “”);; system (“curl -s -F ”token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz’ -F ‘user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93’ -F ‘message=Terrasse\nTemperatur $TETemperatur°C\nLuftfeuchte $TEHumidity%’ https://api.pushover.net/1/messages.json”)}
      Die im Artikel angegebene Batterie-Pushbenachrichtigung funktioniert bei mir zuverlässig und schickt nur dann eine Pushnachricht, wenn ein Batterietausch ansteht (ich benutzte Homematic-Geräte). Diese senden dann z.B. “FL.Bewegungsmelder (CUL_HM) battery: ok” an die Station, wenn alles in Ordnung ist. Hast du evtl. auch andere Geräte im Einsatz, die andere Werte senden? Falls ja, muss die if-Bedingung entsprechend angepasst werden.
      Grüße
      Jörg

    4. Ich habe fast nur HM Geräte. 3 funksteckdosen von intertechno. Könnten wir auch per Mail schreiben? Bekomme die Batteriemeldungen auch nur von den Heizungsthermostaten (“batterylevel:3.1V”).

    5. Hi Jens,
      ich hab es dir ja schon per Mail geschrieben, aber hier nochmal für alle:
      Ich habe den Programmcode für die Batteriemeldung im obigen Blogpost mit einem : ergänzt. Dadurch sollten die ungewünschten Mitteilungen ausbleiben. Nur weiss ich nicht, ob die Heizungsthermostate neben der Mitteilung der Volt-Werte bei Unterschreitung eines gewissen Wertes zusätzlich eine entsprechende Nachricht übermitteln, damit das notify bei einer leeren Batterie auslöst. Ich werde das mal prüfen und ggf. den Code entsprechend anpassen, damit auch das klappt.

    6. Hallo Jörg,
      Ich habe den Push-Dienst jetzt auch mit in FHEM aufgenommen:

      define BatteriewarnungNotify notify .*:[Bb]attery:.* { if(“%” !~ m/ok/) { system (“curl -s -F ‘token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz’ -F ‘user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93’ -F ‘message=Batteriewarnung\n@ %’ https://api.pushover.net/1/messages.json”)}}

      Steht in der Nachricht dann eigentlich auch, welches Gerät gemeldet hat?

      Ich nutze kein HM, sondern FS20. Dort habe ich bisher so abgefragt, um eine eMail zu generieren:

      define CheckBat notify KlimaGeraet:.* {\
      if (“%EVTPART1” ne “ok” && “%EVTPART0” eq “battery:”) {\ …

      Würde Deine Lösung meine ersetzen können? Ich durchblicke Dein notify nämlich nicht so ganz.

      Danke

    7. Ja, durch das @ in der Nachricht wird der Name des Gerätes übermittelt.
      Bis auf die Tatsache, dass dein Notify nur vom Device “KlimaGeraet” getriggert werden kann und mein Notify durch jedes Gerät, macht dein Notify genau das gleiche. Meine Lösung würde diene Lösung damit ersetzen können, ja.

    8. Hallo Jens,
      Kannst du mir mal den fertigen Code mit den zwei Handys in Abwesenheit schicken.
      Möchte das gerne realisiere, komme aber nicht weiter. Vielen Dank.

    9. Hallo Jens,
      kannst du mir vielleicht den fertigen Code senden.Habe soweit alles eingetragen und stehe gerade vor dem Problem, dass die Pushmeldung schon kommt, wenn der watchdog das dummy auf off schaltet. Bin auch noch Anfänger.
      Danke.

  14. Hi Jörg,

    welche PERL Module müssen denn dazu auf meinem QNAP installiert sein, dass dieser PUSH funktioniert?
    Irgendwie macht der bei mir nämlicht genau nix.

    LG Benny

    1. Hi danke für Deine zügige Antwort,
      leider hab ich CURL zumindest für PHP auf meinem QNAP schon installiert und laut der PHPinfo wird es auch unterstützt. Trotzdem kommt nix raus

    2. Merkwürdig. Wenn ich den CURL-Pushnachrichten-Befehl direkt über die Konsole auf meinem Raspberry Pi absetze, kommt die Pushmitteilung am iPhone an. Wenn ich die selbe Nachricht per Konsole auf meinem QNAP-NAS absetze, kommt sie nicht an, obwohl CURL bereits standardmäßig auf dem QNAP-NAS installiert ist. Das verstehe ich ehrlich gesagt auf Anhieb auch nicht. Wenn ich dahinter komme, werde ich mich nochmal melden…

    3. Ich hab mich da gestern doch noch einige Zeit mit beschäftigt, und mir ist witziger weise aufgefallen, dass wenn Du das Ganze mit “http://” statt “https://” raus schickst funktioniert es.

  15. Hey Jörg,

    ich bin zwar kein Perl programmierer, aber andere Sprachen programmier ich, hab mich mal kurz hingesetzt und was gebastelt, vllt hilft es dir und den anderen auch ..

    Ich hab ne kurze perl Funktion geschrieben, welche ähnlich wie die Prowl funktioniert.
    meine funktion ist in der 99_MyUtils.pm

    sub pushover
    {
    ## input your apps and user token
    my %pushoverApps = (“APP1”, “jkljadkfh8787dsfa876f786asdf”,”APP2″,”dfhadfafd786afasdfasdf67asdf”);
    my $userToken =”kjklajfd897897adfadfadfdfasfdadf”;
    #######
    my $subject = $_[0];
    my $app = $pushoverApps{$_[1]};
    my $ret = “”;
    $ret .= system(“curl -s -F ‘token=$app’ -F ‘user=$userToken’ -F ‘message=$subject’ https://api.pushover.net/1/messages.json”);
    $ret =~ s,[\r
    ]*,,g;
    Log 1, “pushover returned: $ret”;
    }

    und ein aufruf aus der fhem.cfg als bsp
    define Tuerentriegelt2 notify 13424_KeymaticFlur.unlocked {my $domtest=”lala234″;;pushover(“Türe wurde verriegelt $domtest”,”APP1″)}

    wie du hier sehen kannst ist es somit auch möglich variablen zu übergeben in der message…

    als hinweis in der funktion im oberen bereich deklariert man Identifikatoren(APP1,APP2) und den dazugehörigen Schlüssel… somit kann man unendlich viele APPs haben und die ansprechen…

    hoffe es hilft…

    Grüße
    Dom

    1. Hi Dom,
      das ist echt cool, danke.
      Könntest du deinen Code evtl. noch ergänzen, damit man neben mehreren APPs (APP1,APP2) auch mehrere userToken (USER1,USER2) nutzen kann? Dann wäre es genau das, was ich benötige, um flexibel an mehrere Endgeräte passgenaue Pushover-Notifications abzusetzen. 🙂

      Grüße
      Jörg

  16. Interessant wäre es sicherlich auch, eine Meldung zu bekommen wenn die Rauchmelder Alarm geschlagen haben.
    Da ich selbst noch keine Rauchmelder im System habe, kann ich hier im Moment noch keinen Code beisteuern.

  17. Mit folgendem Code wird der HA.Jay Status schöner (Haus und durchgestrichenes Haus) angezeigt:

    attr HA.Jay devStateIcon on:HOME_Status.1 off:HOME_Status.0

  18. Hi Jörg.
    Kurze Frage. Ich habe den Code hier eingefügt:
    #Pushover Notification Zuhause
    define GalaxyS4Pushover notify GalaxyS4:on {system (“curl -s -F ‘token=aLQusgz8tj65i8XXXXGvBTewPA’ -F ‘user=u2V7SwXchLeNxXXXXXXdxvJmbhtK’ -F ‘sound=pushover’ -F ‘message=Hallo\nDanis GalaxyS4 ist Zuhause’ https://api.pushover.net/1/messages.json“)}

    Aber ich bekomme in FHEM Logfile immer ein:
    2014.02.01 18:48:39 3: GalaxyS4Pushover return value: Unrecognized character \xE2; marked by <– HERE after { system (<– HERE near column 11 at (eval 131) line 1.

    Kannst du mir sagen, wo ich da den Fehler habe? N Leerzeichen zuviel oder zu wenig? Ich komm nicht mehr weiter. Danke für deine Hilfe. PS: Super Blog. Hilft teilweise besser als das FHEM Forum 😉 Gruss Danny

  19. Hi,
    ist es auch Möglich sich eine Ausgabe vom Tür/Fensterkontakt ausgeben zu lassen ?
    Ich habe es versucht irgendwie Graphen zu erstellen in der Art vom Heizungsthermostat…leider führte das zu keinen Erfolg…

    Gruß
    Sven

    1. Hi,
      ich verstehe deine Frage nicht wirklich. Willst du dir eine grafische Auswertung (Graph) eines Tür-/Fensterkontakts per Pushnachricht aufs Smartphone schicken lassen? Oder willst du in der FHEM-Oberfläche einen Graphen erstellen, welcher die verschiedenen Zustände eines Tür-/Fensterkontakts anzeigt?
      Grüße
      Jörg

    2. Hallo Jörg,
      die Pushup Nachrichten über Pushover-Notification funktionieren Super. Danke für die Anleitung.
      …Ja genau, ich möchte im fhem einen Graphen erstellen lassen. Wenn das Heizungsthermostat aufdreht, kann man ja auch später auslesen, wann und wie lange das Ventil aufgedreht war um den Heizkörper aufzuheizen. So etwas oder so in der Art möchte ich das für die Fenster und Türkontakte anzeigen lassen. Wann welches Fenster oder welche Tür, wie lange geöffnet war.
      Ich benutze die HomeMatic Funk-Tür-/ Fensterkontakte, fhem, Hmm-Lanadapter, Rasperry-Pi mit COC Erweiterung, Android, ANDfhem, Pushover-Notification…

      Danke für deine Mühe
      Sven

  20. Hallo Jörg, erstmal ein großes Lob für die super Erklärungen. Mittlerweile sehe ich den Wald vor lauter Bäumen nicht mehr.

    Hier mal ein Auszug aus der fhem.cfg

    define HomeStatus FS20 696c 00
    attr HomeStatus room Haus
    attr HomeStatus alias Überwachung Ein/Aus
    attr HomeStatus webCmd on:off

    define CUL_HM_HM_SEC_SC_2_24FD67 CUL_HM 24FD67
    attr CUL_HM_HM_SEC_SC_2_24FD67 alias WZ_Schiebetür
    attr CUL_HM_HM_SEC_SC_2_24FD67 room Tür-/Fenster

    #FL.UnautorisierteTueroeffnung definieren
    define FL.UnautorisierteTueroeffnung dummy
    attr FL.UnautorisierteTueroeffnung webCmd off
    attr FL.UnautorisierteTueroeffnung room Haus

    #FL.UnautorisierteTueroeffnung definieren
    define FLUnautorisierteTueroeffnungAn notify CUL_HM_HM_SEC_SC_2_24FD67:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”) if (Value(“HomeStatus”) eq “off”)}
    define FLUnautorisierteTueroeffnungAus notify CUL_HM_HM_SEC_SC_2_24FD67:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”) if (Value(“HomeStatus”) eq “on”)}

    #Pushover Notification bei unautorisierter Türöffnung
    define FLUnautorisierteTueroeffnungPushover notify FL.UnautorisierteTueroeffnung:on { system (“curl -s -F ‘token=xxxxxx’ -F ‘user=xxxxxx’ -F ‘message=WZ\nUnautorisierte Türöffnung’ https://api.pushover.net/1/messages.json”)}

    LOGFILE

    2014.02.08 18:47:40 3: FLUnautorisierteTueroeffnungPushover return value: -1
    2014.02.08 18:47:51 3: FS20 set HomeStatus on
    2014.02.08 18:47:56 3: FLUnautorisierteTueroeffnungPushover return value: -1
    2014.02.08 18:49:59 3: FS20 set HomeStatus off
    2014.02.08 18:50:27 3: FLUnautorisierteTueroeffnungPushover return value: -1

    Nachrichten senden/empfangen funktioniert.
    Bekomme es aber nicht hin diesen Vorgang in Abhängigkeit mit dem Schalter zu nutzen.
    Egal welchen Status mein Schalter hat, es wird immer eine Meldung abgesetzt.
    Schau mal bitte was da schief läuft.

    Vielen Dank
    Stephan

    1. Hi Stephan,
      danke für dein Lob!
      Dein Auszug sieht eigentlich nicht verkehrt aus… Kann mir eigentlich nur vorstellen, dass “HomeStatus” nicht korrekt auf “on” bzw. “off” gesetzt wird. Kannst du das mal überprüfen? Du kannst den Status von “HomeStatus” zu Testzwecken ertmal auch z.B. direkt über den FHEM-Konsolenbefehl “set HomeStatus off” manuell setzen und dann mal versuchen, ob die Pushmitteilung dann bei einer Türöffnung ausgeführt wird.
      Grüße
      Jörg

    2. Hallo Jörg,
      danke für die Antwort.

      Habe die Zeilen noch mal neu eingegeben und einen Restart gemacht.
      Warum auch immer jetzt geht es.

      Vielen Dank
      Stephan

  21. Hi,
    mal wieder eine super Anleitung. Vielen Dank. Ich mußte auf meinem PI noch Curl nachinstallieren, aber dann ging es. Hab mein FHEM in dem Raspbmc Image rein installiert, da ist anscheinend Curl standardässig nicht mit dabei.

    ciao
    Martin

    1. Hi Martin,
      danke für den Tipp! Wer also Curl nachinstallieren muss, kann das über den Terminalbefehl “sudo apt-get install curl” tun.
      Grüße
      Jörg

  22. Vielen Dank für die super Anleitungen.
    Ich würde gerne beim Ansprechen der Rauchmelder eine Puschover Nachricht bekommen, aber es funzt noch nicht, bin absoluter Anfänger…
    fhem.cfg:

    #Feueralarm definieren
    define Feueralarm dummy
    attr Feueralarm room Sicherheit

    #Feueralarm definieren
    define FeueralarmAn notify TRX_KD101_3b9100 smoke:alert.* { fhem (“set Feueralarm on”) if (Value(“HA.Jay”) eq “off”)}

    #Pushover Notification bei Feueralarm
    define FeueralarmPushover notify Feueralarm:on { system (“curl -s -F ‘token=xxxxxxxxxxxxxxxxxxxx’ -F ‘user=xxxxxxxxxxxxxxxxxxxxxxxxxxxx’ -F ‘message=Feuer\nRauchmelder angesprochen’ https://api.pushover.net/1/messages.json”)}

    Diese angaben sind vom Rauchmelder:

    Internals
    DEF
    KD101 3b9100 smoke
    IODev
    TRX_0
    NAME
    TRX_KD101_3b9100
    NR
    24
    STATE
    alert
    TRX_SECURITY_deviceid
    3b9100
    TRX_SECURITY_devicelog
    smoke
    TRX_SECURITY_type
    KD101
    TYPE
    TRX_SECURITY
    Readings
    smoke
    alert
    2014-02-02 15:35:14
    state
    alert
    2014-02-24 18:12:50

  23. Hallo Jörg

    Deine Seite ist toll! Anregungen gibt es so viele.
    Pushover klasse umgesetzt und erläutert!

    Was mir jetzt auffällt, die Batteriestatusmeldung könnte man doch einfach auf die HM Rauchmelder übertragen, oder?
    Stelle mir das so vor:
    define FeuermelderNotify notify Rauch.*:state:.* { if(“%” !~ m/off/) { system (“curl -s -F ‘token=zyx’ -F ‘user=xuy’ -F ‘message=Feuermelder\n@ %’ https://api.pushover.net/1/messages.json”)}}
    Die Melder habe ich nach dem Schema “Rauch.Zimmer” benannt und liefern im Normalfall “state=off” zurück.
    Was meinst Du, stimmt die if-Bedingung so?

    Gruß,
    Andreas

    1. Hi Andreas,
      weiss leider nicht genau, welchen Status die Rauchmelder haben, sofern sie auslösen. Denke so könnte es klappen, sofern sich der Status bei Erkennung von Rauch auf “alert” ändert:
      define FeuermelderNotify notify Rauch.*:alert.* { system (“curl -s -F ‘token=zyx’ -F ‘user=xuy’ -F ‘message=Feuermelder\n@ %’ https://api.pushover.net/1/messages.json”)}
      Ich würde das einfach mal “live” testen und den Status entsprechend anpassen, sofern notwendig. Meld dich doch einfach nochmal, ob es geklappt hat.
      Grüße
      Jörg

    2. Der Status zur Erkennung des auslösenden Rauchmelders im Team, (define SDTeam CUL_HM ABCDEF01) ist: (SDTeam.*:.*smoke_detect.*), das ganze notify wäre dann getestet:
      define Feueralarm_Pushover notify (SDTeam.*:.*smoke_detect.*) {if(ReadingsVal(“SDTeam”,”smoke_detect”,””)ne “-“) { system (“curl -s -F ‘token=zyx’ -F ‘user=xuy’ -F ‘message=FEUERALARM\nRauchmelder $EVTPART1 hat ausgelöst!’ https://api.pushover.net/1/messages.json”)}}

    3. Wobei CUL_HM ABCDEF dein Master-Rauchmelder oder ein einzelner Rauchmelder ist. Hoffe so ist alles klar, sonst frag nur noch einmal nach, ich habe selber Tage damit verbracht, bis es endlich einwandfrei lief! 😉

    4. Hi Jörg
      Danke für die Info. Zwischenzeitlich hat sich auch noch Richi zu Wort gemeldet und einen wichtigen Hinweis gegeben, “smoke_detect.*” ist einzusetzen.
      Ich hab da noch etwas im Forum entdeckt:
      http://forum.fhem.de/index.php/topic,9934.165.html
      Tommy82 und crissiloop haben da eine gute Beschreibung gegeben.
      Da wird auch elegant das Pushover Modul genutzt, das fhem integriert hat.
      Hab ich so bei mir umgesetzt.
      Grüße,
      Andreas

  24. In Fhem gibt es ein PushoverModul, was die Nutzung mit dem Pushover Service vereinfacht.
    Es muss nun kein Curl mehr verwendet werden. Es reicht ein zwei Zeiler. Den Tokenkey und den Anwendungskey braucht man somit nur einmal definieren.
    Beschreibung in der CommandRef.

  25. Hallo Jörg,

    Dein Blog ist richtig klasse! Er hat mir sehr den Einstieg in FHEM erleichtert. Im Moment bin ich noch dabei, die Anwesenheitserkennung mit Bluetooth zu konfigurieren und nach einem reinen Copy&Paste (und natürlich anpassen der MAC-Adresse 🙂 funktioniert das auch schon prima. Allerdings will ich das ganze verstehen, weswegen Copy&Paste da nur ein Anfang sein kann.

    Nur mal eine einfache Verständnisfrage zu den paar Zeilen in der fhem.cfg:

    “define HA.Jay dummy”
    Hat das “HA” und das “Jay” eigentlich eine tiefere Bedeutung (sprich, ist das FHEM-spezifisch) oder könnte ich da auch
    “define Obst.Torte dummy” schreiben? Ich würde ja vermuten, dass HA für Haus steht und Jay du bist.
    Also das Du ein “Unterobjekt” deines eigenen Hauses bist. 🙂 Wenn ich da richtig liege, wundert mich halt, dass so viele andere die nicht Jörg heissen, den Code einfach 1:1 übernehmen.

    Ähnlich auch bei den folgenden Zeilen:

    define FL.UnautorisierteTueroeffnung dummy
    attr FL.UnautorisierteTueroeffnung room Haus

    Hier steht FL vermutlich für Flur. Aber “UnautorisierteTueroeffnung” ist in diesem Fall kein Objekt mehr, sondern doch eigentlich ein Ereignis, oder?
    Wie Du siehst, kämpfe ich effektiv gerade mit dem Verständnis der FHEM-eigenen Script-Sprache. Leider gibt das allgegenwärtige FHEM-Einsteiger-PDF leider auch nur wenig mehr Durchblick. Sorry, für die Anfänger-Fragen. 🙂

    Viele Grüße
    Timo

    1. Hi Timo,

      richtig, HA ist bei mir die Abkürzung für Haus und Jay ist mein Identifkationsname. Du kannst natürlich irgendetwas nehmen, gerne auch Obst.Torte. Ich mache es immer so, dass ich einen Dummy immer einem Raum und dann eben einen Namen zur Identifkation zuweise, damit man sich gut strukturiert wiederfindet.
      Mit “FL.UnautorisierteTueroeffnung” hast du Recht, dass ist eigentlich ein Event und müsste laut “korrekter” Syntax eigentlich “FL.TuerUnautorisiertGeoeffnet” oder “FL.Tuer.UnautorisiertGeoeffnet” lauten. Und ja, FL steht bei mir für Flur. Ich denke du bist auf dem besten Weg dich in FHEM einzulernen. Was am Anfang noch schwierig bzw. unverständlich ist, wird irgendwann einfacher, versprochen. 🙂
      Grüße
      Jörg

  26. Hallo Jörg,

    ich würde eine Anwesenheitserfassung gerne über 3 Homematik Funk-Handsender realisieren, da bei uns auch mal die Eltern, bzw Schwiegereltern ins Haus müssen, die haben jedoch kein Smartphone … Hat das auch schon mal jemand probiert ob das auch mit einem der 3 verfügbaren Handsender funktioniert?

    Danke vorab
    Markus

  27. Hallo zusammen,

    da hab ich mal wieder ein Problem was ich nicht verstehe.

    Wenn ich den Abschnitt “Dashboard” auskommentiere, bekomme ich beim öffnen Wohnzimmer eine Pushovernachricht wenn der Homestatus “EIN” ist.

    Sobald ich den Abschnitt “Dashboard” aktiviere, überschlagen sich die Pushovernachrichten.
    Es wird dann auch im Filelog (FileLog_CUL_HM_HM_SEC_SC_2_xxxxxx) im 5s Takt der Status eingetragen.

    FileLog Auszug:

    2014-05-08_17:46:07 Wohnzimmer open
    2014-05-08_17:46:07 Wohnzimmer contact: open (to HMLAN1)
    2014-05-08_17:46:12 Wohnzimmer open
    2014-05-08_17:46:12 Wohnzimmer contact: open (to HMLAN1)
    2014-05-08_17:46:17 Wohnzimmer open
    2014-05-08_17:46:17 Wohnzimmer contact: open (to HMLAN1)
    2014-05-08_17:46:22 Wohnzimmer open
    2014-05-08_17:46:22 Wohnzimmer contact: open (to HMLAN1)
    2014-05-08_17:46:33 Wohnzimmer open
    2014-05-08_17:46:33 Wohnzimmer contact: open (to HMLAN1)
    2014-05-08_17:46:33 Wohnzimmer Activity: alive
    2014-05-08_17:46:33 Wohnzimmer open
    2014-05-08_17:46:33 Wohnzimmer contact: open (to HMLAN1)
    2014-05-08_17:46:38 Wohnzimmer open
    2014-05-08_17:46:38 Wohnzimmer contact: open (to HMLAN1)
    2014-05-08_17:46:43 Wohnzimmer open
    2014-05-08_17:46:43 Wohnzimmer contact: open (to HMLAN1)
    2014-05-08_17:46:48 Wohnzimmer open
    2014-05-08_17:46:48 Wohnzimmer contact: open (to HMLAN1)
    2014-05-08_17:46:53 Wohnzimmer open
    2014-05-08_17:46:53 Wohnzimmer contact: open (to HMLAN1)
    2014-05-08_17:47:02 Wohnzimmer open
    2014-05-08_17:47:02 Wohnzimmer contact: open (to HMLAN1)

    FHEM.CFG

    #===========================================================================================
    #= Dashboard ===============================================================================
    #===========================================================================================
    define anyViews Dashboard
    attr anyViews dashboard_activetab 5
    attr anyViews dashboard_colcount 1
    attr anyViews dashboard_rowcentercolwidth 100,100
    attr anyViews dashboard_rowcenterheight 900
    attr anyViews dashboard_showfullsize 1
    #attr anyViews dashboard_tab1groups Straße,Sicherheit,Heimmeldesystem,Alarm Heimmeldesystem,Haustuer,Auto
    attr anyViews dashboard_tab1name Sicherheit
    #attr anyViews dashboard_tab1sorting t0c0,Sicherheit,true,768,427:t0c0,Heimmeldesystem,true,769,208:t0c0,Alarm Heimmeldesystem,true,770,133:t0c0,Auto,true,1539,97:t0c0,Straße,true,1537,97:t0c0,Haustuer,true,1539,293:
    attr anyViews dashboard_tab2groups Bridge,TV,LAN,WLAN,Batteriestatus
    attr anyViews dashboard_tab2name Information
    attr anyViews dashboard_tab2sorting t1c0,TV,true,840,206:t1c0,LAN,true,721,206:t1c0,Batteriestatus,true,841,422:t1c0,WLAN,true,723,206:t1c0,Bridge,true,725,115:
    attr anyViews dashboard_tab3groups Garten,Beet
    attr anyViews dashboard_tab3name Garten
    attr anyViews dashboard_tab3sorting t2c0,Garten,true,766,155:t2c0,Beet,true,775,153:
    attr anyViews dashboard_tab4groups Temperaturen,Temperaturwarnung vom Aussenfuehler_Terasse
    attr anyViews dashboard_tab4name Wetter
    attr anyViews dashboard_tab4sorting t3c0,Temperaturen,true,848,422:t3c0,Temperaturwarnung vom Aussenfuehler_Terasse,true,0,0:
    attr anyViews dashboard_tab5groups geplante_Schaltzeiten_von_Heizung_Auto,geplante_Schaltzeiten_von_LED_Terasse_Boden,geplante_Schaltzeiten_von_Beet_Licht,geplante_Schaltzeiten_von_Beet_Quellsteine,Zeitschaltuhr
    attr anyViews dashboard_tab5name Zeitschaltuhren
    attr anyViews dashboard_tab5sorting t4c0,Zeitschaltuhr,true,1627,149:t4c0,geplante_Schaltzeiten_von_Beet_Licht,true,835,107:t4c0,geplante_Schaltzeiten_von_Beet_Quellsteine,true,790,201:t4c0,geplante_Schaltzeiten_von_Heizung_Auto,true,838,202:t4c0,geplante_Schaltzeiten_von_LED_Terasse_Boden,true,787,202:
    attr anyViews dashboard_tabcount 5
    attr anyViews room Unsorted
    define anyViews_weblink weblink htmlCode {DashboardAsHtml(“anyViews”)}
    attr anyViews_weblink room DashboardRoom

    #===========================================================================================
    # – Überwachung – ==========================================================================
    #===========================================================================================

    define HomeStatus FS20 123d 11
    attr HomeStatus IODev COC
    attr HomeStatus alias Überwachung Ein/Aus
    attr HomeStatus fp_Erdgeschoss 50,310,2,
    attr HomeStatus fp_Information 300,750,2,
    attr HomeStatus group Sicherheit
    attr HomeStatus room Haus,Favourites
    attr HomeStatus webCmd on:off

    #===========================================================================================
    # – Wohnzimmer – ==============================================================================
    #===========================================================================================

    define Wohnzimmer CUL_HM 111111
    attr Wohnzimmer IODev HMLAN1
    attr Wohnzimmer actCycle 028:00
    attr Wohnzimmer actStatus alive
    attr Wohnzimmer alias Wohnzimmer_Terrassentür
    attr Wohnzimmer autoReadReg 4_reqStatus
    attr Wohnzimmer devStateIcon open:fts_window_2w_open closed:fts_window_2w
    attr Wohnzimmer expert 2_full
    attr Wohnzimmer firmware 2.2
    attr Wohnzimmer fp_Erdgeschoss 340,1050,1,Terrassentür
    attr Wohnzimmer fp_Information 120,378,1,
    attr Wohnzimmer group Sicherheit
    attr Wohnzimmer model HM-SEC-SC-2
    attr Wohnzimmer peerIDs 00000000,
    attr Wohnzimmer room Haus
    attr Wohnzimmer serialNr xxxxxxxxxxxxx
    attr Wohnzimmer subType threeStateSensor
    attr Wohnzimmer webCmd open:closed
    define FileLog_CUL_HM_HM_SEC_SC_2_xxxxxx FileLog ./log/Wohnzimmer-%Y.log Wohnzimmer
    attr FileLog_CUL_HM_HM_SEC_SC_2_xxxxxx group HM-Sicherheit
    attr FileLog_CUL_HM_HM_SEC_SC_2_xxxxxx logtype text
    attr FileLog_CUL_HM_HM_SEC_SC_2_xxxxxx room 2_File_Log

    #===========================================================================================
    # – Sicherheitsabfragen – ==================================================================
    #===========================================================================================

    #FL.UnautorisierteTueroeffnung WOHNZIMMER TERRASSENTÜR definieren
    define FL.UnautorisierteTueroeffnung dummy
    attr FL.UnautorisierteTueroeffnung alias Wohnzimmer_Schiebetür Unautorisierte Öffnung
    attr FL.UnautorisierteTueroeffnung group Sicherheit
    attr FL.UnautorisierteTueroeffnung room Haus
    attr FL.UnautorisierteTueroeffnung webCmd off:on

    #FL.UnautorisierteTueroeffnung definieren
    define FLUnautorisierteTueroeffnungAn notify Wohnzimmer:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”) if (Value(“HomeStatus”) eq “on”)}
    define FLUnautorisierteTueroeffnungAus notify Wohnzimmer:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”) if (Value(“HomeStatus”) eq “off”)}

    #Pushover Notification bei unautorisierter Türöffnung
    define FLUnautorisierteTueroeffnungPushover notify FL.UnautorisierteTueroeffnung:on { system (“curl -s -F ‘token=xxxxxx’ -F ‘user=xxxxxx’ -F ‘priority=1’ -F ‘sound=echo’ -F ‘message=Wohnzimmer\nUnautorisierte Türöffnung’ https://api.pushover.net/1/messages.json”)}
    attr FLUnautorisierteTueroeffnungPushover room Push

    1. Haben den Fehler gefunden. Es lag am Sensor selber der aufgrund einer schwachen Batterie eine Fehlfunktion hatte.

  28. Hallo,

    irgendwie klappt das bei mir nicht…

    Ich möchte zu einer bestimmten Uhrzeit den Ertrag meiner PV-Anlage per Push verschicken. Dazu benutze ich folgende Zeile (UserKey habe ich unkenntlich gemacht:

    define PVPushover at *18:35:00 {my $PVVerbr_Dummy = ReadingsVal(“PV”,”Verbrauch”, 0);; my $PVErtr_Dummy = ReadingsVal(“PV”,”Ertrag”, 0);; system (“curl -s -F ‘token=ar2xZB4XVkRX583vto79tQjFaU9WkW‘ -F ‘user=<<>>‘ -F ‘message=PV\nVerbrauch $PVVerbr_Dummy\nErtrag $PVErtr_Dummy’ https://api.pushover.net/1/messages.json”)}

    Wenn der Zeitpunkt nun kommt, bekomme ich keine Nachricht.
    Habe keine Ahnung warum. Hast Du evtl. einen Tip?

    Danke
    Deinjo

    1. Hallo,

      hab’s gelöst. Bin nun direkt über den Pushover Dienst von FHEM gegangen.
      Das klappt nun bestens.

      Gruß
      Deinjo

      P.S. Dein Blog ist wirklich super. Immer wieder neue Ideen.

    2. Am besten Mal ins Logfile (zu finden auf der FHEM-Oberfläche links unten) schauen, ob bzw. welcher Fehler zu der angegebenen Uhrzeit angezeigt wird. Evtl. hilft das ja weiter..

  29. Hi, ich wollte die Pushover Funktion heute auch testen . Aber ohne bluetooth Adapter . Leider bekomm ich keine Nachricht auf mein Handy

    #FL.UnautorisierteTueroeffnung definieren
    define FL.UnautorisierteTueroeffnung dummy
    attr FL.UnautorisierteTueroeffnung room Haus

    #FL.UnautorisierteTueroeffnung definieren
    define FLUnautorisierteTueroeffnungAn notify FL.Tuerkontakt:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”)}
    define FLUnautorisierteTueroeffnungAus notify FL.Tuerkontakt:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”)}

    #Pushover Notification bei unautorisierter Türöffnung

    define FLUnautorisierteTueroeffnungPushover notify FL.UnautorisierteTueroeffnung:on { system (“curl -s -F ‘token=XxxxxxctEBmv2JN66ASSn6kcxxxxx’ -F ‘user=Xxxxxxxxxxx’ -F ‘device=htcone’ -F ‘priority=1’ -F ‘sound=siren’ -F ‘message=Flur\nUnautorisierte Türöffnung’ https://api.pushover.net/1/messages.json”)}

    1. Auf welchem System läuft dein FHEM? Vermutlich ist dort noch ein Curl installiert, welches für das Absetzen des Pushover-Befehls notwendig ist. Zum Installieren per Terminal einloggen und mit dem admin-User “sudo apt-get install curl” ausführen. Dann evtl. noch einen Reboot und hoffentlich klappts dann.. Viel Erfolg!
      Grüße
      Jörg

  30. Erst mal vielen dank für die guten Beiträge,dir mir schon viel als Neuling geholfen haben.
    Da ich ein Windows Phone habe, muss ich auf Pushalot ausweichen. Scheint wohl ein ähnlicher Dienst zu sein. Leider klappt das aber irgendwie nicht.

    Wenn ich diese Zeile wie bei Pushalot beschrieben in die console meiner raspberrypi eingebe geht es.
    curl -F “AuthorizationToken=35b9832daffc4793aa477e44c0b0910f” \
    -F “Body=This is a test message body.” \
    https://pushalot.com/api/sendmessage

    Wenn ich das aber statt der Zeilen die hier angegeben sind einfüge, wird immer ein Fehler ausgespuckt das in der Zeile bei curl ein Fehler ist.

    Muss ich da vielleicht Irgendwas anderst schreiben oder {}oder() weglassen.

    Danke

  31. Als Push-Dienst kann man mit dem IPhone (andere Smartphones weiß ich nicht) ganz einfach ein Konto bei outlook.de verwenden. Jede Mail die dort eintrifft, löst eine Push-Nachricht aus. Man kann in outlook.de aber auch Regeln definieren und beliebig aktivieren, dass bestimmte Meldungen aus seinem Haus beim Eintreffen in Unterordner verschoben werden, um keinen Push auszulösen.

  32. Hallo Jörg,

    danke für deine Posts zu fhem. Diese haben mir den Einstieg sehr erleichtert.
    Allerdings bekomme ich es nicht hin, einen Pushover Benachrichtigung bei lock unlock oder open des KeyMatic zu erhalten (egal ob über curl oder direkt über das Pushover Plugin).

    So sieht mein Code aus:

    define FL.TueroeffnungPushover notify FL.Tuerschloss:unlock set HomeSweetHome msg ‘Flur’ ‘Haustüre entriegelt.’

    Mit einem HomeMatic Funk-Schaltaktor für Markenschalter klappt diese Code übrigens wunderbar:
    define FL.LichtanPushover notify FL.Licht:on set HomeSweetHome msg ‘Flur’ ‘Licht an.’

    Hast Du einen Idee warum es nicht klappt?

    Gruß Simon

    1. Hi Simon,
      spontan würde ich mal vermuten, dass es evtl. an den Umlauten in deiner Pushover-Benachrichtung liegt. Versuch es doch mal testweise ohne.
      Grüße
      Jörg

    2. Hallo Jörg,

      danke für Deine Antwort. Leider klappt es ohne Umlaute auch nicht. Jetzt habe ich folgendes versucht:

      define FL.TueroeffnungPushover notify Haustuere:unlock.* set HomeSweetHome msg ‘Flur’ ‘Haustür entriegelt’

      define FL.TuerschliessungPushover notify Haustuere:lock.* set HomeSweetHome msg ‘Flur’ ‘Haustür verriegelt’

      Aber jetzt kommen bei jeder Änderung des Zustands gleich 4 Benachrichtigungen an.

      Hast Du noch eine Idee?

      Danke und Gruß
      Simon

    3. Hi Simon,
      ich habe den Keymatic gerade nicht im Einsatz, deshalb kann ich nur vermuten. Ich glaube der Status ändert sich mehrmals beim einmaligen Auf- bzw. Zusperren, weshalb du auch mehrere Benachrichtigungen erhältst. Am besten du schaust mal in das Logfile von “Haustuere” und kontrollierst die Statusänderungen. Such dir dann den passenden Eintrag raus, der nur einmal im Log beim Auf- bzw. Zusperren auftaucht und nutz diesen für das entsprechende Notify. Glaub so hatte ich das damals auch gemacht. Hoffe das hilft zumindest etwas weiter…

  33. Hallo Leute

    leier komme ich nicht weiter ich bin auch Neuling und versuche gerade das Modul pushover auf meiner fritz.box 7390 zum laufen zu bekommen doch leider immer wieder die gleiche Meldung wenn der push abgesetzt werden soll Error: No known response
    im foum antwortet irgendwie keiner darauf deswegen probier ich mal hier Hilfe zu bekommen

    vielen dank im voraus

    mfg martin

    1. Hi Martin,
      habe leider mit dem Pushover-Modul auf einer Fritzbox keine Erfahrung, sorry. Wollte gerade schon den Link zum Forum http://forum.fhem.de/index.php/topic,16215.240.html posten, sehe aber gerade, dass du genau hier schon nachgefragt hattest… Hoffe hier antwortet dir noch jemand. Alternativ kann ich dir nur aus eigener Erfahrung empfehlen mit FHEM auf einen Raspberry Pi umzusteigen, hier hat man wesentlich weniger Probleme und kann fehlende Programme bequem nachinstallieren.
      Grüße
      Jörg

  34. Hallo Jörg,

    zur Info:
    Deine Anleitung lässt sich 1:1 auch mit “Boxcar 2” umsetzen. Das sieht dann so aus:

    define LowBatteryWarning notify .*:[Bb]attery:.* { if(“%” !~ m/ok/) { system (“curl -H ‘charset=UTF-8’ -d ‘user_credentials=abcYOURTOKENxyz’ -d ‘notification[title]=Batteriewarnung’ -d ‘notification[long_message]=@ %’ -d ‘notification[source_name]=FHEM’ -d ‘notification[sound]=bird-1’ -d ‘notification[icon_url]=http://www.haustechnikdialog.de/Apps/Images/icons/206_small.jpg’ https://new.boxcar.io/api/notifications”) }}

    Funktionsumfang der App ist ähnlich wie bei Pushover, es gibt Sie für IOS und Androide und bisher ist sie noch kostenlos.

    PS: Dein Blog ist mir in den letzten Wochen sehr hilfreich bei der Einrichtung meines FHEM Systems gewesen -> Danke !

    Gruß,

    Uwe

    1. Hi Uwe,
      freut mich, dass dir die Infos im Blog weiterhelfen und danke für den Hinweis! Wird sicher für den ein oder anderen auch interessant sein.

      Grüße
      Jörg

  35. Hallo Jörg

    Will mir mit hilfe deines Beitrag auch eine anwesenheitserkennung mit Watchdog
    und Pushover basteln.
    Der unten abgebilderte code erzeugt aber ständig Pushnachrichten
    auf meinen Handy manchmal bekomme ich mehr als 5 auf einmal
    über Nacht hatte ich mal mehr als 500 bekommen.
    Vieleicht kanst du mir ja helfen….

    define andre PRESENCE lan-ping 192.168.2.126 30 60
    attr andre event-on-change-reading state
    attr andre ping_count 3
    attr andre room Status

    attr andrehandy.dummy event-on-change-reading state
    attr andrehandy.dummy eventMap 1
    attr andrehandy.dummy room Status
    define FileLog_andrehandy.dummy FileLog ./log/andrehandy.dummy-%Y-%m.log andrehandy.dummy
    attr FileLog_andrehandy.dummy logtype text
    define andrehandy.notify notify andre:present { fhem (“set andrehandy.dummy on;; setstate watchdogandrehandyAbwesend defined”) if (Value(“andrehandy.dummy”) ne “on”) }
    attr andrehandy.notify room Status

    #andre auf off setzen nach 2 min abwesenheit
    define watchdogandrehandyAbwesend watchdog andre:absent 00:02 andre:present set andrehandy.dummy off;;{fhem (‘setstate watchdogandrehandyAbwesend defined’)}
    attr watchdogandrehandyAbwesend regexp1WontReactivate 1

    define andreStatus.Pushover notify andrehandy.dummy:(on|off) { system (“curl -s -F ‘token=atVUuCHNqVpceGE3Q9o36Erxxxx’ -F ‘user=uiG9jabCJSGRZErTueHBnxxxx’ -F ‘message=Anwesenheitserkennung\n@ ist %.’ https://api.pushover.net/1/messages.json”)}

    define andre_kommt notify andrehandy.dummy:on set Pushover1 msg ‘message’ ‘Andre kommt nach Hause’ ”0”

    1. Hi Andre,
      wird es bspw. besser, wenn du die Zeit des Watchdogs von zwei Minuten “00:02” auf sagen wir fünf Minunten “0:05” erhöhst? Alernativ kannst du natürlich auch testweise einmal die Pingraten von “30 60” auf “15 30” herabsetzen. Hier muss man je nach Setup einfach etwas mit den Werten spielen.

      Grüße und viel Erfolg bei der Fehlersuche
      Jörg

  36. Hallo Jörg,

    Dein Techblog hat mir als blutigen FHEM Anfänger schon sehr gut weitergeholfen! Vielen Dank!!!

    Leider klappt die übernahme Deines Beispielscripts für die tägliche Pushmessage bei mir nicht???

    Outdoor ist ein LaCrosse Thermometer
    Push meine PushBullet Def.
    den Command “set Push …..” führt er sauber durch. Nur komplett kommt leider nichts an.

    define Wetter_Info_Push at *10:40:00 {my $TETemperatur = ReadingsVal(“Outdoor”,”temperature”, “”);; my $TEHumidity = ReadingsVal(“Outdoor”,”humidity”, “”);; system (“set Push message ‘Terrasse\nTemperatur $TETemperatur°C\nLuftfeuchte $TEHumidity%'”)}

    Vielen Dank
    Gruss Lars

  37. Fehler gefunden:

    system durch fhem:

    define Wetter_Info_Push at *10:40:00 {my $TETemperatur = ReadingsVal(“Outdoor”,”temperature”, “”);; my $TEHumidity = ReadingsVal(“Outdoor”,”humidity”, “”);; fhem (“set Push message ‘Terrasse\nTemperatur $TETemperatur°C\nLuftfeuchte $TEHumidity%'”)}

  38. Hallo
    Erst mal danke super was Sie da leisten.
    Hab die anwesenheitserkennung installiert funktioniert super.
    Aber wie binde ich noch 1-2 Handys ein.

    Wäre über Ihre Hilfe dankbar.

    Gruß

    1. Hi Nanuk,
      du kannst weitere Handys ganz einfach hinzufügen:
      define HA.ArneBluetooth PRESENCE local-bluetooth 28:E1:4C:91:AA:E5 10 60
      define HA.BobBluetooth PRESENCE local-bluetooth 28:E1:4C:91:AA:F6 10 60
      etc. hinzufügen.
      Damit die ganzen Notify-Meldungen dann aber auch funktioniert, müssen diese entsprechend angepasst werden. Am besten fasst man dazu die ganzen Handys per “structure” zusammen und passt den Code dann Stück für Stück an. Das ist dann natürlich etwas aufwändiger, sollte aber auch zuverlässig funktionieren.

      Hoffe das hilft erstmal als Impuls weiter
      Grüße und viel Erfolg
      Jörg

    2. Hallo, wie immer vielen Dank für die ganzen tollen Erklärungen hier im Blog. Ich habe soweit auch alles hinbekommen, mit einem Handy. Ich wollte jetzt das Handy meiner Frau auch integrieren. Mit Structure arbeitet es nicht richtig, wenn Handy1 on ist und Handy2 off, steht bei bei Structure absent. Wenn es aber umgekehrt ist, Handy1 off und Handy2 On, zeigt Structure present an. Leider sind meine Kenntnisse nicht ausreichend den Fehler zu erkennen. Ich habe es jetzt so geschrieben, die Funktion ist so gegeben, was Push angeht.

      #iPhones definieren
      define iPhones dummy
      attr iPhones eventMap 1
      attr iPhones room Haus
      define FileLog_ iPhones FileLog ./log/iPhones-%Y-%m.log iPhones
      attr FileLog_iPhones logtype text

      #iPhones auf on setzen bei Anwesenheit
      define iPhonesOn notify OlliBT:present|TinaBT:present { fhem (“set iPhones on;; setstate watchdog_iPhones_Abwesend defined”) if (Value(“iPhones”) ne “on”) }

      #iPhones auf off setzen nach 3 Min Abwesenheit
      define watchdog_iPhones_Abwesend watchdog OlliBT:absent|TinaBT:absent 00:03 OlliBT:present|TinaBT:present set iPhones off
      attr watchdog_iPhones_Abwesend regexp1WontReactivate 1
      attr watchdog_iPhones_Abwesend room Haus

      Jetzt ist es so, das der Watchdog anfängt zu überwachen, wenn ein Handy absent ist. Bekomme aber keine Push, solange eines present ist. Kann man Watchdog vielleicht so einstellen, dass er erst anfängt zu überwachen, wenn beide Handys absent sind?

      Noch ne Frage, die nicht zum Thema ist. Ich musste Fhem neu aufsetzen, weil ich den BT Dongle nicht installieren konnte. Jetzt kann ich aber in FHEM die fhem.cfg nicht mehr bearbeiten. Mache das jetzt alles über TextEdit. Wie kann ich das ändern? Das war sonst nicht so.

      Allen ein schönes Wochenende und danke für die Hilfe.

    3. @Oliver, das ist neu. Du kannst aber über “global” den Parameter setzen, dass die fhem.cfg wieder bearbeiten kannst. Wenn Du die Datei in FHEM “anklickst”, steht auch ein ein entsprechender Eintrag unterhalb des Eingabefeldes!

    4. Hallo Oliver,
      Möchte das genauso umsetzen, komme aber nicht weiter. Kannst du mir evtl. Deinen fertigen Code zu Verfügung stellen?
      Danke

  39. @ Jörg, meine vorherigen Einträge kannst Du löschen.

    Anbei der vollständige Code. Jetzt erhalte ich eine Pushnachricht bei öffnen und schließen der Fenster:

    #define Dummy-Fensterstatus
    define Fensterstatus dummy
    attr Fensterstatus devStateIcon off:fts_window_1w@green on:fts_window_1w_tilt@red
    attr Fensterstatus room Haus

    #define Fensterkontakte
    define Fenster.Kontakt structure room Fensterkontakt.Ben Fensterkontakt.Julia Fensterkontakt.Schlafzimmer Fensterkontakt.Wohnzimmer
    attr Fenster.Kontakt room Haus

    define notify-Fenster_auf
    define Fenster_auf notify Fensterkontakt.* { if(Value(“Fenster.Kontakt”) eq “closed”){ fhem (“set Fensteroeffnung off”) } else {fhem (“set Fensteroeffnung on”);;;; system (“curl -s -F ‘token=XXXXXXXXXX’ -F ‘user=XXXXXXXXXX’ -F ‘message=Fensteröffnung\nDer @ wurde ausgelöst. Fenster geöffnet!’ https://api.pushover.net/1/messages.json”) }}
    attr Fenster_auf room Haus

    #define notify-Fenster_zu
    define Fenster_zu notify Fensterkontakt.* { if(Value(“Fenster.Kontakt”) eq “undefined”){ fhem (“set Fensteroeffnung off”) } else {fhem (“set Fensteroeffnung on”);;;; system (“curl -s -F ‘token=XXXXXXXXXX’ -F ‘user=XXXXXXXXXX’ -F ‘message=Fensteröffnung\nDer @ wurde ausgelöst. Fenster geschlossen!’ https://api.pushover.net/1/messages.json”) }}
    attr Fenster_zu room Haus

    Ps.: Bei einem geöffnetem Fenster ist der Status “undefined” ich weiß nicht warum, da im Fensterkontakt es die Status “open” & “closed” gibt. “open” wird mir allerdings nicht angezeigt, warum auch immer!

  40. Hallo Jörg,

    vielen Dank für die Anleitung. Ich will das bald ausprobieren, weil die Anwesenheitsprüfung für iPhones über die Fritzbox doch eher suboptimal ist!

    Funktionieren die Treiber, wie oben beschrieben eigentlich für jeden Bluetooth Stick? Ich würde gerne einen Klasse 1 Stick von Hama verwenden, da dieser eine sehr hohe Reichweite (100m) hat. Der von dir angegebene Stick wird nur mit 10m angegeben.
    Da wir ein Haus über 3 Etagen haben, möchte ich versuchen, alle mit einem Stick abzudecken! Deshalb der Anspruch an die große Reichweite!

    Falls das nicht geht, kann ich auch Bluetooth Sticks an die Fritzbox hängen und die irgendwie in Fhem abfragen? Ich habe bisher immer nur gelesen, dass Leute dafür RPi’s genommen haben.
    Ich habe nämlich den RPi im Keller und im EG und OG jeweils eine Fritzbox. Wenn ich da überall für 10€ eine Bluetooth Stick rein mache und diese mit Fhem abfragen könnte, wäre das wahrscheinlich ideal!

    Würde mich über eine Antwort, vielleicht sogar über einen Blog hierzu sehr freuen.

    MfG Sebastian

    1. Hi Sebastian,
      ob die Treiber bei jedem Stick funktionieren, kann ich nicht sagen. Die Chancen sollten aber generell gut stehen, dass es auch mit deinem Bluetooth-Stick klappt. Alle drei Stockwerke mit nur einem Stick abzudecken, ist wohl eher schwierig, auch wenn du nur Pappwände hast. Stahl und Beton dämpfen enorm, da wird oft selbst die Überbrückung eines Stockwerks schwierig. An die Fritzbox lässt sich natürlich auch ein Stick anschließen, dann musst du auf deine Fritzbox noch ein FHEM-Image parallel aufspielen. Wie das funktioniert, hat Christoph im Blogpost FHEM mit FritzBox 7390 und CUL Stick – Professionelle Hausautomation beschrieben. Ich würde es persönlich aber eher über einen oder zwei weitere RPI lösen, aber das ist natürlich Geschmackssache.

      Grüße und viel Erfolg
      Jörg

  41. Moin Jörg.

    Ich mal wieder. Was soll ich sagen? Das ganz System funktioniert prima, bekomme die Meldungen aller meiner Kontakte wie vorgesehen.
    Ich verkabele derzeit meine Fernsehwand usw. komplett neu. Einige der Steckdosen würde ich dann gerne mit einem ELV FS20 SU-3 abschalten, an diesen Dosen hängen TV, Verstäker, Subwoofer usw.
    Der derzeitige Befehler lautet:

    define Fenster_auf notify Kontakt.*:opened { if (Value(“Handy_Mike”) eq “absent” && Value(“Handy_Silke”) eq “absent”) { system (“curl -s -F ‘token=XXXXXXXXXXXXXXXXXXXX’ -F ‘user=XXXXXXXXXXXXXXXXXXXXXX’ -F ‘message=Achtung\nDas Fenster @ wurde geöffnet.’ https://api.pushover.net/1/messages.json”)} }

    Wenn ich aber bei absend die FS20 SU3 abschalten und erst wieder bei present zuschalten will, wie programmiert man das? Kannst Du mir helfen?
    So könnte ich immer mehr Geräte im Haus ab- bzw. zuschalten, je nachdem ob wir nun da sind oder nicht.

    mfg
    Mike

    1. Moin, tja, da waren sie wieder meine Probleme. Kannst Du mal ein Beispiel posten? Dann verstehe ich das vielleicht und kann es anpassen.
      mfg
      Mike

  42. define alles_aus notify Bluetooth:absent set FS20 off

    Bluetooth und FS20 ersetzen mit deinen Gerätenamen. Mit Licht schalten über Türkintakt funktioniert es so bei mir.

  43. Hallo Jörg,
    Nachdem ich schon sehr viele Deiner Beispiele verwendet habe, will ich hier einmal Danke sagen. Deine Arbeit inspiriert wirklich sehr. Ich habe die Anwesenheitserkennung eingebunden, jedoch später die dummys bzw. die notifys durch DOIF ersetzt. Läuft wirklich super.
    Auf hoffentlich noch viele weitere Hausautomations-Szenarien.
    Grüße aus dem Bergischen
    Carsten

    1. Hi Carsten,
      vielen Dank für dein Lob! Sowas lese ich natürlich immer gerne.
      Uns gehen bestimmt noch lange nicht die Inhalte aus, keine Angst.
      Der nächste Artikel zu FHEM wird übrigens morgen früh pünktlich um 7:00 Uhr veröffentlicht. Da du dich bereits zum Newsletter angemeldet hast (danke dafür!), wirst du künftig nichts verpassen. 🙂

      Grüße und weiterhin viel Spaß auf dem Blog
      Jörg

  44. Hallo Jörg und alle FHEM Begeisterten,

    ich habe die Abwesenheitserkennung mit meinem Fensterkontakt gekoppelt. Da ich im Dachgeschoss wohne und Dachfenster habe müssen diese natürlich bei Abwesenheit geschlossen sein damit es nicht rein regnet. Echt klasse das ganze funktioniert auch. Allerdings kommt es hin und wieder vor, dass sich die Abwesenheitserkennung “abschießt”. Es aktualisiert sich also nicht. Gibt es da jemanden mit ähnlichen Problemen und einer möglichen Lösung?

    Danke!

    Viele Grüße
    Marcel

  45. Hallo Jörg,

    eine Verständnisfrage zu deinem Code bezüglich des Dummys.

    attr HA.Jay eventMap 1

    Was bewirkt das “eventMap 1”? Das frage ich mich jetzt schon geraume Zeit und ich komme einfach nicht drauf. Für eine kurze Info wäre ich dankbar 🙂

    Schöne Grüße
    Chris

    1. Hi Chris,
      denke in dieser Form kann das Attribut auch einfach weggelassen werden. Damit können Statuswerte umformatiert werden, so dass bspw. “on” als “open” angezeigt wird. Mehr Infos in der FHEM-Referenz.

      Grüße
      Jörg

    2. Hi Jörg,

      ja genau deswegen verstand ich denn Sinn der “1” nicht.
      Das man damit Statuswerte umbenennen kann habe ich in der Referenz gefunden, aber in dieser Form mit der “1” konnte ich da keinen Sinn erkennen.

      Also hat es eigentlich keinen Effekt.

      Danke für die Info!

      Grüße
      Chris

  46. Hi,

    hab anhand der Ausführung die Idee gehabt, mich benachrichtigen zu lassen, falls bspw. das Licht noch um 23:00 eingeschaltet ist.

    Leider bekomme ich das Script nicht mit einer IF Abfrage ans laufen – ohne klappt es…also muss ich was übersehen (oder ich bin einfach zu blind):

    define push_licht_an at *23:00:00 {if Licht=on {system (“curl -s -F ‘token=abc’ -F ‘user=def’ -F ‘message=Wohnzimmerbeleuchtung noch an’ https://api.pushover.net/1/messages.json”)}}}

    Licht ist eine schaltbare 433MHz Steckdose (Typ dummy).

    1. Hi Christian,
      rein von der Syntax müsste eine geschweifte Klammer am Schluss entfernt werden, oder sehe ich das falsch? Aktuell gehen zwei Klammern auf und drei wieder zu…

      Grüße
      Jörg

  47. Hallo Christian,
    ich möchte mir einen Bluetooth USB-Dongle für meinen RPI anschaffen.
    Kannst Du mir eine Kaufempfehlung geben?
    Wie sieht’s mit diesem hier aus: “CSL – USB micro Bluetooth-Adapter V4.0 | Class 4.0 Technologie | neuester Standard | Plug & Play | Windows 10 fähig” bei Amazon.de.
    Über jeden Tipp würde ich mich freuen.
    Im Voraus vielen Dank!
    Gruß
    Jürgen

  48. Hallo Jörg,
    erstmal Glückwunsch zu diesem tollen Blog, hat mir schon häufig weitergeholfen aber diesmal komme ich nicht weiter; ich würde mir gerne per Pusch jeden Tag zu einer bestimmten Urzeit die Temperatur von der Terrasse schicken lassen aber ich komme trotz deiner Anleitung nicht weiter, so sieht die Config aus:

    define Pushover1 Pushover xxxxxxxx xxxxxxxxxx

    define AussentempPushover at *18:58 {my $TETemperatur = ReadingsVal(“Temperatur_aussen”,”temperature”, “”) fhem (“set Pushover1 msg ‘Temperatur $TETemperatur’ “)}

    Hier der Auszug aus dem Log:

    2015.11.23 18:58:00 1: PERL WARNING: Bareword found where operator expected at (eval 227) line 1, near “) fhem”
    2015.11.23 18:58:00 3: eval: {my $TETemperatur = ReadingsVal(“Temperatur_aussen”,”temperature”, “”) fhem (“set Pushover1 msg ‘Temperatur $TETemperatur’ “)}
    2015.11.23 18:58:00 3: AussentempPushover: syntax error at (eval 227) line 1, near “) fhem ”

    Ich hab schon alles möglich ausprobiert aber ich komme nicht weiter. Hoffe Du oder jemand anderes kann mir helfen.

    Vielen Dank
    Rene

    1. Hat sich erledigt, hab es schluss endlich doch geschafft 🙂 So hat es funktioniert:

      define aussentempPushover at *12:00 {my $TETemperatur = ReadingsVal(“Temperatur_aussen”,”temperature”, “”);; my $TEHumidity = ReadingsVal(“Temperatur_aussen”,”humidity”, “”);; fhem (“set Pushover1 msg ‘Terrasse\nTemperatur $TETemperatur°C\nLuftfeuchte $TEHumidity%'”)}

  49. Gibt es denn auch die möglichkeit einer verkettung?
    Da ich ein windows Phone habe nutze ich den Pushalot Dienst, meine Frau hat ein Iphone dort wäre es der Pushover Dienst.
    Wenn ich sie einzen benutze funktioniern die Dienste, geht es aber auch sie zu verketten?

    define KTrocknerTrockenvorgangAbgeschlossenPushover notify K.TrocknerBetrieb:standby {system (“curl -s -F \”AuthorizationToken=b1937ca11e4*********23\” -F ‘Body=Trockenvorgang abgeschlossen’ https://pushalot.com/api/sendmessage”)
    und
    system(“curl -s -F ‘token=aPGbA6B*********pBv’ -F ‘user=u37yBCH**********bRgm9De7’ -F ‘message=Trockenvorgang abgeschlossen’ https://api.pushover.net/1/messages.json”)}

    Gruß Mathias

  50. Ich habe die Anwesenheitserkennung per Bluetooth einrichten. Dadurch landen aber alle Bluetooth-Anfragen in meiner sqlite-Datenbank und muellt diese sehr schnell voll.
    Leider habe ich es nicht geschafft diese speziell auszuschließen.
    Für eine Hilfestellung wäre ich sehr dankbar.
    Gruß Martin

  51. Hallo Jörg,

    ich bin noch ziemlich am Anfang von FHEM. Mittlerweile funktioniert alles. Dann bin ich auf diese Anleitung gestoßen und dachte mir nur WOW. Das will ich auch. Der Bluetooth Stick ist noch nicht da, aber das ganz funktioniert auch ohne nicht. Ich habe folgenden Code eingefügt. Benutze die MAX Fensterkontakte, daher open auf opened geändert:

    #WZ.UnautorisierteBalkontueroeffnung#
    define WZ.UnautorisierteBalkontueroeffnung dummy
    attr WZ.UnautorisierteBalkontueroeffnung room Sicherheit
    define WZUnautorisierteBalkontueroeffnungAn notify WZ.Fensterkontakt:opened.* { fhem (“set WZ.UnautorisierteBalkontueroeffnung on”) if (Value(“HA.Jay”) eq “off”)}
    define WZUnautorisierteBalkontueroeffnungAus notify WZ.Fensterkontakt:opened.* { fhem (“set WZ.UnautorisierteBalkontueroeffnung off”) if (Value(“HA.Jay”) eq “on”)}
    define WZUnautorisierteBalkontueroeffnungPushover notify WZ.UnautorisierteBalkontueroeffnung:on { system (“curl -s -F ‘token=XXXXXXi’ -F ‘user=XXXXXX’ -F ‘message=Unautorisierte Balkontüröffnung’ https://api.pushover.net/1/messages.json”)}
    #

    Der Test mit “set WZ.UnautorisierteBalkontueroeffnung on” bringt mir auch sofort eine Pushmeldung aufs Smartphone, nur wenn ich die Tür öffne, passiert nichts. Die Ansätze von Mike von 2013 bringen mich auch nicht weiter.

    Kannst du mir helfen ?

    Gruß Jörn

    1. Hat sich erledigt. Hatte einen Tippfehler im Abschnitt bei HA.JAY.

      Jetzt muss nur noch der BT Stick kommen 🙂

  52. du benutzt homematic
    dumme frage: gehen evtl. die befehle nicht mit z-wave geräten?
    ich hatte mal so etwas beim dimmbefehl, der nur mit homematic befehlen ging.

  53. Hallo,
    bei mir funktioniert die Anwesenheitserkennung problemlos. Jedoch nicht die Abwesenheit. In den Logs und unter “HA.JayBluetooth” wird absent angezeigt, bzw. nach dem Bluetooth-Gerät gesucht, aber es wird dann nicht ausgeführt, dass das BT-Gerät nicht mehr da ist nach 3 Minuten. (“set HA.Jay off” wird nicht ausgeführt) Also unter Haus -> HA.Jay ist die Lampe immer gelb. Habe jetzt schon mehrmals den obige Code kopiert und eingefügt (mit verschiedenen Programmen, sodass es nicht an Formatierungsfehlern liegen kann.

    Das komische, es hat bis jetzt 2 Mal funktioniert.

    1. Genau das Gleiche habe ich auch seit ein paar Tagen. Nach einem Neustart geht es wieder ein paar Mal und dann wieder nicht mehr.

  54. Ich will das Thema nochmal aufgreifen, da ich es bisher nicht hinbekommen habe, das es wieder geht. Hier mein Code:

    define HA.JayBluetooth PRESENCE local-bluetooth 68:05:71:B2:76:6F 10 60
    attr HA.JayBluetooth room [Steuerung]
    define HA.Jay dummy
    attr HA.Jay eventMap 1
    attr HA.Jay room Sicherheit
    define FileLog_HA.Jay FileLog ./log/HA.Jay-%Y-%m.log HA.Jay
    attr FileLog_HA.Jay logtype text
    attr FileLog_HA.Jay room [Steuerung]
    define HAJayOn notify HA.JayBluetooth:present { fhem (“set HA.Jay on setstate watchdogHAJayBluetoothAbwesend defined”) if (Value(“HA.Jay”) ne “on”) }
    attr HAJayOn room [Steuerung]
    define watchdogHAJayBluetoothAbwesend watchdog HA.JayBluetooth:absent 00:03
    HA.JayBluetooth:present set HA.Jay off
    attr watchdogHAJayBluetoothAbwesend regexp1WontReactivate 1
    attr watchdogHAJayBluetoothAbwesend room Sicherheit

  55. Hallo,
    ich habe bei mir auch eine Pushbenachrichtigung mit Pushbullet eingerichtet. Dabei hat mir die Lösung hier sehr geholfen allerdings hatte ich bei oben angeführter Lösung das Problem das sich der Status des Dummys nicht automatisch wieder auf “off” gesetzt hat nachdem er einmal ausgelöst wurde. Darum hab ich es etwas modifizieren müssen und 4 notifys angelegt.

    Nutze den Fensterkontakt von MAX.

    Anbei mein Ergebnis mit Pushbullet
    #Bluetooth Anwesenheit einrichten
    define Smartphone.AndreasBT presence local-bluetooth XX:XX:XX:XX:XX:XX 30 60

    #PushBullet einrichten
    define Push Pushbullet AccessToken

    #Dummy anlegen
    define SZ.fensteroffen dummy
    attr SZ.fensteroffen room 7_Dummys

    #SZ.Fensteroffen definieren
    define SZFensteroffenAn notify SZ.Fenster_li:open.* { fhem (“set SZ.fensteroffen on”) if (ReadingsVal(“Smartphone.AndreasBT”,”state”,””) eq “absent”)}

    define SZFensteroffenAus notify SZ.Fenster_li:open.* { fhem (“set SZ.fensteroffen off”) if (ReadingsVal(“Smartphone.AndreasBT”,”state”,””) eq “present”)}

    define SZFensteroffenAus2 notify SZ.Fenster_li:clos.* { fhem (“set SZ.fensteroffen off”) if (ReadingsVal(“Smartphone.AndreasBT”,”state”,””) eq “present”)}

    define SZFensteroffenAus3 notify SZ.Fenster_li:clos.* { fhem (“set SZ.fensteroffen off”) if (ReadingsVal(“Smartphone.AndreasBT”,”state”,””) eq “absent”)}

    #Push Message bei unautorisierter Öffnung senden
    define SZunautorisierteFensteroeffnung notify SZ.fensteroffen:on { fhem (“set Push message Fensteroffen”)}

    Kann ich das Ganze irgendwie eleganter lösen ohne 4 notifys zu benötigen? Meine Kenntnisse sind dazu anscheinend noch nicht ausreichend um das besser zu lösen.

  56. Hallo Jörg,

    wie immer ein sehr guter Eintrag. Habe schon vieles nach euren Anlitungen “erfolgreich” umsetzten können, dafür schon mal DANKE!!!
    Doch, wie soll es auch sein, habe ich eine Frage!
    Ich würde gerne per Bluetooth und WLAN glechzeitig (nicht über die FritzBox) sonder über LAN-ping die Anwesenheit erkennen.
    Mir ist an der stelle jetzt nicht klar, ob ich für den Lan-ping ein neues Device anlegen muss, oder ob ich schon das vorhandene Device (Bluetooth) ergänzen kann?
    Kann ich z.B. unter dem “define HA.JayBluetooth” noch unter DEF den lan-ping “define Handy PRESENCE lan-ping 192.168.0.30 60” miteingeben?

    Hoffe du verstehst meine Frage.

    Danke
    Sascha

  57. Hallo Jörg,

    ich lese mehr in deinem Blog als das ich schrieb. Wollte nur mal danke sagen! Hab mir hier über die Jahre einiges an Ideen geholt und auch das ein oder andere nachgebastelt…ganz nebenbei ein tolles Hobby gefunden.

    also: Danke!

  58. Hallo Jörg,

    ich habe die Pushover-Batteriewarnung ausprobiert und bekomme alle 1-2min. eine
    Pushnachricht (Batteriewarnungn@ %).
    Es sind aber alle Batterien “ok”
    Habe alles so übernommen, nur Token und User angepasst.
    Ich habe nur HM Geräte in Betrieb.
    Wo kann mein Fehler liegen?

    Gruß Ralf

  59. Hallo Jörg,

    erstmal großes Lob für deinen Blog, es hilft mir als Anfänger ungemein.
    Nun wollte die Anwesenheitserkennung mit Bluetooth nach Neuinstallation erneut einrichten.
    Allerdings kommt beim Installversuch folgende Meldung:

    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    Package bluez-utils is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source
    However the following packages replace it:
    bluez

    E: Package ‘bluez-utils’ has no installation candidate

    Gibt es hierfür eine Alternative?

    Danke
    Sascha

  60. Hallo Jörg,
    als erstes möchte ich für deine super Beschreibung Danke sagen. Das ist genau das, was ich gesucht hab und es hat Danke der guten Anleitung super geklappt.
    Allerdings ist mir aufgefallen, dass nach einer unautorisierten Türöffnung zwar eine Pushmitteilung geschickt wird, aber der Status des FL.UnautorisierteTueroeffnung Dummys auf on bleibt, auch wenn ich wieder zu Hause bin. Ist das so gewollt, oder hab ich einen Fehler beim übernehmen deines Codes gemacht? Im Log taucht zumindest kein Fehler auf.

    Ich würde mich freuen, wenn du meinen Post beantworten würdest. Besten Dank und viele Grüße
    Nick

  61. Hallo Jörg,
    nachdem ich mich durch deine Super Anleitung gearbeitet habe konnte ich die Präsenzanzeige und die Pushnachricht bei unerlaubter Türöffnung erfolgreich umsetzen. Ich habe im Endeffekt deinen Code 1:1 übernommen und lediglich Jay durch Nick ersetzt. Soweit so gut. Ich konnte sogar einen weiteren Türsensor in den Code integrieren.

    Allerdings würde ich jetzt gerne bei der Benachrichtigung sehen, welcher der beiden Türsensoren ausgelöst hat. Nachdem ich alle Kommentare durchgearbeitet habe, konnte ich zwar was finden, was meinem Problem ähnelt, das einfügen des @ Zeichens in die Nachricht brachte aber leider keinen Erfolg.

    Zusätzlich ist mir noch aufgefallen, dass der Status FL.UnautorisierteTueroeffnung nicht zurückgesetzt wird. Dieser bleibt immer Aktiv. Kennst du das Problem?

    Hier noch der Teil des Codes, den ich angepasst habe:

    # – FL.UnautorisierteTueroeffnung definieren –
    define FLUnautorisierteTueroeffnungAn notify FL.Tuerkontakt:open.*|FL.Tuerkontakt2:open.* { fhem (“set FL.UnautorisierteTueroeffnung on”) if (Value(“HA.Nick”) eq “off”)}
    attr FLUnautorisierteTueroeffnungAn room System
    define FLUnautorisierteTueroeffnungAus notify FL.Tuerkontakt:open.*|FL.Tuerkontakt2:open.* { fhem (“set FL.UnautorisierteTueroeffnung off”) if (Value(“HA.Nick”) eq “on”)}
    attr FLUnautorisierteTueroeffnungAus room System

    # – Pushover Notification bei unautorisierter Türöffnung –
    define FLUnautorisierteTueroeffnungPushover notify FL.UnautorisierteTueroeffnung:on { system (“curl -s -F ‘token=xxxxxxxxxxxxxxxxxxxxxx’ -F ‘user=yyyyyyyyyyyyyyyyyy’ -F ‘message=Unautorisierte Türöffnung’ https://api.pushover.net/1/messages.json”)}
    attr FLUnautorisierteTueroeffnungPushover room System

    Weiter so mit deinem Tollen Blog. Dieser war und ist mir und sicher auch vielen Anderen eine super Hilfe. Daumen Hoch!

    Danke und Gruß
    Nick

  62. Erstmal Glückwunsch zu dem tollen Blick.

    define Garage_Auf2 DOIF ([19:00-19:30] and [Garage_Tuer:&STATE] eq “open”) ({system (“curl -s -F ‘token=xxxx’ -F ‘user=yyyy’ -F ‘message=Garagentür @ noch auf %’ https://api.pushover.net/1/messages.json”)})

    Funktioniert auch soweit aber die Meldung ist etwas merkwürdig
    Garagentür @ noch auf %
    Sollte da nicht
    Garagentür Garage_Tuer noch auf open
    Stehen ?

Schreibe einen Kommentar zu Frank Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte dir auch gefallen