<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>