Autor Thema: ESPresense  (Gelesen 1163 mal)

Offline The-Holgi

  • Sr. Member
  • ****
  • Beiträge: 667
ESPresense
« am: 31 August 2022, 15:28:19 »
Hallo,
bin gerade über ESPresense „gestolpert“. https://espresense.com/
Da die Kommunikation über MQTT läuft, sollte es doch auch mit Fhem funktionieren.
Hat das schon Jemand getestet ?

Gruß Holger
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

Offline choenig

  • Developer
  • Full Member
  • ****
  • Beiträge: 434
  • Module: MieleAtHome, WS980, [ALP600]
Antw:ESPresense
« Antwort #1 am: 04 September 2022, 14:57:11 »
Hi Holger,

ich habe gerade angefangen, ESPresense in mein FHEM zu integrieren, sehr cooles Projekt :)

Dafür hab' ich bislang 8 ESP32 DevKits im Haus verteilt und mir ein kleines MyUtils-Modul geschrieben, welches die Daten auswertet.

LG
Christian

Offline The-Holgi

  • Sr. Member
  • ****
  • Beiträge: 667
Antw:ESPresense
« Antwort #2 am: 07 September 2022, 17:12:41 »
Hallo Christian,
hast du Lust ein bißchen mehr darüber zu erzählen, oder deinen MyUtils „Code“ zu teilen?

Gruß Holger
HP T610 Thin Client; Docker Fhem 5.9; 2X CUL V3 868mhz; Max Heizungssteuerung; FS20kse; FS20UWS; FS20S8-3; 2 FS20DI; HM-CFG-LAN,HM-LC-SW1-PL,HM-SEC-SD, HM-SE1PBU-FM;
Harmony Hub;Hue-Bridge mit Iris, E27 Bulb & FLS-PP

Offline choenig

  • Developer
  • Full Member
  • ****
  • Beiträge: 434
  • Module: MieleAtHome, WS980, [ALP600]
Antw:ESPresense
« Antwort #3 am: 07 September 2022, 18:45:24 »
Hi Holger,

gerne beides, den Code aber erst, nachdem ich ihn aufgeräumt habe :)

Das "Modul" wird zusammen mit einem MQTT2_Device verwendet. Das MQTT2_DEVICE lauscht auf dem `espresence/devices/.*` topic und ruft die MyUtils Funktion auf, die dann mittels der kürzesten Entfernung zum Device den aktuellen Raum für jedes Gerät, das ich beobachte, errechnet und in readings speichert. Das Vorgehen funktioniert aber nur gut, wenn viele ESP32s verteilt sind.

Die readings sehen dann ungefähr so aus:

dist_CHo_AppleWatch5_bad 7.04
dist_CHo_AppleWatch5_buero 1.16
dist_CHo_AppleWatch5_eingang ∞
dist_CHo_AppleWatch5_essbereich 7.54
dist_CHo_AppleWatch5_kueche ∞
dist_CHo_AppleWatch5_schlafzimmer 5.66
dist_CHo_AppleWatch5_sportzimmer 5.29
dist_CHo_AppleWatch5_waschraum ∞
dist_CHo_AppleWatch5_wohnzimmer 4.62
dist_CHo_iPhone12Pro_bad 5.86
dist_CHo_iPhone12Pro_buero 2.72
dist_CHo_iPhone12Pro_eingang ∞
dist_CHo_iPhone12Pro_essbereich 8.68
dist_CHo_iPhone12Pro_kueche ∞
dist_CHo_iPhone12Pro_schlafzimmer 8.2
dist_CHo_iPhone12Pro_sportzimmer 5.6
dist_CHo_iPhone12Pro_waschraum ∞
dist_CHo_iPhone12Pro_wohnzimmer 1.46
dist_INE_AppleWatch5_bad ∞
dist_INE_AppleWatch5_buero ∞
dist_INE_AppleWatch5_eingang ∞
dist_INE_AppleWatch5_essbereich ∞
dist_INE_AppleWatch5_kueche ∞
dist_INE_AppleWatch5_schlafzimmer ∞
dist_INE_AppleWatch5_sportzimmer ∞
dist_INE_AppleWatch5_waschraum ∞
dist_INE_AppleWatch5_wohnzimmer ∞
dist_INE_iPhone12Pro_bad ∞
dist_INE_iPhone12Pro_buero ∞
dist_INE_iPhone12Pro_eingang ∞
dist_INE_iPhone12Pro_essbereich ∞
dist_INE_iPhone12Pro_kueche ∞
dist_INE_iPhone12Pro_schlafzimmer ∞
dist_INE_iPhone12Pro_sportzimmer ∞
dist_INE_iPhone12Pro_waschraum ∞
dist_INE_iPhone12Pro_wohnzimmer ∞
lctn_CHo_AppleWatch5 buero
lctn_CHo_iPhone12Pro wohnzimmer
lctn_INE_AppleWatch5 -
lctn_INE_iPhone12Pro -
room_bad 0
room_buero 1
room_eingang 0
room_essbereich 0
room_kueche 0
room_schlafzimmer 0
room_sportzimmer 0
room_waschraum 0
room_wohnzimmer 1
total 2

Aufgrund der hohen Anzahl an Updates, die da berechnet werden, habe ich das auf meinem 2. FHEM laufen, in dem alles läuft, was ruhig dauern darf. Von da pumpe ich es per mqtt in mein Haupt-FHEM.

Das Hauptproblem ist noch, dass es doch immer wieder vorkommt, dass er im 2-5 Sekundentakt den Raum wechselt, wenn ich z.B. unterhalb des Büros im Wohnzimmer bin. Da muss ich noch eine Stabilisierung einbauen. Dabei möchte ich aber nicht die agilität verlieren, die ich zur Zeit habe. Der Raumwechsel wird in der Regel innerhalb von 5-10 Sekunden erkannt, und das "nach-Hause-kommen" sofort, wenn man vor dem Haus steht, da kommt Meine Unifi-basierte Lösung nicht mit.

Was mir noch fehlt, sind Ideen, wie man das ganze Verwenden kann :).

Zwei Anwendungsfälle habe ich umgesetzt:
* Im Keller-Flur bleibt so lange das Licht an, bis niemand mehr im Waschraum ist. Dadurch spare ich mir 2 Bewegungsmelder, die vorher den ganzen Bereich ausleuchten mussten.
* Im Dachgeschoss schliesse ich den Rolladen nicht mehr bei Regen, wenn jemand im Zimmer ist. Der hat das dann wohl selber unter Kontrolle und möchte Lüften.

Soweit erstmal

LG
Christian

Offline Klaus Heynen

  • Jr. Member
  • **
  • Beiträge: 56
Antw:ESPresense
« Antwort #4 am: 14 September 2022, 15:46:25 »
Hallo Christian,
hab das jetzt seit gestern auch mal ausprobiert (mit zus. angeschlossenen PIR Sensoren auf Port22).
Habe 5 Räume damit "vermient"
Ja, die Anzahl der readings ist schon beängstigend.
Vielleicht muss man da auf der ESPresense Seite mal schauen ob man es nicht anpassen kann.
Obwohl ich im Set-up Telemetrie aus geschaltet habe, sendet ESPresesne weiterhin die Daten.

Wäre schön wenn Du deinen Code bald veröffentlichen würdest.

Schön wäre eine Funktion die die einzelnen Räume miteinander Abgleicht in dem man Bewegungs- Zeitprofile erstellt und auswertet und auch die PIR Sensoren integriert. Denn BT schaut ja durch die Wände und da kann ja ein Beacon durchaus nahe am einem ESPresense sein aber leider auf der anderen Seite einer Wand.

Anwendung ist neben der Lichtsteuerung eine Steuerung der Heizung und der Audioanlage.


Grüße Klaus

Offline choenig

  • Developer
  • Full Member
  • ****
  • Beiträge: 434
  • Module: MieleAtHome, WS980, [ALP600]
Antw:ESPresense
« Antwort #5 am: 14 September 2022, 16:27:05 »
Na 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
Zustimmung Zustimmung x 1 Liste anzeigen

Offline Klaus Heynen

  • Jr. Member
  • **
  • Beiträge: 56
Antw:ESPresense
« Antwort #6 am: 14 September 2022, 16:30:12 »
Vielen Dank Christian!

Offline Klaus Heynen

  • Jr. Member
  • **
  • Beiträge: 56
Antw:ESPresense
« Antwort #7 am: 14 September 2022, 17:57:15 »
Hab mal überlegt, eigentlich müsste mal doch mit 3 ESPresense eine Triangulation hin bekommen und mit 4 oder mehr auch im 3D Raum.
Was meinst Du?

Offline choenig

  • Developer
  • Full Member
  • ****
  • Beiträge: 434
  • Module: MieleAtHome, WS980, [ALP600]
Antw:ESPresense
« Antwort #8 am: 14 September 2022, 20:41:13 »
Puh,

keine Ahnung, ich bin schon oft überrascht, wie unterschiedlich die Entfernungsangaben sind. Mein iPhone ist in meiner Hosentasche und sagt 2,80m, während die Apple Watch 0,75 sagt, und recht damit hat.

Ich glaube eher, dass viele ESPs viel helfen ;).

LG
Christian

Offline ReviloEgros

  • New Member
  • *
  • Beiträge: 40
Antw:ESPresense
« Antwort #9 am: 29 Oktober 2022, 21:13:42 »
Ich wollte nur ein mal danke sagen für dein MyUtils Modul. Habe es jetzt seit ein paar Tagen in benutzung und muss sagen es läuft bisher sehr gut. Habe nur eine kleine Anpassung vorgenommen, da FHEM einen : im Readingnamen verbietet, welcher ja bei den IDs vorkommt. Hatte vorher die Anwesenheitserkennung über mehrere PIs mit lepresenced am laufen, aber da war mir die Zuverlässigkeit bisher immer ein Dorn im Auge. Entweder ist das Bluetooth System auf den PIs abgeschmiert, presense Melungen im collector hängen geblieben oder selbst die lepresensed daemons sind ausgestiegen. Nun hab ich ein paar ESPs im Haus verteilt und habe nun endlich ruhe!
Gefällt mir Gefällt mir x 1 Liste anzeigen

 

decade-submarginal