4.1 KiB
4.1 KiB
name, description
| name | description |
|---|---|
| chart-to-chat | Generiert hochwertige Diagramme und Charts (Balken, Linien, Verlauf, Donut/Kuchen, KPI-Karten, Tabellen) aus strukturierten Chat-Daten und sendet sie direkt als Bild (PNG) nach Telegram. Basiert auf dbt-charts (lokales Rendering via dct) mit QuickChart.io-Fallback. |
📊 Chart-to-Chat: Diagramm- und Chart-Generator
Dieser Skill transformiert tabellarische Daten, Verläufe, Statistiken oder Kennzahlen direkt in fertige, publikationsreife PNG-Grafiken, die nativ per Telegram-Bildnachricht ausgeliefert werden.
🎯 Wann diesen Skill verwenden?
- Immer wenn der Nutzer nach einer Visualisierung fragt:
- „Zeig mir das als Diagramm / Chart / Balkendiagramm“
- „Plotte mir den Verlauf von X über die letzten 7 Tage“
- „Visualisiere meine Ausgaben / mein Training / meine Schritte“
- „Erstelle eine Grafik / Kurve dazu“
- Bei Vergleichsdaten oder Verteilungen (z. B. Anteile, Kategorien, Monatsumsätze).
- Für KPI-Zusammenfassungen mit Hauptwert und Delta.
📈 Welcher Chart-Typ passt wann?
Chart-Typ (--type) |
Bester Anwendungsfall | Beispiel |
|---|---|---|
bar (Default) |
Diskrete Kategorien, Rankings, Monatsvergleiche | Schritte pro Tag, Stunden pro Projekt |
hbar |
Viele Kategorien mit langen Namen | Ranking der Supermärkte nach Ersparnis |
line |
Zeitreihen, kontinuierliche Verläufe, Messwerte | Herzfrequenz, Temperaturverlauf, Gewicht, Watt |
area |
Kumulierte Volumina oder Trends über Zeit | Datenverbrauch, kumulierter Regen, Trainingsvolumen |
donut / pie |
Prozentuale Anteile an einem Ganzen (100 %) | Ausgaben nach Kategorie, Makronährstoff-Verteilung |
kpi |
Einzelne prominente Kennzahl mit Kontext/Delta | Aktueller FTP, Monatsumsatz, Gesamtschritte |
table |
Strukturierte Datentabelle mit formatierten Spalten | Vergleichstabelle von Produkten oder Tarifen |
🛠️ Ausführung
Führe das Skript chart.py via uv run aus (Cluster-Pfad: /home/node/mop-skills/mop-skills/skills/chart-to-chat/scripts/chart.py):
1. Daten direkt als JSON-String übergeben
uv run /home/node/mop-skills/mop-skills/skills/chart-to-chat/scripts/chart.py \
--title "Wöchentliche Laufdistanz" \
--type bar \
--data '[{"tag": "Mo", "km": 8.5}, {"tag": "Mi", "km": 12.0}, {"tag": "Fr", "km": 6.2}, {"tag": "So", "km": 16.5}]'
2. Daten per Pipe (Standard-Eingabe) übergeben
Besonders empfohlen bei größeren Datenmengen oder um Shell-Escaping-Probleme zu vermeiden:
cat << 'EOF' | uv run /home/node/mop-skills/mop-skills/skills/chart-to-chat/scripts/chart.py --title "Ruhepuls Trend" --type line --data -
[
{"datum": "12.09.", "puls": 54},
{"datum": "13.09.", "puls": 52},
{"datum": "14.09.", "puls": 55},
{"datum": "15.09.", "puls": 53},
{"datum": "16.09.", "puls": 51}
]
EOF
3. Donut-Chart für Anteile / Verteilungen
uv run /home/node/mop-skills/mop-skills/skills/chart-to-chat/scripts/chart.py \
--title "Ausgaben September" \
--type donut \
--data '[{"kategorie": "Miete", "euro": 950}, {"kategorie": "Lebensmittel", "euro": 420}, {"kategorie": "Sport", "euro": 110}]'
4. Optionen des CLI-Tools
--title "<Text>": Überschrift des Diagramms.--notes "<Text>": Optionale Unterzeile / Erläuterung.--type bar|hbar|line|area|donut|kpi|table: Visualisierungstyp.--data "<JSON>"oder--data -(Stdin): Eingabedaten.--x <Spaltenname>/--y <Spaltenname>: Manuelle Angabe der Achsenspalten (wird ansonsten automatisch erkannt).--engine auto|dct|quickchart:autonutzt primär das lokaledbt-chartsund fällt bei Bedarf transparent aufQuickChart.iozurück.
📱 Auslieferung an Telegram
Das Skript gibt als letzte Zeile den Pfad der erzeugten PNG-Datei im Format MEDIA:<pfad> aus, z. B.:
MEDIA:/tmp/charts/chart_a1b2c3d4.png
Schließe diese Zeile einfach in deine finale Antwort an den Nutzer ein. OpenClaw versendet das Diagramm dadurch automatisch als Bild im Chat:
Hier ist die Übersicht deiner Laufdistanzen für diese Woche:
MEDIA:/tmp/charts/chart_a1b2c3d4.png