Scott Hanselman

Fix for Elgato Key Light not found by Control Center

February 23, 2021 Comment on this post [6] Posted in Bugs
Sponsored By

Elgato Control CenterSometimes blogging means lots of long form essays that take weeks to write and drop lots of wisdom.

However, many times blogging is just keeping track of a fix for a nagging problem. There may just be 5 or 6 of us with this issue, but if you're that person, this blog post is for you! Welcome to the solving of the issue you just googled for.

I recently bought an Elgato Key Light, and when I purchased it I did not realize that it did not have any external controls. You can only control the light with Wi-Fi and remotely. Personally I think that's a product flaw, this means I'm always going to have to be dependent on their software, and I can't just turn the thing to another level or color with a button.

The biggest issue with this light - and other picky IoT devices - is that it doesn't like my network. It happens to be the one and only device on my Ubiquiti network that doesn't seem to want to get along with the others in the house. It uses multicast DNS in the form of Apple's weirdo Bonjour service to broadcast itself, and it's notoriously hard to get the Elgato Control Center software to find the light. I know it's on the network, I can see its IP.

There's lots of blog posts with folks trying to solve this issue, and if you found your way to this blog post I figure that you've already done the obvious things like opening the firewall, turning on multicast DNS at the router level, and now you're just sick of it.

Here's my brute force solution that made my Key Light show up in Control Center.

First, I'm assuming a few things:

  • That you got the Elgato Key Light on to your network and you can find its IP Address.
  • That you installed the Elgato Control Center software on your PC

I put my Settings.xml file in this gist but the salient points are the SerialNumber and the IpAddress. You'll find the Serial Number on a sticker on the back of the light. You'll find the IP address in your router's IP table.

My Elgato Key Light's IP Address

Go to this folder on your PC

C:\Users\YOURNAME\AppData\Roaming\Elgato\ControlCenter

Make a copy of the settings.xml in that folder so you don't blame me with this whole affair goes horribly wrong.

This is not the complete settings.xml, again that's in the gist, but this was the missing piece for me.

<Accessories>
<Accessory>
<Name>Elgato Key Light Air E424</Name>
<UserDefinedName />
<UniqueID>Elgato Key Light Air E424 (3C:6A:9D:15:5E:B6)</UniqueID>
<IsHidden>false</IsHidden>
<HostName>elgato-key-light-air-e424</HostName>
<IpAddress>192.168.1.44</IpAddress>
<DNSSuffix>localdomain</DNSSuffix>
<ServiceType>_elg._tcp</ServiceType>
<Manufacturer>Elgato</Manufacturer>
<Model>Elgato Key Light Air 20LAB9901</Model>
<DeviceType>200</DeviceType>
<LightStripIsTemperatureColorSelected>false</LightStripIsTemperatureColorSelected>
<DeviceSettingsLightStripIsTemperatureColorDefault>false</DeviceSettingsLightStripIsTemperatureColorDefault>
<SerialNumber>CW39J1A17111</SerialNumber>
</Accessory>
</Accessories>

Change the Elgato Settings.xml to include YOUR light's serial number and IP address. Start Control Center.

Elgato Control Center

 

BTW, I also found this lovely blog post from Trevor Sullivan where he shows the Elgato Key Light internal API (on /elgato/lights) and a PowerShell Module that lets you change the Elgato Key light with script.

To be clear, this doesn't excuse not having buttons, but it's a start. Hope this helps both of you with this problem I had!


Sponsor: The No. 1 reason developers choose Couchbase? You can use your existing SQL++ skills to easily query and access JSON. That’s more power and flexibility with less training. Learn more.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service

Free Windows 10 development virtual machines for HyperV, Parallels, VirtualBox, and VMWare

February 18, 2021 Comment on this post [9] Posted in Win10
Sponsored By

You probably know that you can download free developer tools for Windows 10 up at the Windows Dev Center here.

Visual Studio Community IS effectively the Pro SKU and is free for Open Source. You may even have a "Take Home" license at your work since the paid version of VS is licensed per-user, not per-machine, so ask your boss if you can install it at home and get the same pro tools you use at work.

BUT, did you know (I did not!) that you can download a free time-boxed Windows 10 Development environment for your Mac, Windows, or Linux machine as a virtual machine?

That means, there's a pre-configured VM for VMWare or Hyper-V or VirtualBox or Parallels up at https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/ right now. This has been super useful when I wanted to get a build running fast on a system to test something or get started TODAY.

This evaluation virtual machine includes:

  • Windows 10, version 2004 (10.0.19041.0)
  • Windows 10 SDK, version 2004 (10.0.19041.0)
  • Visual Studio 2019 with the UWP, .NET desktop, and Azure workflows enabled and also includes the Windows Template Studio extension
  • Visual Studio Code
  • Windows Subsystem for Linux enabled with Ubuntu installed
  • Developer mode enabled

These are for eval or quick testing and expire regularly, so check back to get another if you need to. (BTW there are also free VMs for testing IE11 or Edge Legacy but we don't talk about those.)

Free Windows 10 VMs

Again, VS Code is free for Windows, Mac, and Linux, and VS itself is free for Windows and Mac so you may not need these VMs, but knowing there are Windows developer VMs available free for eval is a super useful way to bootstrap development on any machine. Enjoy!


Sponsor: Have what it takes to code securely? Select from dozens of complimentary interactive secure coding labs, test your skills, and earn a badge. Learn more!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service

Free eBook: How to use Dapr for .NET Developers

February 16, 2021 Comment on this post [1] Posted in DotNetCore | Open Source
Sponsored By

According to the Dapr open source website:

"Dapr helps developers build event-driven, resilient distributed applications. Whether on-premises, in the cloud, or on an edge device, Dapr helps you tackle the challenges that come with building microservices and keeps your code platform agnostic."

Dapr free eBookI've had Mark Russinovich on my podcast recently to talk about Dapr which is now at version 1.0. Dapr is platform agnostic, and you can use Dapr with your language of choice by leveraging an SDK or making simple HTTP or gRPC calls. Dapr is language agnostic and can run on any hosting environment including local development machines, Kubernetes, and public clouds such as AWS, Azure and GCP. The Dapr sidecar container collects traces so your application is instrumented with no additional code.

Since a lot of folks who read my blog use .NET, I wanted to let you know there's a free eBook on how to use Dapr with .NET available now.
You can download the free eBook "Dapr for .NET Developers" here now! It's available as a PDF and it's being actively improved so can offer feedback to the authors directly via GitHub issue.

Congrats to Rob Vetter, Sander Molenkamp, and Edwin van Wijk and for their hard work on this book!

This free book covers common needs for complex cloud apps and how to make it happen with Dapr and .NET, including:

  • State management
  • Service invocation
  • Pub/sub
  • Bindings
  • Observability
  • Secrets
  • Dapr .NET SDK
  • and more.

Dapr enables developers using any language or framework to easily write microservices. It addresses many of the challenges found that come along with distributed applications, such as:

  • How can distributed services discover each other and communicate synchronously?
  • How can they implement asynchronous messaging?
  • How can they maintain contextual information across a transaction?
  • How can they become resilient to failure?
  • How can they scale to meet fluctuating demand?
  • How are they monitored and observed?

There's also a project at the dotnet-architecture GitHub that includes a complete sample app (go give them a GitHub star, please, for their hard work!) that takes the eShopOnContainers project and instruments it with Dapr!

Dapr Architecture for eShop

eShopOnDapr runs in containers and requires Docker to run. There are various ways to start the application:

Hope you enjoy it! The team would really hard on making it happen.


Sponsor: Have what it takes to code securely? Select from dozens of complimentary interactive secure coding labs, test your skills, and earn a badge. Learn more!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service

DotNet Boxed includes prescriptive templates for .NET Core

February 11, 2021 Comment on this post [3] Posted in DotNetCore | Open Source | VS2019
Sponsored By

This is pretty cool. As you may know, when you type "dotnet new" from the command line, or if you turn on the Visual Studio preview feature "Show all .NET Core templates in the New Project Dialog" that you see a bunch of potential starter templates. These are basic jumping off points for your next new project.

Turn on Visual Studio 2019 Preview features for .NET Core

Some folks feel there should be more included "out of the box." Enter "dotnet-boxed" templates! You can install them from the command line easily like this:

dotnet new --install Boxed.Templates

You can confirm they are there by running dotnet new at the command line. The new "boxed" templates have a different tag:

Templates                    Short Name  Tags
----------------------------------------------------------
ASP.NET Core API Boxed api .NET Boxed/Cloud/Service/Web
ASP.NET Core GraphQL Boxed graphql .NET Boxed/Cloud/Service/Web
ASP.NET Core Orleans Boxed orleans .NET Boxed/Cloud/Service/Web
NuGet Package Boxed nuget .NET Boxed/Library

Let's try them out! I can see them here in the File New Project dialog in VS2019:

.NET boxed in Visual Studio 2019

There's a really nice project that sets up a NuGet package right from File New! It can even set up Test, GitHub Actions, .editorconfig, license, cake build, code of conduct, and more. All that boring boilerplate is done for you!

File | New | NuGet Package

This is just one template example, there are also ones for WebAPIs, GraphQL projects, and Microsoft Orleans projects.

DotNet-boxed is a great community supported project! Head over to GitHub now and give them a STAR and get involved! Even better, I see some "help wanted" issues on their GitHub. I'm sure they'd appreciate your help. https://github.com/Dotnet-Boxed/Templates


Sponsor: Tired of not finding the code you're looking for? Get Sourcegraph universal code search and search code across ALL your repos, languages, and code hosts. Find and fix code fast with Sourcegraph. Try it now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service

Tiny top-level programs with C# 9 and SmallSharp and Visual Studio

February 09, 2021 Comment on this post [7] Posted in DotNetCore | Open Source | VS2019
Sponsored By

One of the things I'm always working on and am always excited about is making C# simpler for new folks.

With .NET 5, today, this works, as it includes C# 9

> dotnet new console
The template "Console Application" was created successfully

> echo System.Console.WriteLine("Hello World"); > program.cs

> dotnet run
Hello World

That's C# 9 top level programs. We should be able to remove even more. Skip the first command completely and do it all on one line, one file.

A hello world is either

using System;

Console.WriteLine("Hello World!");

or

System.Console.WriteLine("Hello World!");

or, scandalously

using System;
using static System.Console;

WriteLine("Hello World!");

Not sure how I feel about that last one. Regardless...would this work in Visual Studio 2019? What if I was teaching a class and wanted to have one file per homework assignment, for example? Right now Visual Studio only supports one top-level program per project. Make sense why, but for learning, why not allow folks to choose from the run/debug menu?

I'm going to add a reference to SmallSharp like this (or in Visual Studio)

> dotnet add package smallsharp

Now here's what my homework looks like in Visual Studio 2019! There's one menu item per top level program!

One menu item per top level program

This lovely prototype was done by Daniel Cazzulino (kzu) and you can learn more at https://github.com/devlooped/SmallSharp, or just try it out as I have here!

What do you think? How can small top-level programs help new people?

What about this?

> dotnet new microservice
> dotnet run

Sound off in the comments. How tight and simple would that be?


Sponsor: Tired of not finding the code you're looking for? Get Sourcegraph universal code search and search code across ALL your repos, languages, and code hosts. Find and fix code fast with Sourcegraph. Try it now!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.