Servus,
habe heute meinen iButton installiert.
Das ganze geht über ein ESP8266 board und wird über MQTT sicher übermittelt
Nun leider habe ich ein Problem. Es wird nur ein Status gesendet, wenn der iButton aufliegt. Dieser wird jede Sekunde gesendet. Bei Abnahme des iButtons erfolgt keine Benachrichtgung.
Wie kann ich es machen, dass sobald 5 Sekunden kein incoming publsch kam das der Status auf 0 zurückgesetzt wird?
Aktueller Dummy:
define ibutton MQTT_DEVICE
attr ibutton IODev MyBroker
attr ibutton alias Zugang Wohnung KEY NICO
attr ibutton devStateIcon {"ibutton":{"id":014XXXXXXXXX}}:fts_door_open: 0:fts_door:
attr ibutton genericDeviceType ContactSensor
attr ibutton group ATueren
attr ibutton homebridgeMapping ContactSensorState=state,values=0:Fensterzu
attr ibutton room Homekit
attr ibutton stateFormat Temperature
attr ibutton subscribeReading_Temperature /ESP0008C50C/json
Status dauerthaft: {"ibutton":{"id":014XXXXXXXXX}}
gerne würde ich dann nach 5 Sekunden ohne incoming publish den Status auf 0 setzen.
Wäre klasse wenn ihr mir helfen könntet
Dankeschön!
Viele Grüße
Nico
Mit einem notify auf das auslösende Event triggern und dann im Befehlsteil des notify mit "sleep 5 ibuttonID; setreading $NAME ...." einen Timer starten, der durch neue auslösende Events überschrieben wird und ansonsten nach 5 Sekunden den Befehl setreading... abarbeitet.
Weitere Details dazu findest Du hier:
http://fhem.de/commandref.html#notify
http://fhem.de/commandref.html#sleep
http://fhem.de/commandref.html#setreading
Servus
Danke für die Antwort.
define ibutton_on notify ibutton.* {\
fhem("sleep 5 ibuttonID")};;{\
fhem("setreading ibutton Temperature 0")};;{\
}
was ist an meinem Code falsch? FHEM friert ein und setzt dann auf 0...
Danke dir für deine Hilfe!
Grüße
Nico
Das Wechseln auf die Perlebene ist unnötig und in diesem Fall blockierend, da auf das sleep kein Befehl folgt. Also entweder ohne Perl oder beide fhem(...) zu einem zusammenfassen. Die regexp solltest du noch weiter einengen.
Dafür wäre doch der Watchdog geeignet.
Einen Watchdog fänge ich an der Stelle übertrieben, man muss nur sleep richtig anwenden und die regexp weiter einschränken, damit das notify sich nicht selbst ständig triggert. Aber bevor wir hier noch lange rummachen:
define n_ibutton notify ibutton:Temperature:.*ibutton.* sleep 5 ID_$EVTPART1;; setreading $NAME Temperature 0
Zitat von: accloginsell am 26 November 2016, 20:50:19
Servus,
habe heute meinen iButton installiert.
Das ganze geht über ein ESP8266 board und wird über MQTT sicher übermittelt
Nun leider habe ich ein Problem. Es wird nur ein Status gesendet, wenn der iButton aufliegt. Dieser wird jede Sekunde gesendet. Bei Abnahme des iButtons erfolgt keine Benachrichtgung.
Wie kann ich es machen, dass sobald 5 Sekunden kein incoming publsch kam das der Status auf 0 zurückgesetzt wird?
Aktueller Dummy:
define ibutton MQTT_DEVICE
attr ibutton IODev MyBroker
attr ibutton alias Zugang Wohnung KEY NICO
attr ibutton devStateIcon {"ibutton":{"id":014XXXXXXXXX}}:fts_door_open: 0:fts_door:
attr ibutton genericDeviceType ContactSensor
attr ibutton group ATueren
attr ibutton homebridgeMapping ContactSensorState=state,values=0:Fensterzu
attr ibutton room Homekit
attr ibutton stateFormat Temperature
attr ibutton subscribeReading_Temperature /ESP0008C50C/json
Status dauerthaft: {"ibutton":{"id":014XXXXXXXXX}}
gerne würde ich dann nach 5 Sekunden ohne incoming publish den Status auf 0 setzen.
Wäre klasse wenn ihr mir helfen könntet
Dankeschön!
Viele Grüße
Nico
Hallo accloginsell,
ich bin schon seit einigen Wochen auf der Suche iButtons als Zutrittskontrolle in meiner FHEM-Umgebung zu nutzen. Ich hatte selbst mal eine sehr gut funktionierende iButton Auswertung auf einem Arduino geschrieben leider funktioniert das Programm aber nicht auf dem ESP8266, ich hatte da Probleme die Bibliothek auf den ESP zu bekommen. Weiterhin hatte ich dann probiert, mein vorhandenes Programm auf dem Arduino zu lassen, die Daten per RX-TX an einen ESP01 zu übergeben und dann über ESP-Link an Fhem zu übertragen.. Aber leider ist es beim Versuch geblieben, Erfolg hatte ich damit nicht.
Kannst du mir und auch allen anderen Interessierten vieleicht sagen wie du das ganze aufgebaut hast? Welche Hardware, welche Software u.s.w.