# Backup der zigbee2mqtt-Datenbank

**URL:** <https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237>\
**Category:** Tutoriels\
**Tags:** zigbee2mqtt\
**Created:** [3. Mai 2022 um 10:16 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237 "2022-05-03T10:16:57Z")\
**Posts on this page:** 20\
**Page:** 5

<div class="post-metadata">

**Author:** ![AlexTrovato](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/alextrovato/32/10705_2.png) [@AlexTrovato](https://community.gladysassistant.com/u/AlexTrovato)\
**Post date:** [10. November 2022 um 18:45 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/81 "2022-11-10T18:45:01Z")

</div>

Wenn du ein Gladys Plus-Abonnement hast, kannst du, sobald @lmilcent bestätigt, dass das Backup der z2m-Konfiguration funktioniert, deine Maschine ohne Bedenken wechseln.

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [10. November 2022 um 19:19 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/82 "2022-11-10T19:19:21Z")

</div>

Ja, ich würde dir raten, bis zur Migration durch Gladys Plus zu warten, das wird dann einfacher.

Und dann habe ich mehrere Stunden damit verbracht, mein Server zu härten (Sicherheitsverstärkung), was einige Fehler verursacht hat.

---

<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:** [11. November 2022 um 05:07 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/83 "2022-11-11T05:07:13Z")

</div>

@lmilcent Du wirst uns sagen, ob es funktioniert! Du musst es nicht mit Gladys Plus testen, du kannst einfach die SQLite-Datenbank von einem System zum anderen kopieren und sehen, ob es funktioniert.

Falls du eine andere Instanz parallel zu deiner Produktion neu startest, sei vorsichtig, denn bei Gladys Plus kann nur eine Instanz gleichzeitig verbunden sein. Die zuletzt verbundene Instanz „gewinnt“ gegenüber der anderen. Wenn also zu einem Zeitpunkt zwei Instanzen laufen, dann starte, sobald nur noch eine übrig ist, deine Instanz neu, und sie wird die Kontrolle übernehmen.

> [@lmilcent](#):
>
> Ich habe gerade meine Gladys-Instanz von meinem Raspberry Pi 4 auf einen Mini-PC von Dell (i7, 8G RAM, SSD NVME) migriert. Mit diesem Setup läuft natürlich alles sehr flüssig.

Ich hoffe, du wirst uns einen kleinen Post schreiben!! 😃 Die Konfiguration klingt verlockend!

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [11. November 2022 um 07:20 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/84 "2022-11-11T07:20:54Z")

</div>

Danke für eure Antworten! Ich werde dann noch ein bisschen warten 😉

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [11. November 2022 um 14:02 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/85 "2022-11-11T14:02:07Z")

</div>

> [@AlexTrovato](#):
>
> Für die Tester habe ich das Backup auf 23:00 Uhr, einmal täglich, geplant. Ich kann also bei Bedarf ein neues Image mit einem Backup alle 5 Minuten generieren (obwohl ich bereits die korrekte Auslösung des Jobs bestätigt habe). Ansonsten ist es möglich, das Backup manuell über den Button in der z2m-Oberfläche auszulösen: `Einstellungen -> Tools -> download_z2m_backup`.

Hier ist, was ich gerade zum Testen gemacht habe.

1. Klonen meiner aktuellen Gladys-Datenbank
2. Manuelles Bearbeiten der Datenbank, um alle `feature_state` zu entfernen (um die Datenbank von 5 GB auf 40 MB zu reduzieren) und die `t_variable` von Gladys Plus und Telegram (um zu vermeiden, dass zwei Instanzen gleichzeitig laufen)
3. Zugriff auf Z2M, um ein Backup auszulösen
4. Die Logs bestätigen das Backup

```auto
2022-11-11T14:32:15+0100 <info>saveZ2mBackup.js:12 (Zigbee2mqttManager.saveZ2mBackup) Zigbee2mqtt: Sichere Backup...
2022-11-11T14:32:16+0100<info> saveZ2mBackup.js:24 (Zigbee2mqttManager.saveZ2mBackup) Zigbee2mqtt: Backup gespeichert

```

1. Verschieben der Datenbank auf meinen Raspberry Pi (auf dem ich meinen USB-Zigbee-Adapter wieder installiert habe), Löschen aller alten Dateien in `/var/lib/gladysassistant`, die mit meiner alten Installation verbunden sind.
2. Starten von Gladys mit dieser Datenbank auf meinem Raspberry Pi
3. Überprüfen, ob die Z2M-, MQTT-Container gestartet werden und ob meine Geräte sich mit dem Netzwerk verbinden

```bash
> gladys-server@ start:prod /src/server
> cross-env NODE_ENV=production node index.js

2022-11-11T14:56:21+0100<info> job.purge.js:17 (Job.purge) Löscht alle Hintergrundaufträge, die vor dem = Fri Nov 04 2022 14:56:21 GMT+0100 (Mitteleuropäische Normalzeit) erstellt wurden
Initialisierung des OpenZWave 1.6.0 Binär-Add-Ons für Node.JS.
        OpenZWave Security API ist AKTIVIERT
        ZWave-Geräte-Datenbank: /usr/local/etc/openzwave
        Benutzereinstellungen-Pfad: /src/server/services/zwave/node_modules/openzwave-shared/build/Release/../../
        Optionen-Überschreibungen: --Logging false --ConsoleOutput false --SaveConfiguration true
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst alexa wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst rtsp-camera wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst xiaomi wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst zwave wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst tasmota wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst bluetooth wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst ewelink wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst tp-link wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst google-actions wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst homekit wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst broadlink wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst philips-hue wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> service.startAll.js:30 () Der Dienst example wurde manuell gestoppt, daher wird er beim Start ignoriert
2022-11-11T14:56:24+0100 <info> index.js:16 (Object.start) MQTT-Dienst wird gestartet
2022-11-11T14:56:24+0100 <info> updateContainer.js:13 (MqttHandler.updateContainer) MQTT: Überprüfung auf erforderliche Änderungen...
2022-11-11T14:56:24+0100 <warn> connect.js:50 (MqttClient.<anonymous>) Fehler beim Verbinden mit MQTT - Fehler: connect ECONNREFUSED 127.0.0.1:1883
2022-11-11T14:56:24+0100 <info> index.js:20 (Object.start) Open Weather-Dienst wird gestartet
2022-11-11T14:56:24+0100 <info> init.js:39 (Zigbee2mqttManager.init) Zigbee2mqtt USB-Dongle an /dev/ttyUSB0 angeschlossen
2022-11-11T14:56:24+0100 <info> installMqttContainer.js:28 (Zigbee2mqttManager.installMqttContainer) MQTT-Broker wird als Docker-Container installiert...
2022-11-11T14:56:24+0100 <info> installMqttContainer.js:29 (Zigbee2mqttManager.installMqttContainer) eclipse-mosquitto:2-Image wird heruntergeladen...
2022-11-11T14:56:30+0100 <info> installMqttContainer.js:33 (Zigbee2mqttManager.installMqttContainer) Vorbereitung der Broker-Umgebung...
2022-11-11T14:56:30+0100 <info> installMqttContainer.js:40 (Zigbee2mqttManager.installMqttContainer) Container mit Daten in "/var/lib/gladysassistant" auf dem Host wird erstellt...
2022-11-11T14:56:44+0100 <info> installMqttContainer.js:54 (Zigbee2mqttManager.installMqttContainer) MQTT-Broker wird neu gestartet...
2022-11-11T14:57:17+0100 <info> installMqttContainer.js:61 (Zigbee2mqttManager.installMqttContainer) Benutzer/Kennwort wird erstellt...
2022-11-11T14:57:17+0100 <info> installMqttContainer.js:70 (Zigbee2mqttManager.installMqttContainer) MQTT-Broker wird neu gestartet...
2022-11-11T14:57:25+0100 <info> installMqttContainer.js:74 (Zigbee2mqttManager.installMqttContainer) MQTT-Broker-Container erfolgreich gestartet und konfiguriert
2022-11-11T14:57:25+0100 <info> restoreZ2mBackup.js:26 (Zigbee2mqttManager.restoreZ2mBackup) Zigbee2mqtt: z2m-Backup wird geladen...
2022-11-11T14:57:25+0100 <info> restoreZ2mBackup.js:29 (Zigbee2mqttManager.restoreZ2mBackup) Wiederherstellung der zigbee2mqtt-Konfiguration...
2022-11-11T14:57:25+0100 <info> installZ2mContainer.js:34 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt wird als Docker-Container installiert...
2022-11-11T14:57:25+0100 <info> installZ2mContainer.js:35 (Zigbee2mqttManager.installZ2mContainer) koenkk/zigbee2mqtt:latest-Image wird heruntergeladen...
2022-11-11T14:57:26+0100 <info> installZ2mContainer.js:38 (Zigbee2mqttManager.installZ2mContainer) Konfiguration des Geräts /dev/ttyUSB0
2022-11-11T14:57:26+0100 <info> installZ2mContainer.js:43 (Zigbee2mqttManager.installZ2mContainer) Erstellung des Containers...
2022-11-11T14:57:27+0100 <info> installZ2mContainer.js:46 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt erfolgreich als Docker-Container installiert und konfiguriert
2022-11-11T14:57:27+0100 <info> installZ2mContainer.js:59 (Zigbee2mqttManager.installZ2mContainer) Vorbereitung der Zigbee2mqtt-Umgebung...
2022-11-11T14:57:27+0100 <info> installZ2mContainer.js:72 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt-Container wird gestartet...
2022-11-11T14:57:33+0100 <info> installZ2mContainer.js:78 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt-Container erfolgreich gestartet
2022-11-11T14:57:33+0100 <info> connect.js:14 (Zigbee2mqttManager.connect) Verbindung von Gladys zum mqtt://localhost:1884 MQTT-Broker...
2022-11-11T14:57:33+0100 <info> connect.js:24 (MqttClient.<anonymous>) Verbunden mit MQTT-Container mqtt://localhost:1884
2022-11-11T14:57:33+0100 <info> subscribe.js:12 (Zigbee2mqttManager.subscribe) Abonnieren des MQTT-Themas zigbee2mqtt/#
2022-11-11T14:57:33+0100 <info> index.js:13 (Object.start) USB-Dienst wird gestartet
2022-11-11T14:57:33+0100 <info> index.js:19 (Object.start) Telegram-Dienst wird gestartet
2022-11-11T14:57:33+0100 <info> service.start.js:40 (Service.start) Der Dienst telegram ist nicht konfiguriert, daher wurde er nicht gestartet.
2022-11-11T14:57:33+0100 <info> index.js:88 (Object.start) CalDAV-Dienst wird gestartet
2022-11-11T14:57:33+0100 <info> scene.dailyUpdate.js:58 () Heute geht die Sonne um 7:55 Uhr in Ihrer Zeitzone (Europe/Paris) auf
2022-11-11T14:57:33+0100 <info> scene.dailyUpdate.js:59 () Heute geht die Sonne um 17:17 Uhr in Ihrer Zeitzone (Europe/Paris) unter
2022-11-11T14:57:33+0100 <info> scene.dailyUpdate.js:67 () Sonnenaufgang ist geplant, vor 7 Stunden.
2022-11-11T14:57:33+0100 <info> scene.dailyUpdate.js:81 () Sonnenuntergang ist geplant, in 2 Stunden.
2022-11-11T14:57:34+0100 <info> device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Berechnung der Aggregatzustände der Gerätefunktionen für das Intervall stündlich
2022-11-11T14:57:34+0100 <info> index.js:63 (Server.<anonymous>) Server hört auf Port 8088
2022-11-11T14:57:45+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt-Gerät CapteurMouvementEntree, Feature illuminance_lux nicht in Gladys konfiguriert.
2022-11-11T14:57:45+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt-Gerät capteurQualitéDeLair, Feature formaldehyd nicht in Gladys konfiguriert.
2022-11-11T14:57:45+0100 <info> device.calculateAggregate.js:105 (ChildProcess.<anonymous>) device.calculateAggregate: Verarbeitung für Intervall stündlich wird beendet
2022-11-11T14:57:46+0100 <info> device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Berechnung der Aggregatzustände der Gerätefunktionen für das Intervall täglich
2022-11-11T14:57:47+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt-Gerät capteurQualitéDeLair, Feature formaldehyd nicht in Gladys konfiguriert.
2022-11-11T14:57:50+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt-Gerät capteurQualitéDeLair, Feature formaldehyd nicht in Gladys konfiguriert.
2022-11-11T14:57:54+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt-Gerät capteurQualitéDeLair, Feature formaldehyd nicht in Gladys konfiguriert.
2022-11-11T14:57:55+0100 <warn> device.calculateAggregate.js:95 (Socket.<anonymous>) device.calculateAggregate stderr: 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:313:28
    at async SQLiteQueryInterface.bulkUpdate (/src/server/node_modules/sequelize/lib/dialects/abstract/query-interface.js:355:12)
    at async Function.update (/src/server/node_modules/sequelize/lib/model.js:1952:28)
    at async /src/server/lib/device/device.calculcateAggregateChildProcess.js:153:5 {
  name: 'SequelizeTimeoutError',
  parent: [Error: SQLITE_BUSY: database is locked] {
    errno: 5,
    code: 'SQLITE_BUSY',
    sql: 'UPDATE `t_device_feature` SET `last_daily_aggregate`=$1,`updated_at`=$2 WHERE `id` = $3'
  },
  original: [Error: SQLITE_BUSY: database is locked] {
    errno: 5,
    code: 'SQLITE_BUSY',
    sql: 'UPDATE `t_device_feature` SET `last_daily_aggregate`=$1,`updated_at`=$2 WHERE `id` = $3'
  },
  sql: 'UPDATE `t_device_feature` SET `last_daily_aggregate`=$1,`updated_at`=$2 WHERE `id` = $3',
  parameters: {}
}

2022-11-11T14:57:55+0100 <warn> device.calculateAggregate.js:101 (ChildProcess.<anonymous>) device.calculateAggregate: Exiting child process with code 1
2022-11-11T14:57:57+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt device capteurQualitéDeLair, feature formaldehyd not configured in Gladys.
2022-11-11T14:58:00+0100 <info> scene.checkCalendarTriggers.js:24 (SceneManager.checkCalendarTriggers) Checking calendar triggers at Fri, 11 Nov 2022 13:58:00 GMT
2022-11-11T14:58:01+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt device capteurQualitéDeLair, feature formaldehyd not configured in Gladys.
2022-11-11T14:58:04+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt device capteurQualitéDeLair, feature formaldehyd not configured in Gladys.
2022-11-11T14:58:08+0100 <error> device.onHourlyDeviceAggregateEvent.js:27 (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:313:28
    at async SQLiteQueryInterface.bulkUpdate (/src/server/node_modules/sequelize/lib/dialects/abstract/query-interface.js:355:12)
    at async Function.update (/src/server/node_modules/sequelize/lib/model.js:1952:28)
    at async /src/server/lib/device/device.calculcateAggregateChildProcess.js:153:5 {
  name: 'SequelizeTimeoutError',
  parent: [Error: SQLITE_BUSY: database is locked] {
    errno: 5,
    code: 'SQLITE_BUSY',
    sql: 'UPDATE `t_device_feature` SET `last_daily_aggregate`=$1,`updated_at`=$2 WHERE `id` = $3'
  },
  original: [Error: SQLITE_BUSY: database is locked] {
    errno: 5,
    code: 'SQLITE_BUSY',
    sql: 'UPDATE `t_device_feature` SET `last_daily_aggregate`=$1,`updated_at`=$2 WHERE `id` = $3'
  },
  sql: 'UPDATE `t_device_feature` SET `last_daily_aggregate`=$1,`updated_at`=$2 WHERE `id` = $3',
  parameters: {}
}

    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:1088:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:296:5)
2022-11-11T14:58:08+0100 <info> device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Calculating aggregates device feature state for interval monthly
2022-11-11T14:58:08+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt device capteurQualitéDeLair, feature formaldehyd not configured in Gladys.
2022-11-11T14:58:11+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt device capteurQualitéDeLair, feature formaldehyd not configured in Gladys.
2022-11-11T14:58:15+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt device capteurQualitéDeLair, feature formaldehyd not configured in Gladys.
2022-11-11T14:58:18+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt device capteurQualitéDeLair, feature formaldehyd not configured in Gladys.
2022-11-11T14:58:21+0100 <warn> handleMqttMessage.js:106 () Zigbee2mqtt device CapteurMouvementCuisine, feature illuminance_lux not configured in Gladys.
2022-11-11T14:58:21+0100 <info> device.calculateAggregate.js:105 (ChildProcess.<anonymous>) device.calculateAggregate: Finishing processing for interval monthly

```

Und … 🥁🥁🥁🥁🥁🥁

Es funktioniert super gut!! 🎉

Meine Gladys-Schnittstelle ermöglicht es mir, meine Wandschalter zu steuern, das Licht im Wohnzimmer geht an! Das bestätigt, dass das Zigbee-Netzwerk wieder mit denselben Parametern eingerichtet wurde.

Sehr, sehr gute Arbeit!!

Wie du in den Logs sehen kannst, gibt es einen DB-Lock-Fehler, der während meiner beiden Wiederherstellungstests aufgetreten ist. Aber das ist vorübergehend, möglicherweise nicht zusammenhängend und vor allem funktioniert Gladys gut.

---

<div class="post-metadata">

**Author:** ![AlexTrovato](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/alextrovato/32/10705_2.png) [@AlexTrovato](https://community.gladysassistant.com/u/AlexTrovato)\
**Post date:** [11. November 2022 um 14:21 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/86 "2022-11-11T14:21:14Z")

</div>

Freut mich, das zu hören und zu sehen!!! 🎉

Bei dem DB-Lock-Fehler denke ich, dass wir nach meinen Änderungen am gemeinsamen Scheduler die Datenaggregation beim Start nicht mehr ausführen sollten, sondern den Scheduler die geplante Zeit abwarten lassen sollten.  
@pierre-gilles was denkst du?

---

<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:** [12. November 2022 um 04:19 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/87 "2022-11-12T04:19:29Z")

</div>

Toll !! 😍

> [@AlexTrovato](#):
>
> Es sollte die Datenaggregation beim Start nicht mehr starten, sondern den Scheduler zur geplanten Zeit durchlaufen lassen.  
> @pierre-gilles was denkst du ?

Warum nicht die Aggregation beim Start entfernen? Ursprünglich habe ich sie beim Start hinzugefügt, damit die Benutzer nicht bis zur nächsten Stunde warten müssen, um die Funktion zu testen, wenn du Gladys aktualisierst (als wir die Funktion gestartet haben). Aber jetzt ist es vielleicht unnötig..

Danach ändert sich nicht viel, die Aggregation lief bereits zur festen Zeit, glaube ich ^^

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [22. November 2022 um 18:41 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/88 "2022-11-22T18:41:13Z")

</div>

Da ich meinen NUC diese Woche erhalten werde, wollte ich wissen, wie weit die Arbeit ist?  
Eigentlich habe ich nicht ganz verstanden, ob die von Ihnen durchgeführte Arbeit eine Migration «&nbsp;mit ein paar Klicks&nbsp;» ermöglichen wird? Oder ob die Idee ist, dass z2m automatisch gesichert wird und eine Wiederherstellung über Gladys Plus es auch wiederherstellt?

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [22. November 2022 um 19:24 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/89 "2022-11-22T19:24:52Z")

</div>

Es ist noch immer in der Testphase…  
Ich hoffe, morgen oder am Donnerstag etwas Zeit dafür zu haben.  
Wenn ich mich nicht irre, sollte sich alles in der Gladys-Datenbank wiederfinden, um auch über gladys+ zu starten.

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [23. November 2022 um 04:28 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/90 "2022-11-23T04:28:25Z")

</div>

Danke für die Infos!

Ich möchte nur sagen, dass ich, obwohl ich ungeduldig bin (neues Spielzeug), mich nicht beschweren würde, wie lange diese Arbeit dauert! 😉

---

<div class="post-metadata">

**Author:** ![GBoulvin](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/gboulvin/32/10006_2.png) [@GBoulvin](https://community.gladysassistant.com/u/GBoulvin)\
**Post date:** [23. November 2022 um 22:36 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/91 "2022-11-23T22:36:29Z")

</div>

Getestet und für gut befunden:

- Frische Installation
- Grundkonfiguration und Hinzufügen eines ZigBee-Switches
- Warten auf das automatische Backup um 23 Uhr
- Stoppen der Container
- Löschen der Unterordner in /Var/lib/gladysassistant und aller Container
- Neustart des Gladys-Containers  
Und alles ist wieder wie zuvor, ZigBee funktioniert!  
Die Logs:  
Um 23 Uhr:

```auto
2022-11-23T23:00:00+0100 <info> backup.js:39 (Zigbee2mqttManager.backup) Zigbee2MQTT-Anfrage für Backup
2022-11-23T23:00:00+0100 <warn> handleMqttMessage.js:84 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt-Thema zigbee2mqtt/bridge/request/backup leere Nachricht.
2022-11-23T23:00:10+0100 <info> device.calculateAggregate.js:105 (ChildProcess.<anonymous>) device.calculateAggregate: Verarbeitung für Intervall stündlich abgeschlossen
2022-11-23T23:00:10+0100 <info> device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Berechnung der Aggregatwerte für Gerätezustand für Intervall täglich
2022-11-23T23:00:12+0100 <info> saveZ2mBackup.js:12 (Zigbee2mqttManager.saveZ2mBackup) Zigbee2mqtt: Backup wird gespeichert...
2022-11-23T23:00:13+0100 <info> saveZ2mBackup.js:24 (Zigbee2mqttManager.saveZ2mBackup) Zigbee2mqtt: Backup gespeichert

```

Nach Löschung und Neustart

```auto
>gladys-server@ start:prod /src/server
> cross-env NODE_ENV=production node index.js

2022-11-23T23:17:31+0100 <info> job.purge.js:17 (Job.purge) Löschen aller Hintergrundaufträge, die vor = Mi, 16. Nov 2022 23:17:31 GMT+0100 (Mitteleuropäische Normalzeit) erstellt wurden
Initialisierung des OpenZWave 1.6.0 Binary Add-Ons für Node.JS.
        OpenZWave Security API ist AKTIVIERT
        ZWave-Geräte-Datenbank: /usr/local/etc/openzwave
        Benutzereinstellungen-Pfad: /src/server/services/zwave/node_modules/openzwave-shared/build/Release/../../
        Optionen-Überschreibungen: --Logging false --ConsoleOutput false --SaveConfiguration true
2022-11-23T23:17:43+0100 <info> index.js:14 (Object.start) Alexa-Dienst wird gestartet
2022-11-23T23:17:43+0100 <info> index.js:21 (Object.start) Beispiel-Dienst wird gestartet
2022-11-23T23:17:44+0100 <info> index.js:20 (Object.start) Open Weather-Dienst wird gestartet
2022-11-23T23:17:44+0100 <info> service.start.js:40 (Service.start) Der Dienst openweather ist nicht konfiguriert, daher wurde er nicht gestartet.
2022-11-23T23:17:44+0100 <info> index.js:88 (Object.start) CalDAV-Dienst wird gestartet
2022-11-23T23:17:44+0100 <info> index.js:16 (Object.start) Broadlink-Dienst wird gestartet
2022-11-23T23:17:44+0100 <info> index.js:18 (Object.start) HomeKit-Dienst wird gestartet
2022-11-23T23:17:45+0100 <info> index.js:14 (Object.start) GoogleActions-Dienst wird gestartet
2022-11-23T23:17:46+0100 <info> init.js:39 (Zigbee2mqttManager.init) Zigbee2mqtt-USB-Dongle an /dev/ttyUSB0 angeschlossen
2022-11-23T23:17:46+0100 <info> installMqttContainer.js:28 (Zigbee2mqttManager.installMqttContainer) MQTT-Broker wird als Docker-Container installiert...
2022-11-23T23:17:46+0100 <info> installMqttContainer.js:29 (Zigbee2mqttManager.installMqttContainer) eclipse-mosquitto:2-Image wird heruntergeladen...
2022-11-23T23:17:47+0100 <info> installMqttContainer.js:33 (Zigbee2mqttManager.installMqttContainer) Vorbereitung der Broker-Umgebung...
2022-11-23T23:17:47+0100 <info> installMqttContainer.js:40 (Zigbee2mqttManager.installMqttContainer) Container mit Daten in "/var/lib/gladysassistant" auf dem Host wird erstellt...
2022-11-23T23:17:49+0100 <info> installMqttContainer.js:54 (Zigbee2mqttManager.installMqttContainer) MQTT-Broker wird neu gestartet...
2022-11-23T23:17:55+0100 <info> installMqttContainer.js:61 (Zigbee2mqttManager.installMqttContainer) Benutzer/Kennwort wird erstellt...
2022-11-23T23:17:56+0100 <info> installMqttContainer.js:70 (Zigbee2mqttManager.installMqttContainer) MQTT-Broker wird neu gestartet...
2022-11-23T23:18:03+0100 <info> installMqttContainer.js:74 (Zigbee2mqttManager.installMqttContainer) MQTT-Broker-Container erfolgreich gestartet und konfiguriert
2022-11-23T23:18:03+0100 <info> restoreZ2mBackup.js:26 (Zigbee2mqttManager.restoreZ2mBackup) Zigbee2mqtt: z2m-Backup wird geladen...
2022-11-23T23:18:03+0100 <info> restoreZ2mBackup.js:29 (Zigbee2mqttManager.restoreZ2mBackup) Wiederherstellung der zigbee2mqtt-Konfiguration...
2022-11-23T23:18:03+0100 <info> installZ2mContainer.js:34 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt wird als Docker-Container installiert...
2022-11-23T23:18:03+0100 <info> installZ2mContainer.js:35 (Zigbee2mqttManager.installZ2mContainer) koenkk/zigbee2mqtt:latest-Image wird heruntergeladen...
2022-11-23T23:18:05+0100 <info> installZ2mContainer.js:38 (Zigbee2mqttManager.installZ2mContainer) Konfiguration des Geräts /dev/ttyUSB0
2022-11-23T23:18:05+0100 <info> installZ2mContainer.js:43 (Zigbee2mqttManager.installZ2mContainer) Erstellung des Containers...
2022-11-23T23:18:08+0100 <info> installZ2mContainer.js:46 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt erfolgreich installiert und als Docker-Container konfiguriert
2022-11-23T23:18:08+0100 <info> installZ2mContainer.js:59 (Zigbee2mqttManager.installZ2mContainer) Vorbereitung der Zigbee2mqtt-Umgebung...
2022-11-23T23:18:08+0100 <info> installZ2mContainer.js:72 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt-Container wird gestartet...
2022-11-23T23:18:14+0100 <info> installZ2mContainer.js:78 (Zigbee2mqttManager.installZ2mContainer) Zigbee2mqtt-Container erfolgreich gestartet
2022-11-23T23:18:14+0100 <info> connect.js:14 (Zigbee2mqttManager.connect) Verbindung von Gladys zum MQTT-Broker mqtt://localhost:1884...
2022-11-23T23:18:15+0100 <info> connect.js:24 (MqttClient.<anonymous>) Verbunden mit MQTT-Container mqtt://localhost:1884
2022-11-23T23:18:15+0100 <info> subscribe.js:12 (Zigbee2mqttManager.subscribe) Abonnieren des MQTT-Themas zigbee2mqtt/#
2022-11-23T23:18:15+0100 <info> index.js:18 (Object.start) TP-Link-Dienst wird gestartet
2022-11-23T23:18:15+0100 <info> index.js:17 (Object.start) eWeLink-Dienst wird gestartet
2022-11-23T23:18:15+0100 <info> service.start.js:40 (Service.start) Der Dienst ewelink ist nicht konfiguriert, daher wurde er nicht gestartet.
2022-11-23T23:18:16+0100 <info> index.js:15 (Object.start) Bluetooth-Dienst wird gestartet
2022-11-23T23:18:18+0100 <error> index.js:20 (process.<anonymous>) uncaughtException gefangen: uncaughtException
2022-11-23T23:18:18+0100 <error> index.js:21 (process.<anonymous>) Error: ENODEV, Kein solches Gerät
    at Hci.init (/src/server/services/bluetooth/node_modules/@abandonware/noble/lib/hci-socket/hci.js:100:35)
    at NobleBindings.init (/src/server/services/bluetooth/node_modules/@abandonware/noble/lib/hci-socket/bindings.js:78:13)
    at /src/server/services/bluetooth/node_modules/@abandonware/noble/lib/noble.js:60:24
    at processTicksAndRejections (internal/process/task_queues.js:77:11) {
  errno: 19,
  code: 'ENODEV',
  syscall: 'bind'
}
2022-11-23T23:18:18+0100 <info> index.js:15 (Object.start) Tasmota-Dienst wird gestartet
2022-11-23T23:18:18+0100 <info> index.js:16 (Object.start) zwave-Dienst wird gestartet
2022-11-23T23:18:18+0100 <info> service.start.js:40 (Service.start) Der Dienst zwave ist nicht konfiguriert, daher wurde er nicht gestartet.
2022-11-23T23:18:18+0100 <info> index.js:14 (Object.start) Xiaomi-Dienst wird gestartet
2022-11-23T23:18:18+0100 <info> index.js:13 (Object.start) usb-Dienst wird gestartet
2022-11-23T23:18:18+0100 <info> index.js:19 (Object.start) Telegram-Dienst wird gestartet
2022-11-23T23:18:18+0100 <info> service.start.js:40 (Service.start) Der Dienst telegram ist nicht konfiguriert, daher wurde er nicht gestartet.
2022-11-23T23:18:18+0100 <info> index.js:16 (Object.start) RTSP-Dienst wird gestartet
2022-11-23T23:18:18+0100 <info> index.js:18 (Object.start) Philips Hue-Dienst wird gestartet
2022-11-23T23:18:19+0100 <info> index.js:16 (Object.start) MQTT-Dienst wird gestartet
2022-11-23T23:18:19+0100 <info> updateContainer.js:13 (MqttHandler.updateContainer) MQTT: Überprüfung auf erforderliche Änderungen...
2022-11-23T23:18:19+0100 <info> service.start.js:40 (Service.start) Der Dienst mqtt ist nicht konfiguriert, daher wurde er nicht gestartet.
2022-11-23T23:18:19+0100 <info> scene.dailyUpdate.js:58 () Heute geht die Sonne um 8:10 Uhr in Ihrer Zeitzone (Europe/Paris) auf
2022-11-23T23:18:19+0100 <info> scene.dailyUpdate.js:59 () Heute geht die Sonne um 16:50 Uhr in Ihrer Zeitzone (Europe/Paris) unter

```

Morgen teste ich mit meiner Produktions-Datenbank.  
Gute Arbeit!

---

<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:** [24. November 2022 um 02:37 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/92 "2022-11-24T02:37:40Z")

</div>

Danke, dass du @GBoulvin getestet hast! Super sauber!

Jetzt muss ich den Code noch durchgehen, ich halte euch auf dem Laufenden, sobald ich Zeit habe.

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [24. November 2022 um 11:45 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/93 "2022-11-24T11:45:36Z")

</div>

Alex konnte auf echten Geräten entwickeln, also habe ich kaum Zweifel am Funktionieren.

---

<div class="post-metadata">

**Author:** ![lmilcent](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/lmilcent/32/7023_2.png) [@lmilcent](https://community.gladysassistant.com/u/lmilcent)\
**Post date:** [24. November 2022 um 18:32 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/94 "2022-11-24T18:32:15Z")

</div>

Und ich habe es auch mit meiner Produktions-Datenbank auf dem Raspberry Pi bestätigt!

---

<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:** [25. November 2022 um 07:23 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/95 "2022-11-25T07:23:03Z")

</div>

Ich habe eine erste Review zur PR „common scheduler“ gemacht, die ein Vorläufer für den Merge der PR backup Zigbee2mqtt ist.

Da die andere PR die Änderungen dieser PR integriert, ist es nicht einfach zu lesen, also warte ich, bis wir mit dieser PR fertig sind 🙂

---

<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:** [25. November 2022 um 07:54 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/96 "2022-11-25T07:54:00Z")

</div>

Ich habe den ersten PR der Serie von 3 benötigten PRs für dieses Feature gemerged:

> <https://github.com/GladysAssistant/Gladys/pull/1639>
>
> \### Pull Request check-list
> 
> To ensure your Pull Request can be accepted as fa…st as possible, make sure to review and check all of these items:
> 
> \- \[x\] If your changes affects code, did your write the tests?
> \- \[x\] Are tests passing? (\`npm test\` on both front/server)
> \- \[x\] Is the linter passing? (\`npm run eslint\` on both front/server)
> \- \[x\] Did you run prettier? (\`npm run prettier\` on both front/server)
> \- ~~\[\] If you are adding a new features/services, did you run integration comparator? (\`npm run compare-translations\` on front)~~
> \- \[x\] Did you test this pull request in real life? With real devices? If this development is a big feature or a new service, we recommend that you provide a Docker image to \[the community\](https://community.gladysassistant.com/) for testing before merging.
> \- ~~\[\] If your changes modify the API (REST or Node.js), did you modify the API documentation? (Documentation is based on comments in code)~~
> \- ~~\[\] If you are adding a new features/services which needs explanation, did you modify the user documentation? See \[the GitHub repo\](https://github.com/GladysAssistant/v4-website) and the \[website\](https://gladysassistant.com).~~
> \- ~~\[\] Did you add fake requests data for the demo mode (\`front/src/config/demo.js\`) so that the demo website is working without a backend? (if needed) See \[https://demo.gladysassistant.com\](https://demo.gladysassistant.com).~~
> 
> NOTE: these things are not required to open a PR and can be done afterwards / while the PR is open.
> 
> \### Description of change
> 
> This PR prepares the "z2m backup" feature.
> 
> The z2m code is a bit disorganized, so to add features in it, it looks difficult and risky.
> So I just ran a cleaning and organization phase.
> 
> It cleans the current z2m service code to:
> - use "debug" logger instead of "log"
> - load and store variables in Gladys database in a unique method (instead of everywhere in methods)
> - clean tests when proxyquire is not required
> - implements afterEach when needed on tests
> - ...
> 
> I tested it in real life, in both upgrading and new install modes.
> It looks good.

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [25. November 2022 um 08:54 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/97 "2022-11-25T08:54:57Z")

</div>

@AlexTrovato ist eine Maschine

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [27. Dezember 2022 um 09:21 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/98 "2022-12-27T09:21:56Z")

</div>

Hallo zusammen,

ich melde mich wieder, weil ich die Sprache der Entwickler nicht verstehe (PR mergen usw.) und daher nicht weiß, wo die Funktion zum Speichern steht?  
Muss man Tests durchführen? Braucht man Tester?

---

<div class="post-metadata">

**Author:** ![spenceur](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/spenceur/32/1961_2.png) [@spenceur](https://community.gladysassistant.com/u/spenceur)\
**Post date:** [28. Dezember 2022 um 05:51 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/99 "2022-12-28T05:51:35Z")

</div>

Großteils ist der erste PR auf 3 im Produktionszweig.  
Man muss auf die beiden anderen warten, damit die Funktion 100% funktionsfähig ist.  
Aber beim ersten ist alles durchgekommen, inklusive der Tests.

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [28. Dezember 2022 um 14:52 UTC](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237/100 "2022-12-28T14:52:08Z")

</div>

Okay, danke @spenceur für den Zwischenstand! 👍

[Vorherige Seite](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237.md?page=4)

[Nächste Seite](https://community.gladysassistant.com/t/sauvegarde-de-la-db-de-zigbee2mqtt/7237.md?page=6)
