– 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-sslaktiviert 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:
| Feld | Wert |
|---|---|
| Name | z.B. MikroTik Hauptrouter |
| Host | 192.168.1.1 |
| Port | 0 (= Standard 8728) |
| Benutzername | homeassistant |
| Passwort | dein Passwort |
| SSL | Nein (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ät | Beschreibung | Einheit |
|---|---|---|
sensor.mikrotik_ether3_rx | Empfangene Bytes (kumulativ) | B |
sensor.mikrotik_ether3_tx | Gesendete Bytes (kumulativ) | B |
sensor.mikrotik_ether3_rx_rate | Aktueller Durchsatz IN | bps |
sensor.mikrotik_ether3_tx_rate | Aktueller Durchsatz OUT | bps |
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/Downswitch.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ät | Quelle | Beschreibung |
|---|---|---|
sensor.mikrotik_ether3_rx | Integration direkt | Kumulativer RX-Zähler (Bytes) |
sensor.mikrotik_ether3_tx | Integration direkt | Kumulativer TX-Zähler (Bytes) |
sensor.mikrotik_ether3_rx_rate | Integration direkt | Aktueller Durchsatz IN (bps) |
sensor.mikrotik_ether3_tx_rate | Integration direkt | Aktueller Durchsatz OUT (bps) |
sensor.ether3_durchsatz_in_mbit_s | Template | Durchsatz IN in Mbit/s |
sensor.ether3_durchsatz_out_mbit_s | Template | Durchsatz OUT in Mbit/s |
sensor.ether3_volumen_in_stundlich | Utility Meter | Volumen IN pro Stunde (Bytes) |
sensor.ether3_volumen_out_stundlich | Utility Meter | Volumen OUT pro Stunde (Bytes) |
sensor.ether3_volumen_in_stundlich_mb | Template | Volumen IN pro Stunde (MB) |
sensor.ether3_volumen_out_stundlich_mb | Template | Volumen OUT pro Stunde (MB) |
binary_sensor.mikrotik_ether3 | Integration direkt | Port Up/Down |
switch.mikrotik_ether3 | Integration direkt | Port ein-/ausschalten |
Tipp: Die tatsächlichen Entitätsnamen nachschlagen unter:
Einstellungen → Geräte & Dienste → MikroTik Router → Entitäten
9. Troubleshooting
| Problem | Ursache | Lösung |
|---|---|---|
Integration zeigt unavailable | API nicht erreichbar | /ip service prüfen, Firewall auf Port 8728 kontrollieren |
| Keine Entitäten für ether3 | Interface nicht aktiviert | In der Integrations-Konfiguration Sensoren aktivieren |
_rate-Sensor immer 0 | Kein Traffic oder Polling-Problem | Scan-Interval in den Optionen der Integration prüfen |
| Utility Meter zählt nicht | Quell-Sensor hat kein state_class | Integration neu laden, HA neu starten |
| Entitätsname unklar | Namensschema variiert je nach Setup | Unter Einstellungen → Entitäten nach mikrotik filtern |
| API-Verbindung schlägt fehl | Falscher 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