Home Assistant met MariaDB

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • sipjan
  • Registratie: Juni 2013
  • Nu online
Het volgende is waarschijnlijk een gevolg van te weinig kennis van ij van het OS (en filestructuur) van HA
Mijn HA draait op een Pi met een SSD als drive.
Homeassistant met o.a. Mariadb en uiteraard Terminal. Verder heb ik een share aangemaakt met Sambashare zodat ik de de share kan benaderen via mijn Windows machine. Dit laatste heb ik al eens eerder gedaan met een Linux machine en dat werkt uitsteken.
Ik kan files naar de share kopieren vanuit windows, en vervolgens zien en bewerken in de terminal mode van HA (met commando ls /share en vervolgens nano)
Verder heb ik in configuration.yaml van HA opgenomen:
allowlist_external_dirs:
- "/share"
- "/usr/share"
- "/config/tmp"

Vervolgens Mariadb gestart vanuit terminal:
Mariadb homeassistant -p******* --skip-ssl of Mariadb --skip-ssl
Dan de volgende selectie:
SELECT * FROM Tabel where datum = curdate() INTO OUTFILE '/share/x.csv' FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n';
vervolgens hetzelfde naar /usr/share/x.csv
en nog een keer naar /config/tmp/x.csv

Output:
ERROR 1 (HY000): Can't create/write to file '/share/x.csv' (Errcode: 2 "No such file or directory")
ERROR 1086 (HY000): File '/usr/share/x.csv' already exists (logisch, want ik had het al een keer eerder gedaan)
ERROR 1 (HY000): Can't create/write to file '/config/tmp/x.csv' (Errcode: 2 "No such file or directory")

Blijkbaar mag/kan ik niet vanuit Mariadb schrijven naar /share/ of /config/tmp/
Maar wel naar /usr/share/. Alleen als ik daar ga kijken (ls /usr/share) dan staat er geen file x.csv

Kan iemand mij vertellen hoe ik vanuit Mariadb kan schrijven naar /share

Beste antwoord (via sipjan op 03-04-2025 14:10)


  • DaRk PoIsOn
  • Registratie: Oktober 2002
  • Laatst online: 11:40
Je kunt toch gewoon bij MariaDB met de phpmyadmin addon. Die kun je installeren vanuit de community addons.
Die Samba share is ook gemaakt met de addon uit de store?

who put a "stop payment" on my reality check

Alle reacties


Acties:
  • 0 Henk 'm!

  • True
  • Registratie: April 2011
  • Niet online

True

Dislecticus

Kun je uitleggen waarom je die share hebt en waarvoor je die wilt gebruiken?

VW ID.7 Tourer Pro S | 5670 Wp JA Solar - 14x405 33° op Zuid | Twente


Acties:
  • 0 Henk 'm!

  • sipjan
  • Registratie: Juni 2013
  • Nu online
True schreef op woensdag 2 april 2025 @ 16:56:
Kun je uitleggen waarom je die share hebt en waarvoor je die wilt gebruiken?
Zodat ik kan beschikken over die gegevens BUITEN HA
Bv om in Excel iets te doen. Gewoon direct vanuit windows

[ Voor 5% gewijzigd door sipjan op 02-04-2025 17:44 ]


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 11:30

DataGhost

iPL dev

/usr/share is niet een map waar je normale bestanden heen wilt (kunnen) schrijven, die map heeft een heel ander doel. Ik vermoed dat je MariaDB-instance in een docker of iets dergelijks draait waardoor het bestand in werkelijkheid heel ergens anders terecht komt. Zonder verdere informatie over de setup is dat lastig uitleggen.

Dus om te beginnen:
- Welk OS
- Hoe heb je dat geïnstalleerd
- Hoe heb je MariaDB geïnstalleerd en geconfigureerd

Acties:
  • 0 Henk 'm!

  • FredvZ
  • Registratie: Februari 2002
  • Laatst online: 10:57
sipjan schreef op woensdag 2 april 2025 @ 17:42:
Zodat ik kan beschikken over die gegevens BUITEN HA
Bv om in Excel iets te doen. Gewoon direct vanuit windows
Moet het geautomatiseerd?
HA heeft namelijk een standaard functie om de data op te slaan als .csv.

Als je de history grafiek van een entiteit bekijkt zie je rechts 3 puntjes, als je daar op klikt kan je de data als csv downloaden.

edit:
Als je het geautomatiseerd wil doen kan dat ook met de API:
https://developers.home-a.../api/rest/#get-apihistory
(moet je er nog iets bij maken om de json om te zetten naar csv)

[ Voor 18% gewijzigd door FredvZ op 02-04-2025 19:16 ]

Spel en typfouten voorbehouden


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Je moet zorgen dat de user waaronder het MariaDB-proces draait schrijfrechten heeft in de directory waar je het bestand wilt wegschrijven. Anders zou je de query vanaf de command line kunnen draaien (zonder INTO OUTFILE) en dan de output redirecten naar het gewenste bestand (myqsl [...] > /share/x.csv) met een user die wel de juiste rechten heeft.

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • sipjan
  • Registratie: Juni 2013
  • Nu online
Room42 schreef op woensdag 2 april 2025 @ 19:19:
Je moet zorgen dat de user waaronder het MariaDB-proces draait schrijfrechten heeft in de directory waar je het bestand wilt wegschrijven. Anders zou je de query vanaf de command line kunnen draaien (zonder INTO OUTFILE) en dan de output redirecten naar het gewenste bestand (myqsl [...] > /share/x.csv) met een user die wel de juiste rechten heeft.
Bedoel je dan de user van de terminal mode (CLI) ? Dat is root (ZONDER wachtwoord)
Bedoel je de user binnen Mariadb ? Dat is homeassistant met een bekend wachtwoord

Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
sipjan schreef op woensdag 2 april 2025 @ 22:50:
[...]

Bedoel je dan de user van de terminal mode (CLI) ? Dat is root (ZONDER wachtwoord).
User root zonder wachtwoord? Bedoel je de user van MariaDB? Maar dat commando (mariadb of mysql) voer je dan uit als root (of sudo), neem ik aan?
Bedoel je de user binnen Mariadb? Dat is homeassistant met een bekend wachtwoord.
Nee, mariadb draait onder een bepaalde user. Je kunt eens 'ps aux | grep mariadb' uitvoeren. De eerste kolom bevat de user waar het proces onder draait. Die user heeft schrijfrechten nodig.

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 11:30

DataGhost

iPL dev

Leuk allemaal dat gedoe over schrijfrechten maar als dat het issue is krijg je een "Permission denied" en geen "No such file or directory".

$ echo bla > /bin/x.csv
-bash: /bin/x.csv: Permission denied

$ echo bla > /waa/x.csv
-bash: /waa/x.csv: No such file or directory

Acties:
  • 0 Henk 'm!

  • sipjan
  • Registratie: Juni 2013
  • Nu online
Nee, mariadb draait onder een bepaalde user. Je kunt eens 'ps aux | grep mariadb' uitvoeren. De eerste kolom bevat de user waar het proces onder draait. Die user heeft schrijfrechten nodig.
[/quote]

Uitgevoerd
root 2420 0.0 0.0 1676 768 pts/1 S+ 09:57 0:00 grep mariadb

Dus de user waaronder Mariadb wordt uitgevoerd is root
En de schrijfrechten van root zijn, ls -l /share/
total 12
drwxrwxrwx 4 root root 4096 Sep 11 2023 motioneye
-rwxr--r-- 1 root root 35 Mar 21 13:46 sirend.txt
drwxr-xr-x 3 root root 4096 Mar 13 14:41 speech-to-phrase

Als ik echter de file wegschrijf naar share/x.csv, dan krijg ik de foutmelding
ERROR 1 (HY000): Can't create/write to file '/data/databases/share/x.csv' (Errcode: 2 "No such file or directory")

Schrijf ik weg naar x.csv (dus ZONDER pad) dan lukt dat gewoon, en staat die file (blijkbaar) in data/databases/ Maar die kan ik dus niet vinden

Acties:
  • +1 Henk 'm!

  • ahbart
  • Registratie: Januari 2002
  • Laatst online: 08:33
Niet beledigend bedoeld, maar zo te lezen heb je geen idee waar je mee bezig bent!
Verdiep je eerst eens in de basis van linux en schijfrechten, de werking van processen op linux, docker etc.
En waarom zou je Home Assistant met mariadb willen draaien?

Acties:
  • +1 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
sipjan schreef op donderdag 3 april 2025 @ 10:57:
Uitgevoerd
root 2420 0.0 0.0 1676 768 pts/1 S+ 09:57 0:00 grep mariadb

Dus de user waaronder Mariadb wordt uitgevoerd is root
Dat zie je fout: Daar zie je dat je 'grep mariadb' als root uitvoert. ;)

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 11:30

DataGhost

iPL dev

Je hebt nog steeds niet geantwoord op mijn vragen, dus we moeten aannames doen. Uitgaand van je kennisniveau zal het dan wel zo zijn dat je HAOS draait met MariaDB als addon, en in dat geval draait 'ie volgens mij gewoon in een docker (disclaimer: ik draai zelf niet in HAOS en kan/ga het ook niet proberen nu). Niet dat je er heel veel van gaat leren maar als het goed is kan je in dat geval met dit commando je bestand "lokaal" krijgen:
docker cp addon_core_mariadb:/data/databases/x.csv /share/x.csv

Acties:
  • 0 Henk 'm!

  • sipjan
  • Registratie: Juni 2013
  • Nu online
Heren, ik gooi de handdoek in de ring. Jullie hebben waarschijnlijk gelijk dat ik van een aantal zaken onvoldoende verstand heb. Ik weet inderdaad (bijna) helemaal niets van docker. Nog nooit mee te maken gehad, maar ik ben dan ook geen software ontwikkelaar.

@DataGhost
Mariadb draait inderdaad als een addon, dat kan ik nog zien
Ik heb je commando geprobeerd en kreeg dit terug
Error response from daemon: Could not find the file /data/databases/x.csv in container addon_core_mariadb

In ieder geval bedankt voor de commentaren en adviezen

Acties:
  • 0 Henk 'm!

  • Oon
  • Registratie: Juni 2019
  • Niet online

Oon

Ik denk dat je misschien wel snel opgeeft. Het is op het begin allemaal ff achter je oren krabben, maar het is niet zo heel ingewikkeld.

Ik zou je aanraden om eens te beginnen met MariaDB niet als container binnen HAOS te draaien, maar erbuiten. Als je een tweede apparaat tot je beschikking hebt kan het daar, maar ik draai zelf bijv. een servertje thuis met Proxmox als base image, daarin een KVM VM met Home Assistant erin en op bare metal naast Proxmox draai ik ook Docker.
In Docker heb ik een centrale MariaDB server draaien, en Home Assistant slaat z'n data daar op. Resultaat is dat als ik data uit Home Assistant nodig heb ik gewoon die MariaDB server direct kan aanspreken.

Daarnaast is inlezen over Linux ook geen verkeerd idee, een beetje snappen hoe users en groepen en de rechten op bestanden en mappen werken. Als gevolg daarvan zou je dan ook meteen in moeten zien waarom het een slecht idee is om MariaDB als root te draaien ipv als eigen user, en waarom je dus beter een fatsoenlijk gebouwde container image kunt gebruiken die niet de root user gebruikt.

Voor dit alles heb je geen kennis van programmeren nodig, hooguit wat basis YAML syntax (dat is geen programmeren tot je echt diep in de combinatie van YAML met Jinja2 templates duikt) om Home Assistant weer aan de juiste database te koppelen. Je hebt wel wat kennis van systeembeheer nodig, maar dit is echt hét ideale project om die mee op te bouwen.

Acties:
  • 0 Henk 'm!

  • ahbart
  • Registratie: Januari 2002
  • Laatst online: 08:33
Draait HA in HAos altijd met mariadb? Volgens mij was het advies van de ontwikkelaars altijd om sqlite te (blijven) gebruiken. Zeker als beginner met HA.

Acties:
  • 0 Henk 'm!

  • sipjan
  • Registratie: Juni 2013
  • Nu online
[quote][b]Oon in "Home Assistant met MariaDB"

Ik zou je aanraden om eens te beginnen met MariaDB niet als container binnen HAOS te draaien, maar erbuiten. Als je een tweede apparaat tot je beschikking hebt kan het daar, maar ik draai zelf bijv. een servertje thuis met Proxmox als base image, daarin een KVM VM met Home Assistant erin en op bare metal naast Proxmox draai ik ook Docker.

Dank je wel,. Ik ga proberen mijn HA aan te sluiten op mijn aparte Linux apparaat met MySQLdatabase.
Daar weet ik in ieder geval zeker dat ik via de share met windows kan communiceren

Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • DaRk PoIsOn
  • Registratie: Oktober 2002
  • Laatst online: 11:40
Je kunt toch gewoon bij MariaDB met de phpmyadmin addon. Die kun je installeren vanuit de community addons.
Die Samba share is ook gemaakt met de addon uit de store?

who put a "stop payment" on my reality check


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
offtopic:
@sipjan pro-tip: Haal niet de [/quote] weg uit de quotes. Dan worden de quotes netjes als quotes weergegeven. :)

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • sipjan
  • Registratie: Juni 2013
  • Nu online
Room42 schreef op donderdag 3 april 2025 @ 14:08:
offtopic:
@sipjan pro-tip: Haal niet de [/quote] weg uit de quotes. Dan worden de quotes netjes als quotes weergegeven. :)
Klopt, heb ik net gedaan ;) ;)

Acties:
  • +1 Henk 'm!

  • sipjan
  • Registratie: Juni 2013
  • Nu online
DaRk PoIsOn schreef op donderdag 3 april 2025 @ 13:53:
Je kunt toch gewoon bij MariaDB met de phpmyadmin addon. Die kun je installeren vanuit de community addons.
Die Samba share is ook gemaakt met de addon uit de store?
Klopt heb ik net gedaan :) :)

(was hier bedoeld)

Acties:
  • 0 Henk 'm!

  • sipjan
  • Registratie: Juni 2013
  • Nu online
sipjan schreef op donderdag 3 april 2025 @ 13:43:
[quote][b]Oon in "Home Assistant met MariaDB"

Ik zou je aanraden om eens te beginnen met MariaDB niet als container binnen HAOS te draaien, maar erbuiten. Als je een tweede apparaat tot je beschikking hebt kan het daar, maar ik draai zelf bijv. een servertje thuis met Proxmox als base image, daarin een KVM VM met Home Assistant erin en op bare metal naast Proxmox draai ik ook Docker.

Dank je wel,. Ik ga proberen mijn HA aan te sluiten op mijn aparte Linux apparaat met MySQLdatabase.
Daar weet ik in ieder geval zeker dat ik via de share met windows kan communiceren
En dat laatste is ook gelukt. Kan ik kiezen :) :)
Pagina: 1