Programming Building Intelligence: Trend Logs and Schedules
Imagine a building that “remembers” how it performed yesterday, “knows” when people will be in tomorrow, and “understands” which days are holidays. This isn’t science fiction—it’s the power of advanced BACnet objects working together. Trend Logs collect historical data, Schedules automate time-based control, and Calendar objects handle special dates. When combined, they create buildings that learn, adapt, and save energy automatically.
In this article, we’ll dive deep into using these advanced BACnet objects for automated building intelligence. We’ll provide detailed configuration examples, show how they work together, and demonstrate how they deliver significant energy savings.
Why Advanced BACnet Objects Matter
Basic BACnet objects (like Analog Inputs and Binary Outputs) handle real-time control, but advanced objects enable “building intelligence”—the ability to learn from history, adapt to schedules, and anticipate needs. This intelligence translates directly to energy savings:
- Cost Reduction: Lower energy bills and maintenance costs
Let’s explore each of these advanced objects in detail.
1. Trend Log Objects: Building Memory
Trend Log objects are like a building’s memory—they record historical data over time, enabling analysis and optimization.
What Are Trend Log Objects?
Trend Log objects automatically collect and store values from other BACnet objects (temperature sensors, energy meters, etc.). They’re like a data logger built into the BACnet protocol.
Key Properties
| Property | Purpose | Example Value |
|————–|————-|——————-|
| Object Identifier | Unique ID for the trend log | `trend-log:1` |
| Object Name | Human-readable name | `Office Temperature Trend` |
| Log Device | Which device to log from | `temp-sensor:1` |
| Log Property | Which property to log | `Present Value` |
| Log Interval | How often to log data | 300 seconds (5 minutes) |
| Buffer Size | Maximum number of log entries | 10,000 entries |
| Start Time | When to start logging | `2026-01-01T00:00:00` |
| Log Enable | Whether logging is active | `True` |
| Status Flags | Current logging status | `Normal` |
Configuration Example: Office Temperature Trend Log
Let’s configure a Trend Log to track office temperature in a commercial building:
1. Create the Trend Log Object:
– Object Name: `Main Office Temp Trend`
– Object Type: `Trend Log`
– Object Identifier: `trend-log:5`
2. Set Logging Parameters:
– Log Device: `analog-input:10` (temperature sensor)
– Log Property: `Present Value` (temperature reading)
– Log Interval: 300 seconds (5 minutes)
– Buffer Size: 10,000 entries (stores ~28 days of data at 5-minute intervals)
– Log Enable: `True`
3. Configure Logging Behavior:
– Stop When Full: `False` (wrap around when buffer is full)
– Start Time: `Immediately`
Practical Use Cases for Trend Logs
- Fault Detection: Identify failed sensors or stuck dampers
2. Schedule Objects: Time-Based Control
Schedule objects are the “scheduler” of a building—they automate when devices turn on/off, adjust setpoints, and change modes based on time.
What Are Schedule Objects?
Schedule objects define time-based commands for other BACnet objects. They can control heating setpoints, lighting levels, ventilation rates, and more—all based on time of day, day of week, and special dates.
Key Properties
| Property | Purpose | Example Value |
|————–|————-|——————-|
| Object Identifier | Unique ID | `schedule:2` |
| Object Name | Human-readable name | `Office HVAC Schedule` |
| Present Value | Current schedule command | `Setpoint 72°F` |
| Schedule Default | What to do when no schedule is active | `Setpoint 68°F` |
| Weekly Schedule | Daily time/value pairs | `Monday 08:00: 72°F, Monday 18:00: 68°F` |
| Calendar Reference | Link to a Calendar object for holidays | `calendar:1` |
| Priority | Control priority (1-16, lower = higher priority) | 12 |
Configuration Example: Office HVAC Schedule
Let’s create a schedule for a typical office building HVAC system:
1. Create the Schedule Object:
– Object Name: `Main Office HVAC Schedule`
– Object Type: `Schedule`
– Object Identifier: `schedule:3`
2. Set Basic Properties:
– Priority: 12 (standard schedule priority)
– Schedule Default: `68°F` (night setback temperature)
– Calendar Reference: `calendar:1` (link to holiday calendar)
3. Configure Weekly Schedule:
– Monday-Friday:
– 08:00 AM: `72°F` (occupied temperature)
– 06:00 PM: `68°F` (night setback)
– Saturday-Sunday:
– All day: `68°F` (unoccupied)
4. Set Special Events:
– Link to a Calendar object for holidays
– Configure holiday schedule: `68°F` all day
Practical Use Cases for Schedules
- Mode Changes: Switch between summer/winter modes automatically
3. Calendar Objects: Handling Special Dates
Calendar objects are the “calendar” of a building—they define holidays, maintenance days, and other special dates when normal schedules don’t apply.
What Are Calendar Objects?
Calendar objects work with Schedule objects to handle special dates. They define:
- Exception Schedules: Custom schedules for special dates
Key Properties
| Property | Purpose | Example Value |
|————–|————-|——————-|
| Object Identifier | Unique ID | `calendar:1` |
| Object Name | Human-readable name | `Building Holiday Calendar` |
| Date List | List of special dates | `2026-01-01, 2026-12-25` |
| Exception Schedule | Link to a special schedule for holidays | `schedule:4` |
| Description | Purpose of the calendar | `Company holiday schedule` |
Configuration Example: Building Holiday Calendar
Let’s configure a Calendar object for a commercial building:
1. Create the Calendar Object:
– Object Name: `Company Holiday Calendar`
– Object Type: `Calendar`
– Object Identifier: `calendar:1`
2. Define Standard Holidays:
– Fixed Dates:
– `2026-01-01`: New Year’s Day
– `2026-12-25`: Christmas Day
– `2026-12-26`: Boxing Day
3. Add Floating Holidays:
– Thanksgiving: `2026-11-26` (fourth Thursday in November)
– Labor Day: `2026-09-01` (first Monday in September)
4. Configure Exception Schedule:
– Link to Schedule: `schedule:4` (Holiday HVAC Schedule)
– Holiday Schedule: `68°F` all day for all zones
Practical Use Cases for Calendar Objects
- Floating Holidays: Accommodate changing holiday dates
Combining Objects for Maximum Energy Savings
The real power of BACnet’s advanced objects comes when they work together. Let’s see how Trend Logs, Schedules, and Calendar objects combine to create an intelligent, energy-efficient building.
Case Study: Commercial Office Building Energy Optimization
Let’s look at a practical example of these objects working together in a 50,000 square foot commercial office building.
#### The Challenge
The building was using 30% more energy than similar buildings, with complaints about inconsistent temperatures and inefficient operation.
#### The Solution: Advanced BACnet Object Strategy
1. Install Trend Logs for Data Collection:
– 50+ Trend Logs monitoring temperature, humidity, energy usage, and equipment runtimes
– Log interval: 5 minutes for critical systems, 15 minutes for non-critical
– Buffer size: 10,000 entries per log
2. Create Smart Schedules:
– HVAC Schedule: Occupied (72°F) 8 AM-6 PM weekdays, unoccupied (68°F) nights/weekends
– Lighting Schedule: On 7:30 AM-6:30 PM weekdays, off nights/weekends
– Ventilation Schedule: Increased during occupied hours, reduced at night
3. Implement a Comprehensive Calendar:
– 12 company holidays with custom schedules
– Seasonal adjustments for daylight saving time
– Maintenance days for equipment servicing
4. Use Data to Optimize:
– Analyzed Trend Log data to identify unused office space
– Adjusted schedules to reduce heating/cooling in underused areas
– Identified equipment runtime inefficiencies
– Optimized start/stop times based on actual building heating/cooling needs
#### Results
- Compliance: Achieved ENERGY STAR certification
How It Works Together
1. Monday Morning (Normal Day):
– 7:00 AM: HVAC Schedule activates, raising setpoint to 72°F
– 7:30 AM: Lighting Schedule turns lights on in occupied areas
– 8:00 AM: Ventilation Schedule increases outside air intake
– Trend Logs: Begin logging increased energy usage, temperature changes
2. Christmas Day (Holiday):
– Calendar Object: Identifies today as a holiday
– Schedule Object: Switches to holiday schedule (68°F all day)
– Trend Logs: Record low energy usage, confirming the building is unoccupied
3. Analyzing Performance:
– Trend Logs: Collect 30 days of HVAC runtime data
– Building Manager: Analyzes data, finds HVAC starting 30 minutes earlier than needed
– Schedule Object: Adjusts start time from 7:00 AM to 7:30 AM
– Result: Saves 15 minutes of HVAC runtime per day, 75 minutes per week
Best Practices for Advanced BACnet Objects
1. Start Small: Begin with key systems before expanding to the entire building
2. Use Descriptive Names: Name objects clearly (e.g., `3rd_Floor_North_HVAC_Schedule`)
3. Document Everything: Keep records of object configurations, schedules, and trends
4. Regularly Review Data: Analyze Trend Logs monthly to identify optimization opportunities
5. Test Changes: Implement schedule changes gradually and monitor results
6. Prioritize Smartly: Set appropriate priorities for schedules to ensure critical systems override normal operation in emergencies
7. Plan for Scalability: Design object structures that can grow with the building
8. Train Staff: Ensure building operators understand how to use and modify these objects
The Future of Building Intelligence
BACnet’s advanced objects are just the beginning. The future of building intelligence includes:
- Digital Twins: Virtual building models that use real Trend Log data to simulate and optimize performance
Conclusion: Building Intelligence That Pays Off
Advanced BACnet objects—Trend Logs, Schedules, and Calendar objects—are the building blocks of intelligent, energy-efficient buildings. They enable buildings to learn from the past, adapt to the present, and prepare for the future.
By implementing these objects, you can:
- Lower operating costs year after year
The case study demonstrates that when these objects work together, they create a synergistic system that’s greater than the sum of its parts. Trend Logs provide the data, Schedules automate the control, and Calendar objects handle the exceptions—all working together to create buildings that are smart, efficient, and responsive.
So, the next time you’re planning a building automation system, don’t stop at basic objects. Embrace BACnet’s advanced objects and program your building to be truly intelligent. Your energy bills, occupants, and equipment will thank you.