FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: the ratman am 19 April 2016, 08:25:23

Titel: hilfegesuch für ein perl-problem
Beitrag von: the ratman am 19 April 2016, 08:25:23
da ich leider kein perl kann (dies ist kein überheblichkeits- sondern ein zeit- und verständniss-problem) suche ich auf diesem wege nach einer kleinen hilfe. keine angst! ich werde dann nicht mehr nerven!
es geht um das folgende produkt "EQ3 83346 HomeMatic Kombisensor HM-WDS-OC3". dies ist eine wetterstation, die auch brav ihre werte liefert.

das grundproblem: die station liefert durchlaufende werte für sonnenschein- und regendauer.
die lösung für die regenmenge wäre eigentlich da: http://www.fhemwiki.de/wiki/HM-WDS100-C6-O_Funk-Kombi-Sensor_OC3#Anwendungsbeispiele

nun arbeite ich aber mit mysql dblog (name:logdb) und habe keinen schimmer, wie ich die scripte umschreiben muß, damit auch mal mehr als 0 da steht.
meine änderungen am oben verlinkten script bis jetzt:Wetterstation:rain.* {
  my $menge = (ReadingsVal("Wetterstation", "rain", 0) - ReadingsVal("RegenmengeOffset", "wert", 0));
  my $last1hours = myDiff("3600", "logdb", "10:::");
  my $last3hours = myDiff("10800", "logdb", "10:::");
  my $last24hours = myDiff("86400", "logdb", "10:::");
  fhem("setreading RegenmengeTag wert $menge");
  fhem("setreading RegenmengeLast1Hours wert $last1hours");
  fhem("setreading RegenmengeLast3Hours wert $last3hours");
  fhem("setreading RegenmengeLast24Hours wert $last24hours");
}
was zwar zu keiner fehlermeldung führt, aber machen tuts auch nix. was natürlich ganz fehlt, wäre die sonnenscheindauer, die die station von 0 bis 999 min. angibt, und dann einfach wieder von vorne anfangt (so wirds zumindest im forum berichtet). wenn da wer ne idee hätte ... ich wäre dankbar.
btw: das (user)reading "wert" verwend ich gerne bei tests, da ich das zum speichern ins dblog freigegeben hab und somit nicht immer den normalen state ins db schreiben muß.

und nochmals: da ich kein perl kann, haben verweise auf irgendwelche perl-kurse oder intelligente meldungen, dass ich es lernen soll, eher weniger sinn. was ich wirklich brauche ist jemand, der sich die zeit nimmt, mir da wirklich zu helfen und etwa obiges script für mich anpasst oder sogar was besseres bastelt. da ich sicher nicht der einzige mit dieser station bin, sind eventeull ja auch noch andere dafür dankber - ich wärs auf jeedn fall!
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: dev0 am 19 April 2016, 10:18:43
Wenn Du Beispiele aus dem Wiki kopierst und keine Ahnung von Perl hast, warum änderst Du dann die "set" Befehle in "setreading" um? setreading triggert laut Command ref keine Events, wenn es aus einem Notify heraus aufgerufen wird. Diese Events werden aber zum Loggen benötigt.

Zitat
nun arbeite ich aber mit mysql dblog (name:logdb) und habe keinen schimmer, wie ich die scripte umschreiben muß
Da muss nichts umgeschrieben werden. Wenn Events generiert werden, dann muss nur noch dblog/filelog so konfiguriert werden, dass diese Events auch in die db/Datei geschrieben werden.

Zitatdamit auch mal mehr als 0 da steht.
Mit dieser Fehlerbeschreibung wird Dir niemand helfen können.

Zitatscript für mich anpasst oder sogar was besseres bastelt
Das ist schon ziemlich dreist, aber man kann es ja mal versuchen...
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 19 April 2016, 10:35:56
Zitat von: dev0 am 19 April 2016, 10:18:43
Das ist schon ziemlich dreist, aber man kann es ja mal versuchen...

Nun  ich würde sagen Fragen kostet nichts, ich finde es ok. Interessant sind die Folgereaktionen die kommen wenn sich nach Tagen keiner findet. Davon hatten wir ja schon ein paar häßliche. Ich bilde mir ein den Threadersteller soweit zu kennen um behaupten zu können das er nicht unter die erwähnten Kandidaten fällt welche dann rumschreien wie beschißen das Forum ist weil ihm keiner sein Perlprogramm schreibt.
Von daher wünsche ich viel Erfolg und Glück. Eigentlich gibt es immer einen der gerade mit Perl an fängt und Fingerübungen an nimmt.


Grüße
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: dev0 am 19 April 2016, 11:11:45
Zitatnicht unter die erwähnten Kandidaten
Das denke ich auch nicht.

Davon abgesehen wird der Wiki Artikel auch regelmäßig überarbeitet, so falsch kann er schon mal nicht sein ;) Aber um das Problem einkreisen zu können benötigt man detailliertere Informationen (siehe angepinnte Beiträge).
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 19 April 2016, 11:19:38
erst mal thx dafür, dass überhaupt reaktionen kommen.

@cooltux - was sollt ich hässlich reagieren? entweder hilft man mir oder eben nicht. die leute können ja nix dafür, dass ich kein perl kann - so gesehen bin ich tatsächlich dankbar für jede hilfeund werd - solang ich nix für zahl - mich auch ned aufregen, wenn 0 rüber kommt.
ich kanns nur absolut ned ab, wenn einer mit seinem erhobenen zeigefinger schulmeisterlich vor mir steht und mir erzählen will, was ich doch nicht für ein kleines deppelchen bin weil ich dies oder jenes ned kann oder weiß. ich trau mich wetten, ich kann dafür anderes besser (leider nichts, was bei fhem weiter helfen würde *g*).
wenn du einen für die fingerübung kennst ... ich würde den beknien *g*. wenn du weißt, ob und wie man das ganze eventeull sogar ohne perl lösen könnte, wäre ich allerdings noch dankbarer. fhem selber fang ich ja wenigstens langsam an zu kapieren, wenns auch immer noch mehr rumprobieren als gezieltes arbeiten is ...

@dev0
Zitatwarum änderst Du dann die "set" Befehle in "setreading" um?
naja, war eher ne probiererei weil bei set nix passiert ist und zumindest, der windgeschw. umrechner mit setreading zu funktionieren scheint.

für
Zitat[device:reading] mit dem Wert des Readings für device, falls sowohl device, als auch Reading existiert, und nicht leer ist.
wenn ich mir die ref so durchlese wäre dann z.b.: set RegenmengeLast24Hours:wert $last24hours richtig?

Da muss nichts umgeschrieben werden.dass ist schon mal gut. nun, alle readings mit "wert" dürfen ins log geschrieben werden, somit sollts dann gehen, sobald ich meinen set richtig hab?
und zum verständniss: was bedeutet "10:::" haste da ne info oder nen link für mich?
Zitatregelmäßig überarbeitet, so falsch kann er schon mal nicht sein
hätte ich auch nie behauptet - alleine, weil ichs nicht feststellen könnte *g*.
bei mir gehts eher darum, dass ich mit programmierlogik so überhaupt nichts anfangen kann und deshalb nie sicher bin, was ich in solchen fällen wie zu ändern hab.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 19 April 2016, 11:46:00
Mal doof gefragt. Die Sub myDiff hast Du aber auch angelegt, oder?
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: dev0 am 19 April 2016, 11:46:42
Zitatset RegenmengeLast24Hours:wert $last24hours
richtig?

Warum möchtest Du etwas an dem Code aus dem Wiki Artikel verändern, wenn Du nicht wirklich weißt was Du tust. Versuche doch einfach den Artikel so umzusetzen, wie es dort angegeben ist. Klar, dass ggf Devicenamen angepasst werden müssen. Wenn dann etwas nicht funktioniert, dann versuche logisch vorzugehen und poste die notwendigen informationen. Schritt für Schritt.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 19 April 2016, 14:35:30
@cooltux
jau - liegt brav in den myutils rum - 1:1 kopiert - das kann sogar ich *g*

@dev0
weil ich ja nicht die daten aus dem attr "state" sondern aus den userattr "wert" verwenden will.
grund: ich hab in der db einmal generell keine "state" drinnen.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: dev0 am 19 April 2016, 14:55:30
Es gibt in Fhem weder die Syntax "attr state" noch "userattr xyz". Lies Dich in Grundlangen ein oder (vielleicht besser) suche Dir eine Software, die einfacher einzurichten ist.
Ich hätte Dir gerne geholfen, dass Du das Beispiel aus dem Wiki zum Laufen bekommst (ohne es zu kennen). Wenn Du es anders machen möchtest: ok, aber ohne mich.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: ernst1024 am 19 April 2016, 15:12:24
Hi, bemerkenswert finde ich ja deine Einleitung zur Frage. Ich habe mich zu dem Thema schon hinlänglich geäußert.

Zu Lösung deines Problems  kann ich leider auch nicht viel beitragen, kann leider auch kein Perl. Ich denke aber man kann das Bsp aus Wicki nicht 1:1 übertragen, da er hier von einem Textlog ausgeht, du aber ja dbLog nutzt. Ohne das entsprechende Text-Logfile kann man schwer nachvollziehen was er da macht. Klar ist er übergibt einen Zeitraum, den Namen des Logfiles und eine dritte Variable die er $cspec nennt. Das ist möglicherweise in welcher Spalte sich der zu bearbeitende Wert befindet.
Kannst du vielleicht paralell mal einen textlog anlegen, dann könnte man das nachvollziehen?

Nachtrag: $menge müsste aber doch funktionieren?
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 19 April 2016, 15:33:59
@ernst1024
juhuuch denke aber man kann das Bsp aus Wicki nicht 1:1 übertragen, da er hier von einem Textlog ausgeht, du aber ja dbLog nutztdu hast mein problem in 0,nix erkannt und das ohne programmierkenntnisse *lach* da könnten sich einige n stück abschneiden.
nö im ernst, die idee mit dem textlog is gar ned blöd. werd ich machen. dann weiß ich wenigstens, ob das ganze überhaupt rennt.

@dev0Es gibt in Fhem weder die Syntaxjessas, dass weiß sogar ich. tschuldige, dass ich so faul war und anstelle attribut attr geschrieben hab. das sollt kein syntax sein, sondern nur verdeutlichen, dass ich nicht "state" verwende. im übrigen will ich nicht irgendwas anders machen, sondern schlicht und ergreifend nur wissen, wie ichs generel zum laufen bringe.

was soll ich noch sagen zu? in der zeit, in der du mich jetzt zurecht gewiesen hast und deine überlegenheit mir gegenüber überdeutlich zur schau getragen hast, hätte man mein problem mit deinem wissen wahrscheinlich schon 10 mal mit nem goldenen rand drum rum lösen können.
auch gut: hast du unnötig deine zeit verschwendet und mir wurde nicht geholfen - so tragen wir beide das selbe schicksal des "sinnlos vorm bildschirm sitzens". ich fang aber durchaus an, die von dir anfangs erwähnten leute zu verstehen.
da ich keine lust auf streitereien hab - bitte ignoriere mich einfach in zukunft. du würdest dich ja eh nur über die unmöglich dämliche art von mir ärgern ...
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: ernst1024 am 19 April 2016, 15:59:07
Zitat von: the ratman am 19 April 2016, 15:33:59

nö im ernst, die idee mit dem textlog is gar ned blöd. werd ich machen. dann weiß ich wenigstens, ob das ganze überhaupt rennt.


nochmal gefragt, wird denn $menge richtig angezeigt?  Das mit logdb betrifft ja nur die Sachen die myDiff() durchlaufen also last1hours und wie sie heissen
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 19 April 2016, 16:55:49
also in der wetterstation selber ja "Regenmenge Sammlung   36.875" - da baut er die $menge draus, scheint mir

in der RegenmengeOffset ists schon fraglich: "wert 36.58 2016-04-19 00:00:00" somit ist eigentlich der wert vom ersten tag immer noch
das sollte dann ja eher irgendwas um 0.029 rum sein vom gestrigen tag
allerdings hab ich jetzt so viel in dem zeug rumngerührt, dass ich nicht mehr sagen kann, wann der was geschrieben hat.

hab mal spaßeshalber den at-befehl angworfen*00:00:00 { my $offset = ReadingsVal("Wetterstation", "rain", 0); fhem("set RegenmengeOffset $offset"); }es tut sich mal eindeutig nichts im filelog und auch das fehlerlog schweigt dazu.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: ernst1024 am 19 April 2016, 17:37:13
Hab mal versucht mich da einzulesen. Bin mir ziemlich sicher dass er da die Spaltennummer übergibt in der der zu suchende Wert im logfile steht:

er verwendet in myDiff:  get $logfile - - $period_s $period_e $cspec

wenn man sich dann mal die Syntax von get anschaut dann passt das, wobei die beiden -- Platzhalter für optionale <infile> <outfile> stehen

also da musst du ansetzen und  das entsprechende reading aus logDB übergeben.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 19 April 2016, 17:58:01
dank dir

mal schaun, ob ich das dann auf die reihe krieg, sobald der kasten mal testweise wenigstens ins filelog schreibt.
ich denk mal, dass ich das bei 0 anfangen werd müssen. nach meinem rumgerühre fehlt mir noch mehr der plan als vorher *g* wenn das überhaupt noch möglich ist.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: ernst1024 am 19 April 2016, 18:05:38
Zitat von: the ratman am 19 April 2016, 17:58:01
nach meinem rumgerühre fehlt mir noch mehr der plan als vorher *g* wenn das überhaupt noch möglich ist.

kenn ich :-). Fhem ist schon ziemlich komplex, aber dafür halt auch enorm flexiel.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 19 April 2016, 18:41:28
stimm ich dir 100% zu. zumindest kann man sagen: wer fhem verwendet, der brauchts auch unbedingt, oder ist n ausgemachter masochist *lach* bin mir nur noch nicht sicher, was auf mich zutrifft ...
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 20 April 2016, 07:48:50
wollte nur mal nen zwischenbericht geben - ich habs so weit, dass ich werte kriege (glaub ich zumindest)
--> "Regenmenge pro Tag 0.295000000000002"
der rest is halt noch leer weils nicht regenen mag und ich nicht so einfach an die station komme. bis zum füllen des log muß ich also wohl bis zum nächsten regen warten ...
und ich versprech auch def0 nicht mehr readings mit attr zu verwechseln im eifer des gefechts - itüperl-reiter ...
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 23 April 2016, 19:27:39
so, neuigkeiten - oder auch nicht *g*

ich komm leider nicht mal dazu, mysql zu probieren, weil mir das ganze konstrukt nicht mal ins textfile schreiben will ...
da ich immer noch kein perl kann, steh ich also total an.

ich geh davon aus, dass das myDiff irgendwo nicht 100% richtig rennt.
die "RegenmengeTag" wir sowieso richtig weiter gegeben, und die 3 dummys für 1,3 und 24 stunden kriegen permanent "0" in den state geschrieben - alles ohne fehler im logfile.
verbose52016.04.23 19:23:22 5: Triggering RegenmengeNotify
2016.04.23 19:23:22 4: RegenmengeNotify exec {
  my $menge = (ReadingsVal("Wetterstation", "rain", 0) - ReadingsVal("RegenmengeOffset", "state", 0));;
  my $last1hours = myDiff("3600", "Wetterlog", "10:::");;
  my $last3hours = myDiff("10800", "Wetterlog", "10:::");;
  my $last24hours = myDiff("86400", "Wetterlog", "10:::");;
  fhem("set RegenmengeTag $menge");;
  fhem("set RegenmengeLast1Hours $last1hours");;
  fhem("set RegenmengeLast3Hours $last3hours");;
  fhem("set RegenmengeLast24Hours $last24hours");;
}
2016.04.23 19:28:23 4: Wetterlog get: Input file ./log/Wetterstation.log, from:2016-04-23_18:28:23  to:2016-04-23_19:28:23
2016.04.23 19:28:23 4: Wetterlog get: line 1, regexp:, col:9, output lines:0
2016.04.23 19:28:23 4: Wetterlog get: Input file ./log/Wetterstation.log, from:2016-04-23_16:28:23  to:2016-04-23_19:28:23
2016.04.23 19:28:23 4: Wetterlog get: line 1, regexp:, col:9, output lines:0
2016.04.23 19:28:23 4: Wetterlog get: Input file ./log/Wetterstation.log, from:2016-04-22_19:28:23  to:2016-04-23_19:28:23
2016.04.23 19:28:23 4: Wetterlog get: line 1, regexp:, col:9, output lines:0
2016.04.23 19:28:23 4: dummy set RegenmengeTag 1.18
2016.04.23 19:28:23 4: dummy set RegenmengeLast3Hours 0


hier nochmal die vermuteten übeltäter (spart dir das zusammensuchen *g*):
RegenmengeNotify Wetterstation:rain.* {
  my $menge = (ReadingsVal("Wetterstation", "rain", 0) - ReadingsVal("RegenmengeOffset", "state", 0));
  my $last1hours = myDiff("3600", "Wetterlog", "10:::");
  my $last3hours = myDiff("10800", "Wetterlog", "10:::");
  my $last24hours = myDiff("86400", "Wetterlog", "10:::");
  fhem("set RegenmengeTag $menge");
  fhem("set RegenmengeLast1Hours $last1hours");
  fhem("set RegenmengeLast3Hours $last3hours");
  fhem("set RegenmengeLast24Hours $last24hours");
}
und das myDiff# myDiff
# berechnet die Differenz aus der ersten Zeile eines LogFiles und der letzten Zeile eines LogFiles über einen Zeitraum zwischen einem Zeitpunkt in der Vergangenheit und dem Zeitpunkt des Aufrufs
sub
myDiff($$$)
{
my ($offset,$logfile,$cspec) = @_;
my $period_s = strftime "%Y-%m-%d\x5f%H:%M:%S", localtime(time-$offset);
my $period_e = strftime "%Y-%m-%d\x5f%H:%M:%S", localtime;
my $oll = $attr{global}{verbose};
$attr{global}{verbose} = 0;
my @logdata = split("\n", fhem("get $logfile - - $period_s $period_e $cspec"));
$attr{global}{verbose} = $oll;
my ($cnt, $first, $last, $diff) = (0)x4;
foreach (@logdata){
  my @line = split(" ", $_);
  if(defined $line[1] && "$line[1]" ne ""){
   $cnt += 1;
    if ($cnt == 1) {
     $first = $line[1];
    }
   $last = $line[1];
  }
}
$diff = $last - $first;
Log 4, ("myDiff: File: $logfile, Field: $cspec, Period: $period_s bis $period_e, First: $first, Last: $last, Diff: $diff");
return $diff;
}
alles von http://www.fhemwiki.de/wiki/HM-WDS100-C6-O_Funk-Kombi-Sensor_OC3#Anwendungsbeispiele zusammengetragen und 1:1 umgesetzt (hoffe ich).

vielleicht fallt ja wem was dazu ein, ich steh mit meinem 1%-wissen mal an.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 23 April 2016, 19:55:40
Hänge mal ein Beispiellogfile hier ran. Macht das testen in einer Testumgebung einfacher
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 23 April 2016, 20:44:39
mehr als da oben kommt nicht im log - das war schon n verbose 5 von allen beteiligten dummys, notyfies, ... . ich hab nur nicht mehr auf die andern 2 dummys gewartet. oder was meinst genau?
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: ernst1024 am 23 April 2016, 22:27:07
ich würde zuerst mal  das alles auf zwei notifys  verteilen. Als erstes würde ich dies hier testen (habe jetzt nicht auf Klammern usw geachtet, nur als Idee)

Wetterstation:rain.* {
  my $menge = (ReadingsVal("Wetterstation", "rain", 0) - ReadingsVal("RegenmengeOffset", "state", 0));
  fhem("set RegenmengeTag $menge");
}


und als zweites den Teil der die Funktion myDiff durchläuft.


Wetterstation:rain.* {
   my $last1hours = myDiff("3600", "Wetterlog", "10:::");
  my $last3hours = myDiff("10800", "Wetterlog", "10:::");
  my $last24hours = myDiff("86400", "Wetterlog", "10:::");
   fhem("set RegenmengeLast1Hours $last1hours");
  fhem("set RegenmengeLast3Hours $last3hours");
  fhem("set RegenmengeLast24Hours $last24hours");
}


Dannach bist du schonmal ein kleines Stück schlauer und kannst das Problem weiter eingrenzen.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 23 April 2016, 23:16:06
hihi, gute idee, aber kann man warscheinlich sparen, weil
fhem("set RegenmengeTag $menge");
richtig erledigt wird. bitte um ausbesserung, wenn du den split aus anderen gründen wolltest.

aktuelles verhalten:
a) die 2 dummys "RegenmengeOffset" und "RegenmengeTag" werden gefüllt.wetterstation rain =  41.3
regenmenge offset = 40.12
regenmengeTag = 1.18
b) es fehlen die 3 berechneten dummy-werte. wobei die auch nicht wirklich zu fehlen scheinen - es wird scheints nur immer "0" geschrieben, so als ob myDiff nichts rechnen würde. z.B. "state   0   2016-04-23 22:58:21" (ich geh anhand des immer wieder aktuellen datums davon aus.)

ich frag mich - vielleicht naiv und dumm - folgendes:
wenn ich aus einem logfile werte rauslesen will um mit denen zu rechnen und im logfile keine werte stehen, womit rechnet das gute ding dann eigentlich seinen durchschnitt aus?
und was würde in dem fall überhaupt in das log geschrieben werden?

nun frag ich mich weiter:
was würde passieren, wenn ich mal 2 gefakte log-zeilen in das file händisch rein schreib?
das dumme: wie müssten die 2 zeilen formatiert sein, damit myDiff damit was anfangen kann?


nachtrag:
wollt nur mal meine "0"-schreibannahme testen und hab den 3 berechneten dummys einfach per set werte zugewiesen - beim nächsten update waren sie wieder auf 0 - die werden also gefüllt - nur faslch
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 24 April 2016, 07:40:01
Zitat von: the ratman am 23 April 2016, 20:44:39
mehr als da oben kommt nicht im log - das war schon n verbose 5 von allen beteiligten dummys, notyfies, ... . ich hab nur nicht mehr auf die andern 2 dummys gewartet. oder was meinst genau?
Ich meinte das Logfile was eingelesen werden soll, das mit den Daten der Wetterstation Du Nase   ;D


Grüße
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 24 April 2016, 08:17:29
das is leicht *g*




is nämlich immer noch leer. war aber mal voller, weil ich testweise andere daten reingeschrieben hab um zu sehen, ob eh alle rechte passen usw.
wenn ich jetzt fies wär, würd ich ja ähnliches schreiben wie: "hast du meine beirträge nicht gelesen?" *sfg*. weil das hat ich ein paar mal schon gesagt *duck und weg*
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 24 April 2016, 08:21:18
Ich verstehe das nicht. Wie soll er dann die Differenz berechnen wenn das Logfile aus das er die Daten holen soll leer ist? Dann kann das ganze doch gar nicht gehen.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 24 April 2016, 21:32:00
das frag ich mich ja eben auch ... aber gucks dir an, das steht im fhem wiki als abschreibübung drinnen. da stellt doch sicher keiner schrott rein, der nicht funzt, oder?

ausserdem frag ich ja auch, ob mir wer sagen kann, wie wohl so ne zeile im log aussehen müsste. dann mal schnell selber was reinschreiben und hoffen ... aja, und dann endlich das eigentliche problem angehen: das ganze auf mysql umbauen.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: ernst1024 am 24 April 2016, 22:02:30
okay, das Problem ist also nicht das Regenmengen Notify sondern: es loggt nicht, korräääkt?

Ich nehme mal an Wetterstation ist das device und rain ist ein reading? Vielleicht solltest du einmal ein "list Wetterstation" oben in die Kommandozeile eingeben und die Ausgabe hier posten. Dazu vielleicht noch die Definition des Logfiles und damit könnte man dann der Sache auf den Grund gehen.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 25 April 2016, 08:55:38
gern

der list (der korrÄÄÄÄckt arbeitenden station *g*)Internals:
   DEF        3747B2
   HMlan_MSGCNT 1
   HMlan_RAWMSG E3747B2,0000,2CDF5D70,FF,FFCB,6E86703747B2000000002D450090C0430A1910
   HMlan_RSSI -53
   HMlan_TIME 2016-04-25 08:51:57
   IODev      HMlan
   LASTInputDev HMlan
   MSGCNT     1
   NAME       Wetterstation
   NR         544
   NTFY_ORDER 50-Wetterstation
   STATE      <table> <tr align="left"><td>Temperatur</td><td>4.5 °C</td></tr> <tr align="left"><td>Taupunkt</td><td>-0.5 °C</td></tr> <tr align="left"><td>Luftfeuchte</td><td>69 %</td></tr> <tr align="left"><td></td><td></td></tr> <tr align="left"><td>Helligkeit</td><td>16</td></tr> <tr align="left"><td></td><td></td></tr> <tr align="left"><td>Windgeschwindigkeit</td><td>6.7 km/h</td></tr> <tr align="left"><td>Windrichtung</td><td>50 °</td></tr> <tr align="left"><td>Windrichtung schwankung</td><td>67.5 °</td></tr> <tr align="left"><td></td><td></td></tr> <tr align="left"><td>Regen</td><td>0</td></tr></table>
   TYPE       CUL_HM
   lastMsg    No:6E - t:70 s:3747B2 d:000000 002D450090C0430A1910
   protLastRcv 2016-04-25 08:51:57
   rssi_at_HMlan min:-53 avg:-53 max:-53 cnt:1 lst:-53
   Helper:
     Dblog:
       Brightness:
         Logdb:
           TIME       1461567117.54143
           VALUE      16
       Dewpoint:
         Logdb:
           TIME       1461567117.54143
           VALUE      -0.7
       Humidity:
         Logdb:
           TIME       1461567117.54143
           VALUE      69
       Israining:
         Logdb:
           TIME       1461567117.54143
           VALUE      0
       Rain:
         Logdb:
           TIME       1461567117.54143
           VALUE      42.48
       Sunshine:
         Logdb:
           TIME       1461567117.54143
           VALUE      25
       Temperature:
         Logdb:
           TIME       1461567117.54143
           VALUE      4.5
       Winddirrange:
         Logdb:
           TIME       1461567117.54143
           VALUE      67.5
       Winddirection:
         Logdb:
           TIME       1461567117.54143
           VALUE      50
       Windspeed:
         Logdb:
           TIME       1461567117.54143
           VALUE      6.7
   Readings:
     2016-04-25 08:51:25   Activity        alive
     2016-04-16 17:26:11   CommandAccepted yes
     2016-04-16 14:57:05   D-firmware      1.4
     2016-04-16 14:57:05   D-serialNr      MEQ0211454
     2016-04-16 14:58:10   PairedTo        0x322433
     2016-04-16 14:58:10   R-burstRx       off
     2016-04-16 14:58:10   R-pairCentral   0x322433
     2016-04-16 14:58:11   R-sunThresh     30
     2016-04-16 14:58:10   RegL_00.        01:00 02:01 05:00 0A:32 0B:24 0C:33 00:00
     2016-04-16 14:58:11   RegL_01.        05:1E 00:00
     2016-04-25 08:51:57   brightness      16
     2016-04-25 08:51:57   dewpoint        -0.7
     2016-04-25 08:51:57   humidity        69
     2016-04-25 08:51:57   isRaining       0
     2016-04-16 20:55:38   luminance       0
     2016-04-25 08:51:57   rain            42.48
     2016-04-25 08:51:57   state           T: 4.5 H: 69 W: 6.7 R: 42.48 IR: 0 WD: 50 WDR: 67.5 S: 25 B: 16
     2016-04-25 08:51:57   sunshine        25
     2016-04-25 08:51:57   temperature     4.5
     2016-04-25 08:51:57   windDirRange    67.5
     2016-04-25 08:51:57   windDirection   50
     2016-04-25 08:51:57   windSpeed       6.7
   Helper:
     HM_CMDNR   110
     mId        0040
     rxType     12
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +3747B2,00,00,00
       nextSend   1461567117.52662
       prefIO
       rxt        0
       vccu
       p:
         3747B2
         00
         00
         00
     Mrssi:
       mNo        6E
       Io:
         HMlan      -51
     Prt:
       bErr       0
       sProc      0
     Q:
       qReqConf
       qReqStat
     Role:
       chn        1
       dev        1
     Rssi:
       At_hmlan:
         avg        -53
         cnt        1
         lst        -53
         max        -53
         min        -53
Attributes:
   IODev      HMlan
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   1.4
   icon       humidity
   model      HM-WDS100-C6-O
   peerIDs    00000000,
   room       HMlan,Terrasse
   serialNr   MEQ0211454
   stateFormat <table> <tr align="left"><td>Temperatur</td><td>temperature °C</td></tr> <tr align="left"><td>Taupunkt</td><td>dewpoint °C</td></tr> <tr align="left"><td>Luftfeuchte</td><td>humidity %</td></tr> <tr align="left"><td></td><td></td></tr> <tr align="left"><td>Helligkeit</td><td>brightness</td></tr> <tr align="left"><td></td><td></td></tr> <tr align="left"><td>Windgeschwindigkeit</td><td>windSpeed km/h</td></tr> <tr align="left"><td>Windrichtung</td><td>windDirection °</td></tr> <tr align="left"><td>Windrichtung schwankung</td><td>windDirRange °</td></tr> <tr align="left"><td></td><td></td></tr> <tr align="left"><td>Regen</td><td>isRaining</td></tr></table>
   subType    THSensor

und hier des logfiles (der rest rennt ja auf mysql):Internals:
   DEF        ./log/Wetterstation.log RegenmengeLast1Hours:state:.*|RegenmengeLast24Hours:state:.*|RegenmengeLast3Hours:state:.*|RegenmengeOffset:state:.*|RegenmengeTag:state:.*
   NAME       Wetterlog
   NR         564
   NTFY_ORDER 50-Wetterlog
   REGEXP     RegenmengeLast1Hours:state:.*|RegenmengeLast24Hours:state:.*|RegenmengeLast3Hours:state:.*|RegenmengeOffset:state:.*|RegenmengeTag:state:.*
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/Wetterstation.log
   logfile    ./log/Wetterstation.log
   Pos:
Attributes:
   group      WetterstationUmrechnung
   room       Szenen
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: ernst1024 am 25 April 2016, 10:33:29
hmnn, also erstmal, ich bin ja auch Suchender und in deinem Fall einfach mal ins Wasser gesprungen und stelle jetzt fest das Wasser ist kalt :-)
Zu spät.

OK, also vielleicht bin ich ja total auf der falschen Spur, aber sehe ich das richtig das du Daten loggen willst die du erst aufgrund der Daten im Logfile berechnen willst. Die Daten, die als Grundlage für die Berechnung (myDiff) dienen, werden aber so wie ich das sehe gar nicht geloggt? 

./log/Wetterstation.log RegenmengeLast1Hours:state:.*|RegenmengeLast24Hours:state:.*|RegenmengeLast3Hours:state:.*|RegenmengeOffset:state:.*|RegenmengeTag:state:.*

also müsste da nicht stehen Wetterstation:rain:.*|temperature:.*  usw?

Auch würde ich erstmal die ganzen fancy Formatierungen in der cfg mit '#' auskommentieren. Das versperrt mir jedenfalls immer den Blick auf's wesentliche. Sorry wenn ich keine Lösung anbieten kann, ich kann nur sagen wie ich es angehen würde.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 25 April 2016, 11:06:37
Hallo,

Das klappt so nicht wirklich. Das ist ja was ich meine. Du brauchst erstmal ein sauberes Logfile von Deiner Wetterstation wo die Daten drin stehen welche Du für die Berechnung nehmen möchtest.
Also erstelle erstmal ein Logfile vom Device Wetterstation. So wie ich das sehe geht es Dir hier erstmal um die Regenmenge. Also fangen wir da an


define logWetterstationRegenmenge FileLog ./log/logWetterstationRegenmenge WetterStation:rain:.*

Das wirst Du wohl jetzt erstmal laufen lassen müssen bis Du genügend Daten vorhanden hast.




Grüße
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 25 April 2016, 11:08:14
@ernst1024

juhuu, jetzt reden als 2 blinde über farben - naja, kann immerhin kurzweilig werden *g*.

ich hatte die daten vom rain von der wetterstation auch schon im log drinnen (damit hab i glei getestet, ob das log auch was schreibt). ist dem ding auch egal.
wenn ich das richtig kapiere, holt er sich ja nur die berechneten werte wieder aus dem logfile - vertehen tu ich das notify so:

my $menge = (ReadingsVal("Wetterstation", "rain", 0) - ReadingsVal("RegenmengeOffset", "state", 0));er holt sich den aktuelle rain von der wetterstation und nimmt ihn für regenmengeoffset. - das funzt ja auch, der offset hat immer werte und wird auch mit dem zugehörigen at um mitternacht geressetet.
  my $last1hours = myDiff("3600", "Wetterlog", "10:::");
  my $last3hours = myDiff("10800", "Wetterlog", "10:::");
  my $last24hours = myDiff("86400", "Wetterlog", "10:::");



  fhem("set RegenmengeTag $menge");
  fhem("set RegenmengeLast1Hours $last1hours");
  fhem("set RegenmengeLast3Hours $last3hours");
  fhem("set RegenmengeLast24Hours $last24hours");
nun holt er sich
1) die (nicht vorhandene) werte aus dem log,
2) sendet sie an die mydiff zum rechnen und
3) würde die zurückgegebenen werte in die entsprechenden dummys schreiben.

@ernst1024 & @cooltux

so, drum zum 3. mal: ich würde gern händisch mein log füllen, damits entweder wie ein starthilfekabel wirkt, oder man wenigstens sehen könnte, wie er überhaupt auf daten im log reagiert.
mein problem dabei is: wie muß ne zeile im log aussehen, damit er die daten auch richtig abgreifen kann?
ist das Log 4, ("myDiff: File: $logfile, Field: $cspec, Period: $period_s bis $period_e, First: $first, Last: $last, Diff: $diff");aus der mydiff meine abschriebübung dafür?

@cooltux
wenn wir was ganz neues anfangen, könnten wirs auf mysql probieren gleich?
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 25 April 2016, 11:12:59
Lass erstmal etwas nehmen was definitiv irgendwie gehen muss. Und das ist im Moment FileLog.
Kipp doch einfach mal bisschen wasser in das Teil und schaue wie das Logfile gefüllt wird. Kann ja nicht so schwer sein. Meintwegen mit ner Gießkannentülle, damit es halbwegs realistisch ist.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 25 April 2016, 11:17:30
wie gesagt, hat ich zwar schon erfolglos probiert, aber ich will ja ned so sein *g*

nun hat das log also auch noch Wetterstation:rain:.*zum fressen bekommen.
scho schreibt er das log voll:2016-04-25_11:16:26 Wetterstation rain: 42.48

was mir grad auffällt übrigens:
er schreibt auch kein RegenmengeOffset  vom dummy rein. das müsste doch mindestens 1 mal um mitternacht (at mit reset) kommen?
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 25 April 2016, 11:25:14

2016-04-25_10:05:19 Wetterstation rain: 40.28
2016-04-25_10:11:16 Wetterstation rain: 41.38
2016-04-25_10:16:56 Wetterstation rain: 40.88
2016-04-25_10:23:96 Wetterstation rain: 42.05
....


2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.48
2016-04-25_11:16:26 Wetterstation rain: 42.4
2016-04-25_11:16:26 Wetterstation rain: 42.48


Versuche erstmal ne Stunde zusammen zu bekommen mit unterschiedlichen Werten.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 25 April 2016, 11:28:01
unterschiedliche werte werden schwer - kein regen in sicht und die station ist am dach - da komm ich ohne steiger nicht ran *g*

werds dann mal händisch ändern2016-04-25_11:16:26 Wetterstation rain: 42.43
2016-04-25_11:18:34 Wetterstation rain: 42.44
2016-04-25_11:21:31 Wetterstation rain: 42.45
2016-04-25_11:24:14 Wetterstation rain: 42.46
2016-04-25_11:26:43 Wetterstation rain: 42.47
2016-04-25_11:28:57 Wetterstation rain: 42.48
und ein reopen hinten her
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 25 April 2016, 11:32:30
Genau das war meine Intention
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 25 April 2016, 11:42:26
gut, er schreibt mir brav das log weiter voll und nachdem ich mal händisch den RegenmengeOffset auf 41 geändert hab, auch den "Regenmenge Tag 1.48"

im logfile werden übrigens nur die state-werte der wetterstation gelogged, nicht die vom offset-dummy (auch, wenn ich dessen werte umändere).
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: ernst1024 am 25 April 2016, 11:55:30
Ok, langsam verliere ich den Durchblick, aber ich werfe mal folgendes in die Runde:
das Logfile muss mE nicht so:


2016-04-25_11:16:26 Wetterstation rain: 42.48


sondern so:


2016-04-25 08:51:57 state T: 4.5 H: 69 W: 6.7 R: 42.48 IR: 0 WD: 50 WDR: 67.5 S: 25 B: 16



aussehen, da mM nach die Funkrion myDiff auf die 10 Spalte zugreift und das wäre genau das


my $last1hours = myDiff("3600", "Wetterlog", "10:::");



                   1              2     3   4    5   6   7    8    9  0
2016-04-25 08:51:57 state T: 4.5 H: 69 W: 6.7 R: 42.48 IR: 0 WD: 50 WDR: 67.5 S: 25 B: 16


edit: ok dachte mir schon dass das nicht so dargestellt wie geschrieben rüberkommt. Aber einfach die Leerzeichen abzählen, wobei das erste nach Datum 1, nach Uhrzeit 2 usw ist


2016-04-25 08:51:57 state T: 4.5 H: 69 W: 6.7 R:-genau hier-42.48 IR: 0 WD: 50 WDR: 67.5 S: 25 B: 16
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 25 April 2016, 11:56:22
Ich sehe in den Readings Deiner Wetterstaion nichts mit Offset. Mach doch mal bitte ein Schritt nach dem anderen und zwar nicht nur im tun sondern auch im denken und schreiben.

Regendaten hast Du nun im Logfile? Also so über eine Stunde?
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: betateilchen am 25 April 2016, 11:57:30
Zitat von: the ratman am 24 April 2016, 21:32:00
das steht im fhem wiki als abschreibübung drinnen. da stellt doch sicher keiner schrott rein, der nicht funzt, oder?

Du glaubst gar nicht, wieviel nicht (mehr) funktionierender Schrott im fhemwiki steht...

Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 25 April 2016, 12:09:47
so, dann mal langsam *g*

@cooltux
zur regenmengeOffset - das ist einer der dummys, die für das ganze gemurkse angelegt werden sollen.
den hab ich auch im log freigegeben: "RegenmengeLast1Hours:state:.*|RegenmengeLast24Hours:state:.*|RegenmengeLast3Hours:state:.*|RegenmengeOffset:state:.*|RegenmengeTag:state:.*|Wetterstation:rain:.*"
dieser offset wird um mitternacht geresettet und daraus die tägliche regenmege errechnet und in "Regenmenge Tag" geschrieben, was auch funzt.
so: das offset hat nen wert und in log soll dieser geschrieben werden. wirds aber nicht - weder mit dem dazugehörigen at um mitternacht, noch, wenn ich händisch dran drehe.
nur soviel zum offset - und du wolltest ja wohl alle beteiligten werte im log haben, denk ich mal?

@ernst1024
moooment - der will also gar nicht nur den rain im log haben (was ich eh nie geglaubt hab), der will den state mit allem gemurkse?
das probier i glei mal und lass es auch ins log schreiben. das log wurde also eben um "Wetterstation:state:.*" erweitert (nachtrag: was er auch nicht tut - ich krieg langsam die kretze)
hab ich da mal nicht was gelesen wegen dummys und state und nix ins log schreiben? naja, habs dann aufgeben, als die wieder wegen schiss zum streiten anfingen und ich geistig ausgestiegen bin ...
haben wir hier dann die lösung? bleiben sie aufmerksam und schalten sie ein zu teil 546743542334: ist sue allen schwanger, oder tut sie nur so?

@betateilchen
jetzt krieg ich angst so als anfänger und jammer mal ein bissi (bitte nicht weiterlesen):
ich fasse jetzt mal fies zusammen, wie sich das für mich darstellt:
ich hab als anfänger 3 anlaufstellen:
1) commandref: steht auch gern mal nur ne überschrift ohne erklärung bei den set und get befehlen
2) wiki: unzuverlässig
3) forum: wo du gern mal auf 1 und 2 verwiesen wirst
goil! hänsel und gretel gehen in den wald. empfohlen wird ihnen, brotkrumen zum zurückfinden zu streuen. gibt aber nur semmeln und steine anstatt brotkrumen, und die steine nehm ich denen auch noch weg. der plan is eindeutig von der hexe persönlich entworfen! *lach*
nö, im ernst: ich habs schon vermutet und mir wurde ab jener vermutung klar, warum man sich als anfanger ohne programmierkenntnisse wie der letzte vollidiot vorkommmt ...
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 25 April 2016, 12:24:22
Mal ne Frage, Wie verhält sich das Reading rain. Zählt der Wert nach oben oder was genau soll das sein. Gibt er die echtzeit Regenmenge an?

Warum wird das hier gemacht, wofür


my $menge = (ReadingsVal("OC3", "rain", 0) - ReadingsVal("RegenmengeOffset", "state", 0));;\


Sollte rain nicht null sein wenn es nicht regnet? Nehmen wir an es regnet um Mitternacht also genau dann wenn der Offset erstellt wird. Aber wieso, wofür? Kapier ich nicht.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: ernst1024 am 25 April 2016, 12:33:23
Zitat von: the ratman am 25 April 2016, 12:09:47

moooment - der will also gar nicht nur den rain im log haben (was ich eh nie geglaubt hab), der will den state mit allem gemurkse?

....bleiben sie aufmerksam und schalten sie ein zu teil 546743542334: ist sue allen schwanger, oder tut sie nur so?


zu 1 Du könntest natürlich auch den Funktionsaufruf ändern:


my $last1hours = myDiff("3600", "Wetterlog", "4:::");


wenn ich jetzt richtig gezählt habe. (kommt drau an ob zwischen Datum und Uhrzeit ein Leerzeichen oder ein underscore ist)

zu 2 .. ich war's nicht
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 25 April 2016, 12:36:22
das ist auch der grund, warum der ganze geschisse gemacht wird:
das rain der wetterstation zählt einfach die regenmenge bis 999 (oder wars 9999?) und fangt dann wieder von vorne an. geht auf deutsch einfach über, das gute ding.

darum auch gleich der teil 2 deiner frage - da schreibt er einfach für den aktuellen tag die regenmenge rein. macht er eben simpel mit nem at *00:00:00 {
  my $offset = ReadingsVal("Wetterstation", "rain", 0);
  fhem("set RegenmengeOffset $offset");
}
funzt auch soweit.
ich hab somit einen wert in offset stehen, der 24 stunden stabil bleibt und der einfach nur von der aktuellen menge im rain der wetterstation abgezogen wird um den aktuellen stand des tages zu haben und den auch brav in den dummy RegenmengeTag zu schreiben. der teil funzt auch.

@ernst1024
könnte ich - warten ma einfach, was der onkel cooltux zu sagt? will ihm jetzt ned ins gehirn pfuschen.
(kommt drau an ob zwischen Datum und Uhrzeit ein Leerzeichen oder ein underscore ist)wenn er mir mal den state ins log schreiben würde, könnt ichs sagen ...
Zitatzu 2 .. ich war's nicht
ich weiß *g* - aber wir wissen, wen ich meine, oder? *g*
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 25 April 2016, 12:38:52
Zitat von: the ratman am 25 April 2016, 12:09:47

@ernst1024
moooment - der will also gar nicht nur den rain im log haben (was ich eh nie geglaubt hab), der will den state mit allem gemurkse?
das probier i glei mal und lass es auch ins log schreiben. das log wurde also eben um "Wetterstation:state:.*" erweitert (nachtrag: was er auch nicht tut - ich krieg langsam die kretze)

Wenn Du alle Readings des Devices haben willst. Hoffe ich habe Dich recht verstanden. Das hier ist sehr sehr durcheinander und unübersichtlich. Jeder quatsch irgendwas ohne Faden und Du machst es nicht leichter, Ehrlich gesagt


Wetterstation:.*
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 25 April 2016, 12:42:01
Noch mal gefragt. Kann es sein das das Reading rain ein Zähler ist der immer wenn es regnet hoch gezählt wird???
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 25 April 2016, 12:44:14
ich will gar keine devicereadings in diesem log haben.
dachte, du willst das.

soweit ich das richtig kapiere, braucht der mydiff nur seine eigneen logs und der notify nur den echtzeitwert von wetterstation rain.
drum hab ich ja vorher auch so rumgezickt wege des ins log schreiben ...

und ja, das reading rain der wetterstation ist rein ein zähler, der bei regen hoch geht. bis er eben irgendwann mal überläuft und bei 0 anfangt.
frag mich nicht wieso, aber homematic findet sowas scheinbar lustig.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: CoolTux am 25 April 2016, 12:52:29
Ach so. Ok das kann sein. Ich blicke da einfach nicht durch. Sorry.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 25 April 2016, 13:22:55
was DU gibst auf? *g*
trotzdem danke für den versuch - ich hatte ja eig. schon aufgegeben.

das gute daran: mir bleibt zumindest die tagesmenge für die statisitk. ist auch schon was.

naütlich auch danke an ernst1024!
aber ich denke, wir beenden das ganze mal, bis wir gscheiter sind und ich gleich was für mysql machen kann.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: ernst1024 am 25 April 2016, 13:31:10
häh, wieso aufgeben?

Ich fasse mal kurz zusammen: das mit dem textlog war ja eigentlich nur eine Krücke um mal zu sehen was die funktion myDiff da eigentlich als Parameter erwartet.
richtig?

Ich glaube das wissen wir mittlerweile und zwar die Regenmenge (R: 42.48) auch richtig?

Jetzt hast du doch, glaube ich zumindest gesagt, das dbLog hast du am laufen gehabt, mit mysql. ?

Dann lass uns doch den ganzem quatsch mit textlog vergessen, bringt ja eh nix mehr, und uns gleich darum kümmern wie man die funktion anpassen muss (ich weiss, das hast du schon in deinem ersten Beitrag so gesagt :-))

Kannst du denn sagen wie das feld in der Datenbank heisst in der 'rain' abgespeichert wird?

Habe mir übrigens das Teil mal angeschaut, ist ja ne Eierlegendewollmilchsau, was? Auch haben will :-)
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 25 April 2016, 14:08:29
nönö, so einfach is es auch ned *g*

ganz vom anfang an:
das ganze (wie es im wiki steht) soll folgendes erledigen:
1) windspeed von hm/h in m/s umrechnen <-- macht es
2) aus dem zähler "rain" einen regenmengen tageswert rausrechnen <-- macht es
3) aus dem ganzen per deffinierter "mydiff" ein logfile mit "letzte 24h", "letzte 3h" und "letzte 1h" bauen und die entsprechenden dummys damit füllen <-- macht es nicht

fazit: es funzt alles, bis auf das mydiff - nachdem der onkel aus dem wiki das schon von wo anderes abgetippt und angepasst haben zu scheint, seh ich da wenig hoffnung ohne einen, der wirklich perl kann und uns nen richtigen mydiff mit einem richtigen aufruf dafür baut.
und enden tut das ganze jetzt hier für mich, weil ich einfach nimma so wiel zeit in irgendwas stecken will. ich will hausautomatisieren nicht zeit (die ich eig. eh nicht hab) verbrennen.


was dein "auch haben will" angeht - jo, wäre geil, wenn es alles gscheit machen würde, so wie ich das von homematic auch eig. gewohnt bin.

schuld hm:
o) fangt schon an, dass man keinen batteriestand (angeblich schon, aber reading seh ich keines für) kriegt - grad bei nem gerät, dass 99,99% der zeit aus meiner reichweite is (ich muß bei nem freund nen hubwagen ausborgen, weil ich keine leiter mit der länge hab).
o) die brightness kommt nicht in lux sondern in 0-255 daher und auch noch ohne angabe, was nun wie viel lux wäre. hab dazu auch nix gefunden, nicht zuletzt, weil eh keiner weiß, wie viel lux 0 und wie viel 255 wären.
o) die sonnenscheindauer (die er übrigens auch mit nem einfachen zähler realisiert, der überläuft) ist einfach an brightness = 30 gehängt. kann man zwar änder, is aber irgendwie - hmmm ....
o) die angabe über isRaining is echt zu "nervös" gut, lässt sich in fhem relativ einfach lösen, aber ich hab schon wieder den preis des dings hinter den augen. DAFÜr wollt ich dann nicht auch noch eig. zeit investieren.
o) der wert für rain läuft eben auch nur einfach über, was in dem ganzen geschreibsel hier geendet hat.
meine schuld:
o) statisitken über den regen - pfff kann ich wohl vergessen.
o) zumindest im fhem dashboard ne windrose hinzubekommen, die auch noch die range anzeigt, kann ich mir wohl in die haare schmieren - so gut werd ich nie scripten können.

fazit: DAS geld is es nicht wert - zumindest, solang das ding nicht gleich gscheite werte/einheiten von haus aus liefert. für leute wie mich is es fast unbrauchbar wegen fehlender bastelkenntnisse in fhem. da hätte es ein dummer z-wave multisensor auch getan.
wieder ein schönes bspl. wie hausautomatisation nicht gedacht war. eig. wollt ich zeit und rennerei sparen mit dem ding, dabei verbring ich eine nicht unwesentliche teil meiner freizeit damit, problemlösungen zu suchen, die mich eig. so gar nicht interessieren würden.
Titel: Antw:hilfegesuch für ein perl-problem
Beitrag von: the ratman am 27 April 2016, 22:45:35
öhm ja - nur n nachtrag:

für alle, die auch so blöd wie ich sind: http://fhem.de/commandref.html#rain

jetzt schäm ich mich a bissl ...