This workflow follows the Agent → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"name": "AI Energy Analysis",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "energy-analysis",
"responseMode": "lastNode",
"options": {}
},
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1.1,
"position": [
-4992,
1152
],
"id": "dd5dd383-ecb8-473d-8c5f-4d850f82a2ed"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "chatInput-field",
"name": "chatInput",
"value": "={{ ($json.body.question || 'Gib mir eine kurze Zusammenfassung des heutigen Energieverbrauchs.') + ($json.body.output === 'awtrix' ? ' [AUSGABEFORMAT: Awtrix LED-Display, maximal 100 Zeichen, kein Markdown, nur Klartext]' : '') }}",
"type": "string"
},
{
"id": "sessionId-field",
"name": "sessionId",
"value": "={{ 'energy-' + $now.toMillis() }}",
"type": "string"
}
]
},
"options": {}
},
"name": "Prepare Prompt",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-4768,
1152
],
"id": "eb458aef-359d-4e18-9f63-cee5c971a2e2"
},
{
"parameters": {
"options": {
"systemMessage": "Du bist ein Energieanalyst fuer einen Haushalt mit ueberwachten Geraeten (Tapo P110 Smart Plugs). Antworte kurz und praegnant auf Deutsch. Benutze keine Emojis. Gib konkrete Zahlen und Handlungsempfehlungen. Waehrung: EUR, Strompreis: 0.28 EUR/kWh.\n\nDir stehen Tools zur Verfuegung, um Energiedaten aus der InfluxDB abzufragen. Waehle das passende Tool basierend auf der Frage des Nutzers. Du kannst mehrere Tools nacheinander aufrufen, um komplexe Fragen zu beantworten.\n\nVerfuegbare Geraete: solar, washing_machine, washing_dryer, cooler, living_room_window, kitchen, bedroom, television, office, office2, bathroom, hwr_charger, kaffe_bar, network_nas\n\nHeutiges Datum: {{$now.format('yyyy-MM-dd')}}\n\nWICHTIG - Ausgabeformat beachten:\n- Wenn im Prompt '[AUSGABEFORMAT: Awtrix' steht: Antworte in maximal 100 Zeichen reinem Klartext. KEIN Markdown, KEINE Sterne, KEINE Aufzaehlungen, KEINE Zeilenumbrueche. Nur ein kurzer Satz mit den wichtigsten Zahlen. Beispiel: 'Heute 4.2 kWh, 1.18 EUR. Solar 1.8 kWh. Top: Cooler 0.9 kWh'\n- Sonst: Maximal 300 Woerter, Markdown-Formatierung erlaubt."
}
},
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 3.1,
"position": [
-4560,
1152
],
"id": "387df156-ce3b-4e04-a0e7-4a734a29875c"
},
{
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "claude-sonnet-4-5-20250929",
"cachedResultName": "Claude Sonnet 4.5"
},
"options": {}
},
"name": "Anthropic Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
"typeVersion": 1.3,
"position": [
-4688,
1360
],
"id": "b1ca11db-a82c-4185-ad46-3ef20f4a9d51",
"credentials": {
"anthropicApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {},
"name": "Simple Memory",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
-4576,
1360
],
"id": "a246aa80-74b8-46de-8a1c-8d1a3c306bc8"
},
{
"parameters": {
"toolDescription": "Stromverbrauch (kWh) abfragen fuer ein bestimmtes Geraet oder alle Geraete in einem Zeitraum. Nutze dieses Tool wenn nach Verbrauch, Kosten oder Energienutzung eines Geraetes gefragt wird. Beispiele: 'Verbrauch Kuehlschrank am 6. Maerz', 'Was hat die Waschmaschine diese Woche verbraucht?', 'Gesamtverbrauch heute'.",
"url": "http://192.168.178.114:8099/tools/device_consumption",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "device",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('device', 'Geraetename z.B. washing_machine, cooler, solar, television. Leer lassen fuer alle Geraete.', 'string') }}"
},
{
"name": "start",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('start', 'Startdatum im ISO-Format YYYY-MM-DD. Leer lassen fuer heute.', 'string') }}"
},
{
"name": "end",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('end', 'Enddatum im ISO-Format YYYY-MM-DD. Leer lassen fuer aktuellen Zeitpunkt.', 'string') }}"
},
{
"name": "days",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('days', 'Anzahl Tage zurueck ab jetzt. Alternative zu start/end. Z.B. 7 fuer letzte Woche.', 'string') }}"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer REPLACE_WITH_REPORT_API_TOKEN"
}
]
},
"options": {}
},
"name": "get_device_consumption",
"type": "n8n-nodes-base.httpRequestTool",
"typeVersion": 4.3,
"position": [
-4800,
1552
],
"id": "21cc505f-263d-4e12-9856-0789bc4307af"
},
{
"parameters": {
"toolDescription": "Stuendlichen Stromverbrauch abfragen fuer einen bestimmten Tag. Zeigt welche Stunde am meisten verbraucht hat. Nutze dieses Tool fuer Tagesprofile und stuendliche Aufschluesselung.",
"url": "http://192.168.178.114:8099/tools/hourly_consumption",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "date",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('date', 'Datum im ISO-Format YYYY-MM-DD. Leer lassen fuer heute.', 'string') }}"
},
{
"name": "device",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('device', 'Geraetename als Filter. Leer lassen fuer alle Geraete kombiniert.', 'string') }}"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer REPLACE_WITH_REPORT_API_TOKEN"
}
]
},
"options": {}
},
"name": "get_hourly_consumption",
"type": "n8n-nodes-base.httpRequestTool",
"typeVersion": 4.3,
"position": [
-4640,
1552
],
"id": "0a4155e9-ea0a-4ec2-a925-17dd37adf5a9"
},
{
"parameters": {
"toolDescription": "Geraete-Events abfragen (Waschgaenge, Trocknergaenge, Espressos, TV-Sessions etc.) mit Anzahl, Dauer und Energieverbrauch pro Event. Nutze dieses Tool wenn nach Nutzungshaeufigkeit oder einzelnen Ereignissen gefragt wird.",
"url": "http://192.168.178.114:8099/tools/device_events",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "device",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('device', 'Geraet/Event-Typ filtern z.B. washing, dryer, espresso. Leer fuer alle Events.', 'string') }}"
},
{
"name": "days",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('days', 'Anzahl Tage zurueck. Standard 7. Wird ignoriert wenn start gesetzt.', 'string') }}"
},
{
"name": "start",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('start', 'Startdatum im ISO-Format YYYY-MM-DD.', 'string') }}"
},
{
"name": "end",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('end', 'Enddatum im ISO-Format YYYY-MM-DD.', 'string') }}"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer REPLACE_WITH_REPORT_API_TOKEN"
}
]
},
"options": {}
},
"name": "get_device_events",
"type": "n8n-nodes-base.httpRequestTool",
"typeVersion": 4.3,
"position": [
-4496,
1552
],
"id": "0f804fd9-d2de-4054-a565-57dcd86cda88"
},
{
"parameters": {
"toolDescription": "Zwei beliebige Zeitraeume vergleichen. Zeigt Verbrauch, Kosten und prozentuale Aenderung. Nutze dieses Tool wenn nach Vergleichen gefragt wird, z.B. 'Vergleich diese Woche vs letzte Woche'.",
"url": "http://192.168.178.114:8099/tools/compare_periods",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "period_a_start",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('period_a_start', 'Startdatum erster Zeitraum YYYY-MM-DD. Erforderlich.', 'string') }}"
},
{
"name": "period_a_end",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('period_a_end', 'Enddatum erster Zeitraum YYYY-MM-DD. Erforderlich.', 'string') }}"
},
{
"name": "period_b_start",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('period_b_start', 'Startdatum zweiter Zeitraum YYYY-MM-DD. Erforderlich.', 'string') }}"
},
{
"name": "period_b_end",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('period_b_end', 'Enddatum zweiter Zeitraum YYYY-MM-DD. Erforderlich.', 'string') }}"
},
{
"name": "device",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('device', 'Optionaler Geraetefilter.', 'string') }}"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer REPLACE_WITH_REPORT_API_TOKEN"
}
]
},
"options": {}
},
"name": "compare_periods",
"type": "n8n-nodes-base.httpRequestTool",
"typeVersion": 4.3,
"position": [
-4336,
1552
],
"id": "eec81350-e0f3-4458-beb7-27b1e98541b4"
},
{
"parameters": {
"toolDescription": "Solar-Erzeugungshistorie abfragen mit taeglicher Aufschluesselung. Zeigt Gesamterzeugung, Ersparnis, besten Tag und Tagesdurchschnitt. NUR fuer Solaranlage/Stromerzeugung verwenden, NICHT fuer Geraeteverbrauch.",
"url": "http://192.168.178.114:8099/tools/solar_history",
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "start",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('start', 'Startdatum im ISO-Format YYYY-MM-DD.', 'string') }}"
},
{
"name": "end",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('end', 'Enddatum im ISO-Format YYYY-MM-DD.', 'string') }}"
},
{
"name": "days",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('days', 'Anzahl Tage zurueck. Standard 7.', 'string') }}"
}
]
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer REPLACE_WITH_REPORT_API_TOKEN"
}
]
},
"options": {}
},
"name": "get_solar_history",
"type": "n8n-nodes-base.httpRequestTool",
"typeVersion": 4.3,
"position": [
-4192,
1552
],
"id": "fab3e58f-2f5c-4652-b816-333a118e8dc1"
},
{
"parameters": {
"toolDescription": "Alle ueberwachten Geraete auflisten mit Namen, Beschreibung und Status (aktiviert/deaktiviert). Keine Parameter noetig. Nutze dieses Tool wenn der Nutzer wissen will welche Geraete verfuegbar sind.",
"url": "http://192.168.178.114:8099/tools/list_devices",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer REPLACE_WITH_REPORT_API_TOKEN"
}
]
},
"options": {}
},
"name": "list_devices",
"type": "n8n-nodes-base.httpRequestTool",
"typeVersion": 4.3,
"position": [
-4048,
1552
],
"id": "52fbf8f6-4ade-4afe-8a8b-7c1a81a17152"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"id": "output-check",
"leftValue": "={{ $('Webhook').item.json.body.output || 'pushover' }}",
"rightValue": "awtrix",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"name": "Output Router",
"type": "n8n-nodes-base.if",
"typeVersion": 2,
"position": [
-4336,
1152
],
"id": "fa62b93c-86f1-444f-ad66-2d4c9f3b1396"
},
{
"parameters": {
"method": "POST",
"url": "http://192.168.178.108/api/notify",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "text",
"value": "={{ $('AI Agent').item.json.output.replace(/\\*\\*/g, '').replace(/\\n/g, ' ').replace(/- /g, '').replace(/ +/g, ' ').trim().slice(0, 200) }}"
},
{
"name": "icon",
"value": "2709"
},
{
"name": "color",
"value": "#00BFFF"
},
{
"name": "duration",
"value": "30"
},
{
"name": "repeat",
"value": "3"
}
]
},
"options": {}
},
"name": "Send to Awtrix",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
-4112,
1040
],
"id": "8b8dfa61-eeba-402f-85c4-b286b62ae318"
},
{
"parameters": {
"method": "POST",
"url": "https://api.pushover.net/1/messages.json",
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "token",
"value": "REPLACE_WITH_PUSHOVER_API_TOKEN"
},
{
"name": "user",
"value": "REPLACE_WITH_PUSHOVER_USER_KEY"
},
{
"name": "message",
"value": "={{ $('AI Agent').item.json.output }}"
},
{
"name": "title",
"value": "AI Energieanalyse"
}
]
},
"options": {}
},
"name": "Send Pushover",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
-4112,
1248
],
"id": "e13bbe67-a011-427a-aa0b-7a586cc06907"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "status-field",
"name": "status",
"value": "sent",
"type": "string"
},
{
"id": "analysis-field",
"name": "analysis",
"value": "={{ $('AI Agent').item.json.output }}",
"type": "string"
}
]
},
"options": {}
},
"name": "Response",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-3888,
1152
],
"id": "8ebf58d5-2500-4cc8-95da-ce10dd473d8b"
}
],
"connections": {
"Webhook": {
"main": [
[
{
"node": "Prepare Prompt",
"type": "main",
"index": 0
}
]
]
},
"Prepare Prompt": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Anthropic Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"get_device_consumption": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"get_hourly_consumption": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"get_device_events": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"compare_periods": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"get_solar_history": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"list_devices": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Output Router",
"type": "main",
"index": 0
}
]
]
},
"Output Router": {
"main": [
[
{
"node": "Send to Awtrix",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Pushover",
"type": "main",
"index": 0
}
]
]
},
"Send to Awtrix": {
"main": [
[
{
"node": "Response",
"type": "main",
"index": 0
}
]
]
},
"Send Pushover": {
"main": [
[
{
"node": "Response",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1"
},
"tags": [
{
"name": "energy"
},
{
"name": "ai"
}
]
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
anthropicApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
AI Energy Analysis. Uses agent, lmChatAnthropic, memoryBufferWindow, httpRequestTool. Webhook trigger; 15 nodes.
Source: https://github.com/ElGarno/MyTapo/blob/bd865b4ef2e0290aaf941dc74061d5cbe8c33814/n8n_workflows/2_ai_energy_analysis.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Lead Pipeline v3.0. Uses httpRequest, agent, lmChatAnthropic, toolThink. Webhook trigger; 77 nodes.
This workflow turns your WhatsApp Business number into a 24/7 AI-powered customer assistant — without any third-party chatbot platform. It receives incoming WhatsApp messages via Evolution API, unders
This workflow transforms WhatsApp into a powerful personal AI using n8n + Green-API. Send text or voice messages — the assistant understands intent and handles daily tasks automatically. 💰 Expense & i
This workflow turns a spreadsheet row into a fully formatted, media-rich WordPress article. It pulls the outline and brand context from Google Sheets/Docs, drafts the article with Anthropic or Gemini,
Jacobo Chatbot V2. Uses agent, memoryBufferWindow, toolThink, httpRequest. Webhook trigger; 37 nodes.