Absaar EMS

Reads Absaar EMS inverter data from mini-ems.com

Current Release
0.1.13
Developer
TheBam1990
License
MIT

ioBroker adapter for Absaar EMS inverters. The adapter reads inverter and station data from the Absaar EMS cloud API used by the Absaar EMS app.

Product and manufacturer information is available on the official AdvanSol Power website.

The adapter does not contain private credentials, private host names, or user-specific data. Credentials are stored in protected and encrypted ioBroker native configuration fields.

Features

  • Cloud polling via https://mini-ems.com:8081
  • Login with Absaar EMS app credentials
  • Automatic token handling and re-authentication
  • Configurable polling interval
  • Station states for daily, monthly and total energy generation
  • Additional station values such as current power and income/environment counters
  • Collector states such as input power, online status, collector name and last online time
  • Inverter states for AC, PV, temperature, battery and load values
  • Optional raw JSON states for troubleshooting
  • JSON based admin configuration

Requirements

  • ioBroker js-controller >= 6.0.11
  • ioBroker Admin >= 7.8.23
  • Node.js >= 22
  • An Absaar EMS account with at least one inverter or station configured in the Absaar EMS app
  • Network access from the ioBroker host to mini-ems.com:8081

Configuration

Open the adapter instance configuration in ioBroker Admin.

SettingDescription
Adapter activeEnables or disables polling.
Absaar usernameUsername used in the Absaar EMS app. Depending on the account this may be an email address or a username.
Absaar passwordPassword used in the Absaar EMS app. Stored as encrypted and protected native config by ioBroker.
Poll interval secondsPolling interval in seconds, from 30 to 86400. Default is 120. Keep this value conservative to avoid cloud rate limits.
API base URLDefault: https://mini-ems.com:8081. Usually this should not be changed.
Store raw data as JSONWrites the full fetched JSON into states for troubleshooting. Disabled by default.

States

The adapter creates states below this structure:

absaar.0.info.*
absaar.0.stations.<stationId>.*
absaar.0.stations.<stationId>.inverters.<inverterId>.*

Info states

StateTypeDescription
info.connectionbooleantrue if the last poll succeeded.
info.lastUpdatestringISO timestamp of the last successful update.
info.lastErrorstringLast error message. Empty after a successful poll.

Station states

StateUnitDescription
dailyPowerGenerationkWhDaily generated energy reported by the Absaar API.
monthlyElectricityGenerationkWhMonthly generated energy reported by the Absaar API.
totalPowerGenerationkWhTotal generated energy reported by the Absaar API.
currentPowerWCurrent station power reported by the Absaar API.
incomeOfTheDayDaily income counter reported by the API.
currentMonthsIncomeMonthly income counter reported by the API.
cumulativeIncomeCumulative income counter reported by the API.
saveStandardCoalEnvironmental counter reported by the API.
emissionReductionCO2CO2 reduction counter reported by the API.
protectTreesTree protection counter reported by the API.
inverterTotalNumber of assigned inverters.
inOnCountNumber of online inverters.

Collector states

Collector states are created below stations.<stationId>.inverters.<inverterId>. They are created even if the separate inverter data endpoint returns no rows.

StateUnitDescription
collectorIdCollector ID.
collectorNameCollector name.
inverterIdInverter ID.
inverterNameInverter name.
communicationStatusCommunication status reported by the API.
onlineStatusOnline status reported by the API.
networkStatusNumeric network status.
inPowerWInput or current power reported in the collector list.
ipAddressCloud-side IP address reported by the API.
onlineTimeLast online timestamp.
exhibitionTimeLast data timestamp shown by the API.
collectorTypeCollector type.
equipmentTypeEquipment type.
modelReplaceModel identifier.

Inverter states

StateUnitDescription
acPowerWAC output power.
acVoltageVAC voltage.
acFrequencyHzAC frequency.
acElectricAAC current.
pv1PowerWPV input 1 power.
pv2PowerWPV input 2 power.
pv1VoltageVPV input 1 voltage.
pv2VoltageVPV input 2 voltage.
pv1ElectricAPV input 1 current.
pv2ElectricAPV input 2 current.
inPowerWInput power reported by the API.
temperaturedegCInverter temperature.
batteryVoltageVBattery voltage, if reported by the device.
batteryCurrentABattery current, if reported by the device.
batteryPowerWBattery power, if reported by the device.
loadPowerWLoad power, if reported by the device.
controllerTemperaturedegCController temperature, if reported by the device.

Not every Absaar device reports every field. Missing values are left unchanged until the API reports a valid numeric value.

Troubleshooting

  1. Check absaar.0.info.connection.
  2. Check absaar.0.info.lastError.
  3. Verify that the same credentials work in the Absaar EMS app.
  4. Keep the poll interval at 120 seconds or higher while testing.
  5. Enable raw JSON only temporarily, because it can create large states depending on the API response.

Changelog

0.1.13 (2026-07-14)

  • Added complete adapter description translations and a manufacturer link.
  • Enforced a safe polling interval range of 30 seconds to 24 hours.
  • Enabled TLS certificate verification for cloud API requests.
  • Improved state roles and avoided redundant object creation during polling.
  • (ioBroker-Bot) Adapter requires admin >= 7.8.23 now.

0.1.12

  • Added the release script configuration required by the repository checker.

0.1.11

  • Added ioBroker development tooling used by common adapter maintenance workflows.
  • Switched admin translations to the short i18n file format.

0.1.10

  • Switched the CI workflow to the standard ioBroker testing actions.
  • Added package and integration test scripts expected by the ioBroker checker.

0.1.9

  • Added trusted publishing workflow configuration for signed npm releases.
  • Added repository housekeeping updates requested by the ioBroker checker.

Older entries are archived in CHANGELOG_OLD.md.

License

MIT License

Copyright (c) 2026 TheBam