Selbstbau HM_WDS10_TH_O mit Luftdruckmessung

Begonnen von trilu, 23 Februar 2014, 12:23:22

Vorheriges Thema - Nächstes Thema

Dirk

#330
Hi Nico, das klingt ja ganz gut.

Bei mir und beim hexenmeister gibt es auch mit dem 0.5er noch hänger.
Das versuche ich noch zu analysieren.
Wie viele HM-Geräte hast du denn die noch so rumfunken?
Ich verfolge grade die Theorie das es beim Empfang und beim Interpretieren der Pakete von anderen HM-Geräten Probleme gibt.
Wenn nur ein Sensor läuft, schein es keine Probleme zu geben, Läuft ein weitere, kommt es bei einem von beiden zu Ausfällen.

Solange die LED am Sensor ca. alle 2-3 min. kurz blinkt, sendet der auch was.
Wie lange lief deiner bisher?

Gruß
Dirk

betateilchen

Wenn es nach der Anzahl der sonstigen HM Geräte gehen würde, müsste mein Sensor schon längst eingefroren sein  8)

Bisher keine Ausfälle bei meinem Sensor zu vermelden, ok, der hat auch nur den BMP180 an Bord. Aber vielleicht ist es ja auch gar kein Problem der Firmware, sondern der benutzten I2C Komponenten?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk

Zitat von: betateilchen am 10 April 2014, 22:54:19
Wenn es nach der Anzahl der sonstigen HM Geräte gehen würde, müsste mein Sensor schon längst eingefroren sein  8)

ZitatAber vielleicht ist es ja auch gar kein Problem der Firmware, sondern der benutzten I2C Komponenten?
Daran hatte ich auch schon gedacht und den Code für den Helligkeitssensor deaktiviert.
Das hatte auch keine Besserung gebracht.
Bei meinen Selbstbau-Tastern habe ich ab und zu auch hänger. Da gibt es keine I2C-Teile.
Daher tippe ich im Moment auf Probleme vom Code.

Es kann aber auch irgendeine Kombination aus Sensoren und Funkdecodierung sein.

Zur Not werde ich den Reset vom Watchdog vom AVR noch aktivieren.
Dazu muss aber ein neuer Bootloader auf den AVR. Daher würde ich das gerne vermeiden wenn es geht.

Thorsten Pferdekaemper

Hi,
ich krieg das Ding einfach nicht zum Fliegen...
Zitat von: Dirk am 09 April 2014, 23:14:04
Der Eventmonitor zeiht auch nix an?
Im Eventmonitor finde ich das hier:
2014-04-10 23:18:39 HMLAN HMLAN1 cond: timeout
2014-04-10 23:18:39 HMLAN HMLAN1 Xmit-Events: timeout:1
2014-04-10 23:18:39 HMLAN HMLAN1 prot_timeout: last
2014-04-10 23:18:39 HMLAN HMLAN1 DISCONNECTED
2014-04-10 23:18:39 HMLAN HMLAN1 cond: disconnected
2014-04-10 23:18:39 HMLAN HMLAN1 Xmit-Events: disconnected:1
2014-04-10 23:18:39 HMLAN HMLAN1 prot_disconnected: last

Das passiert immer kurz nachdem die rote LED mal kurz leuchtet.
Ich habe jetzt beim Pairen mal per Serial Monitor mitgeloggt. Da kommt das hier dabei raus:

<- 1A 01 A2 00 42 43 44 23 A3 F4 05 00 3D 4B 45 51 30 30 30 34 35 36 37 70 03 01 00 (l:27) (44296)
-> NA (44990)
-> 10 25 A0 01 23 A3 F4 42 43 44 00 05 00 00 00 00 00 (l:17) (46017)
<- 0A 25 80 02 42 43 44 23 A3 F4 00 (l:11) (46025)
-> NA (46719)
-> 13 26 A0 01 23 A3 F4 42 43 44 00 08 02 01 0A 23 0B A3 0C F4 (l:20) (47282)
<- 0A 26 80 02 42 43 44 23 A3 F4 00 (l:11) (47294)
-> 0B 27 A0 01 23 A3 F4 42 43 44 00 06 (l:12) (47587)
<- 0A 27 80 02 42 43 44 23 A3 F4 00 (l:11) (47593)
-> 10 28 A0 01 23 A3 F4 42 43 44 00 04 00 00 00 00 00 (l:17) (47888)
-> 10 28 A0 01 23 A3 F4 42 43 44 00 04 00 00 00 00 00 (l:17) (48087)
-> 10 28 A0 01 23 A3 F4 42 43 44 00 04 00 00 00 00 00 (l:17) (48286)
-> NA (48290)
<- 16 28 A0 10 42 43 44 23 A3 F4 02 01 00 02 01 0A 23 0B A3 0C F4 00 00 (l:23) (48302)
-> 0A 28 80 02 23 A3 F4 42 43 44 00 (l:11) (48439)
-> 0B 29 A0 01 23 A3 F4 42 43 44 01 03 (l:12) (48796)
<- 0E 29 A0 10 42 43 44 23 A3 F4 01 00 00 00 00 (l:15) (48802)
-> 0A 29 80 02 23 A3 F4 42 43 44 00 (l:11) (48945)
<- 1C 02 A2 70 42 43 44 23 A3 F4 00 E8 30 03 F0 00 00 0F 82 09 68 00 00 13 39 00 00 09 40 (l:29) (180706)
-> NA (181399)

Per "set HMLAN1 logIDs all,sys" bekomme ich das hier:
2014.04.10 23:13:01.453 0: HMLAN_Send:  HMLAN1 I:K
2014.04.10 23:13:01.461 0: HMLAN_Parse: HMLAN1 V:03C1 sNo:KEQ0851839 d:23A3F4 O:23A3F4 t:0001FC6B IDcnt:0000
2014.04.10 23:13:26.460 0: HMLAN_Send:  HMLAN1 I:K
2014.04.10 23:13:26.468 0: HMLAN_Parse: HMLAN1 V:03C1 sNo:KEQ0851839 d:23A3F4 O:23A3F4 t:00025E1D IDcnt:0000
2014.04.10 23:13:51.473 0: HMLAN_Send:  HMLAN1 I:K
2014.04.10 23:13:52.479 0: HMLAN_Send:  HMLAN1 I:K
2014.04.10 23:13:53.484 0: HMLAN_Send:  HMLAN1 I:K
2014.04.10 23:13:54.489 0: HMLAN_Send:  HMLAN1 I:K
2014.04.10 23:13:55.494 1: HMLAN_Parse: HMLAN1 new condition timeout
2014.04.10 23:13:55.527 1: 192.168.178.152:1000 disconnected, waiting to reappear
2014.04.10 23:13:55.544 1: HMLAN_Parse: HMLAN1 new condition disconnected
2014.04.10 23:14:00.569 1: 192.168.178.152:1000 reappeared (HMLAN1)
2014.04.10 23:14:00.571 0: HMLAN_Send:  HMLAN1 I:A23A3F4
2014.04.10 23:14:00.573 0: HMLAN_Send:  HMLAN1 I:C
2014.04.10 23:14:00.576 0: HMLAN_Send:  HMLAN1 I:Y01,00,
2014.04.10 23:14:00.578 0: HMLAN_Send:  HMLAN1 I:Y02,00,
2014.04.10 23:14:00.580 0: HMLAN_Send:  HMLAN1 I:Y03,00,
2014.04.10 23:14:00.583 0: HMLAN_Send:  HMLAN1 I:T1AD9C618,04,00,00000000
2014.04.10 23:14:00.585 1: HMLAN_Parse: HMLAN1 new condition init
2014.04.10 23:14:00.614 0: HMLAN_Send:  HMLAN1 S:S4D7D7D6A stat:  00 t:00000000 d:01 r:4D7D7D6A m:99 8112 23A3F4 000001
2014.04.10 23:14:00.640 0: HMLAN_Parse: HMLAN1 V:03C1 sNo:KEQ0851839 d:23A3F4 O:23A3F4 t:0000203A IDcnt:0000
2014.04.10 23:14:00.645 0: HMLAN_Parse: HMLAN1 R:R4D7D7D6A stat:0002 t:00000000 d:FF r:7FFF     m:99 8112 23A3F4 000001
2014.04.10 23:14:00.646 1: HMLAN_Parse: HMLAN1 new condition ok
2014.04.10 23:14:02.754 0: HMLAN_Parse: HMLAN1 R:E21F923   stat:0000 t:000028B7 d:FF r:FFBC     m:A4 8610 21F923 000000 0A90C30E0010

Ich habe das Teil auch neu geflasht. Ein list ergibt jetzt das hier:
Internals:
   DEF        424344
   HMLAN1_MSGCNT 8
   HMLAN1_RAWMSG R4D75285E,0001,0001FCD3,FF,FFC0,06A01042434423A3F40100000000
   HMLAN1_RSSI -64
   HMLAN1_TIME 2014-04-10 23:04:54
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     8
   NAME       CUL_HM_HM_WDS10_TH_O_424344
   NR         85
   STATE      ???
   TYPE       CUL_HM
   lastMsg    No:06 - t:10 s:424344 d:23A3F4 0100000000
   protLastRcv 2014-04-10 23:04:54
   protSnd    9 last_at:2014-04-10 23:04:54
   protState  CMDs_done
   rssi_at_HMLAN1 avg:-64.37 min:-66 max:-64 lst:-64 cnt:8
   Readings:
     2014-04-10 23:04:51   Activity        alive
     2014-04-10 23:04:53   CommandAccepted yes
     2014-04-10 23:04:51   D-firmware      0.5
     2014-04-10 23:04:51   D-serialNr      KEQ0004567
     2014-04-10 23:04:54   PairedTo        0x23A3F4
     2014-04-10 23:04:54   R-burstRx       off
     2014-04-10 23:04:54   R-pairCentral   0x23A3F4
     2014-04-10 23:04:54   RegL_00:          01:00 02:01 0A:23 0B:A3 0C:F4 00:00
   Helper:
     cSnd       0123A3F44243440103
     mId        003D
     peerIDsRaw ,00000000
     rxType     132
     Io:
       newChn     +424344,00,01,1E
       nextSend   1397163894.71136
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Q:
       qReqConf   
       qReqStat   
     Role:
       chn        1
       dev        1
     Rpt:
       IO         HMLAN1
       flg        A
       ts         1397163894.7051
       ack:
         HASH(0x10697d0)
         06800223A3F442434400
     Rssi:
       At_hmlan1:
         avg        -64.375
         cnt        8
         lst        -64
         max        -64
         min        -66
     Shadowreg:
Attributes:
   IODev      HMLAN1
   actCycle   000:10
   actStatus  alive
   autoReadReg 4_reqStatus
   expert     2_full
   firmware   0.5
   model      HM-WDS10-TH-O
   peerIDs    00000000,
   room       CUL_HM
   serialNr   KEQ0004567
   subType    THSensor


Tja, was tun?
Gruß,
    Thorsten
FUIP

hexenmeister

@Dirk
Die letzte 5 Sekunden-TestVersion läuft immer noch (und erzeugt megamäßige logs :) ). Mal sehen, ob sie die Nacht übersteht.

Grüße,
Alexander

Dirk

@Thorsten
Versuche das Teil mal manuell anzulegen:


define WeatherSensor2 CUL_HM 6FB75E
attr WeatherSensor2 IODev CUL
attr WeatherSensor2 actCycle 000:10
attr WeatherSensor2 autoReadReg 4_reqStatus
attr WeatherSensor2 expert 2_full
attr WeatherSensor2 firmware 0.5
attr WeatherSensor2 model HM-WDS10-TH-O
attr WeatherSensor2 peerIDs.
attr WeatherSensor2 serialNr TLU0001002
attr WeatherSensor2 subType THSensor


Bei IODev, 6FB75E und TLU0001002 solltest du dann deine Daten eingeben.
Und dann beobachte mal den Eventmonitor

Zitat von: hexenmeister am 10 April 2014, 23:31:21
Die letzte 5 Sekunden-TestVersion läuft immer noch (und erzeugt megamäßige logs :) ). Mal sehen, ob sie die Nacht übersteht.
Na mal sehen.
Meiner läuft auch noch.

santalaus

Hallo Dirk,

bei mir senden 10 Hm Geräte rum. Wobei unter Alive nur 7 in Fhem stehen ???
Den HM-USB hab ich erst seit 1,5 Monaten, vorher nutze ich den CUL, da hatte ich keinen Aussetzer beim übertragen.
Mal sehen.

Der Sensor ist bei den Versionen <0.5 ca 2-3 Tage gelaufen. Bei der 0.5 hatte ich den Absturz wohl heute während der HM weg war. bin aber nicht sicher.
Da läuft nun wieder der Test. Die Helligkeitsdaten sehen besser aus aber die anderen Werte sind heute bei mir "zappeliger" als mit den vorherigen SW Versionen kann aber Zufall sein.
(Siehe Anhang)

Nico

Dirk

Hi Nico,
Zitat
Die Helligkeitsdaten sehen besser aus aber die anderen Werte sind heute bei mir "zappeliger" als mit den vorherigen SW Versionen kann aber Zufall sein.
Ich denke das sind normale Schwankungen
Beim Luftdruck habe ich auch mit anderen Sensoren öfffters mal "Zappler" um die +/- 1 hPa
Bei Luftdruck und Temperatur schätze ich das Ähnlich ein.
Stell deine Skalen mal so ein, dass die einen Größeren Bereich abdecken. Dann "zappelt" das nicht mehr so sehr.

Gruß
Dirk

hexenmeister


Dirk

Zitat von: hexenmeister am 11 April 2014, 05:54:31
Ganz kurz: meiner läuft immer noch!  :D
Meine beiden auch.
Ich habe jetzt vermutlich auch eine Lösung gefunden und eine Erklärung warum es hier bei einigen funktioniert.

Der AVR bekommt vom C1101, wenn in dessen Empfangspuffer Daten stehen, einen Interrupt.
In der zugehörige ISR (Interupt Service Routine) wird das Auslesen des CC1101 und das decodieren der Daten vorgenommen.
Und das ist recht viel Code der entsprechend viel Zeit verbraucht.
Während der Code in der ISR ausgeführt wird, werden alle anderen Interrupts blockiert. Und vor allem im Timer0 werde Counter gezählt die nicht unwichtig sind.
Und wenn diese Counter nicht stimmen, kann viel Unsinn passieren.

Da das ganze natürlich nur Auswirkungen hat wenn wirklich Daten im CC1101 zur Abholung bereit liegen erklärt auch, warum dieses Problem nur auftritt, wenn in der Umgebung andere HM Geräte Senden.

Da in der "normalen" Firmware der Sensor nur alle 2-3 Min. aktiv ist, und somit nur dann in einem kurzen Zeitfenster für das ACK der Zentrale und für Daten anderer Geräte empfangsbereit ist, ist die Wahrscheinlichkeit recht gering dass es in dieser Zeit zu Störungen kommt. Vor allem da andere Geräte ja nur relativ selten Senden.

Die Test Firmware sendet alle 5 Sekunden. Und davon habe ich zwei hier liegen. Da ist die Wahrscheinlichkeit dass sich die beiden Sensoren gegenseitig stören natürlich entsprechend hoch.

Bei mir zu Hause habe ich noch eine HM-ES-PMSw1-Pl (Funksteckdose mit Energiemessung). Diese sendet recht häufig die Energiedaten zur Zentrale dürfte der Sensor, auch wenn er nur im 2-3 Min. Raster sendet deutlich öfters "gestört" werden.

@hexenmeister
Hast du zufällig auch so ein Teil in Betrieb, oder andere Geräte die recht häufig senden?

@Betateilchen und santalaus
Habt ihr so ein Teil?

Ich habe den Code mal entsprechend umgebaut.
Dieser sendet zum testen wieder im 5 Sekunden raster. Hier ist der Link:
https://www.dropbox.com/s/s7oejqy5exa459x/WetterSensor_test3.hex

Gruß
Dirk

santalaus

Hallo Dirk,

ich habe die gleiche Funksteckdose einmal.
Dazu
5* HM-CC-RT-DN
1* HM-LC-Dim1TPBU-FM
1* HM-LC-Sw1PBU-FM
1* HM-LC-Sw2-FM

Nico

Dirk

Zitat von: santalaus am 11 April 2014, 10:22:35
ich habe die gleiche Funksteckdose einmal.
Wie oft sendet die?
Bei mir komme ich auch schon mal auf 15 Sek.

betateilchen

Ich habe hier insgesamt über 50 HM-Komponenten im Einsatz, davon auch mehrere dieser Leistungsmesssteckdosen.

Das beeindruckt Deine Sensorplatine hier aber überhaupt nicht.

Kann mir mal jemand ein "list <sensorDevice>" posten - vielleicht gibt es einfach in der Anlage des Sensors selbst Optimierungsmöglichkeiten.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: Dirk am 11 April 2014, 10:28:20
Wie oft sendet die?
Bei mir komme ich auch schon mal auf 15 Sek.

Das kannst Du doch einstellen?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dirk

Zitat von: betateilchen am 11 April 2014, 10:30:24
Das kannst Du doch einstellen?
Daher die Frage.

Mal abwarten was die Tests jetzt bringen. Die Interrupt-Problematik war jedenfalls existent. Ob die der Auslöser für das Problem ist, wird sich im Test der nächsten Stunden / Tage zeigen.
Wenn du willst kannst du ja mal die "WetterSensor_05_test" testen. Hier sendet der Sensor alle 5 Sek. Und ist danach auch kurz anfällig für das Problem.
Im "normalen" Modus dauert es deutlich länger bis der hängen bleibt.