Recent Releases of Open Sustainable Technology Projects
EcoAssist - AddaxAI v7.0.7
- AddaxAI now accepts custom download mirrors, making installing in mainland China possible
Biosphere - Terrestrial Wildlife
- Python
Published by PetervanLunteren 11 days ago
Nos Gestes Climat - Release v4.14.3
What's Changed
- modif actions by @chachaunis in https://github.com/incubateur-ademe/nosgestesclimat/pull/2799
- Synch preprod with master by @Clemog in https://github.com/incubateur-ademe/nosgestesclimat/pull/2801
- 🔖 Release 4.14.3 by @Clemog in https://github.com/incubateur-ademe/nosgestesclimat/pull/2806
New Contributors
- @chachaunis made their first contribution in https://github.com/incubateur-ademe/nosgestesclimat/pull/2799
Full Changelog: https://github.com/incubateur-ademe/nosgestesclimat/compare/v4.14.2...v4.14.3
Emissions - Carbon Intensity and Accounting
- JavaScript
Published by github-actions[bot] 11 days ago
EcoAssist - AddaxAI v7.0.6
- Sites and camera folders can now be added in bulk from a CSV file
- Fixed model installations failing on Windows computers set to East Asian languages (Thanks to @HKimura787)
- The verification progress now only counts images you can actually review
- The note explaining how videos are analysed is clearer
- Fixed an error that could break the deployments page
Biosphere - Terrestrial Wildlife
- Python
Published by PetervanLunteren 11 days ago
PowerCalc - v1.24.1 🌈
Changes
- #4450 Update translations @github-actions[bot]
- #4462 Implement discovery ignore list to prevent duplicate discoveries @bramstroker
- #4464 Add integration to discovery title @bramstroker
💡 Power profiles
- #4452 Add yeelight YLQPD-0011 power profile @AlexMihai1804
🚀 Features
- #4465 Add option to change device @bramstroker
🐛 Bug Fixes
- #4463 Skip discovery when already setup for composite device @bramstroker
- #4466 Also look at devices sharing same MAC to prevent duplicate discovery @bramstroker
Energy Systems - Building Energy Monitoring
- Python
Published by github-actions[bot] 11 days ago
MHKiT-Python - MHKiT-Python: 1.1.1
Bug Fixes
- Fix edge case for Nortek data files with odd number of bins #459
Renewable Energy - Hydro Energy
- Python
Published by simmsa 11 days ago
Open Energy Platform - v1.9.0
Energy Systems - Energy System Modeling Frameworks
- Python
Published by jh-RLI 12 days ago
GraphCast - Version 0.3.0
- Add support for WN2.
Atmosphere - Meteorological Observation and Forecast
- Python
Published by andrewlkd 12 days ago
QA4SM - QA4SM v4.1.1
Updates
- Add c3S_v2026 dataset
Natural Resources - Soil and Land
- Python
Published by shmeleva-awst 12 days ago
Emoncms - 11.15.16
- improved firmware upload tool
- Merge pull request #2001 from emoncms/copilot/add-liters-to-unit-options
- feat: add liters unit option
- Initial plan
- Merge pull request #1999 from emoncms/copilot/add-pressure-units-psi-and-bar
- Add pressure units psi and bar to units.php
- Initial plan
- Merge pull request #1995 from emoncms/copilot/add-additional-units
- test: align UnitsConfigTest docblock formatting
- feat: add MWh, mi and km feed units
- Initial plan
- update vue.js
- contact details
Energy Systems - Building Energy Monitoring
- PHP
Published by TrystanLea 12 days ago
HydroMT - v1.4.1
v1.4.1 (2026-08-06)
Changed
resample_timenow requires uniform time steps by default when resampling. Irregular time coordinates that were previously resampled based on their mean timestep now raise aValueErrorunlessrequire_uniform_spacing=Falseis passed.- Xarray-based drivers now reject
parallel=Truewithlock=Falsewhen the active Dask scheduler is threaded, instead of forwarding an unsafe keyword-argument combination toxarray.open_mfdataset. - Multi-file
Dataset,GeoDatasetandRasterDatasetsources with{year}or{month}URI placeholders now check that all resolved periods are present in the opened data, including when local path separators differ between platforms.
Fixed
SlippyTileDriverno longer crashes when an AWS credential provider raises while resolving (e.g. an expired SSO token); it now falls back to anonymous access, so public buckets remain reachable.readers.open_mfrasternow uses the numeric basename as the concatenation index for files matched by a bare wildcard (e.g.*.tifmatching1.tif..12.tif) instead of the file-order fallback, and sorts the matched files so the concat order and variable name no longer depend on the filesystem glob order. (#1465)preprocessing.harmonise_dimsno longer applies 0-360 to -180-180 longitude normalisation to projected datasets (x in metres, all > 180), which silently shifted the grid by -360. Normalisation is now only applied for geographic CRS; datasets without a CRS are left unchanged with a warning. (#1476)RasterDatasetAdapternow respectshandle_nodatawhen requestedvariablesare missing from the source:NoDataStrategy.WARNandNoDataStrategy.IGNOREreturnNone(and warn) instead of always raisingNoDataException. (#1407)- A
DataFramesource without an explicit driver now defaults to thepandasdriver instead of incorrectly inferringgeodataframe_table(which also claims.csv/.parquet) and failing validation. (#1403)
Hydrosphere - Freshwater and Hydrology
- Python
Published by github-actions[bot] 12 days ago
EVCC - 0.313.2
Changelog
Other Changes ☀️
- 5b4b4a333c28bebf1f14663351a6b2833e67856c Sponsor: wait for network to settle during startup check [0.313 backport] (#32557)
- 4ca64eaf49bf3078c6e92dfbceecfbed6bcdeb54 Warn on repeated requests only when they succeed [0.313 backport] (#32472)
Bug Fixes 🐞
- 58938bd0a2a950f05299561be04f732db2b18169 Atmoce: fix curtailed for battery [0.313 backport] (#32461)
Consumption - Mobility and Transportation
- Go
Published by andig 12 days ago
eCalc - v13.10.0
13.10.0 (2026-08-06)
Features
Miscellaneous Chores
- deps: bump actions/checkout from 6.0.3 to 7.0.1 (8489a3c)
- deps: bump astral-sh/setup-uv from 8.3.2 to 9.0.0 (1f2dd14)
- deps: bump pypa/gh-action-pypi-publish from 1.14.0 to 1.14.2 (d7ecdb7)
- deps: bump zizmorcore/zizmor-action from 0.6.0 to 0.6.1 (8cde868)
- handle ecalc and process events (#1688) (69c7d10)
- make ecalc compatible with numpy >= 2.4 (#1686) (834a89c)
- rebundle a compressor (#1679) (d91dd6b)
- update deps (#1692) (7277272)
- upgrade dependencies for week 32. Auto-generated by devCalc (d3561ec)
Emissions - Emission Observation and Modeling
- Python
Published by github-actions[bot] 12 days ago
openfoodfacts-server - v2.101.0
2.101.0 (2026-08-06)
Features
Consumption - Agriculture and Nutrition
- HTML
Published by openfoodfacts-bot 12 days ago
Mangrove Atlas - v8.0.0-rc.6
8.0.0-rc.6 (2026-08-05)
Features
Bug Fixes
- init Transifex Live after hydration to stop text mismatch (#1643) (a614c01)
- keyboard and screen reader access on core controls (#1645) (8ae284a)
- mobile layout — welcome modal on small viewports and nav bar width (#1641) (01a582d)
- point alerts layer at automated deforestation-alerts tileset (#1642) (c489e56)
- share the current view, not the one the dialog mounted with (#1647) (aa0beca)
- stop widget cards vanishing while their data loads (#1648) (cffb986)
Biosphere - Forest Observation and Management
- Jupyter Notebook
Published by github-actions[bot] 12 days ago
openfoodfacts-server - v2.100.0
2.100.0 (2026-08-06)
Features
Bug Fixes
Consumption - Agriculture and Nutrition
- HTML
Published by openfoodfacts-bot 12 days ago
dwd_weather - 5.0.0
Breaking changes ⚠️
- Normalize sunshine units #274 Now everywhere the data is reported in W/m2.
- Disables airquality stations, as they are sadly removed currently from the dwd servers #266
New features
- Daily sunshine duration sum: Now the daily sun duration is available as a new sensor and also keeps the history in cache, so no more manually sum up is necessary.
Other
- Bugfixes and code improvements
❤️ Support My Work
I've been working on this project with a lot of passion and dedication in my free time for nearly over 6 years now (starting summer 2020). If you find dwd_weather useful and appreciate the effort that goes into developing it, please consider making a small donation. Your support helps me continue to provide updates, build new features, and improve the project. Finding motivation for developing besides a full time job is not always easy. So if you would like to sponsor my coffee while coding, I would be very happy ☕
Every contribution, no matter how small, is motivating me! Thank you so much for your support! 🙏
❤️ Unterstütze meine Arbeit
Ich arbeite nun schon seit fast über 6 Jahren (seit Sommer 2020) in meiner Freizeit mit viel Leidenschaft und Hingabe an diesem Projekt. Wenn du dwd_weather nützlich findest und die Arbeit dahinter schätzt, ziehe bitte eine kleine Spende in Betracht. Deine Unterstützung hilft mir, weiterhin Updates bereitzustellen, neue Funktionen zu entwickeln und das Projekt zu verbessern. Neben einem Vollzeitjob Motivation für die Entwicklung zu finden, ist nicht immer einfach. Wenn du mir also meinen Kaffee beim Programmieren sponsern möchtest, würde ich mich sehr freuen ☕
Jeder Beitrag, egal wie klein, motiviert mich! Vielen Dank für deine Unterstützung! 🙏
💬 Feedback and Contributions
I’m always open to feedback, suggestions, or contributions. Feel free to create an issue or submit a pull request.
Thank you for your support, and I hope you enjoy the new version! 🚀
Atmosphere - Meteorological Observation and Forecast
- Python
Published by FL550 12 days ago
CloudnetPy - CloudnetPy 1.94.2
- Parse model from filename without hardcoding valid values
Atmosphere - Atmospheric Chemistry and Aerosol
- Python
Published by github-actions[bot] 12 days ago
PowerSimulations.jl - v0.38.2
PowerSimulations v0.38.2
Merged pull requests:
- Give MBC test fixture's thermal unit a base power != system base (#1650) (@luke-kiernan)
- [Do not merge until after Sienna#71] Add docs deploy concurrency guard and Sienna aggregate refresh dispatch. (#1652) (@kdayday)
Energy Systems - Energy System Modeling Frameworks
- Julia
Published by github-actions[bot] 12 days ago
pyam - Release v3.5.0
Release v3.5.0
Highlights
Support the central 90% interval [p5-p95] as a limits setting in the statistics module.
API changes
The method len(df) is marked as deprecated. Use either len(df.series) for the number of datapoints or len(df.index) for the number of scenarios.
The method Statistics.summarize() includes a new argument limits that can take the values 'full range', 'interquartile' or 'central 90%'. The previous boolean arguments fullrange and interquartile are marked as deprecated.
Individual updates
- #993 Mark
len(df)as deprecated - #991 Support the central 90% as limits in the statistics summary
- #989 Add an
IamDataFrame.seriesattribute to get timeseries data as pd.Series
Climate Change - Integrated Assessment and Climate Policy
- Python
Published by danielhuppmann 13 days ago
LiteFarm - v3.13.0
Release notes
Certifications, Rebuilt for How Farms Actually Certify.
In this release
- Certifications
- bug fixes
Consumption - Agriculture and Nutrition
- JavaScript
Published by SayakaOno 13 days ago
Ecoscope - v2.18.0
What's Changed
Other Changes
- Allow
gather_dashboardto accept a list of file paths by @atmorling in https://github.com/wildlife-dynamics/ecoscope/pull/807
Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.17.7...v2.18.0
Biosphere - Conservation and Restoration
- Python
Published by github-actions[bot] 13 days ago
echoSMs -
Release notes are available at https://github.com/ices-tools-dev/echoSMs/blob/main/CHANGELOG.md
Biosphere - Marine Life and Fishery
- Python
Published by github-actions[bot] 13 days ago
The Community Earth System Model - cesm3_0_beta09
Various component updates.
Climate Change - Earth and Climate Modeling
- Python
Published by fischer-ncar 13 days ago
C-Star - 0.8.0
What's Changed
- Release notes finalizer and backtick fix by @ScottEilerman in https://github.com/CWorthy-ocean/C-Star/pull/612
- Harden ROMS build process by @ScottEilerman in https://github.com/CWorthy-ocean/C-Star/pull/611
- Dependency cleanup for stack alignment and conda publishing by @ScottEilerman in https://github.com/CWorthy-ocean/C-Star/pull/613
- Finalize release notes for 0.8.0 by @github-actions[bot] in https://github.com/CWorthy-ocean/C-Star/pull/614
New Contributors
- @github-actions[bot] made their first contribution in https://github.com/CWorthy-ocean/C-Star/pull/614
Full Changelog: https://github.com/CWorthy-ocean/C-Star/compare/0.7.0...0.8.0
Emissions - Carbon Capture
- Python
Published by ScottEilerman 13 days ago
AMO-Tools-Desktop - MEASUR v1.8.2
A software tool for calculating energy efficiency for a variety of industrial and manufacturing applications.
MEASUR helps manufacturers increase industrial energy efficiency at the plant-level and in specific systems. Learn step-by-step ways to identify opportunities, monitor progress, and improve efficiency in any facility. Some tools help facilities implement an energy management system and prepare to become ISO 50001 and Superior Energy Performance certified. Based on older Department of Energy (DOE) tools, the Industrial Technologies office (ITO, formerly the Advanced Manufacturing Office, AMO) has undertaken this effort to refactor the legacy tools into a modern environment.
The suite includes 8 assessment modules (6 energy system, the treasure hunt, and the water balance modules), a Data Exploration Module, extensive help text, comprehensive reports, data visualization, and 80 calculators!
Release Notes v1.8.2
MEASUR is a supported application, updates are expected and may impact previously created assessments.
Warnings:
- Installing v1.0.0 or an earlier version of this tool will automatically reset your app data. Data can be imported into an earlier version from v1.0.1
- Do not install an earlier version of this tool without resetting your app data (in settings).
- Assessments created in MEASUR 0.8.0 or later are not compatible with older versions.
- Exporting from v.0.8.0 and importing to a lower version will continue to work, though new features will not be available.
What's New?
- Resolve MEASUR calls to MEASUR-Tools-Suite library creating errors in Steam Header calculator, Chiller Staging calculator and Wastewater assessment
Here are the details of what's new in version 1.8.2:
Calculators
- Fixed: Steam Header calculator not displaying results
- Fixed: Chiller Staging calculator not displaying results
Wastewater
- Fixed: Report SRT Days charts not displaying data
Here are the details of what's new in version 1.8.1:
Application
- Enhanced: Sponsors list updated
- Enhanced: Privacy notice updated to clarify observed data
Compressed Air
- Added: Air Velocity documentation
- Added: System Capacity documentation
Steam
- Fixed: SSMT -> Change Fuel Type EEM should be managed by Operational Impacts (settings) visibility
Pumps
- Enhanced: Upgrade PSAT report building workflow to improve readability and presentation with quicker access to report PDF
Process Cooling
- Added: Ability to view chiller performance curve after adjustments
- Added: Allow user to declare unknown pump size
- Added: Allow user to declare Tower Fan Type Unknown
- Fixed: Results relating to chiller performance curve
- Fixed: By default, performance graph shows unadjusted curve
- Fixed: Use kW/Ton where kW/RT was being used
- Fixed: issues resulting in stale profile charts for chillers with custom performance
Known Issues:
- Users are experiencing issues with the desktop auto-update feature on some machines. In some cases this can be resolved by simply closing the application, re-opening, and allowing the auto-update to finish. The development team is actively working on the issue.
- The Linux release does not support Auto-updating
- Renaming an export in Windows Download menu can delete the file extension (.json)
- Assessments made in a previous major release may experience errors
- Import files made in a previous major release may not be useable due to field additions/removals
- We have observed cases where if MEASUR is open for a long period of time while many assessments are present, MEASUR performance can become slow. If experienced, close and reopen MEASUR
Consumption - Production and Industry
- TypeScript
Published by github-actions[bot] 13 days ago
Macro - v0.2.2
Full Changelog: https://github.com/macroenergy/MacroEnergy.jl/compare/v0.2.1...v0.2.2
Energy Systems - Energy System Modeling Frameworks
- Julia
Published by github-actions[bot] 13 days ago
amr-wind - v4.1.0
Features:
- OpenFAST 5 enabled
- Static boundary plane option
- Can write initial flow to boundary plane and use as inflow BC
- Boundary planes are now terrain-aware (flow velocity is 0 if next to terrain cell)
- Boundary planes can be phase-aware (select liquid, gas, or both); enables combining with other BCs
- ABL Statistics can be calculated and output on finer mesh levels
- Subvolume output utility: can be output on grids coarser than the mesh itself; different strides in each direction
- Heterogeneous Forest (canopy model)
- time.max_wall_time can be specified as simulation-stopping criterion
- First implementation actuator-based drone representation, featuring an "actuator sector" approach
- Free surface damping for two-phase cases where underwater flow is important and surface waves are not
Improvements:
- LES (Kosovic) changes for simulations with terrain
- More flexibility in setup of ChannelFlow velocity perturbations
- Mesh information printouts
- Probe and plane native sampling info output
- More flexibility and new options for DragForcing, TerrainDrag, ChannelBuilder
- Kynema-FMB interface
Fixes:
- OversetRefinement segfault
- ChannelBuilder restarts
Renewable Energy - Wind Energy
- C++
Published by mbkuhn 13 days ago
Model My Watershed - 1.40.1
This minor release was deployed at 11:55 AM EDT on August 5, 2026.
Bug Fixes:
- Reduce Out of Memory issues in the App VM https://github.com/WikiWatershed/model-my-watershed/pull/3727
Infrastructure Upgrades:
- Use
python-3.10package from theuniverserepository for packer builds - Use
t3a.largeinstances in any availability zone for packer builds - Add release template https://github.com/WikiWatershed/model-my-watershed/pull/3728
Natural Resources - Water Supply and Quality
- JavaScript
Published by rajadain 13 days ago
Deadtrees.earth - v2026.08.05.3
What's Changed
Frontend
- build(deps): bump posthog-js from 1.409.3 to 1.409.5 in /frontend in the npm-patch group by @dependabot[bot] in https://github.com/Deadwood-ai/deadtrees/pull/534
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.05.2...v2026.08.05.3
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 13 days ago
Deadtrees.earth - v2026.08.05.2
What's Changed
Maintenance
- build(deps): update httpx2 requirement from <3,>=2.7 to >=2.9.1,<3 in /api by @dependabot[bot] in https://github.com/Deadwood-ai/deadtrees/pull/536
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.05.1...v2026.08.05.2
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 13 days ago
Deadtrees.earth - v2026.08.05.1
What's Changed
Docs
- docs(workflow): standardize PR descriptions by @JesJehle in https://github.com/Deadwood-ai/deadtrees/pull/538
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.05...v2026.08.05.1
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 13 days ago
openfoodfacts-server - v2.99.0
2.99.0 (2026-08-05)
Features
- add a script to convert product schema (#14137) (bdbac35)
- add taxonomy entries for language mismatch (#14144) (9640812), closes #14120
- handle sv:"fruktmängd Xg $fruit per 100g" (#14026) (a64beba)
- Propagate additive classes to parsed additive ingredients (#14089) (e30c764)
- recognize origins adjectives in ingredients analysis e.g. Swedish strawberries and creme anglaise (#14047) (e71d5c5)
Bug Fixes
- add new Google Play files (c1868f6)
- add new Google Play files (#13963) (c1868f6)
- added sugars tabbing for India (#14148) (acd9fb5)
- don't say "in contact with food" for non-food products (#14045) (00b0561), closes #14023
- duplicate inci_functions in Estonian (et) (#14196) (e1f946b)
- fix german google play badge (#14039) (4098336)
- handle max body size the right way (#14020) (46beaaf)
- move funding (#14128) (a2b6712)
- nutrient unit change causing UI freeze (#14117) (#14183) (424b90f)
- OCRed ingredients with "allergy advice" or "nutrition:" still in the text (#14170) (97444db)
- Open Pet Food Facts category translation (#14094) (19ac227)
- Quick "en passant" Open Pet Food Facts category translation, with a (19ac227)
- restore nutrition table in OPF (#13977) (22abd62), closes #13761
- small food groups improvements (#13880) (8e2c840)
- typo relpace -> replace (#14032) (790cc90)
- use localized F-Droid badges (#14115) (ef0a6cc)
Consumption - Agriculture and Nutrition
- HTML
Published by openfoodfacts-bot 13 days ago
GT4Py - GT4Py v1.2.0
Changes since v1.1.12
General
- Drop support for Python 3.10 and 3.11.
- Update
dacedependency to2.0.0a5.
Cartesian
- Add
gtscript.lazy_functiondecorator that delays parsing of annotated gtscript functions until first use, enabling types that are not fully defined at import time. - Update the C++ standard to C++20 for generated code.
- Fix derived math functions in the DaCe backend to respect literal float precision, matching Fortran behavior.
- Avoid long compilation times in the DaCe backend by skipping a costly simplification pass.
All changes
- fix[next]: make the DaCe determinism check follow gt4py's cache folder naming by @kotsaloscv in https://github.com/GridTools/gt4py/pull/2714
- build: bump dace version by @edopao in https://github.com/GridTools/gt4py/pull/2718
- feat/fix[cartesian]: Integrate
dace.derived math functions to match Fortran by @romanc in https://github.com/GridTools/gt4py/pull/2595 - refactor[cartesian]: skip
LiftTrivalIfinsdfg.simplify()pipeline by @romanc in https://github.com/GridTools/gt4py/pull/2710 - feat[cartesian]: lazy annotated gtscript functions by @romanc in https://github.com/GridTools/gt4py/pull/2708
- feat[next]: staggered fields by @tehrengruber in https://github.com/GridTools/gt4py/pull/2667
- build[cartesian]: Updated C++ Standard to C++20 by @philip-paul-mueller in https://github.com/GridTools/gt4py/pull/2722
- fix[next]: validate rhs in comparison type synthesizer by @havogt in https://github.com/GridTools/gt4py/pull/2727
- refactor[next]: remove unused EtaReduction and ScanEtaReduction by @havogt in https://github.com/GridTools/gt4py/pull/2729
- fix[next-dace]: Include modifed SDFG with GPU TX markers in build folder fingerprint by @edopao in https://github.com/GridTools/gt4py/pull/2739
- build: Dropping python 3.10 & 3.11 support by @FlorianDeconinck in https://github.com/GridTools/gt4py/pull/2326
- Releasing v1.2.0 by @havogt in https://github.com/GridTools/gt4py/pull/2747
Full Changelog: https://github.com/GridTools/gt4py/compare/v1.1.12...v1.2.0
Climate Change - Climate Data Processing and Analysis
- Python
Published by havogt 13 days ago
Deadtrees.earth - v2026.08.05
What's Changed
Other Changes
- fix(processor): filter non-nadir ODM images by @JesJehle in https://github.com/Deadwood-ai/deadtrees/pull/537
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.04.5...v2026.08.05
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 13 days ago
TaxonWorks - Version 0.64.0 release
Added
- Assigning OTU to taxon name task #130
- ProjectOrganization model, link projects to org/depiction metadata #5027
- Radial annotator: Add pagination to citations slice #4964
- In the TaxonName verbatim author/year task, add a Source selector as an option when citing, and add a modal for assigning page numbers to source-only citations that get added to names
- Add object ID to Radial annotator/object/navigator header #4978
- TypeMaterials slice to radial collection objects in Filter Collection Objects #4974
- Taxon Name search now matches on full name + author_year strings, e.g. "Isocapnia crinita (Needham & Claassen, 1925)" #4976
- Index option in the downloads dropdown in Filter Biological Associations - includes more data than the standard filter results download #5017
- Biological Associations Index tsv download link from Project data overview and download #5017
- Add help text on Geographic Area autocompletes explaining that searching for
washington un, e.g., returns Washington state, United States (so doesWAby the way!) - Add sort-column icons to the header row of the labels table in Print Labels
Changed
- Upgraded postresql client to version 18
- Names limit in the Match OTUs to Taxon Names task is now 3k, up from 1k
- Move the list of unifiable types to Ruby (no user-facing changes)
View observation matrixtask is nowBrowse observation matrix- The Print Labels table wraps the text in its columns more, to fit the whole table on smaller screens
- Updated Ruby gems
Fixed
- Filters: Sort buttons do not reset their state when the table content changes
- Notification sound triggers multiple times when there is more than one notification. #4964
- Error when changing the type of a label from qrcode/barcode to text
- DwC occurrences importer not checking existing nomenclature date data correctly when matching on author/year
- Regexes are applied when the user clicks the 'Match' button in the Match OTUs to Taxon Names task
- "Is absent" checkbox does not display the value saved in session storage when citation form is loaded
- Include citations on the OTU itself in addition to associated objects, for the endpoint /api/v1/otus/:id/inventory/citations #4983
- Collecting Events with Georeferences raise an error when attempting to destroy #4937
- Unify fixes related to: Georeferences when Collecting Events are unified, matrix columns when descriptors are unified, and dynamix matrix rows/columns when dynamic data are unified #4944
- Unify now preserves list order of associated data: e.g. if two Collection Objects are unified, the kept object has its original list of Taxon Determinations in the same order, followed by the Taxon Determinations of the destroyed Collection Object in their original order
- Can't unify two Taxon Names when they have the same relationship type from/to a same third Taxon Name #4971
- A "successful" unify between two Taxon Names, one of which has a synonym, can leave the synonym in an unusable state #4971
- Unify of two Asserted Distributions with the "same" Citation can cause loss of annotation data from the citation that gets destroyed #4971
- Unify blocked by "duplicate" is_original citations now works #4971
- Monograph facilitator: Determination label is not visible in Safari browser
- Checklist importer crashing on empty
originalNameUsageIDin some cases - Source and Repository autocompletes sometimes miss results, repository usage counts were sometimes wrong #4990
- OTU autocomplete sometimes returns unuseful results instead of an exact match, even when an exact match exists #4994
- Biological Association UUID sent to GBIF was bad data (not a UUID)
- PDF viewer is not rendering pages #5023
- Add 'Exclude' option to Tags and Confidences facets in filters (for finding objects NOT satisfying the given conditions) #4157
- New BA: Forms do not reset if a citation has already been created
- Unexpected failure from api/v1/otus?extend[]=taxon_name when a returned OTU has no taxon name
Biosphere - Biodiversity Data Access and Management
- Ruby
Published by LocoDelAssembly 13 days ago
iNaturalistReactNative - v1.0.27+225
FIXED
- If one observation failed to upload, it blocked all others in the queue in some cases
- Duplicative scroll when selecting a language
Biosphere - Biodiversity Citizen Science
- Fluent
Published by jtklein 14 days ago
goat - v2.4.56 Bugfix Release
This release is a maintenance update addressing various issues identified since the 2.4.55 release. It does not introduce any new major features, but focuses solely on improving stability and reliability.
What's Changed
- feat/fix: area based opportunities, performance improvements by @nihar1024 in https://github.com/plan4better/goat/pull/3765
- fix: correct left join adding field by @CyrineKamoun in https://github.com/plan4better/goat/pull/3766
Full Changelog: https://github.com/plan4better/goat/compare/v2.4.55...v2.4.56
Consumption - Mobility and Transportation
- TypeScript
Published by majkshkurti 14 days ago
InfrastructureSystems.jl - v3.6.3
InfrastructureSystems v3.6.3
Merged pull requests:
- add instructions about
TestEnv.jltoSienna.md(#586) (@luke-kiernan)
Energy Systems - Grid Management and Microgrid
- Julia
Published by github-actions[bot] 14 days ago
Ecoscope - v2.17.7
What's Changed
Other Changes
- ERDW-269: Gate DWH usage inside get_patrols behind DWH_EVENTS_ENABLED by @marianobrc in https://github.com/wildlife-dynamics/ecoscope/pull/811
Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.17.6...v2.17.7
Biosphere - Conservation and Restoration
- Python
Published by github-actions[bot] 14 days ago
HydroShare - Release 3.17.2
What's Changed
- [#6343] hsctl fix by @pkdash in https://github.com/hydroshare/hydroshare/pull/6345
- fix: Typo in Availability filter form header by @porterhyphenborden in https://github.com/hydroshare/hydroshare/pull/6349
- [#6326] Content type metadata check by @pkdash in https://github.com/hydroshare/hydroshare/pull/6340
- [#6354] Optimize user resource permission check by @pkdash in https://github.com/hydroshare/hydroshare/pull/6352
- [#6292] Metadata extraction without downloading file from s3 by @pkdash in https://github.com/hydroshare/hydroshare/pull/6293
- 6350: Fix search query scoring inconsistencies and unexpected results by @porterhyphenborden in https://github.com/hydroshare/hydroshare/pull/6357
- 6347: Don't update modified timestamp when system-managed relation metadata changes by @porterhyphenborden in https://github.com/hydroshare/hydroshare/pull/6379
- 5896: Delete collection coverage bug by @porterhyphenborden in https://github.com/hydroshare/hydroshare/pull/6348
- 6351: Fix discovery sort overridden when no filters present by @porterhyphenborden in https://github.com/hydroshare/hydroshare/pull/6362
- chore: Add GH workflow to sync parent issue deliverable to sub-issue by @porterhyphenborden in https://github.com/hydroshare/hydroshare/pull/6387
- fix incorrect rendering of temporal dates by @Zahraa222 in https://github.com/hydroshare/hydroshare/pull/6336
- chore: Add new management command to update modified timestamps by @porterhyphenborden in https://github.com/hydroshare/hydroshare/pull/6403
- fix: Relevance sort order being overridden for search endpoint by @porterhyphenborden in https://github.com/hydroshare/hydroshare/pull/6409
- 6410: Fix relation URL parsing when generating pydantic schema.org model by @porterhyphenborden in https://github.com/hydroshare/hydroshare/pull/6407
New Contributors
- @Zahraa222 made their first contribution in https://github.com/hydroshare/hydroshare/pull/6336
Full Changelog: https://github.com/hydroshare/hydroshare/compare/3.16.3...3.17.2
Hydrosphere - Freshwater and Hydrology
- Python
Published by porterhyphenborden 14 days ago
Deadtrees.earth - v2026.08.04.5
What's Changed
Frontend
- fix(priwa): keep late flight suggestions selected by @JesJehle in https://github.com/Deadwood-ai/deadtrees/pull/533
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.04.4...v2026.08.04.5
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 14 days ago
DSSAT Cropping System Model - v4.8.6.0
Official release version of dssat-csm-os v4.8.6.0
What's Changed
Full Changelog: https://github.com/DSSAT/dssat-csm-os/compare/v4.8.5.0...v4.8.5.65
Consumption - Agriculture and Nutrition
- Fortran
Published by fabiooliveira72 14 days ago
EcoAssist - AddaxAI v7.0.5
- Big photo libraries save much faster.
- Videos are analysed much faster.
- The progress bars update more reliably.
- The MegaDetector v1000-cedar model works again.
- AddaxAI now tells you when a new version is out.
Biosphere - Terrestrial Wildlife
- Python
Published by PetervanLunteren 14 days ago
Deadtrees.earth - v2026.08.04.4
What's Changed
Frontend
- fix(priwa): remove mobile flight layers by @JesJehle in https://github.com/Deadwood-ai/deadtrees/pull/532
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.04.3...v2026.08.04.4
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 14 days ago
Ecoscope - v2.17.6
What's Changed
Other Changes
- ERDW-247: Request subject
additionalfrom the DWH when needed by @marianobrc in https://github.com/wildlife-dynamics/ecoscope/pull/801 - Update ecoscope-earthranger-io-core to v0.0.24 to get DWH client bugfix by @marianobrc in https://github.com/wildlife-dynamics/ecoscope/pull/809
Full Changelog: https://github.com/wildlife-dynamics/ecoscope/compare/v2.17.5...v2.17.6
Biosphere - Conservation and Restoration
- Python
Published by github-actions[bot] 14 days ago
Deadtrees.earth - v2026.08.04.3
What's Changed
Frontend
- feat(priwa): improve field review and data tools by @JesJehle in https://github.com/Deadwood-ai/deadtrees/pull/531
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.04.2...v2026.08.04.3
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 14 days ago
CodeCarbon - v3.3.0
What’s Changed
- Release 3.3.0 (#1291) @benoit-cty
- fix: raise HTTP errors from ApiClient instead of returning None (#1277) @sankalpsthakur and @PSR94
- Add support for Windows Energy Meter Interface (EMI) (#1263) @benoit-cty
- fix: delete unused OIDC helpers / clean front (#1289) @SaboniAmine
- docs: remove mentions to Nextjs in docs (#1240) @inimaz
- Update README with new links and sponsor section (#1282) @davidberenstein1957
- docs: clarify tracking_mode affects RAM and CPU (#1163) @hamza-mobeen
⬆️ Dependencies updates
- build(deps-dev): bump postcss from 8.5.15 to 8.5.25 in /webapp in the npm_and_yarn group across 1 directory (#1290) @dependabot[bot]
- build(deps): bump the pip group across 2 directories with 1 update (#1292) @dependabot[bot]
- build(deps): bump the uv group across 3 directories with 1 update (#1293) @dependabot[bot]
- build(deps): bump the uv group across 3 directories with 3 updates (#1279) @dependabot[bot]
- build(deps-dev): bump the npm_and_yarn group across 1 directory with 2 updates (#1278) @dependabot[bot]
- build(deps): bump the uv group across 3 directories with 4 updates (#1245) @dependabot[bot]
- build(deps): bump ws from 8.20.1 to 8.21.1 in /webapp in the npm_and_yarn group across 1 directory (#1267) @dependabot[bot]
👥 List of contributors
@Copilot, @SaboniAmine, @benoit-cty, @davidberenstein1957, @dependabot[bot], @hamza-mobeen, @inimaz, @sankalpsthakur, dependabot[bot], benoit-cty and @PSR94
Consumption - Computation and Communication
- Python
Published by github-actions[bot] 14 days ago
premise - Updated IAM scenarios and IMAGE battery-electric freight
This release updates premise’s default IAM scenario archive, adds battery-electric freight trucks to IMAGE scenarios, and improves uncertainty handling for Swiss hydropower inventories.
Highlights
- Updated the IAM scenario download source to [Zenodo record 21790981 (https://zenodo.org/records/21790981).
- Added IMAGE mappings for:
- 18 t medium-duty battery-electric trucks.
- 40 t heavy-duty battery-electric trucks.
- Their corresponding energy-service and electricity final-energy
variables.
- Added transparent support for IMAGE’s underscore-based archive filenames. Existing premise pathway names remain unchanged:
SSP2-VLHOcontinues to be the public pathway name.image_SSP2_VLHO.csvis resolved automatically in the Zenodo
archive.
- Local IMAGE scenario files are now recognized with either hyphens or underscores.
- Corrected Swiss reservoir-hydropower water exchanges so retained lognormal uncertainty distributions are rescaled together with their amounts.
- Added deterministic handling for corrected hydropower exchanges whose original amount was zero.
- Added regression coverage for scenario downloading, filename compatibility, IMAGE BEV truck mappings, and hydropower uncertainty handling.
Industrial Ecology - Life Cycle Assessment
- Python
Published by romainsacchi 14 days ago
Nos Gestes Climat - Release v4.14.2
Full Changelog: https://github.com/incubateur-ademe/nosgestesclimat/compare/v4.14.1...v4.14.2
Emissions - Carbon Intensity and Accounting
- JavaScript
Published by github-actions[bot] 14 days ago
imod - Release 1.1.0
This release features a lot of functionality and fixes a lot of things to work better with iMOD5 databases.
See https://deltares.github.io/imod-python/api/changelog.html
Hydrosphere - Freshwater and Hydrology
- Python
Published by deltares-service-account 14 days ago
pyrealm - Version 3.0.0 Release Candidate 3
- Updated workflow for creating Flora objects
- Allow zero GPP in calculating allocation and growth.
What's Changed
- 697 the pyrealm v300rc3 snagging list by @davidorme in https://github.com/ImperialCollegeLondon/pyrealm/pull/698
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/ImperialCollegeLondon/pyrealm/pull/694
Full Changelog: https://github.com/ImperialCollegeLondon/pyrealm/compare/v3.0.0-rc.2...v3.0.0-rc.3
Biosphere - Plants and Vegetation
- Python
Published by davidorme 14 days ago
Deadtrees.earth - v2026.08.04.2
What's Changed
Frontend
- feat(priwa): streamline field and review workflows by @JesJehle in https://github.com/Deadwood-ai/deadtrees/pull/528
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.04.1...v2026.08.04.2
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 14 days ago
Deadtrees.earth - v2026.08.04.1
What's Changed
Frontend
- fix(map): compact location search control by @JesJehle in https://github.com/Deadwood-ai/deadtrees/pull/530
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.04...v2026.08.04.1
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 14 days ago
Deadtrees.earth - v2026.08.04
What's Changed
Other Changes
- perf(map): default satellite basemap to live Esri World Imagery by @cmosig in https://github.com/Deadwood-ai/deadtrees/pull/519
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03.6...v2026.08.04
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 14 days ago
QA4SM - QA4SM v4.1.0
Updates
- Update Angular and PrimeNG to 21.0
- Update Django to 5.2.16 LTS
- Fixed file upload drag and drop
Natural Resources - Soil and Land
- Python
Published by shmeleva-awst 14 days ago
CloudnetPy - CloudnetPy 1.94.1
- Fix interval handling in disdrometer processing
Atmosphere - Atmospheric Chemistry and Aerosol
- Python
Published by github-actions[bot] 14 days ago
Volca - v0.9.5
What's Changed
- Open 0.9.5 development by @ccomb in https://github.com/ccomb/volca/pull/275
- Let a server say what it is called by @ccomb in https://github.com/ccomb/volca/pull/276
- Fold the accessor into the ServerName newtype by @ccomb in https://github.com/ccomb/volca/pull/279
- Author activities into a database instead of only deleting them by @ccomb in https://github.com/ccomb/volca/pull/277
- Make an edit outlive the process it was made in by @ccomb in https://github.com/ccomb/volca/pull/278
- Make the PyPI page point somewhere, and be findable by @ccomb in https://github.com/ccomb/volca/pull/282
- Read every term of a summed SimaPro amount by @ccomb in https://github.com/ccomb/volca/pull/281
- Let a client write activities, over HTTP and from the command line by @ccomb in https://github.com/ccomb/volca/pull/280
- Give pyvolca the two write calls by @ccomb in https://github.com/ccomb/volca/pull/283
- Refuse an amount cell that is more than a number by @ccomb in https://github.com/ccomb/volca/pull/284
- Let the sea be characterized by a method that never names it by @ccomb in https://github.com/ccomb/volca/pull/285
- Let the regionalized table rank its colliding factors by @ccomb in https://github.com/ccomb/volca/pull/288
- Explain why a flow scores with the factor it does by @ccomb in https://github.com/ccomb/volca/pull/287
- Record edits in a journal instead of rewriting the database's sources by @ccomb in https://github.com/ccomb/volca/pull/286
- Fork a copy from the source as it stands, not as it was uploaded by @ccomb in https://github.com/ccomb/volca/pull/290
- Let an exponent carry a sign by @ccomb in https://github.com/ccomb/volca/pull/289
- Tell same-named flows apart in a flow search by @ccomb in https://github.com/ccomb/volca/pull/291
- Edit the exchanges of an imported activity by @ccomb in https://github.com/ccomb/volca/pull/292
- Resolve every configured path against the configuration file by @ccomb in https://github.com/ccomb/volca/pull/293
- Release 0.9.5 by @ccomb in https://github.com/ccomb/volca/pull/294
Full Changelog: https://github.com/ccomb/volca/compare/v0.9.4...v0.9.5
Industrial Ecology - Life Cycle Assessment
- Haskell
Published by github-actions[bot] 14 days ago
wetterdienst - v0.132.0
What's Changed
- chore(frontend): release 0.12.1 — resolve dependency vulnerabilities by @gutzbenj in https://github.com/earthobservations/wetterdienst/pull/1789
- fix(mcp): allow null station state in output schema by @gutzbenj in https://github.com/earthobservations/wetterdienst/pull/1790
- docs: condense and refresh AGENTS.md by @gutzbenj in https://github.com/earthobservations/wetterdienst/pull/1793
- fix: resolve polars/pyarrow deprecation warnings in test runs by @gutzbenj in https://github.com/earthobservations/wetterdienst/pull/1794
- ci: remove duplicate macOS runner from test matrix by @gutzbenj in https://github.com/earthobservations/wetterdienst/pull/1795
- ci: bump astral-sh/setup-uv to v9 (pinned by commit SHA) by @gutzbenj in https://github.com/earthobservations/wetterdienst/pull/1796
- chore(backend): release 0.132.0 by @gutzbenj in https://github.com/earthobservations/wetterdienst/pull/1798
Full Changelog: https://github.com/earthobservations/wetterdienst/compare/v0.131.0...v0.132.0
Atmosphere - Meteorological Observation and Forecast
- Python
Published by gutzbenj 14 days ago
Breeze.jl - v0.8.0
Breeze v0.8.0
Breaking changes
- `AtmosphereModels.mean_pressure` was removed in favour of `AtmosphereModels.dynamics_pressure`
Merged pull requests:
- Unify the compressible reference state and set the perturbation-form PGF as default (#863) (@kaiyuan-cheng)
- Add DCMIP2016 tropical cyclone validation study (#865) (@ewquon)
- Collapse mean_pressure into dynamics_pressure (#867) (@kaiyuan-cheng)
- Cap CloudMicrophysics below 0.37.2 to unbreak CI (#879) (@kaiyuan-cheng)
- Bump JuliaRegistries/TagBot from 1.25.8 to 1.25.10 (#880) (@dependabot[bot])
- Bump actions/checkout from 6.0.3 to 7.0.1 (#881) (@dependabot[bot])
- [test] Cap Reactant and use dev version of Oceananigans (#882) (@giordano)
- [docs] Use new CodeBlocks plugin (#883) (@giordano)
- Require new version of Reactant (#884) (@giordano)
- [examples] Increase compression rate of MP4 videos (#885) (@giordano)
- [tests] Create
setup.jlinstead of passinginit_codetoruntests(#888) (@giordano) - Remove dev'd Oceananigans.jl (#889) (@dkytezab)
- Release 0.8 (#892) (@dkytezab)
Closed issues:
- Unify the compressible reference state: one grid-polymorphic slot, drop the redundant terrain_reference_* (#862)
Atmosphere - Atmospheric Composition and Dynamics
- Julia
Published by github-actions[bot] 14 days ago
VILLASnode - v1.2.0
1.2.0 (2026-08-03)
Features
- nodes: Add c37.118 node-type with WITH_NODE_C37_118 build option (b87d6b4)
Bug Fixes
- ci: Refactor Docker -> Container (bdf670f)
- ci: Refactor secrets.GITHUB_TOKEN to github.token context (2582ec7)
- cmake: Remove superfluous CMake variable (0d256a6)
- container: Update links in container usage labels (e3e09ff)
- nix: Remove deprecated usage of pkgs.system (6e972d4)
- Remove GPL-2.0 licensed pcimem tool and related files (b1bcb16)
Energy Systems - Grid Management and Microgrid
- C++
Published by github-actions[bot] 14 days ago
GridPath - GridPath v2026.8.0
What's Changed
- Maintenance: Parallelize the test suite by @anamileva in https://github.com/sylvan-energy/gridpath/pull/1408
- Maintenance: Switch to pyproject.toml by @anamileva in https://github.com/sylvan-energy/gridpath/pull/1410
- Enhancement: Allow negative power from energy_profile optype plus some cleanup by @anamileva in https://github.com/sylvan-energy/gridpath/pull/1411
- Enhancement: Threshold sidestreams for tmp flow bounds by @anamileva in https://github.com/sylvan-energy/gridpath/pull/1412
Full Changelog: https://github.com/sylvan-energy/gridpath/compare/v2026.7.1...v2026.8.0
Energy Systems - Energy System Modeling Frameworks
- Python
Published by anamileva 15 days ago
Oceananigans.jl - v0.110.14
Oceananigans v0.110.14
Merged pull requests:
- Documentation: FieldTimeSeries, FieldDataset and basic post-processing (#5789) (@erin-atkinson)
- Add Unicode integral operators (#5820) (@tomchor)
- Fix ConservativeRegridding extension (#5827) (@simone-silvestri)
- Fix Metal kernel launches broken by argument pre-conversion (#5832) (@xkykai)
- Attempt to fix distributed NCCL for open boundary conditions (#5835) (@tomchor)
- Try capping Reactant to 0.2.276 (#5839) (@dkytezab)
- Let Reactant
set!(u, v)broadcast reduced fields instead of hopping to the CPU (#5840) (@giordano) - Require newer version of Reactant (#5842) (@giordano)
Closed issues:
- Adding a unicode symbol interface for the integral operator (#5816)
test_metal.jl"FFT-based Poisson solver" testset flakes on CI (Metal, Julia 1.12) (#5818)- Unpin reactant (#5841)
Hydrosphere - Ocean Models
- Julia
Published by github-actions[bot] 15 days ago
eDisGo - v0.3.0
This release adds a declarative pipeline runner that describes a whole eDisGo study as a YAML config, large performance improvements on big grids, a reworked optimal power flow and database access, pandas 2.0 support and a restructured documentation. It also fixes the Julia OPF sources missing from the packaged distributions, which broke pm_optimize() in any non-editable installation. See What's new for more information.
Energy Systems - Grid Analysis and Planning
- Python
Published by joda9 15 days ago
Deadtrees.earth - v2026.08.03.6
What's Changed
Frontend
- feat(priwa): simplify field and review workflows by @JesJehle in https://github.com/Deadwood-ai/deadtrees/pull/527
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03.5...v2026.08.03.6
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 15 days ago
EcoAssist - AddaxAI v7.0.4
- Videos now show the species from the frame you can see, and land in the right folder when sorting results.
- Deployment folders that were renamed or moved can be reconnected again.
- Missing files keep warning you until you fix them.
- Exports now include the species name for each photo and video.
- The same animal no longer appears under two names in the species list and label filter.
Biosphere - Terrestrial Wildlife
- Python
Published by PetervanLunteren 15 days ago
GEEST - Release v2.0.4
Energy Systems - Energy Data Accessibility and Integration
- Python
Published by github-actions[bot] 15 days ago
CloudnetPy - CloudnetPy 1.94.0
- Calculate disdrometer variables from raw data
- Support RD-80 processing in CLI
Atmosphere - Atmospheric Chemistry and Aerosol
- Python
Published by github-actions[bot] 15 days ago
acoupi - v0.6.1
What's Changed
- Avoid GUANO backup files when writing recording metadata by @mbsantiago in https://github.com/acoupi/acoupi/pull/118
Full Changelog: https://github.com/acoupi/acoupi/compare/v0.6.0...v0.6.1
Biosphere - Bioacoustics and Acoustic Data Analysis
- Python
Published by mbsantiago 15 days ago
Deadtrees.earth - v2026.08.03.5
What's Changed
Other Changes
- fix(processor): verify storage SSH host keys by @JesJehle in https://github.com/Deadwood-ai/deadtrees/pull/525
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03.4...v2026.08.03.5
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 15 days ago
Deadtrees.earth - v2026.08.03.4
What's Changed
Other Changes
- fix(security): upgrade PyTorch runtimes by @JesJehle in https://github.com/Deadwood-ai/deadtrees/pull/526
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03.3...v2026.08.03.4
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 15 days ago
Deadtrees.earth - v2026.08.03.3
What's Changed
Frontend
- fix(security): remediate CodeQL findings by @JesJehle in https://github.com/Deadwood-ai/deadtrees/pull/524
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03.2...v2026.08.03.3
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 15 days ago
Home Assistant Octopus Energy - v19.0.0
19.0.0 (2026-08-03)
Bug Fixes
- Improvements to invalid token recovery (30 minutes dev time) (b7497b8)
Features
- Add Intelligent State of Charge to show vehicle battery charge level (Thanks @matt7aylor) (ffd980f)
- Added new sensors to represent power up and power down events which will supercede saving session and free electricity session sensors - Full reasoning can be found at https://bottlecapdave.github.io/HomeAssistant-OctopusEnergy/architecture_decision_records/0004_rename_saving_sessions_free_electricity_sessions (2 hours dev time) (ae7ce2f)
- Added optional enforcement of intelligent 6 hour cap (3 hours dev time) (24c796c)
- Added sensor for capturing dispatch hours during current charge cap (1 hour dev time) (9bb5631)
- Removed free electricity binary sensor in favour of calendar sensor (30 minutes dev time) (afa4d38)
- Removed saving session binary sensor in favour of calendar sensor (30 minutes dev time) (9def3d8)
- Removed greener nights sensors due to service being discontinued (30 minutes dev time) (09a10cd)
- Updated deprecated isOctoplusEnrolled field to use new enrollmentStatus field (15 minutes dev time) (4ac32b2)
- Updated intelligent charge target to support values from 0 to 100 (5 minutes dev time) (b6cfe42)
- Updated intelligent target time to allow setting 30 minute intervals throughout entire 24 hour block (5 minutes dev time) (9c552da)
- Updated rate and standing charge sensors to be reported as measurement to support min/max/average statistics. This is to align with other HA integrations for this type of sensor (30 minutes dev time) (8ced498)
BREAKING CHANGES
- Greener night sensors are no longer provided due to the service being discontinued. Please update
all dashboards and automations accordingly - With the type of sensor changing for rate and standing charge sensors, you may need to reset the
statistics associated with these sensors. This may result in you losing long term history for these
sensors. - Removed free electricity binary sensor in favour of calendar sensor. Full reasoning can be found at
https://bottlecapdave.github.io/HomeAssistant-OctopusEnergy/architecture_decision_records/0003_move_to_calendar_entities_for_octoplus_events/ - Saving session binary sensor has been removed in favour of calendar sensor. Full reasoning can be
found at
https://bottlecapdave.github.io/HomeAssistant-OctopusEnergy/architecture_decision_records/0003_move_to_calendar_entities_for_octoplus_events/
Minimum HA Version: 2025.11.0
Enjoying the integration? Why not make a one time or monthly GitHub sponsorship or use my Octopus Energy referral link?
Energy Systems - Building Energy Monitoring
- Python
Published by github-actions[bot] 15 days ago
Deadtrees.earth - v2026.08.03.2
What's Changed
Maintenance
- build(deps): bump the npm-patch group across 1 directory with 4 updates by @dependabot[bot] in https://github.com/Deadwood-ai/deadtrees/pull/523
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03.1...v2026.08.03.2
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 15 days ago
Deadtrees.earth - v2026.08.03.1
What's Changed
Maintenance
- build(deps): bump the npm-minor group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/Deadwood-ai/deadtrees/pull/521
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.08.03...v2026.08.03.1
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 15 days ago
Deadtrees.earth - v2026.08.03
What's Changed
Maintenance
- build(deps): consolidate security and routine updates by @JesJehle in https://github.com/Deadwood-ai/deadtrees/pull/520
Full Changelog: https://github.com/Deadwood-ai/deadtrees/compare/v2026.07.31...v2026.08.03
Biosphere - Forest Remote Sensing
- TypeScript
Published by github-actions[bot] 15 days ago
PowerDynamics.jl - v5.0.0
PowerDynamics v5.0.0
Version 5.0.0 Changelog
Two themes: the ecosystem move that comes down from
NetworkDynamics v1.0/v1.1
(ModelingToolkit v11, the reworked initialization pipeline, SciML v3), and a per-unit
overhaul that turns base values from per-device constructor arguments into a property of
the bus and line.
The library saw a broad naming and unit cleanup in the process. Renamed parameters fail
loudly at construction, so the practical upgrade path is to build your models and follow
the errors — check the docstrings for anything that no longer takes the argument you
pass it. The parts that change numbers rather than names are called out explicitly
below.
Breaking: ecosystem
- All NetworkDynamics v1.0 breaking changes apply unchanged. PowerDynamics
@reexports NetworkDynamics, so its API is part of the PowerDynamics API — most
notablyset_mtk_defaults!→ non-mutatingset_mtk_defaults, symbolic expressions as a
guessnow error in favour ofinitf/guessf,find_fixpointtakes anNWState, and
MTK models are no longer simplified bymtkcompile. See the
NetworkDynamics release notes
for the details and the rewrites. NetworkDynamics ≥ 1.1.0 is required. ModelingToolkit→ModelingToolkitBase+SciCompDSL
(#261). MTK v11 split into
ModelingToolkitBase(MIT) andModelingToolkit(AGPL); PowerDynamics depends only on
the MIT half, and@mtkmodelmoved out intoSciCompDSL. Along with it:Symbolics≥7,
SciMLBase≥3 and theOrdinaryDiffEq*subpackages ≥2.- The
Bus(...)/Line(...)deprecations are removed; usecompile_bus/compile_line.
Breaking: per-unit system
Base values are now part of the model structure rather than something you pass to each
device. There is a new documentation chapter, "Per-Unit Systems", that explains the
whole scheme; the short version:
- Global bases with accessors: a system power base (100 MVA), frequency base (2π·50
rad/s) and fallback voltage base, set through the new exportedset_Sbase!,
set_ωbase!/set_fbase!andset_Vbase!(plusget_*counterparts). They are read at
model construction, so set them before building anything. - New
SystemBasecomponent carries the global quantities (Sbase,ωbase,ωframe).
Exactly one instance namedsystembasesits at the top level of every bus and line;
MTKBus/MTKLine/compile_bus/compile_lineplace it for you. BusBarandLineEndcarryVbase, the one genuinely local base, along with derived
Ibase/Zbase/Ybaseand SI observables (u_kV,P_MW,Q_MVAr,i_kA).Sbaseis a
three-phase power andVbaseline-to-line, henceIbase = Sbase/(√3·Vbase)— the exported
helperIbase(S, V)changed accordingly.- Devices inherit their bases and no longer take
S_b/V_b/ω_b. Drop those arguments
at the call site: set the power/frequency base globally and the per-bus voltage base with
the newMTKBus(…; Vbase=…)/compile_bus(…; Vbase=…)keyword.Vbasepropagates
outward from there — a line end inherits from the bus it connects to (a transformer is
just a line whose two ends resolve differently, ratio included), and a satellite/injector
bus inherits from its hub. An explicitly set value always wins. Sn/Vnare now optional, weakly defaulting to the bus base, so a machine running on
the system base needs no rating at all.LineEndrequires asidekeyword (:src/:dst) — it selects which bus the end
inherits from.MTKLinepasses it automatically; hand-rolled line models must be updated.- New
check_base_consistency(s::NWState), run automatically byinitialize_from_pf[!]
(check=:errorby default,:warn/:noneto downgrade), verifying that the global bases
agree everywhere and that every line end and satellite bus matches the bus it hangs off.
Breaking: naming and units in the library
-
Setpoints are spelled
…set(Pset,Qset,Vset,ωset, …);n/nomis reserved
for genuine nameplate ratings (Sn,Vn). Models ported from elsewhere keep their
source's names so they can still be checked against the original — the AVRs'vrefand
the governors'ω_ref/p_refare unchanged. -
EMT components name parameters for what they hold: reactance
Xand susceptanceB
instead ofLandC, which stored reactance/susceptance values all along. The topology
is in the model name, so there is no ambiguity. -
Frequency vocabulary is split three ways. One symbol used to do three unrelated jobs:
symbol kind unit meaning ωbaseunit rad/s converts SI time ↔ pu; the frequency at which X = ωbase·L,B = ωbase·Cwere evaluatedωframegauge pu speed of the global dq frame; pinned to 1ωsetsetpoint pu frequency a droop/damping law is commanded to hold Consequences throughout the library: an
ω0 = 2π*50keyword on the dynamic shunts,
branches andComposableInvertermodels is gone (they takeωbasefrom the bus instead),
every place where the reference frame was an invisible literal1now writesωframe,
and the dq cross-coupling terms of the EMT components gained theωframefactor they were
missing. Sinceωframe == 1these are all algebraically identical to before — the OpenIPSL
comparison tests pass unchanged. -
Three models genuinely change behaviour and their parameter sets do not carry over:
SwingandIdealDroopInverterhad noωbaseat all, so withωin pu the
angle advanced ~314× too slowly. Both now useDt(θ) ~ ωbase*(ω - ωframe).Swing's
Mis the inertiaM = 2Hin seconds (default6.0, i.e.H = 3 s) andDa damping
power coefficient in pu/pu (default2.0);IdealDroopInverter'sKpis a pu droop
(default0.05). Retune existing parameter sets against these units. A physically sized
machine is lightly damped, so call sites that want a quickly settling transient now pass
aDwell above the default.DroopOuter/DroopInverter:ωis now pu rather than rad/s, makingKpa
dimensionless droop (default0.05). Convert an existing value with
Kp_new = Kp_old/ωbase— with that substitution the rewrite is an exact identity, and
the linearization is unchanged.
IdealDroopInverterandDroopInverternow also share the same droop defaults
Kp = Kq = 0.05; they previously disagreed onKq, so swapping one model for the other
silently changed the voltage stiffness. -
Smaller renames in the same spirit —
VoltageDependentLoad'sVn→Vset,
PSSE_GENCLS's output portωout→SPEED_out, and unified state/output names on the
two PLLs. Consult the docstrings.
Initialization
- Backward initialization through nested components. NetworkDynamics' new
initf/guessfmetadata lets each model carry its own init recipe; composed together
they chain into a DAG that can fix every free variable from the powerflow alone, with no
nonlinear solve at all. The new tutorial "Backward Initialization of Nested Models" builds
a full generator bus that initializes to "No free variables!", and a new "Advanced
Initialization" documentation chapter covers the mechanics. @pfinitconstraint/@pfinitformulahygiene fixed: both macros mishandled escaping, so
a constraint could not close over local runtime variables. They now capture locals
correctly andshowprints the macro form you wrote.initialize_from_pfno longer ignorespfs0— the supplied start state was
overwritten with the powerflow network, so a hand-tuned guess had no effect.tol/nwtol
are now forwarded to the residual check.
Library
- Optional stator dynamics in
SauerPaiMachineviaSauerPaiMachine(; stator_dynamics=true). compile_bus/compile_lineaccept a bare injector/branch, wrapping it in
MTKBus/MTKLineautomatically instead of erroring.- New
mtkcompilekeyword oncompile_bus/compile_line, forwarded to
VertexModel/EdgeModel. - Bug fixes:
ClassicalMachine's Park transform applied the current base ratio upside down
(wrong currents wheneverSn ≠ Sbase); a disconnectedComposableInverterkept driving
its LCL filter and wound up to ≈70 pu internally; limited-integrator callbacks now resolve
the integrator state through the observed-alias chain instead of assuming a name survives
compilation (visible inPSSE_HYGOV);TurbineGovTypeIcould not be constructed at all
(it is constructible now, but remains untested — there is no reference trajectory for it). - Saturation functions (
QUAD_SE,EXP_SE,PSSE_ESST4B'sFEX_function) are AD-safe and
useNaNMath, so a slightly out-of-range argument no longer throws aDomainError
mid-initialization.
Documentation
- New chapters: "Per-Unit Systems" and "Advanced Initialization" (see above).
- New "Getting Started with Julia" section
(#276): the setup page was
rewritten and joined by "Environment Management" and an opinionated "How to Structure
Research Projects" guide, aimed at users who arrive at PowerDynamics before they arrive at
Julia. - New tutorial "Backward Initialization of Nested Models"; the EMT toymodel example was
overhauled, and the initialization and modeling-concepts chapters were reworked for v5.
Merged pull requests:
- Bump actions/upload-artifact from 6 to 7 (#257) (@dependabot[bot])
- Bump julia-actions/cache from 2 to 3 (#258) (@dependabot[bot])
- MTK@v11 Compat (#261) (@hexaeder)
- Bump julia-actions/cache to v3, remove cache-save workaround (#264) (@hexaeder)
- Bump julia-actions/setup-julia from 2 to 3 (#269) (@dependabot[bot])
- Add opinionated guide on how to structure julia research projects to docs (#276) (@hexaeder)
- Change initial guess for rotor frequency to 1 (#277) (@Sciemon)
- Bump codecov/codecov-action from 5 to 7 (#279) (@dependabot[bot])
- Bump actions/checkout from 6 to 7 (#282) (@dependabot[bot])
- Bump SciMLBase 2->3 ecosystem (#284) (@hexaeder)
- Adjust PD for init overhaul in NetworkDynamics (#288) (@hexaeder)
Closed issues:
- Vector state definition not working in @mtkmodel (#240)
- Need dynamic branch and load (Series RL) model (#241)
- Find fix point from dynamic equation (#245)
- Failed to pre-compile PowerDynamics package (#263)
- unspecific error message for power flow initialization (#266)
Energy Systems - Grid Analysis and Planning
- Julia
Published by github-actions[bot] 15 days ago
DispersiveShallowWater.jl - v0.10.3
DispersiveShallowWater v0.10.3
Merged pull requests:
- Bump crate-ci/typos from 1.46.0 to 1.47.0 in the all-github-actions group (#306) (@dependabot[bot])
- Bump the all-github-actions group with 3 updates (#307) (@dependabot[bot])
- Fix coverallsapp GitHub action on macOS (#308) (@JoshuaLampert)
- Use file instead of deprecated path-to-lcov in coveralls action (#309) (@JoshuaLampert)
- Update TimerOutputs requirement from 0.5.25 to 0.5.25, 1.0 in the all-julia-dependencies group across 1 directory (#310) (@dependabot[bot])
- Revert workaround related to Coveralls on MacOS (#311) (@JoshuaLampert)
Hydrosphere - Waves and Currents
- Julia
Published by github-actions[bot] 15 days ago
pySTEPS - pysteps v1.21.3
What's Changed
- fix: extend knmi importer with support for other projections by @mats-knmi in https://github.com/pySTEPS/pysteps/pull/562
- Bump version by @mats-knmi in https://github.com/pySTEPS/pysteps/pull/565
Full Changelog: https://github.com/pySTEPS/pysteps/compare/v1.21.2...v1.21.3
Natural Resources - Water Supply and Quality
- Python
Published by mats-knmi 15 days ago
Tropical Cyclone Risk Model - TCRM 3.2.1
-
Solve the wind spike problem when a very weak/remnant storm moving fast, plus the Kepert model’s forward-speed correction becoming unphysical when vFm > Vm.
-
Solve the problem of synthetic TC intensified over land because the landfall decay coefficient became negative.
Climate Change - Natural Hazard and Storms
- Python
Published by LiangHuLiu 15 days ago
cellpy - v2.1.1.post6
What's Changed
- fix(batch): AUTO prefer cellpy, NEWEST, force_recalc, skip redundant save by @jepegit in https://github.com/jepegit/cellpy/pull/826
Full Changelog: https://github.com/jepegit/cellpy/compare/v2.1.1.post5...v2.1.1.post6
Energy Storage - Battery
- Python
Published by jepegit 16 days ago
wetterdienst - Frontend v0.12.1
What's changed in frontend 0.12.1
Security
[Build]Resolve all 15pnpm auditadvisories (1 critical, 10 high, 3 moderate, 1 low) in the
frontend dependency tree. Refreshed transitive dependencies within their existing ranges via
pnpm update, and added two scopedpnpmoverrides for advisories that intermediate packages
pinned below the fix:brace-expansion(ReDoS) to^5.0.8andesbuild(dev-server file read,
GHSA-g7r4-m6w7-qqqr) to^0.28.1.pnpm auditnow reports no known vulnerabilities.
Atmosphere - Meteorological Observation and Forecast
- Python
Published by gutzbenj 16 days ago
wetterdienst - v0.131.0
What's changed in 0.131.0
Added
- Add a DWD SWSMOS network (
dwd/swsmos) exposing the road weather forecast (Straßenwetter-MOS)
for DWD's ~1800 road weather stations. Each model run provides an hourly forecast out to +167 hours
(selectable viaissue, default: the latest run): air, dew-point and road surface temperature,
liquid precipitation, precipitation probabilities and the road surface condition. This is the
forecast counterpart to the DWDroadobservation network - Add the DWD
10_minutesurban climate (Stadtklima) datasets to thedwd/observationnetwork,
served from DWD'sclimate_urban/path (recent period only):urban_precipitation,
urban_pressure,urban_solar,urban_temperature_air(incl. the new
temperature_radiant_mean_2mparameter),urban_temperature_extreme,urban_temperature_soil,
urban_windandurban_wind_extreme. These complement the existing hourly urban datasets. The
urban station-description lists are parsed by content because they frequently leave the optional
date and Bundesland fields blank - Add an IPMA (Portugal) observation provider (
ipma/observation) backed by the key-less
api.ipma.ptopen-data JSON feeds. Provides near-real-time hourly observations (temperature,
humidity, sea-level pressure, wind speed/direction, precipitation, global radiation) from ~222
stations. Recent-only (a rolling ~1-day window), so a date range within the last day is required.
The-99.0missing sentinel becomes null and the 8-point wind-direction code is converted to
degrees - Add an LHMT (Lithuania) observation provider (
lhmt/observation) backed by the key-less
api.meteo.ltJSON REST API. Provides hourly observations (temperature, humidity, wind
speed/gust/direction, cloud cover, sea-level pressure, precipitation, snow depth) from ~52
stations, with historical data back to roughly 2016 fetched per station and day. Settled past days
are cached indefinitely while the current day uses a short cache - Add a Met Office (UK) observation provider (
metoffice/observation) backed by the MIDAS Open
archive on CEDA (UK Open Government Licence). Covers eight datasets across daily and hourly
resolution (rain, temperature, weather, wind, radiation, soil temperature). Requires a free CEDA
account (WD_AUTH__CEDA=<username>:<password>); the bearer token is minted from those credentials
and cached in-process until shortly before it expires. Multiple report types per day are collapsed
to one value per calendar day, multi-day rain accumulations are dropped, and native units are
normalised (e.g. visibility from decametres to metres)
Changed
- Sharpen the
interpolate/summarizeendpoint descriptions (which become the MCP tool
descriptions) and the MCP instructions so agents stop routing plain weather questions to them.
stations->valuesis now stated as the default for weather at a named place even when a
specific past date is given, and interpolate/summarize are called out as opt-in estimates -- used
only on explicit request or when no station with data is near the point -- because they add
inaccuracy
Fixed
- Type the
interpolate/summarizeresponse-model items to match what the endpoints serialise, so
their MCP output schemas stop rejecting valid results._InterpolatedValuesItemDictand
_SummarizedValuesItemDictnow include theresolution/datasetkeys (always present in the
rows) and typevalue/distance_mean/distance/taken_station_idas nullable: interpolating or
summarizing a point with no station in reach serialisesnullfor those fields, which the previous
non-null schema rejected (the same schema drift fixed forvaluesin 0.130.0)
Atmosphere - Meteorological Observation and Forecast
- Python
Published by gutzbenj 16 days ago
cellpy - v2.1.1.post5
What's Changed
- feat(batch): restore orchestrated batch.load (#822) by @jepegit in https://github.com/jepegit/cellpy/pull/823
- fix(batch): default cellpy paths when persisting frame loads by @jepegit in https://github.com/jepegit/cellpy/pull/824
Full Changelog: https://github.com/jepegit/cellpy/compare/v2.1.1.post4...v2.1.1.post5
Energy Storage - Battery
- Python
Published by jepegit 16 days ago
tsam - v4.0.0
4.0.0 (2026-08-02)
tsam v4 is a rewrite of the internals: aggregation is now a chain of stateless functions in src/tsam/pipeline/, the class-based TimeSeriesAggregation API has been removed — tsam.aggregate() is the single entry point — and every internal identifier moved from camelCase to snake_case. For the overwhelming majority of configurations the results are bit-identical to 3.4.2; the exceptions are listed below and in the migration guide, which says for each change whether — and what — you need to do.
The v4 line was squash-merged as a single commit (#234); the entries below are reconstructed from the pull requests it contains.
⚠ BREAKING CHANGES
- the legacy
TimeSeriesAggregationAPI and the v3 compatibility shims have been removed — usetsam.aggregate()instead (#337, #338) - package structure reorganized (
utils/→algorithms/, newpipeline/, public serializers) (#338) - new pipeline architecture, weight decoupling, and snake_case API (#176)
- per-column
weightsare now a top-level argument ofaggregate();ClusterConfig(weights=...)raisesTypeError(#176) - cluster and segment representations are resolved independently — v3 silently discarded the cluster setting when both were set (#436)
- the duration representation preserves the integral and the min/max envelope (#376)
cluster_representatives,reconstructed, andoriginalreturn columns in input order instead of alphabetically sorted (#234)MinMaxMeannaming a column that is not in the data — or the same column in bothmin_columnsandmax_columns— now raisesValueErrorinstead of being silently ignored (#234)- review follow-ups on the v4 pipeline (#434)
Features
- new pipeline architecture (#234) (5d99d59)
- concurrency-preserving distribution ordering (#377, #400)
- type annotations for all functions in
src/tsam(#339, #402) - plot:
compare()gainedtime_sliceand a color dimension (#338) - plot: new cluster-representative plot (#412)
Bug Fixes
- result:
ClusteringResult.apply()is now faithful to the run it replays (#438) - algorithms: representative selection breaks ties deterministically (#439)
- pipeline: restore v3 parity for period sums (#436)
- representations: correct maxoid variable name and document its scope (#366, #419)
- docs: disable
navigation.instantso notebook plots render (#388)
Deprecations
result.plot.cluster_weights()is renamed toresult.plot.cluster_counts(); the old name still works and emits aFutureWarningDistribution(scope="cluster")is renamed toDistribution(scope="local");"cluster"is normalized and emits aFutureWarning(#378, #382, #383)
Documentation
- documentation restructured along Diátaxis (Tutorials / How-to / Explanation / Reference) (#412)
- v4 API reference and architecture docs (#331)
- docstrings normalized to Google style (#339, #379, #384, #416)
- terminology in docs and notebooks aligned with the glossary (#422)
- branding and logos unified across README and the RTD landing page (#433)
- tuning-notebook animation starts at full resolution (#421)
Already shipped in 3.x (v4 ports — not new when upgrading from 3.4.2)
- DatetimeIndex preserved through the aggregate/disaggregate round-trip (#314 — released in 3.4.0)
- column weights in the accuracy metrics (#263 — released in 3.3.0)
Energy Systems - Energy System Modeling Frameworks
- Python
Published by fzj-iek3-vsa-release-bot[bot] 16 days ago
PowerCalc - v1.24.0 🌈
Changes
- #4431 Add documentation about cost sensor tariffs @bramstroker
- #4441 Reduce test suite duplication with shared helpers @bramstroker
- #4446 Enable renovate automerge for non-major updates @bramstroker
💡 Power profiles
- #4410 add Zigbee Switch 1 Gang No Neutral @Maxik933
- #4412 add Dreame D10 plus model.json @Maxik933
- #4413 Add linkind Smart RGBTW Bulb (1011) von Leedarson power profile @Maxik933
- #4436 Add option for discovery by config entry @bramstroker
🚀 Features
- #4421 Add Danish translations @bramstroker
- #4423 Add finnish translations @bramstroker
- #4424 Add hungarian translations @bramstroker
- #4425 Add Norwegian Bokmål translations @bramstroker
- #4426 Add Chinese Simplified translations @bramstroker
- #4442 Add individual standby energy sensor @bramstroker
- #4443 Implement test matrix for all supported HA versions @bramstroker
🐛 Bug Fixes
- #4427 Fix energy price sensor GUI selector @bramstroker
Energy Systems - Building Energy Monitoring
- Python
Published by github-actions[bot] 16 days ago
HarvestStat - v1.2 (official)
HarvestStat Africa v1.2
Harmonized subnational crop statistics for 33 Sub-Saharan African countries.
This is the current recommended version.
Archived version of record (citable):
https://doi.org/10.5061/dryad.vq83bk42w
The assets attached to this release are byte-identical to the Dryad v1.2 deposit.
The same files are tracked in
public/,
which holds only the latest stable release; earlier versions are available via
tags and
releases.
On v1.1 — v1.1 (2026-01-09) was an internal consistency release and was never
published to GitHub Releases or Dryad. Its changes are folded into v1.2 and
documented in the
CHANGELOG.
Summary of changes since v1.0
- Rows: 203,125 → 217,487 | net +14,362
(36,800 added · 22,438 removed · 2,939 revised by >5%) - Admin units: 1,109 → 1,128 | net +19
- Countries affected (13): Angola, Benin, Burkina Faso, Ethiopia, Kenya,
Lesotho, Malawi, Mozambique, Somalia, South Africa, South Sudan, Sudan, Zambia
Breaking changes — read before updating
Ethiopia FNIDs re-keyed. The 2014 delineation (ET2014A…) is replaced by the
2021 delineation (ET2021R…): 77 units removed, 96 added. The regions are the same
but subdivided more finely — Sidama is split out from SNNPR, several Oromia and
SNNPR zones are disaggregated, and zone names are updated throughout
(e.g. Bench Maji → Bench Sheko, Gamo Gofa → Gamo / Gofa, Argoba →
Argoba Special Woreda). Both the crop statistics and boundary files use the 2021
keys in v1.2. Code joining on Ethiopia FNIDs from v1.0 will silently drop rows.
Country names standardized to ISO 3166-1 short names.
DRC → Congo, The Democratic Republic of the;
Tanzania → Tanzania, United Republic of. FNIDs and admin names are unchanged.
Somalia fully re-ingested. Prior rows are replaced across all affected crops.
Pepper is superseded by Chili Pepper, and the harvest-year encoding is corrected.
Coverage now extends to 2026 (Deyr planted October 2024, harvested March 2026);
treat years beyond 2024 as potentially incomplete seasons.
Series removed without replacement.
Ethiopia: Avocado, Lemon, Mango, Orange, Papaya, Pineapple.
Mozambique: Ginger, Jute, Macadamia, Tea, plus scattered years lost across
2002–2022 — Mozambique has removals only, with no additions.
Notable additions
- Kenya 2006–2011 subnational annual record recovered (+1,275 rows, no removals).
The gap arose from data tied to theKE2007A2/KE2009A2delineations, now
linked and harmonized onto the 47-unitKE2013A1structure, consistent with the
source data (#94,
#96). - Zambia backfilled to 1990 for most crops; Maize extends to 1980, the earliest
coverage in the dataset. New series include Bambara groundnut, Pineapple,
Sugarcane, and Velvet Bean. - Ethiopia rebuilt across 1993–2022 under a revised production-system
classification, spanning cereals, pulses, oilseeds, cash crops, and vegetables. - South Africa extended to 2023–2025, plus a new Oats series (2013–2025).
Shared rows show systematic yield corrections of 6–25% for Maize, Soybean, and
Wheat. - Benin extended to 2023, with new Chili Pepper, Cotton, and Tobacco series and
new Cashew and Coffee crops. - Angola adds horticultural crops (2015–2017) and staples (2007–2017).
- Burkina Faso extended back to 1984 for all major crops.
- Lesotho (2023–2024), Malawi (Maize 2024), and South Sudan (Cereal
Crops aggregate, 2013–2022) receive smaller updates. - Shapefile distribution of the boundary file is included for the first time
(introduced in the unpublished v1.1).
Changes that are not corrections
Burkina Faso's very large percentage changes for 1984–2000 are artifacts of a
production-system reclassification, not revisions to the underlying statistics.
Sudan's ~5% changes for 1975–2010 are within rounding tolerance and are not
material corrections.
Country-by-country detail:
CHANGELOG.md
Contents
| File | Description |
|---|---|
hvstat_africa_data_v1.2.csv |
Harmonized subnational crop statistics |
hvstat_africa_boundary_v1.2.gpkg |
FEWS NET-aligned administrative boundaries, joined via fnid |
hvstat_africa_boundary_v1.2_shp.zip |
Same boundaries as ESRI Shapefile (.shp, .shx, .dbf, .prj, .cpg) |
fdw_raw_data_v1.2.zip |
Raw FEWS NET Data Warehouse (FDW) extracts for 33 countries |
Readme.md |
Dataset documentation and column definitions |
Crop statistics — column definitions
| Column | Description |
|---|---|
fnid |
FEWS NET unique geographic unit identifier |
country |
Country name (ISO 3166-1 short name) |
country_code |
ISO 3166-1 alpha-2 country code |
admin_1 |
First-level administrative unit name |
admin_2 |
Second-level administrative unit name (if applicable) |
product |
Crop product name |
season_name |
Growing season name |
planting_year / planting_month |
Start of planting |
harvest_year / harvest_month |
End of harvest |
crop_production_system |
Production system (e.g. irrigated, rainfed) |
qc_flag |
Quality control flag (0 = none, 1 = outlier, 2 = low variance) |
area |
Cropped area (ha) |
production |
Production volume (mt) |
yield |
Yield (mt/ha) |
The boundary files carry fnid, country, country_code, admin_1, admin_2,
and geometry. The Shapefile distribution truncates country_code to
country_co under the 10-character DBF field-name limit; the GeoPackage uses the
full name.
Raw FDW files are named by ISO 3166-1 alpha-2 code (adm_crop_data_raw_{CC}.csv);
SDSS covers Sudan and South Sudan jointly.
Source data note
HarvestStat Africa is a derived, harmonized product built from multiple original
source documents and data products. It is not a direct redistribution of the
original source files or database records. Original sources are listed in Table S1
of the paper's Supplementary Information.
Citation
Lee, D., Anderson, W., Chen, X., Davenport, F., Shukla, S., Sahajpal, R., Budde, M.,
Rowland, J., Verdin, J., You, L., Ahouangbenon, M., Davis, K. F., Kebede, E.,
Ehrmann, S., Justice, C., & Meyer, C. (2025).
HarvestStat Africa – Harmonized Subnational Crop Statistics for Sub-Saharan Africa.
Scientific Data. https://doi.org/10.1038/s41597-025-05001-z
Dataset: https://doi.org/10.5061/dryad.vq83bk42w
Consumption - Agriculture and Nutrition
- Jupyter Notebook
Published by gnodnooh 16 days ago
leafmap - v0.63.1
What's Changed
- docs: replace MkDocs with Zensical for the documentation website by @giswqs in https://github.com/opengeos/leafmap/pull/1340
- ci: add Claude Code automated PR review workflow by @giswqs in https://github.com/opengeos/leafmap/pull/1344
- Update Claude code review workflow to v7 by @giswqs in https://github.com/opengeos/leafmap/pull/1350
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in https://github.com/opengeos/leafmap/pull/1345
- Bump actions/setup-python from 6 to 7 by @dependabot[bot] in https://github.com/opengeos/leafmap/pull/1346
- Speed up DataFrame conversion utilities by @steps-re in https://github.com/opengeos/leafmap/pull/1349
- Add Urban Heat Island mapping notebook with MODIS LST by @Qandeel-01 in https://github.com/opengeos/leafmap/pull/1343
New Contributors
- @steps-re made their first contribution in https://github.com/opengeos/leafmap/pull/1349
- @Qandeel-01 made their first contribution in https://github.com/opengeos/leafmap/pull/1343
Full Changelog: https://github.com/opengeos/leafmap/compare/v0.63.0...v0.63.1
Sustainable Development - Data Catalogs and Interfaces
- Python
Published by giswqs 16 days ago
PowerIO - v0.7.3
Security fixes for parsing untrusted case files. The parsers are written to reject malformed input with an error, never to crash, exhaust memory, or read or write files outside the ones named on the command line; this release closes several gaps in that model.
- A PowerWorld
.auxlegacyDATAheader whose field list closes before it opens (]before[) no longer panics on an inverted slice. It returns a read error, matching the guard the parenthesized form already carried. - OpenDSS
Redirect/Compile/Buscoordsno longer read arbitrary local files. Parsing from a string (parse_dss_str, and the C ABI and Python string entry points) disables filesystem includes entirely, so untrusted.dsstext cannot pull in a file such as/etc/passwdand echo its contents back through bus names. Parsing from a file (parse_dss_file) still follows includes, now confined to the case directory: an include that resolves outside that directory is refused with a warning, whether it climbs out with..or is an absolute path outside the directory. - OpenDSS
phases,windings, andwdgcounts are capped. A single small property could otherwise size a dense n by n conductor matrix or a per-winding vector into the gigabytes; an oversized value clamps to the supported maximum with a warning. - A PMD ENGINEERING impedance or admittance matrix dimension is capped the same way, so an array of thousands of empty rows no longer demands an n by n allocation.
- The matrix pipeline and the CLI
sensitivitiescommand sanitize the case name before it forms an output filename. A name like../../xor an absolute path can no longer steer a write outside the chosen output directory. - The PowerWorld
.pwdreader groups drawing records by tag in logarithmic time and bounds its substation identity search with a probe budget, so a crafted file cannot force quadratic work. - The OpenDSS include confinement holds for a case file parsed by bare filename: an empty case directory no longer passes every path as a prefix match, so
Redirect /etc/passwdinparse_dss_file("master.dss")is refused. A case directory that itself starts with..now confines rather than refusing everything under it. - OpenDSS includes are also checked after symlink resolution: a lexically contained include that is really a symlink out of the case directory is refused.
parse_raw_filenow confines includes exactly likeparse_dss_fileinstead of following them anywhere on disk. sanitize_stemfollows Windows filename rules (trailing dots trimmed, reserved device names likeconprefixed, length capped) and appends a short hash of the original name whenever sanitization changed it, so two distinct case names that sanitize alike (a/banda_b) cannot silently overwrite each other's files in a multi case export. The gridfm dataset writer routes its output directory through the same sanitizer.- A
DistNetworkarriving without reader caps (the model JSON C entry point deserializes one unchecked) can no longer force quadratic allocation out of linear-size input: the BMOPF writer caps the dense zero fill for an absent linecode/shunt matrix and the transformerx_scpair expansion at 64 conductors/windings, with a warning. - A
NetworkJSON bus id nearusize::MAXis rejected when 3-winding transformers are present, closing an integer overflow in the synthetic star bus allocation that could alias an existing bus. An oversized piecewise costncostclamps instead of overflowing during normalization and Surge export. - The Python
mcpextra pins the SDK below 2.0, which removed themcp.server.fastmcpmodule the server imports. - OpenDSS
like=splicing is capped per object. A self-referencing or mutually-referencing chain (Edit Load.a like=arepeated) otherwise doubled an object's property count each edit, so a few hundred bytes could exhaust memory; the splice is now refused with a warning past the cap. - The PMD writer no longer panics on a transformer with no windings, reachable from a PMD or BMOPF document with the winding array absent. The emergency rating default derives from the first winding only when one exists.
- A PSS/E transformer
CODfield of an extreme magnitude (which saturates toi64::MIN) no longer overflows when the control mode is decoded; it reads as a fixed ratio. - The PowerWorld
.auxreader routes a bus's ownBusNum/Numberthrough the same validation as every bus reference, so a fractional or out-of-range value is a read error instead of a silently truncated or saturated id. - A GOC3 bus uid of
bus_<usize::MAX>no longer overflows when its suffix is mapped to a bus id; it falls back to the 1-based document position. - The MCP server's allowed-roots write check follows a symbolic link in the output filename before deciding containment. A dangling link named as the output file, sitting inside an allowed root but pointing outside it, could otherwise pass the check while the write escaped the sandbox.
- Lifting a GOC3 time series into a package operating-point series binds the declared
time_periodsto theinterval_durationarray length (the same equality the SCOPF loader enforces). An oversizedtime_periodsthat does not match the data no longer drives an unbounded per-period allocation; the series is refused with a diagnostic and the package stays static. - The PMD writer caps the conductor count it expands into square matrices. A switch or voltage source terminal map is a linear model array, and a 35 KB case file naming thousands of terminals drove a 360 MB document and 1.5 GB of resident memory; the matrices now emit at 64 conductors with a warning while the terminal list itself stays faithful. Reachable from any distribution case file, not only the unchecked C entry point.
- The dist graph builder caps the transformer winding count feeding its pair expansion, so a
DistNetworkdeserialized without reader caps cannot turn a linear winding array into a quadratic edge list. - A degenerate model matrix (rows shorter than the row count) reads as zero in the PMD writer instead of panicking on an out of range index, matching the DSS writer.
sanitize_stemhashes a name that already carries the disambiguating suffix shape, so the suffixed and unsuffixed name spaces stay disjoint: a case cannot be named to impersonate another case's disambiguated stem, which took no search to construct because the suffix derives from a published hash. The suffix widens to 64 bits, and the DC OPF bundle writer routes its output directory through the same sanitizer instead of a weaker local copy.- The CLI refuses a conversion sidecar whose path is absolute or climbs out of the output directory, closing the join before a writer can reach it.
- Fuzz harnesses cover the distribution family (
dss,pmd_json). Both parse and then write the network back, since a reader cap that does not hold shows up in the consumer that sizes an allocation from it.
What's Changed
- Harden readers against untrusted case files (0.7.3) by @samtalki in https://github.com/eigenergy/powerio/pull/271
Full Changelog: https://github.com/eigenergy/powerio/compare/v0.7.2...v0.7.3
Energy Systems - Energy Data Accessibility and Integration
- Rust
Published by github-actions[bot] 17 days ago
Volca - v0.9.4
What's Changed
- Release pyvolca 0.8.2 by @ccomb in https://github.com/ccomb/volca/pull/227
- Open 0.9.4 development by @ccomb in https://github.com/ccomb/volca/pull/228
- Add a dataset-soundness report endpoint and MCP tool by @ccomb in https://github.com/ccomb/volca/pull/229
- Read a method collection's format from its method directory by @ccomb in https://github.com/ccomb/volca/pull/230
- Make the database setup and finalize endpoints agree by @ccomb in https://github.com/ccomb/volca/pull/231
- Propagate SimaPro Products-row comments to product exchanges by @ccomb in https://github.com/ccomb/volca/pull/232
- Count coverage the way scoring counts it, and add a collection-level figure by @ccomb in https://github.com/ccomb/volca/pull/233
- Move the mathematicalRelation check from the load log to the quality report by @ccomb in https://github.com/ccomb/volca/pull/234
- Name the subject in the missing-metadata details by @ccomb in https://github.com/ccomb/volca/pull/238
- Type the CF value as CF/CFUnit and locations as Location by @ccomb in https://github.com/ccomb/volca/pull/235
- Name the offending process in quality-report findings by @ccomb in https://github.com/ccomb/volca/pull/237
- Tag log lines with the database they belong to by @ccomb in https://github.com/ccomb/volca/pull/239
- Export method collections as SimaPro CSV by @ccomb in https://github.com/ccomb/volca/pull/240
- Export method collections as columnar CSV by @ccomb in https://github.com/ccomb/volca/pull/242
- Export method collections as openLCA JSON-LD by @ccomb in https://github.com/ccomb/volca/pull/243
- Derive the direction of openLCA factors from their category path by @ccomb in https://github.com/ccomb/volca/pull/245
- Add three quality checks for database maintainers by @ccomb in https://github.com/ccomb/volca/pull/241
- Add a computed-quality report: score outliers, zero scores, negative categories by @ccomb in https://github.com/ccomb/volca/pull/244
- Export method collections as an ILCD LCIA-method package by @ccomb in https://github.com/ccomb/volca/pull/246
- Add four format-agnostic quality checks grounded in physics and standards by @ccomb in https://github.com/ccomb/volca/pull/248
- Report which flow names a method scores only through a bridge by @ccomb in https://github.com/ccomb/volca/pull/249
- Advertise wire revision 4 for the quality-report routes by @ccomb in https://github.com/ccomb/volca/pull/250
- Fan the synonym expansion out through the registry's own closure by @ccomb in https://github.com/ccomb/volca/pull/251
- Bridge the parametric coal variants into their energy families by @ccomb in https://github.com/ccomb/volca/pull/252
- Ship a "Plain indicators" method with wildcard substance patterns by @ccomb in https://github.com/ccomb/volca/pull/253
- Backfill SimaPro flow CAS from the file's own substance registry by @ccomb in https://github.com/ccomb/volca/pull/254
- Refuse the CAS bridge where the method's own values disagree by @ccomb in https://github.com/ccomb/volca/pull/256
- Serve each unit-suffixed flow the factor line written in its own unit by @ccomb in https://github.com/ccomb/volca/pull/257
- Warn when a matched factor cannot be converted into its flow's unit by @ccomb in https://github.com/ccomb/volca/pull/258
- Take the EcoSpold 1 activity identifier from the dataset file name by @ccomb in https://github.com/ccomb/volca/pull/259
- Give every location the databases use a place in the geography hierarchy by @ccomb in https://github.com/ccomb/volca/pull/261
- Report exchange amounts too small to have been measured by @ccomb in https://github.com/ccomb/volca/pull/260
- Place a SimaPro activity by a stated location, not a guessed one by @ccomb in https://github.com/ccomb/volca/pull/263
- Report geography no dataset declared by @ccomb in https://github.com/ccomb/volca/pull/262
- Lend a region-tagged flow the density that goes with its factor by @ccomb in https://github.com/ccomb/volca/pull/264
- Let an instance declare itself read-only by @ccomb in https://github.com/ccomb/volca/pull/265
- Stop dropping the depth the supply chain already carries by @ccomb in https://github.com/ccomb/volca/pull/266
- Make the hosting database quotas mean something by @ccomb in https://github.com/ccomb/volca/pull/268
- Let a method except flows from its own wildcard rules by @ccomb in https://github.com/ccomb/volca/pull/267
- Let get_impacts_batch drop long-term emissions too by @ccomb in https://github.com/ccomb/volca/pull/269
- Let the idle countdown follow real work, not chatter by @ccomb in https://github.com/ccomb/volca/pull/270
- Say seconds, not minutes, in the idle-timeout field comment by @ccomb in https://github.com/ccomb/volca/pull/271
- Make a classification preset always narrow, or say why it cannot by @ccomb in https://github.com/ccomb/volca/pull/272
- Release 0.9.4 by @ccomb in https://github.com/ccomb/volca/pull/273
- Release pyvolca 0.9.1 by @ccomb in https://github.com/ccomb/volca/pull/274
Full Changelog: https://github.com/ccomb/volca/compare/v0.9.3...v0.9.4
Industrial Ecology - Life Cycle Assessment
- Haskell
Published by github-actions[bot] 17 days ago
climpact - Climpact v3.4.2
EHF heatwaves have been replaced by the implementation of EHF heatwaves documented by Nairn and Fawcett (2015) and Nairn et al. (2018). Eight annual heatwave aspects are now calculated for EHF heatwaves:
- heatwave number (HWN): number of heatwaves.
- heatwave frequency (HWF): number of days contributing to heatwaves.
- heatwave duration (HWD): length of the longest heatwave.
- heatwave mean duration (HWMD): mean length of all heatwaves.
- heatwave peak severity (HWPS): highest heatwave severity measured across all heatwaves.
- heatwave peak intensity (HWPI): highest heatwave intensity measured across all heatwaves.
- heatwave load severity (HWLS): sum of heatwave severities across all heatwaves.
- heatwave load intensity (HWLI): sum of heatwave intensities across all heatwaves.
Note that severity, intensity and load are concepts taken from Nairn et al. (2018). The above heatwave aspects are documented in Appendix D of the user guide. Note that Tx90 and Tn90 heatwaves remain unchanged.
Nairn, J., B. Ostendorf, and P. Bi, 2018: Performance of excess heat factor severity as a global heatwave health impact index. Int J Environ Res Public Health, 15, 2494.
Nairn, J. R., and R. J. B. Fawcett, 2015: The excess heat factor: a metric for heatwave intensity and its use in classifying heatwave severity. Int J Environ Res Public Health, 12, 227–253.
Climate Change - Climate Data Processing and Analysis
- R
Published by heroldn 17 days ago
OpenEMS - 2026.8.0
Release Highlights
- New implementations:
- Bitcoin Miners with Braiins OS
- Fix-Reactive-Power App
- App for German EEG 2025 (avoid feed-in during negative spot prices)
- Improved implementations:
- ENTSO-E
- Fix-Active-Power Controller and UI
- Askoma Electric Heater
- my-PV Electric Heater
- Mennekes Wallbox
- Hardy Barth Wallbox
- FENECON Home, Commercial 50, Commercial 100, Commercial 92, Hybrid 10, 9-10, GW & Mini
- Siemens Meter
- ESS Grid-Optimized-Charge Controller
- SG Ready Heat-Pump
- Victron
- Simulator for EVSE ChargePoint
- REFU Battery Inverter
- KACO Battery Inverter
- Clever PV
- SOCOMEC Modbus/TCP Meter
- UI improvements:
- Set ENGLISH as fallback language
- New-UI improvements
- Core improvements:
- Modbus Bridge
- Power Distribution for ESS Cluster
- Energy Scheduler v2
- Apply prettier formatting for UI
- Update to Angular 22
- Improve IntelliJ compatibility
- Integrate AI review & vibe coding skills
Details
OpenEMS Edge
- FEMS Backports 2026-07-06 in https://github.com/OpenEMS/openems/pull/3814
- [Edge] Modbus-Bridge: add optional delay between unit id changes Commit
- [Edge] Document the Power Distribution Commit
- [Edge] Fix Reactive Power App Commit
- [Edge] ENTSO-E: only use position 1 for Germany+Austria Commit
- [Edge] FixActivePower: extend Controller capabilities Commit
- [Edge] Askoma Heat: integration with Energy Schedule Commit
- [Edge] Implement Braiins OS meter Commit
- [Edge] E-Mobility: Mennekes Phase-Switch Commit
- [Edge] New Grid Optimized Charge Commit
- [Edge] my-PV writable Commit
- [Edge] Reset UpdateHandlerTests.java Commit
- [Edge] FENECON Commercial 92 App: Set Ramp Ess Protection Commit
- [Edge] OpenemsComponent: add nullable method to get channel Commit
- [Edge] ReferenceTarget: take default value if property isnt provided in config Commit
- [Edge] Mennekes improvements Commit
- [Edge] ManagedSymmetricEss Modbus-Table: expose AvailableChargeEnergy and AvailableDischargeEnergy Commit
- [Edge] Fix-Active-Power-Controller: add Energy Scheduler v2 support for ONCE-Modes Commit
- [Edge] BraiinsOS: add JUnit tests Commit
- [Edge] FENECON Hybrid 10, 9-10, GW & Mini: add missing App properties Commit
- [Edge] App Center: Siemens Meter app Commit
- [Edge] GridOptimizedCharge: avoid warnings in combination with Time-of-Use-Ctrl Commit
- [Edge] Energy Scheduler v2 Integration: Braiins BTC Miner Commit
- [Edge] Masterbox: mplement GPIO with State Led Commit
- [Edge] Power Distribution v2: improve reactive power Commit
- [Edge] MasterBox: implement Modbus Slave Table Commit
- [Edge] Mennekes App Release Commit
- [Edge] App-Center: EnergyScheduler Version Task Commit
- [Edge] Energy getSchedule-Request improvements Commit
- [Edge] Fix reset of accumulated channels after system restart Commit
- [Edge] Battery.Fenecon.Home: Fix serial number prefix Commit
- [Edge] App.FENECON.Commercial.100: VDE4110 GridCode Commit
- [Edge] App.TimeOfUseTariff: compatibility with FENECON Commercial 100 + EWS Schönau Commit
- [Edge] App.Tariff.Manual.EEG2025.GridSell: App for German EEG 2025 Commit
- [Edge] App Center EVCS/EVSE: Required App Version Commit
- [Edge] Energy getSchedule-Request: add
_sum/EssSocCommit - [Edge] Add AppSafetyCountry mapping and Lithuania EN50549 support Commit
- [Edge] Refactor ESS protection with selectable ramp/voltage modes Commit
- [Edge] Add MasterBox2v0 and CM4S Gen3 hardware app integration Commit
- [Edge] Energy Scheduler v2: Add custom constraints to Fitness Commit
- [Edge] Energy Scheduler v2: Add evaluation step to simulation Commit
- [Edge] Energy Scheduler v2: Add new hyperparameters Commit
- [Edge] Energy GetSchedule: round
fromdown to quarter Commit - [UI/Edge] Controller.Io.HeatPump.SgReady: add optional meter Commit
- [Edge/UI] STS-Box: Adjustments to GenSet properties Commit
- [Edge|Backend] App.Tariff.Manual.EEG2025.GridSell: installable as free App Commit
- [Edge] Update readme.adoc: added link to referenced source code files by @sjjh in https://github.com/OpenEMS/openems/pull/3817
- [Edge] io.openems.edge.victron: keep configured capacity when BMS reports 0 by @jankaifer in https://github.com/OpenEMS/openems/pull/3808
- [Edge] ElectricityMeter: avoid divide-by-zero by @tsicking in https://github.com/OpenEMS/openems/pull/3777
- [Edge] io.openems.edge.victron: drop all write tasks in Read-Only-Mode by @jankaifer in https://github.com/OpenEMS/openems/pull/3807
- [Edge] ENTSO-E: add mathematical expression by @sfeilmeier in https://github.com/OpenEMS/openems/pull/3699
- [Edge] Update readme.adoc: list formating by @sjjh in https://github.com/OpenEMS/openems/pull/3845
- FEMS Backports 2026-07-15 in https://github.com/OpenEMS/openems/pull/3825
- [Edge] AbstractWorker: performance fixes Commit
- [Edge] DependencyUtil: fix potential memory leak Commit
- [Edge] Energy Scheduler v2: improve Optimizer threads Commit
- [Edge] AppValidateWorker: fix NPE Commit
- [Edge] App Core Meta: fix translation Commit
- [Edge] Tariff.Manual.EEG2025.GridSell: fix unit of fixedGridSellPrice Commit
- [Edge] Simulator.Evse.ChargePoint: added simulator for EVSE ChargePoint Commit
- [Edge] FENECON Home: fix wrong configuration of the RS485 interface port Commit
- [Edge] myPV and Askoma: add links to Modbus documentation Commit
- [Edge] REFU Battery Inverter: implement using SunSpec protocol Commit
- [Edge] Commercial 100: add compatibility with peak shaving Commit
- [Edge] my-PV manual schedule Commit
- FEMS Backports 2026-07-21 in https://github.com/OpenEMS/openems/pull/3837
- FEMS Backports 2026-07-30 in https://github.com/OpenEMS/openems/pull/3853
- [Edge] FENECON Commercial: Implement Grid Codex Priority with register 45254 Commit
- [Edge] Home MasterBox: fix relay validation and internal meter Commit
- [Edge] Commerical 100: add missing components for 2 Batteries Commit
- [Edge] Clever PV and Enerix Apps: URL validation Commit
- [Edge] FENECON Home Masterbox: fix App reference for modbus0 Commit
- [Edge] Hardy Barth: fix long request Commit
- [Edge] KACO Battery Inverter: remove CURRENT_STATE_FAULT channel Commit
- [Edge] Fix: logger is not active Commit
OpenEMS UI
- FEMS Backports 2026-07-06 in https://github.com/OpenEMS/openems/pull/3814
- [UI] Energy Scheduler v2 Integration: Braiins BTC Miner Commit
- [UI] Show EEG 2025 section in Time-of-Use-Tariff-View Commit
- [UI] Cockpit & prettier Commit
- [UI] Energy Schedule charts (-4/+20 hours) & more Commit
- [UI] Enable phase switching for mennekes Commit
- [UI] fix modbus protocol download Commit
- [UI] Account creation: improve user feedback Commit
- [UI] Heat Askoma cleanup Commit
- [UI] Formly Field improvements Commit
- [UI] add loading screen for navigation-views Commit
- [UI] Fix display value handling in AbstractModalLine Commit
- [UI] Fixes for Tooltips and EVSE + Stats Commit
- [UI] Synced Tooltip, Colors, Permissions, FENA Commit
- [UI] Tasks vs. Events, translations, variable instead of getter Commit
- [UI] ESS-Mode: apply pattern for prediction Commit
- [UI] ESS Mode-Chart: use full colors Commit
- [UI] ESS Mode-Chart Commit
- [UI] Askoma & Keba UI Commit
- [UI] Fix New Grid Optimized Charge Modes Tooltip units Commit
- [UI] Improve ESS & Grid charts (incl. sell-to-grid-price) Commit
- [UI] set min 5 for emergency capacity reserve Commit
- [UI] fix display of weekdays for weekly Commit
- [UI] EES Mode-Chart improvements; fix NUI EVCS consumption Commit
- [UI] Fix sidemenu not closing on logout Commit
- [UI] Unify page links for BraiinsOS Controller Commit
- [UI] NUI Chip-Navi: do not show "All Systems" twice Commit
- [UI] NUI improve Storage, History, Cockpit and Schedule-Charts Commit
- [UI] NUI: enerixControl Commit
- [UI] General Improvements Commit
- [UI] NUI: New Manual Charge/Discharge via Fix-Active-Power-Controller Commit
- [UI] fix app settings grid layout Commit
- [UI] Askoma & MyPV Consumption UI errors Commit
- [UI] Refactor Edge Live navigation and add Braiins pages Commit
- [UI] NUI: Refactor Modbus TCP Api Commit
- [UI] NUI: Peak-Shaving Symmetric Time Slot Commit
- [UI] NUI: temporary fix for failing QueryHistoricTimeseriesEnergy in storage Commit
- [UI] Remove forecast from heatpump navi Commit
- [UI] Fixed duplicate formly element tags Commit
- [UI] NUI: Add navigation to Overview on Mobile chips navi Commit
- [UI] NUI: semi-transparent prediction, i18n-ally-next, etc. Commit
- [UI] Changes "Sie" to "Du" form in all german translations Commit
- [UI] App Center & Energy Journey: fix Commit
- [UI] LUOX OAuth authentication fix Commit
- [UI] NUI: Peak-Shaving Symmetric / Asymmetric Commit
- [UI] NUI Improvements Header, Energy-Monitor, Breadcumbs, Sidemenu Commit
- [UI] Refresh beta navigation, cockpit layout, and branding assets Commit
- [UI] my-PV writable Commit
- [UI] fix wrong values in storage detail view Commit
- [UI] Fix emergency energy toggle Commit
- [UI] NUI: Weather Commit
- [UI] Downgrade ngx-spinner Commit
- [UI/Edge] Controller.Io.HeatPump.SgReady: add optional meter Commit
- [Edge/UI] STS-Box: Adjustments to GenSet properties Commit
- [UI] Schedule-Chart: add marker for current hover position Commit
- [UI] Grid Price Chart: fix tooltip factor Commit
- FEMS Backports 2026-07-15 in https://github.com/OpenEMS/openems/pull/3825
- [UI] Controller.Io.ChannelSingleThreshold: fix history widget was not shown Commit
- [UI] add group for channel single threshold Commit
- [UI] NUI: adjust button size of action sheet modal chips Commit
- [UI] Fix Reactive Power: add Widget Commit
- [UI] AppCenter: fix rerouting with queryParams Commit
- [UI] Heating element: new icon Commit
- [UI] NUI: io channel single threshold Commit
- [UI] NUI: readd history excel export Commit
- [UI] ToU: enable show or hide for chart datasets Commit
- [UI] Set ENGLISH as fallback language Commit
- FEMS Backports 2026-07-21 in https://github.com/OpenEMS/openems/pull/3837
- [UI] fix history excel export Commit
- [UI] General improvements Commit
- [UI] Migration to angular 22 Commit
- [UI] fixes for channel single threshold Commit
- [UI] fix help links Commit
- [UI] adjust button icon size Commit
- [UI] Fix conversion of boolean value Commit
- [UI] fix submit button positioning Commit
- [UI] EVSE: fix app center vehicles Commit
- [UI] NUI: Askoma & my-PV Commit
- [UI] fix routing in for app install via keypopup Commit
- FEMS Backports 2026-07-30 in https://github.com/OpenEMS/openems/pull/3853
- [UI] CI: Improve OEM iOS release pipeline Commit
- [UI] NUI: fix wrong consumption channel Commit
- [UI] Remove outdated isVersionAtLeast checks before 2025.2 Commit
- [UI] fix x axis align Commit
- [UI] Generic Group component Commit
- [UI] Formly and StringUtils improvements Commit
- [UI] Angular 22 migration fixes Commit
OpenEMS Backend
- FEMS Backports 2026-07-06 in https://github.com/OpenEMS/openems/pull/3814
- [Backend] Docs: document the Edge connection architecture (Backend.Edge.App) by @arindahills in https://github.com/OpenEMS/openems/pull/3818
- FEMS Backports 2026-07-15 in https://github.com/OpenEMS/openems/pull/3825
Common/General
- FEMS Backports 2026-07-06 in https://github.com/OpenEMS/openems/pull/3814
- [Common] Actions: Convert action versions to pinned hashes by @da-Kai in https://github.com/OpenEMS/openems/pull/3852
- FEMS Backports 2026-07-21 in https://github.com/OpenEMS/openems/pull/3837
- [Common] Update Test SKILL.md to prefer JUNIT 6 Commit
- FEMS Backports 2026-07-30 in https://github.com/OpenEMS/openems/pull/3853
- [Common] CI: Update Jacoco report Commit
Version Upgrades
- Bump com.google.protobuf:protobuf-java from 4.35.0 to 4.35.1 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3811
- Bump com.zaxxer:HikariCP from 7.0.2 to 7.1.0 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3812
- Bump com.auth0:auth0 from 3.8.0 to 3.9.0 in /cnf in the auth0 group by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3809
- Bump the junit group in /cnf with 7 updates by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3810
- Bump the openems-integration-tests group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3804
- Bump net.java.dev.jna:jna from 5.18.1 to 5.19.0 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3760
- Bump org.jetbrains.kotlin:kotlin-osgi-bundle from 2.3.21 to 2.4.0 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3759
- Bump the openems-ui group across 1 directory with 31 updates by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3816
- Bump @angular/service-worker from 20.3.19 to 20.3.25 in /ui by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3803
- Bump the bytebuddy group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3757
- Bump net.java.dev.jna:jna from 5.19.0 to 5.19.1 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3821
- Bump com.auth0:auth0 from 3.9.0 to 3.10.0 in /cnf in the auth0 group by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3820
- Bump com.fasterxml.jackson.core:jackson-annotations from 2.21 to 2.22 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3758
- bump the bouncycastle group in /cnf with 2 updates by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3828
- bump org.jetbrains.kotlin:kotlin-osgi-bundle from 2.4.0 to 2.4.10 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3832
- bump org.apache.felix:org.apache.felix.http.jetty12 from 2.0.0 to 2.0.2 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3833
- bump the auth0 group in /cnf with 2 updates by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3829
- bump the junit group in /cnf with 7 updates by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3831
- bump actions/setup-node from 6 to 7 in /.github/workflows by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3830
- Bump com.auth0:auth0 from 4.0.0 to 4.1.0 in /cnf in the auth0 group by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3848
- Bump com.squareup.okio:okio-jvm from 3.17.0 to 3.18.0 in /cnf in the squareup group by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3847
- Bump org.apache.felix:org.apache.felix.http.jetty12 from 2.0.2 to 2.0.4 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3854
- Bump docker/login-action from 4.5.1 to 4.5.2 in /.github/workflows by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3858
New Contributors
- @jankaifer made their first contribution in https://github.com/OpenEMS/openems/pull/3808
- @arindahills made their first contribution in https://github.com/OpenEMS/openems/pull/3818
Full Changelog: https://github.com/OpenEMS/openems/compare/2026.7.0...2026.8.0
Energy Systems - Building Energy Monitoring
- Java
Published by github-actions[bot] 17 days ago
EVCC - 0.313.1
Changelog
Other Changes ☀️
- e4ca549ea65f6e6c696fec36db00bd18e21f286e 0.313 backport: chore: pin clock in device colors test (#32325) (#32387)
- 58c4b446d6056154c0b7158546d39599be17310b Cardata: delete obsolete streaming containers (#32376)
Bug Fixes 🐞
- 0990bd97843952ae993004d5d2a32c71f8cdb9dc 0.313 backport: Sessions UI: fix grouped chart layout and legend styling (#32383)
- fff64791152366541b299e6649c765211b98b9f2 0.313 backport: chore: fix request cache warning (#32382)
Consumption - Mobility and Transportation
- Go
Published by andig 17 days ago
Open Sustainable Technology - OpenSustain.tech-2026-08
Automated monthly release of projects and organizations listed at OpenSustain.tech and enriched by metadata released by ecosyste.ms
Included files:
- opensustain-tech-projects-OpenSustain.tech-monthly-release-2026-08.csv
- opensustain-tech-organizations-OpenSustain.tech-monthly-release-2026-08.csv
Sustainable Development - Knowledge Platforms
Published by github-actions[bot] 17 days ago
ClimaLand.jl - v1.11.0
ClimaLand v1.11.0
📢 API Changes:
🚀 Features
📑 Documentation
🐛 Fixes
- Snow surface temperature parameterization results in huge slow down (#1727)
Natural Resources - Soil and Land
- Julia
Published by github-actions[bot] 18 days ago
ClimaAtmos.jl - v0.42.3
ClimaAtmos v0.42.3
📢 API Changes:
🚀 Features
📑 Documentation
🐛 Fixes
Atmosphere - Atmospheric Composition and Dynamics
- Julia
Published by github-actions[bot] 18 days ago
REVUB - REVUB v1.2.1 08/2026
Clearer folder structure, improved user warnings, and including flexibility of pre-setting already known optimal simulation parameters
Energy Systems - Renewable Energy Integration
- Python
Published by sebastiansterl 18 days ago