Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Onkelandy
    antwortet
    Poste doch bitte nochmals einen aktuellen 24h check inkl. Ergebnis und allen db Werten in 24h

    ich meinte das None um 17.27. da stimmte wohl was nicht.

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    Du könntest nochmal versuchen, den die Abfrage in ein float zu wandeln, sprich so:

    Code:
    float(sh.steckdosen.eg.bad_heizung.sa.db('on','15i', 'now'))*15
    VG

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Cannon ich meinte eben mit kürzerem Zeitfenster. So zum Test.
    Was mir bei deinen Daten aufgefallen ist: du hast einen None Wert und postest ca 4 Stunden. Dabei wars 2 Stunden ein => 0.5

    oder sind vor 18.17 noch mehrere Schaltaktionen mit Einträgen zu „Dauer“?

    Ich behaupte bei bool ist avg und on das gleiche Ergebnis
    None ist die Dauer, da der Wert sich noch nicht verändert hat. Gepostet habe ich den ganzen letzten Tag. Heute hat es nicht geregnet, damit gab es auch keien zusätzlichen Werte. Und vor 18:17 gab es auch keienn Regen, deshalb nicht mehr Werte. Das sind alle Werte, die dann innerhalb von 24 Stunden angefallen waren. Vielleicht wird auch der noch nicht abgeschlossene Wert nicht mit berechnet, was natürlich sein könnte. Damit muss man aber mit so langen Zeitperioden testen, weil der Fehler bei kurzen Perioden ja gar nicht prüfbar wäre.

    Dennoch kann ich mal mit kurzen Zeitfenster testen ... das wäre ja machbar. Werde ich mal probieren.

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von aschwith Beitrag anzeigen
    Hallo zusammen,

    'integrate' integriert nicht die Zeit sondern den Datenbank Wert (also Temperatur, Leistung etc. ) auf. Was du für die Dauer brauchst ist das Attribut 'on'. Es gibt dir als Faktor zwischen 0 un 1 zurück, wie lange das Element im Abfragezeitrum (z.B. 15i = 15 min) an war:
    Code:
    sh.steckdosen.eg.bad_heizung.sa.db('on','15i', 'now') * 15
    Gruß
    Ich versteh das nicht. Bei allen gehts irgendwie nur bei mir nicht. Das mit dem on, hat onkelandy auch mal gesagt. Aber da kommt bei mir immer 0.0 raus. Vielleicht ist ja das Problem doch ganz woanders zu suchen.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Cannon ich meinte eben mit kürzerem Zeitfenster. So zum Test.
    Was mir bei deinen Daten aufgefallen ist: du hast einen None Wert und postest ca 4 Stunden. Dabei wars 2 Stunden ein => 0.5

    oder sind vor 18.17 noch mehrere Schaltaktionen mit Einträgen zu „Dauer“?

    Ich behaupte bei bool ist avg und on das gleiche Ergebnis

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    Hallo zusammen,

    'integrate' integriert nicht die Zeit sondern den Datenbank Wert (also Temperatur, Leistung etc. ) auf. Was du für die Dauer brauchst ist das Attribut 'on'. Es gibt dir als Faktor zwischen 0 un 1 zurück, wie lange das Element im Abfragezeitrum (z.B. 15i = 15 min) an war:
    Code:
     
     sh.steckdosen.eg.bad_heizung.sa.db('on','15i', 'now') * 15
    Gruß

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Hast du mal so einen Test versucht wie von mir beschrieben?
    Ich teste das mit deinen Codezeilen ... ja klar ... nur der Zeitraum ist ein anderer, weil ich nicht nur ein paar Minuten teste, sondern mehrere Stunden abfrage.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Hast du mal so einen Test versucht wie von mir beschrieben? Eventuell weiß @ohinckel was. Funktionieren sollte das "time weighted average" auf jeden Fall.

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Gib mal bei der plugin.yaml Config noch ein "precision: 4" dazu.
    Standard ist glaub 2 - da kann es tatsächlich sein, dass bei längerer Dauer die Rundungsfehler zu solch einem Blödsinn führen..?
    Leider keinen Unterschied. Aber mir erscheint es auch nicht logisch, dass avg den Mittelwert aus der Zeit berechnen soll, sondern nur aus den Werten. Das ist ja bei anderen Datenbanken auch nicht anders.

    Zitat von gama Beitrag anzeigen
    Hatte mal so etwas ohne db gebastelt:
    Ja solche Lösungen habe ich auch. Allerdings kann ich damit nie bestimmte Zeiträume abfragen. Deshalb will ich die Datenbank nutzen.


    ->

    Ich könnte natürlich überlegen alle 5 Minuten einen Schreibvorgang in die DB zu "erzwingen". Elegant finde ich das aber nicht.

    Kann man denn die Datensätze auch einzeln auslesen, durchintterieren und dann auswerten? Mir ist nicht ganz klar, wie ich an die Daten komme. Mit series geht das ja evtl. aber wie ich das genau nutze ist mir nicht klar.

    Einen Kommentar schreiben:


  • gama
    antwortet
    Hatte mal so etwas ohne db gebastelt:

    Code:
                    counter_s:
                        name: Zeitzähler in Sekunden
                        type: num
                        visu_acl: ro
                        eval: sh..() + int(sh...prev_value()) * sh...prev_age()
                        eval_trigger: ..
                        database@db01: 'yes'

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Gib mal bei der plugin.yaml Config noch ein "precision: 4" dazu.
    Standard ist glaub 2 - da kann es tatsächlich sein, dass bei längerer Dauer die Rundungsfehler zu solch einem Blödsinn führen..?

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    Das avg bezieht sich auf die Dauer und nicht die Schaltvorgänge
    Also bei mir nicht.

    Code:
    sh.Zentral.Wetter.Wetterstation.Regen.db('avg', '24h', 'now')
    Als Ergebnis erhalte ich 0.51. Das heißt es hat in den letzten 24 Stunden mehr als 12 Stunden geregnet. Was natürlich quatsch ist. ;-) Die Datenbank passt aber.

    Code:
     [TABLE="border: 0, cellpadding: 0, cellspacing: 0, width: 478"]
     	 		[TR]
     			[TD="class: xl65, width: 52"]Item ID[/TD]
     			[TD="class: xl65, width: 203"]Zeit[/TD]
     			[TD="class: xl65, width: 96"]Dauer[/TD]
     			[TD="class: xl65, width: 215"]Geändert[/TD]
     			[TD="class: xl65, width: 72"]VAL_BOOL[/TD]
     		[/TR]
     		[TR]
     			[TD="class: xl66, width: 52, align: right"]3[/TD]
     			[TD="class: xl67, width: 203, align: right"]29.07.2019 20:42[/TD]
     			[TD="class: xl66, width: 96"]None[/TD]
     			[TD="class: xl67, width: 215, align: right"]29.07.2019 20:42[/TD]
     			[TD="class: xl66, width: 72, align: right"]0[/TD]
     		[/TR]
     		[TR]
     			[TD="class: xl66, width: 52, align: right"]3[/TD]
     			[TD="class: xl67, width: 203, align: right"]29.07.2019 20:29[/TD]
     			[TD="class: xl66, width: 96, align: right"]753130[/TD]
     			[TD="class: xl67, width: 215, align: right"]29.07.2019 20:42[/TD]
     			[TD="class: xl66, width: 72, align: right"]1[/TD]
     		[/TR]
     		[TR]
     			[TD="class: xl66, width: 52, align: right"]3[/TD]
     			[TD="class: xl67, width: 203, align: right"]29.07.2019 20:16[/TD]
     			[TD="class: xl66, width: 96, align: right"]773599[/TD]
     			[TD="class: xl67, width: 215, align: right"]29.07.2019 20:30[/TD]
     			[TD="class: xl66, width: 72, align: right"]0[/TD]
     		[/TR]
     		[TR]
     			[TD="class: xl66, width: 52, align: right"]3[/TD]
     			[TD="class: xl67, width: 203, align: right"]29.07.2019 20:00[/TD]
     			[TD="class: xl66, width: 96, align: right"]983385[/TD]
     			[TD="class: xl67, width: 215, align: right"]29.07.2019 20:17[/TD]
     			[TD="class: xl66, width: 72, align: right"]1[/TD]
     		[/TR]
     		[TR]
     			[TD="class: xl66, width: 52, align: right"]3[/TD]
     			[TD="class: xl67, width: 203, align: right"]29.07.2019 19:51[/TD]
     			[TD="class: xl66, width: 96, align: right"]558017[/TD]
     			[TD="class: xl67, width: 215, align: right"]29.07.2019 20:00[/TD]
     			[TD="class: xl66, width: 72, align: right"]0[/TD]
     		[/TR]
     		[TR]
     			[TD="class: xl66, width: 52, align: right"]3[/TD]
     			[TD="class: xl67, width: 203, align: right"]29.07.2019 19:07[/TD]
     			[TD="class: xl66, width: 96, align: right"]2589094[/TD]
     			[TD="class: xl67, width: 215, align: right"]29.07.2019 19:51[/TD]
     			[TD="class: xl66, width: 72, align: right"]1[/TD]
     		[/TR]
     		[TR]
     			[TD="class: xl66, width: 52, align: right"]3[/TD]
     			[TD="class: xl67, width: 203, align: right"]29.07.2019 18:52[/TD]
     			[TD="class: xl66, width: 96, align: right"]948041[/TD]
     			[TD="class: xl67, width: 215, align: right"]29.07.2019 19:08[/TD]
     			[TD="class: xl66, width: 72, align: right"]0[/TD]
     		[/TR]
     		[TR]
     			[TD="class: xl66, width: 52, align: right"]3[/TD]
     			[TD="class: xl67, width: 203, align: right"]29.07.2019 18:17[/TD]
     			[TD="class: xl66, width: 96, align: right"]2059637[/TD]
     			[TD="class: xl67, width: 215, align: right"]29.07.2019 18:52[/TD]
     			[TD="class: xl66, width: 72, align: right"]1[/TD]
     		[/TR]
     		[TR]
     			[TD="class: xl66, width: 52, align: right"]3[/TD]
     			[TD="class: xl67, width: 203, align: right"]29.07.2019 18:17[/TD]
     			[TD="class: xl66, width: 96, align: right"]5232[/TD]
     			[TD="class: xl67, width: 215, align: right"]29.07.2019 18:27[/TD]
     			[TD="class: xl66, width: 72, align: right"]0[/TD]
     		[/TR]
     		[TR]
     			[TD="class: xl66, width: 52, align: right"]3[/TD]
     			[TD="class: xl67, width: 203, align: right"]29.07.2019 17:27[/TD]
     			[TD="class: xl66, width: 96"]None[/TD]
     			[TD="class: xl67, width: 215, align: right"]29.07.2019 17:28[/TD]
     			[TD="class: xl66, width: 72, align: right"]1[/TD]
     		[/TR]
     	 [/TABLE]

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Ist es ein Bool Objekt? Ich habs' bei mir gerade getestet. Das avg bezieht sich auf die Dauer und nicht die Schaltvorgänge.
    Test Schaltvorgänge bei einer Steckdose:
    now-3 Stunden: 0
    now-20 Sekunden: 1
    now-10 Sekunden: 0
    Abfrage:
    Code:
    sh.steckdosen.eg.bad_heizung.sa.db('avg','10i', 'now')
    Ergebnis:
    steckdosenlaufzeit: 0.0183 Wenn es Anzahl Schaltvorgänge wäre, wäre das Ergebnis ja 0.5 oder meinetwegen 0.3

    Einen Kommentar schreiben:


  • Cannon
    antwortet
    Zitat von Onkelandy Beitrag anzeigen
    arg sollte das machen. also zb item.db('avg', '20i') -> Da sollte ein Wert zw 0 und 1 rauskommen. 0.5 würde heißen 50% der abgefragten Zeit, also 10 Minuten.
    Leider nicht. Das ist ja das Problem. Die Zeit wird dabei nicht berücksichtigt nur die Anzahl der Schaltvorgänge.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    arg sollte das machen. also zb item.db('avg', '20i') -> Da sollte ein Wert zw 0 und 1 rauskommen. 0.5 würde heißen 50% der abgefragten Zeit, also 10 Minuten.

    Einen Kommentar schreiben:

Lädt...
X