Barkly Environmental Control
Functional Requirements Document
Project: Barkly Environmental Control (BEC) Interface: CYN-X Environmental Interface Status: Draft Version: 0.1 Organization: Barkly Labs
01 — Purpose
Barkly Environmental Control (BEC) is a human-centered environmental control system that allows people to control building environments using natural interaction rather than requiring them to manually operate individual devices.
BEC provides a software abstraction layer between CYN-X and physical environmental systems such as network speakers, lighting, displays, notifications, and other connected devices.
The system shall allow a person to express an environmental need such as:
“CYN, that's too loud.”
and have the environment adapt accordingly.
The system shall prioritize human control, accessibility, predictability, and local operation.
02 — Human Need
Traditional building-control systems require humans to understand the structure of the technology before they can change their environment.
BEC reverses this relationship.
Instead of:
Human → Learn device → Find control → Change setting
BEC shall support:
Human → Express need → System interprets need → Environment adapts
The system exists to reduce cognitive load and make physical environments responsive to their occupants.
03 — Scope
BEC shall provide an abstraction layer for:
Audio
Speaker volume
Music playback
Room/zone control
Environmental scenes
Announcements
Notifications
Lighting integrations
Future building-control hardware
The first hardware integration may use ZYCOO network audio equipment.
BEC shall not make CYN-X dependent on a specific hardware manufacturer.
04 — System Architecture
The system shall use the following conceptual architecture:
Human
↓
CYN-X
↓
Barkly Environmental Control API
↓
Hardware Adapter
↓
Physical Environment
Example:
Human → CYN-X → BEC → ZYCOO Adapter → Network Speakers
The BEC API shall provide a stable Barkly-defined interface regardless of the hardware vendor underneath it.
05 — Functional Requirements
FR-001 — Human Environmental Command
The system shall accept natural-language environmental commands from an authorized human.
Examples:
“CYN, that's too loud.”
“CYN, turn the music down.”
“CYN, quiet please.”
“CYN, workshop mode.”
“CYN, study mode.”
“CYN, turn everything off.”
FR-002 — Intent Detection
CYN-X shall interpret environmental commands into structured intents.
Example:
Human:
"CYN, that's too loud."
Intent:
REDUCE_AUDIO_STIMULATION
The intent shall be converted into one or more BEC operations.
FR-003 — Zone Identification
BEC shall support independently controllable environmental zones.
Example zones:
Entrance
Study
Workshop
Computer Lab
Documentation Room
Community Room
Kitchen
Outdoor
A command affecting one zone shall not modify unrelated zones unless explicitly requested.
FR-004 — Volume Control
BEC shall provide an abstract volume-control operation.
Example:
set_zone_volume("study", 25)
The underlying hardware implementation shall be handled by the appropriate hardware adapter.
FR-005 — Zone Muting
BEC shall support muting individual environmental zones.
Example:
mute_zone("workshop")
Muting one zone shall not automatically mute other zones.
FR-006 — Audio Playback
BEC shall support requesting playback of an approved audio source or scene.
Example:
play_scene("study")
The implementation shall determine the appropriate physical playback devices.
FR-007 — Environmental Scenes
BEC shall support predefined environmental scenes.
Initial scenes shall include:
Study Mode
Audio:
Low-volume lo-fi
Lighting:
Calm
Notifications:
Reduced
Announcements:
Quiet
Other zones:
Unchanged
Workshop Mode
Audio:
Workshop playlist
Lighting:
Work lighting
Notifications:
Normal
Announcements:
Normal
Community Mode
Audio:
Community playlist
Lighting:
Community/event lighting
Notifications:
Normal
Announcements:
Enabled
Quiet Mode
Audio:
Muted or minimal
Lighting:
Reduced stimulation
Notifications:
Reduced
Announcements:
Suppressed where appropriate
FR-008 — Natural-Language Scene Activation
CYN-X shall be capable of activating scenes through natural language.
Example:
Human:
"CYN, I'm studying."
CYN-X:
Detected intent: STUDY_MODE
BEC:
activate_scene("study")
FR-009 — Environmental Adaptation
The system shall be capable of modifying multiple environmental systems in response to a single human request.
Example:
Human:
"CYN, I'm overwhelmed."
Possible response:
Audio → Reduce
Lighting → Reduce stimulation
Notifications → Suppress
Announcements → Quiet
Displays → Simplify
The system shall not modify unrelated environmental systems without an applicable rule.
FR-010 — Human Override
A human shall always be able to override an automated environmental decision.
Example:
CYN:
"Study Mode activated."
Human:
"No, keep the lights on."
System:
Restore/retain requested lighting state.
Automated behavior shall never permanently prevent manual control.
FR-011 — Explicit Confirmation
BEC shall request confirmation before executing potentially disruptive or high-impact actions when configured to do so.
Examples:
Whole-building shutdown
Emergency broadcast interruption
Changing another person's protected environment
Disabling safety-related systems
FR-012 — Device Abstraction
BEC shall not expose vendor-specific commands to CYN-X's primary intent system.
CYN-X shall interact with Barkly-defined operations such as:
set_zone_volume()
mute_zone()
unmute_zone()
play_scene()
activate_scene()
get_zone_status()
Hardware-specific translation shall occur inside adapters.
FR-013 — Hardware Adapter
BEC shall support hardware adapters.
Example:
BEC
├── ZYCOO Adapter
├── Lighting Adapter
├── Display Adapter
└── Future Adapter
Replacing a hardware vendor shall not require redesigning the CYN-X intent system.
FR-014 — Device Status
BEC shall provide device and zone status information where supported by the connected hardware.
Example:
Study
Volume: 25%
Playback: Lo-fi
Status: Online
FR-015 — Failure Reporting
If a requested environmental change cannot be completed, BEC shall report the failure.
Example:
Human:
"CYN, turn the workshop speakers down."
System:
"I couldn't reach the workshop speaker controller."
The system shall not falsely report successful execution.
FR-016 — Partial Failure
If only part of an environmental operation succeeds, BEC shall report which operations succeeded and which failed.
Example:
Study Mode:
Audio: ✓
Lighting: ✓
Notifications: ✓
Speaker 2: ✗ unreachable
FR-017 — Local Operation
Where technically possible, environmental control shall continue operating locally without requiring an external cloud service.
Local operation should be preferred for:
Basic control
Device discovery
Scene activation
Status monitoring
Safety functions
FR-018 — Access Control
BEC shall distinguish between authorized and unauthorized users or devices.
Environmental controls shall not be exposed as unrestricted network commands.
FR-019 — Audit Logging
BEC shall optionally record environmental control events.
Example:
2026-09-28 19:42
User request:
"CYN, that's too loud."
Intent:
REDUCE_AUDIO_STIMULATION
Action:
Study volume 40% → 25%
Result:
SUCCESS
Logs shall avoid storing unnecessary personal information.
FR-020 — Accessibility
BEC shall support multiple interaction methods where available:
Voice
Text
Physical controls
Web interface
Mobile interface
Automatic scenes
No single interaction method shall be required for basic environmental control.
06 — Safety Requirements
FR-021 — Safety System Isolation
BEC shall not disable or override systems that are designated as safety-critical unless explicitly authorized by the safety architecture.
Examples:
Fire alarms
Emergency notifications
Required evacuation systems
Life-safety equipment
FR-022 — Emergency Priority
Emergency communication shall have higher priority than ordinary environmental scenes.
Example:
Study Mode
↓
Emergency Broadcast
↓
Emergency message takes priority
FR-023 — Fail-Safe Behavior
Loss of BEC, CYN-X, network connectivity, or an adapter shall not create an unsafe physical environment.
07 — Privacy Requirements
FR-024 — Data Minimization
BEC shall collect only information required to operate the environmental system.
FR-025 — Local Processing
Where practical, environmental commands shall be processed locally.
FR-026 — Human Visibility
The system shall provide a human-readable indication of significant automated environmental changes.
08 — Configuration
BEC shall support configuration of:
Zones
Devices
Device adapters
Maximum/minimum volume
Default scenes
Scene permissions
Quiet hours
Accessibility preferences
Emergency priority
Logging settings
09 — API Requirements
BEC shall expose a stable internal API.
Example:
set_zone_volume(zone, volume)
mute_zone(zone)
unmute_zone(zone)
play_scene(scene)
activate_scene(scene)
get_zone_status(zone)
get_device_status(device)
The API shall remain independent of the underlying hardware vendor.
10 — Example Interaction
Scenario: Speaker Too Loud
Human:
"CYN, that's too loud."
CYN-X:
Intent:
REDUCE_AUDIO_STIMULATION
BEC:
Current zone:
Study
Current volume:
40%
Requested adaptation:
Reduce stimulation
BEC:
set_zone_volume("study", 25)
Hardware adapter:
ZYCOO → Volume 25%
CYN-X:
"Okay. I turned the study speakers down."
11 — Regression Testing
BEC shall maintain automated tests for:
Intent recognition
Zone selection
Volume limits
Scene activation
Human overrides
Hardware failures
Network failures
Partial failures
Access control
Emergency priority
API compatibility
Example regression:
Input:
"CYN, that's too loud."
Expected intent:
REDUCE_AUDIO_STIMULATION
Expected action:
Reduce active zone audio
Expected result:
Audio volume decreases
12 — Acceptance Criteria
BEC shall be considered functionally complete for the initial release when:
A human can issue a natural-language environmental request.
CYN-X can translate that request into a structured intent.
BEC can translate the intent into hardware-independent operations.
A hardware adapter can execute those operations.
The system reports success or failure accurately.
A human can override automated behavior.
Individual zones can be controlled independently.
At least one environmental scene can be activated.
Safety-critical systems remain protected.
Core functionality continues to work locally where supported.
Automated regression tests exist for the core control paths.
The system can operate without CYN-X being directly coupled to a specific hardware vendor.
13 — Design Principle
BEC follows the Barkly Labs system pattern:
Human → Need → System → Adaptation → Feedback → Improvement
The building is treated as an interface.
The human should not need to understand the underlying technology in order to communicate what they need from their environment.
Technology should adapt to humans.