Sida 1 av 2

Räknaren började om från noll

Postat: 27 aug 2012, 18:57
av bjornsson
Var och kopplade om lite i 1wire kedjan och efter inkopplingen så började räknaren för elen om från noll igen, vilket resulterar i lite lustiga värden :roll:

Går det att tvinga den att fortsätta från där den slutade på något vis?

Re: Räknaren började om från noll

Postat: 27 aug 2012, 21:57
av elf98
Antagligen är batteriet slut i räknaren och när den tappar spänningen från nätet nollas den. Du har inte kopplat en LED-detektor via batteriet?

Det finns inte något sätt att sätta räknarvärdet, man måste hålla koll på förändringarna och inte absolutvärdet. Då får man "fel" en gång när värdet slår över och sedan rullar det på utan problem.

Re: Räknaren började om från noll

Postat: 27 aug 2012, 22:42
av sege
Jag har kodat in en 'offset' i mitt system så räknaren har minskat eller ökat för mycket enligt vissa kriterier mot förra värdet räknar jag om offset och sparar om som nytt värde som jag sen utgår ifrån. På det viset anser jag mig få minimalt med fel i databasen.

Annars fick jag världens knas när räknaren slog runt eller fick totalt krupp vid något tillfälle. Trodde det var batteriet men den har hanterat spänningslöst efter det så vetifasen vad det var.

Typ så här, första siffra är räknare, efter plus är eventuellt offset och sista siffran är vad jag lagrar i SQL:
1+0 1
2+0 2
3+0 3
1+2 3 (3-1 = offset två)
2+2 4
3+2 5
4+2 6
5+2 7
2+5 7 (7-2 = offset fem)
3+5 8
4+5 9

Hmm, om det går att begripa och jag tror det var så jag gjorde. Stäm mig om jag tänkte fel här lite raskt. :D

Re: Räknaren började om från noll

Postat: 27 aug 2012, 22:56
av Plutonium
Jag är dum så jag kommer att stämma dig :-)

Jag förstår syftet med offset men inte logiken riktigt, antingen så sitter jag här i världen helt själv och kliar mig i huvudet eller så är jag bara dum..

Har du någon kodsnutt man kan kika på? Bash, php etc funkar bättre än svenska - för mig ialf ;-)

Re: Räknaren började om från noll

Postat: 28 aug 2012, 09:41
av sege
Logiken fungerar iallafall, jag har aldrig fel i min kära databas längre vilket jag hade förut. Är kanske enklare att hantera om man sparar förändring mot förra värde hela tiden istället för att bara räkna upp som jag gör.

Varning för att folk som kan koda på riktigt börjar grina:

Kod: Markera allt

if int(self.data) + int(self.offset) < int(self.lastvalue):
  print "SMALLER: " + sensor_name + " " + self.data + " " + self.lastvalue + " " + str(int(self.lastvalue) - int(self.data))
  self.offset = int(self.lastvalue) - int(self.data)
  SQL = "UPDATE 1wire SET offset='" + str(self.offset) + "' WHERE sensor_name='" + sensor_name + "'"
  self.DB.runSQL(SQL)
elif int(self.data) + int(self.offset) > int(self.lastvalue) + 500000:
  print "TOO BIG!!! Look: "  + sensor_name + " " + self.data + " " + self.lastvalue + " " + str(int(self.lastvalue) - int(self.data))
  self.offset = int(self.lastvalue) - int(self.data)
  SQL = "UPDATE 1wire SET offset='" + str(self.offset) + "' WHERE sensor_name='" + sensor_name + "'"
  self.DB.runSQL(SQL)
self.data = str(int(self.offset) + int(self.data))


Re: Räknaren började om från noll

Postat: 30 aug 2012, 07:46
av bjornsson
elf98 skrev:Antagligen är batteriet slut i räknaren och när den tappar spänningen från nätet nollas den. Du har inte kopplat en LED-detektor via batteriet?

Det finns inte något sätt att sätta räknarvärdet, man måste hålla koll på förändringarna och inte absolutvärdet. Då får man "fel" en gång när värdet slår över och sedan rullar det på utan problem.
Får testa å byta det då, kört den i två år ungefär.
Måste nyligen tagit slut för hade den urkopplad för ca 2 veckor sedan och då gick det bra :)

Mins inte riktigt hur den är kopplad men har gjort enligt wikin som finns här.

Jo det funkar ju men gör jag en koll hur mycket huset förbrukat senaste veckan så får jag felaktigt värde :)
Går det att få till?
Menar vill jag plocka fram totala elförbrukningen för året blir den ju missvisande då den från dagen den nollades hoppade från ca 28000000 i databasen till noll.

Om du kollar här
http://bjornsson.no-ip.com/smartphone/
Sedan el/ månads förbrukning.
Får ju en minus förbrukning på 28.000kwh :)

Re: Räknaren började om från noll

Postat: 30 aug 2012, 10:31
av Niklas
RRD är bra på det sätt att det funkar även om räknaren börjar om från 0. Det gäller bara att man skapar rätt typ av RRD-databas. Min börjar om från 0 efter ett strömavbrott. Jag har haft min räknare i flera år och jag orkar inte plocka bort den för att byta batteri (måste löda också). Jag har den matad med separat adapter men går strömmen så hjälper ju inte det. ;-)

Re: Räknaren började om från noll

Postat: 30 aug 2012, 11:16
av bjornsson
RRD är linux baserat va?
Kanske skulle satt sig in i det och emigrerat från Microsoft :)

Re: Räknaren började om från noll

Postat: 30 aug 2012, 16:14
av PatrikN78
bjornsson skrev:RRD är linux baserat va?
Kanske skulle satt sig in i det och emigrerat från Microsoft :)
njae det ska väl gå på Windows också.

Re: Räknaren började om från noll

Postat: 04 sep 2012, 07:53
av bjornsson
sege skrev:Jag har kodat in en 'offset' i mitt system så räknaren har minskat eller ökat för mycket enligt vissa kriterier mot förra värdet räknar jag om offset och sparar om som nytt värde som jag sen utgår ifrån. På det viset anser jag mig få minimalt med fel i databasen.

Annars fick jag världens knas när räknaren slog runt eller fick totalt krupp vid något tillfälle. Trodde det var batteriet men den har hanterat spänningslöst efter det så vetifasen vad det var.

Typ så här, första siffra är räknare, efter plus är eventuellt offset och sista siffran är vad jag lagrar i SQL:
1+0 1
2+0 2
3+0 3
1+2 3 (3-1 = offset två)
2+2 4
3+2 5
4+2 6
5+2 7
2+5 7 (7-2 = offset fem)
3+5 8
4+5 9

Hmm, om det går att begripa och jag tror det var så jag gjorde. Stäm mig om jag tänkte fel här lite raskt. :D


Hur skulle det se ut med mina värden, så här de åtta värdena ut som jag har i mysql databas precis när det blev nollat.


28747452
28747479
28747504
28747536
141
168
193
222

Re: Räknaren började om från noll

Postat: 04 sep 2012, 09:55
av Niklas
Man får liksom räkna skillnaden mellan två värden som verkar rimligt antar jag.
Det lär ju bli ett minusvärde när räknaren nollställs och då kan man ju i kod vänta på en ny avläsning och räkna ut skillnaden först när det blir + igen.. typ. Med tanke på att det aldrig kan gå bakåt om man nu inte producerar en massa el själv? ;-)

Re: Räknaren började om från noll

Postat: 04 sep 2012, 10:43
av bjornsson
Ja precis.
Men hur gör jag det då? :D

Kör msure nu som loggar.

Re: Räknaren började om från noll

Postat: 05 sep 2012, 08:37
av sege
bjornsson skrev:Hur skulle det se ut med mina värden, så här de åtta värdena ut som jag har i mysql databas precis när det blev nollat.
28747452
28747479
28747504
28747536
141+28747395 (28747536-141 = 28747395 = offset)
168+28747395 = 28747563
193+28747395 = 28747588
222+28747395 = 28747617

Så skulle det bli. Hur man gör det där i mSure vet jag inte dock, kanske inte är möjligt. Precis som Niklas säger, så när det gäller energi har jag satt så det aldrig någonsin kan minska och om det är över vadjagnusatt så räknar jag också om, min räknare fick krupp uppåt en gång på grund av att LED-läsaren på skåpet lossnade lite och då hände det konstigheter.

Funkar i min värld när jag läser av energi en gång varje minut, läser man mer sällan 'tappar' man ju mer på mitt sätt att räkna.

Re: Räknaren började om från noll

Postat: 05 sep 2012, 11:44
av bjornsson
Vad kör du för mjukvara för att läsa utav?
Lägger du in offset värdet själv?
Eller är det något som räknas ut själv?
Går det att implementera detta på min befintliga databas?

Re: Räknaren började om från noll

Postat: 05 sep 2012, 22:51
av sege
Jag har hemmasnickrat som läser värdena, jag skrev även en Python-funktion för att 'städa ur' min gamla databas som hade värden som din som studsade fram och tillbaka.

Det är dock _extremt_ ruttet skrivet och anpassat för min databas så det är nog inget du har nytta av, tyvärr.