{"uid":"cap_5_JXtYsl-5mDG5azaQ0eU","slug":"victron-ve-direct-log-parser-99e48404","name":"Victron VE.Direct Log Parser","description":"Reads the key-tab-value lines of the VE.Direct text protocol, applies the unit scaling that belongs to each key, and decodes the charger state, tracker state and error number into plain text. Multiple blocks in one dump are returned as separate records in order. Keys that are not in the field table are preserved verbatim under unknown_keys rather than guessed at. The checksum line is not verified, since a text export usually no longer carries the original byte framing.","url":"https://solar.halowerk.com/victron-log-parse","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"text":{"type":"string","maxLength":120000,"minLength":3,"description":"Raw VE.Direct dump, one key-tab-value pair per line."},"keep_raw":{"type":"boolean","default":false,"description":"Also return the raw key-value pairs per record."}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.003","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.003/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_QBPfDfexRbzWPjrF4qBWo","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.003","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Parses raw VE.Direct text protocol dumps from Victron solar charge controllers, decoding field values with proper unit scaling and translating numeric state/error codes into human-readable text.","exampleAgentPrompt":"Can you parse this raw VE.Direct dump from my Victron MPPT charge controller and tell me the charger state, tracker state, and any errors in plain English? Here's the data: 'PID\t0xA060\\nFW\t159\\nSER#\tHQ12345ABC\\nV\t24180\\nI\t3200\\nVPV\t35420\\nPPV\t78\\nCS\t3\\nMPPT\t2\\nERR\t0\\nLOAD\tON\\nIL\t500\\nH19\t1234\\nChecksum\t\\xC3'","exampleUseCases":[{"title":"Diagnosing a Victron charger fault","prompt":"My Victron BlueSolar controller logged some weird data overnight — here's the raw VE.Direct text dump. Can you parse it and tell me what the error code means and what state the charger was in?"},{"title":"Processing a multi-block VE.Direct log file","prompt":"I've got a long VE.Direct export from my solar system with multiple data blocks captured over several hours. Parse all of it and return the records separately so I can see how the charger state and panel voltage changed over time."},{"title":"Automated solar system monitoring pipeline","prompt":"Every hour my Raspberry Pi captures a VE.Direct dump from the MPPT controller and saves it to a file. Parse this latest snapshot and also include the raw key-value pairs alongside the decoded fields so I can store both in my database."}],"resultDescription":"Returns an array of parsed records (one per VE.Direct block found in the input), each containing scaled numeric values with units, plain-text descriptions of charger state (CS), MPPT tracker state, and error number, and optionally the raw key-value pairs. Keys not found in the known field table are preserved verbatim under an 'unknown_keys' property.","failureModes":["Input text is empty or too short (minLength: 3) — returns validation error","Input exceeds 120,000 characters — returns payload-too-large error","Malformed VE.Direct format with no recognizable key-tab-value lines — may return empty records array","Unknown keys not in field table are preserved under unknown_keys rather than decoded, so some values may lack units or descriptions","Checksum is not verified, so corrupted data may be parsed without error detection"],"whenToPreferThis":"Use this endpoint when you have raw VE.Direct protocol text output from a Victron solar charge controller or battery monitor and need the numeric values properly scaled with units and the state/error codes translated to plain text. It is especially useful in monitoring pipelines, log analysis workflows, or when you need to process multiple sequential VE.Direct blocks from a single export file. Prefer this over manual parsing whenever you need consistent unit scaling and human-readable state decoding without implementing the full VE.Direct field table yourself.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T18:37:47.579Z","isFirstParty":false}