Task Editor Widget Auto Refresh issue (Kitchen Display)

A setup we did recently is using a kitchen display based on the Bump Bar tutorial:

It’s being used as a coffee screen to show coffees to prepare and in a very busy restaurant (each day they serve 300 or more hot drinks during their morning peak period alone).

I’ve used the same setup a few times before and haven’t had issues.

I’ve got a very strange issue where on the coffee screen system the Task Editor widget is not updating automatically. I have “Auto Refresh” turned on and have tried the “Auto Refresh Interval” at both 0 and higher numbers, such as 10.

Tasks are being created, they show in database and I can “force refresh” the entity screen by either entering and exiting Design mode, or by marking a task as complete then recalling it. Then all the new tasks appear.

I cannot get to the bottom of the issue so here is more info about the setup and what I have found and tried so far.

Using SambaPOS v5.2.14 with SQL Express 2017 database.
Server system running Win 10 64 bit, with SQL Express 2017 and Message Server. Message Server set to run under an Admin Windows user account.
4x POS terminals, running Win 7 32 bit
Coffee screen system running Win 10 64 bit
Everything connected on same network, all wired connections.

When I first set it up, it worked fine, I was placing orders on the server computer and they were showing up almost immediately on the Coffee Screen.

When the system went live, my client reported the coffee screen wasn’t updating. Upon checking, only the server computer orders would show automatically. Any orders from other POS terminals would not show. I restarted everything, then after a few minutes everything appeared to work fine, and it worked fine with all terminals updating the coffee screen automatically for about 5 hours, then stopped working again. I could still place orders from server and they showed up automatically, but none of the POS terminals would update the coffee screen.

I disabled Windows Firewall on all systems - no difference.
Message server is connected on all terminals and entity state updates for table status show instantly on the table entity screen across all terminals, so no issue with those types of updates.

I started to think it was an issue with the terminals connecting via message service given the orders placed on the server computer (where message service is installed) would work.

Then I looked into what the difference was between the terminals and the server. I found out that all the POS terminals and the coffee screen were communicating between each other using TCP/IP v6, whereas between the server and all terminals and coffee screen was using TCP/IP v4.

image

I thought possibly Message Service is incompatible with TCP/IP v6, so I disabled v6 protocol on all systems then restarted them to force them to use v4.

After this, everything worked!..I thought I had found the cause… however it was short lived, after a few hours, the same issue started again and the coffee screen failed to auto update again… :cry:

I set all terminals, coffee screen and server to use static IP, and specified message service on all terminals to use the IP address - no difference.

I tried running the coffee screen on all the terminals, and sometimes it would update automatically and sometimes not, there was no reason or logic as to when it would update or not. Eventually it just didn’t update on all again for a while.

So I gave up on it - the client is very busy and with the volume of orders they can’t cope peak periods without the coffee screen. SambaPOS replaced another system that had a coffee screen, so staff were used to this workflow. They gave an ultimatum that they would have to revert back to the old system if it wasn’t resolved quickly, so I took the drastic approach to rebuild the coffee screen using Ticket Lister, which all worked fine with updates, but they need the “bump bar” (keyboard) to update as they don’t use a touch screen, it’s a 27" monitor mounted up high and their old system had a bump bar too. So currently although I replicated the coffee screen as Ticket Lister, it isn’t working ideal and I have to have many workarounds and still not implemented a way to navigate by keyboard, which is sometime I will have to do (I have ideas…) but I would rather not. It’s going to have to be a whole load of SQL reports and custom scripts to assign 1-9 numbers to the recent tickets and I can’t imagine it will work well performance wise, even with tests after having just about 20 tickets on the screen the screen slows down. Plus I then run into a whole load of other issues about updating tickets, reopening settled tickets to change a ticket state and those events won’t all run in background and flash the screen when updating. That is all a different matter and irrelevant to this topic…

So I want to get the Task Editor coffee screen working properly and auto updating correctly. I really need some help, @emre what could be causing this? What else can I try? Is there any debugging options I can enable to understand more about the messaging and where it is going wrong, or can you implement a way to debug it better so we can get to the bottom of this?

Thanks… :slight_smile:

1 Like

Add a small label on screen that displays for example total task count. I m wondering if it will also stop updating or not.

1 Like

Before doing that can you check if terminal system clock and server clock did set correctly or not?

Yes they are, I checked this already.

Just checked, also all on same correct timezone.

1 Like

Be sure to set auto refresh interval as 0 while testing. You shouldn’t need to set it to other values.

1 Like

I will test it shortly, I need to wait until they close.

Can you clarify, if set at 0 what triggers the update? And what is the difference / benefit of then setting another value say 10 secs?

There are built in refreshes like when you submit tickets etc. But sometimes you may need auto refresh if you have a timer running like entity state minutes and it needs update without any other activity.

So you may want an auto refresh if your tracking time on tickets and you don’t expect many new tickets coming in to refresh it for example.

But auto resfresh is not required to update for new tickets it already sends an update with them.

2 Likes

@emre sorry just been able to do this now. Please see video below. I am connected remotely to the kitchen screen, the server and another POS terminal. First I place order on the server, switch to kitchen screen it doesn’t update. Next order is from a POS terminal, also doesn’t update, you can see only updates if I close and reopen the entity screen, enter design mode or mark a task as complete. Note also when I mark the task as complete, the label widget you asked me to add does not update from 2 to 3.

Label widget text - Task Count: {REPORT TASK DETAILS:TSC.Id.Count}

So this is not Task Editor specific. Label widget does not update too. Can you think something that may prevent Message Server to broadcast messages?

Hmm I noticed something.

Do you have chance to set it up as a regular mapped entity screen instead of navigating it as a separate screen? I’m wondering if it makes a difference or not.

Yeah I have done this already as a backup and what they are using currently, just ticket lister with state changes on tickets, I think I mentioned on the original post.

Ticket lister works perfectly as does table entity updates immediately when a change happens across all terminals (I would send a video but I’m outside just now). I tested all this initially when I was trying to diagnose the issue. It only seems to be related to task editor.

But I can’t use ticket lister because they need keyboard support to mark completed, the kitchen screen is not a touch screen.

I mentioned all in original post but message server connected and entity state update work fine, windows firewall disabled on all systems to ensure it wasn’t causing the issue.

How else can I debug this to understand what is causing it?

Shouldn’t label widget update if it is task editor specific?

True. But also label widget was updating something related to tasks also?

At the 1:00 minute mark in your video label widget should update to 2. It is not refreshing like the task editor widget.

Yeah label widget doesn’t update also.

When I first setup this screen it updated then stopped working, then I made changes to network settings etc that I mentioned in original post and it did then uodated again, but only for a few hours. Since then it won’t work again no matter what I do.

I have a video of it updating when I first “fixed” it I can’t share here as it has confidential client details on it but I’ll send you a PM with it.

I requested to have the label widget to understand if it is specific to task editor or not. If there is a case where both widgets does not update we can’t say it is just the task editor.

When I checked the source code where I update the screens I noticed SambaPOS checks the actively displayed entity screen to consider which screen to refresh. As the screen is an unmapped entity screen that we navigate with automation I suspected there might be an issue with determining the active entity screen.

Was the working Ticket Lister version also an unmapped entity screen?

PS: Auto Refreshing with a duration works differently than Auto Refresh with zero duration. When we setup a duration it starts an internal timer and blindly trigger the refresh. When it is 0 some other updater thing updates it externally. Periodical auto refresh may also skip refresh if it thinks it is not the active screen.

Hmm when I re-read your first post I noticed it does not fully stops. So you have a server computer, separate terminal as kitchen display and other terminals. When it stops updating it stops only when an order created from terminals. Creating orders from server always triggers refresh fine.

Are you sure creating orders from servers does not stops updating screen? It is very interesting… If it is the case that have no relationship with widgets. This is clearly a message server communication issue.

Yes

But that also doesn’t update. Only in that video I PM’d when it was working, then it stopped working after a few hours and never worked since.

Unmapped entity screen is interesting, I did test via a mapped entity screen also when I first had problems but I will check that again.

No that’s not happening anymore. In original post I said that was the initial problem then after a few hours it didn’t work at all. Then it worked again after disabling IPv6 but then stopped again. Now the kitchen screen doesn’t update at all, even from server. In the video I posted today, the first order I placed was from the server, second was from another terminal.

1 Like

How did you configured message server? Did you used + in port settings ?