Newbie: Failed to sync

I am a beginner, for private use at home. I am on ubuntu 17.10, JDK 9 (I’ve tried 8 as well).

I have got as far as creating the Hello World panel, installing and running the controller, and running the mobile (android) app. That app does find the controller (although I’m confused as to whether I should be on port 8688 or 8080 - the former seems to work but the app says the latter is correct).

The next step is to sync the design with the controller. The MAC address is correct, but if I try to add it to the designer web page I get error:

No controller with the given MAC address was found or maybe it’s linked already.
Please start your controller before linking it, make sure it is not linked yet and that it has internet access.

I don’t know if this is because it’s already linked, but it isn’t listed. It is started, and I tried stopping and starting.

If I try to sync I get the following on the controller terminal. It seems to indicate that ssl is missing. This seems most unlikely, but what else can it be?

INFO 2018-04-12 15:58:02,812 : Starting device discovery service…

ERROR 2018-04-12 15:58:31,034 : Synchronizing controller with online account failed : Downloading account configuration failed : java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)

org.openremote.controller.exception.ConnectionException: Downloading account configuration failed : java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)

at org.openremote.controller.service.Deployer$BeehiveConnection.downloadZip(Deployer.java:1848)

at org.openremote.controller.service.Deployer$BeehiveConnection.access$300(Deployer.java:1701)

at org.openremote.controller.service.Deployer.deployFromOnline(Deployer.java:555)

at org.openremote.controller.action.ConfigManageController.syncOnline(ConfigManageController.java:140)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:564)

at org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:445)

at org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:382)

at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)

at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:859)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:793)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.openremote.controller.rest.support.json.JSONCallbackFilter.doFilter(JSONCallbackFilter.java:63)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:354)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)

at java.base/java.lang.Thread.run(Thread.java:844)

Caused by: java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)

at java.base/javax.net.ssl.DefaultSSLSocketFactory.throwException(SSLSocketFactory.java:263)

at java.base/javax.net.ssl.DefaultSSLSocketFactory.createSocket(SSLSocketFactory.java:270)

at java.base/sun.net.www.protocol.https.HttpsClient.createSocket(HttpsClient.java:413)

at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:162)

at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)

at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)

at java.base/sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:265)

at java.base/sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:372)

at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)

at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1181)

at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1075)

at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)

at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:163)

at org.openremote.controller.service.Deployer$BeehiveConnection.downloadZip(Deployer.java:1794)

… 38 more

Sorry. Are my questions so dim that no one can think of a polite enough reply?

Have you searched the forum in case anyone else have asked the same question before?

https://groups.google.com/forum/#!searchin/openremotecommunity/Fail$20sync/openremotecommunity/LUGfPsiW1hA

In a short answer.

Port 8080 was only ever used by the demo version of OpenRemote.
Port 8688 is the correct one.

Don't worry about registering the MAC I'm the designer, this is only for commercial applications.

As for syncing...

Can you be a little clearer as to what you're doing / asking please?

(FYI.
My area of expertise is strictly limited to supporting Velbus hardware.
Anything else I attempt to help anyone with is purely on a 'best guess' basis.)

Thanks.

The reason I asked about port 8080 is that that is the port the android app says (on the screen)one should use. I assume, therefore, that the app is a bit out of date.

The reason for asking about the MAC is that the instructions say one should, so I tried. Although others seem to have got it to work, it doesn’t on my system. Still, if it doesn’t matter I guess it doesn’t, but I wondered whether that was why the sync did not work.

As to what I’m trying to do, I was trying to create the simplest possible app to test openremote before getting more adventurous. So I started with ‘Hello World’, as per openremote instructions, but could not get it to work because the sync failed. I eventually managed to do an ‘offline’ sync, downloading a zip file, and so got ‘Hello World’ to work (I do have one panel, so I believe the sync should work).

All I am currently attempting is to follow openremote installation instructions. Nothing more.

I did look at github, and found one other had an open issue for the same sync problem as I had (at https://github.com/openremote/Controller/issues)

Not that it will not work on Ubuntu but from my experience when I started using OpenRemote last year, Ubuntu was finicky with OpenRemote and I quickly gave up.

Easiest is Raspberry pi or a Windows machine to avoid frustration in the beginning. Once you get more comfortable you could try it on Ubuntu again.

That's interesting.

I've got 3 machines running Ubuntu 16 with Java 6 or 8 without any issues at all.

I’ve given up, for now at least. I’ve just found too many things are more difficult than I would have hoped, from sync, to designing for a Android at a different screen size, and needing to design a load of images.