🚀 New production MODBUS integration for The Pill!#201
Merged
Conversation
…scripts - button-event-source.shelly.js: routes physical button "one"/"two" events; button ONE triggers wifi-provisioning via Script.Eval - wifi-provisioning.shelly.js: BLE scans for devices matching TARGET_MODEL_IDS (array of Gen3/Gen4 model IDs) and provisions them as WiFi STA clients with retry queue; includes full Gen3/Gen4 model ID reference in comments - README.md: updated with section 4 documenting the two-script pair, updated TOC, added troubleshooting entries for the new scripts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add aicb2sp.shelly.js: polls voltage, current, power, energy, frequency, power factor, temperature; exposes switchOn/switchOff - Add AICB2SP and GACIA vendor READMEs with register map and wiring - Update MODBUS root README index with GACIA/ entry - Update CHANGELOG Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add sen0492.shelly.js: console reader, polls distance and status - Add sen0492_vc.shelly.js: console + Virtual Component (number:200) - Add SEN0492 and DFRobot vendor READMEs with full register map, cable colours, and wiring table - Update MODBUS root README index with DFRobot/ entry - Promote both scripts to production - Update CHANGELOG Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add screenshot.png showing Distance VC (188 mm) grouped under DFRobot SEN0492 in the Shelly UI - Add Screenshot section to README with caption Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add titles/descriptions for 10 previously undocumented scripts (BLU Assistant, MODBUS integrations). Enhance sync-manifest-md.py to auto-extract metadata from source files when --extract-metadata flag is used and entry has TODO placeholders. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Rename Davis screenshot to screenshot.png and add ## Screenshot section to Davis README - Add rs485-diagram.png/svg to the_pill/MODBUS and reference it in README - Add missing_screenshots.md listing all examples that still need UI screenshots Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Fronius grid flow integration with virtual component handles - Add under-development multi-channel Fronius dashboard variant - Update changelog for the Fronius script changes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
into dev # Conflicts: # the_pill/MODBUS/DFRobot/README.md # the_pill/MODBUS/DFRobot/SEN0492/README.md # the_pill/MODBUS/DFRobot/SEN0492/sen0492.shelly.js # the_pill/MODBUS/DFRobot/SEN0492/sen0492_vc.shelly.js # the_pill/MODBUS/GACIA/AICB2SP/README.md # the_pill/MODBUS/GACIA/AICB2SP/aicb2sp.shelly.js # the_pill/MODBUS/GACIA/README.md
- add static-config EcoFlow STREAM Ultra load-balancing scripts - add parent and device README files with usage and screenshot - record the new HTTP integration in the changelog Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- remove repeated RS485 pinout text from DFRobot and GACIA docs - remove redundant Davis screenshot block - trim duplicate entries from the MODBUS root README Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- restructure Tasmota HTTP integrations into collection and device folders - standardize the Mitsubishi Heavy AC Shelly script and anonymize endpoint placeholders - add parent and device README files plus screenshot references Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Mark EcoFlow STREAM Ultra VC load balancing as production - Mark Mitsubishi Heavy Tasmota IR bridge as production - Update related READMEs, manifest, and generated MJS index Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds modbus_register_scan.shelly.js: a generic single-register FC03/FC04 walker for The Pill that assumes slave address, baud rate, and UART mode are already known. Designed to run a full discovery pass and print all readable addresses in the configured range, with OK/exception/timeout counts in the final summary. Extracted from the V-TAC-specific vtac_modbus_scan so it can be reused for any MODBUS-RTU device. Updates utils/README.md to document the new script alongside modbus_scan.shelly.js and clarifies when to use each utility (bus discovery vs. register-space walking). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds documentation and reverse-engineering notes for the V-TAC VT-66036103 hybrid solar inverter, which exposes RS485 but ships with no public register map. - README.md: context, persona, file index, and RS485 wiring diagram for The Pill - label.md: physical label data and official/mirror document links for VT-66036103 - registers.md: all FC03 holding and FC04 input register addresses discovered by live scanning on the actual inverter, with raw values at capture time - register-proposals.md: inferred naming, scaling, grouping, and confidence levels for discovered registers based on cross-referencing published electrical specs with the INVT single-phase hybrid family (V-TAC identifies INVT as the OEM brand) Six high-confidence live-telemetry registers identified so far: 5776 pv1_voltage 0.1 V 5778 pv2_voltage 0.1 V 5784 input_voltage 0.1 V 5786 output_voltage 0.1 V 5790 power 0.01 W 5792 frequency 0.01 Hz Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Four scripts for reading and monitoring the V-TAC VT-66036103 inverter via RS485/MODBUS-RTU from The Pill, all targeting slave ID 1, 9600 8N1: vtac_six_register_example.shelly.js Compact console reader for the six strongest live-telemetry candidates: PV1/PV2 voltage, input/output voltage, power, and frequency. Polls every 15s. vtac_six_register_example_vc.shelly.js Virtual Components variant of the above. Auto-creates a group:200 and six Number VCs (number:200-205) with appropriate icons, units, and range limits. Updates VCs every 15s alongside console output. vtac_baseline_watch.shelly.js Polls all ~100 currently known readable holding and input registers every 15s and reports only registers that deviate from their captured baseline values. Used to detect which registers move with live inverter state (PV, load, grid). Register blocks encoded as compact strings to keep heap usage manageable. vtac_inferred_reader.shelly.js Console reader for the 23 highest-confidence inferred holding registers from the proposal map, covering battery limits, PV ratings, AC ratings, grid code thresholds, and frequency trip points. Prints scaled values every 15s. All four are marked @status under development; none go into the manifest yet. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Collected vendor and mirror documents for the two main V-TAC hybrid inverter models in this family (VT-66036103 is the 3.6 kW unit on the bench; VT-6607103 is the 5 kW sibling sharing the same MODBUS interface): - vt-6607103.pdf: instruction manual for VT-6607103 (5 kW) - vt66036103.pdf: instruction manual for VT-66036103 (3.6 kW) - VT-6607103_Single-phase_hybrid_inverter_5kW.pdf: downloaded from V-TAC exports portal; confirms RS485, baud rate options (2400/4800/9600), and default slave address 1 — but contains no MODBUS register map - VT-66036103_manualslib_download.html: ManualsLib mirror page for VT-66036103 kept as an offline reference Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
MODBUS/README.md: adds V-TAC/ entry to the device directory listing and updates the utils/ description to mention register-space discovery alongside bus-level scanning. CHANGELOG.md: records all V-TAC work done on this branch — vtac_modbus_scan iterations, baseline watcher, inferred reader, six-register example, VC variant, register-proposals.md, power-scale correction (0.1→0.01 W), and the promotion of vtac_modbus_scan logic to the generic utils scanner. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds screenshot.png showing vtac_six_register_example_vc.shelly.js running live on The Pill: six Virtual Components (PV1/PV2 voltage, input/output voltage, power, frequency) with real inverter values in the Shelly app. Updates README.md to match the project example style: - Adds ## Screenshot section with image and live-value description - Fixes label.MD reference to label.md (case) - Removes "under-development" qualifiers from file descriptions Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Brings in V-TAC VT-66036103 hybrid inverter work: - Generic MODBUS register-space scanner (utils/modbus_register_scan.shelly.js) - V-TAC scripts: six-register example, VC variant, baseline watcher, inferred reader - Discovered register data, inferred register map, device documentation - Datasheets for VT-66036103 and VT-6607103 - Screenshot of live Virtual Components in Shelly app Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Extend min from 125 to 0 and max from 500 to 600 so setValue does not silently clamp when the inverter reports 0 V (off or below MPPT threshold), which previously made PV1 and PV2 CVs appear frozen. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Marstek VenusE console and Virtual Component readers - Document register map, RJ45 pinout, validation notes, and screenshots - Move V-TAC VT6607103 work into its own device folder Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Correct Marstek VenusE and V-TAC README wiring diagrams - Keep slave-side B line display consistent with shared MODBUS diagrams Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add readable model and electrical ratings from the device label - Note best-effort fields and unreadable serial/barcode values Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Correct AC frequency scaling to 0.1 Hz based on live testing - Add label-backed Virtual Component ranges and defaults - Update Marstek VenusE README, register notes, screenshot, and changelog
- Add a status-focused Marstek VenusE Virtual Components script - Document the SOC, limits, temperature, energy, state, and alarm/fault VC mapping - Update the changelog
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a complete Marstek VenusE RS485/MODBUS-RTU integration and promotes the read-only telemetry scripts to production after hardware validation.
What’s new?
🔌 Marstek VenusE support under
the_pill/MODBUS/Marstek/VenusE/📟 Production console telemetry reader:
📊 Production Virtual Components reader for key live telemetry:
🧭 Production status-focused Virtual Components reader for commissioning and diagnostics:
📚 Documentation included:
✅ Hardware validation completed on The Pill with:
1115200,8N10.1 Hzbased on live device dataSHELLY_MJS.mdupdated for production scripts👥 Who this helps:
The scripts are read-only and do not write MODBUS control registers. Write/control behavior remains intentionally out of scope until FC06/FC10 behavior, signed power direction under load, 32-bit word order under non-zero load, and alarm/fault behavior are validated further.