Kod: Markera allt
local function readCounter(cnt)
open = io.open
file = open("/mnt/1wire/1D.DAF20C000000/counter.B", "rb") -- r read mode and b binary mode
if not file then
domoticz.log('RAdbg2 /mnt/1wire/1D.DAF20C000000/counter.B not open', domoticz.LOG_INFO)
else
content = file:read "*a" -- *a or *all reads the whole file
file:close()
cnt = tonumber(content)
end
return cnt
end
return {
on = {
devices = {
'CounterDAF3'
}
},
execute = function(domoticz, device)
LastEnergyTimestamp = domoticz.variables('LastEnergyTimestampTotalt').value
LastEnergyCount = domoticz.variables('LastEnergyCountTotalt').value
today = domoticz.devices('CounterDAF3').counterToday*1000
counter = domoticz.devices('CounterDAF3').counter*1000
currval = readCounter()
actual = (currval - LastEnergyCount)/((os.time()-LastEnergyTimestamp)/3600)
if currval ~= LastEnergyCount then
domoticz.devices('Total Usage').updateElectricity(actual,currval)
domoticz.variables('LastEnergyTimestampTotalt').set(os.time())
domoticz.variables('LastEnergyCountTotalt').set(currval)
else
domoticz.devices('Total Usage').updateElectricity(actual,currval)
end
end
}
Är det någon som vet vad skillnaden är mellan nya och gamla RPi?larky skrev: ↑17 jan 2020, 08:43 https://www.hyggeit.dk/2013/04/super-ch ... power.html
Pulsräknare direkt på RPi
Absolut, kan ordna en liten guide senare ikväll om jag hinner eller lite senare i helgen. Det är inga stora förändringar mot ursprungsscriptet (https://www.rakett.dk/2016/12/rpi-cheap-power-meter/) utan det var mindre grejer som behövde göras för att få igång det på nyare hårdvara/mjukvara.Pliggen skrev: ↑03 feb 2020, 22:39 Har länge funderat på att göra något sånt här. Har en väderstation som skickar data till weewx som körs på en Rpi, skulle va roligt att få in elförbrukningen i samma databas och kunna visa på samma vädersida som weewx skapar och se hur elförbrukning ändras vid olika temperaturer. Köpte en sparsnäs för ett tag sen men har inte lagt någon energi på att skapa något ännu med den. Men kanske vore detta smidigare att göra med de få grejjerna.
Vill du dela med dig av det uppdaterade scriptet?
Och kanske någon bild på hur det ser ut när det loggas?
Dela gärna med dig av dina "erfarenheter" i detta projekt!
Vore kul om det gick att göra något av detta nu!
Kod: Markera allt
sudo raspi-config
Kod: Markera allt
sudo apt-get install python-dev
sudo apt-get install python-setuptools
sudo apt-get install mariadb-server
sudo apt-get install python-mysqldb
sudo apt-get install phpmyadmin
sudo apt-get install apache2
Kod: Markera allt
sudo /var/www/html/cpm/script/./debug.py
Kod: Markera allt
CREATE DATABASE measurepower;
CREATE USER 'measurepower'@'localhost' IDENTIFIED BY 'yourpasswordhere';
GRANT ALL privileges ON measurepower.* TO 'measurepower'@'%';
Kod: Markera allt
CREATE TABLE IF NOT EXISTS `watthours` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`datetime` datetime NOT NULL,
`lightvalue` int(11) NOT NULL,
`unixtime` int(30) NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;
Kod: Markera allt
sudo nano /var/www/html/cpm/script/readlight.py
sudo nano /var/www/html/mysql.database.php
Kod: Markera allt
sudo nano /etc/rc.local
Kod: Markera allt
(sleep 10;python /var/www/html/cpm/script/readlight.py)&
Kod: Markera allt
exit 0
Kod: Markera allt
sudo reboot
Kod: Markera allt
sudo nano /var/www/html/cpm/script/readlight.py
Kod: Markera allt
while True:
result = RCtime(18)
if result<900: #Adjust this to fit your readings via ./debug
print(result)
Writewatt(result)
time.sleep(0.1)