ESPresense

Begonnen von The-Holgi, 31 August 2022, 15:28:19

Vorheriges Thema - Nächstes Thema

denis.robel

Hallo,

ich möchte das Beispiel anpassen und habe verschiedene Mifit Fitnestracker am Start. Ich verstehe aber nicht so richtig woher lctn_tile-cb4adc70f897 kommt.

Zitat von: ReviloEgros am 24 Mai 2023, 05:41:59attr ESPresense userReadings presense_frank {if (ReadingsVal('ESPresense', 'lctn_tile-cb4adc70f897', '-') eq "-") {return "absent"} else {return "present"}}

Brauche ich zwingend mehrere ESP32 oder geht auch zum Testen ein einzelner?
Muss der Name des MQTT Devices 'ESPresense' heissen, oder kann ich den frei wählen?
Brauche ich pro ESP32 ein MQTT device? (wird ja via autocreate angelegt)

Es wäre ein kleines Howto für "Anfänger" gut, kann mir da jemand ein paar Hinweise geben?
VG

Denis

denis.robel

#16
Ok, ich hab es hinbekommen:

1. ESP flashen
2. MQTT Device für ESP wird automatisch angelegt via autocreate
3. 99_MyUtils_ESPresense.pm anlegen und mit dem Inhalt von Christian befüllen
4. Sammeldevice ESPresense anlegen

Jetzt muss ich das ganze nur noch mit dem ROMMATE-Device verheiraten. Dazu brauche ich aber einzelne Devices mit einem Presence Reading.
Kann ich pro BLE Device ein ESPresense Devices anlegen oder muss ich das über einzelne Dummies erledigien?

@Christian: vielen Dank für das Teilen Deines Codes
VG

Denis

denis.robel

Prinzipiell funktioniert alles.
Da einige ESPs auber auch die Straße vor dem Haus scannen,wir die readingList des ESP Devices immer länger.
Jedes vorbeifahrende BLE Device bekommt ein neues eigenes Reading.

Kann man irgendwie unterbinden, dass das Anlegen neuer Readings für das Device nicht erfolgt?

VG

Denis

Icinger

Du kannst in den ESPresence-Einstellungen unter "Filtering" angeben, welche Geräte durchgereicht werden sollen.

https://espresense.com/configuration/settings#filtering
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

denis.robel

Danke für den Hinweis, damit klappt es natürlich.
VG

Denis

Reinschki

Zitat von: choenig am 14 September 2022, 16:27:05Na gut,

hier ist mein Code.

Das ist mein MQTT2_DEVICE in meinem secondary-Fhem (hier muss <DEVICES_TO_WATCH_RE> angepasst werden):

defmod ESPresense MQTT2_DEVICE
attr ESPresense IODev mqtt2__client_mosquitto
attr ESPresense event-on-change-reading .*
attr ESPresense readingList espresense/devices/<DEVICES_TO_WATCH_RE>.*:.* { MyUtils_ESPresense_updateFromMQTT($NAME, $TOPIC, $EVENT) }
attr ESPresense room ESPresence
attr ESPresense timestamp-on-change-reading .*

Im Anhang ist mein 99_MyUtils_ESPresense.pm.

Der Code geht davon aus, dass die Räume keine Unterstriche enthalten, die Readings sind so aufgebaut:

dist_<DEVICE>_<ROOM> => aktueller Abstand des <DEVICE> zum <ROOM> ('∞' wenn nicht anwesend)
lctn_<DEVICE>        => aktueller Raum (location) des <DEVICE>    ('-' wenn nicht anwesend)
room_<ROOM>          => aktuelle Anzahl der Devices im <ROOM>     ('0' wenn nicht belegt)

Viel Spass damit :)

Das letzte, was mir so noch nicht gefällt, ist, dass die Geräte manchmal zwischen Räumen hin-und-herspringen. Das möchte ich noch verbessern. Gleichzeitig möchte ich aber die Agilität nicht verlieren. Mal sehen, was da so geht. Ach ja, und vermutlich werde ich noch was implementieren, dass man mehrere ESP32s in einem Raum haben kann. Das unterstützt ESPresense so noch nicht, da werde ich mir ein Schema überlegen.

LG
Christian


Hallo Christian,

habe deinen Code "99_MyUtils_ESPresense.pm" in Verwendung und bin sehr zufrieden.
Ich hätte das mit meinen Fähigkeiten nicht so professionell hinbekommen.

Vielen Dank dafür!!

Gruß
Reiner