Heat Pump Advisor
Heat Pump Advisor · GPT-Aktionen
WattSavy API
API for comparing heating systems and fetching weather data.
GET /weather/{city}Get weather data for a specific city.POST /heating-comparisonCompare heating systems based on user input.POST /manual-j-sizingPerform a simplified Manual J calculation for HVAC sizingGET /heat-pump-part/{part_id}Get information about a specific heat pump part
Ursprüngliches API-Schema
{
"openapi": "3.1.0",
"info": {
"title": "WattSavy API",
"description": "API for comparing heating systems and fetching weather data.",
"version": "1.0.1"
},
"servers": [
{
"url": "https://wattsavy.com",
"description": "Main API server"
}
],
"paths": {
"/weather/{city}": {
"get": {
"operationId": "getWeather",
"summary": "Get weather data for a specific city.",
"parameters": [
{
"name": "city",
"in": "path",
"required": true,
"description": "Name of the city to get weather information for",
"schema": {
"type": "string"
}
}
],
"security": [
{
"ApiKeyAuth": []
}
],
"responses": {
"200": {
"description": "A JSON object containing weather data",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "Name of the city"
},
"temperature": {
"type": "string",
"description": "Temperature in the city"
},
"description": {
"type": "string",
"description": "Weather description (e.g., sunny, cloudy)"
},
"humidity": {
"type": "string",
"description": "Humidity level in percentage"
},
"wind_speed": {
"type": "string",
"description": "Wind speed in km/h"
}
}
}
}
}
},
"401": {
"description": "Unauthorized - API key missing or invalid"
}
}
}
},
"/heating-comparison": {
"post": {
"operationId": "compareHeatingSystems",
"summary": "Compare heating systems based on user input.",
"security": [
{
"ApiKeyAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HeatingComparisonRequest"
}
}
}
},
"responses": {
"200": {
"description": "Heating comparison results",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HeatingComparison"
}
}
}
},
"401": {
"description": "Unauthorized - API key missing or invalid"
}
}
}
},
"/manual-j-sizing": {
"post": {
"operationId": "manualJSizing",
"summary": "Perform a simplified Manual J calculation for HVAC sizing",
"security": [
{
"ApiKeyAuth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ManualJInput"
}
}
}
},
"responses": {
"200": {
"description": "Manual J calculation results",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ManualJOutput"
}
}
}
},
"401": {
"description": "Unauthorized - API key missing or invalid"
}
}
}
},
"/heat-pump-part/{part_id}": {
"get": {
"operationId": "getHeatPumpPart",
"summary": "Get information about a specific heat pump part",
"parameters": [
{
"name": "part_id",
"in": "path",
"required": true,
"description": "Unique identifier of the heat pump part",
"schema": {
"type": "string"
},
"example": "COMP001"
}
],
"security": [
{
"ApiKeyAuth": []
}
],
"responses": {
"200": {
"description": "Detailed information about the heat pump part",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/HeatPumpPart"
},
"example": {
"id": "COMP001",
"name": "Compressor",
"description": "The heart of the heat pump system, responsible for circulating refrigerant.",
"compatible_models": [
"HP2000",
"HP3000",
"ECO500"
],
"average_lifespan": "10-15 years",
"common_issues": [
"Overheating",
"Electrical failure",
"Refrigerant leaks"
]
}
}
}
},
"401": {
"description": "Unauthorized - API key missing or invalid"
},
"404": {
"description": "Part not found"
}
}
}
}
},
"components": {
"schemas": {
"HeatingComparisonRequest": {
"type": "object",
"properties": {
"annual_heating_demand": {
"type": "number",
"description": "Annual heating demand in kWh"
},
"gas_price": {
"type": "number",
"description": "Price of gas per kWh"
},
"electricity_rate": {
"type": "number",
"description": "Electricity rate per kWh"
},
"gas_efficiency": {
"type": "number",
"description": "Efficiency of the gas heating system (COP)"
},
"heat_pump_installation_cost": {
"type": "number",
"description": "Installation cost for the heat pump"
},
"gas_co2_per_kwh": {
"type": "number",
"description": "CO2 emissions per kWh for gas"
},
"heat_pump_co2_per_kwh": {
"type": "number",
"description": "CO2 emissions per kWh for heat pump"
},
"monthly_temperatures": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MonthlyTemperature"
}
}
},
"required": [
"annual_heating_demand",
"gas_price",
"electricity_rate",
"gas_efficiency",
"heat_pump_installation_cost",
"gas_co2_per_kwh",
"heat_pump_co2_per_kwh",
"monthly_temperatures"
]
},
"HeatingComparison": {
"type": "object",
"properties": {
"annual_gas_cost": {
"type": "number",
"description": "Annual cost for gas heating"
},
"annual_heat_pump_cost": {
"type": "number",
"description": "Annual cost for heat pump heating"
},
"years_to_breakeven": {
"type": "number",
"description": "Years required to breakeven the heat pump installation cost"
},
"annual_co2_savings": {
"type": "number",
"description": "Annual CO2 savings by using a heat pump"
},
"monthly_distribution": {
"type": "object",
"additionalProperties": {
"type": "number"
},
"description": "Monthly heating distribution in kWh"
},
"breakeven_cop": {
"type": "number",
"description": "Break-even Coefficient of Performance (CoP)"
},
"annual_costs": {
"type": "object",
"additionalProperties": {
"type": "number"
},
"description": "Annual costs comparison between gas and heat pump"
}
},
"required": [
"annual_gas_cost",
"annual_heat_pump_cost",
"years_to_breakeven",
"annual_co2_savings",
"monthly_distribution",
"breakeven_cop",
"annual_costs"
]
},
"MonthlyTemperature": {
"type": "object",
"properties": {
"month": {
"type": "string",
"description": "Name of the month"
},
"temperature": {
"type": "number",
"description": "Average temperature for the month in °C"
}
},
"required": [
"month",
"temperature"
]
},
"ManualJInput": {
"type": "object",
"properties": {
"square_footage": {
"type": "number",
"description": "Total square footage of the home"
},
"climate_zone": {
"type": "string",
"description": "Climate zone (e.g., '1A', '3B', '5C')"
},
"insulation_quality": {
"type": "string",
"description": "Insulation quality (poor, average, good)"
},
"num_windows": {
"type": "integer",
"description": "Number of windows in the home"
},
"building_orientation": {
"type": "string",
"description": "Primary orientation of the building (N, S, E, W)"
},
"num_occupants": {
"type": "integer",
"description": "Number of occupants in the home"
}
},
"required": [
"square_footage",
"climate_zone",
"insulation_quality",
"num_windows",
"building_orientation",
"num_occupants"
]
},
"ManualJOutput": {
"type": "object",
"properties": {
"heating_load": {
"type": "number",
"description": "Estimated heating load in BTU/h"
},
"cooling_load": {
"type": "number",
"description": "Estimated cooling load in BTU/h"
},
"recommended_system_size": {
"type": "number",
"description": "Recommended heat pump size in tons"
}
},
"required": [
"heating_load",
"cooling_load",
"recommended_system_size"
]
},
"HeatPumpPart": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the part",
"example": "COMP001"
},
"name": {
"type": "string",
"description": "Name of the part",
"example": "Compressor"
},
"description": {
"type": "string",
"description": "Brief description of the part's function",
"example": "The heart of the heat pump system, responsible for circulating refrigerant."
},
"compatible_models": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of compatible heat pump models",
"example": [
"HP2000",
"HP3000",
"ECO500"
]
},
"average_lifespan": {
"type": "string",
"nullable": true,
"description": "Average lifespan of the part",
"example": "10-15 years"
},
"common_issues": {
"type": "array",
"items": {
"type": "string"
},
"nullable": true,
"description": "List of common issues with this part",
"example": [
"Overheating",
"Electrical failure",
"Refrigerant leaks"
]
}
},
"required": [
"id",
"name",
"description",
"compatible_models"
]
}
}
}
}