Skip to content

Is this working on Windows ? #4

@ststeiger

Description

@ststeiger

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions