Indeed I use Dummy devices to only send data to domoticz if something was changed
Could you try the following: DIVIDE AND CONQUER
Rules 1:
Code: Select all
On System#Boot do
TaskValueSet 5,1,0
TaskValueSet 5,2,0
TaskValueSet 5,3,0
TaskValueSet 5,4,0
TimerSet,1,30
EndOn
on Rules#Timer=1 do
if [Calculation#Voltage]!=[Energy#Voltage]
SendToHTTP <ipadres>,8080,/json.htm?type=command¶m=udevice&idx=600&nvalue=0&svalue=[Energy#Voltage] // Voltage
TaskValueSet 5,1,[Energy#Voltage]
endif
if [Calculation#Power]!=[Energy#Power]
SendToHTTP <ipadres>,8080,/json.htm?type=command¶m=udevice&idx=603&nvalue=0&svalue=[Energy#Power] // KwH.
SendToHTTP <ipadres>,8080,/json.htm?type=command¶m=udevice&idx=608&nvalue=0&svalue=[Energy#Power] // Watt
TaskValueSet 5,2,[Energy#Power]
endif
if [Calculation#Current]!=[Energy#Current]
SendToHTTP <ipadres>,8080,/json.htm?type=command¶m=udevice&idx=604&nvalue=0&svalue=[Energy#Current] // Amp
TaskValueSet 5,3,[Energy#Current]
endif
TaskValueSet 5,4,[Energy#Pulses]
TimerSet,1,30
endon
Rules 2
Code: Select all
// LAMP CONTROLLING INCLUDING LED LIGHT
on lamp_on do
gpio,12,1
gpio,13,0
endon
on lamp_off do
gpio,12,0
gpio,13,1
endon
on SW_1#Switch do
if [SW_1#Switch]=1
gpio,12,1
gpio,13,0
else
gpio,12,0
gpio,13,1
endif
endon
Rules 3
Code: Select all
on Clock#Time=All,**:*0 do
SendToHTTP <ipadres>,8080,/json.htm?type=command¶m=udevice&idx=600&nvalue=0&svalue=[Energy#Voltage]
SendToHTTP <ipadres>,8080,/json.htm?type=command¶m=udevice&idx=608&nvalue=0&svalue=[Energy#Power]
SendToHTTP <ipadres>,8080,/json.htm?type=command¶m=udevice&idx=603&nvalue=0&svalue=[Energy#Power]
SendToHTTP <ipadres>,8080,/json.htm?type=command¶m=udevice&idx=604&nvalue=0&svalue=[Energy#Current]
endon
That should give you the result you want.
and leave the interval at 10 as you discovered.