MariaDB für Home-Assistant anstatt der originalen - Yaml Template

Bereich zum Test erstellt. Mal sehen wohin das führt.
Antworten
juergjue
User
User
Beiträge: 59
Registriert: Do 20. Jan 2022, 19:42

MariaDB für Home-Assistant anstatt der originalen - Yaml Template

Beitrag von juergjue »

Ich bin aufgrund er Performance auf eine MariaDB im separaten Docker umgestiegen in Home-Assistant.
Falls jemand das Template für die Docker-Compose brauchen kann, hier bitte:

configuration.yaml -- um den Entity-Recorder etwas einzudämmen:

Code: Alles auswählen

recorder:
  db_url: !secret recorder_db_url
  purge_keep_days: 30
  auto_purge: true
  exclude:
    domains:
      - device_tracker
      - time_date
    entity_globs:
      - sensor.date*
      - sensor.time*
      - binary_sensor.kamera_einfahrt*
      - binary_sensor.browsermod_*
      - sensor.browsermod_*
      - camera.browsermod_*
      - light.browsermod_*
      - number.browsermod_*
      - switch.browsermod_*
      - select.browsermod_*
      - update.browsermod_*
      - media_player.browsermod_*
    entities:
      - sensor.home_assistant_v2_db_size
      - binary_sensor.browsermod_firehd10_2
secrets.yaml:

Code: Alles auswählen

#homeassistant
recorder_db_url: mysql://<User>:<Password>@>IPAddress>:<Port>/<DBName>?charset=utf8mb4
Docker-Compose.yaml:

Code: Alles auswählen

  mariadb:
    container_name: mariadb
    image: mariadb:latest
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: <Password>
      MYSQL_DATABASE: <DBName>
      MYSQL_USER: <User>
      MYSQL_PASSWORD: <Password>
    ports:
      - 3306:3306
    logging:
      options:
        max-size: "5m"
        max-file: "3"
    volumes:
      - ./volumes/mariadb/data:/var/lib/mysql

Zusätzlich habe ich in Home-Assistant das Volume für die MariaDB angegeben:

Code: Alles auswählen

      - ./volumes/mariadb/data:/mariadb
Und zum Schluss gibts den Sensor in der Configuration.yamlt:

Code: Alles auswählen

sensor:
  ### Systemintegration "System Monitor"
  - platform: systemmonitor
    resources:
      - type: disk_use_percent
        arg: /
      - type: memory_use_percent
      - type: processor_use
      - type: last_boot
    scan_interval: 120

  - platform: filesize
    file_paths:
      - /config/home-assistant_v2.db
      - /config/home-assistant.log

  - platform: sql
    db_url: !secret recorder_db_url
    queries:
      - name: db Size
        query: SELECT table_schema "database", Round(Sum(data_length + index_length) / 1024, 1) "value" FROM information_schema.tables WHERE table_schema="<DBName>" GROUP BY table_schema;
        column: 'value'
        unit_of_measurement: MB


Benutzeravatar
ei23felix
Administrator
Administrator
Beiträge: 323
Registriert: Sa 17. Jul 2021, 10:44
Kontaktdaten:

Re: MariaDB für Home-Assistant anstatt der originalen - Yaml Template

Beitrag von ei23felix »

Gute Idee!
Danke
  • Böse Menschen sind selten tatsächlich böse, meistens eher faul oder dumm.
  • Du kannst nur dann sicher sein, wenn du weißt, dass du nie ganz sicher sein kannst.
  • Du kannst nur unabhängig werden, wenn du weißt, dass du nie ganz unabhängig sein wirst.

juergjue
User
User
Beiträge: 59
Registriert: Do 20. Jan 2022, 19:42

Re: MariaDB für Home-Assistant anstatt der originalen - Yaml Template

Beitrag von juergjue »

Noch ein interessanter Nachtrag um festzustellen welche Entities die Datenbank stark belasten, habe ich phpmyadmin im Docker installiert und folgende Query in der Tabelle "states" gemacht: select entity_id,count(*) from states group by entity_id order by count(*) desc;

Hier noch die Docker-Compose für phpmyadmin

Code: Alles auswählen

Achtung!! phpmyadmin hat als Abhängigkeit die mariadb von meinem ersten Post!

  phpmyadmin:
    depends_on:
      - mariadb
    image: phpmyadmin:latest
    restart: unless-stopped
    ports:
      - "8090:80"
    environment:
      PMA_HOST: mariadb
      MYSQL_ROOT_PASSWORD: <Password>
    logging:
      options:
        max-size: "5m"
        max-file: "3"
    volumes:
      - ./volumes/phpmyadmin/config.user.inc.php:/etc/phpmyadmin/config.user.inc.php phpmyadmin
      - ./volumes/phpmyadmin/sessions:/sessions
Link wie das Ergebnis aussehen könnte, siehe Youtube:
https://www.youtube.com/watch?v=d4puc7_sikk&t=72s

Antworten