<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 11.00.9600.18161">
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV>
<DIV><FONT size=2 face=Arial>Hallo,</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>Stand: master vom 22.01.2016</FONT></DIV>
<DIV><FONT size=2 face=Arial>zu git: danke für die Info´s. Ich schau mir das mal
an.</FONT></DIV>
<DIV><FONT size=2 face=Arial>zu PS: oh sorry. Ich habe die EMail zwar 'geputzt',
aber an 'geerbte' Meta-Daten habe ich nicht gedacht. Ich wußte bis dato gar
nicht, daß sowas bei einer Mail-Liste benutzt wird und eine Weile konnte ich mit
der Formulierung nach 'PS.' nichts anfangen weil es keinen Sinn ergab. Beim
nächsten Mal mache ich es besser.</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV>
<DIV><FONT size=2 face=Arial>tschau</FONT></DIV>
<DIV><FONT size=2 face=Arial>hermann</FONT></DIV>
<DIV><FONT size=2 face=Arial></FONT> </DIV></DIV>
<BLOCKQUOTE
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; PADDING-RIGHT: 0px; MARGIN-RIGHT: 0px"
dir=ltr>
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=cpuidle@gmail.com href="mailto:cpuidle@gmail.com">Andreas Goetz</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=volkszaehler-dev@demo.volkszaehler.org
href="mailto:volkszaehler-dev@demo.volkszaehler.org">volkszaehler.org</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Wednesday, January 27, 2016 9:12
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [vz-dev]Änderungen an
vzlogger zur Begutachtung</DIV>
<DIV><BR></DIV>
<DIV dir=ltr>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>Hallo Herrmann,<BR><BR></DIV>erstmal Klasse dass Du Dich mit vz
auseinander setzt und sogar Verbesserungen mitbringst! In der Form können wir
sie leider nicht verarbeiten- wir wissen nicht auf welchem Stand Du Deine
Änderungen gemacht hast und vmtl. hat auch niemand die Zeit die Dateien
manuell zu mergen.<BR></DIV>Unser Werkzeug für die Softwareentwicklung ist
github- unter <A
href="https://github.com/volkszaehler/vzlogger">https://github.com/volkszaehler/vzlogger</A>
kannst Du sog. "Pull Requests" erstellen- bitte einen je
Änderung.<BR><BR></DIV>Viele Grüße,<BR></DIV>Andreas<BR><BR></DIV>PS.: und
ganz wichtig: bitte niemals auf alte Mailinglistenthemen mit "Reply" antworten
sondern _immer_ ein neues Thema anfangen. Sonst wirds einfach zu
unübersichtlich....<BR><BR></DIV>
<DIV class=gmail_extra><BR>
<DIV class=gmail_quote>2016-01-27 2:46 GMT+01:00 mail_web_hed007 <SPAN
dir=ltr><<A href="mailto:hed007@web.de"
target=_blank>hed007@web.de</A>></SPAN>:<BR>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Hallo,<BR><BR>ich
bin erst vor Kurzem auf 'volkszaehler' gestoßen und finde hier vieles, was
ich schon immer haben wollte.<BR>Allerdings bin ich auch auf ein paar
Ungereimtheiten gestoßen und habe daraufhin ein bißchen rumgebastelt.<BR>Ich
hatte schon seit Ewigkeiten nichts mehr mit C/C++ zu tun und mit der STL
stehe ich immer noch auf Kriegsfuß.<BR>Ich kenne mich mit den
Gepflogenheiten hier nicht aus und weiß nicht, wie hier mit Änderungen und
Erweiterungen verfahren wird. Mit 'Open-Source' hatte ich bisher nur als
'User' zu tun.<BR>Ich schicke meine Änderungen hier einfach mal mit, hoffe
das sich das jemand mal ansieht und ein paar sinnvolle Sachen findet, die
evtl. übernommen werden können.<BR><BR><BR>Im
Einzelnen:<BR><BR>'scaler':<BR>Der 'scaler' hängt am Channel-Objekt und
sollte damit auch von diesem ausgewertet werden. Wie es eigentlich sein
sollte steht in Channel.cpp am Schluß als Kommentar.<BR>Wie dem auch sei,
aktuell wird der 'scaler' an den verschiedensten Stellen verwendet und
ausgewertet (MySmartGrid, MeterOCR, ...) , so daß eine zentrale Behandlung
nicht mehr möglich ist.<BR>Deshalb wird der 'scaler' bei meinen Änderungen
bei der api MySmartGrid am Channel-Objekt deaktiviert und auch sonst nur bei
den Metern 'Exec', 'D0' und 'W1therm' aktiviert (threads.cpp).<BR>Da
'scaler' ein int ist, ich aber einen Teiler brauchte, wird für positive
Werte der value mit dem scaler mulipliziert, bei negativen mit dem
Absolutwert des scalers dividiert und bei '0' werden die Input-Values
ignoriert.<BR><BR>Files: Channel.hpp, Channel.cpp, tests_mocks_Channel.hpp
als tests/mocks/Channel.hpp, threads.cpp<BR><BR><BR>MeterW1therm:<BR>hier
sollte der Wert '85000', bzw '85.0' ignoriert werden , da das der
Initial-Wert ist, wenn die Konversion noch nicht stattgefunden hat oder
fehlerhaft war. Leider wird in diesem Fall vom Baustein auch der Status-Ok
als 'YES' ausgeliefert, so daß nur der Wert an sich als Indiz bleibt, der zu
ignorieren ist.<BR>Allerdings tritt das fast nur an der
Standard-Schnittstelle de RasPi nach einem Kaltstart auf.<BR>Aber es stört
schon sehr, versaut das Diagramm massiv und wird im wirklichen Leben von den
Bausteinen auch nur im Fehlerfall/Problemfall ausgeliefert.<BR><BR>Files:
MeterW1therm.cpp<BR><BR><BR>'MeterExec':<BR>Ich wollte unbedingt die
CPU-Temperatur meines RasPi mit protokollieren - der hängt im Keller und
läuft normalerweíse im Runlevel=3 (Netzwerk). Interessiert hat mich vor
allem der Unterschied zu Runlevel=5 (Multiuser/graphische
Oberfläche/X-Server).<BR>Das MeterFile erwies sich für diesen Zweck
allerdings als Flop und ist - ehrlich betrachtet - zu Nichts zu
gebrauchen.<BR>Den Exec-Meter aus dem Config-Editor gabs dann im echten
Leben gar nicht und in den Sourcen war tatsächlich nur ein inaktiver Rahmen
zu finden.<BR>Ich hab deshalb mal einen MeterExec auf Basis des MeterFile
implementiert.<BR>Durch die Modifikationen mit dem scaler (s.o.) war auch
die Anpassung auf einen 'lesbaren' Wert relativ einfach.<BR>Hier ein
Beispiel-Konfigurations-Fragment nach dieser Änderung:<BR>{<BR>
"enabled": true,<BR> "allowskip": true,<BR>
"interval": 10,<BR> "aggtime": -1,<BR>
"aggfixedinterval": false,<BR> "channels":
[<BR> {<BR> "uuid":
"e6b19980-c3a5-11e5-b52d-535f1e98f80e",<BR>
"identifier": "",<BR> //"api":
"volkszaehler",<BR> "middleware": "<A
href="http://localhost/middleware.php" rel=noreferrer
target=_blank>http://localhost/middleware.php</A>",<BR>
"scaler": -1000,<BR>
},<BR> {<BR> "uuid":
"691dc7f0-c414-11e5-802e-4f04aa6c0c22",<BR>
"identifier": "test",<BR>
"middleware": "<A href="http://localhost/middleware.php"
rel=noreferrer target=_blank>http://localhost/middleware.php</A>",<BR>
"scaler": -100,<BR>
},<BR> ],<BR> "protocol":
"exec",<BR> "command": "cat
/sys/devices/virtual/thermal/thermal_zone0/temp",<BR>
//"command": "cat /sys/devices/virtual/thermal/thermal_zone0/temp;
echo \"123 test\";",<BR> "format": "$v $i", // $t=timestamp
$v=value $i=identifier<BR> },<BR><BR>Der auskommentirte
'command' mit dem 'echo' macht zwar keinen Sinn, zeigt aber schön, wie Werte
aus einem Aufruf auf mehrere Channel verteilt werden können.<BR>Werte ohne
identifier-Angabe landen beim Channel mit '"identifier": ""'.<BR><BR>Files:
Meter.cpp, MeterExec.hpp, MeterExec.cpp, MeterMap.cpp<BR><BR><BR>Was mir
noch aufgefallen ist:<BR>Ich habe die Entwicklung tatsächlich direkt auf
einem RasPi durchgeführt (allerdings auf einem B+...).<BR>Und das auch noch
ohne einen aktuellen, komfortablen Debugger, sondern mit 'EXHIBIT NAMES'.
Aber das sagt wahrscheinlich nur einem altgedienten Cobol-Programmierer was
und bedeutet: Debugging per 'print-Statements'.<BR>Die Übersetzungszeiten
haben mich allerdings immer an meine Anfangszeiten als Programmierer
erinnert. Das war - ehrlich gesagt - vor einer Ewigkeit, aber auch eine neue
oder vergessene Erfahrung.<BR>Da ich genügend Zeit hatte, den Fortschritt zu
verfolgen, ist mir auch aufgefallen, daß die meiste Zeit der Übersetzung den
Tests gewidmet ist.<BR>Das sollte sich jemand, der sich auskennt vielleicht
mal ansehen.<BR>Das eigentliche Projekt scheint relativ schnell durch zu
sein, aber der ganze Test- und Mock-Scheiß der dauert und dauert und
dauert...<BR>Ich hätte die Übersetzung auch auf meinem Linux-Server machen
können, aber ich bin ja - hoffentlich - kein
Feigling.<BR><BR><BR>tschau<BR>hermann<BR><BR></BLOCKQUOTE></DIV><BR></DIV></BLOCKQUOTE></BODY></HTML>