Sensor GT-WT-02 (Globaltronics via ALDI): Merkwürdige Sprünge

Begonnen von M_I_B, 13 Dezember 2015, 11:22:08

Vorheriges Thema - Nächstes Thema

M_I_B

Hallo liebe Leute,

vergangene Woche hatte ja ALDI diese schöne, bunte Wetterstation mit dem o.g. Aussensensor auf'm Grabbeltisch...

Das Einbinden des Sensors war erstmal nicht so wirklich ein Problem, wobei ich allerdings irritiert war ob der drei(!) Geräte, die AutoCreate angelegt hatte (AURIOL_166 CUL_TCM97001 CUL_TCM97001_166). Nichts desto weniger erhalte ich von "CUL_TCM97001" die erwarteten Daten T und H so wie gelegentlich (wohl einmal am Tag) von "CUL_TCM97001_166" Statusmeldungen bezgl. Batterie, Betriebsart und einen T- Duchschnittswert (sieht zumindest so aus).
Nichts desto weniger sehe ich heute morgen auf dem Graphen ziemlich große Sprünge, deren Herkunft ich mir nicht erklären kann. Anbei mal der Auszug aus dem LogFile und in der Anlage ein ScreenShot vom Graphen.

Frage ist nun, ob der Sensor einen Schuss weg hat oder ob das andere Anwender dieses Sensors auch (gelegentlich) erfassen können?

2015-12-13_10:10:32 AS.TH.2t T: 17.4 H: 66
2015-12-13_10:16:22 AS.TH.2t T: 17.5 H: 66
2015-12-13_10:22:12 AS.TH.2t T: 17.5 H: 65
2015-12-13_10:27:12 AS.TH.2t T: 20.8 H: 41  <---
2015-12-13_10:28:02 AS.TH.2t T: 17.5 H: 65
2015-12-13_10:28:52 AS.TH.2t T: 20.8 H: 41  <---
2015-12-13_10:33:02 AS.TH.2t T: 17.5 H: 65
2015-12-13_10:48:52 AS.TH.2t T: 20.8 H: 41  <---
2015-12-13_11:03:02 AS.TH.2t T: 17.7 H: 65
2015-12-13_11:05:32 AS.TH.2t T: 17.8 H: 65



Andi35

Ich habe von Aldi die "kleine" Wetterstation gekauft. Der Sensor ist SKL-W1B und bringt nur Temperaturdaten. Bei mir gibt es auch solche Sprünge, alle paar Stunden.
Den anderen Sensor von der großen Wetterstation, den Du hast, habe ich nicht anständig ans laufen bekommen. Der hat immer nur ein mal seine Werte gesendet. Und zwar nur dann, wenn ich den sync. Knopf auf dem Sensor gedrückt habe.
Ich vermute mal, das die Decodierung in der Firmware des CUL nicht 100%ig passt.
Vielleicht könnte sich das jemand ansehen?

M_I_B

... hmmm ...
Ich habe inzwischen 4 Stück dieser Sensoren und die tun alle ohne Probleme. Die senden im Übrigen nur dann, wenn sich was ändert. Bleibt T & H konstant, passiert nix.
Den "Schluckauf" haben die aber alle, mal mehr, mal weniger. Ich bin da aber noch nicht weiter, da ich z.Z. anderweitig eingebunden bin ...
BTW: Im Innern gibt es einen offenen Jumper- Anschluss als Mess/Prüfpunkt. Wenn man den überbrückt, senden die jede Sekunde ein Paket. Ist vielleicht mal interessant für netzversorgte Umbauten ...

Andi35

Mein Sensor sendet im Schnitt alle 5 Minuten ein Paket. Wenn er "Schluckauf" hat, denn sieht es so aus.

2015-12-29_10:19:01 Prologue_157 T: 6.1
2015-12-29_10:24:01 Prologue_157 T: 6.2
2015-12-29_10:29:01 Prologue_157 T: 6.2
2015-12-29_10:33:01 Prologue_157 T: 6.3
2015-12-29_10:38:01 Prologue_157 T: 6.4
2015-12-29_10:41:31 Prologue_157 T: 6.5
2015-12-29_10:44:01 Prologue_157 T: 6.6
2015-12-29_10:49:01 Prologue_157 T: 6.7
2015-12-29_10:54:31 Prologue_157 T: 6.7
2015-12-29_10:55:31 Prologue_157 T: 6.8
2015-12-29_10:57:31 Prologue_157 T: 6.7
2015-12-29_10:58:01 Prologue_157 T: 6.8
2015-12-29_11:01:01 Prologue_157 temperature: 51.2
2015-12-29_11:01:01 Prologue_157 humidity: 010
2015-12-29_11:01:01 Prologue_157 T: 51.2 H: 010
2015-12-29_11:07:31 Prologue_157 temperature: 51.2
2015-12-29_11:07:31 Prologue_157 humidity: 010
2015-12-29_11:07:31 Prologue_157 T: 51.2 H: 010
2015-12-29_11:11:01 Prologue_157 T: 7.1
2015-12-29_11:16:31 Prologue_157 T: 7.1
2015-12-29_11:23:01 Prologue_157 T: 7.2
2015-12-29_11:25:01 Prologue_157 T: 7.3
2015-12-29_11:26:31 Prologue_157 T: 7.4
2015-12-29_11:30:01 Prologue_157 T: 7.5
2015-12-29_11:33:01 Prologue_157 T: 7.6
2015-12-29_11:37:31 Prologue_157 T: 7.5
2015-12-29_11:42:31 Prologue_157 T: 7.6
2015-12-29_11:48:01 Prologue_157 T: 7.7
2015-12-29_11:53:31 Prologue_157 T: 7.7

Irgendwie scheint der CUL dann irgendwelche Werte falsch zu verstehen. Denn plötzlich ist da auch die Luftfeuchtigkeit dabei, die der Sensor ja garnicht kann.

M_I_B

... diese Langtexte filter ich eh aus; die kommen bei mir auch alle Nase lang ...
Das der im Langtext H mit anzeigt, kann gut sein. Ich denke, die verbauten µC's sind identisch. Und 10% Feuchte ist eher unwahrscheinlich in unseren Breitengraden ;) Gibt der denn immer die Kombi 51.2 / 10% beim Langtext? Hatte erst die Vermutung, das die 51.2 in F dargestellt sind; passt nicht ganz... wären dann 10.67°C

Andi35

Es gibt zwei verschiedene Sprünge. Ich hatte den Sensor zuerst einige Tage im Zimmer. Dort war die Durchschnittstemperatur immer so um 20 Grad. Dabei traten Sprünge in den Minusbereich auf, die immer dieselben Werte lieferte.

2015-12-25_21:39:56 Prologue_157 temperature: -25.6
2015-12-25_21:39:56 Prologue_157 humidity: 01
2015-12-25_21:39:56 Prologue_157 T: -25.6 H: 01
2015-12-25_21:41:26 Prologue_157 T: 21.5
2015-12-25_21:41:56 Prologue_157 T: -25.6 H: 01
2015-12-25_21:45:56 Prologue_157 temperature: -25.6
2015-12-25_21:45:56 Prologue_157 humidity: 01

Gestern habe ich den Sensor nach draußen verlegt, mit niedrigeren Temperaturen um die 8 Grad.

Dabei habe ich jetzt Sprünge auf 51.2 Grad. Auch hier immer gleichbleibend.

spikeh1

Ich habe mit meinen Sensoren (Logilink WS0002) das selbe Verhalten. Dachte schon an einen Defekt aber jetzt fast nicht mehr.
Getestet habe ich mit einem nanoCUL (a-culfw) und einem SignalDuino. Mit beiden ist es gleich. Somit schließe ich den CUL als Ursache aus.

Beobachten konnte ich, das es immer bei bestimmten Temperaturen auftritt.

Hier ein paar Auszüge aus meinem Log.



<< Steigende Temperatur >>
2015-12-29_15:37:58 th_wz temperature: 20.7
2015-12-29_15:41:10 th_wz temperature: 20.8
2015-12-29_15:42:55 th_wz temperature: -24.7 <-- 20.9 ?
2015-12-29_15:44:40 th_wz temperature: 21.0
2015-12-29_15:46:25 th_wz temperature: 21.1
.
.
.
2015-12-29_16:18:29 th_wz temperature: 22.4
2015-12-29_16:20:49 th_wz temperature: 22.5
2015-12-29_16:22:34 th_wz temperature: -24.7 <-- 22.6 ?
2015-12-29_16:23:44 th_wz temperature: 22.7
2015-12-29_16:26:04 th_wz temperature: 22.8

<< Fallende Temperatur >>
2015-12-29_23:29:30 th_wz temperature: 22.6
2015-12-29_23:33:00 th_wz temperature: 22.5
2015-12-29_23:36:30 th_wz temperature: -24.7 <-- 22.4 ?
2015-12-29_23:39:25 th_wz temperature: 22.3
2015-12-29_23:40:00 th_wz temperature: 22.2


Bei Temperaturen unterhalb 10°C habe ich ebenfalls Sprünge auf über 50°C. Betrifft ebenfalls immer bestimmte Temperaturen (Leider kein Log mehr vorhanden).

MfG

Andi35

Das ist ein Anhaltspunkt. Ist mir zuerst garnicht aufgefallen. Aber jetzt wo Du es sagst... Auch bei mir sind die Sprünge immer bei einer bestimmten Temperatur.
Die 51.2 werden bei real 6.9 Grad geliefert.

Die ganze Sache wäre ja auch kein großes Problem. Sieht eben nur auf dem Plot blöd aus.
Da ich nicht besonders viel von Programmierung verstehe, einfach mal die Frage in die Runde. Lässt sich dieser falsche Wert nicht irgendwie "wegfiltern" so nach dem Motto "wenn Temperaturabweichung von einem Paket zum nächsten Paket > 1Grad dann schreibe Wert nicht in Log".

spikeh1

#8
Ich habe für mich die Sache vorerst über ein userreading gelöst. Eine Möglichkeit zum Filtern ala "größer oder kleiner 5°C nicht loggen" wäre mir auch lieber aber da hänge ich zur Zeit fest (Perl-Anfänger). Ignoriere somit Temperaturen > 50°C und < 20°C.

Mein userreading:

log_temperature {
if ( ReadingsVal("SENSOR","temperature",0) < 50.0 and ReadingsVal("SENSOR","temperature",0) > -20.0) {
ReadingsVal("SENSOR","temperature",0);
}
}


SENSOR musst du anpassen.
Vielleicht nicht schön aber tut erstmal.  ;)

MfG

Andi35

Wie schon gesagt, ich bin da nicht so bewandert in der Sache. Wo muss ich denn dieses Userreading einfügen? Bei den Geräteeinstellungen des Sensors oder bei den Einstellungen für den Plot?

spikeh1

Zitat von: Andi35 am 30 Dezember 2015, 12:45:15
Wie schon gesagt, ich bin da nicht so bewandert in der Sache. Wo muss ich denn dieses Userreading einfügen? Bei den Geräteeinstellungen des Sensors oder bei den Einstellungen für den Plot?

Als Attribut (userReadings) des jeweiligen Sensors.

MfG

Andi35

Danke für den Tipp.
Mir ist da noch eine Sache aufgefallen.
Ich hatte anfangs einen "echten" CUL 868Mhz von Busware am laufen. Natürlich auf die feste Frequenz von 433.92 Mhz eingestellt um meine IT Fernsteuerungen auch empfangen zu können.
Nachdem ich den Aldi Sensor eingebunden hatte, lieferte dieser saubere Werte in dieser Form:

2015-12-11_13:20:22 Prologue_157 T: 17.1
2015-12-11_13:22:52 Prologue_157 temperature: 17.1
2015-12-11_13:22:52 Prologue_157 T: 17.1
2015-12-11_13:23:22 Prologue_157 temperature: 17.1


Dabei gab es keine Spitzen bei 21.6 Grad

Am 17.12. Habe ich begonnen meinen nanoCUL selbst zusammen zu löten und habe ihn in der Nacht zum laufen gebracht. Der Wechsel ist gut in der Log Datei zu sehen. Und damit fingen die Spitzen im Log auch an, sowie die veränderten Temperatureinträge.
Also doch ein Problem in der Firmware?


2015-12-17_16:06:30 Prologue_157 temperature: 18.6
2015-12-17_16:06:30 Prologue_157 T: 18.6
2015-12-17_16:07:30 Prologue_157 temperature: 18.6
2015-12-17_16:07:30 Prologue_157 T: 18.6
2015-12-18_00:14:15 Prologue_157 battery: ok
2015-12-18_00:14:15 Prologue_157 mode: normal
2015-12-18_00:14:15 Prologue_157 channel: 0
2015-12-18_00:14:15 Prologue_157 temperature: 22.2
2015-12-18_00:14:15 Prologue_157 T: 22.2
2015-12-18_00:14:45 Prologue_157 temperature: 22.1
2015-12-18_00:14:45 Prologue_157 T: 22.1
2015-12-18_00:15:15 Prologue_157 temperature: 22.0
2015-12-18_00:15:15 Prologue_157 T: 22.0
2015-12-18_00:15:45 Prologue_157 temperature: 21.9
2015-12-18_00:15:45 Prologue_157 T: 21.9
2015-12-18_00:16:15 Prologue_157 temperature: 21.8
2015-12-18_00:16:15 Prologue_157 T: 21.8
2015-12-18_00:16:45 Prologue_157 temperature: 21.7
2015-12-18_00:16:45 Prologue_157 T: 21.7
2015-12-18_00:17:15 Prologue_157 temperature: -25.6
2015-12-18_00:17:15 Prologue_157 humidity: 01
2015-12-18_00:17:15 Prologue_157 T: -25.6 H: 01
2015-12-18_00:17:45 Prologue_157 humidity: 01
2015-12-18_00:18:45 Prologue_157 T: 21.4
2015-12-18_00:20:15 Prologue_157 T: 21.3
2015-12-18_00:22:15 Prologue_157 T: 21.2



MFG Andi

spikeh1

Da kann ich nicht viel zu sagen. Habe nur den nanoCUL.
Soweit ich das aber verstanden habe, kann man den "echten" CUL von Busware auch mit der a-culfw flaschen.
Vielleicht wäre das mal ein Ansatz zum Testen ob es an der Firmware liegt.

MfG

Andi35

Ich hab mich mal in Deinen Code reingelesen und versucht ihn zu verstehen (bin auch Perl Anfänger)
Dabei ist folgendes raus gekommen.


plottemp { if (ReadingsVal ("Prologue_157","state",0) eq "T: 51.2 H: 010" ) {"T: 6.9"} else {(ReadingsVal ("Prologue_157","state",0))}}


Das liefert vorläufig erst mal den richtigen Wert an plottemp, wenn die Falsche Temperatur als 51.2°C geliefert wird. Momentan erst mal nur der niedrige Wert. Um den anderen kümmere ich mich dann wenns draußen wärmer wird.
Ich vermute mal, ein Profi schlägt die Hände über dem Kopf zusammen bei diesem Code, aber aller Anfang ist schwer. ;-)

christian-ruh

#14
Hallo zusammen,
ich hab nun auch das Problem mit Temperatursprünge runter auf -25,5°C und rauf auf über +50°C.
Gibt es eine Lösung in der Art: Wenn aktuell die Temperatur um mehr als 10°C von der letzten (im Logfile)abweicht nicht schreiben?
Also sowas: if ( ReadingsVal("SENSOR","temperature",0) < [letzter Wert im Logfile +10] OR  > [letzter Wert im Logfile -10] {ReadingsVal("SENSOR","temperature",0);
Oder so ähnlich.
Wäre schön.
Danke für Infos.
Gruß
Christian

Andi35

Diese Sensoren sind irgendwie Schrottkram. Ich hatte es mal eine ganze Zeit geschafft, die Fehlerwerte durch echte Werte zu ersetzen. Herausgekommen ist ein mehrzeiliger Code auf der Basis des von mir geposteten Versuchs.

plot_temperature { if (ReadingsVal ("Prologue_151","state",0) eq "T: 51.2 H: 07" ) {"T: 7.8"}
elsif (ReadingsVal ("Prologue_151","state",0) eq "T: 25.6 H: 08" ) {"T: 12.9"}
elsif (ReadingsVal ("Prologue_151","state",0) eq "T: -25.6 H: 014" ) {"T: 21.5"}
elsif (ReadingsVal ("Prologue_151","state",0) eq "T: 0.0 H: 09" ) {"T: 0.9"}
elsif (ReadingsVal ("Prologue_151","state",0) eq "T: -1.6 H: 011" ) {"T: -0.3"}
elsif (ReadingsVal ("Prologue_151","state",0) eq "T: -25.6 H: 02" ) {"T: 22.6"}
elsif (ReadingsVal ("Prologue_151","state",0) eq "T: 4.4 H: 20" ) {"T: 2.2"}
elsif (ReadingsVal ("Prologue_151","state",0) eq "T: 4.2 H: 20" ) {"T: 2.3"}
elsif (ReadingsVal ("Prologue_151","state",0) eq "T: 17.8 H: 20" ) {"T: 2.4"}
elsif (ReadingsVal ("Prologue_151","state",0) eq "T: 11.2 H: 20" ) {"T: 5.5"}
elsif (ReadingsVal ("Prologue_151","state",0) eq "T: 7.6 H: 20" ) {"T: 3.7"}
elsif (ReadingsVal ("Prologue_151","state",0) eq "T: 10.4 H: 20" ) {"T: 5.1"}
else {(ReadingsVal ("Prologue_151","state",0))}}


Allerdings war die Freude nur von kurzer Dauer. Irgendwie legt sich das Device nach einer Laufzeit von mehreren Tagen bis Wochen plötzlich per Autocreate wieder neu an, gibt sich dabei dann einen anderen Namen, und die ganze Arbeit war für die Katz. Zum einen weil die aufgezeichneten logs unbrauchbar werden, zum anderen sind nun die Temperatursprünge an ganz anderen Stellen.
Mit Perl mühe ich mich inzwischen regelmäßig ab, habe es aber noch nicht geschafft eine funktionsfähige Lösung zu finden.
Mir schwebt eine Lösung nach folgendem Schema vor.
Es wird bei Eintreffen der Werte überprüft, ob die Länge des "state" readings kleiner als 9 Zeichen ist.
Grund: wird im State nur die Temperatur übergeben, sieht das bei mir so aus "T: -12.5" Das deckt den gesamten positiven und negativen Bereich bis 99.9 Grad ab. Die Fehlerwerte werden im "state" Beispielsweise immer als "T: -25.9 H: 02" übergeben, und sind somit länger als 9 Zeichen. Also sollte in das userreading per Perlcode nur der Wert übernommen werden, welcher kleiner als 9 Zeichen ist, und somit Fehlerfrei, egal an welcher Stelle in der Temperatur die Sprünge auf treten.
Allein, mir fehlt das nötige Wissen um den Code zu basteln.
Vielleicht erbarmt sich einer der Perl Profis und hilft mir auf die Sprünge?

Ralf9

Zitat von: Andi35 am 04 April 2016, 21:30:36
Diese Sensoren sind irgendwie Schrottkram. Ich hatte es mal eine ganze Zeit geschafft, die Fehlerwerte durch echte Werte zu ersetzen. Herausgekommen ist ein mehrzeiliger Code auf der Basis des von mir geposteten Versuchs.

Ich hatte auch Probleme mit meinen GT-WT-02, evtl bringt dies etwas:
https://forum.fhem.de/index.php/topic,51795.msg435081.html#msg435081

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Andi35

@Ralf9

Danke, ich werds mal mit Deinen Dateien versuchen. Hab zwar nur die hälfte von dem verstanden was Du beschreibst, aber Versuch macht Kluch

Andi35

Hallo Ralf

Ich habs jetzt seit 4 Tagen mit Deinen modifizierten Dateien am laufen.
Erstes Ergebnis - keine Temperatursprünge mehr, hoffen wir das es so bleibt.
Meine Frage, wie ist das mit den "longids" gemeint?
Ich hab in den FHEM Anleitungen nur gefunden, das man im CUL, welcher die Daten des Sensors empfängt, als Attribut "longids" den Wert "NAME" (in meinem Fall Prologue_145) aus den Internals des Sensors übergibt.

Das habe ich gemacht. Nach einem Batteriewechsel hatte ich aber trotzdem wieder einen anderen Device Namen.

Ist das jetzt richtig, oder was muss ich als longids eintragen?

Zur Auswahl stehen folgende Möglichkeiten:
DEF - CUL_TCM97001_145
NAME - Prologue_145
TYPE - CUL_TCM97001

Hast Du einen Tip?




Ralf9

Zitat von: Andi35 am 09 April 2016, 12:57:13
Meine Frage, wie ist das mit den "longids" gemeint?
Das habe ich gemacht. Nach einem Batteriewechsel hatte ich aber trotzdem wieder einen anderen Device Namen.
Ist das jetzt richtig, oder was muss ich als longids eintragen?

longids sind beim 14_CUL_TCM97001 Modul per default aktiv. Du must nichts eintragen. das Attribut "longids" ist dafür nicht notwendig.
Der DEF Code setzt sich dabei aus "CUL_TCM97001_" + ID zusammen. Die ID ändert sich bei jedem Batteriewechsel.


BTW: Dies ist die falsche Gruppe.
@ M_I_B  Du kannst es als Themenstarter in die richtige Gruppe (wie z.B. "Sonstiges" oder   "CUL Hard- und Firmware") verschieben.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Andi35

@Ralf9 Danke für die Aufklärung.
@ M_I_B Entschuldigung für mein Abschweifen ins OT. Hatte sich einfach so entwickelt. Ich hoffe Du nimmst es mir nicht übel.