Attempt to move HG to .NET Core V3.1

Sorry for the late reply. Qubino confirmed it is indeed a firmware issue. They will fix it in their new firmware for their new devices. As they don’t do firmware updates for ‘sold’ devices that does not help much. However in the HG version I work on I inserted a workaround specific for the device I have. Dont know what to do with that kind of code change. And actually it is not the only code change. I moved the whole HG to .NET Core V3.1. In order to do so I had to use other versions of lots of Nuget packages. But also a lot of packages had no support for .NET core, so I converted them to compatible versions as well. Now I am not planning to put all these upgraded packages/libraries back in GitHub. Too many. Also I tried adding some really needed improvements in the code, like dependency injection. One other thing I had to rewrite was the c# code compilation module because that needed to be different for .NET core as well. So it compiles, it runs, its far from finished. When starting the web interface, all is there except I don’t see any MIG interfaces. Probably because they are loading dynamically and I am missing something that is picking them up (?). Anyway if anyone is interested I can zip the whole thing and make it available for download. image

Yes I had a problem trying to get the on board camera module to work and it was suggested then that .Net Core may be the way forward On board Raspberry Pi Camera not working with Raspbian Stretch

Maybe this could be a timely opportunity to see if the HG project could be developed to the next level utilising .Net Core. There has been some talk about it here but you sound like the person for the job.

Have you forked the project yet.

I just had a quick read through this post. It certainly seems you had a big job on your hands performing that conversion https://www.cafe-encounter.net/p2380/migrating-net-framework-to-netcore

Do please zip the contents and if you need any testing please let us know. This project definitely needs its own fork. It’s the first real development I’ve seen with HG in quite a while.

Wow, sounds like a lot of work getting that device up and running. Hopefully the solution you developed can be included in the HG code so it can help others going forward as well!

+1 to that.

It would certainly bring HG into play in a big way in the home automation world.

First of all, I just spent most time getting it all to compile. Actually using it I did not really try. Also because the MIG interfaces dont appear yet in the Web UI. Someone may want to look at that. And there is probably lots more. I still dont like the DI , because I could not get everything decoupled. Anyway have a look: https://1drv.ms/u/s!AlZYnjFdWN7Tp9t_uVV-13NzBRQszw?e=h1ZPfM

And also I would like to see if we can make it more modular. I believe that the UI for example is completely served by some internal routines. We probably should make that a standard .NET Core webhost. I am still trying to fully understand how it all works.

@Bounz do you have an opinion on this proposal. You did mention before that you would like to see the project using .Net Core and here’s someone that may be able to do it

Are you currently running this in a docker

I did not try, but it’s part of the solution, might work actually.

Did you publish your project self contained

Are you running this on x86 or ARM. Not having a lot of luck with it.

I am running it on x86 (basically on my PC, in de VS debugger).

Just run HomeGenieWS …does work for me.

What kind of problems do you have?

I’m working in Ubuntu 14.04

I have no experience in developing on linux. I assume you are trying this in VS Code?

This is what I see when I run it.

Can you publish your project this way. I can just copy the Publish folder into Ubuntu

Follow the below steps to run your application:

  1. Publish your application as a self contained application:
dotnet publish -c release -r ubuntu.16.04-x64 --self-contained
  1. Copy the publish folder to the Ubuntu machine
  2. Open the Ubuntu machine terminal (CLI) and go to the project directory
  3. Provide execute permissions:
chmod 777 ./appname
  1. Execute the application
./appname

I will try that, hopefully tomorrow. I am installing the Ubuntu 18.4 release as we ‘speak’. Not experienced with it at all…how do you copy to the Ubuntu machine?

Use SCP for Windows.You can just SSH into the Ubuntu machine from the Windows machine and drag the folder over.

Ultimately if I was you I’d publish your project for the ARM processor, Raspberry Pi which most seem to be using on home automation these days.

I could install Dotnet for Linux and run the DLL file that way but it seems unecessary.

By the way, whatever you need to know, just ask here. A number of users will be very interested in your efforts. It would be nice if HG could dispense with the services of Mono.