The prior log showed the common wiring of the control lines which gives us a basis to work from when figuring out how to power this module.
For convenience and reliability, it is much preferred if the add on module can be powered from the existing system, so that no additional wiring is required, no batteries to replace, etc. If the "C" wire is available at the location of the module to be installed, this is easy. 24VAC is then present and can be tapped off the C and R wires without issue.
If the "C" wire is not available, a method sometimes referred to as power stealing can be attempted, which pulls power through the heat/cool/fan control lines while pulling so little that it doesn't activate those circuits. This method is very dependent on the existing system. If those circuits are simple relays we can pull a moderately small current through them without activating the relay. How much depends on the relay, but some relays may allow in the range of 50mA, while others maybe only 10mA or less. However, if the control circuit feed a much lower current than a relay, these number go even lower, and may no longer be AC. That is, a more modern HVAC system control board may use opto isolators, so as little as 5mA or even 1mA may trigger activation, while the diode in it will remove half the AC waveform. It is for this reason power stealing will not work in every application. In situations where it does not work, the installation of a resistor in the HVAC system may make it work. Referring to the block diagram again, if we add a resistor across the heat system and cool system blocks, we can pull current through those resistors to power steal, but not activate the system.
If power stealing is used, it should be noted that if the circuit power is being taken from is activated by either this module, or the existing thermostat, this circuit is effectively shorted out, and no power can be drawn. The intended solution is to draw power from multiple channels, such as heat and cool, which are never activated at the same time. Capacitors or battery backup could also be used to cover over this time. If this is not possible, for instance in a system with only heat and fan, or with only cool and fan, the basic module may be able to still work. In that case, the module would be powered down, but upon shutdown of the HVAC system(when the thermostat is satisfied), the module will be powered up again and begin timing again. This use case will not be initially covered as a requirement, but kept in consideration.
The last method is to use batteries. Many thermostats on the market use their own batteries for this very reason, and frequently last multiple years.
A possible further method for exploration would be a solar cell and backup capacitors. Given the need for low current, this is doable with cells that are not unreasonably large, and operate on only indoor light, but the utility of this is questionable, so won't be initially explored.
The intent of this design is to support any of these methods so that it is more universal.
Supporting these however does mean that the module must run at quite small power levels, ideally averaging less than 1mA, but it may be acceptable to use more.
Using the direct wire input(via C and R wires), means using 24VAC, but to be more flexible, it means supporting DC, and a wider range of voltage to adjust for loss, or variations in systems. The wider range the better. Using power stealing has these same limitations, but also may result in lower voltages as there will be voltage drop across the HVAC relays. The simplest way to do this is to use bridge rectifiers from each of these sources, feeding a linear regulator. This allows quite low voltages to be supported, supports AC and DC inputs, but wastes power in the substantial voltage drop in the linear regulator. A buck converter instead of the linear regulator can reduce the current even more which increases compatibility, but adds complexity.
Powering from batteries is easier to implement, using a simple LDO linear regulator, or a switching regulator, again with the efficiency/complexity tradeoffs. It is possible that this circuit could be shared with the regulator used for the 24VAC input options, and could provide battery backup in case some of the more complex features of the module are included and should be backed up(such as schedule, clock, etc) during power outage.
The intent is to design the module to support as many of these methods as is reasonable to remain flexible in system support with one model of module.
All of these show that it is best to design the module to use the minimum current possible. There are a wide variety of microcontrollers which can run at very low power. The MSP430 comes to mind, and I have an eval board, so might go with it. Using an Atmega is another option, and has the advantage of easier development overhead under the arduino environment, but doesn't go quite as low current.(with aggressive use of internal osc at low frequencies and sleep modes gets it in the range of <1mA)
Note that this module is operating with a floating ground. This is required as it is being powered from an AC voltage, which due to variations in installation, it is unknown which wire(if either) is actually ground. What this means is that when compared to earth, the module may be operating at negative voltages, and/or that the potential of the entire circuit is varying with the AC input. This is fine, and generally safe, but it does mean that care must be taken to not ground anything connected to the module.(for instance, through the serial port when debugging)