Aktionen werden in einer großen Szene nicht geladen

Ich weiß nicht, ob das damit zusammenhängt, aber wenn wir viele Auslöser oder Aktionen haben, werden diese nicht vollständig geladen.

Das hat keinen Bezug, also habe ich den Beitrag in ein neues Thema verschoben :slight_smile:

Hast du uns noch mehr Informationen geben?

Kannst du die Konsole deines Browsers überprüfen?

Hier ist, was die Konsole ausgibt, und das lässt Gladys auch abstürzen, aber nicht immer.

Hast du die Details der Anfragen, die fehlschlagen? (Registerkarte „Netzwerk“?)

Crash der Gladys-Container? Ich würde mich über Logs freuen, wenn du welche hast…

Die Logs kann ich dir erst heute Abend geben.

Passt dir das?

Ah, du bist also auf Gladys Plus!

Ich wäre dir dankbar, wenn du mir heute Abend die Details der lokalen Anfragen schicken könntest.

Du findest die Anfragen in Rot im Tab „Network“, und du öffnest sie, um die Antwort anzuzeigen.

ja.

ok, das geht.


Ich habe es lokal getestet und es gab keine Probleme. Es ist mit Gladys Plus, dass es abstürzt.

Wenn das der Fall ist, werde ich zur Konfigurationsseite weitergeleitet.

die Konsole zeigt mir das:

die Logs zeigen mir das.

    at ChildProcess.<anonymous> (/src/server/lib/device/device.calculateAggregate.js:102:23)
    at ChildProcess.emit (events.js:400:28)
    at maybeClose (internal/child_process.js:1058:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:293:5)
2022-03-07T21:27:10+0100 <info> device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Berechnung der Aggregatwerte des Gerätezustands für das Intervall täglich
2022-03-07T21:27:10+0100 <info> gateway.backup.js:46 (Gateway.backup) Gateway-Sicherung: Verschlüsselung der Sicherung
2022-03-07T21:27:10+0100 <info> gateway.backup.js:54 (Gateway.backup) Gateway-Sicherung: Hochladen der Sicherung
2022-03-07T21:27:12+0100 <info> gateway.backup.js:59 (Gateway.backup) Gladys-Sicherung erfolgreich auf Gladys Gateway hochgeladen. gladys-db-backup-2022-3-7-21-27-0.db
2022-03-07T21:27:19+0100 <warn> device.calculateAggregate.js:95 (Socket.<anonymous>) device.calculateAggregate stderr: DatabaseError [SequelizeDatabaseError]: SQLITE_CORRUPT: Datenbank-Image ist beschädigt
    at Query.formatError (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:415:16)
    at Query._handleQueryResponse (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:72:18)
    at Statement.afterExecute (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:246:27) {
  parent: [Error: SQLITE_CORRUPT: Datenbank-Image ist beschädigt] {
    errno: 11,
    code: 'SQLITE_CORRUPT',
    sql: "SELECT `value`, `created_at` FROM `t_device_feature_state` AS `t_device_feature_state` WHERE `t_device_feature_state`.`device_feature_id` = '04d521be-6b56-463a-a0de-5f540ac76a9a' AND `t_device_feature_state`.`created_at` BETWEEN '2022-02-15 23:00:00.000 +00:00' AND '2022-03-06 23:00:00.000 +00:00' ORDER BY `t_device_feature_state`.`created_at` ASC;"
  },
  original: [Error: SQLITE_CORRUPT: Datenbank-Image ist beschädigt] {
    errno: 11,
    code: 'SQLITE_CORRUPT',
    sql: "SELECT `value`, `created_at` FROM `t_device_feature_state` AS `t_device_feature_state` WHERE `t_device_feature_state`.`device_feature_id` = '04d521be-6b56-463a-a0de-5f540ac76a9a' AND `t_device_feature_state`.`created_at` BETWEEN '2022-02-15 23:00:00.000 +00:00' AND '2022-03-06 23:00:00.000 +00:00' ORDER BY `t_device_feature_state`.`created_at` ASC;"
  },
  sql: "SELECT `value`, `created_at` FROM `t_device_feature_state` AS `t_device_feature_state` WHERE `t_device_feature_state`.`device_feature_id` = '04d521be-6b56-463a-a0de-5f540ac76a9a' AND `t_device_feature_state`.`created_at` BETWEEN '2022-02-15 23:00:00.000 +00:00' AND '2022-03-06 23:00:00.000 +00:00' ORDER BY `t_device_feature_state`.`created_at` ASC;",
  parameters: undefined
}

2022-03-07T21:27:19+0100 <warn> device.calculateAggregate.js:101 (ChildProcess.<anonymous>) device.calculateAggregate: Beenden des Kindprozesses mit Code 1
2022-03-07T21:27:19+0100 <error> device.onHourlyDeviceAggregateEvent.js:27 (DeviceManager.onHourlyDeviceAggregateEvent) Error: DatabaseError [SequelizeDatabaseError]: SQLITE_CORRUPT: Datenbank-Image ist beschädigt
    at Query.formatError (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:415:16)
    at Query._handleQueryResponse (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:72:18)
    at Statement.afterExecute (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:246:27) {
  parent: [Error: SQLITE_CORRUPT: Datenbank-Image ist beschädigt] {
    errno: 11,
    code: 'SQLITE_CORRUPT',
    sql: "SELECT `value`, `created_at` FROM `t_device_feature_state` AS `t_device_feature_state` WHERE `t_device_feature_state`.`device_feature_id` = '04d521be-6b56-463a-a0de-5f540ac76a9a' AND `t_device_feature_state`.`created_at` BETWEEN '2022-02-15 23:00:00.000 +00:00' AND '2022-03-06 23:00:00.000 +00:00' ORDER BY `t_device_feature_state`.`created_at` ASC;"
  },
  original: [Error: SQLITE_CORRUPT: Datenbank-Image ist beschädigt] {
    errno: 11,
    code: 'SQLITE_CORRUPT',
    sql: "SELECT `value`, `created_at` FROM `t_device_feature_state` AS `t_device_feature_state` WHERE `t_device_feature_state`.`device_feature_id` = '04d521be-6b56-463a-a0de-5f540ac76a9a' AND `t_device_feature_state`.`created_at` BETWEEN '2022-02-15 23:00:00.000 +00:00' AND '2022-03-06 23:00:00.000 +00:00' ORDER BY `t_device_feature_state`.`created_at` ASC;"
  },
  sql: "SELECT `value`, `created_at` FROM `t_device_feature_state` AS `t_device_feature_state` WHERE `t_device_feature_state`.`device_feature_id` = '04d521be-6b56-463a-a0de-5f540ac76a9a' AND `t_device_feature_state`.`created_at` BETWEEN '2022-02-15 23:00:00.000 +00:00' AND '2022-03-06 23:00:00.000 +00:00' ORDER BY `t_device_feature_state`.`created_at` ASC;",
  parameters: undefined
}

    at ChildProcess.<anonymous> (/src/server/lib/device/device.calculateAggregate.js:102:23)
    at ChildProcess.emit (events.js:400:28)
    at maybeClose (internal/child_process.js:1058:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:293:5)
2022-03-07T21:27:20+0100 <info> device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Berechnung der Aggregatwerte des Gerätezustands für das Intervall monatlich
2022-03-07T21:27:29+0100 <warn> device.calculateAggregate.js:95 (Socket.<anonymous>) device.calculateAggregate stderr: DatabaseError [SequelizeDatabaseError]: SQLITE_CORRUPT: Datenbank-Image ist beschädigt
    at Query.formatError (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:415:16)
    at Query._handleQueryResponse (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:72:18)
    at Statement.afterExecute (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:246:27) {
  parent: [Error: SQLITE_CORRUPT: Datenbank-Image ist beschädigt] {
    errno: 11,
    code: 'SQLITE_CORRUPT',
    sql: "SELECT `value`, `created_at` FROM `t_device_feature_state` AS `t_device_feature_state` WHERE `t_device_feature_state`.`device_feature_id` = '04d521be-6b56-463a-a0de-5f540ac76a9a' AND `t_device_feature_state`.`created_at` BETWEEN '2022-01-31 23:00:00.000 +00:00' AND '2022-02-28 23:00:00.000 +00:00' ORDER BY `t_device_feature_state`.`created_at` ASC;"
  },
  original: [Error: SQLITE_CORRUPT: Datenbank-Image ist beschädigt] {
    errno: 11,
    code: 'SQLITE_CORRUPT',
    sql: "SELECT `value`, `created_at` FROM `t_device_feature_state` AS `t_device_feature_state` WHERE `t_device_feature_state`.`device_feature_id` = '04d521be-6b56-463a-a0de-5f540ac76a9a' AND `t_device_feature_state`.`created_at` BETWEEN '2022-01-31 23:00:00.000 +00:00' AND '2022-02-28 23:00:00.000 +00:00' ORDER BY `t_device_feature_state`.`created_at` ASC;"
  },
  sql: "SELECT `value`, `created_at` FROM `t_device_feature_state` AS `t_device_feature_state` WHERE `t_device_feature_state`.`device_feature_id` = '04d521be-6b56-463a-a0de-5f540ac76a9a' AND `t_device_feature_state`.`created_at` BETWEEN '2022-01-31 23:00:00.000 +00:00' AND '2022-02-28 23:00:00.000 +00:00' ORDER BY `t_device_feature_state`.`created_at` ASC;",
  parameters: undefined
}

2022-03-07T21:27:29+0100 <warn> device.calculateAggregate.js:101 (ChildProcess.<anonymous>) device.calculateAggregate: Beenden des Kindprozesses mit Code 1
2022-03-07T21:27:29+0100 <error> device.onHourlyDeviceAggregateEvent.js:32 (DeviceManager.onHourlyDeviceAggregateEvent) Error: DatabaseError [SequelizeDatabaseError]: SQLITE_CORRUPT: database disk image is malformed
    at Query.formatError (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:415:16)
    at Query._handleQueryResponse (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:72:18)
    at Statement.afterExecute (/src/server/node_modules/sequelize/lib/dialects/sqlite/query.js:246:27) {
  parent: [Error: SQLITE_CORRUPT: database disk image is malformed] {
    errno: 11,
    code: 'SQLITE_CORRUPT',
    sql: "SELECT `value`, `created_at` FROM `t_device_feature_state` AS `t_device_feature_state` WHERE `t_device_feature_state`.`device_feature_id` = '04d521be-6b56-463a-a0de-5f540ac76a9a' AND `t_device_feature_state`.`created_at` BETWEEN '2022-01-31 23:00:00.000 +00:00' AND '2022-02-28 23:00:00.000 +00:00' ORDER BY `t_device_feature_state`.`created_at` ASC;"
  },
  original: [Error: SQLITE_CORRUPT: database disk image is malformed] {
    errno: 11,
    code: 'SQLITE_CORRUPT',
    sql: "SELECT `value`, `created_at` FROM `t_device_feature_state` AS `t_device_feature_state` WHERE `t_device_feature_state`.`device_feature_id` = '04d521be-6b56-463a-a0de-5f540ac76a9a' AND `t_device_feature_state`.`created_at` BETWEEN '2022-01-31 23:00:00.000 +00:00' AND '2022-02-28 23:00:00.000 +00:00' ORDER BY `t_device_feature_state`.`created_at` ASC;"
  },
  sql: "SELECT `value`, `created_at` FROM `t_device_feature_state` AS `t_device_feature_state` WHERE `t_device_feature_state`.`device_feature_id` = '04d521be-6b56-463a-a0de-5f540ac76a9a' AND `t_device_feature_state`.`created_at` BETWEEN '2022-01-31 23:00:00.000 +00:00' AND '2022-02-28 23:00:00.000 +00:00' ORDER BY `t_device_feature_state`.`created_at` ASC;",
  parameters: undefined
}

    at ChildProcess.<anonymous> (/src/server/lib/device/device.calculateAggregate.js:102:23)
    at ChildProcess.emit (events.js:400:28)
    at maybeClose (internal/child_process.js:1058:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:293:5)
2022-03-07T21:27:42+0100 <info> scene.actions.js:267 (Object.user.check-presence) CheckUserPresence action: No devices of the user "vincent" were seen in the last 16 minutes.
2022-03-07T21:27:42+0100 <info> scene.actions.js:270 (Object.user.check-presence) CheckUserPresence action: Set "vincent" to left home of house "appart"

Ich glaube nicht, dass das ein Bericht ist, aber in der letzten Zeile wird mein Zuhause als „appart“ bezeichnet, was zwar der Fall war, aber ich habe es in „maison“ geändert. Gibt es da auch ein Problem?

Macht dir das keine Angst? :sweat_smile: Mir schon!

Deine Datenbank ist, wie die Logs zeigen, korrupt, was zu Fehlern in alle Richtungen führt. Die Verbindungsprobleme mit Gladys Plus sind nur eine Folge dieser korrupten Datenbank.

Bist du sicher, dass du eine SD-Karte für Gladys oder eine SSD verwendest?

Auf SSD habe ich es gesehen und denke, dass es an der Hinzufügung von Zigbee-Geräten liegt, es sei denn, es gibt einen anderen Grund.

Ach Mist, das ist nicht normal :confused:

Hast du ein sehr ausführliches Zigbee-Gerät hinzugefügt?

Um deine Datenbank zu reparieren, hat SQLite3 Tools dafür ( https://stackoverflow.com/questions/18259692/how-to-recover-a-corrupt-sqlite3-database/57872238#57872238 ), danach ist es CLI.

nein, nur snzb-01, 02, 03,

Ok, ich wäre neugierig zu erfahren, was passiert ist…

Um dieses Problem zu beheben, wird es leider CLI erfordern, denke ich. Wenn du es selbst machen möchtest, musst du das tun: https://stackoverflow.com/questions/18259692/how-to-recover-a-corrupt-sqlite3-database/57872238#57872238 (nachdem du Gladys natürlich gestoppt hast), aber mach das auf keinen Fall direkt auf deiner Produktions-DB, wir wissen nicht, was das CLI bewirken wird, du musst die DB vorher kopieren.

Falls das für dich Chinesisch ist, kann ich das Problem auf meiner Seite korrigieren, wenn es dich nicht stört, mir deine DB zu schicken.

Wenn es dir nichts ausmacht, verbindest du dich per SSH und führst aus:

docker stop gladys

Dann holst du die Datei aus /var/lib/gladysassistant/gladys-production.db

Und schickst mir diese Datei privat.

Ich werde das Problem beheben und dir die Datei zurückschicken. Das einzige Problem an dieser Lösung ist, dass du während der Zeit, in der ich deine DB repariere, Gladys nicht nutzen kannst (oder nutzen, aber alles wird verloren gehen, wenn du die DB-Datei durch die korrigierte Datei ersetzt).

Das machen wir, kein Problem.
Ich habe nicht viel darauf.

Ich habe die DB, die du mir geschickt hast, korrigiert und sie dir repariert zurückgeschickt :slight_smile:

Schlechte Nachricht, es ist genau dasselbe.

Ich verstehe diese Zeile nicht, ich habe kein Gerät mit dieser ID.

Falls du irgendwann die Kontrolle übernehmen und überprüfen möchtest, woher das kommt, ist das möglich.

Sind das nicht einfach Aktionen, die mit Geräten verknüpft sind, die in Gladys nicht mehr existieren?

Ich gebe zu, dass ich diesen Fall nie getestet habe.

Kannst du einen Test in einer neuen Szene durchführen? Du erstellst ein MQTT-Dummy-Gerät, erstellst eine Szene, die den „Letzten Zustand abrufen“ dieses Geräts ausführt, löschst dann das Gerät und kehrst zur Szene zurück?

Dort ist das Verhalten gut, wenn man ein MQTT-Gerät löscht, wird es auch aus den Szenen entfernt.
Ich glaube, das ist eher mit den zigbee2mqtt-Geräten verbunden.
In der zigbee2mqtt-Integration habe ich viel mehr Geräte unter « Geräte » 20 als unter « Zigbee-Entdeckung » 13.
Also, wenn ich nicht das richtige nehme, könnte das nicht das Problem sein?

Hat noch jemand dieses Problem mit G+? @guim31 @Terdious @lmilcent @VonOx

Schande über mich, ich bin immer noch nicht auf Gladys Plus umgestiegen… !

Hier ist eine Mission, die schnell zu erledigen ist.