Introducing a New Add-on Feature using the SwitchBot API for MQTT Integration

Hey there!

I’m excited to share that we’ve developed and released a brand-new add-on using the SwitchBot API specifically tailored for MQTT integration.

One of the standout features is its comprehensive support for virtual infrared remote devices. Plus, it’s capable of receiving and processing Webhooks, which is quite a game-changer.

What’s more, the core of this add-on is built using C# .NET 6, and you’ll be amazed to know that the user interface is powered by Blazor Server, bringing a unique touch to the Ingress screen.

I understand that some folks might have security concerns, but we’ve taken a novel approach by incorporating Ngrok internally to enable Webhook reception without the need to open ports externally. It’s something you probably haven’t seen before.

Lastly, since it’s running on the .NET , it does have a slightly higher memory consumption (around 300MB on the amd64 architecture).

I invite you to check out the repository and would absolutely love to hear your feedback. Pull requests are more than welcome too!

4 Likes

Thank you, this works like a charm!!

Looks like a great add-on. Just getting started with it and when I try to pull in my devices, the list remains blank. The logs show a success/100 message back, and I can see all of my devices in the array, but then it appears to hit an error:

10:11:00 fail: SwitchBotMqttApp.Logics.DeviceConfigurationManager[0] LoadDevicesAsync error. System.InvalidOperationException: Sequence contains no matching element    at System.Linq.ThrowHelper.ThrowNoMatchException()    at System.Linq.Enumerable.First[TSource](IEnumerable`1 source, Func`2 predicate)    at SwitchBotMqttApp.Logics.DeviceConfigurationManager.<>c__DisplayClass9_0.<LoadDevicesAsync>b__0(Devicelist d) in C:\github\hsakoh\switchbot-mqtt\src\SwitchBotMqttApp\Logics\DeviceConfigurationManager.cs:line 86    at System.Linq.Enumerable.SelectArrayIterator`2.ToList()    at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)    at SwitchBotMqttApp.Logics.DeviceConfigurationManager.LoadDevicesAsync(DevicesConfig currentData, CancellationToken cancellationToken)

Any assistance would be appreciated. Thanks.