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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions