UniFi-Controller: Prüfen und bei neuer Veröffentlichung aktualisieren
Fortgeschritten
Dies ist ein DevOps, AI Summarization-Bereich Automatisierungsworkflow mit 11 Nodes. Hauptsächlich werden If, Ssh, Code, Telegram, HttpRequest und andere Nodes verwendet. Automatisierung von UniFi-Controller-Updates über SSH und Telegram-Benachrichtigungen
Voraussetzungen
- •Telegram Bot Token
- •Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
- •OpenAI API Key
Verwendete Nodes (11)
Kategorie
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
"name": "UniFi Controller: Check & Upgrade on New Release",
"tags": [
{
"name": "SSH"
}
],
"nodes": [
{
"id": "e3552972-d4cd-40fd-8436-39b41a0e4123",
"name": "Zeitplan-Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
432,
288
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 13,
"triggerAtMinute": 13
}
]
}
},
"typeVersion": 1.2
},
{
"id": "0aa8ec9d-4567-46e0-8271-8cc71c567ead",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
624,
288
],
"parameters": {
"url": "https://dl.ui.com/unifi/debian/dists/stable/InRelease",
"options": {},
"responseFormat": "string"
},
"typeVersion": 4.2
},
{
"id": "2d7e4f46-02ff-48a5-8e2d-3908fd6f04fa",
"name": "Codename + Datum + Zeitvergleich extrahieren",
"type": "n8n-nodes-base.code",
"position": [
864,
288
],
"parameters": {
"jsCode": "const inReleaseContent = $input.first().json.body || '';\n\n// Extract Codename\nconst codenameMatch = inReleaseContent.match(/^Codename:\\s*(.+)$/m);\nconst codename = codenameMatch ? codenameMatch[1].trim() : null;\n\n// Extract Date\nconst dateMatch = inReleaseContent.match(/^Date:\\s*(.+)$/m);\nconst dateString = dateMatch ? dateMatch[1].trim() : null;\n\nlet releaseTimestamp = null;\nlet changedInLast24h = false;\n\nif (dateString) {\n const parsedDate = new Date(dateString);\n if (!isNaN(parsedDate)) {\n releaseTimestamp = parsedDate.getTime();\n const now = Date.now();\n const diffHours = (now - releaseTimestamp) / (1000 * 60 * 60);\n changedInLast24h = diffHours <= 24;\n }\n}\n\nreturn [{ json: { codename, releaseDate: dateString, releaseTimestamp, changedInLast24h } }];"
},
"typeVersion": 2
},
{
"id": "d099755d-88bd-4ded-9206-3c84b0de25db",
"name": "If: Innerhalb 24h geändert?",
"type": "n8n-nodes-base.if",
"position": [
1072,
288
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "35485051-ae36-4332-9e1d-4a73be0a044a",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.changedInLast24h }}"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "808ecc9c-50d2-442c-ad10-913f67e1b240",
"name": "Paketlisten aktualisieren",
"type": "n8n-nodes-base.ssh",
"position": [
432,
512
],
"parameters": {
"cwd": "/root",
"command": "apt-get --allow-releaseinfo-change update",
"authentication": "privateKey"
},
"typeVersion": 1
},
{
"id": "b1f8686a-7c72-4283-baa4-3e43fe3e4ec9",
"name": "UniFi aktualisieren",
"type": "n8n-nodes-base.ssh",
"position": [
624,
512
],
"parameters": {
"cwd": "/root",
"command": "apt-get upgrade -y unifi",
"authentication": "privateKey"
},
"typeVersion": 1
},
{
"id": "1b892e4e-9f71-4537-abc1-4e135cac0f2c",
"name": "Message a model",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
464,
768
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-nano",
"cachedResultName": "GPT-4.1-NANO"
},
"options": {},
"messages": {
"values": [
{
"content": "=Please concisely summarize the performed UniFi update and what's new in this release.\n\nCodename: {{ $('Extract Codename + Date + Time Comparison').item.json.codename }}\nRelease date: {{ $('Extract Codename + Date + Time Comparison').item.json.releaseDate }}\n\napt-get update exit code: {{ $('Update package lists').item.json.code }}\napt-get upgrade exit code/stdout: {{ $('Upgrade UniFi').item.json.code }} / {{ $('Upgrade UniFi').item.json.stdout }}"
}
]
}
},
"typeVersion": 1.8
},
{
"id": "8439a184-315b-4282-a8fd-3bce2025ee8e",
"name": "Benachrichtigen via Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
800,
768
],
"parameters": {
"text": "=UniFi package updated:\n{{ $json.message && $json.message.content ? $json.message.content : 'Upgrade finished.' }}\n[Web interface](https://unifi.ui.com)",
"chatId": "={{ $env.TELEGRAM_CHAT_ID }}",
"additionalFields": {
"parse_mode": "Markdown"
}
},
"typeVersion": 1.2
},
{
"id": "1951d673-d0ed-4a1f-bd7d-dc1a24dd7d07",
"name": "Notiz: Trigger & Prüfung",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
240
],
"parameters": {
"color": 5,
"width": 796,
"height": 220,
"content": "Trigger workflow and check if UniFi repo has updated within the last 24 hours"
},
"typeVersion": 1
},
{
"id": "c9e311b8-b821-40ef-b014-c0a0a7552507",
"name": "Notiz: Upgrade",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
480
],
"parameters": {
"color": 4,
"width": 572,
"height": 220,
"content": "Issue package upgrade via SSH (controller host needs apt access and SSH key configured)"
},
"typeVersion": 1
},
{
"id": "691981f1-b61c-4b36-af6b-8ccdc92c57df",
"name": "Notiz: Benachrichtigung",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
736
],
"parameters": {
"width": 572,
"height": 220,
"content": "Inform via Telegram about the update (optional LLM for a short summary)\nRequire env var TELEGRAM_CHAT_ID and credentials binding."
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"connections": {
"0aa8ec9d-4567-46e0-8271-8cc71c567ead": {
"main": [
[
{
"node": "2d7e4f46-02ff-48a5-8e2d-3908fd6f04fa",
"type": "main",
"index": 0
}
]
]
},
"b1f8686a-7c72-4283-baa4-3e43fe3e4ec9": {
"main": [
[
{
"node": "1b892e4e-9f71-4537-abc1-4e135cac0f2c",
"type": "main",
"index": 0
}
]
]
},
"1b892e4e-9f71-4537-abc1-4e135cac0f2c": {
"main": [
[
{
"node": "8439a184-315b-4282-a8fd-3bce2025ee8e",
"type": "main",
"index": 0
}
]
]
},
"e3552972-d4cd-40fd-8436-39b41a0e4123": {
"main": [
[
{
"node": "0aa8ec9d-4567-46e0-8271-8cc71c567ead",
"type": "main",
"index": 0
}
]
]
},
"808ecc9c-50d2-442c-ad10-913f67e1b240": {
"main": [
[
{
"node": "b1f8686a-7c72-4283-baa4-3e43fe3e4ec9",
"type": "main",
"index": 0
}
]
]
},
"d099755d-88bd-4ded-9206-3c84b0de25db": {
"main": [
[
{
"node": "808ecc9c-50d2-442c-ad10-913f67e1b240",
"type": "main",
"index": 0
}
],
[]
]
},
"2d7e4f46-02ff-48a5-8e2d-3908fd6f04fa": {
"main": [
[
{
"node": "d099755d-88bd-4ded-9206-3c84b0de25db",
"type": "main",
"index": 0
}
]
]
}
}
}Häufig gestellte Fragen
Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Fortgeschritten - DevOps, KI-Zusammenfassung
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
n8n automatische Updates
Automatisierung von n8n-Updates mit Versionsprüfung und Portainer-Webhook
If
Code
Http Request
+
If
Code
Http Request
12 NodesDominic Spatz
DevOps
Degen Alpha
Scannen Sie vertrauliche Alpha mit dem OpenAI On-Chain Scanner - On-Chain- und Social-Media-Alerts werden an Telegram gesendet
If
Code
Merge
+
If
Code
Merge
38 NodesLuka Zivkovic
Krypto-Handel
n8n-Update
Automatisierung von Docker-Container-Updates mit einem Genehmigungssystem per Telegram
If
Set
Ssh
+
If
Set
Ssh
27 NodesJaber Zare
DevOps
SOL/USDT Multi-Timeframe-AI-Marktanalysator und Handelssystem (mit Telegram-Genehmigung)
Automatisierung von Solana-Handels mit Gemini AI, multipler Zeitrahmen-Analyse und AFK Crypto
If
Code
Wait
+
If
Code
Wait
56 NodesJeff
Krypto-Handel
n8n-Backup-Butler v3
Automatisches Backup von Workflows bei GitHub, mit E-Mail/Telegram-Benachrichtigungen
If
Code
Gmail
+
If
Code
Gmail
21 NodesBuilds.Cool
DevOps
Automatischer News-Sammler → Google-Tabelle
Sammeln und Zusammenfassen mehrsprachiger Nachrichten mit NewsAPI, OpenAI und Google-Tabellen
If
Set
Code
+
If
Set
Code
19 NodesSupira Inc.
KI-Zusammenfassung
Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes11
Kategorie2
Node-Typen8
Autor
Dominic Spatz
@dominicExterne Links
Auf n8n.io ansehen →
Diesen Workflow teilen