sanderdw / hassio-addons

DSMR Reader Datalogger and Metabase Home Assistant Add-ons
https://community.home-assistant.io/search?q=%40sanderdw%20%23home-assistant-os
Other
53 stars 13 forks source link

[Question] Importing database #57

Closed Calimerorulez closed 1 year ago

Calimerorulez commented 2 years ago

Hi Sander,

I just discovered your repo, and I've added the addon in HA. I'm currently running dsmr-reader on a Raspberry pi, and want to migrate it to your addon.

But I can't seem to import a backup I've created from my (old) installation. I'm using the pgAdmin4 addon, to access the database in the timescaledb addon, but I can't seem to manage it. The backup is 45MB uncompressed (contains 4 years of data), and the import errors out on upload (because too big).

I even tried logging in in the timescaledb addon via portainer, but sadly, I'm also stuck there.

Can you give me a hint maybe?

Groeten en dank, Patrick

Calimerorulez commented 2 years ago

Small addition, I've managed to zcat a backup from my old server to psql, connected to the timescaledb instance, and it seems to work :)

I had to add the user dsmrreader in the new instance, and make 'him' admin user, because the dump uses that user.

niekniek89 commented 1 year ago

Hi @Calimerorulez,

Is it possible to describe the steps here? I want to migrate my backup (of a VM) to this addon. also have 4 years of data in it.

Calimerorulez commented 1 year ago

hi @niekniek89, mag het in het Nederlands? ;)

Ik heb eerst een backup via de website van DSMR-reader gemaakt, die wordt dan in de backup-map geplaatst in je DSMR VM.

Ik heb via de addon pgAdmin4 in Home Assistant een lege dsmrreader database aangemaakt in de timescaledb database (dus niet via deze addon een lege homeassistant database aanmaken zoals beschreven in de documentatie van @sanderdw), maar misschien kan het ook via de timescaledb addon, die lege database aanmaken, dat resultaat zal wel hetzelfde zijn.

Vervolgens heb ik een user 'dsmrreader' aangemaakt via pgAdmin4, via Login Group/Roles en deze user lid gemaakt (member of) postgres en 'with admin' aangevinkt. Gemakshalve heb ik hem ook alle privileges gegeven (niet zo netjes, maar ja ;) ).

Misschien moet je ook nog in de timescaledb addon poort 5432 invoeren, bij "Wijzig de poorten op je host die zijn opengezet door de add-on" ergens in de config van de addon. Anders gaat het volgende commando niet goed.

Vervolgens vanaf de commandline in je DSMR VM, het volgende commando uitvoeren (wel even aanpassen naar jouw situatie):

zcat /home/dsmr/dsmr-reader/backups/dsmrreader-postgresql-backup-<DAGVANBACKUP>.sql.gz | psql dsmrreader --host=<IP-ADRES-VAN-HOMEASSISTANT> --username=postgres

Dan pompt ie de data van de backup over naar de timescale dsmrreader database. Vervolgens kun je de addon van Sander starten.

Ik hoop dat je er wat aan hebt.

Zit jij ook toevallig op het unifi-forum? Ik meen je nickname te herkennen ;)

niekniek89 commented 1 year ago

@Calimerorulez,

Nederlands is nog beter 👍!. Bedankt voor je hulp zover.

Ik heb nu gedaan:

TimescaleDB geinstalleerd + poort 5432 aangezet. pgAdmin4 geinstalleerd, daarin een DB aangemaakt (en gekoppeld met TimescaleDB), en kan connecten

Vanuit pgAdmin4 een "dsmrreader" DB aangemaakt. Ook vanuit pgAdmin4 een nieuwe user aangemaakt "dsmrreader" met admin rechten, en member of postgres Daarna binnen de "dsmrreader" DB de user dsmrreader owner gemaakt, of moet dit postgres blijven?

Ik heb nu DSMR reader binnen docker op mijn Linux VM draaien (andere VM dan Hassos). Moet ik onderstaande commando dus via deze VM aftrappen?

zcat /home/dsmr/dsmr-reader/backups/dsmrreader-postgresql-backup-.sql.gz | psql dsmrreader --host= --username=postgres

Zit idd op het UniFi forum :).

Calimerorulez commented 1 year ago

Ik heb owner van de database gewoon op postgres staan, maar omdat dsmrreader in de groep postgres zit, zal dat qua rechten niet uitmaken. Ik heb het alleen zo gedaan, omdat in 'onze' VMs de export met de user dsmrreader gedaan wordt.

Je zou het kunnen proberen ;)

En dat commando moet je inderdaad zo aftrappen, uiteraard wel even Wednesday in de naam van de backup zetten, en de --host= aanvullen met je home assistant IP-adres. Maar dat begrijp je zelf ook wel ;)

En als het mis mocht gaan, dan gooi je je nieuwe dsmrreader database gewoon weg, en begin je opnieuw. Heb ik uiteindelijk ook 5 keer ofzo moeten doen ;)

Groet, Patrick (Polyphemus op het unifi-forum ;) )

Calimerorulez commented 1 year ago

@niekniek89

en dat zcat commando moet je dus uitvoeren in je DSMR VM. Je pompt daarmee de backup-inhoud vanaf je oude DSMR naar je nieuwe, lege database.

niekniek89 commented 1 year ago

Dank voor je antwoorden. Ik zal de rechten gewoon zo laten staan, is inderdaad "member of" postgres. Echter, begrijp ik het commando voor een deel.

Eerste deel begrijp ik, maar waar zie ik dat hij ook echt bij de addon van de DB uitkomt? Met het IP van HassOS, komt hij bij HA uit?

Calimerorulez commented 1 year ago

Ja, want de timescaledb addon draait op je HA installatie, en die poort, 5432, dat is de standaard poort, daarom geef je hem niet op bij het commando. Ik draai ook HassOS, en ik heb gewoon dat IP-adres gebruikt.

niekniek89 commented 1 year ago

Ah oké top. En kan ik ook nog ergens zien of de DB file is overgezet naar HA? Ik zie namelijk ook nergens de DB files als ik via SMB naar HA ga.

Calimerorulez commented 1 year ago

als je de addon van Sander start, en je ziet data in HA, want het is gewoon de DSMR-reader website die je te zien krijgt, dan lijkt het me geslaagd.

niekniek89 commented 1 year ago

Wel raar dat ik op mijn Linux VM een postgressql-client nodig heb, om een file te verplaatsen?

root@vm02:/home/docker# zcat /home/docker/TEST/dsmrreader-postgresql-backup-Wednesday.sql.gz | psql dsmrreader --host=192.168.177.39 --username=postgres Error: You must install at least one postgresql-client- package

Calimerorulez commented 1 year ago

Het psql commando is ervoor om naar een database te connecten en daar PSQL commando's uit te voeren. Kun je switchen naar de user waar dsmr-reader onder draait?

Iets van su - dsmrreader en kijken of het commando dan wel werkt (en niet onder root).

Calimerorulez commented 1 year ago

Ik had eigenlijk gewoon de backup/restore commando's uitgevoerd zoals in de documentatie van dsmr-reader stonden, en toen zag ik dat het psql-commando ook hostnames ondersteunt, zodat je remote kan restoren :)

niekniek89 commented 1 year ago

moet ik dat commando aftrappen binnen de DSMR reader container?? ik draai hem binnen docker.

Calimerorulez commented 1 year ago

Ja

niekniek89 commented 1 year ago

thnx, is inmiddels gelukt. Zie wel dat ik een oude backup gebruikt heb. Maar ik weet nu hoe ik evt. een nieuwe die kant op kan krijgen :). Bedankt voor je hulp!!

niekniek89 commented 1 year ago

het is inmiddels ook met een recentere backup gelukt. alles staat netjes in het archief.

nu het laatste deel; ontkoppelen binnen ESXI van de hardware, das geen probleem hoe heb je uitgezocht welk hardware pad eraan je P1 meter zit binnen HassOS?

bij mijn huidige DSMR staat dit:

/dev/ttyUSB0

niekniek89 commented 1 year ago

Gelukt!! Werkt nu via de addon 👍

Calimerorulez commented 1 year ago

@niekniek89 Gelukkig :) Ik was even aan het werk, vandaar dat ik niet reageerde ;)