genielabs / HomeGenie

HomeGenie, the programmable automation intelligence
https://homegenie.it
GNU General Public License v3.0
387 stars 154 forks source link

Where can I find the instructions for proper method of installing updates? #452

Closed EnGamma closed 1 year ago

EnGamma commented 1 year ago

I've been trying out the last 3 beta releases over the last couple of weeks, most recently 1.4.0 Beta 5. Each time I make a backup under Maintenance, then unzip the new linux-arm zip on my Raspberry Pi, overwriting the last version. Then I run ./HomeGenie from within the homegenie directory and do a backup restore. I'm prompted for a backup during the startup screen and I select it, but it does not seem to recreate my dashboard with the modules widgets I've installed. I then try a restore from back from Maintenance menu and that seems to work, but still no widgets for my devices. It also starts to install modules, showing the Rocket Man graphic, but usually hangs here.

Please help with install/upgrade instructions. I've looked all around, but cannot find them.

genemars commented 1 year ago

Do you mind sending your backup file so I can try to restore and see what happen? The dashboards should be automatically recreated from "Groups" during the installation/restore process. Anyway you should see an "Import from server" button if there are no dashboards defined in the client.

Schermata del 2023-01-07 00-53-47

Another way to recreate a dashboard from server groups is from "Settings->Groups".

Schermata del 2023-01-07 00-50-06

Server's groups are a separate thing from client's dashboards. Each client can have its own dashboards. Soon it will be possible to save clients configuration so that restoring dashboards will be just a matter of a click.

genemars commented 1 year ago

The latest release v1.4.0-beta.7 now reports in the maintenance page whenever an update is available. Also installing updates from there should work now.

genemars commented 1 year ago

Oops. There is a typo in the modules.xml and it can't be parsed. Fixing now... =) I will push a new release in the next few minutes.

genemars commented 1 year ago

Well, It's not that. The modules.xml is fine. But it happened to me also installing the v1.4.0-beta.7 on my RPi 2. But it just happened once. I delete the homegenie folder and unzipped and run again and it worked, it didn't hang on the launching animation. I will look in to this later I guess. In the meantime, @EnGamma , let me know if latest release works for you.

EnGamma commented 1 year ago

Here is one of the back up files. Thanks.

On Fri, Jan 6, 2023 at 7:01 PM Gene @.***> wrote:

Do you mind sending your backup file so I can try to restore and see what happen? The dashboards should be automatically recreated from "Groups" during the installation/restore process. Anyway you should see an "Import from server" button if there are no dashboards defined in the client.

[image: Schermata del 2023-01-07 00-53-47] https://user-images.githubusercontent.com/6654265/211118741-7093c5aa-1120-458e-a8ab-5e2cfbfc06d9.png

Another way to recreate a dashboard from server groups is from "Settings->Groups".

[image: Schermata del 2023-01-07 00-50-06] https://user-images.githubusercontent.com/6654265/211118580-ccc18c26-e538-4c57-acd7-e9ac070a57e2.png

Server's groups are a separate thing from client's dashboards. Each client can have its own dashboards. Soon it will be possible to save clients configuration so that restoring dashboards will be just a matter of a click.

— Reply to this email directly, view it on GitHub https://github.com/genielabs/HomeGenie/issues/452#issuecomment-1374278276, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACSR2EKGQEKGX3NGO7D3M3TWRCW7LANCNFSM6AAAAAATTNOQRA . You are receiving this because you authored the thread.Message ID: @.***>

EnGamma commented 1 year ago

Responded to first message. Just seeing this message. Will try again with deleting homegenie folder.

On Fri, Jan 6, 2023 at 7:31 PM Gene @.***> wrote:

Well, It's not that. The modules.xml is fine. But it happened to me also installing the v1.4.0-beta.7 on my RPi 2. But it just happened once. I delete the homegenie folder and unzipped and run again and it worked, it didn't hang on the launching animation. I will look in to this later I guess. In the meantime let me know if latest release works for you.

— Reply to this email directly, view it on GitHub https://github.com/genielabs/HomeGenie/issues/452#issuecomment-1374305303, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACSR2ELLZC6AOVOYJ7WJ3DTWRC2M7ANCNFSM6AAAAAATTNOQRA . You are receiving this because you authored the thread.Message ID: @.***>

genemars commented 1 year ago

@EnGamma the backup file was not uploaded, anyway I spotted the error.

2023-01-07 02:11:02.1490 Info WebServiceGateway 127.0.0.1       HTTP    GET     200 /api/HomeAutomation.HomeGenie/Config/Packages.Install/homegenie/homegenie-home-demo [CLOSED AFTER 0.482 seconds]
2023-01-07 02:11:02.1522 Info HomeAutomation.HomeGenie.Automation       400     -       Program.Event   MODULE_ADDED HomeAutomation.Demo:3
2023-01-07 02:11:02.1720 Info WebServiceGateway 127.0.0.1       HTTP    GET     200 /api/HomeAutomation.HomeGenie/Config/Modules.List [OPEN]
2023-01-07 02:11:02.1720 Info HomeAutomation.HomeGenie.Automation       400     Automation Program      Program.Status  Running
2023-01-07 02:11:02.2072 Error HomeAutomation.HomeGenie GetJsonSerializedModules()      Collection was modified; enumeration operation may not execute. Exception.StackTrace       at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
   at System.Collections.Generic.List`1.Enumerator.MoveNext()
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
   at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType)
   at Newtonsoft.Json.JsonSerializer.Serialize(JsonWriter jsonWriter, Object value, Type objectType)
   at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer)
   at Newtonsoft.Json.JsonConvert.SerializeObject(Object value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.SerializeObject(Object value, JsonSerializerSettings settings)
   at HomeGenie.Service.Utility.Module2Json(Module module, Boolean hideProperties) in /home/gene/Scrivania/work/HomeGenie/src/HomeGenie/Service/Utility.cs:line 253
   at HomeGenie.Service.HomeGenieService.GetJsonSerializedModules(Boolean hideProperties) in /home/gene/Scrivania/work/HomeGenie/src/HomeGenie/Service/HomeGenieService.cs:line 342
2023-01-07 02:11:02.2072 Info WebServiceGateway 127.0.0.1       HTTP    GET     200 /api/HomeAutomation.HomeGenie/Config/Modules.List [CLOSED AFTER 0.036 seconds]
2023-01-07 02:11:02.2378 Info HomeAutomation.HomeGenie.Automation       400     Automation Program      Program.Status  Background

It happens occasionally, not always.I tried to fix but I think the error it's still there even in the beta-8. I'll try another solution tomorrow.

EnGamma commented 1 year ago

Just tried beta-8:

.... 2023-01-06 20:42:23.4876 Info HomeGenie.UpdateChecker 0 HomeGenie Update Checker InstallProgress.Message + Copying file 'cs/Microsoft.CodeAnalysis.CSharp.resources.dll' 2023-01-06 20:42:26.7167 Info WebServiceGateway 192.168.124.50 HTTP GET 200 /api/HomeAutomation.HomeGenie/Config/System.Configure/UpdateManager.InstallUpdate [CLOSED AFTER 137.325 seconds] HomeGenie is now exiting... 2023-01-06 20:42:27.7456 Info HomeGenie.System 0 HomeGenie System HomeGenie.Status STOPPING 2023-01-06 20:42:27.7713 Info HomeGenie.System 0 HomeGenie System HomeGenie.Status SAVING DATA 2023-01-06 20:42:27.8598 Info HomeGenie.System 0 HomeGenie System HomeGenie.Status MIG Service STOPPING 2023-01-06 20:42:27.8754 Debug Stopping MigService 2023-01-06 20:42:27.8754 Debug Disabling Interface Protocols.UPnP 2023-01-06 20:42:27.9083 Debug Disabling Interface HomeAutomation.ZWave 2023-01-06 20:42:27.9083 Debug Disabling Interface HomeAutomation.X10 2023-01-06 20:42:27.9083 Debug Stopping Gateway WebServiceGateway 2023-01-06 20:42:27.9111 Debug Stopping Gateway WebSocketGateway 2023-01-06 20:42:27.9383 Error System.ObjectDisposedException: Cannot access a disposed object. Object name: 'listener'. 2023-01-06 20:42:27.9491 Debug Stopped MigService 2023-01-06 20:42:27.9491 Info HomeGenie.System 0 HomeGenie System HomeGenie.Status MIG Service STOPPED 2023-01-06 20:42:27.9521 Info HomeGenie.System 0 HomeGenie System HomeGenie.Status ProgramEngine STOPPING 2023-01-06 20:42:27.9521 Info HomeGenie.System 0 HomeGenie System HomeGenie.Status ProgramEngine STOPPED 2023-01-06 20:42:27.9521 Info HomeGenie.System 0 HomeGenie System HomeGenie.Status STOPPED

On Fri, Jan 6, 2023 at 8:26 PM Gene @.***> wrote:

@EnGamma https://github.com/EnGamma the backup file was not uploaded, anyway I spotted the error.

2023-01-07 02:11:02.1490 Info WebServiceGateway 127.0.0.1 HTTP GET 200 /api/HomeAutomation.HomeGenie/Config/Packages.Install/homegenie/homegenie-home-demo [CLOSED AFTER 0.482 seconds] 2023-01-07 02:11:02.1522 Info HomeAutomation.HomeGenie.Automation 400 - Program.Event MODULE_ADDED HomeAutomation.Demo:3 2023-01-07 02:11:02.1720 Info WebServiceGateway 127.0.0.1 HTTP GET 200 /api/HomeAutomation.HomeGenie/Config/Modules.List [OPEN] 2023-01-07 02:11:02.1720 Info HomeAutomation.HomeGenie.Automation 400 Automation Program Program.Status Running 2023-01-07 02:11:02.2072 Error HomeAutomation.HomeGenie GetJsonSerializedModules() Collection was modified; enumeration operation may not execute. Exception.StackTrace at System.Collections.Generic.List1.Enumerator.MoveNextRare() at System.Collections.Generic.List1.Enumerator.MoveNext() at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer) at Newtonsoft.Json.JsonConvert.SerializeObject(Object value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.SerializeObject(Object value, JsonSerializerSettings settings) at HomeGenie.Service.Utility.Module2Json(Module module, Boolean hideProperties) in /home/gene/Scrivania/work/HomeGenie/src/HomeGenie/Service/Utility.cs:line 253 at HomeGenie.Service.HomeGenieService.GetJsonSerializedModules(Boolean hideProperties) in /home/gene/Scrivania/work/HomeGenie/src/HomeGenie/Service/HomeGenieService.cs:line 342 2023-01-07 02:11:02.2072 Info WebServiceGateway 127.0.0.1 HTTP GET 200 /api/HomeAutomation.HomeGenie/Config/Modules.List [CLOSED AFTER 0.036 seconds] 2023-01-07 02:11:02.2378 Info HomeAutomation.HomeGenie.Automation 400 Automation Program Program.Status Background

It happens occasionally, not always.I tried to fix but I think the error it's still there even in the beta-8. I'll try another solution tomorrow.

— Reply to this email directly, view it on GitHub https://github.com/genielabs/HomeGenie/issues/452#issuecomment-1374333906, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACSR2EOW4Y6FYLDPO55HUO3WRDA2RANCNFSM6AAAAAATTNOQRA . You are receiving this because you were mentioned.Message ID: @.***>

EnGamma commented 1 year ago

Tried to run again after upgrade fail and got this error:

./HomeGenie Unhandled exception. System.IO.FileLoadException: Could not load file or assembly 'System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The located assembly's manifest definition does not match the assembly reference. (0x80131040) File name: 'System.Memory, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' at System.ConsolePal.TerminalFormatStrings..ctor(Database db) at System.ConsolePal.TerminalFormatStrings.<>c.<.cctor>b__28_0() at System.Lazy1.ViaFactory(LazyThreadSafetyMode mode) at System.Lazy1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor) at System.Lazy1.CreateValue() at System.Lazy1.get_Value() at System.ConsolePal.EnsureInitializedCore() at System.Console.add_CancelKeyPress(ConsoleCancelEventHandler value) at HomeGenie.Program.Main(String[] args) Aborted

On Fri, Jan 6, 2023 at 8:26 PM Gene @.***> wrote:

@EnGamma https://github.com/EnGamma the backup file was not uploaded, anyway I spotted the error.

2023-01-07 02:11:02.1490 Info WebServiceGateway 127.0.0.1 HTTP GET 200 /api/HomeAutomation.HomeGenie/Config/Packages.Install/homegenie/homegenie-home-demo [CLOSED AFTER 0.482 seconds] 2023-01-07 02:11:02.1522 Info HomeAutomation.HomeGenie.Automation 400 - Program.Event MODULE_ADDED HomeAutomation.Demo:3 2023-01-07 02:11:02.1720 Info WebServiceGateway 127.0.0.1 HTTP GET 200 /api/HomeAutomation.HomeGenie/Config/Modules.List [OPEN] 2023-01-07 02:11:02.1720 Info HomeAutomation.HomeGenie.Automation 400 Automation Program Program.Status Running 2023-01-07 02:11:02.2072 Error HomeAutomation.HomeGenie GetJsonSerializedModules() Collection was modified; enumeration operation may not execute. Exception.StackTrace at System.Collections.Generic.List1.Enumerator.MoveNextRare() at System.Collections.Generic.List1.Enumerator.MoveNext() at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeObject(JsonWriter writer, Object value, JsonObjectContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeValue(JsonWriter writer, Object value, JsonContract valueContract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer) at Newtonsoft.Json.JsonConvert.SerializeObject(Object value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.SerializeObject(Object value, JsonSerializerSettings settings) at HomeGenie.Service.Utility.Module2Json(Module module, Boolean hideProperties) in /home/gene/Scrivania/work/HomeGenie/src/HomeGenie/Service/Utility.cs:line 253 at HomeGenie.Service.HomeGenieService.GetJsonSerializedModules(Boolean hideProperties) in /home/gene/Scrivania/work/HomeGenie/src/HomeGenie/Service/HomeGenieService.cs:line 342 2023-01-07 02:11:02.2072 Info WebServiceGateway 127.0.0.1 HTTP GET 200 /api/HomeAutomation.HomeGenie/Config/Modules.List [CLOSED AFTER 0.036 seconds] 2023-01-07 02:11:02.2378 Info HomeAutomation.HomeGenie.Automation 400 Automation Program Program.Status Background

It happens occasionally, not always.I tried to fix but I think the error it's still there even in the beta-8. I'll try another solution tomorrow.

— Reply to this email directly, view it on GitHub https://github.com/genielabs/HomeGenie/issues/452#issuecomment-1374333906, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACSR2EOW4Y6FYLDPO55HUO3WRDA2RANCNFSM6AAAAAATTNOQRA . You are receiving this because you were mentioned.Message ID: @.***>

genemars commented 1 year ago

Ok I just noticed too, there is a bug in the update system. It actually downloads the platform agnostic update archive but it doesn't work because it should download the platform specific update archive ( linux-arm in this case). I will fix this as well =) you can still download and install manually. Next release will have both fixes. Thanks for pointing this out.

genemars commented 1 year ago

All issues mentioned in this thread should be now fixed by 1.4.0-beta.9 release.

The procedure for installing/upgrading to new HG is the following:

After unzipping run homegenie from terminal:

cd homegenie
./HomeGenie

On some configuration it is required to run HomeGenie with a user that have permissions to access the serial port and USB devices (e.g. sudo ./HomeGenie for Linux-based systems).

Old HG 1.3 backup files should be 95% compatible and can be restored either in the initial setup or later from maintenance page.

Things that won't work from HG 1.3:

After installing new HomeGenie it is possible to upgrade to new releases from the UI, but (for now) a manual restart is required in some cases and HomeGenie will quit after the upgrade process is completed, so simply rerunHomeGenie. It's also possible to create a shell script that automatically re-run HomeGenie after it quits.

EnGamma commented 1 year ago

@genemars

  1. Maintenance=>Update is still not quite right. I'm on beta8, but update is showing an update is available, but it shows beta8 as the available update, not beta9, which is now available. I saw this earlier with an earlier beta update as well.
  2. Also, I see your comments about HG 1.3 being 95% compatible, but my HG 1.3 backups are flatly rejected as invalid backup files (or some words to that effect). So I've not been able to restore from any old HG 1.3 backups at all.
  3. Also, FYI, I'm still trying to troubleshoot my CM15 not being found at all for X10. Probably a port issue, but I've not sorted it out.

@EnGamma

genemars commented 1 year ago
  1. My comment is about 1.4.0-beta.9 so you should install that version in order to fix
  2. Unless you send ma a backup file that I can fix, I will continue to state it's 95% compatible :)) So if you want to help, send me a backup file
  3. It's already mentioned in the old docs, for USB devices you need to install libusb and run as sudo
    # X10 CM15 Home Automation interface
    sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev
EnGamma commented 1 year ago

@genemars

Here is my HG 1.3 backup that fails to restore in 1.4 beta9. I get error notification box, "Not a valid backup file"

20211018.homegenie_backup_config.zip

genemars commented 1 year ago

So the problem is due to a python script which is included in the backup file. I will fix the error and let the backup file be imported anyway, but python programs are deprecated in HG 1.4 and they won't work. I see this python script is for Firecracker X10. Maybe it can be convert it to C# or even JavaScript.