[vz-users] volkszaehler-users Digest, Vol 65, Issue 108

Michael Knapp michael at evo3.net
Fri Dec 30 14:33:12 CET 2016


Hallo Andreas,

ich habe den Kanal als Betriebsstundenzähler Sensor und auch als Betriebsstundenzähler Impuls konfiguriert gehabt, haben sich beide gleich verhalten.

VG Michael

Von meinem iPhone gesendet

> Am 30.12.2016 um 06:39 schrieb volkszaehler-users-request at demo.volkszaehler.org:
> 
> Send volkszaehler-users mailing list submissions to
>    volkszaehler-users at demo.volkszaehler.org
> 
> To subscribe or unsubscribe via the World Wide Web, visit
>    https://demo.volkszaehler.org/mailman/listinfo/volkszaehler-users
> or, via email, send a message with subject or body 'help' to
>    volkszaehler-users-request at demo.volkszaehler.org
> 
> You can reach the person managing the list at
>    volkszaehler-users-owner at demo.volkszaehler.org
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of volkszaehler-users digest..."
> 
> 
> Today's Topics:
> 
>   1. Re: Volkszähler Betriebszustands (Betriebsstunden)
>      Erfassung. (Andreas Goetz)
>   2. Re: Probleme mit Zeilenumbruch in einem Import-Script
>      (Lars Täuber)
>   3. Re: Probleme mit Zeilenumbruch in einem Import-Script
>      (Lars Täuber)
>   4. Re: Volkszähler Betriebszustands (Betriebsstunden)
>      Erfassung. (dl4huf at t-online.de)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Thu, 29 Dec 2016 12:07:11 +0100
> From: Andreas Goetz <cpuidle at gmail.com>
> To: "volkszaehler.org - users"
>    <volkszaehler-users at demo.volkszaehler.org>
> Subject: Re: [vz-users] Volkszähler Betriebszustands
>    (Betriebsstunden) Erfassung.
> Message-ID:
>    <CAD+a8MizLB3P-PGw3gwo=_eBNe5AC4QRomUMFi3uFtd4DhPLNA at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
> 
> Wie hast Du denn den Kanal konfiguriert und hast Du eine aktuelle
> Installation des Frontends?
> 
> Viele Grüße,
> Andreas
> 
> 
> 2016-12-29 10:49 GMT+01:00 Michael Knapp <michael at evo3.net>:
> 
>> Hallo zusammen,
>> 
>> Ich versuche gerade über den S0/1 (Udo's Raspberry Erweiterung) den
>> Betriebszustand eines Gasbrenners einzulesen und dann zu Visualisieren.
>> 
>> Ziel wäre es das bei Brenner aus 0 angezeigt wird und bei Brenner an den
>> wert 1 um sehen zu können wann der Brenner läuft und wann er aus ist.
>> 
>> Nach ein paar versuchen zusammen mit Udo habe ich es leider trotzdem nicht
>> hinbekommen.
>> 
>> Beim ein und ausschalten des Brenners wird jeweils nur ein kurzer Impuls
>> angezeigt. Der Wert 1 (Brenner An) sollte aber immer bei 1 bleiben.
>> 
>> Die Config zu S0/1 sieht so aus:
>> 
>> {
>> 
>> "enabled": true,
>> 
>> "allowskip": false,
>> 
>> "interval": 60,
>> 
>> "aggtime": -1,
>> 
>> "aggfixedinterval": false,
>> 
>> "channels": [
>> 
>> {
>> 
>> "uuid": "16340d60-84d3-11e6-b24c-75867e2891aa",
>> 
>> "identifier": "Impulse",
>> 
>> "api": "volkszaehler",
>> 
>> "middleware": "http://127.0.0.1/middleware.php",
>> 
>> "aggmode": "none",
>> 
>> "duplicates": 0
>> 
>> }
>> 
>> ],
>> 
>> "protocol": "s0",
>> 
>> "gpio": 18,
>> 
>> "configureGPIO": true,
>> 
>> "send_zero": true,
>> 
>> "debounce_delay": 200
>> 
>> },
>> 
>> 
>> Hat noch jemand eine Idee wie ich das hinbekommen könnte?
>> 
>> 
>> VG Michael
>> 
>> 
>> 
>> 
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20161229/a01eb884/attachment-0001.html>
> 
> ------------------------------
> 
> Message: 2
> Date: Thu, 29 Dec 2016 23:15:05 +0100
> From: Lars Täuber <lars.taeuber at web.de>
> To: "volkszaehler.org - users"
>    <volkszaehler-users at demo.volkszaehler.org>
> Subject: Re: [vz-users] Probleme mit Zeilenumbruch in einem
>    Import-Script
> Message-ID: <20161229231505.0a71904f4bd0af5cb13aca01 at web.de>
> Content-Type: text/plain; charset="utf-8"
> 
> Hallo Dennis,
> 
> ich bin beim Formulieren von Antworten etwas ungeschickt. Bitte fasse die Mail nicht als Belehrung auf.
> Ich schreibe mal, ein paar Grundbemerkungen auf und dann eine Lösung, wie ich es machen würde.
> 
> * Konvention in Shellskripten: Endung auf .sh; lassen sich so besser von AWK-Skripten (*.awk) usw. unterscheiden
> 
> * Konvention in Shellskripten: Variablennamen in Großbuchstaben: "${DATEIEN[$I]}"
> 
> * Wenn man Dateien in Shellskripten als Option übergibt, sollte man darauf achten, dass evtl Sonderzeichen (z.B. Leerzeichen) im Dateinamen stecken können. Das kann im einfachsten Fall zu unerwünschten Ergebnissen erführen, im schlimmsten Fall aber auch zu gefährlichen Sicherheitslücken. Also Dateinamen _immer_ in Anführungszeichen: "${dateien[$i]}".
>  Wenn man sich daran hält auch wenn es eigentlich nicht notwendig ist, da man die Dateinamen selbst wählt, vergisst man es aber auch in anderen Fällen nicht so einfach.
> 
> * überflüssige Programmaufrufe möglichst vermeiden:
> *** cat "$DATEI" | sed -n ...
> besser:
> *** sed -n ... "$DATEI"
> 
> * Die Ausgabe durch 'sed 's/.../.../p' bewirken, dass das Ergebnis an die Shell übergeben wird. Die Interpretiert das ";" nach dem "ts=" als Trenner zwischen Befehlen. Du willst aber folgendes der Shell übergeben:
> vzclient -u 5d485110-9908-11e6-8e35-ade5ad34c96a add data value=XXXXXX ts=$(date -d "2013-05-28 09:20:00" +" %s000")
> 
> Das $(befehl) bedeutet, dass die Shell den Befehl ausführen soll und die Ausgabe als String einfügen soll. Daraus entsteht also:
> vzclient -u 5d485110-9908-11e6-8e35-ade5ad34c96a add data value=XXXXXX ts=1369725600000
> 
> Und das wird dann interpretiert.
> 
> 
> * die verschiedenen Ausdrücke "[0-9]*.[0-9]*;" beim sed sind etwas zu umständlich. Kürzer geht es so: alle Zeichen nur kein ";":
> [^;]*;
> 
> * Die Klammern um den letzten Ausdruck "(.*)" sind nicht notwendig, weil Du den Inhalt nicht auswerten möchtest.
> 
> 
> * Der Umweg über das Shell-Array ist nicht notwendig, wenn die Dateien alle in einem Verzeichnis liegen. Auch möglich ist hier:
> for DATEI in *
> do
>    sed -n ... "$DATEI"
> done
> 
> 
> Ich bin mir nicht ganz sicher, was Du als Ergebnis erwartest, aber ich vermute in der ersten sed-Zeile soll der vierte Wert nach einem ";" als "value" genommen werden.
> 
> Man kann gut mit "cut" bestimmte Felder einer Datei extrahieren:
> cut -d';' -f 2,4
> oder kürzer, wenn man das ";" escaped:
> cut -d\; -f 2,4
> Das ";" wird sonst von der Shell interpretiert und nicht vom "cut"
> 
> Dann möchtest Du aber nur die Zeilen auswerten, die mit "600;" beginnen. Das kann man mit "sed" oder mit "grep" machen:
> sed anweisen, dass es Zeilen, die mit "600;" anfangen nicht wegschmeißen soll:
> sed -e '/^600\;/!d' -e 's/....'  "$DATEI"
> 
> oder:
> grep '^600;' | ...
> 
> Oder man nimmt die Datumsangabe als Kriterium.
> 
> Ein '\' am Ende einer Zeile zeigt der Shell, dass der Befehl auf der nächsten Zeile weiter geht.
> In der Shellvariable "IFS" steht, welche Zeichen als Trennzeichen interpretiert werden sollen.
> Normalerweise stehen das Leerzeichen, Tabulator und "Newline" drin. Aber man kann das auch selbst beeinflussen:
> IFS=';'
> trennt nun auch "2013-05-28 09:20:00;264802N203;1159" in 3 Teile:
> 2013-05-28 09:20:00
> 264802N203
> 1159
> 
> 
> Also ich stell mir das so vor:
> 
> #!/bin/bash
> #
> # importiere Werte aus Logdateien
> #
> 
> IFS=';'
> 
> for DATEI in id*
> do
>  grep ';201.-..-.. ' $DATEI \
>  | cut -d\; -f2,4,8,9,10 \
>  | while read DATUM P_AC WERT5 WERT6 WERT7
>    do
>      DATUM=$(date -d "$DATUM" +%s000)
>      vzclient -u 5d485110-9908-11e6-8e35-ade5ad34c96a add data value=$P_AC ts=$DATUM
>      vzclient -u 681155e0-9906-11e6-b5d9-51edf01eb751 add data value=$WERT5 ts=$DATUM
>      vzclient -u 6fc360c0-9906-11e6-bc21-7becbbfe157b add data value=$WERT6 ts=$DATUM
>      vzclient -u 7664b9b0-9906-11e6-a73b-09873e88f0c0 add data value=$WERT7 ts=$DATUM
>    done
> done
> 
> Den Rest der Stellen war ich zu faul auszuzählen.
> Jede Datei wird hier nur einmal mit grep, cut bearbeitet und jede Zeile nur einmal und dem read gelesen und auch nur ein "date" pro Zeile ausgeführt.
> In Deiner Version wurde jede Datei für jeden Wert mehrfach geöffnet, bearbeitet und jedes mal das Datum neu berechnet.
> 
> Ich hoffe, das hilft Dir weiter.
> 
> 
> Berthold Bredenkamp hat im Herbst 2011 ein Skript gebastelt:
> http://volkszaehler.org/pipermail/volkszaehler-dev/attachments/20111127/69cb6074/attachment.obj
> welches ich für meine Importe angepasst habe.
> Dort wird so eine Zeile wie die 6. Zeile in deiner Datei vom Skript auswertet.
> Ich gebe dann nur noch an, welche VZ-ID für welche Werte benutzt werden sollen, also 
> P_AC für 5d485110-9908-11e6-8e35-ade5ad34c96a
> 
> Diese Verknüpfung lege ich in Variablen ab:
> UUID["P_AC"]="5d485110-9908-11e6-8e35-ade5ad34c96a"
> 
> und das Skript findet dann selbständig heraus, an welcher Stelle der entsprechende Wert zu suchen ist.
> 
> 
> Aber solange sich die Position der Werte in den Dateien nicht ändert, funktioniert das obere Skript natürlich schneller und ist auch viel besser lesbar.
> 
> 
> Viel Erfolg und guten Rutsch.
> Lars
> 
> 
> 
> 
> 
> 
> 
> PS: Bash ist ein kleines Hobby von mir. :-)
> -------------- next part --------------
> A non-text attachment was scrubbed...
> Name: import.sh
> Type: text/x-sh
> Size: 555 bytes
> Desc: not available
> URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20161229/5ce22766/attachment-0001.sh>
> 
> ------------------------------
> 
> Message: 3
> Date: Thu, 29 Dec 2016 23:20:17 +0100
> From: Lars Täuber <lars.taeuber at web.de>
> To: volkszaehler-users at demo.volkszaehler.org
> Subject: Re: [vz-users] Probleme mit Zeilenumbruch in einem
>    Import-Script
> Message-ID: <20161229232017.1b991d2dc07050a187e4efc9 at web.de>
> Content-Type: text/plain; charset=US-ASCII
> 
> Nachtrag:
> 
> https://github.com/gitaeuber/data_logger
> 
> Gute Nacht
> Lars
> 
> 
> ------------------------------
> 
> Message: 4
> Date: Fri, 30 Dec 2016 06:39:43 +0100
> From: "dl4huf at t-online.de" <dl4huf at t-online.de>
> To: "volkszaehler.org - users"
>    <volkszaehler-users at demo.volkszaehler.org>
> Subject: Re: [vz-users] Volkszähler Betriebszustands
>    (Betriebsstunden) Erfassung.
> Message-ID: <4F55C954-B4CC-4388-8648-CA50A97C34F3 at t-online.de>
> Content-Type: text/plain; charset="utf-8"
> 
> Hallo
> 
> Geht das überhaupt von der Schaltung? Bei anderen S0-Eingängen hat Udo doch eine Impulsformung eingebaut.
> Damit kam man keinen Status (Pegel) sondern nur Impulse (Änderungen 0->1) erfassen. Selbst der 1>0 - Wechsel geht damit nicht.
> 
> Man könnte ev. auf der Erweiterung diese Impulsformung überbrücken. Aber ob das reicht weiß ich nicht. Man bräuchte ja noch sowas wie "send_one" wenn der 1-Zustand längere Zeit anliegt. Das Frontend kann nur bis zum letzten Eintrag in der DB zeichnen.
> 
> 
> Viele Grüßen und einen Guten Rutsch
> Ronald
> 
> 
> 
> Am 29. Dezember 2016 10:49:56 MEZ, schrieb Michael Knapp <michael at evo3.net>:
>> Hallo zusammen,
>> 
>> Ich versuche gerade über den S0/1 (Udo's Raspberry Erweiterung) den
>> Betriebszustand eines Gasbrenners einzulesen und dann zu Visualisieren.
>> 
>> Ziel wäre es das bei Brenner aus 0 angezeigt wird und bei Brenner an
>> den wert 1 um sehen zu können wann der Brenner läuft und wann er aus
>> ist.
>> 
>> Nach ein paar versuchen zusammen mit Udo habe ich es leider trotzdem
>> nicht hinbekommen.
>> 
>> Beim ein und ausschalten des Brenners wird jeweils nur ein kurzer
>> Impuls angezeigt. Der Wert 1 (Brenner An) sollte aber immer bei 1
>> bleiben.
>> 
>> Die Config zu S0/1 sieht so aus:
>> 
>> {
>> "enabled": true,
>> "allowskip": false,
>> "interval": 60,
>> "aggtime": -1,
>> "aggfixedinterval": false,
>> "channels": [
>> {
>> "uuid": "16340d60-84d3-11e6-b24c-75867e2891aa",
>> "identifier": "Impulse",
>> "api": "volkszaehler",
>> "middleware": "http://127.0.0.1/middleware.php",
>> "aggmode": "none",
>> "duplicates": 0
>> }
>> ],
>> "protocol": "s0",
>> "gpio": 18,
>> "configureGPIO": true,
>> "send_zero": true,
>> "debounce_delay": 200
>> },
>> 
>> Hat noch jemand eine Idee wie ich das hinbekommen könnte?
>> 
>> VG Michael
> 
> -- 
> Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20161230/9b6579a8/attachment.html>
> 
> ------------------------------
> 
> Subject: Digest Footer
> 
> _______________________________________________
> volkszaehler-users mailing list
> volkszaehler-users at demo.volkszaehler.org
> https://demo.volkszaehler.org/mailman/listinfo/volkszaehler-users
> 
> 
> ------------------------------
> 
> End of volkszaehler-users Digest, Vol 65, Issue 108
> ***************************************************



More information about the volkszaehler-users mailing list