<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 30.04.2018 um 10:52 schrieb
      Christian Wulff:<br>
    </div>
    <blockquote type="cite"
      cite="mid:007101d3e060$9f522780$ddf67680$@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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
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;}
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:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@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:743601251;
        mso-list-type:hybrid;
        mso-list-template-ids:102239406 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;}
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">ich bin auf der Suche nach einem Konzept
        für folgende Fragestellung:<o:p></o:p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Ich möchte die Schaltspiele und
          Betriebsstunden einer Bewegungsmelder-gesteuerten Beleuchtung
          über WLAN mit dem Volkszähler erfassen.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Die Schaltspiele möchte ich dabei nicht als
          S0 Impulse, sondern als Zahl gespeichert haben. Das heißt
          folgendermaßen: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ........<o:p></o:p></p>
        <p class="MsoNormal">Hintergrund ist, dass man so auf den ersten
          Blick in die Datenbank die Schaltspiele ablesen kann, und
          nicht bei einer Abfrage mühsam alle Impulse aufaddieren muss.
          (Hab ich nämlich schon bei anderen Kanälen in der Datenbank
          und dauert mir bei der späteren Abfrage leider zu lange).<o:p></o:p></p>
      </div>
    </blockquote>
    <br>
    Ich meine, dass das mit S0-Impulsen schon gut geht: Jedes
    Einschalten (Wechsel 0 -> 1) erzeugt einen Impuls, den Du mit
    vzlogger registrieren kannst. Die Auflösung ist 1. In der Grafik des
    VZ bzw. der Tabelle darunter bekommst Du dann als "Verbrauch" die
    Anzahl Schaltspiele im ausgewählten Zeitraum. Ok, 100% so wie Du Dir
    das vorstellst, ist es nicht. Aber das Aufaddieren ist m.E. nicht
    "mühsam", wie Du schreibst. <br>
    Das wäre der 1. Kanal zum Mitzählen. <br>
    <br>
    <blockquote type="cite"
      cite="mid:007101d3e060$9f522780$ddf67680$@gmx.de">
      <div class="WordSection1">
        <p class="MsoNormal">Bei den "Betriebsstunden" sollen die
          "Betriebssekunden" aufaddiert werden. Diese können variieren,
          weil der Bewegungsmelder innerhalb seiner Timerlaufzeit
          mehrfach ausgelöst werden kann, oder das Licht auch manuell
          angeschaltet werden kann.<o:p></o:p></p>
        <p class="MsoNormal">Das heißt folgendermaßen (Beispiel pro
          Schaltspiel 55 Sekunden, kann aber auch variieren): 55, 110 ,
          165, 220, 652, 707, 762, 817, 1254, 1309, .....<o:p></o:p></p>
        <p class="MsoNormal">Auch hier der gleiche Grund: Bei ersten
          Blick in die Datenbank möchte ich die Betriebsstunden in
          Sekunden auslesen.</p>
      </div>
    </blockquote>
    <br>
    Hierzu würde ich einen 2. Kanal einrichten, der auf dasselbe 1 /
    0-Signal reagiert. Ich habe eine Photodiode, die registriert, ob im
    Keller Licht an ist, und das an einen GPIO des Pi gibt. Der Kanal
    ist ein allgemeiner "Sensor" mit Einheit "Ein" und Stil "states".
    Hier sehe ich z.B. in der Tabelle, dass das Licht im Durchschnitt
    eines Tages "0,037 Ein" war. Gut, das müsste ich in Stunden
    umrechnen. Vermutlich geht es mit dem Kanaltyp
    "Betriebsstundensensor" viel einfacher, ich habe damit aber keine
    Erfahrung.<br>
    <br>
    Ich gebe zu, meine Lösungsvorschläge ignorieren Deinen Wunsch, "beim
    ersten Blick in die DB" die Info zu bekommen. Ich kann den aber auch
    nicht wirklich nachvollziehen: Wie würdest Du "in die DB"
    hineinschauen? Per SQL? Auch dann muss, nach Tausenden
    Schaltspielen, die je 1 Datensatz erzeugt haben, der richtige
    =letzte herausgesucht werden. Geht das schneller als ein COUNT oder
    SUM? Ich habe eine analoge Wasseruhr als S0-Zähler eingerichtet, die
    hat nach 4 Monaten rd. 226.000 Datensätze in die DB gepumpt. Eine
    Grafik über diesen Zeitraum aufzubauen dauert ein paar Sekunden,
    liefert mir aber neben dem Gesamtverbrauch auch den zeitlichen
    Verlauf. Würde ich diese Daten verdichten gemäß
    <a class="moz-txt-link-freetext" href="https://wiki.volkszaehler.org/howto/datenmengen">https://wiki.volkszaehler.org/howto/datenmengen</a>, würde es vermutlich
    noch deutlich schneller gehen.<br>
    <br>
    Direkt auf der DB (phpMyAdmin) geht's auch nicht viel schneller:<br>
    <blockquote>Zeige Datensätze 0 -  0 (1 insgesamt, Die Abfrage
      dauerte 3.7392 Sekunden.)<br>
      <br>
      SELECT count(*), Sum(value) FROM `data` WHERE channel_id=12<br>
      225887    736725    <br>
    </blockquote>
    (Da fällt mir auf: 736.725 Impulse bei 60 Imp/l sind 12.278,75 l.
    Die Tabelle sagt 12,2 m³ -- kann das Teil nicht richtig runden??)<br>
    <br>
    Brauchst Du bessere Performance, für die es sich lohnt, die
    Standardkonzepte zu verbiegen?<br>
    <br>
    <blockquote type="cite"
      cite="mid:007101d3e060$9f522780$ddf67680$@gmx.de">
      <div class="WordSection1">
        <p class="MsoNormal"><o:p></o:p></p>
        Als Hardware dachte ich an einen ESP8266. Damit habe ich bereits
        einige Projekte erfolgreich gemacht. Diesen könnte ich auch mit
        einem FRAM Speichermodul kombinieren, um die Werte beim Sensor
        zwischenzuspeichern.<o:p></o:p></div>
    </blockquote>
    Was soll der ESP8266 machen? M.E. reicht es, wenn Du Licht an/aus
    als 1/0 an einen GPIO bekommst und das mit vzlogger an die
    Middleware übertragen lässt.<br>
    <o:p> <br>
    </o:p>
    <blockquote type="cite"
      cite="mid:007101d3e060$9f522780$ddf67680$@gmx.de">
      <div class="WordSection1">
        <p class="MsoNormal">Warum will ich das haben? In erster Linie:
          Just for fun! </p>
      </div>
    </blockquote>
    Das ist die wichtigste Triebfeder! :-)<br>
    <br>
    Viele Grüße<br>
    Rupert<br>
  </body>
</html>