Hi everyone While trying to resolve the Leaf's poll state management, I find myself needing to understand the different levels of poller state that exist in the main (non-vehicle-specific) code. What is the semantic difference between these? OvmsVehicle::m_poll_state OvmsPollers::m_poll_state OvmsPoller::m_poll_state To me it appears the first two duplicate each other, and I'm not sure why. The third one is a little different as it's per poller (i.e. per bus). If I follow how changes are propagated to these for my car, I see: OvmsVehicle::PollSetState(state) This immediately sets OvmsVehicle::m_poll_state = state, and calls: OvmsPollers::PollSetState(state) This immediately sets OvmsPollers::m_poll_state = state, and queues a request to set the lowest level states. When the request is processed, it loops through the buses. For each it calls: OvmsPoller::Do_PollSetState(state) This sets this instance's OvmsPoller::m_poll_state = state, and updates some associated variables. What is the logic behind having so many poll states? Chris