Weet iemand toevallig een goede methode om de 'startwaarde' van een incremental counter te kunnen negeren in de grafieken?
Ik heb een incremental counter toegevoegd op dummy hardware.
Een IR polssensor heb ik ingesteld als een schakelaar op de GPIO hardware van mij raspberry.
Voor de schakelaar heb ik een lua-script dat de waarde van die incremental counter bijwerkt.
Correcties kunnen ingevoerd worden met een user-variabele.
Ik heb de eerste dag dat het allemaal werkte dus ene correctie van enkele honderden kuubs ingevoerd zodat de teller gelijk loopt met de daadwerkelijke stand op de watermeter.
Nu zijn mij grafieken alleen een beetje onleesbaar omdat er een dikke spike van 700 kuub zit terwijl een normale dag niet eens een halve kuub is.
Een mogelijke optie zou misschien zijn om handmatig in de database de eerste waarde naar het jaar nul te verplaatsen ofzo?
Voor de liefhebbers hier het script.
- Dit script wordt dus getriggerd door de schakelaar met de naam "Watermeter-puls" (dat is dus de pulssensor die ik via GPIO hardware heb aangesloten)
- de schakelaar heeft het type: "contact"-schakelaar. Dat is belangrijk voor de naam van de status die het script doorkrijgt. In dit geval is dat "Open/Closed", andere types schakelaar krijgen bijvoorbeeld "On/Off".
- De incremental counter met de naam "Water" en idx "5" heb ik dus aangemaakt op de virtual/dummy hardware.
Ik heb een incremental counter toegevoegd op dummy hardware.
Een IR polssensor heb ik ingesteld als een schakelaar op de GPIO hardware van mij raspberry.
Voor de schakelaar heb ik een lua-script dat de waarde van die incremental counter bijwerkt.
Correcties kunnen ingevoerd worden met een user-variabele.
Ik heb de eerste dag dat het allemaal werkte dus ene correctie van enkele honderden kuubs ingevoerd zodat de teller gelijk loopt met de daadwerkelijke stand op de watermeter.
Nu zijn mij grafieken alleen een beetje onleesbaar omdat er een dikke spike van 700 kuub zit terwijl een normale dag niet eens een halve kuub is.
Een mogelijke optie zou misschien zijn om handmatig in de database de eerste waarde naar het jaar nul te verplaatsen ofzo?
Voor de liefhebbers hier het script.
- Dit script wordt dus getriggerd door de schakelaar met de naam "Watermeter-puls" (dat is dus de pulssensor die ik via GPIO hardware heb aangesloten)
- de schakelaar heeft het type: "contact"-schakelaar. Dat is belangrijk voor de naam van de status die het script doorkrijgt. In dit geval is dat "Open/Closed", andere types schakelaar krijgen bijvoorbeeld "On/Off".
- De incremental counter met de naam "Water" en idx "5" heb ik dus aangemaakt op de virtual/dummy hardware.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| commandArray = {} local virtualcounter_idx = "5" local virtualcounter_name = "Water" local switchName = "Watermeter-puls" if devicechanged[switchName] == 'Closed' then -- Get current value count_value = otherdevices_svalues[virtualcounter_name] print("vorige watermeterstand:" .. count_value) -- Apply offset/correction and set offset to zero local offset = 0 if (uservariables["Watermeter_Correction"] ~= nil) then offset = uservariables["Watermeter_Correction"] end commandArray['Variable:Watermeter_Correction'] = tostring(0) -- Calculate new value count_value = count_value + 1 + offset -- Update virtual counter device ts = virtualcounter_idx .. "|0|" .. tostring(count_value) commandArray['UpdateDevice'] = ts end return commandArray |
[ Voor 47% gewijzigd door NovapaX op 20-11-2015 09:08 ]
1740Wp: 12xSF145-S @ Hosola 1600TL [pvoutput]
Sparql TV wiki