Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS19001125 Verbrauch aus Zählerständen/Impulsen

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

    LBS19001125 Verbrauch aus Zählerständen/Impulsen

    hx5
    Kann man iwie unterbinden, dass der LBS beim ersten Starten für jeden Zeitraum den Aktuellen Zählerstand ausgibt?
    Dachte erst es funktioniert nicht, aber nach ner Stunde sah der Stundenwert plausibel aus.
    Blos steht jetzt bei Tag/Woche/usw. immer der aktuelle Zählerwert was in der Visu natürlich verwirrend aussieht.
    Theoretisch müsst ich jetzt 2 Jahre warten bis die Werte in der Visu stimmen, wenn ich das richtig verstanden hab .
    Wäre es möglich nur den Verbrauch vom jeweiligen Zeitraum anzuzeigen?

    Also am Anfang wäre dann der Zählerstand überall gleich.
    Nach einem Tag bleibt der Tages-Wert auf seinem Wert stehen und
    dann sind nur noch die Wochen/Monats/Jahreswerte alle gleich
    bis eine Woche rum ist usw.
    Fällt mir schwer zu erklären was ich meine, hoffentlich war das einigermaßen verstänlich
    Gruß Ben

    #2
    Hallo stonie2oo4,

    ich sehe da zwei Möglichkeiten sich die vergangen Verbräuche ausgeben zu lassen:
    • Dynamisch:
    z. B. vergangene Stunde (letzte 60 Min.), vergangenen 24 Stunden, vergangenen 7 Tage etc.
    Das geht vom System her nur über eine Datenbank, Berechnungen sind da irgendwann sehr rechenintensiv, könnte ich aber prinzipiell mal versuchen einzubauen wenn Bedarf ist.
    • Statisch:
    Aktuelle Stunde (zb. seit 9 Uhr), letzte Stunde (zb. von 8 Uhr bis 8.59 Uhr) etc.
    So macht das mein LBS im Moment weil man die Daten dann selbst berechnen kann und in einer Datei speichern kann was sehr Ressourcen-schonend (aber nicht flexibel) ist.


    Bis jetzt berechnet mein LBS auch noch nicht wann der ersten Wert angekommen ist und ob dieser dann bereits zum Beginn des ausgegeben Zeitraums gekommen ist. Er rechnet eben nur stupide die einzelnen Verbräuche zu den jeweiligen Zeiträumen.

    Diese Prüfung könnte ich nachrüsten, heißt der LBS würde "0" für das aktuelle Jahr ausgeben wenn er nicht vor dem 01.01. gestartet würde (usw.).
    Ich frag mich eben nur ob das jetzt logischer (für andere Benutzer) wäre oder nicht?


    Du kannst dir ja auch mit split(#) in der Visu die einzelnen Pos. ausgeben lassen oder mit dem Stringzerteiler im Logikeditor aber das kennst du bestimmt schon....

    Kommentar


      #3
      Also wenn ichs jetzt richtig verstanden hab gehts beim dynamischen immer von "jetzt" aus und rechnet dann zurück.
      Also z.B. bei Täglich wäre das von "jetzt" -24h
      Das will ich eigentlich gar nicht.

      Wenn ich Verbrauch "heute" auswerte, soll das schon so sein von 0:00 bis 23:59. Woche eben von Mo bis So, Monat vom ersten bis zum 30/31 usw
      Ich versuchs nochmal zu erklären auf was ich hinaus will

      Nehmen wir an ich starte den LBS mit dem aktuellen Zählerstand heute.
      Wenn der zweite Zählerstand am LBS ankommt weiß ja der LBS den Verbrauch vom "Start" bis "jetzt".
      Momentan ist es so bei mir das der aktuelle Zählerstand für alle Zeiträume ausgegeben wird.
      Erst wenn die erste Stunde rum ist steht der stündliche Verbrauch richtig drin, aber alle weiteren Werte für Woche/Monat/usw. steht immer der letzte Zählerstand drin,
      bis eben die entsprechende Zeit abgelaufen ist. Also nach ner Woche würde der Wochenverbrauch/Tagesverbrauch/Stundenverbrauch richtig angezeigt aber Monats und Jahres immer noch falsch, dort kommt dann immer noch der Zählerstand raus aber nicht der Verbrauch, bis eben ein Monat/Jahr rum ist.

      Währe es nicht sinnvoller es folgendermaßen auszugeben:
      Wenn ich den LBS "jetzt" starte und der zweite Zählerstand eintritt dann wird dieser Verbrauch auf alle Zeiträume ausgegeben.
      Dann wachsen die Verbräuche quasi für alle Zeiträume gleichmäßig.
      Wenn jetzt die erste Stunde rum ist, bleibt der Wert für letzte Stunde stehen und alle weiteren Werte wachsen weiter außer aktuelle Stunde die fängt wieder von 0 an.
      Usw. mit den folgenden Zeiträumen.


      Hoffe es ist klar auf was ich hinaus will. Ich häng heut Abend mal ein Bild von der Visu/LBS an dann wirds vielleicht verständlicher


      Das mit dem split mach ich ja momentan im LBS, aber das ändert ja nicht die Werte die für die einzelnen Zeiträume ausgegeben wird
      Gruß Ben

      Kommentar


        #4
        So wünsche ich mir das prinzipiell auch, laut Beschreibung bzw. den Ausgängen nach zu urteilen kann das der LBS19000600, habe diesen aber auch noch nicht wirklich getestet.
        Da gibt es einen Ausgang täglich, was ab jetzt -24 Stunden bedeutet und einen Ausgang täglich kompletter Tag.

        Kommentar


          #5
          Zitat von stonie2oo4 Beitrag anzeigen
          Währe es nicht sinnvoller es folgendermaßen auszugeben:
          Wenn ich den LBS "jetzt" starte und der zweite Zählerstand eintritt dann wird dieser Verbrauch auf alle Zeiträume ausgegeben.
          Sorry aber ich versteh es noch nicht. Vielleicht wenn ich es dann in deiner Visu sehe.

          Kurzes Beispiel wie die Ausgabe läuft (laufen sollte):

          ---Start---
          Eingabe:
          Zeitpunkt: 13:10 UHR, Zählerstand: 10

          Ausgabe:


          Eingabe:
          Zeitpunkt: 13:30 UHR, Zählerstand: 15 (Verbrauch: 5)

          Ausgabe:
          Aktueller Verbrauch: 15
          Aktuelle Stunde: 5
          Vorherige Stunde: 0
          Aktueller Tag: 5
          letzter Tag: 0
          .....


          Eingabe:
          Zeitpunkt: 13:59 UHR, Zählerstand: 25 (Verbrauch: 10)

          Ausgabe:
          Aktueller Verbrauch: 20,69
          Aktuelle Stunde: 15
          Vorherige Stunde: 0
          Aktueller Tag: 15
          letzter Tag: 0
          .....

          Eingabe:
          Zeitpunkt: 14:05 UHR, Zählerstand: 27 (Verbrauch: 2)

          ​​​​​​​Ausgabe:
          Aktueller Verbrauch: 20
          Aktuelle Stunde: 2
          Vorherige Stunde: 15
          Aktueller Tag: 15
          letzter Tag: 0
          .....
          ---Ende---

          Was ich nun machen könnte wäre eine Prüfung ob der erste Zählerstand bereits vor Beginn der aktuellen Stunde eingegangen ist und eben nur dann ausgegeben wird. Dann würde erst um 14:05 Uhr der Verbrauch der aktuellen Stunde ausgegeben:


          ---Start---
          Eingabe:
          Zeitpunkt: 13:10 UHR, Zählerstand: 10

          Ausgabe:


          Eingabe:
          Zeitpunkt: 13:30 UHR, Zählerstand: 15 (Verbrauch: 5)

          Ausgabe:
          Aktueller Verbrauch: 15


          Eingabe:
          Zeitpunkt: 13:59 UHR, Zählerstand: 25 (Verbrauch: 10)

          ​​​​​​​Ausgabe:
          Aktueller Verbrauch: 20,69


          Eingabe:
          Zeitpunkt: 14:05 UHR, Zählerstand: 27 (Verbrauch: 2)

          ​​​​​​​Ausgabe:
          Aktueller Verbrauch: 20
          Aktuelle Stunde: 2


          Eingabe:
          Zeitpunkt: 15:05 UHR, Zählerstand: 40 (Verbrauch: 13)

          ​​​​​​​Ausgabe:
          Aktueller Verbrauch: 13
          Aktuelle Stunde: 13
          Vorherige Stunde: 2
          ---Ende---

          Das hätte durchaus seinen Charme weil dann die einzelnen Verbrauchswerte nacheinander aufgebaut werden würden....
          Nachteil ist das es wahrscheinlich erstmal schwerer zu verstehen ist weil zu Beginn kein (kompletter) String ausgegeben wird und der erste Jahresverbrauch bis zu 364 (365) Tage auf sich warten lassen würde.

          Kommentar


            #6
            Hier wie versprochen die Bilder:
            LBS läuft seit gestern Abend.

            Unbenannt.JPG

            Unbenannt2.JPG


            Also genau wie in deinem ersten Beispiel würd ichs mir wünschen. Also so wie es jetzt schon funktionieren sollte.
            Also kanns vielleicht an meiner Config liegen?
            Die Prüfung hätte ich eher lieber nicht, weil so wies jetzt gedacht ist würd man ja nach 3 Monaten z.B. schon beim Jahresverbrauch sehen was im bisherigen Jahr schon verbraucht wurde. Also so wies von dir gedacht ist, halt ich es schon für richtig.
            Zuletzt geändert von stonie2oo4; 15.09.2017, 15:53.
            Gruß Ben

            Kommentar


              #7
              Ich sehe zwar nicht deine ganze Konfiguration von E2 aber viel falsch Einstellen kann man da nicht.
              Für mich sieht das jetzt eher so aus als ob die Werte lange ausbleiben.
              Der letzte Wert kam demnach vor über zwei Stunden. Heute gab es nur einen Verbrauch von 4 und Gestern 1138?
              Sieht komisch aus. Hast mal geprüft ob die Werte regelmäßig kommen?
              Falls ja mach mal das Debug auf 8 und poste mir die ersten Einträge...

              Kommentar


                #8
                Also theoretisch sollten laut ETS-Einstellungen der Zählerstand jede 15min gesendet werden.
                Hab grad gemerkt dass ichs mir ja ins Archiv schreib, also das mit den 15min kommt ungefähr hin.
                Was mir aufgefallen ist, die letzten ca. 20 mal als es ins Archiv geschrieben hat, hat sich der Zählerstand nicht geändert,
                macht das was aus?

                Zeitstempel ms PID LogLevel Meldung
                2017-09-15 17:24:45 319869 30409 debug LBS19001125 [v0.6]: file for catching available
                2017-09-15 17:24:45 322869 30409 debug LBS19001125 [v0.6]: Array available
                2017-09-15 17:24:45 325525 30409 debug LBS19001125 [v0.6]: no pulse detected, counter aktiv
                2017-09-15 17:24:45 327321 30409 debug LBS19001125 [v0.6]: set output (consumption) A2: 0
                2017-09-15 17:24:45 330200 30409 debug LBS19001125 [v0.6]: Archiv id is set, cennecting to mysql
                2017-09-15 17:24:45 332525 30409 debug LBS19001125 [v0.6]: Zero value already in database
                2017-09-15 17:24:45 335894 30409 debug LBS19001125 [v0.6]: Timing for query not reached and no archived data in cache, wait: -1505488785 seconds for new database query
                2017-09-15 17:24:45 339926 30409 debug LBS19001125 [v0.6]: Save archive in file
                2017-09-15 17:24:45 341662 30409 debug LBS19001125 [v0.6]: Archive array exist
                2017-09-15 17:24:45 343606 30409 debug LBS19001125 [v0.6]: set output A1:
                2017-09-15 17:24:45 343940 30409 debug LBS19001125 [v0.6]: ================ ARRAY/OBJECT START ================
                2017-09-15 17:24:45 344156 30409 debug LBS19001125 [v0.6]: {"current":0,"hour":0,"lhour":0,"day":2,"lday": 114 08,"week":11410,"lweek":0,"month":11410,"lmonth": 0 ,"year":11410,"lyear":0}
                2017-09-15 17:24:45 344326 30409 debug LBS19001125 [v0.6]: ================ ARRAY/OBJECT END ================
                2017-09-15 17:24:45 352091 30409 debug LBS19001125 [v0.6]: Set new array Data
                2017-09-15 17:24:45 354441 30409 debug LBS19001125 [v0.6]: Save data in file:
                2017-09-15 17:24:45 354782 30409 debug LBS19001125 [v0.6]: ================ ARRAY/OBJECT START ================
                2017-09-15 17:24:45 355017 30409 debug LBS19001125 [v0.6]: {"querystamp":0,"total":1026782,"timestamp":150 548 9085.3463,"oldvalue":11410,"position":0,"pencon":0 ,"archive":{"current":0,"hour":0,"lhour":0,"day ":2 ,"lday":11408,"week":11410,"lweek":0,"month":11 410 ,"lmonth":0,"year":11410,"lyear":0},"lastfiling ":{ "hour":"17","day":"15","week":"37","month":"09 ","y ear":"2017"}}
                2017-09-15 17:24:45 355209 30409 debug LBS19001125 [v0.6]: ================ ARRAY/OBJECT END ================
                2017-09-15 17:24:45 357295 30409 debug LBS19001125 [v0.6]: Countdown unset -> STOP
                Zuletzt geändert von stonie2oo4; 15.09.2017, 16:34.
                Gruß Ben

                Kommentar


                  #9
                  Zitat von stonie2oo4 Beitrag anzeigen
                  Was mir aufgefallen ist, die letzten ca. 20 mal als es ins Archiv geschrieben hat, hat sich der Zählerstand nicht geändert,
                  macht das was aus?
                  Nein aber es wird dann aber auch kein Verbrauch erkannt (gibt ja dann auch keinen).
                  Wann kam den die letzt Änderung vom Zählerstand?

                  Kannst du mal die Zählerstände (mit Zeitstempel) von heute posten?
                  Ich hab den LBS jetzt auch mal um das Logging von E1 ergänzt.....

                  Kommentar


                    #10
                    Zitat von Glotzkowski Beitrag anzeigen
                    So wünsche ich mir das prinzipiell auch
                    Wie den genau?

                    Kommentar


                      #11
                      15.09.2017,00:07:04,472084,"11408"
                      15.09.2017,00:22:06,800246,"11408"
                      15.09.2017,00:37:09,148663,"11408"
                      15.09.2017,00:52:11,495744,"11408"
                      15.09.2017,01:07:13,777297,"11408"
                      15.09.2017,01:22:16,148083,"11408"
                      15.09.2017,01:37:18,406939,"11408"
                      15.09.2017,01:52:20,788109,"11408"
                      15.09.2017,02:07:23,56993,"11408"
                      15.09.2017,02:22:25,452204,"11408"
                      15.09.2017,02:37:27,764741,"11408"
                      15.09.2017,02:52:30,114833,"11408"
                      15.09.2017,03:07:32,430017,"11408"
                      15.09.2017,03:22:34,766361,"11408"
                      15.09.2017,03:37:37,67873,"11408"
                      15.09.2017,03:52:39,443051,"11408"
                      15.09.2017,04:07:41,746593,"11408"
                      15.09.2017,04:22:44,103424,"11408"
                      15.09.2017,04:37:46,524111,"11408"
                      15.09.2017,04:52:48,809864,"11408"
                      15.09.2017,05:07:51,158533,"11408"
                      15.09.2017,05:22:53,450030,"11408"
                      15.09.2017,05:37:55,868069,"11408"
                      15.09.2017,05:52:58,146322,"11409"
                      15.09.2017,06:08:00,959774,"11409"
                      15.09.2017,06:23:02,834635,"11409"
                      15.09.2017,06:38:05,195924,"11409"
                      15.09.2017,06:53:07,593291,"11409"
                      15.09.2017,07:08:09,853564,"11409"
                      15.09.2017,07:23:12,198271,"11409"
                      15.09.2017,07:38:14,556052,"11409"
                      15.09.2017,07:53:16,908677,"11409"
                      15.09.2017,08:08:19,186163,"11409"
                      15.09.2017,08:23:21,507217,"11409"
                      15.09.2017,08:38:23,942631,"11409"
                      15.09.2017,08:53:26,288547,"11409"
                      15.09.2017,09:08:28,535322,"11409"
                      15.09.2017,09:23:30,884130,"11409"
                      15.09.2017,09:38:33,229801,"11409"
                      15.09.2017,09:53:35,571147,"11409"
                      15.09.2017,10:08:37,914685,"11409"
                      15.09.2017,10:23:40,237799,"11409"
                      15.09.2017,10:38:42,498919,"11409"
                      15.09.2017,10:53:44,855869,"11409"
                      15.09.2017,11:08:47,167217,"11409"
                      15.09.2017,11:23:49,457165,"11409"
                      15.09.2017,11:38:51,779939,"11409"
                      15.09.2017,11:53:54,101321,"11410"
                      15.09.2017,12:08:56,375623,"11410"
                      15.09.2017,12:23:58,758436,"11410"
                      15.09.2017,12:39:01,360886,"11410"
                      15.09.2017,12:54:03,341346,"11410"
                      15.09.2017,13:09:05,704682,"11410"
                      15.09.2017,13:24:08,64238,"11410"
                      15.09.2017,13:39:10,312305,"11410"
                      15.09.2017,13:54:12,647012,"11410"
                      15.09.2017,14:09:14,953428,"11410"
                      15.09.2017,14:24:17,372864,"11410"
                      15.09.2017,14:39:19,696567,"11410"
                      15.09.2017,14:54:21,990245,"11410"
                      15.09.2017,15:09:24,353744,"11410"
                      15.09.2017,15:24:26,613306,"11410"
                      15.09.2017,15:39:28,941669,"11410"
                      15.09.2017,15:54:31,344202,"11410"
                      15.09.2017,16:09:33,687374,"11410"
                      15.09.2017,16:24:35,965514,"11410"
                      15.09.2017,16:44:23,563541,"11410"
                      15.09.2017,16:54:40,651084,"11410"
                      15.09.2017,17:09:42,972565,"11410"
                      15.09.2017,17:24:45,308793,"11410"
                      15.09.2017,17:39:47,576105,"11410"
                      15.09.2017,17:54:49,949068,"11411"
                      15.09.2017,18:09:52,200809,"11411"
                      15.09.2017,18:24:54,552791,"11411"
                      15.09.2017,18:39:56,907253,"11411"
                      15.09.2017,18:54:59,271403,"11411"
                      15.09.2017,19:10:02,342662,"11411"
                      15.09.2017,19:25:03,827017,"11411"
                      15.09.2017,19:40:06,174346,"11414"
                      15.09.2017,19:55:08,545289,"11414"
                      Gruß Ben

                      Kommentar


                        #12
                        Also ich kann da jetzt keine Fehler in der Berechnung finden. Bis um 17:39 Uhr liegt der Tagesverbrauch bei 2, davor gab es über 6 Stunden keinen Verbrauch (Wert damals bei aktuelle und vorherige Stunde 0).

                        Oder was stimmt deiner Ansicht nach nicht?

                        Kommentar


                          #13
                          Währe ja auch blöd wenn Dein Baustein falsch rechnet Er hat nur Probleme mit der aktuellen Woche und der letzten Woche wenn man ihn am Sonntag aufruft. Da rechnet php 5.3 die Woche nicht richtig.
                          Du musst die Zeilen 330 und 331 mit diesen ersetzen:

                          Code:
                          if(date('D') == 'Sun') { 
                              $thismonday=date('Y-m-d',strtotime('monday this week -1 week'));
                              $lastmonday = date('Y-m-d',strtotime('monday this week -2 week'));
                              }else{
                                  $thismonday=  date('Y-m-d',strtotime('monday this week'));
                                  $lastmonday = date('Y-m-d',strtotime('monday this week -1 week'));
                              }

                          Kommentar


                            #14
                            Zitat von vento66 Beitrag anzeigen
                            Da rechnet php 5.3 die Woche nicht richtig.
                            Ehrlich? Ein Programmierfehler in der Programmiersprache?


                            Gibt es mit
                            PHP-Code:
                            date('W'oder date('m'
                            auch Probleme?

                            Danke schon mal vento66.

                            Kommentar


                              #15
                              hx5 Das Problem, ist das als Wochenanfang immer Sonntag genommen wird, stellst Du die locale auf Europa, dann wird das beibehalten. Dann ist thisMonday der nächste Montag. Dann kommt Monday this week natürlich durcheinander, da es ja in der Zukunft liegt. Erwarten würde man natürlich den letzten Montag.

                              Kommentar

                              Lädt...
                              X