<div dir="ltr"><div dir="ltr"><div>Hallo Peer,</div><div><br></div><div>mir ist gestern auch nicht aufgefallen, dass ich auf deine Mails gar nicht an die Liste antworte.</div><div><br></div><div>@all: die Vorgeschichte ist unten nachzulesen, sorry!<br></div><div><br></div><div>Wie schon geschrieben habe ich schon verschiedentlich mittels D0-Protokoll Daten von Arduino-Projekten mit vzlogger geloggt. Beispielsweise folgende Ausgabe wird von vzlogger verstanden:</div><div><br></div><div><div>/ABC5</div><div>1-0:1.7.0*255(137.5*W)</div><div>!</div></div><div dir="ltr"><br></div><div>Die dazu passende Kanaldefinition muss den Identifier "1-0:1.7.0" enthalten, dann extrahiert vzlogger den gesuchten Wert 137.5.</div><div>Natürlich kannst du zwischen der Einleitungssequenz und dem abschließenden Ausrufezeichen beliebig viele Zeilen mit Identifiern und Werten nutzen.</div><div><br></div><div>Für mich ist das eine praktikable Möglichkeit, Daten selbst entwickelter Gerätschaften zu loggen und trotzdem die Annehmlichkeiten von vzlogger wie Aggregation, Versorgung des Push-Servers und Pufferung zu nutzen.</div><div><br></div><div>Natürlich wär's schön, wenn vzlogger auch mit anderen seriellen Protokollen umgehen könnte wie du angeregt hast, aber wenn du das nicht selbst entwickelst, sehe ich dafür aktuell schwarz...</div><div><br></div><div>Grüße</div><div>Frank</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Am Sa., 26. Jan. 2019 um 01:09 Uhr schrieb Peer Janssen <<a href="mailto:peer@pjk.de">peer@pjk.de</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF">
    <p>Im Prinzip ja, aber ich kenne weder D0, noch weiß ich, was
      vzlogger mit dem UART macht oder wie vzlogger das dann
      auseinandergeschnippelt.</p>
    <p>Außerdem weiß ich nicht, wie ich den Sensor "Radioaktivität" im
      Frontend wählen kann. Ich habe ja versucht, das Modell dafür zu
      liefern, damit es in die Software mit aufgenommen werden kann,
      aber da hören meine Kenntnisse schon auf. Ich müsste mich also
      auch erst in die Frontend-Programmierung einarbeiten, damit ich
      die Werte richtig hinbekomme.<br>
    </p>
    <p>Den AVR im Geigerzähler habe ich vor vielen Jahren programmiert.
      Auch da müsste ich mich erst wieder reindenken. Außerdem ist ein
      großer Teil meiner Elektronikbastelkiste in einer 750 km
      entfernten Stadt.<br>
    </p>
    <p>Ist D0 nicht eine Norm für Stromzähler? Macht es Sinn, da ein
      eigenes Format ranzufrickeln, das dann nicht der Norm entspricht?
      Wäre es dann nicht besser, im vzlogger ein neues Messgerät für
      zeilenweise eintreffende UART-Daten zu definieren, mit einem
      Format-Parameter, der das Herauslösen des Wertes ermöglicht?</p>
    <p>Ansonsten kann ich ja meine PC-Lösung übernehmen und die Werte
      (wie für den DHT11) direkt in die DB schubsen. Das kann ich. Ob
      das so gut ist, wie den vzlogger zu verwenden, weiß ich nicht.
      Aber ihr habt lange daran gearbeitet, der ist vielleicht stabiler
      und somit vorzuziehen. Aber um das zu beurteilen, müsste ich noch
      mehr lernen... Alles zugleich geht aber nicht.<br>
    </p>
    <p><br>
    </p>
    <div class="gmail-m_-5694575748035476627moz-cite-prefix">Am 26.01.19 um 00:24 schrieb Frank
      Richter:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="auto">
        <div dir="auto">Hi Peer,</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">wenn in deinem Geigerzähler eh ein selbst
          programmierter AVR steckt, kannst du doch dem D0 beibringen
          und auf dem Pi dann vzlogger nutzen. So hab ich das schon mit
          einigen Arduino-Projekten gemacht, funktioniert problemlos.</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Grüße</div>
        <div dir="auto">Frank</div>
        <br>
        <div class="gmail_quote">
          <div dir="ltr">Am Fr., 25. Jan. 2019, 22:52 hat Peer Janssen
            <<a href="mailto:peer@pjk.de" rel="noreferrer" target="_blank">peer@pjk.de</a>>
            geschrieben:<br>
          </div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
            <div bgcolor="#FFFFFF">
              <p>Von Geigerzählerimpulsen. Die sind unregelmäßig und
                dosisabhängig. Bei 120-150 Imp/min. Nullrate wären das
                2-3 pro Sekunde. Aber es kann im Fall des Falles auch
                mehr werden, und gerade dann möchte man keine Impulse
                verlieren, um einen zuverlässigen Messwert zu haben.
                (Offizielle Stellen sind nicht vertrauenswürdig, wie sie
                immer wieder gezeigt haben.)</p>
              <p>Ich hab das mal mit dem NMI in einem
                AVR-Mikrocontroller gelöst, der nur schnell einen Zähler
                inkrementiert, damit möglichst wenig verloren geht.
                Daher meine Fragen.</p>
              <p>Die Impulse direkt auf einen Raspi zu geben, könnte
                nämlich Hardware einsparen, wenn das gut läuft.
                Problematisch wird's aber, wenn die Interrupts
                unregelmäßig geblockt werden, weil das Verhalten dann
                nicht mehr so recht vorhersagbar ist. Bei einem
                kompletten PC (auch wenn er Raspi heißt) ist das
                vermutlich ungünstig. Ich habe aber Null Ahnung, wie in
                Linux im Allgemein und im Raspi im Speziellen mit
                Interrupts umgegangen wird bzw. werden muss.</p>
              <p>Statt eines NMIs könnte man auch einen Porteingang mit
                einem Hardware-Zähler nutzen, muss dann aber den
                Überlauf richtig abfangen und auswerten (also
                mitzählen). Aber meine Lösung ist schnell genug, daher
                hatte ich daran nichts geändert. Das war alles, bevor es
                den Raspi gab.<br>
              </p>
              <p>An sich habe ich auch schon Skripte unter Linux, mit
                denen ich die Daten annehmen und loggen kann. Ich hatte
                gehofft, mit dem VZ ließe sich das verbessern und
                einfacher machen. Natürlich kann ich die Daten mit
                eigenen Skripten auch irgendwie direkt in die Middleware
                schieben, sogar auch direkt in die Datenbank (statt über
                die php-API). Das wäre wohl meine zweitbeste Variante.
                Immerhin bleibt mir so die Programmierung des Frontends
                gespart. Das hat zwar auch seine kleinen Quirks (beim
                Umzoomen), gefällt mir aber trotzdem gut.<br>
              </p>
              <p>Ich dachte allerdings, dass Geigerzähler besser in den
                VZ integriert sind. Als ich das Projekt mit Justin
                gestartet hatte, hatten wir nur Impulse, und zwar aus
                S0-Hutschienenzählern und eben aus dem Geigerzähler.
                Aber es ist dann wohl unterwegs verloren gegangen.<br>
              </p>
              <p>Schöne Grüße</p>
              <p>Peer<br>
              </p>
              <p><br>
              </p>
              <div class="gmail-m_-5694575748035476627m_8932147428825520219m_2111005812527602097moz-cite-prefix">Am
                25.01.19 um 22:12 schrieb Frank Richter:<br>
              </div>
              <blockquote type="cite">
                <div dir="auto">
                  <div dir="auto">vzlogger ist eben für elektronische
                    Stromzähler gemacht, zunächst mal für D0 und SML.
                    Später kam Unterstützung für S0-Impulse und
                    1-Wire-Sensoren dazu.
                    <div dir="auto"><br>
                    </div>
                    <div dir="auto">Zur Einbindung von verteilten
                      Sensoren bietet sich z.B. der ESP866 mit ESPeasy
                      an. Dazu findest du auch was im Wiki.</div>
                  </div>
                  <div dir="auto"><br>
                  </div>
                  Mit Impulszählern hab ich selbst keine Erfahrung,
                  deshalb kann ich dazu nicht viel sagen. Von welchen
                  Frequenzen reden wir?
                  <div dir="auto"><br>
                  </div>
                  <div dir="auto">Grüße</div>
                  <div dir="auto">Frank
                    <div dir="auto">
                      <div dir="auto"><br>
                      </div>
                      <div dir="auto"><br>
                        <div class="gmail_quote" dir="auto">
                          <div dir="ltr">Am Fr., 25. Jan. 2019, 21:49
                            hat Peer Janssen <<a href="mailto:peer@pjk.de" rel="noreferrer
                              noreferrer noreferrer" target="_blank">peer@pjk.de</a>>
                            geschrieben:<br>
                          </div>
                          <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                            <div bgcolor="#FFFFFF">
                              <p>Ich stimme Dir weitgehend zu. Den DHT11
                                hatte ich hier rumliegen und er war
                                irgendwie schneller eingebaut. Die Werte
                                sind dennoch als Relativwerte
                                vorübergehend nützlich. (Und auch zur
                                Demonstration der Ungenauigkeit.)<br>
                              </p>
                              <p>Erübrigt sich denn die Scriptelei, wenn
                                ich einen anderen Sensor nehme? Sind die
                                anderen Sensoren besser in VZ
                                integriert? Einen BMx280 habe ich hier
                                auch noch und möchte ihn auch nutzen,
                                aber vermutlich an anderer Stelle.</p>
                              <p>Wenn ich das Wiki mit seinen
                                Anleitungen durchsuche, scheinen sich
                                aber auch da letztlich dieselben Fragen
                                zu stellen:</p>
                              <p>- Kann ich mit den Bordmitteln der Bash
                                eine ein- oder mehrzeilige Ausgabe auf
                                zwei Variablen aufteilen?</p>
                              <p>- Oder geht das direkt im vzlogger mit
                                der Formatierungsfunktion nach dem
                                Scriptaufruf?</p>
                              <p>Ich hatte erst eine Weile mit FHEM
                                rumprobiert. Da scheinen viele Sensoren
                                mehr oder weniger out of the box
                                unterstützt zu werden. Aber das ist ja
                                mehr ein Event-Reaktions-Framework als
                                ein Messprotokoll, obwohl es beides
                                kann. Nachdem mir aber der Raspi damit
                                unerwartet abrauchte (startete einfach
                                nicht mehr), hab ich mir gedacht, ich
                                versuch's mal mit dem Volkszähler, weil
                                der das Messen und Aufzeichnen als
                                Hauptfunktion hat.</p>
                              <p>Nach Deinen Antworten verstehe ich nun
                                aber nicht mehr so genau, wozu der
                                vzlogger selbst gut ist, wenn man eh so
                                viel selbst scripten muss.</p>
                              <p>Außerdem würde mich interessieren, ob
                                Zählimpulse gepollt oder über Interrupts
                                erfasst werden, und wie hoch die
                                Wahrscheinlichkeit ist, Impulse zu
                                verlieren, insbesondere, wenn man eine
                                deutlich schnellere, unregelmäßige
                                Quelle hat.<br>
                              </p>
                              <p><br>
                              </p>
                              <div class="gmail-m_-5694575748035476627m_8932147428825520219m_2111005812527602097m_1504741570087192407m_2124274636621441020moz-cite-prefix">Am
                                25.01.19 um 21:14 schrieb Frank Richter:<br>
                              </div>
                              <blockquote type="cite">
                                <div dir="auto">Hallo Peer,
                                  <div dir="auto"><br>
                                  </div>
                                  <div dir="auto">tu dir einen Gefallen
                                    und nimm einen vernünftigen Sensor.
                                    Die DHT11 mit ihrer miesen Auflösung
                                    und einer Feuchtemessung, die nach
                                    dem Mond geht, sind IMHO den Aufwand
                                    nicht wert. </div>
                                  <div dir="auto">Alternativen: SHT31,
                                    Si7021, BME280,...</div>
                                  <div dir="auto"><br>
                                  </div>
                                  <div dir="auto">Grüße</div>
                                  <div dir="auto">Frank</div>
                                </div>
                                <br>
                                <div class="gmail_quote">
                                  <div dir="ltr">Am Fr., 25. Jan. 2019,
                                    19:02 hat Peer Janssen <<a href="mailto:peer@pjk.de" rel="noreferrer noreferrer
                                      noreferrer noreferrer" target="_blank">peer@pjk.de</a>>
                                    geschrieben:<br>
                                  </div>
                                  <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Moin!<br>
                                    <br>
                                    Ich habe einen DHT11 am Raspi, der
                                    auch seine Werte liefert.<br>
                                    <br>
                                    Genutzt habe ich die Anleitung nach<br>
                                    <a href="https://wiki.volkszaehler.org/_export/code/hardware/channels/sensors/dht22?codeblock=3" rel="noreferrer noreferrer
                                      noreferrer noreferrer noreferrer
                                      noreferrer" target="_blank">https://wiki.volkszaehler.org/_export/code/hardware/channels/sensors/dht22?codeblock=3</a>,<br>
                                    allerdings das Script loldht durch
                                    die aktuellere Version des<br>
                                    "AdafruitDHT.py" ersetzt, das auch
                                    den DHT11 abfragen kann (außerdem<br>
                                    DHT22 und noch eine andere Type).
                                    Die Werte meines etwas veränderten<br>
                                    Scripts (aufgerufen durch cron)
                                    landen in einer Logdatei, die so
                                    aussieht:<br>
                                    <br>
                                    2019-01-25_18:31 [DHT11] Temp=18.0* 
                                    Humidity=16.0%<br>
                                    2019-01-25_18:32 [DHT11] Temp=18.0* 
                                    Humidity=16.0%<br>
                                    2019-01-25_18:33 [DHT11] Temp=20.0* 
                                    Humidity=23.0%<br>
                                    2019-01-25_18:34 [DHT11] Temp=18.0* 
                                    Humidity=16.0%<br>
                                    <br>
                                    Nun bin ich mit dem Beispielscript
                                    aber nicht zufrieden. Um diese zwei<br>
                                    Werte in die Middleware zu schicken,
                                    werden nacheinander folgende<br>
                                    Programme aufgerufen:<br>
                                    <br>
                                    bash, loldht, grep, date, echo, awk,
                                    echo, awk, echo, sed, echo, sed,<br>
                                    echo, wget, echo, echo, sed, echo,
                                    sed, wget<br>
                                    <br>
                                    Das sind 20 Programmaufrufe -- das
                                    sieht mir nach Overkill aus. Da ich<br>
                                    loldht nicht mehr verwende, sondern
                                    AdafruitDHT.py (das auch nur ein<br>
                                    wrapper um eine python-Library ist),
                                    kann ich die Werte auch direkt im<br>
                                    Python-Script formatieren wie
                                    gebraucht. Das wäre dann nur ein
                                    einziger<br>
                                    Script-Aufruf im cron-Job statt
                                    mehrerer anderer. Allerdings weiß
                                    ich<br>
                                    nicht, wie ich die Ausgabe
                                    formatieren müsste, sodass sie dann
                                    direkt,<br>
                                    ähnlich wie im Beispielscript, mit
                                    wget in die Middleware geschickt<br>
                                    werden kann, ohne x mal echo, sed
                                    und awk zu belästigen. Ich kenne<br>
                                    nämlich bash und deren (interne!)
                                    string-Dissektoren nicht gut genug<br>
                                    dafür. Hat da jemand eine Idee?
                                    Falls nicht, ließe sich die
                                    middleware<br>
                                    aber auch direkt im python-Script
                                    ansprechen.<br>
                                    <br>
                                    Nun sehe ich aber, dass vzlogger so
                                    konfiguriert werden kann, dass ein<br>
                                    Script aufgerufen und anhand eines
                                    Formatstrings der Wert aus dessen<br>
                                    Rückgabewert entnommen wird. Ist
                                    damit die alte Lösung mit dem<br>
                                    Beispielscript im Grunde obsolet?
                                    Ich habe nämlich den Eindruck, dass<br>
                                    das VZ-Wiki in einem Status zwischen
                                    einer alten und einer neuen Version<br>
                                    ist, bei der mir nicht recht klar
                                    ist, ob da Altes schon Obsoletes<br>
                                    geworden ist. Nun weiß ich aber
                                    nicht, ob der Formatstring so
                                    angegeben<br>
                                    werden kann, dass ich die beiden
                                    Werte aus der Scriptausgabe
                                    extrahieren<br>
                                    kann. Falls nicht, erscheint mir
                                    doch ein cron-Job mit einem eigenen<br>
                                    Script in Python die bessere Lösung.<br>
                                    <br>
                                    Tipps dazu?<br>
                                    <br>
                                    Gruß, Peer<br>
                                    <br>
                                    <br>
                                    -- <br>
                                    Peer Janssen - <a href="mailto:peer@pjk.de" rel="noreferrer noreferrer
                                      noreferrer noreferrer noreferrer" target="_blank">peer@pjk.de</a><br>
                                    <br>
                                    <br>
                                  </blockquote>
                                </div>
                              </blockquote>
                              <pre class="gmail-m_-5694575748035476627m_8932147428825520219m_2111005812527602097m_1504741570087192407m_2124274636621441020moz-signature" cols="72">-- 
Peer Janssen - <a class="gmail-m_-5694575748035476627m_8932147428825520219m_2111005812527602097m_1504741570087192407m_2124274636621441020moz-txt-link-abbreviated" href="mailto:peer@pjk.de" rel="noreferrer noreferrer noreferrer noreferrer" target="_blank">peer@pjk.de</a>
</pre>
                            </div>
                          </blockquote>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              </blockquote>
              <pre class="gmail-m_-5694575748035476627m_8932147428825520219m_2111005812527602097moz-signature" cols="72">-- 
Peer Janssen - <a class="gmail-m_-5694575748035476627m_8932147428825520219m_2111005812527602097moz-txt-link-abbreviated" href="mailto:peer@pjk.de" rel="noreferrer noreferrer" target="_blank">peer@pjk.de</a>
</pre>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <pre class="gmail-m_-5694575748035476627moz-signature" cols="72">-- 
Peer Janssen - <a class="gmail-m_-5694575748035476627moz-txt-link-abbreviated" href="mailto:peer@pjk.de" target="_blank">peer@pjk.de</a>
</pre>
  </div>

</blockquote></div></div></div>