code: def _gpio_callback(self, gpio):
          
          self.debug(u"Triggered #{}".format(gpio))
          try:
              index = self.gpios.index(gpio)
          except ValueError:
              self.error(u"{} not present in GPIO list".format(gpio))
              return
          with self._people_lock:
              person = self.people[index]
              read_val = GPIO.input(gpio)
              if read_val == person.sitting:
                  # Nothing changed?
                  time.sleep(self.gpio_bouncetime_sleep)
                  # Really sure?
                  read_val = GPIO.input(gpio)
              if person.sitting != read_val:
                  person.sitting = read_val
                  self.debug(u"Person is now {}sitting".format(
                      "" if person.sitting else "not ")
                  )
                  try:
                      self.changer.on_person_update(self.people)
                  except:
                      self.exception(
                          u"Failed to update people (Person: {})".format(person)
                      )
              else:
                  self.warning(u"Nothing changed on {}".format(gpio))
docs: Gets triggered whenever the the gpio state changes
  
          :param gpio: Number of gpio that changed
          :type gpio: int
          :rtype: None