Navigation from homepage to other pages via URL call only works on second try

Tags: #<Tag:0x00007fc8fa1856d0> #<Tag:0x00007fc8fa185068> #<Tag:0x00007fc8fa184870>

I am using Fully Kiosk Brower on my wallmounted Tablet to control openHAB 3 via MainUI which is working very well. Thank you for all the effort! It is really amazing!

I am now trying to display different pages on specific events, ie to show my Camera-page on motion on front door, which is not completly working.

With Fullys REST API I am able to fire a rule that invokes a command like this, which show me the MainUI Hompage:
sendHttpGetRequest("http://xxx:2323/?cmd=loadUrl&url=https%3A%2F%2Fdemo.openhab.org%2F%23%21%2F&password=xxx&type=json")

But when I then try to load one of the following pages for the first time I just get the Homepage displayed. When I send the request for a second time then I get the page displayed that I wanted:
https://demo.openhab.org/#!/page/temperatures
https://demo.openhab.org/#!/page/chart_tabs

This behaviour is also reproduceable with a desktop/android chrome by entering the URLs in the adress bar so nothing Fully-specific. The problem is not occuring when switching between different pages, just when coming from Homepage. This feels somehow unreliable and I would like to find a proper working solution. Is there any other way to navigate from Homepage to pages? Could I build my own page with the contents of the homepage (Locations/Equipment/Properties-Tabs) so I dont have to use the default Homepage anymore?

Is this behaviour “working-as-intended” or could this be a fixable bug?

I did not find anything of value by searching.

Thanks

can you set a referrer to simulate that you came from a different page ?

Hmm, I am not really familiar with web calls like that. It seems that manipulating the referer is somehow considered bypassing security concepts and would only be possible by significant more effort. This seems unpossible with just a simple url call that Fully is able to submit.

Assumed your simulation would work, do you think there is a chance that it can somehow get it working in my use case?

Thanks

Relying on the referrer header content is security through obscurity. Using curl, wget, python, perl it is just defining one HTTP header to be added to set the referrer.
Is sendHttpGetRequest a function in Fully REST API or is it the one from the HTTP binding ?

Ah is see. The sendHttpGetRequest is no Fully function. Its my rule code like:
when Item BewegungenVorHaustuer changed to ON then sendHttpGetRequest("http://xxx:2323/?cmd=loadUrl&url=http%3A%2F%2Fxxx%3A8080%2F%23%21%2Fpage%2Fpage_7befcc9bdd&password=xxx") end

I don’t know if this function is from the HTTP-Binding or some kind of native function but that should not be relevant.

FTR: I just updated to 3.0.1 and the behaviour is the same.

How about letting a popup appear depending on an items state? This way you don’t even need a rule:
With the following widget, a camera stream will popup as soon as your item BewegungenVorHaustuer changed to ON and you can close it with a simple click on the popup (and setting BewegungenVorHaustuer to OFF)

component: f7-popup
config:
  style:
    --f7-popup-tablet-width: 57%
  animate: true
  closeByBackdropClick: false
  opened: '=(items.BewegungenVorHaustuer.state == "ON") ? true : false'
slots:
  default:
    - component: oh-image-card
      config:
        url: http://cam-eingang/control/faststream.jpg?stream=full&fps=0
    - component: oh-button
      config:
        action: command
        actionItem: BewegungenVorHaustuer
        actionCommand: OFF
        style:
          --f7-button-bg-color: transparent
          --f7-button-hover-bg-color: transparent
          --f7-button-pressed-bg-color: transparent
          height: 100%
          width: 100%
          position: absolute
          left: 0px
          top: 0px
          z-index: 999

That would be awesome and was my first idea because. I dropped it as I saw no chance of reacting to an item-state. Can I get the popup to be nearly fill the screen? Changing --f7-popup-tablet-width: to 90% makes no difference but probably I doing it wrong.

How do I use your code? I tried to paste it into the “edit yaml”-section of a cell which I added but it gets changed to component: oh-cell. Thats probably why --f7-popup-tablet-width: gets ignored?

Thanks!

not sure. It is hard to change the position or size of the popup. Maybe try popover. If it does not have a launching element (like a button) it starts in the top left corner. At least it is easier to control the size.

Create a personal widget and then place it anywhere where you have space. doesn’t matter where because the popup will appear centered and the popover on the left corner

Thanks Oliver,

I could control the size quiet well with:

--f7-popup-tablet-width: 1280px
--f7-popup-tablet-height: 800px

Using percentages for the height was somehow strange and moved the head of the popup outside of the viewable area.

I found another property:
tabletFullscreen: true
works perfectly

1 Like