CUNO raw messages loggen

Begonnen von Guest, 20 November 2011, 19:41:04

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo,

was muss ich in der FHEM.cfg eintragen, um zyklisch eine raw-message
an den CUNO zu schicken und
die Antwort in einem eigenen Logfile mit Datum und Uhrzeit der Abfrage
abzulegen?

Ich habe es so probiert, aber das funzt nicht:

define FileLog_CUNO FileLog /opt/var/log/fhem/CUNO-%Y.log CUNO
attr FileLog_CUNO logtype text
get CUNO raw Ohs6E000001118BC126

Anmerkung:
Ohs ist eine eigen FW-Erweiterung, um OW-Komponenten (von Hobbyboards)
abzufragen,
ohne über OWFS gehen zu müssen (für's QNAP habe ich bisher keine OWFS-
Implementierung
efunden).

Gruss HG

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> get CUNO raw Ohs6E000001118BC126

get ist weder zyklisch noch generiert aus dem Antwort ein Event. Ich wuerde mit
folgendes experimentieren:

define gAt at *00:15 { my $d = fhem "get CUNO raw ...";; fhem "trigger CUNO $d" }

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Danke, hat mir geholfen.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Habe da doch noch ein paar Probleme.

Zum einen hängt sich FHEM ohne erkennbare Gründe ab und zu auf.

Im log steht dazu folgendes:

2011.11.22 17:35:40 3: CUL opening CUNO device 192.168.178.40:2323
2011.11.22 17:35:40 3: CUL device opened
2011.11.22 17:35:40 2: FHEMWEB port 8083 opened
2011.11.22 17:35:40 2: FHEMWEB port 8084 opened
2011.11.22 17:38:37 3: CUL opening CUNO device 192.168.178.40:2323
2011.11.22 17:38:37 3: CUL device opened
2011.11.22 17:38:37 2: FHEMWEB port 8083 opened
2011.11.22 17:38:37 2: FHEMWEB port 8084 opened
2011.11.23 04:12:41 2: CUNO: unknown message U: 0 T: 6
2011.11.23 07:40:46 1: 192.168.178.40:2323 disconnected, waiting to
reappear
Select error -1 / Bad file descriptor
2011.11.23 07:51:39 3: CUL opening CUNO device 192.168.178.40:2323
2011.11.23 07:51:39 3: CUL device opened
2011.11.23 07:51:39 2: FHEMWEB port 8083 opened
2011.11.23 07:51:39 2: FHEMWEB port 8084 opened
2011.11.23 07:51:40 0: Server started (version 5.0 from 2010-08-15
($Id: fhem.pl,v 1.110 2010-08-14 10:35:12 rudolfkoenig Exp $), pid
26935)

nach dem disconnect muss ich FHEM dann von Hand neu starten. Was hat
dieser Select error zu bedeuten?
Manchmal disconnected er auch und 'reappered' von selbst.

Das nächste Problem ist, dass ab und zu andere Raw Messages
einstreuen.
D.h. das Log sieht manchmal z.B. so aus:
2011-11-23_08:04:40 UV CUNO raw => U: 2 T: 7
2011-11-23_08:06:05 UV CUNO raw => K41300078E4
2011-11-23_08:07:05 UV CUNO raw => U: 2 T: 7
2011-11-23_08:08:05 UV CUNO raw => U: 2 T: 7
2011-11-23_08:09:05 UV CUNO raw => U: 2 T: 7
2011-11-23_08:10:05 UV CUNO raw => U: 2 T: 7
2011-11-23_08:11:05 UV CUNO raw => U: 2 T: 7
2011-11-23_08:12:05 UV CUNO raw => G: 1674
2011-11-23_08:13:05 UV CUNO raw => U: 2 T: 7

Die 2. und die vorletzte Zeile gehören da nicht hin und stammen von
einem KS300 bzw.
dem Blitzsensor (G), der in ein eigenes log schreibt.
Der Blitzsensor hat kurz vor dem Event selbst einen falschen Wert im
Log stehen:

2011-11-23_08:10:59 GE CUNO raw => G: 1674
2011-11-23_08:11:59 GE CUNO raw => K17237008003B6A18K41300078E4
2011-11-23_08:12:59 GE CUNO raw => G: 1674

Was kann ich tun, dass die Messages nicht quer schiessen?

Mein Code in der FHEM.cfg sieht wie folgt aus:

define FileLog_Solar FileLog /opt/var/log/fhem/Solar-%Y.log Solar
attr FileLog_Solar logtype solar,text
attr FileLog_Solar room Logs

define FileLog_UV FileLog /opt/var/log/fhem/UV-%Y.log UV
attr FileLog_UV logtype uv,text
attr FileLog_UV room Logs

define FileLog_Ge FileLog /opt/var/log/fhem/Ge-%Y.log GE
attr FileLog_Ge logtype gewitter_1,text
attr FileLog_Ge room Logs

....

define soAt at +*00:01:00 { my $s = fhem "get CUNO raw
Ohs6E000001118BC126";; sleep 1 ;; fhem "trigger Solar $s";; sleep 5 ;;
my $g = fhem "get CUNO raw OhgB70000000F48781D";; sleep 1 ;; fhem
"trigger GE $g" ;; sleep 5;; my $u = fhem "get CUNO raw
Ohu22000801CB2D91EE";; sleep 1 ;; fhem "trigger UV $u" }

Leider ist das Thema perl nicht so mein Ding. Andere Sprachen sind da
übersichtlicher :-)
Gruss HG


On Nov 21, 1:12 pm, HG wrote:
> Danke, hat mir geholfen.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> nach dem disconnect muss ich FHEM dann von Hand neu starten. Was hat
> dieser Select error zu bedeuten?

Das CUNO nicht zur Verfuegung stand. Nach dem reconnect wuerde ich "get CUNO
uptime" durchfuehren, um zu sehen, ob das Ding ein reboot durchgefuehrt hat.
Evtl. hilft hier auch der neuer ethersex Treiber, was Jelle Kalf versucht als
default zu integrieren. Bis er das geschafft hat, hilft nur selbst uebersetzen.


> Was kann ich tun, dass die Messages nicht quer schiessen?

Z.zt ist prinzipiell nicht sichergestellt, das get auf eine Anfrage das
richtige Antwort bekommt, da Ereignisse in den gleichen Puffer gesteckt werden,
wie die Antwort auf die Frage. CUL_ReadAnswer hat einen Parameter, der via
Regexp prueft, ob die Antwort in etwa dem entspricht was man will, get CUL raw
ueberspringt aber diese Pruefung.
Die Loesung waere get CUL raw O...  durch ein "echtes" CUL-get (womoeglich
sogar durch ein richtiges FHEM-Modul) zu ersetzen, das wiederum diesen regexp
verwendet.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

> CUL_ReadAnswer hat einen Parameter, der via
> Regexp prueft, ob die Antwort in etwa dem entspricht was man will, get CUL raw
> ueberspringt aber diese Pruefung.
> Die Loesung waere get CUL raw O...  durch ein "echtes" CUL-get (womoeglich
> sogar durch ein richtiges FHEM-Modul) zu ersetzen, das wiederum diesen regexp
> verwendet.

Wo sind denn CUL_ReadAnswer und CUL-get beschrieben?
In der fhem Referenz finde ich dazu nichts bzw. "CUL get" nur mit
version/uptime/raw/fhtbuf/ccconf

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> Wo sind denn CUL_ReadAnswer und CUL-get beschrieben?

fhem/FHEM/00_CUL.pm
Aber der Ausdruck "beschrieben" ist etwas hochgegriffen.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

On Nov 23, 9:39 am, Rudolf Koenig wrote:
> > Wo sind denn CUL_ReadAnswer und CUL-get beschrieben?
>
> fhem/FHEM/00_CUL.pm
> Aber der Ausdruck "beschrieben" ist etwas hochgegriffen.

Da wäre dann wieder mein perl-Problem. In die Module schau ich rein,
wie die Sau ins Uhrwerk :-)

Ansich wären die falschen Werte im log gar nicht das Problem, wenn
dann das Plot
diese nicht falsch darstellen würde.

Für die Plotausgaben habe ich nun versucht, vor der Ausgabe zu
checken, ob
an 6. Stelle ein bestimmter Bezeichner im log steht ->
2011-11-23_10:14:59 Solar CUNO raw => S: 393 T: 1896 H: 258

#FileLog 7:S:0:

if ($6 eq "S:") {
plot \
  "< awk '/T:/ {print $1, $7}' "\
     using 1:2 axes x1y2 title 'Sonneneinstrahlung' with lines lw
2,\}

Das funktioniert aber auch nicht so, wie gedacht.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> Das funktioniert aber auch nicht so, wie gedacht.

Stimmt, .gplot ist auch kein Perl Programm. Ich gehe davon aus, dass Du SVG
verwendest. Wen ja, dann waere:

  #FileLog 7:S\x3a.*T\x3a:0:

besser, da es nach "S:T:" im String suchen wuerde, statt nach einem
einsamen S

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

>   #FileLog 7:S\x3a.*T\x3a:0:
>
> besser, da es nach "S:T:" im String suchen wuerde, statt nach einem
> einsamen S

Ja ich verwende wohl SVG.
Habe die gplot Files unter pgm2 entsprechend als Vorlage genommen und
angepasst,
ohne wirklich zu wissen, was da passiert  :-) Try & error

Mit Deiner Anpassung sieht es nun gut aus. Falsche Werte werden, wie
gewünscht ausgefiltert
und nicht dargestellt.

Danke.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com