Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

restore backup with hassio dsmr-addon #184

Closed
nelbs opened this issue Mar 4, 2021 · 18 comments
Closed

restore backup with hassio dsmr-addon #184

nelbs opened this issue Mar 4, 2021 · 18 comments
Assignees
Labels

Comments

@nelbs
Copy link

nelbs commented Mar 4, 2021

Ik heb onlangs de Homeassistant addon dsmr-reader geinstalleerd. Alles werkt naar behoren maar het herstellen van een backup van mijn oude installatie lukt me niet. Ik weet dat ik niet direct deze container gebruik maar wellicht dat iemand mij verder kan helpen.

Setup/Architecture information

Pi4 Homeassistant supervised met DSMR-reader en TimescaleDB addons

Version of the Docker image

Addon dsmr reader: 0.1.2
addon timescale DB 1.1.6

Configuration

nvt

Describe the bug

Ik heb het volgende allemaal geprobeerd:

1) Als ik de container probeer te stoppen met docker compose stop krijg ik de volgende melding:

ERROR:
        Can't find a suitable configuration file in this directory or any
        parent. Are you in the right directory?

        Supported filenames: docker-compose.yml, docker-compose.yaml

ergens is dit logisch aangezien ik de container niet met compose heb opgezet...

2) als ik de container via portainer stop en vervolgens de backup wil terug zetten met het volgende commando:
docker exec -t addon_0493853b_dsmr_reader createdb -O dsmrreader dsmrreader -U dsmrreader

krijg ik de volgende melding:
Error response from daemon: Container ..... is not running

3) Als ik hetzelfde commando geef als de container draait dan krijg ik geen melding maar van een backup is ook geen sprake.

Debug log


Add your logs here.

@nelbs nelbs added the bug label Mar 4, 2021
@xirixiz
Copy link
Owner

xirixiz commented Mar 5, 2021

Hoi Nelbs, volgens mij kloppen de stappen niet die je probeert uit te voeren. Kijk even onderaan in de README.md, daar staat het eea uitgelegd.

https://github.com/xirixiz/dsmr-reader-docker

@nelbs
Copy link
Author

nelbs commented Mar 5, 2021

Thanks! Ik zat inderdaad op de verkeerde plek te kijken 😁
Je bedoeld deze stappen?

docker-compose stop dsmr
docker exec -t dsmrdb dropdb dsmrreader -U dsmrreader
docker exec -t dsmrdb createdb -O dsmrreader dsmrreader -U dsmrreader
cat dsmrreader.sql | docker exec -i dsmrdb psql -U dsmrreader
docker-compose start dsmr

Als ik de dsmr-reader addon en/of container stop krijg ik deze melding:

pi@raspberrypi:~ $ sudo docker exec -t addon_0826754b_dsmr_reader dropdb dsmrreader -U dsmrreader
Error response from daemon: Container b48942d8cc4a8accfcaedc7b26df4eb0474c0156ad2e7d573aa97c8fa53b2b7a is not running

als ik hem laat lopen dan krijg ik de volgende melding:

pi@raspberrypi:~ $ sudo docker exec -t addon_0826754b_dsmr_reader dropdb dsmrreader -U dsmrreader
dropdb: could not connect to database template1: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?

@xirixiz
Copy link
Owner

xirixiz commented Mar 5, 2021

Volgens mij voer je de stappen niet helemaal correct uit.

Is de naam van jouw database user en password wel dsmrreader, of heb je iets anders opgegeven bij de env vars van portainer/docker?

  • Je stopt de applicatie container eerst, dus niet de database container
  • Daarna voer je dit commando uit: sudo docker exec -t addon_0826754b_dsmr_reader dropdb dsmrreader -U dsmrreader
  • Daarna voer je dit commando uit: sudo docker exec -t addon_0826754b_dsmr_reader createdb -O dsmrreader dsmrreader -U dsmrreader
  • cat dsmrreader.sql | docker exec -i addon_0826754b_dsmr_reader psql -U dsmrreader
  • En vervolgens start je de applicatie container weer. Kortom de db container blijft altijd draaien.

@nelbs
Copy link
Author

nelbs commented Mar 5, 2021

Ik heb de dsmr reader gestopt. de database draait nog.

image
image

Zijn de database user en password de DJANGO_DATABASE_USER en DJANGO_DATABASE_PASSWORD? deze zijn iig dsmrreader.

image

@xirixiz
Copy link
Owner

xirixiz commented Mar 5, 2021

Hmm, ik denk dat het dan met portainer te maken heeft. Als database host staat namelijk dsmrdb, terwijl de container een hele andere naam heeft. Je kan ook inloggen via portainer op de db console en het dan uitvoeren....

dropdb dsmrreader -U dsmrreader
createdb -O dsmrreader dsmrreader -U dsmrreader

@nelbs
Copy link
Author

nelbs commented Mar 5, 2021

Helaas heeft dat niet gewerkt.. 😞

Heb je nog meer ideeen?

image

@xirixiz
Copy link
Owner

xirixiz commented Mar 6, 2021

Het lijkt erop dat je nog iets extras moet definieren bij dropdb. Default kijkt dropdb naar template1 kennelijk, en dat is inderdaad incorrect. Kijk even met dropdb --help wat het juiste commando is. Wellicht dat de volgorde niet correct is. Dus optie voor de db naam zetten, dat zou ook nog kunnen helpen.

Of dit meegeven:

-h localhost -p 5432

Het is even uitzoeken vrees ik via google vrees ik 😄. Ik zal einde middag of vanavond ook nog even kijken of ik iets kan ontdekken. Ik moet daarvoor eerst even een gesimuleerde omgeving opzetten uiteraard.

@bikeymouse
Copy link

Voer je de commando’s wel in de juiste container uit cq. draait Postgress in de “..timescaledb” container?

@xirixiz
Copy link
Owner

xirixiz commented Mar 6, 2021

Good one @bikeymouse! Didn't thought of that, but I do think it's the correct container. Anyway good thinking, let's hope you're right 😀

@nelbs
Copy link
Author

nelbs commented Mar 6, 2021

Voer je de commando’s wel in de juiste container uit cq. draait Postgress in de “..timescaledb” container?

Dat is waar de db draait in timescaleDb. Overigens zie ik dat de env/vars in portainer verschillen met de variabelen in de addon:

image

image

EDIT:
Het is me nu gelukt om de database te droppen door de volgende commando's in de container van timescaledb in te voeren:

dropdb dsmrreader -U postgres
createdb -O postgres dsmrreader -U postgres

Probleem is nu dat dsmr aangeeft dat er geen gegevens zijn, wat logisch is, maar er ook geen metingen bijkomen.

@nelbs
Copy link
Author

nelbs commented Mar 6, 2021

Het lijkt erop dat je nog iets extras moet definieren bij dropdb. Default kijkt dropdb naar template1 kennelijk, en dat is inderdaad incorrect. Kijk even met dropdb --help wat het juiste commando is. Wellicht dat de volgorde niet correct is. Dus optie voor de db naam zetten, dat zou ook nog kunnen helpen.

Of dit meegeven:

-h localhost -p 5432

Het is even uitzoeken vrees ik via google vrees ik 😄. Ik zal einde middag of vanavond ook nog even kijken of ik iets kan ontdekken. Ik moet daarvoor eerst even een gesimuleerde omgeving opzetten uiteraard.

Thanks ik zal er in duiken

@nelbs
Copy link
Author

nelbs commented Mar 6, 2021

Het is gelukt! Door de onderstaande commando's in de console van de timescaleDB container in te voeren heb ik de database teruggezet en draait alles weer

Heel erg bedankt voor de hulp!

dropdb dsmrreader -U postgres
createdb -O postgres dsmrreader -U postgres
cat dsmrreader.sql | psql -d dsmrreader -U postgres

@bikeymouse
Copy link

Top!
Ik vraag me overigens af wat het voordeel is om het als Add-On in Home Assistant te installeren?

Ik ben net overgestapt naar HA en heb DSMR los in Docker draaien, maar het lijkt me dat ik ook makkelijk de info uit DSMR kan halen door dat via MQTT uit te lezen. Mogelijk is dat al geregeld door alleen de integratie aan te zetten?

@nelbs
Copy link
Author

nelbs commented Mar 6, 2021

Ja klopt met de dsmr reader integratie worden tal van metingen en statistieken via mqtt naar HomeAssistant gestuurd.

Voordeel van een addon is met name dat je het met een paar keer klikken hebt draaien. Daarnaast kan je met snapshots ook makkelijker alles terugzetten en is het mogelijk om dsmr in een panel in je ha dashboard weer te geven.

Als je trouwens HomeAssistant OS draait dan ben je beperkt met het installeren van andere zaken en ben je aangewezen op add-ons.

@xirixiz
Copy link
Owner

xirixiz commented Mar 6, 2021

Mijn voorkeur geniet ook die van @bikeymouse. Maar inderdaad, beiden hebben zoals altijd voor- en nadelen.

@bikeymouse
Copy link

Ja klopt met de dsmr reader integratie worden tal van metingen en statistieken via mqtt naar HomeAssistant gestuurd.

Voordeel van een addon is met name dat je het met een paar keer klikken hebt draaien. Daarnaast kan je met snapshots ook makkelijker alles terugzetten en is het mogelijk om dsmr in een panel in je ha dashboard weer te geven.

Als je trouwens HomeAssistant OS draait dan ben je beperkt met het installeren van andere zaken en ben je aangewezen op add-ons.

Hi, ja installatie is in eerste instantie inderdaad wel makkelijker zo. Let overigens wel op dat mogelijk de snapshots een back-up maken van je configuratie, maar niet van de Postgress database.

Ik heb overigens HomeAssistant Supervised draaien op Proxmox, in een Ubuntu VM waarmee ik dan ook heel makkelijk snapshot/backups van de hele omgeving kan maken. Maar kan dus ook de add-ons installeren, vandaar mijn vraag.

Voor wat betreft installatie: met de docker-compose van xirixiz is het - als je een Docker-omgeving hebt draaien - eigenlijk ook maar 1 commando ;-)
Mijn grote dank dan ook voor het onderhouden van deze Container-versie van DSMR gaat dan ook naar Xirxiz.

@xirixiz
Copy link
Owner

xirixiz commented Mar 7, 2021

Wellicht kan je dat nog idd proberen, een "nieuwe" omgeving opspinnen met de voorbeeld docker-compose en dan kijken of het dan wel lukt. Dan heb je echt een "posgres" database, ondanks de timescaldb natuurlijk eigenlijk ook gewoon een postgres db is.

@xirixiz
Copy link
Owner

xirixiz commented Mar 9, 2021

Ik denk dat het volgende van belang is bij timescaledb, dus de user postgres gebruiken ipv dsmrreader.

docker exec -t dsmrdb createdb -O dsmrreader dsmrreader -U postgres
docker exec -t dsmrdb dropdb dsmrreader -U postgres

Wanneer je inlogt op de container kan je ook het volgende uitvoeren en het even verifieren:

psql -U postgres
\l

Ben benieuwd!

@xirixiz xirixiz closed this as completed Mar 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants