# Seltsames Problem mit dem Sensor

**URL:** <https://community.gladysassistant.com/t/problematique-etrange-sur-capteur/6650>\
**Category:** Développement\
**Created:** [1. November 2021 um 21:04 UTC](https://community.gladysassistant.com/t/problematique-etrange-sur-capteur/6650 "2021-11-01T21:04:39Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jean-Philippe](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/j/5fc32e/32.png) [@Jean-Philippe](https://community.gladysassistant.com/u/Jean-Philippe)\
**Post date:** [1. November 2021 um 21:04 UTC](https://community.gladysassistant.com/t/problematique-etrange-sur-capteur/6650/1 "2021-11-01T21:04:40Z")

</div>

Hallo,

Ich lasse meine Enocean-Integration seit einigen Wochen bei mir laufen und stelle zwei seltsame Dinge fest (zusammenhängend oder nicht).

Tatsächlich erhalte ich (un)regelmäßig keine Daten mehr unter Gladys über meinen USB-Stick, so eine Art Abmeldung, aber ich sehe es nicht. Ich habe Logs für die Ereignisse ‹&nbsp;error&nbsp;› und ‹&nbsp;disconnect&nbsp;› eingerichtet.

Und daneben habe ich etwas Seltsames in der Datenbank, am ganzen Wochenende sind meine «&nbsp;Abmeldungen&nbsp;» gegen 19-20 Uhr aufgetreten.  
Und auf der Seite der Datenbank in der Tabelle t\_device\_feature\_state sehe ich für alle meine Sensoren (Bewegung, Temperatur..):

```auto
1f7b9ce4-94b2-4670-bc5d-90d20b9b7dd4|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.9803921568627|2021-11-01 09:39:57.068 +00:00|2021-11-01 09:39:57.068 +00:00
b9860941-5d3e-4164-aa19-51c7a337ffe9|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.9803921568627|2021-11-01 09:45:23.598 +00:00|2021-11-01 09:45:23.598 +00:00
9429c876-7b6e-42ba-a709-b14b5b88b0b8|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.9803921568627|2021-11-01 09:59:22.333 +00:00|2021-11-01 09:59:22.333 +00:00
02b2ab5c-e478-4f11-85bb-fc7164de0b6b|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.9803921568627|2021-11-01 10:20:33.522 +00:00|2021-11-01 10:20:33.522 +00:00
b9173868-e0c1-400f-a6b9-63ea39150dff|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.9803921568627|2021-11-01 10:39:58.708 +00:00|2021-11-01 10:39:58.708 +00:00
6ed685b3-c176-4118-8d7e-49f772bc30ee|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 10:59:23.562 +00:00|2021-11-01 10:59:23.562 +00:00
cd48bfc0-762a-4b28-b6cb-7e4589ab22bb|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 11:22:20.263 +00:00|2021-11-01 11:22:20.263 +00:00
f4dec7a4-a645-4545-bbbc-41d1e089fea8|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 11:45:16.839 +00:00|2021-11-01 11:45:16.839 +00:00
e6a208f1-8af6-4c0a-9e2f-4bec66b29f1e|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 12:04:41.729 +00:00|2021-11-01 12:04:41.729 +00:00
8e2dc968-334e-4c0a-aca2-bc15353b9768|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 12:22:20.787 +00:00|2021-11-01 12:22:20.787 +00:00
bec4cdd3-8670-4168-9b7b-19e63f948cc9|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.9803921568627|2021-11-01 12:34:42.147 +00:00|2021-11-01 12:34:42.147 +00:00
bc51b55a-6c4c-46d5-bb16-b3235cd478f8|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.9803921568627|2021-11-01 12:50:35.352 +00:00|2021-11-01 12:50:35.352 +00:00
f306a703-20a0-441c-80e9-2e45c58a10cb|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 13:04:42.519 +00:00|2021-11-01 13:04:42.519 +00:00
b9652656-0d24-4f56-8937-99b7643dbe28|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 13:25:53.392 +00:00|2021-11-01 13:25:53.392 +00:00
b0c01dab-6d81-4a9b-8748-0f84ddee5a14|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.6666666666667|2021-11-01 13:43:32.095 +00:00|2021-11-01 13:43:32.095 +00:00
f56a6232-7d55-49d9-89b0-dc652d6b9bd5|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.6666666666667|2021-11-01 13:55:53.322 +00:00|2021-11-01 13:55:53.322 +00:00
7d64dece-4d70-4a07-a984-1baa557ab521|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.6666666666667|2021-11-01 14:11:46.290 +00:00|2021-11-01 14:11:46.290 +00:00
1e0f303e-1ffb-45f5-ba92-88b199cbfe41|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.9803921568627|2021-11-01 16:39:09.804 +00:00|2021-11-01 16:39:09.804 +00:00
7f84deec-719c-4278-be6b-a86e7c8e4a84|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.9803921568627|2021-11-01 16:39:10.124 +00:00|2021-11-01 16:39:10.124 +00:00
29231c1a-006b-4267-98eb-5a1ab03aca71|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.9803921568627|2021-11-01 16:39:12.117 +00:00|2021-11-01 16:39:12.117 +00:00
4cdbcb3d-47d5-4ef0-863d-7d1afd4efa52|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 16:39:13.270 +00:00|2021-11-01 16:39:13.270 +00:00
c7f2386d-fa4e-46e8-b9b0-5c346b921acd|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 16:39:14.246 +00:00|2021-11-01 16:39:14.246 +00:00
aca660b6-cdd3-4e49-b852-17cd62ecdc7a|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 16:39:15.149 +00:00|2021-11-01 16:39:15.149 +00:00
fa2276e7-f472-4846-9fdb-ea04f1a1cde6|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 16:39:15.867 +00:00|2021-11-01 16:39:15.867 +00:00
2756217f-d583-4636-a8f1-d7039dc5642c|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 16:39:16.995 +00:00|2021-11-01 16:39:16.995 +00:00
df6af10b-164e-427d-b533-bf951263b035|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.9803921568627|2021-11-01 16:39:17.343 +00:00|2021-11-01 16:39:17.343 +00:00
017ef6a6-66e4-4145-a40d-ad0baea4575d|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.9803921568627|2021-11-01 16:39:17.986 +00:00|2021-11-01 16:39:17.986 +00:00
eb4e768d-b775-4cd5-b7e9-eab5e179769b|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 16:39:18.654 +00:00|2021-11-01 16:39:18.654 +00:00
1aa1b5f3-d1b8-45cf-bc23-5850911926d3|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.8235294117647|2021-11-01 16:39:19.553 +00:00|2021-11-01 16:39:19.553 +00:00
adf67493-cd66-4b24-8eee-70ff6a8bdc8d|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.6666666666667|2021-11-01 16:39:20.888 +00:00|2021-11-01 16:39:20.888 +00:00
9f5e71fc-e462-4a83-839a-1f58c45b7bb1|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.6666666666667|2021-11-01 16:39:21.255 +00:00|2021-11-01 16:39:21.255 +00:00
7f9eaef6-a9d3-454c-92ac-ddc147fbdda0|b9f7354c-67e5-44ae-91bc-f4ba0f3b5eff|18.6666666666667|2021-11-01 16:39:22.124 +00:00|2021-11-01 16:39:22.124 +00:00

```

Die zuletzt gespeicherten Zustände, bevor die «&nbsp;Pseudo-Abmeldung&nbsp;» auftrat, scheinen Duplikate der vorherigen N Zustände zu sein.  
Ich glaube nicht, dass alle Sensoren zu fluten beginnen (insbesondere unterschiedliche Werte, die aber mit den vorherigen identisch sind).

Beim Nachdenken habe ich die laufenden Entwicklungen zu den Datenaggregationsaufgaben für die Diagramme zum Testen zusammengeführt.  
Gibt es da keinen Zusammenhang? Ein Neu schreiben in die Datenbank?

Das Problem ist, dass ich am Ende nicht weiß / nicht denke, dass diese Inkonsistenzen in der Datenbank mit meiner «&nbsp;Abmeldung&nbsp;» meines Geräts zusammenhängen, insbesondere weil das Log-Flood nicht zur gleichen Zeit für alle Sensoren auftritt.

Ich bin für Hilfe, Tipps zur Untersuchung offen, ich bin am Ende.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [2. November 2021 um 01:28 UTC](https://community.gladysassistant.com/t/problematique-etrange-sur-capteur/6650/2 "2021-11-02T01:28:58Z")

</div>

Das sagt mir nichts!

Ich würde eher auf ein Problem bei der EnOcean-Integration tippen. Gibt es in der von dir verwendeten Bibliothek/deinem Code etwas, das das verursachen könnte?

---

<div class="post-metadata">

**Author:** ![Jean-Philippe](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/j/5fc32e/32.png) [@Jean-Philippe](https://community.gladysassistant.com/u/Jean-Philippe)\
**Post date:** [3. November 2021 um 06:55 UTC](https://community.gladysassistant.com/t/problematique-etrange-sur-capteur/6650/3 "2021-11-03T06:55:11Z")

</div>

Ich habe es nochmal überprüft, aber nein, ich verstehe es nicht, gestern Abend ist es wieder gegen 19 Uhr ausgefallen.

Ich habe Debugging aktiviert, um zu sehen, was passiert, und um etwa 18:48 Uhr habe ich Dutzende und Dutzende Mal dieselben Events. Ich habe ein `console.log` auf den Event `on.('data')` gesetzt, ein paar Zeilen nachdem der Payload decodiert wurde, und ich sehe immer wieder dieselben Geräte…

Ich verstehe es nicht, als ob es N Mal einen Event-Receiver gäbe…

Nun, da ich es auf meiner Seite unter `pm2` gestellt habe, hatte ich schon Überraschungen mit `pm2`, also starte ich heute mit einem `nohup npm start` neu

Ich werde das Ergebnis heute Abend sehen.

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [3. November 2021 um 07:39 UTC](https://community.gladysassistant.com/t/problematique-etrange-sur-capteur/6650/4 "2021-11-03T07:39:37Z")

</div>

> [@Jean-Philippe](#):
>
> Ich verstehe nicht ganz, als ob es N-mal einen Event-Receiver gäbe …

das riecht nach einem Bug im Code, bei dem du den Event-Listener n-mal hinzufügst. Hast du einen Link zum fraglichen Code-Snippet? 🙂

---

<div class="post-metadata">

**Author:** ![Jean-Philippe](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/j/5fc32e/32.png) [@Jean-Philippe](https://community.gladysassistant.com/u/Jean-Philippe)\
**Post date:** [3. November 2021 um 19:49 UTC](https://community.gladysassistant.com/t/problematique-etrange-sur-capteur/6650/5 "2021-11-03T19:49:58Z")

</div>

> <https://github.com/Jean-PhilippeD/Gladys/blob/enocean-service/server/services/enocean/lib/commands/enocean.connect.js#L38>

Hier setze ich den Listener.  
Ich sehe nicht, wo ich diesen Fehler gemacht haben könnte. Außerdem tritt er nach mehreren Stunden normalen Betriebs auf und zufällig bei verschiedenen Geräten.

Ich grabe weiter…

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [4. November 2021 um 03:06 UTC](https://community.gladysassistant.com/t/problematique-etrange-sur-capteur/6650/6 "2021-11-04T03:06:40Z")

</div>

Du hängst den Listener jedes Mal an, wenn die Funktion connect() aufgerufen wird, bist du sicher, dass connect nur einmal aufgerufen wird?

Ich sehe, dass du in der Funktion «&nbsp;stop&nbsp;» des Dienstes nichts machst, normalerweise sollte der Dienst alles bereinigen, was im «&nbsp;start&nbsp;» eingerichtet wurde (einschließlich der Listener):

 ![Screenshot 2021-11-04 at 11.05.16](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/f/f29ebcca89bfb70a8fcdcfa81cb585631f00fa06.png)

---

<div class="post-metadata">

**Author:** ![Jean-Philippe](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/j/5fc32e/32.png) [@Jean-Philippe](https://community.gladysassistant.com/u/Jean-Philippe)\
**Post date:** [4. November 2021 um 06:49 UTC](https://community.gladysassistant.com/t/problematique-etrange-sur-capteur/6650/7 "2021-11-04T06:49:11Z")

</div>

Ich werde die Clean-Architecture-Elemente tatsächlich am Ende hinzufügen.

Was den Connect betrifft, wird er nur einmal aufgerufen, und wenn ich die Logs überprüfe, ist das konsistent.

---

<div class="post-metadata">

**Author:** ![Jean-Philippe](https://gladys-assistant-community.b-cdn.net/letter_avatar_proxy/v4/letter/j/5fc32e/32.png) [@Jean-Philippe](https://community.gladysassistant.com/u/Jean-Philippe)\
**Post date:** [6. November 2021 um 13:52 UTC](https://community.gladysassistant.com/t/problematique-etrange-sur-capteur/6650/8 "2021-11-06T13:52:29Z")

</div>

Ich glaube, ich habe die Ursache meines Problems gefunden.  
Danke @pierre-gilles, es war wahrscheinlich ein Problem mit nicht gereinigten Listenern auf Seiten der von mir verwendeten Bibliothek.  
In einigen Fehlerfällen bin ich in eine Timeout-Bedingung geraten und in diesem Moment wurden die Listener nicht gereinigt.

Ich habe es bei mir gepatcht, ich werde es laufen lassen, um zu sehen.

> <https://github.com/enocean-js/enocean-js/issues/247>
>
> Hi
> 
> I found an issue when using serialport-sender:
> 
> https://github.com/enoce…an-js/enocean-js/blob/master/packages/node\_modules/%40enocean-js/serialport-sender/src/serialport-sender.js#L12
> 
> When data.packetype is not equal to 2 (I don't know yet but sometimes, I got packetype = 1 with \`WRONG CHECKSUM errors\`) and thus the listeners are not removed in the callback neither when the timeout is fired,
> 
> And when this happend, I got many many event listeners stack until I got the error \`MaxListenersExceededWarning\` and my code stop working.
