homematic-community / ccu-addon-mosquitto

Mosquitto packaged as Addon for the Homematic CCU3 and RaspberryMatic
Other
31 stars 3 forks source link

[Feature Request] save retain messages persistance #1

Closed Hypnos3 closed 6 years ago

Hypnos3 commented 6 years ago

Hallo,

wäre es möglich, das der mosquitto so eingestellt wird, das die retain messages persistent gespeichert werden und damit einen Neustart der Zentrale überleben.

Dafür muss in der mosquitto.confdie Option persistence aktivieren.

Um die SD Karte zu schonen würde es reichen, wenn das aller 2 Stunden gespeichert wird:

autosave_interval 7200
autosave_on_changes true

Damit könnte man auf Systemvariablen zum persistenten speichern von Zuständen verzichten.

hobbyquaker commented 6 years ago

Das sollte eigentlich bereits der Fall sein. Siehe https://github.com/hobbyquaker/ccu-addon-mosquitto/blob/master/addon_files/mosquitto/etc/conf.d/persistence.conf Ich hab auch regelmäßig Meldungen im Syslog:

Jul 24 19:51:57 raspberrymatic daemon.info mosquitto[782]: Saving in-memory database to /usr/local/addons/mosquitto/var/mosquitto.db.
Jul 24 20:21:58 raspberrymatic daemon.info mosquitto[782]: Saving in-memory database to /usr/local/addons/mosquitto/var/mosquitto.db.
Jul 24 20:51:59 raspberrymatic daemon.info mosquitto[782]: Saving in-memory database to /usr/local/addons/mosquitto/var/mosquitto.db.
Jul 24 21:22:00 raspberrymatic daemon.info mosquitto[782]: Saving in-memory database to /usr/local/addons/mosquitto/var/mosquitto.db.

Wenn Du die config ergänzen willst um die autosave_* optionen empfehle ich dafür ein neues conf file in /usr/local/addons/mosquitto/etc/conf.d anzulegen z.B. custom-persistence.conf - dann wird es bei einem evtl update nicht überschrieben. Bin mir noch etwas unschlüssig wie ich das mit den conf files handeln soll in Zukunft, speziell die Frage wie ein User vorhandene defaults überschreiben kann bereitet mir noch Kopfzerbrechen.

Hypnos3 commented 6 years ago

Vielen Dank, das hatte ich übersehen!

Ich habe mitbekommen, das in NodeRed 0.19 es die Möglichkeit geben soll flow oder global context persistent zu speichern. Damit gestaltet sich das noch einfacher als über mosquitto zu gehen.