Mit PIR am ESP32 über ESPEasy in FHEM eine Steckdose schalten

Begonnen von helmutgeorg, 27 August 2020, 13:13:06

Vorheriges Thema - Nächstes Thema

helmutgeorg

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?

Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

helmutgeorg

hallo,
das habe ich schon ausprobiert. Hat nichts gebracht.

Beta-User

"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 ;) .
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

helmutgeorg

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.

Beta-User

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.)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Otto123

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 
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Beta-User

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)).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

helmutgeorg

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.


Beta-User

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.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

helmutgeorg

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