Page 1 of 1

dummy device type "electricity usage" does not seem to calculate costs

Posted: Wednesday 08 January 2025 20:35
by renerene
dummy device type "electricity usage" does not seem to calculate costs, see legenda in screenhot below of fresh made device

Image

Re: dummy device type "electricity usage" does not seem to calculate costs

Posted: Wednesday 08 January 2025 20:41
by waltervl
That is correct as it does not measure kWh but only Watt.
It is by the way not advised to use this type of device as it also has no history. Better use the Electricity (instant and counter) sensor as indicated in the wiki
https://wiki.domoticz.com/Dummy_for_vir ... lectricity

Re: dummy device type "electricity usage" does not seem to calculate costs

Posted: Wednesday 08 January 2025 21:10
by renerene
thanks for the explanation Walter.
(my excuse: the advice to not use this device was not on on the dzVents wiki)

For this incidently user it is a bit overwelming and confusing.I was using you "Electricity (instant and counter) sensor" before, to monitor my airco that only reports current [amps]

A bit of topic is here my script to fill the "Electricity (instant and counter) sensor" Maybe you could be so kind to have a look?
the problem: it resulted in some negative values in the log for energy bars

Code: Select all

return {
	active = true,
	logging = {
		--level = domoticz.LOG_DEBUG, -- comment to use the dzVents global logging setting
		marker = 'dzOpenEvseKwh'
	},
	on = {
	   devices = {
	       'OpenEVSE - Amps'
	      --,'triggerhulp'
	   }
	},
	data = {
        vorigSec = { initial = 0 },
    },
    
    execute = function(dz, item, timer)
        if dz.data.vorigSec > 0 then -- niet de eerste keer / data leeg?
            secNu = os.time()
            secVerstreken = secNu - dz.data.vorigSec
	        stroom= dz.devices('OpenEVSE - Amps').current
            voltage = dz.devices('tuyaPlug2AircoOverloopVolt').voltage
            vermogen= stroom * voltage --power [Watt]
            energie=vermogen * secVerstreken/3600 -- energy [Wh]
            dz.devices ('openEvseKwh').updateElectricity (vermogen, energie) --updateElectricity(power, energy): Function. Supports command options.
            dz.log ('sec: '..secVerstreken, dz.LOG_INFO)
            dz.log ('stroom: '..stroom, dz.LOG_INFO)
            dz.log ('voltage: '..voltage, dz.LOG_INFO)
            dz.log ('vermogen [Watt]: '..vermogen, dz.LOG_INFO)
            dz.log ('energie [kWh]: '..energie, dz.LOG_INFO)
        else
            dz.log ('geen realistische tijdwaarde / eerste keer? ', dz.LOG_INFO)
        end
        
        dz.data.vorigSec = secNu
    end
}

Re: dummy device type "electricity usage" does not seem to calculate costs

Posted: Wednesday 08 January 2025 21:50
by renerene
to answer my own post: problem solved, you need to pass TOTAL Wh, not delta Wh

correct script to convert Amps to power:

Code: Select all

return {
	active = true,
	logging = {
		level = domoticz.LOG_DEBUG, -- comment to use the dzVents global logging setting
		marker = 'dzMitsubishiAircoKwh'
	},
	on = {
	   devices = {
	       'MitsubishiAircoControl current power'
	      --,'triggerhulp'
	   }
	},
	data = {
        vorigSec = { initial = 0 },
    },
    
    execute = function(dz, item, timer)
        if dz.data.vorigSec > 0 then -- niet de eerste keer / data leeg?
            secNu = os.time()
            secVerstreken = secNu - dz.data.vorigSec
	        stroom= dz.devices('MitsubishiAircoControl current power').current
            voltage = dz.devices('tuyaPlug2AircoOverloopVolt').voltage --better than 230 solid value
            vermogen= stroom * voltage --power [W]
            oudeEnergie = dz.devices('mitsubishiAircoKwh').WhTotal
            energie=vermogen * secVerstreken/3600 --[Wh]
            dz.devices ('mitsubishiAircoKwh').updateElectricity (vermogen, energie + oudeEnergie) --updateElectricity(power, energy): Function. Supports command options.
            --dz.devices ('mitsubishiAircoKwh').updateEnergy(vermogen) --updateEnergy(energy): Function. In Watt.
            dz.log ('sec: '..secVerstreken, dz.LOG_INFO)
            dz.log ('stroom: '..stroom, dz.LOG_INFO)
            dz.log ('voltage: '..voltage, dz.LOG_INFO)
            dz.log ('vermogen [Watt]: '..vermogen, dz.LOG_INFO)
            dz.log ('oudeEnergie [Wh]: '..oudeEnergie, dz.LOG_INFO)
            dz.log ('energie [Wh]: '..energie, dz.LOG_INFO)
        else
            dz.log ('geen realistische tijdwaarde / eerste keer? ', dz.LOG_INFO)
        end
        
        dz.data.vorigSec = secNu
    end
}