hallo,
bin ziemlicher Neuling auf diesem interessanten Gebiet. Seit Tagen versuche ich das Problem im Betreff zu lösen. Wenn ich den PIR auslöse, erscheint in FHEM PIR:on.
Mein notify sieht so aus:
define PIRan notify ESPEasy_ESP_Easy_PIR PIR{
if (Value ("ESPEasy_ESP_Easy_PIR") eq "on")
{fhem("set steckdose on-for-timer 2")}
}
wenn ich es in der betr. Zeile einfüge, kommt keine Meldung. Jedoch meine steckdose schaltet nicht. Obwohl PIR:on in FHEM angezeigt wird. Wo ist der Fehler?
Herzlich willkommen im Forum!
Bitte liefere zukünftig ein "list" von dem betreffenden Device.
Hier sind gleich ein paar Dinge falsch bzw. mMn. auch nicht optimal:
- der Trigger kann gleich so eingeschränkt werden, dass nur auf "on" reagiert wird
- die Hochkommata sind uU. problematisch
- Value() sollte man zugunsten einer eindeutigeren Variante vermeiden
Versuch's mal so (da braucht man die letzten beiden Punkte dann auch nicht):
define PIRan notify ESPEasy_ESP_Easy_PIR:on set steckdose on-for-timer 2
Kann sein, dass da noch ein Punkt vor dem "on" hin muß, hier hilft ggf. der "Event-Monitor" weiter. Den gleichnamigen Artikel im Wiki sowie den zu notify würde ich dir bei dieser Gelegenheit sehr zur Lektüre empfehlen.
hallo,
das habe ich schon ausprobiert. Hat nichts gebracht.
"Das" läßt Raum für Spekulation. Das Lesen der genannten Artikel...? Auch die Variante mit dem Punkt?
define PIRan notify ESPEasy_ESP_Easy_PIR:.on set steckdose on-for-timer 2
Wenn auch das nicht klappt bitte mal einen passenden Auszug aus dem Event-Monitor liefern ;) und ein "list" von dem "ESPEasy_ESP_Easy_PIR", wie es sich gehört ;) .
auch mit dem Punkt nicht.
Auszug aus Eventmonitor:
Events (Filter: .*) FHEM log
.5
2020-08-27 16:06:38 ESPEasy ESPEasy_ESP_Easy_PIR PIR: off
2020-08-27 16:06:38 ESPEasy ESPEasy_ESP_Easy_PIR PIR: off
2020-08-27 16:06:39 ESPEasy ESPEasy_ESP_Easy_PIR PIR: on
2020-08-27 16:06:39 ESPEasy ESPEasy_ESP_Easy_PIR PIR: on
2020-08-27 16:06:40 ESPEasy ESPEasy_ESP_Easy_Temp_Druck Temperature: 25.6
2020-08-27 16:06:40 ESPEasy ESPEasy_ESP_Easy_Temp_Druck Pressure: 969.6
2020-08-27 16:06:40 ESPEasy ESPEasy_E
PIR:
Save config
CUL_raum
ESPEasy
Unsorted
icoEverything Everything
Logfile
Commandref
Remote doc
Edit files
Select style
Event monitor
DeviceOverview
ESPEasy_ESP_Easy_PIR
PIR: off
ESPEasy_ESP_Easy_PIR
ESPEasy_ESP_Easy_PIR
Internals
DEF
192.168.178.25 80 espBridge ESP_Easy_PIR
ESP_BUILD
20100
ESP_BUILD_GIT
(custom)
ESP_BUILD_NOTES
- Mega32
ESP_NODE_TYPE_ID
ESP Easy 32
ESP_SLEEP
0
ESP_UNIT
0
ESP_VERSION
3
FUUID
5f4675bc-f33f-4dda-993c-e06f673be79bd802
HOST
192.168.178.25
IDENT
ESP_Easy_PIR
INTERVAL
300
IODev
espBridge
LASTInputDev
espBridge
MAX_CMD_DURATION
1
MSGCNT
1865
NAME
ESPEasy_ESP_Easy_PIR
NOTIFYDEV
global
NR
18
NTFY_ORDER
50-ESPEasy_ESP_Easy_PIR
PORT
80
STATE
PIR: off
SUBTYPE
device
TYPE
ESPEasy
VERSION
2.18
espBridge_MSGCNT
1865
espBridge_TIME
2020-08-27 16:09:55
Readings
PIR
off
2020-08-27 16:10:10
Switch
off
2020-08-26 17:37:23
presence
present
2020-08-27 16:07:45
state
PIR: off
2020-08-27 16:10:10
ESPEasy_ESP_Easy_PIR
Attributes
IODev
espBridge
deleteattr
Interval
300
deleteattr
group
ESPEasy Device
deleteattr
presenceCheck
1
deleteattr
readingSwitchText
1
deleteattr
room
ESPEasy
deleteattr
setState
3
deleteattr
Probably associated with
PIRan
active
notify
espBridge
Initialized
ESPEasy
Bin mir nicht sicher, daß das hier richtig ist. Wie gesagt, steige erst hier ein.
OK, jetzt wird es etwas klarer, aber den Artikel "Event-Monitor" hast du vermutlich nicht gelesen: Da wird nämlich erklärt, wie man damit einen Event-Handler (wie notify) erstellt ;) .
So könnte es klappen (ggf. bitte die Zahl der Punkte zwischen PIR und on variieren):
define PIRan notify ESPEasy_ESP_Easy_PIR:PIR..on set steckdose on-for-timer 2
(Zu den Auszügen aus dem Event-Monitor und dem "list" noch kurz:
- Wenn du das in Code-Tags einpackst (der #-Botton oberhalb des Eingabefelds für Text), ist es besser lesbar;
- das "list" ist kein list, sondern eine Kopie vom Detail-View. Bitte den letzten der angepinnten Threads lesen, da steht, wie man richtige lists liefert.)
Hi,
Zitat2020-08-27 16:06:39 ESPEasy ESPEasy_ESP_Easy_PIR PIR: on
2020-08-27 16:06:39 ESPEasy ESPEasy_ESP_Easy_PIR PIR: on
Ob da ein Empfänger mit dem Sperrfeuer klar kommt?
Ich meine ESPEasy_ESP_Easy_PIR:PIR:.on ist schon richtig aber was macht der Empfänger? An und wieder aus?
attr ESPEasy_ESP_Easy_PIR event-on-change-reading .*
setzen!
Gruß Otto
Na ja, hier wird er wohl "on-for-timer" erneuert, was (erst mal) eher unkritisch sein dürfte; aber prinzipiell hast du recht, dass diese (unnötigen?) Mehrfachevents auch ein zu lösendes Problem darstellen ;) .
Allerdings wäre die Frage, ob das auf der FHEM-Seite gelöst werden sollte, oder ob sich da was auf der ESP-Seite verbessern läßt (externen Widerstand einbauen, debounce, ...?).
(@Otto: Auch weil du das gestern im Zusammenhang mit CUL_HM geschrieben hattest (wo das im Prinzip auch von martinp876 so vertreten wird), nochmal meine Meinung zu "eocr .*": Das ist _eine_ Möglichkeit, aber KEIN Allheilmittel. Man sollte die Ausnahmen kennen und vorab checken (und in Fällen wie hier prüfen, ob man nicht die eigentliche Ursache für solche "Geschwätzigkeiten" in den Griff bekommen kann)).
also bisher alle vorgeschlagenen Möglichkeiten ausprobiert. Steckdose schaltet nicht. Der PIR scheint mir normal zu schalten. Habe die Signale auf dem Oszi angeschaut. Keine Prellungen oder mehrmalige Schaltungen.
Fein, was den ESP angeht; dass der dann doppelte Infos liefert, ist m.E. ein "feature", das man dem/den Entwickler(n) melden sollte.
Ansonsten findest du in dem bereits genannten Artikel weitere Hilfestellung: https://wiki.fhem.de/wiki/Notify#Mein_notify_geht_nicht_-_wie_kann_ich_mir_selbst_helfen:_Debugging.
Ohne list vom Zieldevice, Infos dazu, was ggf. im log steht usw. können wir vermutlich dann hier nicht effektiv weiterhelfen.
hallo,
der Hinweis auf das Wiki hat mich weiter gebracht. Weiter unten unter Regexp wizard fand ich die Lösung. Das notify sieht jetzt so aus:
define steckdose_an notify ESPEasy_ESP_Easy_PIR:PIR:.* set steckdose on-for-timer 5
also fast so wie vorgeschlagen. Danke für Eure Bemühungen.
Gruß
Helmut