Det spelar ingen roll men detta bör funka med din setup:Kall skrev:Ja den heter Elräknare, den trådlösa som sitter och räknar blink på elmätaren.
Sen läste jag att man skulle göra 2 st user variables som heter LastEnergyTimestamp och LastEnergyCount typ integer och värde 0.
Sen gjort en dummy under hardware och virtual sensor typ electric (instant + counter) den fick idx 3 under devices. Låter det rätt eller är jag ute och cyklar?
Fick då en ruta med visning under utility fliken, och den har inte uppdaterat sig eller visat nåt.
Får försöka med det senast du la upp nu och se vad som händer. Troligtvis är det skit bakom spakarna så det kan bli vad som helst.
Så då måste jag göra 3 st virtual sensors om jag förstår det rätt, namnet på dom spelar väl ingen roll?
Kod: Markera allt
--Domoticz Script to get medium actual energy between energy counter readings and puts it on a dummy device etc
f=0.1
--Name of the real energy counter
energyCounter = 'Elräknare'
--ID of the created dummy energy meter with the new actual value
dummyEnergyMeterid = 3
--The names of two user variables to keep track of previous value due to wrong values from dummy in otherdevices_lastupdate and otherdevices_svalues
userVariableTimestamp = 'LastEnergyTimestamp'
userVariableLastCount = 'LastEnergyCount'
commandArray = {}
if devicechanged[energyCounter] then
current_counter_value=tonumber(otherdevices_svalues[energyCounter])
time_diff = ((tonumber(current_counter_value) - tonumber(uservariables[userVariableLastCount])))/((os.time()-uservariables[userVariableTimestamp])/3600)
counts_since_last_read = tonumber(current_counter_value)-tonumber(uservariables[userVariableLastCount])
use_now_watt = f*time_diff
use_now_watt_rounded = math.floor(use_now_watt+0.5)
total_wh_used=current_counter_value*f
total_wh_used_rounded= math.floor(total_wh_used+0.5)
wh_used_since_last_read=counts_since_last_read*f
wh_used_since_last_read_rounded=math.floor(wh_used_since_last_read+0.5)
total_kwh_used=total_wh_used/1000
total_kwh_used_rounded=math.floor(total_kwh_used+0.5)
kwh_used_since_last_read=wh_used_since_last_read/1000
kwh_used_since_last_read_rounded=math.floor(kwh_used_since_last_read+0.5)
print("current_counter_value: " .. current_counter_value)
print("counts_since_last_read: " .. counts_since_last_read)
print("use_now_watt: " .. use_now_watt .. " (" .. use_now_watt_rounded .. ") W")
print("total_wh_used: " .. total_wh_used .. " (" .. total_wh_used_rounded .. ") Wh")
print("wh_used_since_last_read: " .. wh_used_since_last_read .. " (" .. wh_used_since_last_read_rounded .. ") Wh")
print("Used kWh since start: " .. total_kwh_used .. " (" .. total_kwh_used_rounded .. ") kWh")
print("Used kWh since last read: " .. kwh_used_since_last_read .. " (" .. kwh_used_since_last_read_rounded .. ") kWh")
--calculate new actual value
--update dummy energy meters
commandArray[1] = {['UpdateDevice'] = dummyEnergyMeterid .. "|0|" .. use_now_watt .. ";" .. current_counter_value}
--update user variables
commandArray[2] = {['Variable:'..userVariableTimestamp] = tostring(os.time())}
commandArray[3] = {['Variable:'..userVariableLastCount] = tostring(current_counter_value)}
end
return commandArray