Präsenz über readings eines ESPbridge-Gerätes erkennen / smartes Schlüsselbrett

Begonnen von McElch, 18 Dezember 2023, 19:52:13

Vorheriges Thema - Nächstes Thema

McElch

Nachdem die WIFI Erkennung auch bei uns immer unzuverlässiger wurde, habe ich jetzt ein digitales Schlüsselbrett gebaut. Unsere Schlüssel bekommen Klinkenstecker als Anhänger und werden zu Hause bei Anwesenheit in die Buchsen des Schlüsselbretts gesteckt und sind so aufgeräumt.

Die Klinkenbuchsen sind jeweils auf einen digitalen I/O des ESP geklemmt und senden (wohl per MQTT), ob ein Schlüssel/Stecker steckt oder nicht.

Soweit die Theorie. Ich wollte das eigentlich über structure realisieren. Die espBridge sendet aber pro Port eine state, der nicht einfach on oder off ist, sondern Por: on oder Por: off. Schlimmer noch: nach einer Weile geht der state auf absent, weshalb man dann am state gar nicht mehr ablesen kann ob der Schalter ein oder aus ist. Es gibt aber ein Reading für jede Buchse, nämlich Port1 (bis Port4), da steht immer zuverlässig einfach nur on oder off.

Ich möchte also so etwas wie eine Structure haben, die ähnlich wie beim Presence Modul Anwesenheit definiert, nämlich Jemand da = in einem beliebigen Port steckt ein Schlüssel, oder keiner da: in keinem Port steckt ein Schlüssel.

Wie geht das? Gibt es da vielleicht etwas besseres / anderes als Struchture?

Das hier steht mir pro Port zur Verfügung:

defmod ESPEasy_Key1 ESPEasy x.x.x.x 80 espBridge ESP_Easy_Plug1
attr ESPEasy_Key1 userattr marshall marshall_map structexclude
attr ESPEasy_Key1 IODev espBridge
attr ESPEasy_Key1 Interval 300
attr ESPEasy_Key1 group ESPEasy Device
attr ESPEasy_Key1 presenceCheck 1
attr ESPEasy_Key1 readingSwitchText 1
attr ESPEasy_Key1 room ESPEasy
attr ESPEasy_Key1 setState 3

setstate ESPEasy_Key1 absent
setstate ESPEasy_Key1 2023-12-18 19:37:05 Port1 on
setstate ESPEasy_Key1 2023-12-18 19:49:22 presence absent
setstate ESPEasy_Key1 2023-12-18 19:49:22 state absent

Vielen Dank im Voraus!


Laffer72

Hallo,

Du kannst die Funktionalität von Roommate- und Residents-Modul nutzen.
Bei Roommate kannst Du in den Attributen rr_presenceDevice auch ein auch ein zu überwachendes Device oder Reading angeben.

z.B.:
define rr_McElch ROOMMMATE
attr rr_McElch rr_presenceDevice ESPEasy_key1:Port1

Da kannst Du ganz umfangreiche Anwesenheitskonfigurationen vornehmen. Einfach mal die Hilfe dazu lesen.
Falls das so nicht klappt kannst Du den Status von ROOMMATE auch über ein NOTIFY oder DOIF setzen.

Hoffe, das hilft Dir ein bisserl weiter.

Viele Grüße

Reinhard

Raspberry Pi Rev.B, FB7390 (FHEM2FHEM), Sonos, Smarter Coffee
Osram Lightify:2m LED-Streifen, 5m-LED-Streifen, Gartenspot, Surface 28W, Classic E14,E27, Classic RGBW E27, PAR16 GU10, Plug
CUL868:FS20-ST, FS20-DI, FS20-FMS, FS20-ES1
HMUSB:HM-Sec-RHS,HM-Sec-MDIR2
Jeelink868:TX-29-IT, TFA30.315