@jkandasa, I just emailed you the information your requested.
Thanks much for your help!
@jkandasa, I just emailed you the information your requested.
Thanks much for your help!
@jkandasa It doesn't look like I'll be editing either of these to dashboard configuration sources by hand. :smiling_face_with_open_mouth_smiling_eyes:
Thanks again for your hard work. I'm look forward to the final release of 1.4.0.
@jkandasa said in I can't add a widget to a dashboard:
@tomg I have added fix for this issue and this change is available in the SNAPSHOT version. Kindly check it on this version and let me know.
Thank you!NOTE: Once you upgrade, you cannot go back to the previous version(without old backup)
The snapshot worked great! I was able to combine my two dashboards (that I made to work around the problem) into one dashboard without any problems.
Is the dashboard configuration in a JSON file available somewhere?
This issue was important to me not for just one dashboard, but I plan to have several dashboards of similar complexity and artificially splitting up dashboards made the user interface more complex and confusing.
I'm surprised I'm the first person to report this problem. Perhaps other people just lived with the limitation and added dashboards or I'm pushing the boundaries on custom button widgets.
I'd like to point out to everyone listening, that about one week after I reported a problem, the developer provided a fix. I certainly wouldn't expect this level of service all the time, but this is a level of service you won't see from most commercial products. I'll definitely support MyController.org (and MySensors.org) with an annual donation. You should support them too if you find value in these products. I'm sure any amount would be appreciated. FYI, I don't have any connection to these two organizations other than as a satisfied user.
FYI, even thought I'm still booting from the SD card, everything runs off the SSD after the system is up and running.
@skywatch said in Please help me fix MyController on a Raspberry Pi that is very sick due to a full SSD:
Please can you tell me more on this? I have tried and tried to get it to boot meos from ssd without any luck (cmdline.txt with root=/dev/sda1 and various other connotations).....
I'll write up my notes on this and post them to the forum.
I didn't move the image from the SD card to the SSD. I created a new partition on the SSD and used rcp to copy the root partition from the SD to the SSD (there is more involved to make this work). My boot partition is still on the SD. I couldn't get the Pi to reboot with the entire system on the SSD (it worked fine from a power cycle). This was probably fixable, but I had spent enough time on it and I gave up. My goal was to have the larger capacity and reliability of an SSD, and booting from the SD and having the running system on the SSD accomplished that goal.
Camera support in MyController would be nice, however Motioneye does a good job.
My power supply is the 2.5a one that came with the CanaKit Raspberry Pi (https://www.amazon.com/dp/B07BC7BMHY/ref=cm_sw_em_r_mt_dp_U_qaULCbCN3G2DF). I haven't heard of any problems with this power supply.
My Pi has 3 heat sinks and a case with a fan. It is possible the fan failed, but I won't know that for a couple of months when I travel to the location with the system.
Keeping the MyController and Motioneye systems separated is (in retrospect) a good idea. It was cheaper and easier to manage remotely with both of them on one system. My one Raspberry Pi has enough storage and CPU performance to handle both programs, but that didn't make it a good idea.
Thanks much for your thoughts and suggestions.
@jkandasa, I just emailed you the information your requested.
Thanks much for your help!
Recently the SSD filled up on my Raspberry Pi system which runs MyController. The full disk was my fault (Motioneye), not MyController. I've removed files from the SSD and now have a lot of empty space, but MyController is not very happy. Some of the problems are:
Following are some message from the MyController server log. There are lots of errors which I'm not sure how to fix.
vletDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at Acme.Serve.Serve$ServeConnection.runServlet(Serve.java:2328)
at Acme.Serve.Serve$ServeConnection.parseRequest(Serve.java:2282)
at Acme.Serve.Serve$ServeConnection.run(Serve.java:2054)
at Acme.Utils$ThreadPool$PooledThread.run(Utils.java:1402)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketException: Broken pipe (Write failed)
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
at java.net.SocketOutputStream.write(SocketOutputStream.java:143)
at Acme.Serve.Serve$ServeOutputStream.flush(Serve.java:4889)
at Acme.Serve.Serve$ServeOutputStream.close(Serve.java:4923)
at org.jboss.resteasy.plugins.server.servlet.HttpServletResponseWrapper$DeferredOutputStream.close(HttpServletResponseWrapper.java:58)
at org.jboss.resteasy.util.CommitHeaderOutputStream.close(CommitHeaderOutputStream.java:87)
at org.jboss.resteasy.util.DelegatingOutputStream.close(DelegatingOutputStream.java:60)
at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1060)
at org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.writeTo(ResteasyJackson2Provider.java:209)
at org.mycontroller.standalone.api.jaxrs.mixins.McJacksonJson2Provider.writeTo(McJacksonJson2Provider.java:120)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:131)
at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:60)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:120)
at org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor.aroundWriteTo(GZIPEncodingInterceptor.java:100)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:124)
at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:98)
at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:466)
... 12 more
[Fri Mar 22 04:50:09 CST 2019] Unexpected problem running servlet: org.jboss.resteasy.spi.UnhandledException: RESTEASY003770: Response is committed, can't handle exception
2019-03-22 04:50:12,920 WARN [mc-th-pool-8] [org.mycontroller.standalone.rule.McRuleEngine:184] Scheduled Rule exuection skipped. Engine not available for more than 4000 ms
2019-03-22 04:50:13,769 WARN [mc-th-pool-6] [org.mycontroller.standalone.rule.McRuleEngine:184] Scheduled Rule exuection skipped. Engine not available for more than 4000 ms
2019-03-22 04:52:06,319 WARN [mc-th-pool-0] [org.mycontroller.standalone.rule.McRuleEngine:184] Scheduled Rule exuection skipped. Engine not available for more than 4000 ms
2019-03-22 04:53:57,361 WARN [mc-th-pool-7] [org.mycontroller.standalone.rule.McRuleEngine:184] Scheduled Rule exuection skipped. Engine not available for more than 4000 ms
[Fri Mar 22 04:55:45 CST 2019] Unexpected problem running servlet
org.jboss.resteasy.spi.UnhandledException: RESTEASY003770: Response is committed, can't handle exception
at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:167)
at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:471)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:415)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:202)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
at org.jboss.resteasy.plugins.server.tjws.TJWSServletDispatcher.service(TJWSServletDispatcher.java:40)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at Acme.Serve.Serve$ServeConnection.runServlet(Serve.java:2328)
at Acme.Serve.Serve$ServeConnection.parseRequest(Serve.java:2282)
at Acme.Serve.Serve$ServeConnection.run(Serve.java:2054)
at Acme.Utils$ThreadPool$PooledThread.run(Utils.java:1402)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketException: Broken pipe (Write failed)
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
at java.net.SocketOutputStream.write(SocketOutputStream.java:143)
at Acme.Serve.Serve$ServeOutputStream.flush(Serve.java:4889)
at Acme.Serve.Serve$ServeOutputStream.close(Serve.java:4923)
at org.jboss.resteasy.plugins.server.servlet.HttpServletResponseWrapper$DeferredOutputStream.close(HttpServletResponseWrapper.java:58)
at org.jboss.resteasy.util.CommitHeaderOutputStream.close(CommitHeaderOutputStream.java:87)
at org.jboss.resteasy.util.DelegatingOutputStream.close(DelegatingOutputStream.java:60)
at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1060)
at org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.writeTo(ResteasyJackson2Provider.java:209)
at org.mycontroller.standalone.api.jaxrs.mixins.McJacksonJson2Provider.writeTo(McJacksonJson2Provider.java:120)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:131)
at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:60)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:120)
at org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor.aroundWriteTo(GZIPEncodingInterceptor.java:100)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:124)
at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:98)
at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:466)
... 12 more
[Fri Mar 22 04:55:45 CST 2019] Unexpected problem running servlet: org.jboss.resteasy.spi.UnhandledException: RESTEASY003770: Response is committed, can't handle exception
2019-03-22 04:55:49,589 WARN [mc-th-pool-8] [org.mycontroller.standalone.rule.McRuleEngine:184] Scheduled Rule exuection skipped. Engine not available for more than 4000 ms
[Fri Mar 22 04:57:37 CST 2019] Unexpected problem running servlet
org.jboss.resteasy.spi.UnhandledException: RESTEASY003770: Response is committed, can't handle exception
at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:167)
at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:471)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:415)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:202)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
at org.jboss.resteasy.plugins.server.tjws.TJWSServletDispatcher.service(TJWSServletDispatcher.java:40)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at Acme.Serve.Serve$ServeConnection.runServlet(Serve.java:2328)
at Acme.Serve.Serve$ServeConnection.parseRequest(Serve.java:2282)
at Acme.Serve.Serve$ServeConnection.run(Serve.java:2054)
at Acme.Utils$ThreadPool$PooledThread.run(Utils.java:1402)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketException: Broken pipe (Write failed)
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
at java.net.SocketOutputStream.write(SocketOutputStream.java:143)
at Acme.Serve.Serve$ServeOutputStream.flush(Serve.java:4889)
at Acme.Serve.Serve$ServeOutputStream.close(Serve.java:4923)
at org.jboss.resteasy.plugins.server.servlet.HttpServletResponseWrapper$DeferredOutputStream.close(HttpServletResponseWrapper.java:58)
at org.jboss.resteasy.util.CommitHeaderOutputStream.close(CommitHeaderOutputStream.java:87)
at org.jboss.resteasy.util.DelegatingOutputStream.close(DelegatingOutputStream.java:60)
at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1060)
at org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.writeTo(ResteasyJackson2Provider.java:209)
at org.mycontroller.standalone.api.jaxrs.mixins.McJacksonJson2Provider.writeTo(McJacksonJson2Provider.java:120)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:131)
at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:60)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:120)
at org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor.aroundWriteTo(GZIPEncodingInterceptor.java:100)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:124)
at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:98)
at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:466)
... 12 more
[Fri Mar 22 04:57:37 CST 2019] Unexpected problem running servlet: org.jboss.resteasy.spi.UnhandledException: RESTEASY003770: Response is committed, can't handle exception
[Fri Mar 22 04:57:38 CST 2019] Unexpected problem running servlet
org.jboss.resteasy.spi.UnhandledException: RESTEASY003770: Response is committed, can't handle exception
at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:167)
at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:471)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:415)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:202)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
at org.jboss.resteasy.plugins.server.tjws.TJWSServletDispatcher.service(TJWSServletDispatcher.java:40)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at Acme.Serve.Serve$ServeConnection.runServlet(Serve.java:2328)
at Acme.Serve.Serve$ServeConnection.parseRequest(Serve.java:2282)
at Acme.Serve.Serve$ServeConnection.run(Serve.java:2054)
at Acme.Utils$ThreadPool$PooledThread.run(Utils.java:1402)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketException: Broken pipe (Write failed)
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
at java.net.SocketOutputStream.write(SocketOutputStream.java:143)
at Acme.Serve.Serve$ServeOutputStream.flush(Serve.java:4889)
at Acme.Serve.Serve$ServeOutputStream.close(Serve.java:4923)
at org.jboss.resteasy.plugins.server.servlet.HttpServletResponseWrapper$DeferredOutputStream.close(HttpServletResponseWrapper.java:58)
at org.jboss.resteasy.util.CommitHeaderOutputStream.close(CommitHeaderOutputStream.java:87)
at org.jboss.resteasy.util.DelegatingOutputStream.close(DelegatingOutputStream.java:60)
at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1060)
at org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.writeTo(ResteasyJackson2Provider.java:209)
at org.mycontroller.standalone.api.jaxrs.mixins.McJacksonJson2Provider.writeTo(McJacksonJson2Provider.java:120)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:131)
at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:60)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:120)
at org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor.aroundWriteTo(GZIPEncodingInterceptor.java:100)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:124)
at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:98)
at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:466)
... 12 more
[Fri Mar 22 04:57:38 CST 2019] Unexpected problem running servlet: org.jboss.resteasy.spi.UnhandledException: RESTEASY003770: Response is committed, can't handle exception
2019-03-22 04:57:41,079 WARN [mc-th-pool-1] [org.mycontroller.standalone.rule.McRuleEngine:184] Scheduled Rule exuection skipped. Engine not available for more than 4000 ms
[Fri Mar 22 04:58:42 CST 2019] Unexpected problem running servlet
org.jboss.resteasy.spi.UnhandledException: RESTEASY003770: Response is committed, can't handle exception
at org.jboss.resteasy.core.SynchronousDispatcher.writeException(SynchronousDispatcher.java:167)
at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:471)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:415)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:202)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
at org.jboss.resteasy.plugins.server.tjws.TJWSServletDispatcher.service(TJWSServletDispatcher.java:40)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at Acme.Serve.Serve$ServeConnection.runServlet(Serve.java:2328)
at Acme.Serve.Serve$ServeConnection.parseRequest(Serve.java:2282)
at Acme.Serve.Serve$ServeConnection.run(Serve.java:2054)
at Acme.Utils$ThreadPool$PooledThread.run(Utils.java:1402)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketException: Broken pipe (Write failed)
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
at java.net.SocketOutputStream.write(SocketOutputStream.java:143)
at Acme.Serve.Serve$ServeOutputStream.flush(Serve.java:4889)
at Acme.Serve.Serve$ServeOutputStream.close(Serve.java:4923)
at org.jboss.resteasy.plugins.server.servlet.HttpServletResponseWrapper$DeferredOutputStream.close(HttpServletResponseWrapper.java:58)
at org.jboss.resteasy.util.CommitHeaderOutputStream.close(CommitHeaderOutputStream.java:87)
at org.jboss.resteasy.util.DelegatingOutputStream.close(DelegatingOutputStream.java:60)
at com.fasterxml.jackson.core.json.UTF8JsonGenerator.close(UTF8JsonGenerator.java:1060)
at org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.writeTo(ResteasyJackson2Provider.java:209)
at org.mycontroller.standalone.api.jaxrs.mixins.McJacksonJson2Provider.writeTo(McJacksonJson2Provider.java:120)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:131)
at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:60)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:120)
at org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor.aroundWriteTo(GZIPEncodingInterceptor.java:100)
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:124)
at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:98)
at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:466)
... 12 more
I restored a MyController backup from before the problem, but that didn't help. I also rebooted the Raspberry Pi.
If I was close to the system I would restore the SSD from an image I made on a Windows PC, however I won't be able to touch the system for about two months due to my current location.
I'd like to be as cautions as possible in fixing this problem since I can't physically access the Raspberry Pi or serial gateway (for a power cycle).
My basic hardware and software configuration is:
FYI, I use the https://remote.it/ service for HTTP and SSH access to the Raspberry Pi. It works well without opening ports on your router.
Thanks much in advance.
@jkandasa Thanks for the suggestion, I'll give it a try in the near future.
Please consider supporting this functionality in the future in the user interface of the MyController program.
I'd love to clone a dashboard (the same user, or to another user) or a widget. Is there some straight forward method to do this? This would include using the command line on my Raspberry Pi if that makes sense.
Background: I have a MySensors node in each room to control the IR HVAC unit in that room. I made a dashboard for each HVAC/room. The dashboard includes several "Sensor custom buttons" widgets as well as graphs and sensor widgets. I "cloned" the dashboards using copy/paste as much as possible (mostly the JSON on the custom buttons), but it was still a lot of work. Today I setup another user and I realized I was going to have to create those dashboards all over again. Any level of cloning support that makes all of this easier would be greatly appreciated. I realize that implementing a general dashboard/widget cloning feature could be lots of work.
P.S. I understand that after cloning I may have to change the sensors used by a widget, but it would still save a lot of time.
@jkandasa It doesn't look like I'll be editing either of these to dashboard configuration sources by hand. :smiling_face_with_open_mouth_smiling_eyes:
Thanks again for your hard work. I'm look forward to the final release of 1.4.0.
@jkandasa said in I can't add a widget to a dashboard:
@tomg I have added fix for this issue and this change is available in the SNAPSHOT version. Kindly check it on this version and let me know.
Thank you!NOTE: Once you upgrade, you cannot go back to the previous version(without old backup)
The snapshot worked great! I was able to combine my two dashboards (that I made to work around the problem) into one dashboard without any problems.
Is the dashboard configuration in a JSON file available somewhere?
This issue was important to me not for just one dashboard, but I plan to have several dashboards of similar complexity and artificially splitting up dashboards made the user interface more complex and confusing.
I'm surprised I'm the first person to report this problem. Perhaps other people just lived with the limitation and added dashboards or I'm pushing the boundaries on custom button widgets.
I'd like to point out to everyone listening, that about one week after I reported a problem, the developer provided a fix. I certainly wouldn't expect this level of service all the time, but this is a level of service you won't see from most commercial products. I'll definitely support MyController.org (and MySensors.org) with an annual donation. You should support them too if you find value in these products. I'm sure any amount would be appreciated. FYI, I don't have any connection to these two organizations other than as a satisfied user.