reef-pi / reef-pi

An opensource reef tank controller based on Raspberry Pi
http://reef-pi.com
Other
396 stars 132 forks source link

Items in the equipment tab do not update until outside action is preformed. #858

Closed gminton86 closed 4 years ago

gminton86 commented 5 years ago

This is more of a pet peave then it is a problem but still can cause confusion.

Say I have an ATO water solenoid that is controlled by a relay in my 8 relay bar. Which is then controlled by an input based on water level. The toggle for that piece of equipment in the Equipment tab will not change its status (of either on or off) to the toggle unless I am changing a different toggle not even related to it. So sometimes when I am turning my protein skimmer off and the ato toggle states it is on. As soon as I toggle the protein skimmer the ato will quickly act also and go to the position it should actually be at. So sometimes if I have the reef pi up on my screen for a while and the ato was on earlier in the day it will stick and say it is on when in fact it isnt and when I toggle the protein skimmer it seems like it checks all the status's of other toggles and realizes that the ato isn't on and changes the toggle to match it actual status

pi 3 2.4 firefox

ranjib commented 5 years ago

We can poll in the background and update the equipment state. But I worry that will come at performance cost. Its also not very accurate always, since the polling time (say 10s) can be different that ato check time (e.g. 2s), let alone the synchronization issue. This is a bigger challenge... and its across all the components in reef-pi. Let us think about whats the best way to address this. We wont have time to get to this in 3.0, but after that , lets have a discussion around this. I am thinking of server push or other pub/sub style communication which may help us avoiding polling. @Ranthalion @zekth thoughts?

gminton86 commented 5 years ago

Im just doing my part in using this as open source by bringing up the real issues I have faced in using it. So Im sorry if I don't know any ideas on how to fix it but somebody else might see this and have some feedback. Sorry im not much help.

zekth commented 5 years ago

We can also declare a Websocket channel for that no?

Ranthalion commented 5 years ago

Agreed. Server Sent Events would be good for this, as would web sockets.

ranjib commented 5 years ago

Im interested in the websocket based implementation. Lets discuss this after 3.0 release. My only concern is if it will impact the chromium and other browsers present on Pi. It also needs significant rearchitecture I think, but thats fine, @Ranthalion was talking about a common pub/sub style framework earlier, this is in alignment with such work

github-actions[bot] commented 4 years ago

Stale issue message

github-actions[bot] commented 4 years ago

Stale issue message