Ich habe seit gestern ein Problem: Mein Gladys interagiert nicht mehr mit meinen Geräten und ist nicht mehr „auf dem neuesten Stand“.
Alle meine Diagramme sind am 2. Juni stehengeblieben (obwohl alles bis vor etwa zwei Tagen funktioniert hat).
Wenn ich auf meine lokale Instanz zugreife, ist alles aktuell, kein Problem… Was passiert da?
Ein Hinweis von dir @pierre-gilles?
Okay, ich habe ein Problem: Das Problem wiederholt sich.
Trotzdem bei mir: Keine Netzwerkprobleme, ich habe kein Stromproblem, da alles an einem USV hängt.
Da ich nicht herausfinden kann, wann die Verbindung unterbrochen wird, bin ich etwas ratlos, was die Logs angeht.
Was ich heute Morgen bemerkt habe, ist, dass meine Gladys-Logs völlig mit Telegram-Fehlern überschwemmt sind:
2024-06-28T09:05:27+0200 <warn> message.connect.js:19 (TelegramBot.<anonymous>) Telegram polling error, code = ETELEGRAM, message = ETELEGRAM: 409 Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
Es gibt Hunderte davon in den wenigen Logs, die ich herausgefiltert habe.
Außerdem frage ich ChatGPT, was er dazu denkt, und er schlägt vor, einen Befehl zu testen:
Das ist nicht so schlimm, damit werde ich schon fertig. Aber was ich seltsam finde, ist, dass ich keinen Node-RED-Fluss finde, der dieselbe API verwendet wie die in Gladys konfigurierte …!
Und ich hatte tatsächlich einen Node-Red-Fluss, der denselben Telegram-Kanal wie Gladys nutzte. Ich habe diesen Node-Red-Fluss deaktiviert, und seitdem läuft Gladys deutlich besser.
Aber noch nicht perfekt, ich hatte einen weiteren Absturz, den ich aber nicht sofort analysieren konnte… Also bin ich jetzt in „Beobachtungsmodus“, mit einer Gladys-Szene, die sich alle Stunden auslöst und mir eine „keep alive“-Nachricht in Telegram schreibt, um den nächsten Absturz effektiv zu erkennen
Aber ich habe im Moment leider keine Zeit, mich hinzusetzen und das alles ernsthaft zu analysieren…
Vielleicht gibt es hier eine kleine Verwechslung, die « 33ms Ping » bedeutet nur, dass dein Frontend mit dem Gladys-Backend (rein lokal) verbunden ist, das bedeutet nicht, dass Gladys mit dem Internet verbunden ist.
Gestern gab es keine besonderen Probleme mit der Infrastruktur. Ich habe jedoch keine Details pro Instanz.
Hast du die Logs überprüft, ob etwas nicht in Ordnung ist? Die Aktivität auf deinem Gerät?
2024-07-02T04:00:00+0200 <info> device.purgeStates.js:29 (DeviceManager.purgeStates) Löscht Gerätemerkmalzustände der letzten 90 Tage. Zustände, die älter als Mi Apr 03 2024 04:00:00 GMT+0200 (Mitteleuropäische Sommerzeit) sind, werden gelöscht.
2024-07-02T04:00:06+0200 <warn> device.calculateAggregate.js:95 (Socket.<anonymous>) device.calculateAggregate stderr: Fehler
at Database.<anonymous> (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:179:27)
at /src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:177:50
at new Promise (<anonymous>)
at Query.run (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:177:12)
at /src/server/node_modules/sequelize/lib/sequelize.js:314:28
at async SQLiteQueryInterface.bulkUpdate (/src/server/node_modules/sequelize/lib/dialects/abstract/query-interface.js:366:12)
at async t_device_feature.update (/src/server/node_modules/sequelize/lib/model.js:1958:28)
at async /src/server/lib/device/device.calculcateAggregateChildProcess.js:153:5 {
name: 'SequelizeTimeoutError',
parent: [Error: SQLITE_BUSY: Datenbank ist gesperrt] {
errno: 5,
code: 'SQLITE_BUSY',
sql: 'UPDATE `t_device_feature` SET `last_hourly_aggregate`=$1,`updated_at`=$2 WHERE `id` = $3'
},
original: [Error: SQLITE_BUSY: Datenbank ist gesperrt] {
errno: 5,
code: 'SQLITE_BUSY',
sql: 'UPDATE `t_device_feature` SET `last_hourly_aggregate`=$1,`updated_at`=$2 WHERE `id` = $3'
},
sql: 'UPDATE `t_device_feature` SET `last_hourly_aggregate`=$1,`updated_at`=$2 WHERE `id` = $3',
parameters: {}
}
all values are hidden
2024-07-02T04:00:06+0200 <warn> device.calculateAggregate.js:101 (ChildProcess.<anonymous>) device.calculateAggregate: Beendet Kindprozess mit Code 1
2024-07-02T04:00:19+0200 <info> device.purgeAggregateStates.js:31 (DeviceManager.purgeAggregateStates) Löscht Gerätemerkmalzustände der letzten 365 Tage. Zustände, die älter als Mo Jul 03 2023 04:00:19 GMT+0200 (Mitteleuropäische Sommerzeit) sind, werden gelöscht.
2024-07-02T04:00:19+0200 <error> device.onHourlyDeviceAggregateEvent.js:22 (DeviceManager.onHourlyDeviceAggregateEvent) Error: Error
at Database.<anonymous> (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:179:27)
at /src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:177:50
at new Promise (<anonymous>)
at Query.run (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:177:12)
at /src/server/node_modules/sequelize/lib/sequelize.js:314:28
at async SQLiteQueryInterface.bulkUpdate (/src/server/node_modules/sequelize/lib/dialects/abstract/query-interface.js:366:12)
at async t_device_feature.update (/src/server/node_modules/sequelize/lib/model.js:1958:28)
at async /src/server/lib/device/device.calculcateAggregateChildProcess.js:153:5 {
name: 'SequelizeTimeoutError',
parent: [Error: SQLITE_BUSY: Datenbank ist gesperrt] {
errno: 5,
code: 'SQLITE_BUSY',
sql: 'UPDATE `t_device_feature` SET `last_hourly_aggregate`=$1,`updated_at`=$2 WHERE `id` = $3'
},
original: [Error: SQLITE_BUSY: Datenbank ist gesperrt] {
errno: 5,
code: 'SQLITE_BUSY',
sql: 'UPDATE `t_device_feature` SET `last_hourly_aggregate`=$1,`updated_at`=$2 WHERE `id` = $3'
},
sql: 'UPDATE `t_device_feature` SET `last_hourly_aggregate`=$1,`updated_at`=$2 WHERE `id` = $3',
parameters: {}
}
all values are hidden
at ChildProcess.<anonymous> (/src/server/lib/device/device.calculateAggregate.js:102:23)
at ChildProcess.emit (node:events:517:28)
at maybeClose (node:internal/child_process:1098:16)
at Process.ChildProcess._handle.onexit (node:internal/child_process:303:5)
Könnte das davon kommen?
Denn ich stelle fest, dass meine Verbindung zu Gladys Plus heute Morgen wieder ausgefallen ist…
Verdammt … Daran glaubte ich
Ich werde weitersuchen, das Problem ist, dass ich nie weiß, wann die Verbindung abbricht, ich merke es meistens erst, wenn ich nicht zu Hause bin
Was mir auffällt, ist, dass der RAM-Verbrauch stark abnimmt, wenn ich Gladys neu starte:
Er sinkt von 1,9 GB auf etwa 250 MB
Hier sind die Startprotokolle (ich weiß nicht, was interessant ist oder nicht):
Container started
2024-07-02T13:14:19+0200 <info> job.purge.js:17 (Job.purge) Löschen aller Hintergrundaufträge, die vor = Di 25 Jun 2024 13:14:19 GMT+0200 (Mitteleuropäische Sommerzeit) erstellt wurden
2024-07-02T13:14:21+0200 <info> index.js:14 (Object.start) Alexa-Dienst wird gestartet
2024-07-02T13:14:21+0200 <info> index.js:20 (Object.start) Open Weather-Dienst wird gestartet
2024-07-02T13:14:21+0200 <info> index.js:88 (Object.start) CalDAV-Dienst wird gestartet
2024-07-02T13:14:21+0200 <info> index.js:15 (Object.start) Enedis-Dienst wird gestartet
2024-07-02T13:14:21+0200 <info> index.js:18 (Object.start) GoogleCast-Dienst wird gestartet
2024-07-02T13:14:21+0200 <info> index.js:16 (Object.start) Z-Wave JS UI-Dienst wird gestartet
2024-07-02T13:14:21+0200 <info> service.start.js:40 (Service.start) Der Dienst zwavejs-ui ist nicht konfiguriert, daher wurde er nicht gestartet.
2024-07-02T13:14:21+0200 <info> index.js:17 (Object.start) Sonos-Dienst wird gestartet
2024-07-02T13:14:21+0200 <info> index.js:17 (Object.start) Netatmo-Dienst 2c286e6d-2a29-4b91-acff-6f4d942430a4 wird gestartet
2024-07-02T13:14:21+0200 <info> service.start.js:40 (Service.start) Der Dienst netatmo ist nicht konfiguriert, daher wurde er nicht gestartet.
2024-07-02T13:14:21+0200 <info> init.js:14 (NodeRedManager.init) Nodered: ist nicht aktiviert, wird übersprungen...
2024-07-02T13:14:21+0200 <info> index.js:27 (Object.start) MELCloud-Dienst 1ef9a32d-2664-4a3b-8824-ac983bb3cc12 wird gestartet
2024-07-02T13:14:21+0200 <info> service.start.js:40 (Service.start) Der Dienst melcloud ist nicht konfiguriert, daher wurde er nicht gestartet.
2024-07-02T13:14:21+0200 <info> index.js:17 (Object.start) Tuya-Dienst d94188bc-9520-4043-9171-3e8dc9c4ee48 wird gestartet
2024-07-02T13:14:21+0200 <info> service.start.js:40 (Service.start) Der Dienst tuya ist nicht konfiguriert, daher wurde er nicht gestartet.
2024-07-02T13:14:21+0200 <info> index.js:16 (Object.start) Nextcloud Talk-Dienst wird gestartet
2024-07-02T13:14:21+0200 <info> service.start.js:40 (Service.start) Der Dienst nextcloud-talk ist nicht konfiguriert, daher wurde er nicht gestartet.
2024-07-02T13:14:21+0200 <info> index.js:17 (Object.start) LAN Manager-Dienst wird gestartet
2024-07-02T13:14:21+0200 <info> lan-manager.initPresenceScanner.js:18 (LANManager.initPresenceScanner) LANManager-Konfiguration: Präsenzscanner wird gestartet
2024-07-02T13:14:21+0200 <info> index.js:16 (Object.start) Broadlink-Dienst wird gestartet
2024-07-02T13:14:22+0200 <info> index.js:18 (Object.start) HomeKit-Dienst wird gestartet
2024-07-02T13:14:22+0200 <info> index.js:14 (Object.start) GoogleActions-Dienst wird gestartet
2024-07-02T13:14:22+0200 <info> init.js:63 (Zigbee2mqttManager.init) Zigbee2mqtt-USB-Dongle ist an /dev/ttyUSB0 angeschlossen
2024-07-02T13:14:22+0200 <info> checkForContainerUpdates.js:14 (Zigbee2mqttManager.checkForContainerUpdates) Überprüfung der installierten Versionen und erforderlichen Updates...
2024-07-02T13:14:22+0200 <info> installMqttContainer.js:114 (Zigbee2mqttManager.installMqttContainer) MQTT-Broker-Container erfolgreich gestartet
2024-07-02T13:14:22+0200 <info> configureContainer.js:23 (Zigbee2mqttManager.configureContainer) Z2M Docker-Container wird konfiguriert...
2024-07-02T13:14:22+0200 <info> configureContainer.js:36 (Zigbee2mqttManager.configureContainer) Z2M-Konfigurationsdatei existiert bereits.
2024-07-02T13:14:23+0200 <info> installZ2mContainer.js:90 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt-Container erfolgreich gestartet
2024-07-02T13:14:23+0200 <info> connect.js:25 (Zigbee2mqttManager.connect) Verbindung von Gladys zum MQTT-Broker mqtt://localhost:1884...
2024-07-02T13:14:23+0200 <error> index.js:20 (process.<anonymous>) uncaughtException gefangen: uncaughtException
2024-07-02T13:14:23+0200 <error> index.js:21 (process.<anonymous>) Error: Dienstname wird bereits im Netzwerk verwendet
at Registry._onProbeComplete (/src/server/services/homekit/node_modules/bonjour-hap/lib/Registry.js:108:27)
at Prober.done (/src/server/services/homekit/node_modules/bonjour-hap/lib/Prober.js:67:10)
at Prober.onMDNSresponse (/src/server/services/homekit/node_modules/bonjour-hap/lib/Prober.js:61:102)
at EventEmitter.emit (node:events:517:28)
at Socket.<anonymous> (/src/server/services/homekit/node_modules/multicast-dns/index.js:49:43)
at Socket.emit (node:events:517:28)
at UDP.onMessage (node:dgram:942:8)
2024-07-02T13:14:23+0200 <info> connect.js:35 (MqttClient.<anonymous>) Verbunden mit MQTT-Container mqtt://localhost:1884
2024-07-02T13:14:23+0200 <info> subscribe.js:12 (Zigbee2mqttManager.subscribe) Abonnieren des MQTT-Themas zigbee2mqtt/#
2024-07-02T13:14:23+0200 <info> index.js:18 (Object.start) TP-Link-Dienst wird gestartet
2024-07-02T13:14:23+0200 <info> index.js:17 (Object.start) eWeLink-Dienst wird gestartet
2024-07-02T13:14:23+0200 <warn> service.start.js:44 (Service.start) Dienst ewelink konnte nicht gestartet werden Error500:
at EweLinkHandler.throwErrorIfNeeded (/src/server/services/ewelink/lib/device/index.js:65:11)
at EweLinkHandler.connect (/src/server/services/ewelink/lib/device/connect.js:43:14)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at Object.start (/src/server/services/ewelink/index.js:18:5)
at Service.start (/src/server/lib/service/service.start.js:33:7) {
status: 500,
code: 'SERVER_ERROR',
error: 'eWeLink: Sign:oauthClient enable invalid'
}
2024-07-02T13:14:23+0200 <info> index.js:15 (Object.start) Bluetooth-Dienst wird gestartet
2024-07-02T13:14:23+0200 <info> index.js:15 (Object.start) Tasmota-Dienst wird gestartet
2024-07-02T13:14:23+0200 <info> index.js:14 (Object.start) Xiaomi-Dienst wird gestartet
2024-07-02T13:14:23+0200 <info> index.js:13 (Object.start) USB-Dienst wird gestartet
2024-07-02T13:14:23+0200 <info> index.js:19 (Object.start) Telegram-Dienst wird gestartet
2024-07-02T13:14:23+0200 <info> index.js:18 (Object.start) RTSP-Dienst wird gestartet
2024-07-02T13:14:23+0200 <info> index.js:18 (Object.start) Philips Hue-Dienst wird gestartet
2024-07-02T13:14:23+0200 <info> index.js:16 (Object.start) MQTT-Dienst wird gestartet
2024-07-02T13:14:23+0200 <info> updateContainer.js:13 (MqttHandler.updateContainer) MQTT: Überprüfung auf erforderliche Änderungen...
2024-07-02T13:14:23+0200 <info> updateContainer.js:41 (MqttHandler.updateContainer) MQTT: Kein Container-Update erforderlich
2024-07-02T13:14:23+0200 <info> connect.js:38 (MqttClient.<anonymous>) Verbunden mit MQTT-Server mqtt://localhost
2024-07-02T13:14:23+0200 <info> subscribe.js:12 (MqttHandler.subscribe) Abonnieren des MQTT-Themas stat/+/+
2024-07-02T13:14:23+0200 <info> subscribe.js:12 (MqttHandler.subscribe) Abonnieren des MQTT-Themas tele/+/+
2024-07-02T13:14:23+0200 <info> subscribe.js:12 (MqttHandler.subscribe) Abonnieren des MQTT-Themas gladys/master/#
2024-07-02T13:14:23+0200 <info> index.js:26 (Object.start) EDF Tempo-Dienst wird gestartet
2024-07-02T13:14:23+0200 <info> index.js:17 (Object.start) Ecowatt-Dienst wird gestartet
2024-07-02T13:14:23+0200 <info> index.js:21 (Object.start) Beispiel-Dienst wird gestartet
2024-07-02T13:14:23+0200 <info> scene.dailyUpdate.js:58 () Heute geht die Sonne um 6:18 Uhr in Ihrer Zeitzone (Europe/Paris) auf
2024-07-02T13:14:23+0200 <info> scene.dailyUpdate.js:59 () Heute geht die Sonne um 21:42 Uhr in Ihrer Zeitzone (Europe/Paris) unter
2024-07-02T13:14:23+0200 <info> scene.dailyUpdate.js:70 () Die Sonne ist heute Morgen aufgegangen. Heute wird nichts geplant.
2024-07-02T13:14:23+0200 <info> scene.dailyUpdate.js:81 () Sonnenuntergang ist geplant, in 8 Stunden.
2024-07-02T13:14:24+0200 <info> index.js:64 (Server.<anonymous>) Server hört auf Port 80
2024-07-02T13:14:24+0200 <info> index.js:884 (Socket.<anonymous>) Gladys Gateway: verbunden über Websockets
Ich werde Netdata installieren, ich habe es bereits für mein NAS verwendet, aber ich gestehe, ich bin mit all den Informationen überfordert (vor allem, weil das Tool super leistungsfähig ist!).
Ich habe einen Mini-PC mit einem Core i3 und 8 GB RAM.
Fiber-Anschluss bei Free, der scheinbar völlig stabil ist.