-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Is this working on Windows ?
Can't it connect using the IP directly ? (i can take it from the app and fix it on the router)
On Windows 11, all I get is
Tmds.DBus.ConnectException: "No path specified for UNIX transport"
Diese Ausnahme wurde ursprünglich von dieser Aufrufliste ausgelöst:
Tmds.DBus.AddressEntry.ResolveAsync(bool)
Tmds.DBus.Transports.TransportSocket.ConnectUnixAsync(Tmds.DBus.AddressEntry, System.Threading.CancellationToken, bool)
Tmds.DBus.Transports.Transport.ConnectAsync(Tmds.DBus.AddressEntry, Tmds.DBus.ClientSetupResult, System.Threading.CancellationToken)
Tmds.DBus.DBusConnection.ConnectAsync(Tmds.DBus.ClientSetupResult, bool, System.Action<System.Exception>, System.Threading.CancellationToken)
Tmds.DBus.Connection.DoConnectAsync()
And if I run ExampleConsole, i get an empty output.
And on Linux, all I get is PlatformNotSupported (InTheHand.Bluetooth.Bluetooth.PlatformRequestLEScan)
This is my program
namespace TestMatter
{
internal class Program
{
static async System.Threading.Tasks.Task Main(string[] args)
{
string qr = @"MT:TOP_SECRET";
string essid = "MyWlanName";
string wifi_password = @"TOP_SECRET";
try
{
await TryConnectNetwork(qr, essid);
}
catch (System.Exception ex)
{
System.Console.Error.WriteLine(ex.ToString());
}
try
{
await TryConnect(qr, essid, wifi_password);
}
catch (System.Exception ex)
{
System.Console.Error.WriteLine(ex.ToString());
}
try
{
await TryConnectBT(qr);
}
catch (System.Exception ex)
{
System.Console.Error.WriteLine(ex.ToString());
}
System.Console.WriteLine(" --- Press any key to continue --- ");
System.Console.ReadKey();
} // End Task Main
static async System.Threading.Tasks.Task
TryConnect(string qr, string essid, string wifi_password)
{
// Option 1
MatterDotNet.Entities.Controller controller =
new MatterDotNet.Entities.Controller(
"Example Matter Fabric"
);
// Option 2
MatterDotNet.OperationalDiscovery.CommissioningPayload
payload = MatterDotNet.OperationalDiscovery
.CommissioningPayload.FromQR(qr);
MatterDotNet.Entities.CommissioningState state =
await controller.StartCommissioning(payload);
MatterDotNet.Clusters.CHIP.NetworkCommissioning
.WiFiInterfaceScanResult network =
state.FindWiFi(essid)!;
await controller.CompleteCommissioning(state, network, wifi_password);
controller.Save("example.fabric", "example.key");
} // End Task TryConnect
static async System.Threading.Tasks.Task
TryConnectNetwork(string qr, string essid)
{
// Option 1
MatterDotNet.Entities.Controller controller =
new MatterDotNet.Entities.Controller(
"Example Matter Fabric"
);
// Option 2
MatterDotNet.OperationalDiscovery.CommissioningPayload
payload = MatterDotNet.OperationalDiscovery
.CommissioningPayload.FromQR(qr);
#if false
// Instantiate mDNS discovery
var mdns = new MatterDotNet.OperationalDiscovery.IPDiscoveryService();
// Discover IP provisioning targets
var device = await mdns.Find(payload);
if (device == null)
return; // dang, it's NULL
// Example properties you might receive:
System.Net.IPAddress? ip = device.IP4Address; // IP address and port
int port = (int) device.Port; // including Discriminator, etc.
// Build endpoint
System.Net.IPEndPoint ipEndpoint =
new System.Net.IPEndPoint(ip, port);
#endif
// Commission over IP
MatterDotNet.Entities.CommissioningState state =
await controller.StartCommissioning(
payload, essid
);
await controller.CompleteCommissioning(state);
controller.Save("example.fabric", "example.key");
} // End Task TryConnectNetwork
static async System.Threading.Tasks.Task
TryConnectBT(string qr)
{
// Option 1
MatterDotNet.Entities.Controller controller =
new MatterDotNet.Entities.Controller(
"Example Matter Fabric"
);
// Option 2
MatterDotNet.OperationalDiscovery.CommissioningPayload
payload = MatterDotNet.OperationalDiscovery
.CommissioningPayload.FromQR(qr);
MatterDotNet.Entities.CommissioningState state =
await controller.StartCommissioning(payload);
await controller.CompleteCommissioning(state);
controller.Save("example.fabric", "example.key");
} // End Task TryConnectBT
} // End Class Program
} // End Namespace
Metadata
Metadata
Assignees
Labels
No labels