FHEM Forum

FHEM => Sonstiges => Thema gestartet von: frober am 31 Mai 2015, 19:38:18

Titel: (gelöst)ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: frober am 31 Mai 2015, 19:38:18
Hallo,
meine Onewire-Tempsensoren, über Ethersex auf einem NetIO angeschlossen bringen alle 2 Min. diese Meldung im Log, obwohl  Verbose auf 0 steht.
Zum Test habe ich Verbose auf 5 gesetzt, siehe Logausschnitt, komme aber nicht weiter, wo der Fehler liegt.
Kann mir Jemand helfen?

2015.05.31 19:05:17 2: After sleep: temp 26.00
2015.05.31 19:07:17 2: After sleep: temp 25.75
2015.05.31 19:09:17 2: After sleep: temp 25.56
2015.05.31 19:11:17 2: After sleep: temp 25.38
2015.05.31 19:13:17 2: After sleep: temp 19.31
2015.05.31 19:13:17 2: After sleep: temp 19.81
2015.05.31 19:13:18 2: After sleep: temp 25.25
2015.05.31 19:15:14 5: ECMDDevice: Analyze command >{"1w convert\n"}<
2015.05.31 19:15:16 5: ECMDDevice: Analyze command >{"1w get 289f172c06000015\n"}<
2015.05.31 19:15:17 5: Postprocessing "25.00\n" with perl command { s/\n//g; my $hash  = $defs{PVTemp}; my $temperature = $_; my $state = $temperature;  readingsSingleUpdate($hash, "temp", $temperature, 1); readingsSingleUpdate($hash, "state", $state, 1); }.
2015.05.31 19:15:17 5: Postprocessed value is "25.00".
2015.05.31 19:15:17 2: After sleep: temp 25.00
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: franky08 am 31 Mai 2015, 20:09:10
Hallo, du machst das get ...  Bestimmt alle 2 min über ein at. Setz das at mit attr verbose 0 dann sollte im Log nichts mehr auftauchen. Hab ich bei mir so.

Vg
Frank
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: frober am 31 Mai 2015, 20:23:43
OK, danke.
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: frober am 31 Mai 2015, 21:22:55
ich habe jetzt Verbose 5 bei den at-Routinen eingefügt, hat leider nicht geholfen.

Hat sonst noch einer eine Idee?
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: franky08 am 31 Mai 2015, 21:25:18
verbose 0 !! Nicht 5, damit loggst du ja alles und nur bei dem at, welches mittels get das Onewire device abfragt!
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: frober am 01 Juni 2015, 12:37:03
Sorry  :( , ich meinte natürlich Verbose 0 und mit 0 bekomme ich immer noch den Log-Eintrag.

Ich habe insgesamt 3 OW-Sensoren, aber nur einer misst alle 2 Min, die anderen beide alle 10 Min, das Problem ist aber das gleiche.

Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: franky08 am 01 Juni 2015, 20:46:34
Hallo, die classdef hast du doch so:
# Übergabeparameter Onewire Geräte ID
params devID
# Umsetzung in ECMD Befehle 1w convert = Messung auslösen, 1w get = Tempwert lesen
set messen cmd {"1w convert\n"}
set messen expect "OK\n"
get temp cmd {"1w get %devID\n"}
get temp expect "\d+.\d\n"


dann rufst du bestimmt über ein: define blabla at +*00:02:00 set <device> messen; sleep 2; get <device> temp
das OW device auf und liest die Temp. Werte ein.

Jetzt einfach
attr blabla verbose 0

und dann sollten keine Events vom OW device mehr geloggt werden, bei mir funktioniert das jedenfalls

VG
Frank
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: frober am 02 Juni 2015, 11:22:34
Hallo,

das mit Verbose habe ich so, bekomme trotzdem die Einträge.
Ich vermute, es hängt an meiner classdef.
Diese weicht etwas von deiner ab, da ich im Logfile Leerzeilen hatte und der Plot deswegen nicht funktionierte.
Die postproc-Zeile habe ich von http://www.ethersex.de/index.php/Nutzung_in_FHEM_(Deutsch) (http://www.ethersex.de/index.php/Nutzung_in_FHEM_(Deutsch)) abgekupfert.

Meine classdef:
# Uebergabeparameter Onewire Geräte ID
params devID
# Umsetzung in ECMD Befehle 1w convert = Messung auslösen, 1w get = Tempwert lesen
set messen cmd {"1w convert\n"}
set messen expect "OK\n"
get temp cmd {"1w get %devID\n"}
get temp expect "\d+.\d\n"
get temp postproc {\
s/\n//g;\
my $hash  = $defs{%NAME};\
my $temp = $_;\
my $state = $temp;\
\
readingsSingleUpdate($hash, "temp", $temp, 1);\
readingsSingleUpdate($hash, "state", $state, 1);\
\
}


Kann es sein, das das doppelte 'temp', einmal als "get temp" und einmal als reading schuld ist?
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: kpwg am 02 Juni 2015, 20:11:08
Das kann gut sein- lasse es doch testweise mal weg. Das state muss man vermutlich gar nicht extra bedienen. Hauptsache temperature stimmt.  8)

Übrigens wird mit einer der nächsten E6-Updates die 1w-convert-Lösung "intern" entfallen  und nur noch Polling verwendet. Auf jeden Fall wird das convert noch mit OK bestätigt, so das auch die "alte" FHEM-Lösung weiterhin funktionieren wird.
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: frober am 02 Juni 2015, 21:08:35
Ich weiss nicht weiter :(

Die classdef habe ich mehrfach abgeändert, ohne Erfolg

Fakt ist:
manuell das messen anstossen = OK,
automatisch über at, Meldung im Log >:( trotz verbose 0

Woher kommt der Text 'after sleep'?
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: kpwg am 02 Juni 2015, 21:12:02
Wie sieht denn aktuell das "at" zum auslesen aus?
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: frober am 02 Juni 2015, 21:15:25
define 1Wire_PVTemp at +*00:02:00 set PVTemp messen;; sleep 2;; get PVTemp temp
attr 1Wire_PVTemp verbose 0


Die Meldung ist der Inhalt von state 'temp 18.32'.
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: kpwg am 02 Juni 2015, 21:23:23
Da steht das sleep. Falls Du polling aktiv hast, kann es samt convert weg.
Wenn du ein aktuelles E6 kompilieren kannst- immer Polling versuchen. Das machts entspannter :)

Alternativ kann ich Dir auch eine aktuelle Version kompilieren, wenn ich die Daten dazu bekomme.
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: frober am 03 Juni 2015, 11:02:35
Danke für die Info, das neu kompilieren wollte ich vermeiden, wenn es aber nicht anders geht, mache ich das.

Trotzdem verstehe ich nicht, wieso die Meldung mit verbose 0 erscheint. Das sleep 2 ist doch kein Fehler.

Bei franky08 (siehe weiter oben) wird die Meldung durch verbose 0 unterdrückt.

Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: gero am 03 Juni 2015, 13:03:24
Lies mal die commandref zu sleep:
http://fhem.de/commandref_DE.html#sleep

Wenn du ein quiet hinter das sleep hängst, sollten die Meldungen nicht mehr auftauchen:

define 1Wire_PVTemp at +*00:02:00 set PVTemp messen;; sleep 2 quiet;; get PVTemp temp


Gruß,
Gero
Titel: Antw:ECDMDevice, Meldung im LOG "After sleep: temp 19.31"
Beitrag von: frober am 04 Juni 2015, 08:55:31
Super, danke für den Hinweis.

Schönen Feiertag,
Gruß Bernd