From what I could find on the internet, our LOCAL options are geyserwise, geyserworx and siluxcontrol. Non have open API or integration that I'm aware of, but at least all of them have an app of some sorts.
Standard geyserwise you are limited to timing options, however it does give a good indication of temperature. Not sure if the "internet" version has better timer options. Adding the internet part is also relative expensive (close to the cost of the geyserworx). Temperature are measured by a sensor that replaces the standard thermostat.
Geyserworx are expensive but it looks like it's got more options for timers. Temperature is measured by placing the temp sensor on the outlet pipe as close to the geyesr as possible, so temp reading is I think, less accurate than the geyserwise.
Siluxcontrol, somewhere in-between the other two. Temp is measured the same way as the geyserwise I believe.