Summing up result from differences into blocks of minutes

I want to query the sum per minute from the result obtained from another query that calculates the difference between subsequent values.

select sum(ph1), sum(ph2), sum(ph2) from (select 
non_negative_difference(day_chan1) as ph1,
non_negative_difference(day_chan2) as ph2, 
non_negative_difference(day_chan3) as ph3 
from electricity) 
group by time(1m) tz('Europe/Dublin')

For example if I get the following from the suqbquery

time                 ph1 ph2 ph3
----                 --- --- ---
2017-04-02T14:40:38Z 0   0   2
2017-04-02T14:41:38Z 1   1   1
2017-04-02T14:41:39Z 0   0   2
2017-04-02T14:42:38Z 1   1   1
2017-04-02T14:42:39Z 0   1   2

I want to sum them up into

  time                 ph1 ph2 ph3
    ----                 --- --- ---
    2017-04-02T14:40:00Z 0   0   2
    2017-04-02T14:41:00Z 1   1   3
    2017-04-02T14:42:00Z 1   2   3

but what I get from the query is aggregate function required inside the call to non_negative_difference but if I do the sub query on its own, it returns the results