<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><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:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@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";}
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
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.E-MailFormatvorlage18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.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;}
--></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]--></head><body lang=DE link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Hallo Frank,<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'>>>>>>>>>Zählerstände sind sicherlich schicker, aber auch schwieriger in der Handhabung: soll der ESP den laufenden Absolutwert speichern? <<<<<<<<<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'>So hab ich mir das bisher gedacht: Der ESP soll den Absolutwert in einem FRAM Baustein speichern. Vielleicht noch mehrfach redundant und mit etwas Logik die Fehler rausfiltern (z.B. 5x den gleichen Wert speichern. Bei den Schaltspielen darf der neue Wert nur 1 größer sein als der alte. Bei den Betriebsstunden darf der neue Wert nur größer sein als der alte, aber auch nicht sehr viel größer. Und so weiter.)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Ich hatte auch die Idee jedesmal die letzten Werte aus der Datenbank abfragen, aber wenn es dann zu Problemen kommt mit dem Zugriff, dann kriegt man das nicht mit oder kriegt ständig Fehler.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Bei so einem nicht flüchtigem FRAM soll jedes Byte mehrere Billionen mal beschrieben werden können. Ich denke das reicht erstmal ne Weile </span><span style='font-size:11.0pt;font-family:Wingdings;color:#1F497D'>J</span><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'><a href="https://www.adafruit.com/product/1895">https://www.adafruit.com/product/1895</a><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><a href="https://www.adafruit.com/product/1897">https://www.adafruit.com/product/1897</a><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'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Zum Thema Aggregation habe ich folgendes im Wiki gefunden, ich denke das meinst du:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><a href="https://wiki.volkszaehler.org/howto/datenmengen?#performance_der_middleware_erhoehendatenaggregationcache">https://wiki.volkszaehler.org/howto/datenmengen?#performance_der_middleware_erhoehendatenaggregationcache</a><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'>Wie ich sehe ist die Aggregation bei mir aus.<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'>Der aktuellen Zustand meiner (nicht vorhandenen) Aggregation (aktiv, Anzahl der Datensätze, Ratio) habe ich mit folgender Middleware-Abfrage geprüft:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>http://IP-ADRESSE/middleware.php/capabilities/database.json?<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Ergebnis:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>{"version":"0.3","capabilities":{"database":{"data_rows":30461209,"data_size":2664267776,"aggregation_enabled":0}}}<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Wenn ich das richtig interpretiere sind es knapp 30,5 Mio. Datensätze mit 2,66GB Größe, Aggregation ist aus.<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'>Die Aggregation hab ich noch nicht sicher verstanden.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Wenn ich es richtig verstehe, werden keine Daten gelöscht oder ausgedünnt, sondern nur zusätzliche Daten erzeugt, was nur Zeit und Speicherplatz kostet.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Was passiert wenn die Initialaggregation unterbrochen wird? Stromausfall oder plötzlich anspringendes Backup aus einem cronjob, das die Services vom Volkszähler stoppt?<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Ist das ein Problem, oder kann man die Aggregation später einfach nochmal neu starten und die läuft dann dort weiter wo sie unterbrochen wurde?<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'>Was ist das mit dem day / hour und minute?<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Ich stelle mir das so vor: Die Rohdaten werden im Sekundentakt in der Datenbank gespeichert.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Schaut man sich jetzt die Daten im Frontend voll hineingezoomt an, sieht man die Werte mit dem Sekundenintervall.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Zoomt man jetzt heraus, so kommt irgendwann der Punkt an dem so viele Sekundenintervalle dargestellt werden sollen die man garnichtmehr auf einer Pixelbreite darstellen kann. Dann ist dies auch sinnlos und man kann auf die aggregierten Daten zugreifen. Die aggregierten Daten sind dann ein Mittelwert aus den Sekundenintervallen.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Für „Minute“ wurden 60 Sekundendatensätze zu einem Datensatz/Datenpunkt zusammengefasst.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Für „Hour“ wurden 60x60 = 3600 Sekundendatensätze zu einem Datensatz/Datenpunkt zusammengefasst.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Für „Day“ wurden 24x60x60 = 86400 Sekundendatensätze zu einem Datensatz/Datenpunkt zusammengefasst.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Stimmt das soweit?<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'>Im Wiki habe ich gelesen, dass das Frontend dafür gerüstet ist.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Ist denn die Volkszähler App dafür auch gerüstet?`<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Und wie sieht es mit http requests aus. Können die das auch nutzen?<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'>Lieben Gruß,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Chris<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'><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'><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'><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'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Frank Richter [mailto:frank.richter83@gmail.com] <br><b>Gesendet:</b> Donnerstag, 3. Mai 2018 01:46<br><b>An:</b> volkszaehler.org - users<br><b>Betreff:</b> Re: [vz-users] Schaltspiel- und Betriebsstundenzähler - Konzept gesucht<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><div><div><p class=MsoNormal>Am 2. Mai 2018 um 21:49 schrieb Christian Wulff <<a href="mailto:christianwulff@gmx.de" target="_blank">christianwulff@gmx.de</a>>:<o:p></o:p></p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>(...) </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>Nun nochmal zu meinen Fragestellungen:</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>1.            Hat schon mal jemand eine Betriebsstunden- und/oder Schaltspielerfassung mit einem Volkszähler realisiert? Wenn ja, wie?</span><o:p></o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Ich nicht.<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>2.            Wie stellt man die Betriebsstunden im Frontend dar? Wie sieht das aus? „Betriebsstundenzähler (Impulse)“ und „Betriebsstundenzähler (Zählerstand)“ gibt es ja, aber dann gibt es noch einen „Betriebsstundenzähler“. Was ist das?</span><o:p></o:p></p></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Du meinst den "Betriebsstundensensor". Das ist halt ein Betriebsstundenzähler mit der Logik des SensorInterpreters. Wenn dort 1h lang der Wert 1 anliegt, kommt 1 Betriebsstunde raus. Es gibt also für alle 3 Interpreter-Logiken einen passenden Kanaltyp, genau wie bei elektrischer Energie (Impulse/Zählerstände/Leistung). Für das was du haben willst, brauchst du Zählerstände. Wenn du Sekunden in die DB schreibst, musst du Auflösung auf 3600 setzen,<o:p></o:p></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>3.            Wie stellt ich die Schaltspiele dar? Als Ventil? Welche Daten braucht das Ventil? „1“ für „high“ und „0“ für „low“? Ist das irgendwo dokumentiert?</span><o:p></o:p></p></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Ventil nutzt SensorInterpreter, dass passt nicht für deine angedachten Absolutwerte. Im Zweifelsfall hilft immer ein Blick in lib/Definition/EntityDefinition.json. Dort kannst du dir auch einen eigenen Kanaltyp für Schaltspiele definieren. Du brauchst hierfür ebenfalls den AccumulatorInterpreter (für absolute Zählerstände). <o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>4.            Der Bewegungsmelder schaltet ja auch den ESP8266 mit ein und aus. Die Bootverzögerung kann ich ignorieren oder mal messen und dann als konstanten Wert zu jeder Messung dazu addieren.</span><o:p></o:p></p></div></div></blockquote><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='color:#1F497D'>Aber wie schaffe ich es, dass der ESP8266 das Abschalten registriert und dann noch den Wert an die Datenbank sendet?</span><o:p></o:p></p></div></div></blockquote><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>ESP durchlaufen lassen (evt. mit Deepsleep und wecken beim Einschaltvorgang)? Oder jede Sekunde/alle 5 Sekunden einen Datensatz erzeugen und damit leben, dass der letzte verloren geht? Oder mit MQTT realisieren und Ausschaltung als last will realisieren? Pufferkondensator/akku würde ich eher nicht machen.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Grüße<o:p></o:p></p></div><div><p class=MsoNormal>Frank<o:p></o:p></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'><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'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Frank Richter [mailto:frank.richter83@gmail.com] <br><b>Gesendet:</b> Mittwoch, 2. Mai 2018 22:02<br><b>An:</b> volkszaehler.org - users<br><b>Betreff:</b> Re: [vz-users] Schaltspiel- und Betriebsstundenzähler - Konzept gesucht<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Hi Christian,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>bei deinen lahmen Antwortzeiten hast du sicher keine Aggregation aktiviert, oder? Bitte mal überprüfen (aggregation in der volkszaehler.conf.php und Cronjobs für regelmäßige Aktualisierung der Tabelle aggregate).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Zählerstände sind sicherlich schicker, aber auch schwieriger in der Handhabung: soll der ESP den laufenden Absolutwert speichern?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Gruß<o:p></o:p></p><p class=MsoNormal>Frank<o:p></o:p></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p> </o:p></span></p></div><div><p class=MsoNormal> <o:p></o:p></p></div><div><p class=MsoNormal><span style='color:#1F497D'> </span><o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>Von:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Rupert Schöttler [mailto:<a href="mailto:rupert.schoettler@gmx.de" target="_blank">rupert.schoettler@gmx.de</a>] <br><b>Gesendet:</b> Dienstag, 1. Mai 2018 12:46<br><b>An:</b> <a href="mailto:volkszaehler-users@demo.volkszaehler.org" target="_blank">volkszaehler-users@demo.volkszaehler.org</a><br><b>Betreff:</b> Re: [vz-users] Schaltspiel- und Betriebsstundenzähler - Konzept gesucht</span><o:p></o:p></p></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p>Hallo Christian,<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Am 30.04.2018 um 10:52 schrieb Christian Wulff:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>ich bin auf der Suche nach einem Konzept für folgende Fragestellung: <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>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 style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>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 style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>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></blockquote><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'><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><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>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 style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>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 style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Auch hier der gleiche Grund: Bei ersten Blick in die Datenbank möchte ich die Betriebsstunden in Sekunden auslesen.<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><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 href="https://wiki.volkszaehler.org/howto/datenmengen" target="_blank">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:<o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>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    <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'>(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><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>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></p><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'>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></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Warum will ich das haben? In erster Linie: Just for fun! <o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>Das ist die wichtigste Triebfeder! :-)<br><br>Viele Grüße<br>Rupert<o:p></o:p></p></div></div></div></div></blockquote></div><p class=MsoNormal><o:p> </o:p></p></div></div></div></body></html>