This repository was archived by the owner on May 16, 2024. It is now read-only.

Repository files navigation

⚠️ 2022-10-11: I'm trying to find time to make the project more robust, but the GoodWe APIs are really unstable lately. They often don't return any data for days on end.

I'll try to release a newer approach in Q4 2022, but due to personal reasons I might not be able to. See #23.

PVBridge Solar Status Syncer

PVBridge is a tool to upload solar panel information, both in realtime and batched per day, without having to meddle with Python scripts, Task Scheduler and unreadable config files 'n such. Just a simple installer, a background service that starts automatically with your computer and a simple configuration and status UI.

It is a "bridge" between photovoltaic ("PV") systems, so to say.

What it does

It automatically synchronizes your realtime and historic GoodWe data to PVOutput.org, as soon as you start your Windows machine and as far back as 14 days. Support for longer back is underway.

It does so in smart batching and respecting the limits of APIs on either side, by gradually backing off and syncing missing periods with as little traffic as possible. Every five minutes or so, the service sends the realtime solar panel output every five minutes or so, higher resolution support incoming.

Both are tracked in #10.

PVBridge runs as a Windows Service, meaning you won't have to start it yourself, and has a configuration UI. The credentials you enter are saved encrypted using AES, the key only readable by an administrator or the service (runs as NetworkService).

We can update live data (realtime power generation, temperature and so on) up to 13 days in the past. If we miss those (the machine has been off for more than two weeks), all we can write is summaries, but we don't yet.

Other inputs and outputs (other inverter APIs, CSV), aggregations (#26), aggregations to CSV, Excel to CSV and other features and improvements are (far) future plans, help is more than welcome! See Contributing.md.

Installation

Download the most recent version "PVBridge-{version}.msi" under "Releases" on the GitHub page. For older versions, check https://github.com/CodeCasterNL/PVBridge/releases.

Uninstallation / updating

Unfortunately, the uninstaller is broken. Will fix before v1.0.

For now, manually uninstall before update: see the downloads page on the documentation site.

For documentation on installing and setting up, see the documentation site.

Status

Current status: as-is development-prerelease. This means that it might work on your computer, but if it doesn't, please open an issue with as much relevant details as possible and help me figure it out.

It also means that the behavior of the application can change at any release, just as the development pace and support level.

Once the basic functionality is stabilized, a 1.0 version will be released.

Prerequisites

In order to install this program, you need:

  • Windows 11 (10 will work, unsupported).
  • A GoodWe inverter that uploads its data to https://semsportal.com/.
  • An API key and System ID for PVOutput.org.
  • Administrative permissions to install the PVBridge Windows Service.
  • The 64-bit version of the .NET Desktop Runtime, 6.0 or higher (should come with the installer).

Supported behavior

This is what the app should be able to do in its current state:

  • Read current and historic PV data about a GoodWe inverter with a single-panel setup.
  • Write current and historic PV data to a PVOutput.org with a single-panel setup.

Unsupported

These features exist in code and might even be callable or configurable, but are not supported. Try at your own risk.

Configuration

  • GoodWeFileReader input
  • CSV output

Console

The console can do the following things, for testing/debugging/force-syncing without having to run the whole service loop:

PVBridge.exe sync 2020-12-22
PVBridge.exe sync # Live status
PVBridge.exe sync 2021-06-01[T15:15] 2021-06-09

These are subject to change.

Badges

CI build/test develop

Thanks to pyrocumulus/pvoutput.net for maintaining the PVOutput.org API client for .NET.

About

Sync live and historic solar panel data from GoodWe to PVOutput.org and CSV, on Windows.

Topics

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on May 16, 2024. It is now read-only.

Repository files navigation

⚠️ 2022-10-11: I'm trying to find time to make the project more robust, but the GoodWe APIs are really unstable lately. They often don't return any data for days on end.

I'll try to release a newer approach in Q4 2022, but due to personal reasons I might not be able to. See #23.

PVBridge Solar Status Syncer

PVBridge is a tool to upload solar panel information, both in realtime and batched per day, without having to meddle with Python scripts, Task Scheduler and unreadable config files 'n such. Just a simple installer, a background service that starts automatically with your computer and a simple configuration and status UI.

It is a "bridge" between photovoltaic ("PV") systems, so to say.

What it does

It automatically synchronizes your realtime and historic GoodWe data to PVOutput.org, as soon as you start your Windows machine and as far back as 14 days. Support for longer back is underway.

It does so in smart batching and respecting the limits of APIs on either side, by gradually backing off and syncing missing periods with as little traffic as possible. Every five minutes or so, the service sends the realtime solar panel output every five minutes or so, higher resolution support incoming.

Both are tracked in #10.

PVBridge runs as a Windows Service, meaning you won't have to start it yourself, and has a configuration UI. The credentials you enter are saved encrypted using AES, the key only readable by an administrator or the service (runs as NetworkService).

We can update live data (realtime power generation, temperature and so on) up to 13 days in the past. If we miss those (the machine has been off for more than two weeks), all we can write is summaries, but we don't yet.

Other inputs and outputs (other inverter APIs, CSV), aggregations (#26), aggregations to CSV, Excel to CSV and other features and improvements are (far) future plans, help is more than welcome! See Contributing.md.

Installation

Download the most recent version "PVBridge-{version}.msi" under "Releases" on the GitHub page. For older versions, check https://github.com/CodeCasterNL/PVBridge/releases.

Uninstallation / updating

Unfortunately, the uninstaller is broken. Will fix before v1.0.

For now, manually uninstall before update: see the downloads page on the documentation site.

For documentation on installing and setting up, see the documentation site.

Status

Current status: as-is development-prerelease. This means that it might work on your computer, but if it doesn't, please open an issue with as much relevant details as possible and help me figure it out.

It also means that the behavior of the application can change at any release, just as the development pace and support level.

Once the basic functionality is stabilized, a 1.0 version will be released.

Prerequisites

In order to install this program, you need:

  • Windows 11 (10 will work, unsupported).
  • A GoodWe inverter that uploads its data to https://semsportal.com/.
  • An API key and System ID for PVOutput.org.
  • Administrative permissions to install the PVBridge Windows Service.
  • The 64-bit version of the .NET Desktop Runtime, 6.0 or higher (should come with the installer).

Supported behavior

This is what the app should be able to do in its current state:

  • Read current and historic PV data about a GoodWe inverter with a single-panel setup.
  • Write current and historic PV data to a PVOutput.org with a single-panel setup.

Unsupported

These features exist in code and might even be callable or configurable, but are not supported. Try at your own risk.

Configuration

  • GoodWeFileReader input
  • CSV output

Console

The console can do the following things, for testing/debugging/force-syncing without having to run the whole service loop:

PVBridge.exe sync 2020-12-22
PVBridge.exe sync # Live status
PVBridge.exe sync 2021-06-01[T15:15] 2021-06-09

These are subject to change.

Badges

CI build/test develop

Thanks to pyrocumulus/pvoutput.net for maintaining the PVOutput.org API client for .NET.

About

Sync live and historic solar panel data from GoodWe to PVOutput.org and CSV, on Windows.

Topics

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on May 16, 2024. It is now read-only.

Repository files navigation

⚠️ 2022-10-11: I'm trying to find time to make the project more robust, but the GoodWe APIs are really unstable lately. They often don't return any data for days on end.

I'll try to release a newer approach in Q4 2022, but due to personal reasons I might not be able to. See #23.

PVBridge Solar Status Syncer

PVBridge is a tool to upload solar panel information, both in realtime and batched per day, without having to meddle with Python scripts, Task Scheduler and unreadable config files 'n such. Just a simple installer, a background service that starts automatically with your computer and a simple configuration and status UI.

It is a "bridge" between photovoltaic ("PV") systems, so to say.

What it does

It automatically synchronizes your realtime and historic GoodWe data to PVOutput.org, as soon as you start your Windows machine and as far back as 14 days. Support for longer back is underway.

It does so in smart batching and respecting the limits of APIs on either side, by gradually backing off and syncing missing periods with as little traffic as possible. Every five minutes or so, the service sends the realtime solar panel output every five minutes or so, higher resolution support incoming.

Both are tracked in #10.

PVBridge runs as a Windows Service, meaning you won't have to start it yourself, and has a configuration UI. The credentials you enter are saved encrypted using AES, the key only readable by an administrator or the service (runs as NetworkService).

We can update live data (realtime power generation, temperature and so on) up to 13 days in the past. If we miss those (the machine has been off for more than two weeks), all we can write is summaries, but we don't yet.

Other inputs and outputs (other inverter APIs, CSV), aggregations (#26), aggregations to CSV, Excel to CSV and other features and improvements are (far) future plans, help is more than welcome! See Contributing.md.

Installation

Download the most recent version "PVBridge-{version}.msi" under "Releases" on the GitHub page. For older versions, check https://github.com/CodeCasterNL/PVBridge/releases.

Uninstallation / updating

Unfortunately, the uninstaller is broken. Will fix before v1.0.

For now, manually uninstall before update: see the downloads page on the documentation site.

For documentation on installing and setting up, see the documentation site.

Status

Current status: as-is development-prerelease. This means that it might work on your computer, but if it doesn't, please open an issue with as much relevant details as possible and help me figure it out.

It also means that the behavior of the application can change at any release, just as the development pace and support level.

Once the basic functionality is stabilized, a 1.0 version will be released.

Prerequisites

In order to install this program, you need:

  • Windows 11 (10 will work, unsupported).
  • A GoodWe inverter that uploads its data to https://semsportal.com/.
  • An API key and System ID for PVOutput.org.
  • Administrative permissions to install the PVBridge Windows Service.
  • The 64-bit version of the .NET Desktop Runtime, 6.0 or higher (should come with the installer).

Supported behavior

This is what the app should be able to do in its current state:

  • Read current and historic PV data about a GoodWe inverter with a single-panel setup.
  • Write current and historic PV data to a PVOutput.org with a single-panel setup.

Unsupported

These features exist in code and might even be callable or configurable, but are not supported. Try at your own risk.

Configuration

  • GoodWeFileReader input
  • CSV output

Console

The console can do the following things, for testing/debugging/force-syncing without having to run the whole service loop:

PVBridge.exe sync 2020-12-22
PVBridge.exe sync # Live status
PVBridge.exe sync 2021-06-01[T15:15] 2021-06-09

These are subject to change.

Badges

CI build/test develop

Thanks to pyrocumulus/pvoutput.net for maintaining the PVOutput.org API client for .NET.

About

Sync live and historic solar panel data from GoodWe to PVOutput.org and CSV, on Windows.

Topics

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on May 16, 2024. It is now read-only.

Repository files navigation

⚠️ 2022-10-11: I'm trying to find time to make the project more robust, but the GoodWe APIs are really unstable lately. They often don't return any data for days on end.

I'll try to release a newer approach in Q4 2022, but due to personal reasons I might not be able to. See #23.

PVBridge Solar Status Syncer

PVBridge is a tool to upload solar panel information, both in realtime and batched per day, without having to meddle with Python scripts, Task Scheduler and unreadable config files 'n such. Just a simple installer, a background service that starts automatically with your computer and a simple configuration and status UI.

It is a "bridge" between photovoltaic ("PV") systems, so to say.

What it does

It automatically synchronizes your realtime and historic GoodWe data to PVOutput.org, as soon as you start your Windows machine and as far back as 14 days. Support for longer back is underway.

It does so in smart batching and respecting the limits of APIs on either side, by gradually backing off and syncing missing periods with as little traffic as possible. Every five minutes or so, the service sends the realtime solar panel output every five minutes or so, higher resolution support incoming.

Both are tracked in #10.

PVBridge runs as a Windows Service, meaning you won't have to start it yourself, and has a configuration UI. The credentials you enter are saved encrypted using AES, the key only readable by an administrator or the service (runs as NetworkService).

We can update live data (realtime power generation, temperature and so on) up to 13 days in the past. If we miss those (the machine has been off for more than two weeks), all we can write is summaries, but we don't yet.

Other inputs and outputs (other inverter APIs, CSV), aggregations (#26), aggregations to CSV, Excel to CSV and other features and improvements are (far) future plans, help is more than welcome! See Contributing.md.

Installation

Download the most recent version "PVBridge-{version}.msi" under "Releases" on the GitHub page. For older versions, check https://github.com/CodeCasterNL/PVBridge/releases.

Uninstallation / updating

Unfortunately, the uninstaller is broken. Will fix before v1.0.

For now, manually uninstall before update: see the downloads page on the documentation site.

For documentation on installing and setting up, see the documentation site.

Status

Current status: as-is development-prerelease. This means that it might work on your computer, but if it doesn't, please open an issue with as much relevant details as possible and help me figure it out.

It also means that the behavior of the application can change at any release, just as the development pace and support level.

Once the basic functionality is stabilized, a 1.0 version will be released.

Prerequisites

In order to install this program, you need:

  • Windows 11 (10 will work, unsupported).
  • A GoodWe inverter that uploads its data to https://semsportal.com/.
  • An API key and System ID for PVOutput.org.
  • Administrative permissions to install the PVBridge Windows Service.
  • The 64-bit version of the .NET Desktop Runtime, 6.0 or higher (should come with the installer).

Supported behavior

This is what the app should be able to do in its current state:

  • Read current and historic PV data about a GoodWe inverter with a single-panel setup.
  • Write current and historic PV data to a PVOutput.org with a single-panel setup.

Unsupported

These features exist in code and might even be callable or configurable, but are not supported. Try at your own risk.

Configuration

  • GoodWeFileReader input
  • CSV output

Console

The console can do the following things, for testing/debugging/force-syncing without having to run the whole service loop:

PVBridge.exe sync 2020-12-22
PVBridge.exe sync # Live status
PVBridge.exe sync 2021-06-01[T15:15] 2021-06-09

These are subject to change.

Badges

CI build/test develop

Thanks to pyrocumulus/pvoutput.net for maintaining the PVOutput.org API client for .NET.

About

Sync live and historic solar panel data from GoodWe to PVOutput.org and CSV, on Windows.

Topics

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on May 16, 2024. It is now read-only.

Repository files navigation

⚠️ 2022-10-11: I'm trying to find time to make the project more robust, but the GoodWe APIs are really unstable lately. They often don't return any data for days on end.

I'll try to release a newer approach in Q4 2022, but due to personal reasons I might not be able to. See #23.

PVBridge Solar Status Syncer

PVBridge is a tool to upload solar panel information, both in realtime and batched per day, without having to meddle with Python scripts, Task Scheduler and unreadable config files 'n such. Just a simple installer, a background service that starts automatically with your computer and a simple configuration and status UI.

It is a "bridge" between photovoltaic ("PV") systems, so to say.

What it does

It automatically synchronizes your realtime and historic GoodWe data to PVOutput.org, as soon as you start your Windows machine and as far back as 14 days. Support for longer back is underway.

It does so in smart batching and respecting the limits of APIs on either side, by gradually backing off and syncing missing periods with as little traffic as possible. Every five minutes or so, the service sends the realtime solar panel output every five minutes or so, higher resolution support incoming.

Both are tracked in #10.

PVBridge runs as a Windows Service, meaning you won't have to start it yourself, and has a configuration UI. The credentials you enter are saved encrypted using AES, the key only readable by an administrator or the service (runs as NetworkService).

We can update live data (realtime power generation, temperature and so on) up to 13 days in the past. If we miss those (the machine has been off for more than two weeks), all we can write is summaries, but we don't yet.

Other inputs and outputs (other inverter APIs, CSV), aggregations (#26), aggregations to CSV, Excel to CSV and other features and improvements are (far) future plans, help is more than welcome! See Contributing.md.

Installation

Download the most recent version "PVBridge-{version}.msi" under "Releases" on the GitHub page. For older versions, check https://github.com/CodeCasterNL/PVBridge/releases.

Uninstallation / updating

Unfortunately, the uninstaller is broken. Will fix before v1.0.

For now, manually uninstall before update: see the downloads page on the documentation site.

For documentation on installing and setting up, see the documentation site.

Status

Current status: as-is development-prerelease. This means that it might work on your computer, but if it doesn't, please open an issue with as much relevant details as possible and help me figure it out.

It also means that the behavior of the application can change at any release, just as the development pace and support level.

Once the basic functionality is stabilized, a 1.0 version will be released.

Prerequisites

In order to install this program, you need:

  • Windows 11 (10 will work, unsupported).
  • A GoodWe inverter that uploads its data to https://semsportal.com/.
  • An API key and System ID for PVOutput.org.
  • Administrative permissions to install the PVBridge Windows Service.
  • The 64-bit version of the .NET Desktop Runtime, 6.0 or higher (should come with the installer).

Supported behavior

This is what the app should be able to do in its current state:

  • Read current and historic PV data about a GoodWe inverter with a single-panel setup.
  • Write current and historic PV data to a PVOutput.org with a single-panel setup.

Unsupported

These features exist in code and might even be callable or configurable, but are not supported. Try at your own risk.

Configuration

  • GoodWeFileReader input
  • CSV output

Console

The console can do the following things, for testing/debugging/force-syncing without having to run the whole service loop:

PVBridge.exe sync 2020-12-22
PVBridge.exe sync # Live status
PVBridge.exe sync 2021-06-01[T15:15] 2021-06-09

These are subject to change.

Badges

CI build/test develop

Thanks to pyrocumulus/pvoutput.net for maintaining the PVOutput.org API client for .NET.

About

Sync live and historic solar panel data from GoodWe to PVOutput.org and CSV, on Windows.

Topics

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on May 16, 2024. It is now read-only.

Repository files navigation

⚠️ 2022-10-11: I'm trying to find time to make the project more robust, but the GoodWe APIs are really unstable lately. They often don't return any data for days on end.

I'll try to release a newer approach in Q4 2022, but due to personal reasons I might not be able to. See #23.

PVBridge Solar Status Syncer

PVBridge is a tool to upload solar panel information, both in realtime and batched per day, without having to meddle with Python scripts, Task Scheduler and unreadable config files 'n such. Just a simple installer, a background service that starts automatically with your computer and a simple configuration and status UI.

It is a "bridge" between photovoltaic ("PV") systems, so to say.

What it does

It automatically synchronizes your realtime and historic GoodWe data to PVOutput.org, as soon as you start your Windows machine and as far back as 14 days. Support for longer back is underway.

It does so in smart batching and respecting the limits of APIs on either side, by gradually backing off and syncing missing periods with as little traffic as possible. Every five minutes or so, the service sends the realtime solar panel output every five minutes or so, higher resolution support incoming.

Both are tracked in #10.

PVBridge runs as a Windows Service, meaning you won't have to start it yourself, and has a configuration UI. The credentials you enter are saved encrypted using AES, the key only readable by an administrator or the service (runs as NetworkService).

We can update live data (realtime power generation, temperature and so on) up to 13 days in the past. If we miss those (the machine has been off for more than two weeks), all we can write is summaries, but we don't yet.

Other inputs and outputs (other inverter APIs, CSV), aggregations (#26), aggregations to CSV, Excel to CSV and other features and improvements are (far) future plans, help is more than welcome! See Contributing.md.

Installation

Download the most recent version "PVBridge-{version}.msi" under "Releases" on the GitHub page. For older versions, check https://github.com/CodeCasterNL/PVBridge/releases.

Uninstallation / updating

Unfortunately, the uninstaller is broken. Will fix before v1.0.

For now, manually uninstall before update: see the downloads page on the documentation site.

For documentation on installing and setting up, see the documentation site.

Status

Current status: as-is development-prerelease. This means that it might work on your computer, but if it doesn't, please open an issue with as much relevant details as possible and help me figure it out.

It also means that the behavior of the application can change at any release, just as the development pace and support level.

Once the basic functionality is stabilized, a 1.0 version will be released.

Prerequisites

In order to install this program, you need:

  • Windows 11 (10 will work, unsupported).
  • A GoodWe inverter that uploads its data to https://semsportal.com/.
  • An API key and System ID for PVOutput.org.
  • Administrative permissions to install the PVBridge Windows Service.
  • The 64-bit version of the .NET Desktop Runtime, 6.0 or higher (should come with the installer).

Supported behavior

This is what the app should be able to do in its current state:

  • Read current and historic PV data about a GoodWe inverter with a single-panel setup.
  • Write current and historic PV data to a PVOutput.org with a single-panel setup.

Unsupported

These features exist in code and might even be callable or configurable, but are not supported. Try at your own risk.

Configuration

  • GoodWeFileReader input
  • CSV output

Console

The console can do the following things, for testing/debugging/force-syncing without having to run the whole service loop:

PVBridge.exe sync 2020-12-22
PVBridge.exe sync # Live status
PVBridge.exe sync 2021-06-01[T15:15] 2021-06-09

These are subject to change.

Badges

CI build/test develop

Thanks to pyrocumulus/pvoutput.net for maintaining the PVOutput.org API client for .NET.

About

Sync live and historic solar panel data from GoodWe to PVOutput.org and CSV, on Windows.

Topics

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on May 16, 2024. It is now read-only.

Repository files navigation

⚠️ 2022-10-11: I'm trying to find time to make the project more robust, but the GoodWe APIs are really unstable lately. They often don't return any data for days on end.

I'll try to release a newer approach in Q4 2022, but due to personal reasons I might not be able to. See #23.

PVBridge Solar Status Syncer

PVBridge is a tool to upload solar panel information, both in realtime and batched per day, without having to meddle with Python scripts, Task Scheduler and unreadable config files 'n such. Just a simple installer, a background service that starts automatically with your computer and a simple configuration and status UI.

It is a "bridge" between photovoltaic ("PV") systems, so to say.

What it does

It automatically synchronizes your realtime and historic GoodWe data to PVOutput.org, as soon as you start your Windows machine and as far back as 14 days. Support for longer back is underway.

It does so in smart batching and respecting the limits of APIs on either side, by gradually backing off and syncing missing periods with as little traffic as possible. Every five minutes or so, the service sends the realtime solar panel output every five minutes or so, higher resolution support incoming.

Both are tracked in #10.

PVBridge runs as a Windows Service, meaning you won't have to start it yourself, and has a configuration UI. The credentials you enter are saved encrypted using AES, the key only readable by an administrator or the service (runs as NetworkService).

We can update live data (realtime power generation, temperature and so on) up to 13 days in the past. If we miss those (the machine has been off for more than two weeks), all we can write is summaries, but we don't yet.

Other inputs and outputs (other inverter APIs, CSV), aggregations (#26), aggregations to CSV, Excel to CSV and other features and improvements are (far) future plans, help is more than welcome! See Contributing.md.

Installation

Download the most recent version "PVBridge-{version}.msi" under "Releases" on the GitHub page. For older versions, check https://github.com/CodeCasterNL/PVBridge/releases.

Uninstallation / updating

Unfortunately, the uninstaller is broken. Will fix before v1.0.

For now, manually uninstall before update: see the downloads page on the documentation site.

For documentation on installing and setting up, see the documentation site.

Status

Current status: as-is development-prerelease. This means that it might work on your computer, but if it doesn't, please open an issue with as much relevant details as possible and help me figure it out.

It also means that the behavior of the application can change at any release, just as the development pace and support level.

Once the basic functionality is stabilized, a 1.0 version will be released.

Prerequisites

In order to install this program, you need:

  • Windows 11 (10 will work, unsupported).
  • A GoodWe inverter that uploads its data to https://semsportal.com/.
  • An API key and System ID for PVOutput.org.
  • Administrative permissions to install the PVBridge Windows Service.
  • The 64-bit version of the .NET Desktop Runtime, 6.0 or higher (should come with the installer).

Supported behavior

This is what the app should be able to do in its current state:

  • Read current and historic PV data about a GoodWe inverter with a single-panel setup.
  • Write current and historic PV data to a PVOutput.org with a single-panel setup.

Unsupported

These features exist in code and might even be callable or configurable, but are not supported. Try at your own risk.

Configuration

  • GoodWeFileReader input
  • CSV output

Console

The console can do the following things, for testing/debugging/force-syncing without having to run the whole service loop:

PVBridge.exe sync 2020-12-22
PVBridge.exe sync # Live status
PVBridge.exe sync 2021-06-01[T15:15] 2021-06-09

These are subject to change.

Badges

CI build/test develop

Thanks to pyrocumulus/pvoutput.net for maintaining the PVOutput.org API client for .NET.

About

Sync live and historic solar panel data from GoodWe to PVOutput.org and CSV, on Windows.

Topics

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on May 16, 2024. It is now read-only.

Repository files navigation

⚠️ 2022-10-11: I'm trying to find time to make the project more robust, but the GoodWe APIs are really unstable lately. They often don't return any data for days on end.

I'll try to release a newer approach in Q4 2022, but due to personal reasons I might not be able to. See #23.

PVBridge Solar Status Syncer

PVBridge is a tool to upload solar panel information, both in realtime and batched per day, without having to meddle with Python scripts, Task Scheduler and unreadable config files 'n such. Just a simple installer, a background service that starts automatically with your computer and a simple configuration and status UI.

It is a "bridge" between photovoltaic ("PV") systems, so to say.

What it does

It automatically synchronizes your realtime and historic GoodWe data to PVOutput.org, as soon as you start your Windows machine and as far back as 14 days. Support for longer back is underway.

It does so in smart batching and respecting the limits of APIs on either side, by gradually backing off and syncing missing periods with as little traffic as possible. Every five minutes or so, the service sends the realtime solar panel output every five minutes or so, higher resolution support incoming.

Both are tracked in #10.

PVBridge runs as a Windows Service, meaning you won't have to start it yourself, and has a configuration UI. The credentials you enter are saved encrypted using AES, the key only readable by an administrator or the service (runs as NetworkService).

We can update live data (realtime power generation, temperature and so on) up to 13 days in the past. If we miss those (the machine has been off for more than two weeks), all we can write is summaries, but we don't yet.

Other inputs and outputs (other inverter APIs, CSV), aggregations (#26), aggregations to CSV, Excel to CSV and other features and improvements are (far) future plans, help is more than welcome! See Contributing.md.

Installation

Download the most recent version "PVBridge-{version}.msi" under "Releases" on the GitHub page. For older versions, check https://github.com/CodeCasterNL/PVBridge/releases.

Uninstallation / updating

Unfortunately, the uninstaller is broken. Will fix before v1.0.

For now, manually uninstall before update: see the downloads page on the documentation site.

For documentation on installing and setting up, see the documentation site.

Status

Current status: as-is development-prerelease. This means that it might work on your computer, but if it doesn't, please open an issue with as much relevant details as possible and help me figure it out.

It also means that the behavior of the application can change at any release, just as the development pace and support level.

Once the basic functionality is stabilized, a 1.0 version will be released.

Prerequisites

In order to install this program, you need:

  • Windows 11 (10 will work, unsupported).
  • A GoodWe inverter that uploads its data to https://semsportal.com/.
  • An API key and System ID for PVOutput.org.
  • Administrative permissions to install the PVBridge Windows Service.
  • The 64-bit version of the .NET Desktop Runtime, 6.0 or higher (should come with the installer).

Supported behavior

This is what the app should be able to do in its current state:

  • Read current and historic PV data about a GoodWe inverter with a single-panel setup.
  • Write current and historic PV data to a PVOutput.org with a single-panel setup.

Unsupported

These features exist in code and might even be callable or configurable, but are not supported. Try at your own risk.

Configuration

  • GoodWeFileReader input
  • CSV output

Console

The console can do the following things, for testing/debugging/force-syncing without having to run the whole service loop:

PVBridge.exe sync 2020-12-22
PVBridge.exe sync # Live status
PVBridge.exe sync 2021-06-01[T15:15] 2021-06-09

These are subject to change.

Badges

CI build/test develop

Thanks to pyrocumulus/pvoutput.net for maintaining the PVOutput.org API client for .NET.

About

Sync live and historic solar panel data from GoodWe to PVOutput.org and CSV, on Windows.

Topics

Resources

Contributing

Stars

3 stars

Watchers

2 watching

Forks

Releases

Contributors

Languages