Skip to main content

flutter_freedome_connectivity 1.2.0 copy "flutter_freedome_connectivity: ^1.2.0" to clipboard
flutter_freedome_connectivity: ^1.2.0 copied to clipboard

FreeDome connectivity for Flutter: discovery of FreeDome dome systems on the local network, Socket.IO / WebSocket / HTTP connections, events and commands.

flutter_freedome_connectivity #

1.2.0+ is a facade over freedome_client. New code should use the client directly — see doc/migration-to-freedome_client.md.

FreeDome connectivity and discovery library for Flutter applications.

Features #

  • Automatic discovery of FreeDome systems on local network
  • Connection management with multiple protocols (Socket.IO, WebSocket, HTTP)
  • Real-time event streaming
  • Heartbeat monitoring and auto-reconnection
  • Network scanning with configurable settings
  • Connection status tracking

Installation #

Add this to your package's pubspec.yaml file:

dependencies:
  flutter_freedome_connectivity: ^1.0.0

Usage #

Connection Service #

import 'package:flutter_freedome_connectivity/flutter_freedome_connectivity.dart';

final connectionService = FreeDomeConnectionService();

// Initialize the service
await connectionService.initialize();

// Start discovering systems
await connectionService.startDiscovery();

// Connect to a discovered system
final systems = connectionService.discoveredSystems;
if (systems.isNotEmpty) {
  final success = await connectionService.connectToDome(systems.first);
  if (success) {
    print('Connected to: ${connectionService.activeDome?.name}');
  }
}

// Listen to events
connectionService.eventStream.listen((event) {
  print('Event: ${event.type} - ${event.data}');
});

Discovery Service #

final discoveryService = FreeDomeDiscoveryService();

// Start discovery
await discoveryService.startDiscovery();

// Listen to discovered systems
discoveryService.systemsStream.listen((systems) {
  for (final system in systems) {
    print('Found system: ${system.name} at ${system.ipAddress}:${system.port}');
  }
});

// Check if system is available
final isAvailable = await discoveryService.isSystemAvailable(system);

Sending Commands #

// Send command to connected system
final response = await connectionService.sendCommand(
  FreeDomeCommand(
    type: 'play_video',
    data: {'video_id': '123', 'quality': 'hd'},
    targetSystemId: connectionService.activeDome?.id,
    timestamp: DateTime.now(),
  ),
);

if (response.success) {
  print('Command sent successfully');
} else {
  print('Command failed: ${response.error}');
}

API Reference #

Models #

  • DomeSystem - Represents a FreeDome system
  • FreeDomeConnectionStatus - Connection status information
  • FreeDomeEvent - Real-time events from systems
  • FreeDomeCommand - Commands to send to systems
  • FreeDomeResponse - Responses from systems
  • DiscoverySettings - Configuration for network discovery

Services #

  • FreeDomeConnectionService - Main connection management
  • FreeDomeDiscoveryService - Network discovery service

Enums #

  • DomeSystemStatus - System status (offline, online, maintenance, error)

License #

NativeMindNONC — see the LICENSE file.

Commercial use → NativeMind sales (https://nativemind.net)

0
likes
150
points
67
downloads

Documentation

API reference

Publisher

verified publisherfreedome.nativemind.net

Weekly Downloads

FreeDome connectivity for Flutter: discovery of FreeDome dome systems on the local network, Socket.IO / WebSocket / HTTP connections, events and commands.

Homepage
Repository (GitLab)

License

unknown (license)

Dependencies

flutter, flutter_localizations, freedome_client, freedome_protocol, http, intl, json_annotation, socket_io_client

More

Packages that depend on flutter_freedome_connectivity