An interesting challenge: to automate the A.C. activation with adequate leeway, and the ability to infer whether it is on or not.

Without the automation system knowing the state of the A.C. nor whether the A.C. power toggle button press was heard and actioned successfully. My thoughts are:

1) the system can only infer the A.C. state by observing the output of the temperature sensor over time, and comparing it to the output of the same sensor over the time before the button was triggered

2) sufficient time needs to be given to see adequate change in trends, with further button triggers ignored in that time

3) it should only trigger for “too hot or not” events, as before/after temperature delta trend changes would be different during other times (e.g. to reduce humidity, to heat when too cold, etc)


  1. Variables for whether cooling is needed, whether cooling is believed on, whether cooling is currently being inferred (and hence more toggles should be ignored)
  2. Variables for inference duration, tightness of temperature regulation
  3. Rules for change in temperature trends
  4. Only trigger a toggle when the desired state differs from the inferred state (e.g. inferred off by temp delta but desired on by over max)
  5. Only trigger an inference from a toggle trigger
  6. Disallow any further attempts at a toggle trigger when inferring is active
  7. Inference period 3 temperature reads.
  8. Consider on if temperature is or exceeds -0.5C over reads. Be careful of rapid night cooling.
  9. If after toggle+infer, desired doesn’t match inferred, wait 1 temp read before toggle+infer again

UPDATE/ 20211106:

Implementation so far:

  • Always inferring on a loop (hence no point 5 above)
  • Inference period 3 temperature reads is based on observation of rate of temperature trend changes in our specific case
  • Flag added for whether auto A.C. control is actually active