Distribution and installation

Right now we have following abilities to make a clean install of HG on Linux machine:

  • install gdebi, download .deb file and install it (it will also install following dependencies: mono-runtime, libmono-corlib4.5-cil, libmono-system-web4.0-cil, libmono-system-numerics4.0-cil, libmono-system-serviceprocess4.0-cil, libmono-system-data4.0-cil, libmono-system-core4.0-cil, libmono-system-servicemodel4.0a-cil, libmono-windowsbase4.0-cil, libmono-system-runtime-serialization-formatters-soap4.0-cil, libmono-system-runtime-serialization4.0-cil, libmono-system-xml-linq4.0-cil, mono-dmcs, libusb-1.0-0, libusb-1.0-0-dev, alsa-utils, lame, lirc, libv4l-0, ca-certificates-mono
  • install mono-complete manually, download and unzip .zip file, run HomeGenie manually (mono HomeGenie.exe) or use initd or systemd serivice to start it automatically.
  • use community provided script to install dependencies and HG

I’m going to create docker image with HomeGenie as it will help to encapsulate all dependencies into that image so the end user will need to install docker (curl -sSL https://get.docker.com | sh) and then download an image and run HG inside container (made with one line). But I’ll start to work on this after issue Move all editable files into one folder will be done.

Clean install and getting this at the moment on stretch lite…

anyone else seen this?

Anything in log files?

doesn’t even go as far as creating a log!

Wondering if there has been a recent fw update to the pi?

this is mono version 5.10.0.140

Where did you pull Mono from. I’m running on V 5.4.1.6

http://www.mono-project.com/download/stable/#download-lin-raspbian

The latest Stable Mono release is: 5.10.0 Stable (5.10.0.140)

Btw, I’ll try to update my mono version too as I have been using mono 4.6.

UPD: After installing mono 5.10.0.140 got the same error as @David_Wallis. :man_facepalming:
UPD2: Here is more detailed log:

System.TypeInitializationException: The type initializer for 'HomeGenie.Service.HomeGenieService' threw an exception. ---> NLog.NLogConfigurationException: Error when setting property 'Name' on Console Target[(unnamed)] ---> System.ArgumentException: Object of type 'System.ReadOnlySpan`1[System.Char]' cannot be converted to type 'System.String'.
  at System.RuntimeType.CheckValue (System.Object value, System.Reflection.Binder binder, System.Globalization.CultureInfo culture, System.Reflection.BindingFlags invokeAttr) [0x00071] in <dd0320c250ae49fb94403f3270f5c7ae>:0
  at System.Reflection.MonoMethod.ConvertValues (System.Reflection.Binder binder, System.Object[] args, System.Reflection.ParameterInfo[] pinfo, System.Globalization.CultureInfo culture, System.Reflection.BindingFlags invokeAttr) [0x00069] in <dd0320c250ae49fb94403f3270f5c7ae>:0
  at System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00011] in <dd0320c250ae49fb94403f3270f5c7ae>:0
  at System.Reflection.MonoProperty.SetValue (System.Object obj, System.Object value, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] index, System.Globalization.CultureInfo culture) [0x0005d] in <dd0320c250ae49fb94403f3270f5c7ae>:0
  at System.Reflection.PropertyInfo.SetValue (System.Object obj, System.Object value, System.Object[] index) [0x00000] in <dd0320c250ae49fb94403f3270f5c7ae>:0
  at NLog.Internal.PropertyHelper.SetPropertyFromString (System.Object o, System.String name, System.String value, NLog.Config.ConfigurationItemFactory configurationItemFactory) [0x00108] in <91e70e764b7644adb3ac78d832db51ef>:0
   --- End of inner exception stack trace ---
  at NLog.Internal.PropertyHelper.SetPropertyFromString (System.Object o, System.String name, System.String value, NLog.Config.ConfigurationItemFactory configurationItemFactory) [0x00197] in <91e70e764b7644adb3ac78d832db51ef>:0
  at NLog.Config.XmlLoggingConfiguration.ConfigureObjectFromAttributes (System.Object targetObject, NLog.Config.NLogXmlElement element, System.Boolean ignoreType) [0x00040] in <91e70e764b7644adb3ac78d832db51ef>:0
  at NLog.Config.XmlLoggingConfiguration.ParseTargetElement (NLog.Targets.Target target, NLog.Config.NLogXmlElement targetElement) [0x0000e] in <91e70e764b7644adb3ac78d832db51ef>:0
  at NLog.Config.XmlLoggingConfiguration.ParseTargetsElement (NLog.Config.NLogXmlElement targetsElement) [0x0019c] in <91e70e764b7644adb3ac78d832db51ef>:0
  at NLog.Config.XmlLoggingConfiguration.ParseNLogElement (NLog.Config.NLogXmlElement nlogElement, System.String baseDirectory) [0x00226] in <91e70e764b7644adb3ac78d832db51ef>:0
  at NLog.Config.XmlLoggingConfiguration.ParseTopLevel (NLog.Config.NLogXmlElement content, System.String baseDirectory) [0x00056] in <91e70e764b7644adb3ac78d832db51ef>:0
  at NLog.Config.XmlLoggingConfiguration.Initialize (System.Xml.XmlReader reader, System.String fileName, System.Boolean ignoreErrors) [0x0008f] in <91e70e764b7644adb3ac78d832db51ef>:0
  at NLog.Config.XmlLoggingConfiguration..ctor (System.String fileName) [0x00028] in <91e70e764b7644adb3ac78d832db51ef>:0
  at NLog.LogFactory.LoadLoggingConfiguration (System.String configFile) [0x00016] in <91e70e764b7644adb3ac78d832db51ef>:0
  at NLog.LogFactory.get_Configuration () [0x00066] in <91e70e764b7644adb3ac78d832db51ef>:0
  at NLog.LogFactory.GetLogger (NLog.LogFactory+LoggerCacheKey cacheKey) [0x000cf] in <91e70e764b7644adb3ac78d832db51ef>:0
  at NLog.LogFactory.GetLogger (System.String name) [0x00011] in <91e70e764b7644adb3ac78d832db51ef>:0
  at NLog.LogManager.GetCurrentClassLogger () [0x0000a] in <91e70e764b7644adb3ac78d832db51ef>:0
  at HomeGenie.Service.HomeGenieService..cctor () [0x00000] in <310db62e6e17411e8a468962a27ef0d2>:0
   --- End of inner exception stack trace ---
  at HomeGenie.Program.Main (System.String[] args) [0x0003f] in <310db62e6e17411e8a468962a27ef0d2>:0
The type initializer for 'HomeGenie.Service.HomeGenieService' threw an exception.
  at HomeGenie.Program.Main (System.String[] args) [0x0003f] in <310db62e6e17411e8a468962a27ef0d2>:0
exception inside UnhandledException handler: The type initializer for 'HomeGenie.Service.HomeGenieService' threw an exception.

There was a fairly major update to Mono in the last couple of weeks. Also a firmware update. Anyone running HG on a Raspberry Pi I’d advise them to hold off the sudo apt-upgrade for the moment.

I’m running another HA application on the Raspberry Pi and performed the upgrade without errors but the base code of that application is under constant development to reflect these changes.

1 Like

@Petediscrete, thank you for this information. That’s why we should check HG in different environments or use docker image.

Btw, the fix was quite easy - update NLog from 4.1.0 to 4.4.13.

1 Like

Yes as soon as I saw your errors I figured there was another dependency that needed upgrading.

Thats why the Debian People advise that you only use their repos when installing software which is usually way behind the pack. Mono 4.6 at the moment I believe.

This also applies to Raspbian for x86. The .tar version of HG will install, but the disconnect in the apt-get upgrade and startup.sh in HG make a mess. Have not had time to troubleshoot further.

PiServer or PiNEt, which run on a x86 machine makes for some interesting possibilities with HG. Lately, my priority has been finishing a case called Pi Crate. A mid size case for Pis. So, have not pushed on x86.

how did you get the more detailed log?

Using Console.WriteLine, see https://github.com/Bounz/HomeGenie-BE/blob/V1.1.16/HomeGenie/Program.cs#L60
In the first error message told that initialization of type HomeGenieService failed it explains why HomeGenieService.LogError(logEntry); didn’t work.

1 Like