Revision: r1 Source: CLAUDE.md, trixy_core/config/datasets/ Last updated: 2026-01-31 12:35
@dataclass
class ServerConfig:
network: NetworkConfig
security: SecurityConfig
audio: AudioConfig
wakeword: WakewordConfig
voice_recognition: VoiceRecognitionConfig
conversation: ConversationConfig
plugins: PluginConfig
logging: LoggingConfig
satellites_directory: str = "satellites"
assets_directory: str = "assets"
models_directory: str = "models"
profile: str = "default"
@dataclass
class NetworkConfig:
command_port: int = 2101
audio_input_port: int = 2102
audio_output_port: int = 2103
music_port: int = 2104
bind_address: str = "0.0.0.0"
max_connections: int = 100
@dataclass
class ClientConfig:
server: ServerConnectionConfig
audio: ClientAudioConfig
wakeword: ClientWakewordConfig
identity: SatelliteIdentityConfig
logging: ClientLoggingConfig
assets_directory: str = "assets"
profile: str = "default"
@dataclass
class TrainerConfig:
wakeword: WakewordTrainerConfig
voice_recognition: VoiceRecognitionTrainerConfig
audio_processing: AudioProcessingConfig
data: DataConfig
output: OutputConfig
device: str = "auto" # auto, cpu, cuda, mps
num_workers: int = 4
seed: int = 42
@dataclass
class EventData:
event_id: str # UUID
timestamp: datetime # Erstellungszeitpunkt
source: str # Quelle (z.B. Service-Name)
cancelled: bool # Abbruch-Status
metadata: dict[str, Any]
def cancel() -> None
def is_cancelled() -> bool
@classmethod
def event_name() -> str # Klassenname in snake_case
| Klasse | Felder |
|---|---|
| WakewordReceived | satellite_id, wakeword_model, confidence, audio_level |
| SpeechRecognized | satellite_id, text, confidence, language, alternatives |
| IntentReceived | satellite_id, intent, confidence, slots, original_text |
| RawAudioInputReceived | satellite_id, audio_data, sample_rate, duration_seconds |
@dataclass
class CommandMessage:
message_id: str # UUID
timestamp: datetime
def to_dict() -> dict[str, Any]
@classmethod
def from_dict(data: dict) -> CommandMessage
| Klasse | Felder | Richtung |
|---|---|---|
| SatelliteConnect | mac_address, room, alias, ip_address, version | Client → Server |
| SatelliteAccepted | satellite_id, session_key, ports... | Server → Client |
| SatelliteDenied | reason, retry_allowed, retry_after_seconds | Server → Client |
| Klasse | Felder |
|---|---|
| WakewordDetected | satellite_id, wakeword_model, confidence, audio_level |
| WakewordSelected | conversation_id, start_streaming |
| WakewordAbort | reason, resume_detection |
class Satellite:
id: str
room_id: str
mac_address: str
alias: str
ip_address: str
state: ConnectionState # DISCONNECTED, CONNECTING, CONNECTED, AUTHENTICATED
conversation_id: str | None
connected_at: datetime | None
last_heartbeat: datetime | None
version: str
Registrierung (JSON-Datei):
{
"id": "sat-uuid",
"room_id": "wohnzimmer",
"mac_address": "AA:BB:CC:DD:EE:FF",
"alias": "Echo 1",
"registered_at": "2026-01-31T12:00:00"
}
See also: apis.md, integrations.md