A big problem with software and people who write software (often) is that software doesn't like all the ways that human beings misbehave, change their minds, don't have immutable states, and don't fit into the categories you build for them. So any system that has a duty to serve everyone eventually ends up with an operational component that has almost as much human interaction and problem solving required as the soft…
Some people may be irrational, but smart meters are a huge privacy concern - the electricity company can figure out your patterns from the power usage and the "shape" of it. This is the reason why I don't want a smart meter.
Disclaimer: I actually was involved in building firmware and management software of smart meters.