<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hallo Christian,<br>
    </p>
    <br>
    <div class="moz-cite-prefix">Am 03.05.2018 um 23:15 schrieb
      Christian Wulff:<br>
    </div>
    <blockquote type="cite"
      cite="mid:008b01d3e323$d7677b00$86367100$@gmx.de">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <meta name="Generator" content="Microsoft Word 14 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
code
        {mso-style-priority:99;
        font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
span.cm-keyword
        {mso-style-name:cm-keyword;}
span.cm-variable-2
        {mso-style-name:cm-variable-2;}
span.cm-number
        {mso-style-name:cm-number;}
span.cm-builtin
        {mso-style-name:cm-builtin;}
span.E-MailFormatvorlage22
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:288586828;
        mso-list-type:hybrid;
        mso-list-template-ids:-169846318 67567631 67567641 67567643 67567631 67567641 67567643 67567631 67567641 67567643;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1
        {mso-list-id:1396976273;
        mso-list-type:hybrid;
        mso-list-template-ids:-1172164582 67567631 67567641 67567643 67567631 67567641 67567643 67567631 67567641 67567643;}
@list l1:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l1:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l1:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Was
          will ich eigentlich, bzw. was ist sinnvoll?!<o:p></o:p></span>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Ein
            Licht geht an und nach ein paar Minuten wieder aus.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Was
            interessiert mich daran, und was soll dargestellt werden:<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoListParagraph"
          style="text-indent:-18.0pt;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><span
              style="mso-list:Ignore">1.<span style="font:7.0pt
                "Times New Roman"">       </span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Wann
            ging das Licht an<o:p></o:p></span></p>
        <p class="MsoListParagraph"
          style="text-indent:-18.0pt;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><span
              style="mso-list:Ignore">2.<span style="font:7.0pt
                "Times New Roman"">       </span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Wann
            ging das Licht wieder aus<o:p></o:p></span></p>
        <p class="MsoListParagraph"
          style="text-indent:-18.0pt;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><span
              style="mso-list:Ignore">3.<span style="font:7.0pt
                "Times New Roman"">       </span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Das
            wievielte Schaltspiel ist dies<o:p></o:p></span></p>
        <p class="MsoListParagraph"
          style="text-indent:-18.0pt;mso-list:l0 level1 lfo2"><!--[if !supportLists]--><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><span
              style="mso-list:Ignore">4.<span style="font:7.0pt
                "Times New Roman"">       </span></span></span><!--[endif]--><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Wie
            viele Betriebsstunden (Betriebssekunden) hat die Lampe
            bereits gelaufen<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Zu
            1. und 2. stell ich mir die Darstellung wie ein
            Rechtecksignal vor.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Bei
            1. steigt die Flanke bei einem timestamp von 0 auf 1.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Bei
            2. fällt die Flanke bei einem timestamp von 1 auf 0.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Bei
            3. wird bei der steigenden Flanke von 1. ein Schaltspiel
            hinzuaddiert.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Bei
            4. …….öhm…….wie könnte das aussehen? Wenn man hier bei 1.
            die Betriebsstundenuhr weiterlaufen lässt und erst wieder
            bei 2. anhält, dann würden ja im Sekundentakt Datensätze in
            die Datenbank geschrieben werden. Das halte ich ja für
            falsch, weil es unnötige Datensätze erzeugt. Ich denke eine
            bessere Idee wäre bei 1. die Zählerstand der Uhr zu senden,
            und bei 2. noch einmal. Dazwischen nimmt der
            Betriebsstundenzähler ja einfach nur linear zu.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Somit
            muss man nur 1x bei Schaltspielbeginn und 1x bei
            Schaltspielende Daten an die Middleware schicken.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Das
            hört sich für mich nach dem richtigen Plan an.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
      </div>
    </blockquote>
    Ja, diesen Plan halte ich auch für den besten -- und er entspricht
    genau dem, was ich in meiner ersten Antwort am 1.5. auf Deine
    Anfrage geschrieben habe. Allerdings auch mit den Nachteilen, die
    dort skizziert sind: Es gibt keinen Zählerstand, den Du direkt aus
    der DB auslesen könntest, und die Darstellung des Schaltspielzählers
    im Frontend ist nicht perfekt -- die wird es aber nie sein, egal
    welche Daten (Zählerstand oder Impuls) Du erzeugst und
    einspeicherst, denn so ein Kanaltyp müsste erst implementiert
    werden. Ich würde aber erst mal anfangen, Daten zu sammeln, und mir
    um die optimale Darstellung später Gedanken machen: Erstens "schaut
    sich manches weg", wenn man sich daran gewöhnt hat, z.B. eine
    unpassende Einheit, und Daten, die Du heute nicht sammelst, sind für
    immer verloren.<br>
    <br>
    Ich würd's so versuchen (immer noch "Trockenschwimmkurs" ;-): <br>
    <br>
    1. Daten auf dem ständig laufenden Server erzeugen<br>
    Ein Skript überwacht in Endlos-Schleife, ob der ESP "da" ist, z.B.
    per Ping im 10-Sekundenraster, und schreibt das in eine Datei: 1 =
    ESP an = Licht an, 0 = Aus.<br>
    (Da gibt's vielleicht auch besseres, denn das Skript darf nicht
    abstürzen, sonst ist der "Sensor" kaputt. Andererseits könntest Du
    die Einschaltverzögerung des ESP "hinten" dran addieren, indem Du
    die 0 nicht sofort, sondern erst ein paar Sekunden später in die
    Datei schreibst.)<br>
    Die Datei enthält entweder 1 oder 0, also nicht hinten anhängen,
    sondern überschreiben. Ich meine zumindest, so funktioniert das
    "file-meter".<br>
    <br>
    2. Datei mit vzlogger überwachen<br>
    Dazu ein neues "meter" in die Aufzählung packen mit "protocol":
    "file". vzlogger darf das ruhig in kurzem Intervall z.B. 1 sec
    überwachen, denn Doubletten schickt er nicht an die Middleware,
    außer man würde es ihm explizit befehlen.<br>
    Dieses Meter befeuert 2 channels:<br>
    - Den Schaltspielzähler vom Typ "Impulse" -- Gas, Wasser oder Strom:
    Den idealen gibt es m.E. nicht, es müsste ein generischer
    Impulszähler sein.<br>
    - Den Betriebsstundensensor (siehe Franks Antwort vom 3.5 1:45h)<br>
    <br>
    Die Kanäle hast Du vorher im Frontend angelegt. <br>
    <br>
    Übrigens: Wenn Dir die Kanaldarstellung nicht gefällt, Du ihn vom
    "falschen" Typ angelegt hast, kannst Du das problemlos auf der DB
    ändern, ohne die Daten zu verlieren: Einfach in der Tabelle entities
    den type ändern, id und uuid bleiben gleich --> Daten bleiben
    erhalten, das Frontend stellt sie aber anders dar. Welche englischen
    Einträge erlaubt sind und den deutschen Bezeichnungen entsprechen,
    findest Du unter
<a class="moz-txt-link-freetext" href="https://github.com/volkszaehler/volkszaehler.org/blob/master/lib/Definition/EntityDefinition.json">https://github.com/volkszaehler/volkszaehler.org/blob/master/lib/Definition/EntityDefinition.json</a><br>
    <br>
    Viel Erfolg!<br>
    Rupert<br>
  </body>
</html>