How To: Fast Switch Between Dashboards with Fully Kiosk Browser

Did it work somewhere else, but not WebCoRE?

Is this on Hubitat or SmartThings? I don’t recall needing the encoding when using the driver on Hubitat. I only needed it when manually calling the Fully Kiosk Browser API directly.

You guys are so fast to reply, I love it. I found an error in my piston and the same encoded url works. Thanks

2 Likes

Having a hard time with this… Triggering from Hubitat Rules…

dev:1762021-03-23 14:42:24.629 debug[sendCommandCallback] response.data: {"statustext":"Loading URL javascript:postMessage({action:‘navigate’, route: { path: ‘/dashboard/view/xxxxx’}}) ...","status":"OK"}
dev:1762021-03-23 14:42:24.625 debug[sendCommandCallback] response.data: {"statustext":"Screensaver stopped","status":"OK"}
dev:1762021-03-23 14:42:24.622 trace[sendCommandCallback] response.status: 200
dev:1762021-03-23 14:42:24.618 trace[sendCommandCallback] response.status: 200
dev:1762021-03-23 14:42:22.605 debug[sendCommandPost] [uri:http://192.168.1.76:2323/?type=json&password=yyyyy&cmd=loadURL&url=javascript%3ApostMessage%28%7Baction%3A%E2%80%98navigate%E2%80%99%2C+route%3A+%7B+path%3A+%E2%80%98%2Fdashboard%2Fview%2Fxxxxx%E2%80%99%7D%7D%29, requestContentType:application/json, contentType:application/json]
dev:1762021-03-23 14:42:22.601 trace[sendCommandPost] cmdDetails:cmd=loadURL&url=javascript%3ApostMessage%28%7Baction%3A%E2%80%98navigate%E2%80%99%2C+route%3A+%7B+path%3A+%E2%80%98%2Fdashboard%2Fview%2Fxxxxx%E2%80%99%7D%7D%29
dev:1762021-03-23 14:42:22.598 trace[loadURL] url:javascript:postMessage({action:‘navigate’, route: { path: ‘/dashboard/view/xxxxx’}})
dev:1762021-03-23 14:42:22.589 debug[sendCommandPost] [uri:http://192.168.1.76:2323/?type=json&password=yyyyy&cmd=stopScreensaver, requestContentType:application/json, contentType:application/json]
dev:1762021-03-23 14:42:22.586 trace[sendCommandPost] cmdDetails:cmd=stopScreensaver
dev:1762021-03-23 14:42:22.582 trace[stopScreensaver] 

It says Status ok, but it doesn’t do the navigation. It’s on my main Sharptools dashboard running in FKB, and I turn off the screensaver before, so I’m not sure the problem…

I’m away from a device to test with at the moment, but I would double check the quotes. They look like curly quotes ‘’ rather than straight quotes ''.

1 Like

Yup, you got it! Thanks!

2 Likes

i have tried to use this fast postMessage methode in a rule using the fkb loadURL command, but nothing happens; however, it works fine (but slowly) when using the command with just the url; any idea what i am doing wrong? do i need to first install any javascript or postMessage stuff?

@Claus_Hansen, can you post the javascript postMessaeg link you tried? My quick guess is if it was not url encoded as described in the earlier post.

thanks, had not understood the encoding part, now it works

1 Like

hi,

think i had this working earlier, but now i cant

i have a rule in sharptools call loadURL with javascript%3ApostMessage%28%7Baction%3A%27navigate%27%2C%20route%3A%20%7B%20path%3A%20%27%2Fdashboard%2Fview%2FBhtBMlvfnF3BSzJ8OSPN%27%7D%7D%29

but nothing happens

i can make it work with the url (but slowly) and i can also make it work with the postMessage if done directly in the fully kiosk device over in hubitat (but not as a rule in hubitat or in webcore for hubitat)

any idea what i am doing wrong?

@Claus_Hansen Can you take screenshots and post the URLs you used in the Fully Kiosk device in Hubitat directly and the one used in SharpTools Rule Engine? It sounds weird that it works via the Fully Kiosk Device page in Hubitat but not from any other rule platforms.

you are right, also in device page, it is only the url working

Have you checked the Hubitat’s log page to see what was going on with the loadUrl command sent from the rule yet? You may want to set the Fully Kiosk Device’s logging level to debug before you trigger the rule again.

I get this log in hubitat:

2021-09-06 09:43:15.111 am debug[sendCommandCallback] response.data: {“statustext”:“Invalid URL javascript%3ApostMessage%28%7Baction%3A%27navigate%27%2C%20route%3A%20%7B%20path%3A%20%27%2Fdashboard%2Fview%2FBhtBMlvfnF3BSzJ8OSPN%27%7D%7D%29”,“status”:“Error”}

dev:3202021-09-06 09:43:15.107 am trace[sendCommandCallback] response.status: 200

dev:3202021-09-06 09:43:14.762 am debug[sendCommandPost] [uri:http://192.168.1.102:2323/?type=json&password=xxxxxxxx&cmd=loadURL&url=javascript%253ApostMessage%2528%257Baction%253A%2527navigate%2527%252C%2520route%253A%2520%257B%2520path%253A%2520%2527%252Fdashboard%252Fview%252FBhtBMlvfnF3BSzJ8OSPN%2527%257D%257D%2529, requestContentType:application/json, contentType:application/json]

dev:3202021-09-06 09:43:14.758 am trace[sendCommandPost] cmdDetails:cmd=loadURL&url=javascript%253ApostMessage%2528%257Baction%253A%2527navigate%2527%252C%2520route%253A%2520%257B%2520path%253A%2520%2527%252Fdashboard%252Fview%252FBhtBMlvfnF3BSzJ8OSPN%2527%257D%257D%2529

dev:3202021-09-06 09:43:14.754 am trace[loadURL] url:javascript%3ApostMessage%28%7Baction%3A%27navigate%27%2C%20route%3A%20%7B%20path%3A%20%27%2Fdashboard%2Fview%2FBhtBMlvfnF3BSzJ8OSPN%27%7D%7D%29

@Claus_Hansen, I was able to reproduce the same issue using the encoded URL like this:

javascript%3ApostMessage%28%7Baction%3A%27navigate%27%2Croute%3A%7B%20path%3A%27%2Fdashboard%2Fview%2FxHF4pBuWWBQFYu8h3nOc%27%7D%7D%29

I am pretty sure the URL needs to be encoded before sending but after a couple tests, I found out that it only worked for me if I don’t encode the URL. So the un-encoded version like below turns out to work for me then. (Maybe there was an update somewhere changed how the query parameters are attached to the request?:thinking:)

javascript:postMessage({action:'navigate',route:{ path:'/dashboard/view/xHF4pBuWWBQFYu8h3nOc'}})

Can you try the following URL and let me know if this works for you then?

javascript:postMessage({action:'navigate',route:{ path:'/dashboard/view/BhtBMlvfnF3BSzJ8OSPN'}})

— EDIT —
Updated the examples to ensure the forum doesn’t automatically convert the single quote ' to the curly quotes ‘’

thanks, but it does not work; still only works if using the full (and slow) url

@Claus_Hansen, sorry I just noticed that the forum automatically converted the single-quote ' to curly quotes ‘’. Can you try it again and make sure that the quotes are straight single quotes when copied & pasted?

javascript:postMessage({action:'navigate',route:{ path:'/dashboard/view/BhtBMlvfnF3BSzJ8OSPN'}})

thanks a lot, that work (for some reason not in webcore for hubitat, but it does in the sharptools rule, so can work around that)

2 Likes

I just started playing with this again and I’m testing a shared test dashboard to a view-only account. On the view-only account that is logged into FKB and Sharptools, I am getting prompted to login when I send the loadURL command from the Hubitat FKB device.

I can navigate to the dashboard manually though.

@eibyer, do you have something set in the Fully Kiosk Browser to clean the cache/session when refresh/load?

Not sure but I’ll poke in the settings later.

1 Like