Hallo Cyrelian,
ja wenn ich das wüsste wieso die Werte immer kleiner werden.
Ich habe mal ein paar Messungen gemacht und dabei kam folgende "Entfernungsreihe" raus:
0,91
0,89
0,86
0,84
0,84
0,82
0,8
0,79
0,75
Wobei ich sagen muss, die Reihe unterbrochen war, weil ich nicht immer den Wert aufgeschrieben habe.
Aber man sieht, der "Umfangswert" wird immer kleiner.
Der Counter hat ja nur eine Aufgabe, er soll die Umdrehungen zählen.
Also hab ich hier im Grunde nur Integer Zahlen.
Wenn ich an dieser Stelle nun mit 0.98646 multipliziere, Bekomme ich ja keine
Integer Werte mehr.
Ich müsste also noch ein ITEM kreieren (z.B. Counter_Day) welches den aktuellen Wert aus Counter nimmt und mit 0.98646 multipliziert.
Klingt einfach, ist es bestimmt auch, aber ich hab's noch nicht hinbekommen.
Wie kann ich denn das Item Counter_Day mit dem korrigierten Wert vom ITEM Counter füllen?
Oder mache ich be der ganzen Sache noch einen großen Denkfehler?
Gruß
Jörg
Projekt Hamsterrad ......
-
- Beiträge: 45
- Registriert: 17. Sep 2017 23:43
Re: Projekt Hamsterrad ......
Hallo zusammen,
jetzt müsste es funktionieren
dank EURER Hilfe!
Vielleicht gibt es noch einige Verbesserungsvorschläge was die Syntax des Rules angeht
Wie gesagt, es muss noch Finetuning vorgenommen werden,
aber das kommt noch!
Und jetzt würde ich gern noch den Vorschlag von Cyrelian umsetzen:
Euch einen schönen Abend!
Gruß
Jörg
jetzt müsste es funktionieren
dank EURER Hilfe!
Vielleicht gibt es noch einige Verbesserungsvorschläge was die Syntax des Rules angeht
Code: Alles auswählen
Rule:
Code: Alles auswählen
rule "Counter Rule"
when
Item Hamsterkontakt changed from CLOSED to OPEN
then
if (Counter.state == NULL) {
Counter.postUpdate(0) and
Counter_Day.postUpdate (0)
} else {
Counter.postUpdate (((Counter.state as DecimalType) + 1))
Counter_Day.postUpdate ((Counter.state as DecimalType)* 0.98646)
}
end
rule "Counter Rule Null"
when
Time cron "56 59 23 * * ?"
then
Counter_All.postUpdate (Counter_Day.state as DecimalType)
if (Counter.state >= 0) {
Counter.postUpdate(0)
}
end
rule "Counter_Day Rule Null"
when
Time cron "57 59 23 * * ?"
then
if (Counter_Day.state >= 0) {
Counter_Day.postUpdate(0)
}
end
rule "Counter Rule Summe"
when
Time cron "58 59 23 * * ?"
then
if (Counter_Summe.state == NULL) {
Counter_Summe.postUpdate(0)
} else {
Counter_Summe.postUpdate ((Counter_Summe.state as DecimalType) + (Counter_All.state as DecimalType))
}
end
Code: Alles auswählen
ITEM:
Code: Alles auswählen
// Hamsterlaufrad
Contact Hamsterkontakt "Hamsterrad [%s]" <hamster> (Hamster) {channel="homematic:HM-Sec-SC-2:CCU2:NEQ1679199:1#STATE"}
Number Counter "Heute [%.0f Umdrehungen]" <motion> (Hamster)
Number Counter_Day "Tagesleistung [%.2f Meter]" <motion> (Hamster)
Number Counter_All "Gestern [%.2f Meter]" <motion> (Hamster)
Number Counter_Summe "Summe [%.2f Meter]" <motion> (Hamster)
Code: Alles auswählen
*.persist:
Code: Alles auswählen
// Hamsterzähler
Counter : strategy = everyChange, restoreOnStartup
Counter_Day : strategy = everyChange, restoreOnStartup
Counter_All : strategy = everyChange, restoreOnStartup
Counter_Summe : strategy = everyChange, restoreOnStartup
Counter_Summe : strategy = Midnight, restoreOnStartup
Code: Alles auswählen
Sitemap:
Code: Alles auswählen
Frame label="Hamster" {
Text item=CurrentDate
Text item=date_today
Text item=Counter_Summe {
Chart item=Counter_Summe period=h refresh=600
Chart item=Counter_Summe period=d refresh=600
Chart item=Counter_Summe period=d refresh=600
Chart item=Counter_Summe period=W refresh=600
Chart item=Counter_Summe period=M refresh=600
Chart item=Counter_Summe period=Y refresh=600
}
Text item=Counter_Day {
Chart item=Counter_Day period=h refresh=600
Chart item=Counter_Day period=d refresh=600
Chart item=Counter_Day period=d refresh=600
Chart item=Counter_Day period=W refresh=600
Chart item=Counter_Day period=M refresh=600
Chart item=Counter_Day period=Y refresh=600
}
Text item=Counter_All {
Chart item=Counter_All period=h refresh=600
Chart item=Counter_All period=d refresh=600
Chart item=Counter_All period=d refresh=600
Chart item=Counter_All period=W refresh=600
Chart item=Counter_All period=M refresh=600
Chart item=Counter_All period=Y refresh=600
}
Text item=Counter {
Chart item=Counter period=h refresh=600
Chart item=Counter period=d refresh=600
Chart item=Counter period=d refresh=600
Chart item=Counter period=W refresh=600
Chart item=Counter period=M refresh=600
Chart item=Counter period=Y refresh=600
}
aber das kommt noch!
Und jetzt würde ich gern noch den Vorschlag von Cyrelian umsetzen:
Muss ich da unbedingt auf die fluxDB umsteigen und diese installieren?Für den Chart kann ich dir influxDB und Grafana empfehlen...siehe hier(hab ich genau so)
https://community.openhab.org/t/influxd ... hing/13761
Euch einen schönen Abend!
Gruß
Jörg
- Cyrelian
- Beiträge: 601
- Registriert: 24. Sep 2015 17:55
Re: Projekt Hamsterrad ......
Hi Jörg,
super, dann kann der Hamster ja jetzt Knallgas geben .
Wenn Du Grafana nutzen möchtest, braucht du die influxDB. Ich nutze mittlerweile nur noch influx als Persistance.
CU
Cyrelian
super, dann kann der Hamster ja jetzt Knallgas geben .
Wenn Du Grafana nutzen möchtest, braucht du die influxDB. Ich nutze mittlerweile nur noch influx als Persistance.
CU
Cyrelian