Calculate your proptech boost!

2026-09-03

Release notes – version 5.7.0

In this release

This release closes out the Semantic Summer ontology expansion, ships durable cross-session memory for autonomous agents, consolidates and extends the ClimateTools MCP surface with building-wide energy, indoor-climate, and CO2 aggregation. Sensors in the API now can be sorted by the edge status.. Federated SSO is extended to two new enterprise clients, and a set of connector and platform fixes round out the release.

API

Semantic Summer

This release adds new quantity kinds, and observation characteristics:

  • ReferenceValue observation characteristics. Added a ReferenceValue family (Baseline, UpperLimit, LowerLimit) to the observationCharacteristics vocabulary, so a datapoint that represents a reference or control bound for a process variable (e.g. a fallback curve or a GT11_MAX limit) can be told apart from the datapoint carrying the variable’s actual reading. Previously these were indistinguishable from real readings, which risked being silently bound as if they were live measurements. Also mirrored into the Snowflake data warehouse.
  • Psychrometric quantity kinds. Added DewPointTemperature and SpecificHumidity quantity kinds and a GramPerKilogram measurement unit, adopted from QUDT. Dew point was previously indistinguishable from ordinary dry-bulb temperature, which could cause dew-point setpoints to be mis-bound as regular temperature setpoints.
  • ModulationLevel definition corrected. The quantity kind no longer prescribes a 0–100% unit — modulation is now correctly usable for both continuous (Percentage) and staged/discrete (Index) devices, consistent with the platform’s quantity-kind/unit separation.

Sorting by Edge status

Devices, Sensors, Actuators, and Systems can now be sorted and filtered by edgeStatus. Add edgeStatus=<VALUE> to filter for an exact match, or include edgeStatus in the sort parameter to order results by it. Supported values: UNKNOWN, DECOMMISSIONED, WARM_UP, OK, WARNING, ERROR, NOT_STARTED, EXPECTED_OFFLINE. Affected endpoints:

  • GET /json/device
  • GET /json/sensor
  • GET /json/actuator
  • GET /json/system

MCP

ClimateTools consolidated around intent (14 → 7 tools)

The ClimateTools MCP surface has been consolidated from 14 tools to 7, merging tools that differed only by a filter argument:

Previous toolsNew tool
get-rooms-with-celsius-above-threshold, get-rooms-with-fahrenheit-above-thresholdget-rooms-with-temperature-above-threshold (optional unit)
get-electricity-usage-for-building, get-energy-usage-for-heating-in-building, get-energy-usage-for-cooling-in-buildingget-energy-usage-for-building (energyType[])
get-warm-water-usage-for-building, get-cold-water-usage-for-buildingget-water-usage-for-building (optional waterType)
get-indoor-temperature, get-indoor-co2-level, get-indoor-humidity-levelmonitor-indoor-climate (optional metrics[])

Building-wide aggregation: energy, indoor climate, CO2

A shared aggregation layer now sits behind the climate and energy tools, returning summarized totals instead of raw per-sensor dumps:

  • Energy totals & KPIs. get-energy-usage-for-building and its water equivalent now return building-level totals per energy/water type, a breakdown by sub-meter, and intensity (kWh/m²) where floor area is available, instead of leaving the caller to sum raw meter readings.
  • monitor-indoor-climate scoping. The tool now supports:
    • Storey scoping — a fuzzy storeyRef (e.g. “7”) resolves to the right storey regardless of local naming convention (“Storey 07”, “Plan 7”, etc.), and granularity: STOREY returns per-storey stats.
    • Room scoping — a fuzzy roomRef scopes the summary to a single room, disambiguating rooms with the same name on different floors. granularity: ROOM always returns the aggregated summary, and includes full per-room readings for all requested metrics when the scope is small; for a large scope (e.g. whole building), only the first requested metric’s readings are included, with a note on how to page through the rest.
  • CO2 threshold tool rewritten. get-rooms-with-carbon-dioxide-above-threshold now returns rooms by name (previously keyed by opaque room ID, so callers couldn’t say which room was affected), ordered highest-first, and distinguishes “no room above threshold” from “no room reported a reading.” A 3-hour freshness filter now excludes stale readings from raising false alerts, matching the other threshold tools.

Autonomous Agents

Agent Memory

Autonomous agents now have durable, cross-session memory, distinct from the existing ephemeral conversation history. Memory is stored as path-addressed files (path + content), scoped per agent.

The agent itself reads and writes its own memory during the agentic loop via four tools: read_memory, write_memory, list_memory, delete_memory. A parallel set of REST endpoints lets humans and admins inspect or edit the same store. New REST endpoints for administering an autonomous agent’s memory store (see Agent Memory above):

GET    …/memory[?path_prefix=]   List memory files

GET    …/memory/file?path=       Read a file (404 if absent)

POST   …/memory/file             Create a file (409 if it already exists)

PUT    …/memory/file             Update a file (404 if absent)

DELETE …/memory/file?path=       Delete a file (204, idempotent)

Edge Connectors

Connector improvements:

  • BACnet. Added bacnetHost support for devices that don’t respond to broadcast Who-Is discovery. Fixed deviceCountThreshold not being persisted into the full connector configuration.
  • SMHI. Fixed the singleton connector configuration hitting the platform’s 1MB config size limit.
  • Sungrow. Fixed a malformed JSON request.

Breaking changes

  1. ClimateTools consolidation. The 7 tools listed under ClimateTools consolidated around intent replace the 14 tools they merge — the old tool names are removed. Update any agent or integration that calls the old tool names directly.
  1. CO2 threshold tool response shape. get-rooms-with-carbon-dioxide-above-threshold now returns a RoomsAboveThresholdResponse (rooms keyed by name, not the previous Map<roomId, observation>). Update any consumer parsing the previous response shape.

Fixes and minor improvements

  • PLAT-4554 — Twin examples missing properties in the Swagger API examples
  • PLAT-5616 — MCP tool cleanups
  • PLAT-5668 — Newly invited Property Owner users had no access
  • PLAT-5688 — Autonomous agents received spurious 400 responses on routines
  • PLAT-5696 — Wrong Property Owner ID in MCP server
  • PLAT-5698 — Agent execution generic “Request failed” response
  • PLAT-5707 — Actuation failing with unhelpful error message
  • PLAT-5711 — GraphQL TwinStatus enum missing Archived/Suspended
  • PLAT-5754 — Agent dispatch EMAIL/SMS not delivered, Service Object crash
  • PLAT-5773 — ActuatorActor hangs indefinitely
  • PLAT-5777 — Intermittent 500 errors on /graphql
  • PLAT-5789 — MCP server thread creation failure

Per Karlberg

CEO

Related posts

2026-07-09

Release notes – version 5.6.7

2026-03-16

Release notes – version 5.6.3

2025-10-20

Release notes – version 5.6

Subscribe to newsletter

By subscribing you agree to with our Privacy Policy.

Ready to see ProptechOS in action?

Take a leap into the future. See how ProptechOS can deliver real business value and support your journey toward a data-driven real estate business.