Smart Building IoT Manager
Comprehensive IoT management system for smart buildings with automated climate control and energy optimization
Available Skills
monitorDevices
#1Continuously monitors IoT devices and sensors throughout the building infrastructure
optimizeEnergy
#2Automatically adjusts building systems to optimize energy consumption and reduce costs
Integration Examples
// A2A Java Client Example
// Source: https://github.com/a2aproject/a2a-samples/tree/main/samples/java/client
import com.google.a2a.client.*;
import com.google.a2a.model.*;
import java.util.List;
import java.util.Map;
import java.util.UUID;
public class AgentClientExample {
public static void main(String[] args) {
// Create client pointing to your agent
A2AClient client = new A2AClient("https://iot-manager.alpineski.com/a2a");
try {
// Get agent card
System.out.println("=== Getting Agent Card ===");
AgentCard agentCard = client.getAgentCard();
System.out.println("Agent: " + agentCard.name());
System.out.println("Description: " + agentCard.description());
System.out.println("Version: " + agentCard.version());
System.out.println("Skills: " + agentCard.skills());
// Send a task to the agent
TextPart textPart = new TextPart("Your input text here", null);
Message message = new Message(
UUID.randomUUID().toString(), // messageId
"message", // kind
"user", // role
List.of(textPart), // parts
null, null, null, null // contextId, taskId, etc.
);
TaskSendParams params = new TaskSendParams(
"monitorDevices-task",
null, // sessionId
message,
null, // pushNotification
null, // historyLength
Map.of() // metadata
);
JSONRPCResponse response = client.sendTask(params);
Task task = (Task) response.result();
System.out.println("Task ID: " + task.id());
System.out.println("Status: " + task.status().state());
} catch (A2AClientException e) {
System.err.println("A2A Client Error: " + e.getMessage());
e.printStackTrace();
}
}
}
# A2A Python Client Example
# Source: https://github.com/a2aproject/a2a-samples/tree/main/samples/python
import asyncio
import httpx
from uuid import uuid4
from a2a.client import A2ACardResolver, A2AClient
from a2a.types import (
AgentCard,
Message,
MessageSendParams,
Part,
Role,
SendStreamingMessageRequest,
TextPart,
)
class AgentClient:
def __init__(self, agent_url: str):
self.agent_url = agent_url
async def get_agent_card(self) -> AgentCard:
"""Get the agent card information."""
async with httpx.AsyncClient() as httpx_client:
card_resolver = A2ACardResolver(httpx_client, self.agent_url)
return await card_resolver.get_agent_card()
async def send_message(self, message_text: str):
"""Send a message to the agent and get streaming response."""
async with httpx.AsyncClient() as httpx_client:
# Get agent card first
agent_card = await self.get_agent_card()
client = A2AClient(httpx_client, agent_card=agent_card)
# Create message
message = MessageSendParams(
message=Message(
role=Role.user,
parts=[Part(TextPart(text=message_text))],
messageId=uuid4().hex,
taskId=uuid4().hex,
)
)
# Send streaming message
streaming_request = SendStreamingMessageRequest(
id=str(uuid4().hex),
params=message
)
async for chunk in client.send_message_streaming(streaming_request):
if hasattr(chunk.root, 'result') and hasattr(chunk.root.result, 'status'):
message = chunk.root.result.status.message
if message and message.parts:
yield message.parts[0].root.text
async def main():
"""Example usage of the agent client."""
client = AgentClient("https://iot-manager.alpineski.com/a2a")
# Get agent information
agent_card = await client.get_agent_card()
print(f"Agent: {agent_card.name}")
print(f"Description: {agent_card.description}")
# Send a message and stream the response
async for response_chunk in client.send_message("Your input text here"):
print(response_chunk, end='', flush=True)
if __name__ == '__main__':
asyncio.run(main())
Agent Configuration
Complete JSON configuration for this agent:
{
"capabilities": {
"pushNotifications": false,
"streaming": false
},
"defaultInputModes": [
"application/json",
"application/xml"
],
"defaultOutputModes": [
"application/json",
"text/plain"
],
"description": "Comprehensive IoT management system for smart buildings with automated climate control and energy optimization",
"filename": "smart-building-iot-manager.json",
"name": "Smart Building IoT Manager",
"protocolVersion": "0.2.6",
"provider": {
"organization": "Alpine Ski House",
"url": "https://alpineski.com"
},
"skills": [
{
"description": "Continuously monitors IoT devices and sensors throughout the building infrastructure",
"examples": [
"Monitor HVAC system performance",
"Track occupancy sensor data",
"Check security system status"
],
"id": "monitorDevices",
"name": "monitorDevices",
"tags": [
"iot",
"monitoring",
"sensors",
"building"
]
},
{
"description": "Automatically adjusts building systems to optimize energy consumption and reduce costs",
"examples": [
"Optimize lighting based on occupancy",
"Adjust HVAC for energy efficiency",
"Manage power consumption across systems"
],
"id": "optimizeEnergy",
"name": "optimizeEnergy",
"tags": [
"iot",
"energy",
"optimization",
"automation"
]
}
],
"slug": "smart-building-iot-manager",
"url": "https://iot-manager.alpineski.com/a2a",
"version": "2.7.3"
}