Skip to main content

Managing Buildings

Buildings allow Partners to group devices by physical location, enabling better consumption tracking, billing accuracy, and optimization for users with multiple properties.

Why Use Buildings?

Organization

Group devices by physical location for clear structure

Consumption Tracking

Separate consumption data by property for accurate billing

Multi-Property Support

Manage users with multiple locations (main home, vacation house)

Self-Consumption Optimization

Optimize photovoltaic self-consumption within a building

Creating a Building

Buildings can be created at any time for a user:
curl -X POST \
  'https://app.podero.com/api/partners/v2.0/org/{org_id}/users/{user_id}/buildings' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer {auth_token}' \
  -d '{
    "name": "Vacation House"
  }'

Optional Building Parameters

You can provide additional building information:
curl -X POST \
  'https://app.podero.com/api/partners/v2.0/org/{org_id}/users/{user_id}/buildings' \
  -H 'Authorization: Bearer {auth_token}' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Main Residence",
    "property_type": "single_family_home",
    "property_size_m2": 150,
    "property_age": "1990-2000",
    "num_occupants": 4,
    "occupant_type": "family",
    "space_heating": "heat_pump",
    "water_heating": "heat_pump",
    "street_and_number": "123 Main Street",
    "zip_code": "10115",
    "town": "Berlin",
    "country_iso2": "DE"
  }'
Building metadata helps the optimization algorithm make better decisions based on property characteristics.

Linking Devices to Buildings

When creating an onboarding session, you can specify the building:
curl -X POST \
  'https://app.podero.com/api/partners/v2.0/device-onboarding' \
  -H 'Authorization: Bearer {auth_token}' \
  -H 'Content-Type: application/json' \
  -d '{
    "user_id": "{user_id}",
    "building_id": "{building_id}",
    "language": "en",
    "price_zone_default": "DE",
    "success_url": "https://yourapp.com/success",
    "cancel_url": "https://yourapp.com/cancel"
  }'
You can link an existing device to a building at any time:
curl -X PUT \
  'https://app.podero.com/api/partners/v2.0/org/{org_id}/users/{user_id}/heat-pumps/{device_id}' \
  -H 'Authorization: Bearer {auth_token}' \
  -H 'Content-Type: application/json' \
  -d '{
    "building_id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  }'
This works for all device types: heat pumps, electric vehicles, and solar inverters.

Listing Buildings

Retrieve all buildings for a user:
curl -X GET \
  'https://app.podero.com/api/partners/v2.0/org/{org_id}/users/{user_id}/buildings' \
  -H 'Authorization: Bearer {auth_token}' \
  -H 'accept: application/json'

Updating Building Information

Update building details as needed:
curl -X PUT \
  'https://app.podero.com/api/partners/v2.0/org/{org_id}/users/{user_id}/buildings/{building_id}' \
  -H 'Authorization: Bearer {auth_token}' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Updated Building Name",
    "num_occupants": 5
  }'

Multi-Building Optimization Scenarios

Scenario 1: Main Home + Vacation House

A user has a primary residence with a heat pump and a vacation house with solar panels and an EV:
# Create main house
main_house = create_building(user_id, {
    'name': 'Main Residence',
    'property_type': 'single_family_home'
})

# Create vacation house
vacation_house = create_building(user_id, {
    'name': 'Vacation House',
    'property_type': 'single_family_home'
})

# Link heat pump to main house
link_device_to_building(heat_pump_id, main_house['id'])

# Link solar and EV to vacation house
link_device_to_building(solar_inverter_id, vacation_house['id'])
link_device_to_building(ev_id, vacation_house['id'])

Scenario 2: Self-Consumption Optimization

When solar panels and energy-consuming devices are in the same building, Podero optimizes for maximum self-consumption:
# All devices at one location
building = create_building(user_id, {
    'name': 'Solar Home'
})

# Link all devices to same building for self-consumption optimization
link_device_to_building(solar_inverter_id, building['id'])
link_device_to_building(heat_pump_id, building['id'])
link_device_to_building(ev_id, building['id'])
The optimization algorithm will prioritize using solar energy to power the heat pump and charge the EV when they’re in the same building.

Best Practices

  • Use clear, descriptive names (e.g., “Main Home”, “Office Building”)
  • Avoid generic names like “Building 1”, “Building 2”
  • Include location information if managing many properties
  • Assign devices to buildings during onboarding when possible
  • Don’t leave devices unassigned if building information is available
  • Allow users to reassign devices if they move them between locations
  • Use buildings for consumption reporting and billing
  • Query devices by building for location-specific insights
  • Track building-level energy metrics for better analytics

Common Use Cases

Even with one property, creating a building helps organize devices and enables future expansion:
# Create default building for new user
building = create_building(user_id, {'name': 'Home'})

# All devices go to this building
link_all_devices_to_building(building['id'])

Next Steps