Daily:
if Hour('*')=0 and ('import.kwh'<=0 or BadVal('import.kwh'))
then PrevVal('import.kwh', (PrevEvent('import.kwh', '*')))-TagVal('import.kwh', 'y')
else (TagVal('import.kwh', 't') - TagVal('import.kwh', 'y'))
Monthly :
if (Hour('*')=0 and Day('*')=1)
Then TagVal('import.kwh', '*')-TagVal('import.kwh', '*-1mo')
else NoOutput()
Yearly:
if (Hour('*')=0 and Day('*')=1 and Month('*')=1)
Then TagVal('import.kwh', '*')-TagVal('import.kwh', '*-1y')
else NoOutput()