– via MikroTik Router Integration

Übersicht

Diese Anleitung beschreibt, wie du den Traffic eines bestimmten MikroTik-Router-Ports über die MikroTik Router Custom Integration (HACS) in Home Assistant erfasst, historisch speicherst und auf einem Dashboard mit stündlichem Volumen und zeitlichem Verlauf darstellst.

Die Custom Integration kommuniziert direkt über die RouterOS API (Port 8728/8729) – kein SNMP nötig. Sie liefert RX/TX-Sensoren pro Interface automatisch.


Voraussetzungen

  • MikroTik Router mit RouterOS v6.x oder v7.x
  • Home Assistant (OS, Supervised oder Container)
  • HACS installiert (hacs.xyz)
  • Custom Integration: tomaae/homeassistant-mikrotik_router
  • Optional für erweiterte Visualisierung: ApexCharts Card (HACS), mini-graph-card (HACS)

1. MikroTik vorbereiten: API-Benutzer anlegen

Die Integration benötigt keinen Admin-Zugang. Lege einen dedizierten API-Benutzer an.

Via RouterOS-Terminal / Winbox

# Neue Gruppe mit minimalen Rechten anlegen
/user group add name=homeassistant policy=read,api,test

# Benutzer anlegen und Gruppe zuweisen
/user add name=homeassistant group=homeassistant password=SICHERES_PASSWORT

# RouterOS API-Dienst aktivieren (Port 8728)
/ip service enable api
/ip service set api port=8728

# Optional: Zugriff nur von HA-IP erlauben
/ip service set api address=192.168.1.x/32

Tipp: Für SSL-Zugriff (Port 8729) muss ein Zertifikat auf dem Router generiert und api-ssl aktiviert werden. Für das lokale Netz ist plain API (Port 8728) ausreichend.


2. MikroTik Router Integration installieren (HACS)

Schritt 1: HACS-Repository hinzufügen

In Home Assistant: HACS → Integrationen → Menü (⋮) → Benutzerdefiniertes Repository hinzufügen

Repository: https://github.com/tomaae/homeassistant-mikrotik_router
Kategorie:  Integration

Schritt 2: Installation

  • In HACS nach MikroTik Router suchen
  • Installieren klicken
  • Home Assistant neu starten

Schritt 3: Integration einrichten

Einstellungen → Geräte & Dienste → Integration hinzufügen → „MikroTik Router“

Achtung: Die offizielle „Mikrotik“-Integration (nur Device Tracker) nicht auswählen, sondern die custom „MikroTik Router“-Integration.

Eingabefelder:

FeldWert
Namez.B. MikroTik Hauptrouter
Host192.168.1.1
Port0 (= Standard 8728)
Benutzernamehomeassistant
Passwortdein Passwort
SSLNein (oder Ja bei api-ssl)

Nach dem Einrichten erscheint eine Seite zur Sensor-Auswahl – alles aktivieren, unnötige Entitäten später in HA deaktivieren.


3. Welche Entitäten liefert die Integration?

Die Integration erstellt automatisch Sensoren pro Interface. Für ether3 sehen die Entitäten z.B. so aus:

Traffic-Sensoren (pro Interface)

EntitätBeschreibungEinheit
sensor.mikrotik_ether3_rxEmpfangene Bytes (kumulativ)B
sensor.mikrotik_ether3_txGesendete Bytes (kumulativ)B
sensor.mikrotik_ether3_rx_rateAktueller Durchsatz INbps
sensor.mikrotik_ether3_tx_rateAktueller Durchsatz OUTbps

Hinweis: Die genauen Entitätsnamen hängen vom Interface-Namen und dem gewählten Integrationsnamen ab. Nachschlagen unter Einstellungen → Geräte & Dienste → MikroTik Router → Entitäten.

Weitere nützliche Sensoren

  • sensor.mikrotik_cpu_load – CPU-Auslastung in %
  • sensor.mikrotik_memory_usage – RAM-Auslastung in %
  • binary_sensor.mikrotik_ether3 – Port Up/Down
  • switch.mikrotik_ether3 – Interface per HA aktivieren/deaktivieren

4. Durchsatz-Anzeige in Mbit/s (Template-Sensor)

Die _rate-Sensoren liefern bps (Bits pro Sekunde). Für lesbare Mbit/s-Werte:

# configuration.yaml
template:
  - sensor:
      - name: "ether3 Durchsatz IN Mbit/s"
        unique_id: ether3_rx_mbit
        unit_of_measurement: "Mbit/s"
        state_class: measurement
        device_class: data_rate
        state: >
          {% set bps = states('sensor.mikrotik_ether3_rx_rate') | float(0) %}
          {{ (bps / 1000000) | round(3) }}

      - name: "ether3 Durchsatz OUT Mbit/s"
        unique_id: ether3_tx_mbit
        unit_of_measurement: "Mbit/s"
        state_class: measurement
        device_class: data_rate
        state: >
          {% set bps = states('sensor.mikrotik_ether3_tx_rate') | float(0) %}
          {{ (bps / 1000000) | round(3) }}

5. Stündliches Traffic-Volumen (Utility Meter)

Der utility_meter berechnet das Datenvolumen pro Stunde/Tag aus dem kumulativen Byte-Zähler.

# configuration.yaml
utility_meter:
  ether3_rx_hourly:
    source: sensor.mikrotik_ether3_rx
    cycle: hourly
    name: "ether3 Volumen IN stündlich"

  ether3_tx_hourly:
    source: sensor.mikrotik_ether3_tx
    cycle: hourly
    name: "ether3 Volumen OUT stündlich"

  ether3_rx_daily:
    source: sensor.mikrotik_ether3_rx
    cycle: daily
    name: "ether3 Volumen IN täglich"

  ether3_tx_daily:
    source: sensor.mikrotik_ether3_tx
    cycle: daily
    name: "ether3 Volumen OUT täglich"

Umrechnung in MB für das Dashboard

template:
  - sensor:
      - name: "ether3 Volumen IN stündlich MB"
        unique_id: ether3_rx_hourly_mb
        unit_of_measurement: "MB"
        state_class: total_increasing
        state: >
          {% set val = states('sensor.ether3_volumen_in_stundlich') | float(0) %}
          {{ (val / 1048576) | round(2) }}

      - name: "ether3 Volumen OUT stündlich MB"
        unique_id: ether3_tx_hourly_mb
        unit_of_measurement: "MB"
        state_class: total_increasing
        state: >
          {% set val = states('sensor.ether3_volumen_out_stundlich') | float(0) %}
          {{ (val / 1048576) | round(2) }}

6. Recorder konfigurieren (Langzeithistorie)

# configuration.yaml
recorder:
  purge_keep_days: 90
  include:
    entities:
      - sensor.mikrotik_ether3_rx
      - sensor.mikrotik_ether3_tx
      - sensor.mikrotik_ether3_rx_rate
      - sensor.mikrotik_ether3_tx_rate
      - sensor.ether3_durchsatz_in_mbit_s
      - sensor.ether3_durchsatz_out_mbit_s
      - sensor.ether3_volumen_in_stundlich_mb
      - sensor.ether3_volumen_out_stundlich_mb

7. Dashboard-Konfiguration (YAML-Beispiele)

7.1 Echtzeit-Durchsatz (ApexCharts Card)

Installation via HACS: ApexCharts Card

type: custom:apexcharts-card
header:
  title: "ether3 – Echtzeit-Durchsatz"
  show: true
graph_span: 1h
update_interval: 30s
series:
  - entity: sensor.ether3_durchsatz_in_mbit_s
    name: "⬇ IN"
    color: "#00b4d8"
    type: area
    fill_raw: zero
    stroke_width: 2
  - entity: sensor.ether3_durchsatz_out_mbit_s
    name: "⬆ OUT"
    color: "#e63946"
    type: area
    fill_raw: zero
    stroke_width: 2
yaxis:
  - decimals: 2
    apex_config:
      title:
        text: "Mbit/s"

7.2 Stündliches Volumen als Balkendiagramm (ApexCharts)

type: custom:apexcharts-card
header:
  title: "ether3 – Traffic-Volumen pro Stunde (MB)"
  show: true
graph_span: 24h
chart_type: bar
all_series_config:
  group_by:
    func: max
    duration: 1h
series:
  - entity: sensor.ether3_volumen_in_stundlich_mb
    name: "⬇ IN (MB)"
    color: "#00b4d8"
  - entity: sensor.ether3_volumen_out_stundlich_mb
    name: "⬆ OUT (MB)"
    color: "#e63946"

7.3 Statistik-Karten (heute / diese Woche)

type: vertical-stack
cards:
  - type: horizontal-stack
    cards:
      - type: statistic
        entity: sensor.mikrotik_ether3_rx
        name: "IN heute"
        icon: mdi:download
        period:
          calendar:
            period: day
        stat_type: change

      - type: statistic
        entity: sensor.mikrotik_ether3_tx
        name: "OUT heute"
        icon: mdi:upload
        period:
          calendar:
            period: day
        stat_type: change

  - type: horizontal-stack
    cards:
      - type: statistic
        entity: sensor.mikrotik_ether3_rx
        name: "IN diese Woche"
        period:
          calendar:
            period: week
        stat_type: change

      - type: statistic
        entity: sensor.mikrotik_ether3_tx
        name: "OUT diese Woche"
        period:
          calendar:
            period: week
        stat_type: change

7.4 Mini-Graph-Card (kompakt, letzte 6h)

Installation via HACS: mini-graph-card

type: custom:mini-graph-card
name: "ether3 – Durchsatz letzte 6h"
icon: mdi:ethernet
entities:
  - entity: sensor.ether3_durchsatz_in_mbit_s
    name: "IN"
    color: "#00b4d8"
  - entity: sensor.ether3_durchsatz_out_mbit_s
    name: "OUT"
    color: "#e63946"
hours_to_show: 6
points_per_hour: 12
line_width: 2
animate: true
show:
  legend: true
  average: true
  extrema: true
  fill: true

7.5 Komplett-Dashboard (vollständiges YAML)

title: "Netzwerk-Monitor"
views:
  - title: "MikroTik Traffic"
    path: mikrotik-traffic
    icon: mdi:router-network
    cards:

      # ── Zeile 1: Aktuelle Werte ──────────────────────────────────────
      - type: horizontal-stack
        cards:
          - type: entity
            entity: sensor.ether3_durchsatz_in_mbit_s
            name: "▼ IN aktuell"
            icon: mdi:arrow-down-bold
          - type: entity
            entity: sensor.ether3_durchsatz_out_mbit_s
            name: "▲ OUT aktuell"
            icon: mdi:arrow-up-bold
          - type: entity
            entity: sensor.ether3_volumen_in_stundlich_mb
            name: "▼ IN diese Stunde"
            icon: mdi:download
          - type: entity
            entity: sensor.ether3_volumen_out_stundlich_mb
            name: "▲ OUT diese Stunde"
            icon: mdi:upload
          - type: entity
            entity: binary_sensor.mikrotik_ether3
            name: "Port Status"
            icon: mdi:ethernet

      # ── Zeile 2: Echtzeit-Graph ──────────────────────────────────────
      - type: custom:apexcharts-card
        header:
          title: "Echtzeit-Durchsatz – letzte Stunde"
          show: true
        graph_span: 1h
        update_interval: 30s
        series:
          - entity: sensor.ether3_durchsatz_in_mbit_s
            name: "IN (Mbit/s)"
            color: "#00b4d8"
            type: area
            fill_raw: zero
          - entity: sensor.ether3_durchsatz_out_mbit_s
            name: "OUT (Mbit/s)"
            color: "#e63946"
            type: area
            fill_raw: zero

      # ── Zeile 3: Stündliche Balken (letzte 24h) ──────────────────────
      - type: custom:apexcharts-card
        header:
          title: "Traffic-Volumen letzte 24h (MB/Stunde)"
          show: true
        graph_span: 24h
        chart_type: bar
        all_series_config:
          group_by:
            func: max
            duration: 1h
        series:
          - entity: sensor.ether3_volumen_in_stundlich_mb
            name: "IN (MB)"
            color: "#00b4d8"
          - entity: sensor.ether3_volumen_out_stundlich_mb
            name: "OUT (MB)"
            color: "#e63946"

      # ── Zeile 4: Tages-/Wochenstatistik ─────────────────────────────
      - type: horizontal-stack
        cards:
          - type: statistic
            entity: sensor.mikrotik_ether3_rx
            name: "IN heute"
            period:
              calendar:
                period: day
            stat_type: change
          - type: statistic
            entity: sensor.mikrotik_ether3_tx
            name: "OUT heute"
            period:
              calendar:
                period: day
            stat_type: change
          - type: statistic
            entity: sensor.mikrotik_ether3_rx
            name: "IN diese Woche"
            period:
              calendar:
                period: week
            stat_type: change
          - type: statistic
            entity: sensor.mikrotik_ether3_tx
            name: "OUT diese Woche"
            period:
              calendar:
                period: week
            stat_type: change

      # ── Zeile 5: Router-Systemstatus ─────────────────────────────────
      - type: horizontal-stack
        cards:
          - type: entity
            entity: sensor.mikrotik_cpu_load
            name: "CPU"
            icon: mdi:cpu-64-bit
          - type: entity
            entity: sensor.mikrotik_memory_usage
            name: "RAM"
            icon: mdi:memory

8. Entitäten-Übersicht

EntitätQuelleBeschreibung
sensor.mikrotik_ether3_rxIntegration direktKumulativer RX-Zähler (Bytes)
sensor.mikrotik_ether3_txIntegration direktKumulativer TX-Zähler (Bytes)
sensor.mikrotik_ether3_rx_rateIntegration direktAktueller Durchsatz IN (bps)
sensor.mikrotik_ether3_tx_rateIntegration direktAktueller Durchsatz OUT (bps)
sensor.ether3_durchsatz_in_mbit_sTemplateDurchsatz IN in Mbit/s
sensor.ether3_durchsatz_out_mbit_sTemplateDurchsatz OUT in Mbit/s
sensor.ether3_volumen_in_stundlichUtility MeterVolumen IN pro Stunde (Bytes)
sensor.ether3_volumen_out_stundlichUtility MeterVolumen OUT pro Stunde (Bytes)
sensor.ether3_volumen_in_stundlich_mbTemplateVolumen IN pro Stunde (MB)
sensor.ether3_volumen_out_stundlich_mbTemplateVolumen OUT pro Stunde (MB)
binary_sensor.mikrotik_ether3Integration direktPort Up/Down
switch.mikrotik_ether3Integration direktPort ein-/ausschalten

Tipp: Die tatsächlichen Entitätsnamen nachschlagen unter:
Einstellungen → Geräte & Dienste → MikroTik Router → Entitäten


9. Troubleshooting

ProblemUrsacheLösung
Integration zeigt unavailableAPI nicht erreichbar/ip service prüfen, Firewall auf Port 8728 kontrollieren
Keine Entitäten für ether3Interface nicht aktiviertIn der Integrations-Konfiguration Sensoren aktivieren
_rate-Sensor immer 0Kein Traffic oder Polling-ProblemScan-Interval in den Optionen der Integration prüfen
Utility Meter zählt nichtQuell-Sensor hat kein state_classIntegration neu laden, HA neu starten
Entitätsname unklarNamensschema variiert je nach SetupUnter Einstellungen → Entitäten nach mikrotik filtern
API-Verbindung schlägt fehlFalscher Benutzer/Passwort oder Policy/user print und /user group print auf RouterOS prüfen

10. Optionale Erweiterung: InfluxDB für Langzeitdaten

Für mehr als 90 Tage History oder Grafana-Integration:

# configuration.yaml
influxdb:
  host: 192.168.1.x
  port: 8086
  database: homeassistant
  username: ha_user
  password: !secret influxdb_password
  include:
    entities:
      - sensor.ether3_durchsatz_in_mbit_s
      - sensor.ether3_durchsatz_out_mbit_s
      - sensor.ether3_volumen_in_stundlich_mb
      - sensor.ether3_volumen_out_stundlich_mb

Quellen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert