[RELEASE] Fully Kiosk Browser Controller

Got it. Thanks

I can't seem to get anything to log other than CurrentPageUrl on one touchscreen. My other touchscreens are fine. I tried changing it from info, to debug, to trace and nothing changes. Any ideas? Thanks.

Once you change it to debug and save the preferences you should see stuff start showing up in the log.

There is definitely something not working correctly here. When I put it in debug mode, I see the back and forth every minute in the system logs:

[dev:993](http://192.168.2.108/logs#dev993)2021-09-13 01:11:08.069 pm [debug](http://192.168.2.108/device/edit/993)[refreshCallback] response.json: [deviceName:unknown, packageName:de.ozerov.fully, batteryLevel:0, isPlugged:false, SSID:, Mac:C0:3F:D5:6B:AF:66, ip4:192.168.2.139, ip6:FE80::5A83:5650:3538:FE38, hostname4:unknown, hostname6:unknown, wifiSignalLevel:-1, isMobileDataEnabled:false, screenOrientation:0, screenBrightness:255, screenLocked:false, screenOn:true, batteryTemperature:0, plugged:false, keyguardLocked:false, locale:en_US, serial:unknown, build:android_x86_64-userdebug 9 PI eng.lh.20200325.112926 test-keys, androidVersion:9, webviewUA:Mozilla/5.0 (Linux; Android 9; Build/PI; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/93.0.4577.62 Safari/537.36, motionDetectorStatus:0, isDeviceAdmin:true, isDeviceOwner:false, internalStorageFreeSpace:52858941440, internalStorageTotalSpace:58541096960, ramUsedMemory:1100111872, ramFreeMemory:2924949504, ramTotalMemory:4025061376, appUsedMemory:7898304, appFreeMemory:193428288, appTotalMemory:201326592, displayHeightPixels:1080, displayWidthPixels:1920, isMenuOpen:false, topFragmentTag:, isInDaydream:false, isRooted:false, isLicensed:true, isInScreensaver:false, kioskLocked:false, isInForcedSleep:false, maintenanceMode:false, kioskMode:false, startUrl:https://sharptools.io/dashboard/view/tjLkQr6lnfFJ3Q86W8EH?kiosk=true, currentTabIndex:0, deviceID:63c4b936-e107421a, appVersionCode:943, appVersionName:1.43.5, androidSdk:28, deviceModel:unknown, deviceManufacturer:unknown, foregroundApp:de.ozerov.fully, currentPage:https://sharptools.io/dashboard/view/tjLkQr6lnfFJ3Q86W8EH?kiosk=true, lastAppStart:9/5/21 11:48:06 PM]

[dev:993](http://192.168.2.108/logs#dev993)2021-09-13 01:11:08.051 pm [trace](http://192.168.2.108/device/edit/993)[refreshCallback] response.status: 200

[dev:993](http://192.168.2.108/logs#dev993)2021-09-13 01:11:08.019 pm [debug](http://192.168.2.108/device/edit/993)[refresh] [uri:http://192.168.2.139:2323/?type=json&password=***********&cmd=deviceInfo, requestContentType:application/json, contentType:application/json]

But when I click on the events tab in the device I only see the CurrentPageURL. When I look back through the events I see that it stopped reporting all other events on September 4. I can’t figure out what changed on that date.

If there are no ideas I can try deleting the device and recreating it? Thanks.

Can you pm me screen shots of the device settings?

The good news is that its able to ping the tablet. But the tablet isn't reporting back on its own. Could be the devicenetwork id maybe if thats not correct.

After updating to 2.2.9 some messages stopped speaking and the log reported numerous errors similar to the following:

groovy.lang.MissingMethodException: No signature of method: user_driver_GvnCampbell_Fully_Kiosk_Browser_Controller_609.speak() is applicable for argument types: (java.lang.String, java.math.BigDecimal) values: [test, 80]

groovy.lang.MissingMethodException: No signature of method: user_driver_GvnCampbell_Fully_Kiosk_Browser_Controller_609.speak() is applicable for argument types: (java.lang.String, null) values: [Garage door is moving, null]

My workaround:
Change line 302 from
def speak(text) {

to
def speak(text, volume=50) {

allows for a second parameter (volume that currently is unused) that is sometimes sent by HE with the speak command.

There is a third STRING parameter that could be passed for voice name. Also - not sure if you use Amazon Fire HDs but at some point they change the media stream id from 9 to 3 for the media channel which FKB uses for sounds and TTS. Took me a moment to figure out why I couldn't update levels.

1 Like

I use two older Amazon Fire HD8s, and two old cell phones with FKB. Currently all devices are working with sounds and TTS.

I'm aware that on some devices a "voice" can be selected, however AFAIK on Android/Fire devices I believe it's set in the output device's settings. If you want to be 1000% safe change it to
def speak(text, volume=50, voice='whatever voice you want')

No idea on the media stream issue. Does anything have to change in the code?

Update: app fails if voice is added to the speak command, use the format above.

I don't think so - just an FYI to users for Fire HDs that they may need to change the preferences "Volume Stream" from 9 to 3 if the volume is not changing.

1 Like

Occasionally - every couple of weeks(?) my two Kindles HD 8 10th Gen and HD 10 9th Gen do not turn on when told to in the morning. They are clearly running as the plugin is reading motion from them and shows battery at 100%. I try Screen On, Screensaver Off, On, etc. and nothing. I have to physically push the power button - it displays Fully Kiosk, not the Lock Screen or anything else - so fully kiosk is running. And then any subsequent screen off/on works fine.

Just curious if anyone else sees anything like this?

FYI - My logs are not reporting anything, but I am having a problem with my logs that Gavin is helping with separately.

Maybe I missed it somewhere but how exactly does the strobe function work?

That command just kicks off the siren which plays the siren sound.

2 Likes

You're brilliant.. Changing line 302 worked. Thank you!

2 Likes

I just realized that I hadn't updated to the latest driver version. It's updated now BUT it says I need a new version of FKB. Seems that my current FKB install thinks it's the latest version.

Boom you're awesome! I wasn't sure what was going on because I could send TTS commands from the device's page but my automations in Rule machine weren't working (and throwing the same error you had). Did your quick code fix and it solved it. Thanks!

2 Likes

I have an issue with my samsung tablet and the Tone Audio File URL.

My Samsung Tab A7 Lite shows my file's path as: /SD card/Download/beep-08b.mp3
So, I put file:///SD card/Download/beep-08b.mp3 into the preferences but I get bad URL or unsupported format message.

Looking at the log, it encodes my URL to file%3A%2F%2F%2FSD+card%2FDownload%2Fbeep-08b.mp3.

SD+card is obviously the problem, or so it seems. It should be SD%20card but it encoded it as if it was a parameter instead of the URL.
I can't put in %20 myself as it gets encoded to %2520 and the URL ends up as file%3A%2F%2F%2FSD%2520card%2FDownload%2Fbeep-08b.mp3
I tried to rename the sdcard but Samsung keeps using SD Card in the file path no matter what I name it to.

I need to get Samsung to either use a name that doesn't contain a space or put in a URL where the space is properly encoded as %20. But I am out of ideas on how to do this.
Any idea what I should try?

Suggest verifying directory 'SD card' actually works
On your Android device in any browser enter
file:///SD card
if that works and shows your directories, I can't solve this issue. Otherwise try
file:///sdcard
if that works you have the solution

file:///SD card does not work.
file:///sdcard does
file:///sdcard/Download/beep-08b.mp3 gives me the beep in the browser.
So, I set it back to sdcard and try beep again. Fully Kiosk still gives me the Wrong URL or unsupported format message.
If the url isn't the issue, then maybe it is the mp3. I got it off of soundjay. But it plays in the browser. And if it plays in the browser, I am assuming that it isn't the format or any kind of permissions issue.
There has to be something obvious I am missing....

Maybe it's the dash - in the url. Try renaming the file to beep08.mp3

Nope. Doesn't make a difference.

I tried setting Fully's start page to the beep file. That works.
I called Load URL with the beep file and that gave me:
The webpage at file:///sdcard/Download/beep08b.mp3 could not be loaded because: net::ERR_FILE_NOT_FOUND.
(Yes, the file no longer had the - in each case.)
So, I am only more flummoxed.

It's gotta be permissions somehow.