DE: Tigo Optimizer Monitoring ueber RS485: taptap observe -> InfluxDB 1.x -> Grafana.
EN: Tigo optimizer monitoring via RS485: taptap observe -> InfluxDB 1.x -> Grafana.
Doku
- Setup (ausfuehrlich, RS485, systemd, Influx, Grafana):
tigo-ingest/docs/SETUP_DE.md - Quellen / Credits:
tigo-ingest/docs/SOURCES.md
Versionierung
- Releases/Tags ab
v1.0.0(siehe GitHub Releases)
Health Check
- Automatische Ingest-Pruefung per
systemdTimer:systemd/tigo-ingest-healthcheck.servicesystemd/tigo-ingest-healthcheck.timer
- Python 3.11+
- Ein funktionierendes
taptapBinary (wird hier als externe Datenquelle genutzt) - Zugriff auf die CCA/TAP Verbindung (RS485):
- empfohlen:
--serial /dev/serial/by-id/...(stabiler als/dev/ttyUSB*) - alternativ:
--tcp <ip>fuer Serial-over-TCP Bridge (Port default 7160)
- empfohlen:
InfluxDB Measurement (default): tigo_power_report
- Tags:
src=tigo,gateway_id,node_id(optional:gateway_addr,node_addr,barcode) - Fields:
voltage_in_v,voltage_out_v,current_in_a,power_w,current_out_a,duty_cycle,temperature_c,rssi
cd /home/black/tigo-ingest
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# .env anpassen
python -m tigo_ingestDefaults schreiben unbegrenzt in die DB-Default-Retention (autogen) in bms auf http://127.0.0.1:8086 (deine DB hat autogen = infinite und rp48h = 48h).
sudo cp /home/black/tigo-ingest/systemd/tigo-ingest.service /etc/systemd/system/tigo-ingest.service
sudo systemctl daemon-reload
sudo systemctl enable --now tigo-ingest.service
sudo systemctl status tigo-ingest.serviceHealth-Check aktivieren:
sudo cp /home/black/tigo-ingest/systemd/tigo-ingest-healthcheck.service /etc/systemd/system/tigo-ingest-healthcheck.service
sudo cp /home/black/tigo-ingest/systemd/tigo-ingest-healthcheck.timer /etc/systemd/system/tigo-ingest-healthcheck.timer
sudo systemctl daemon-reload
sudo systemctl enable --now tigo-ingest-healthcheck.timer
systemctl status --no-pager -n 20 tigo-ingest-healthcheck.timerMQTT Status (optional, fuer Alerting):
cd /home/black/tigo-ingest
cp -n .env.example .env
sed -i 's/^TIGO_HEALTH_MQTT_ENABLED=.*/TIGO_HEALTH_MQTT_ENABLED=1/' .env
# optional anpassen: Host/Topic/User/PassSerial Ports anzeigen:
. $HOME/.cargo/env
taptap list-serial-portsWenn ein Port "busy" ist:
sudo fuser -v /dev/ttyUSB0 || true
sudo fuser -v /dev/ttyUSB1 || trueSmoketest (zeigt, ob taptap observe ueber RS485 Events liefert):
sudo systemctl stop tigo-ingest.service
./scripts/rs485-smoketest.sh
sudo systemctl start tigo-ingest.serviceDashboard JSON:
tigo-ingest/grafana/tigo-influxdb-autogen-dashboard.json
Beim Import die Datasource-Variable DS_INFLUX auf deine InfluxDB (InfluxQL / InfluxDB 1.x, DB bms) mappen.
Alles laeuft ueber Umgebungsvariablen (oder .env):
TAPTAP_CMD:- z.B.
taptap observe --serial /dev/serial/by-id/usb-FTDI_... - oder
taptap observe --tcp <bridge-ip>(Port default 7160)
- z.B.
INFLUX_URL:- z.B.
http://127.0.0.1:8086
- z.B.
INFLUX_DB:- z.B.
bms
- z.B.
INFLUX_RP:- leer lassen = DB Default (
autogen, infinite) - oder z.B.
rp48hwenn du explizit 48h Historie willst
- leer lassen = DB Default (
INFLUX_MEASUREMENT:- default
tigo_power_report
- default
INFLUX_DRY_RUN:1= nicht schreiben, nur loggen
LOG_LEVEL:INFO(default),DEBUG
TIGO_HEALTH_MQTT_ENABLED:1= Healthcheck sendetOK/CRITJSON an MQTT Topic
TIGO_HEALTH_MQTT_HOST/TIGO_HEALTH_MQTT_PORT/TIGO_HEALTH_MQTT_TOPIC:- Broker + Topic (default
127.0.0.1:1883,tigo/health)
- Broker + Topic (default
TIGO_HEALTH_MQTT_USER/TIGO_HEALTH_MQTT_PASS:- optionaler Login fuer den Broker
TIGO_HEALTH_MQTT_RETAIN:1(default) = letzter Status retained
- Dieses Projekt implementiert nicht das Tigo-Protokoll selbst; es nutzt
taptapals Datenquelle. - Wenn du InfluxDB 2.x hast (Bucket/Token), sag kurz Bescheid, dann stelle ich das auf v2 um.
