added n8n flow
This commit is contained in:
37
README.md
37
README.md
@@ -33,6 +33,7 @@ mqtt/
|
|||||||
├── .env # Umgebungsvariablen (NICHT committen!)
|
├── .env # Umgebungsvariablen (NICHT committen!)
|
||||||
├── .env.example # Beispiel für Umgebungsvariablen
|
├── .env.example # Beispiel für Umgebungsvariablen
|
||||||
├── mqtt-panel-config.json # Legacy Dashboard Konfiguration
|
├── mqtt-panel-config.json # Legacy Dashboard Konfiguration
|
||||||
|
├── n8n-mqtt.json # n8n Workflow für MQTT-Integration
|
||||||
├── setup.sh # Setup-Script für User
|
├── setup.sh # Setup-Script für User
|
||||||
├── test-mqtt.sh # Test-Script für MQTT Nachrichten
|
├── test-mqtt.sh # Test-Script für MQTT Nachrichten
|
||||||
├── CLAUDE.md # Projekt-Dokumentation für Claude Code
|
├── CLAUDE.md # Projekt-Dokumentation für Claude Code
|
||||||
@@ -211,6 +212,42 @@ Nach Änderungen Container neu starten:
|
|||||||
docker compose restart mqttui
|
docker compose restart mqttui
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## n8n Integration
|
||||||
|
|
||||||
|
Das Repository enthält einen vorgefertigten n8n Workflow (`n8n-mqtt.json`), der automatisch MQTT-Nachrichten an den Broker sendet.
|
||||||
|
|
||||||
|
### Was ist n8n?
|
||||||
|
|
||||||
|
[n8n](https://n8n.io/) ist ein Workflow-Automatisierungstool, ähnlich wie Zapier oder Node-RED, mit dem sich verschiedene Dienste und APIs miteinander verbinden lassen.
|
||||||
|
|
||||||
|
### Workflow-Funktionen
|
||||||
|
|
||||||
|
Der bereitgestellte Workflow sendet automatisch das aktuelle Datum und die Uhrzeit an das Topic `devices/device1/now`:
|
||||||
|
- **Manueller Trigger**: Workflow manuell per Button ausführen
|
||||||
|
- **Schedule Trigger**: Automatische Ausführung jede Minute
|
||||||
|
- **MQTT Node**: Sendet Timestamp im Format "dd.MM.yyyy - HH:mm:ss"
|
||||||
|
|
||||||
|
### Workflow importieren
|
||||||
|
|
||||||
|
1. n8n installieren und starten (siehe [n8n Dokumentation](https://docs.n8n.io/))
|
||||||
|
2. In n8n: **Workflows → Import → From File**
|
||||||
|
3. Die Datei `n8n-mqtt.json` auswählen
|
||||||
|
4. MQTT Credentials konfigurieren:
|
||||||
|
- Host: `localhost` (oder deine Server-IP)
|
||||||
|
- Port: `1883`
|
||||||
|
- Username: z.B. `device1` (aus deiner `.env`)
|
||||||
|
- Password: entsprechendes Passwort aus `.env`
|
||||||
|
5. Workflow aktivieren
|
||||||
|
|
||||||
|
⚠️ **Hinweis**: Der User muss Schreibrechte für `devices/device1/#` haben (siehe ACL in `config/acl.conf`).
|
||||||
|
|
||||||
|
### Workflow anpassen
|
||||||
|
|
||||||
|
Du kannst den Workflow nach dem Import anpassen:
|
||||||
|
- **Topic ändern**: Passe das Topic im MQTT Node an (Zeile 17 in der JSON)
|
||||||
|
- **Schedule anpassen**: Ändere den Zeitplan im Schedule Trigger Node
|
||||||
|
- **Nachrichtenformat**: Passe die Message-Expression an (Zeile 19)
|
||||||
|
|
||||||
## Test-Nachrichten senden
|
## Test-Nachrichten senden
|
||||||
|
|
||||||
### Via Docker
|
### Via Docker
|
||||||
|
|||||||
112
n8n-mqtt.json
Normal file
112
n8n-mqtt.json
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
{
|
||||||
|
"name": "Send MQTT Data to Broker",
|
||||||
|
"nodes": [
|
||||||
|
{
|
||||||
|
"parameters": {},
|
||||||
|
"type": "n8n-nodes-base.manualTrigger",
|
||||||
|
"typeVersion": 1,
|
||||||
|
"position": [
|
||||||
|
-432,
|
||||||
|
-112
|
||||||
|
],
|
||||||
|
"id": "213b3a19-1c7b-4a2d-854a-84ffe962c6da",
|
||||||
|
"name": "When clicking ‘Execute workflow’"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"parameters": {
|
||||||
|
"topic": "devices/device1/now",
|
||||||
|
"sendInputData": false,
|
||||||
|
"message": "={{ $now.toFormat('dd.MM.yyyy - HH:mm:ss') }}\n\n",
|
||||||
|
"options": {}
|
||||||
|
},
|
||||||
|
"type": "n8n-nodes-base.mqtt",
|
||||||
|
"typeVersion": 1,
|
||||||
|
"position": [
|
||||||
|
-144,
|
||||||
|
-32
|
||||||
|
],
|
||||||
|
"id": "cada589b-263e-4b4b-98c2-1912bc4685e5",
|
||||||
|
"name": "MQTT",
|
||||||
|
"credentials": {
|
||||||
|
"mqtt": {
|
||||||
|
"id": "L07VVR2BDfDda6Zo",
|
||||||
|
"name": "MQTT account"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"parameters": {
|
||||||
|
"rule": {
|
||||||
|
"interval": [
|
||||||
|
{
|
||||||
|
"field": "minutes"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "n8n-nodes-base.scheduleTrigger",
|
||||||
|
"typeVersion": 1.2,
|
||||||
|
"position": [
|
||||||
|
-432,
|
||||||
|
64
|
||||||
|
],
|
||||||
|
"id": "40c2908e-43ae-41fc-a8d0-ed56e13d2593",
|
||||||
|
"name": "Schedule Trigger"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"parameters": {
|
||||||
|
"content": "## MQTT-Broker Trigger\n**Click me** [MQTT-Broker](https://mqtt.example.com/)",
|
||||||
|
"height": 416,
|
||||||
|
"width": 608,
|
||||||
|
"color": 4
|
||||||
|
},
|
||||||
|
"type": "n8n-nodes-base.stickyNote",
|
||||||
|
"position": [
|
||||||
|
-528,
|
||||||
|
-224
|
||||||
|
],
|
||||||
|
"typeVersion": 1,
|
||||||
|
"id": "d8f6c240-2f10-4214-908b-9a167479aba5",
|
||||||
|
"name": "Sticky Note"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"pinData": {},
|
||||||
|
"connections": {
|
||||||
|
"When clicking ‘Execute workflow’": {
|
||||||
|
"main": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"node": "MQTT",
|
||||||
|
"type": "main",
|
||||||
|
"index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"Schedule Trigger": {
|
||||||
|
"main": [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"node": "MQTT",
|
||||||
|
"type": "main",
|
||||||
|
"index": 0
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"active": true,
|
||||||
|
"settings": {
|
||||||
|
"executionOrder": "v1",
|
||||||
|
"callerPolicy": "workflowsFromSameOwner",
|
||||||
|
"availableInMCP": false,
|
||||||
|
"errorWorkflow": "0bBZzSE6SUzVsif5"
|
||||||
|
},
|
||||||
|
"versionId": "dbb34898-a9e9-4ed2-9e23-17f7a500b7cf",
|
||||||
|
"meta": {
|
||||||
|
"templateCredsSetupCompleted": true,
|
||||||
|
"instanceId": "2f7fd37175cefa82de44e06b8af9ab9c01e7956018045d6efc4f7bf1588a41eb"
|
||||||
|
},
|
||||||
|
"id": "YFFPaZaXOaQkYgQW",
|
||||||
|
"tags": []
|
||||||
|
}
|
||||||
0
pictures/readme.md
Normal file
0
pictures/readme.md
Normal file
Reference in New Issue
Block a user