HM-WDS100-C6-O-2

Begonnen von discoebbe, 24 April 2017, 09:06:11

Vorheriges Thema - Nächstes Thema

discoebbe

So, nach langem stillem mitlesen will ich nun mal aktiv werden. Ich habe mir die Wetterstation HM-WDS100-C6-O-2 zugelegt. Anlernen an vccu kein Problem. Wetterdaten werden schön an FHEM gesendet. Ab jetzt wird's schwierig.

Problem 1: Ein direktes peeren mit meinen Jalousieaktoren (6 Stück) geht irgendwie gar nicht (set Wetterstation peerchan 1 <JalousieAktorName> single set). Der Jalousieaktor setzt das Peer manchmal aber nur im Aktor und nicht in der Wetterstation. Ein Trigger erfolgt dann laut log auch, aber die Jalousie macht nichts.

Problem 2: Sturmerkennung. Das geht mal gar nicht. Wenn ich das Model auf HM-WDS100-C6-O manuell umstelle bekomme ich zumindest storm:quiet geliefert wenn wirklich vom Sensor 00 gesendet wird. "storm:storm" bekomme ich nur wenn ich sehr stark am Sensor das Windrad anpuste (Fön) so dass der Sensor C8 (200) sendet. Alles dazwischen ergibt dann nur noch "storm:-". Ich gehe mal davon aus, dass es an der Firmware liegt. Evtl. hat die Wetterstation in Früheren Stationen immer 200 bei Sturm gesendet und nun sendet sie allerdings eine Wert zw. 0 und 255. Wenn ich das Attribut model wieder auf HM-WDS100-C6-O-2 stelle bekomme ich "storm:unknown+HEX" zurück. Ich habe das nun mal quick and dirty in der 10_CUL_HM.pm angepasst so dass ich wenigstens den dezimal Wert ohne unknown bekomme. Allerdings fliegt das ja bei jedem FHEM Update wieder raus. 10_CUL_HM.pm Zeile 1466: {else $txt = "unknown:$state"}habe ich in:{else $txt = hex($state)} geändert. So kann ich aktuell in einem notify wenigstens auf die Sturmwerte reagieren.

Wie kann man das verbessern, oder bin ich einfach nur zu blöd das ding zu implementieren :-)?

Habbi

die Antworten würden mich auch interessieren.

alru

Zu den Problemen 1+2:
In der Version -2 der Wetterstation gibt es die Schwellwerterkennung für Sturm nicht mehr. Die Station sendet ihre Sensordaten nur noch alle 2-3 Minuten. Die Erkennung von Windböen ist damit zuverlässig nicht möglich.
Damit ist m.M. auch ein peering (wie im Wiki beschrieben) mit dieser Version nicht mehr möglich. Eigene Versuche haben das zumindest (leider) bestätigt.

Ich hätte die Funktion aber auch gerne ...
Gruß,

Stefan
(Raspi 3B - Stretch / HM-LGW / HomeMatic / MySensors)

discoebbe

ZitatIn der Version -2 der Wetterstation gibt es die Schwellwerterkennung für Sturm nicht mehr. Die Station sendet ihre Sensordaten nur noch alle 2-3 Minuten.
Das ist so nicht richtig. Wenn man das Windrad ordentlich beschleunigt sendet die HM-WDS100-C6-O-2 sofort einen Wert an die vccu und auch einen Trigger an die peers. Die interne Sturmerkennung ist also vorhanden. Ich kann es ja wie gesagt mit meinem Hack in der 10_CUL_HM auch auswerten und via Notify dann die Jalousien fahren. Ich würde nur gern den Umweg über fhem vermeiden...

alru

Zitat von: discoebbe am 24 April 2017, 13:43:02
Das ist so nicht richtig. ...
Dann werde ich wohl meine manuellen Tests wiederholen und heute Abend mal "am Rad drehen"...
Gruß,

Stefan
(Raspi 3B - Stretch / HM-LGW / HomeMatic / MySensors)

discoebbe

#5
Du wirst in den Logs dann ein event finden mit dem Wert "unknown:HEX", je nachdem wie schnell du drehst. Hier mal ein Auzug aus meinen Logs, als ich die Wetterstation (vor unzähligen Resets) sogar mal mit den Jalousie Aktoren gepeert hatte:

2017-04-17_00:52:30 Wetterstation storm: unknown:22
2017-04-17_00:52:30 Wetterstation trig_01: JalousieEsszimmerSued
2017-04-17_00:52:30 Wetterstation trigger_cnt: 15
2017-04-17_00:52:30 Wetterstation storm: unknown:22
2017-04-17_00:52:30 Wetterstation trig_01: JalousieKueche
2017-04-17_00:52:30 Wetterstation trigger_cnt: 7
2017-04-17_00:52:30 Wetterstation storm: unknown:22
2017-04-17_00:52:30 Wetterstation trig_01: JalousieGalerie
2017-04-17_00:52:30 Wetterstation trigger_cnt: 7
2017-04-17_00:52:31 Wetterstation storm: unknown:22
2017-04-17_00:52:31 Wetterstation trig_01: JalousieEsszimmerWest
2017-04-17_00:52:31 Wetterstation trigger_cnt: 7
2017-04-17_00:52:31 Wetterstation storm: unknown:22
2017-04-17_00:52:31 Wetterstation trig_01: JalousieWohnzimmer
2017-04-17_00:52:31 Wetterstation trigger_cnt: 7
2017-04-17_00:52:31 Wetterstation storm: unknown:22
2017-04-17_00:52:31 Wetterstation trig_01: JalousieGast
2017-04-17_00:52:31 Wetterstation trigger_cnt: 7


Aktuell habe ich das "unknown" rausgepatcht und den HEX lasse ich als Dezimalzahl ausgeben. Ich tippe mal das da ein Wert zwischen 0 und 255 ausgegeben wird. Wenn die simulierte Windgeschwindigkeit mit dem Fön so um die 40-50 km/h ist kommt da ein Dezimalwert von 15 - 20 raus. Das passt auch gut zu den Schwellenwerten (Threshold) die man beim Vorgänger gewählt hat...

alru

So, ich habe nun tatsächlich 3 Föhne auf den Anemometer gerichtet: Mehr als 62,7 km/h habe ich nicht erreicht. Das "unknown" - Reading hat sich auch nicht geändert.
Ich kann das also leider nicht nachvollziehen...
Gruß,

Stefan
(Raspi 3B - Stretch / HM-LGW / HomeMatic / MySensors)

discoebbe

Stell mal manuell das Attribut "Model" auf "HM-WDS100-C6-O" und wiederhole deinen Versuch... Ich kann leider nicht mehr alles nachvollziehen, aber ich hatte am Tag der ersten Inbetriebnahme vor lauter Verzweiflung an vielen Schrauben gedreht. Dann Irgendwann auch ein Peer hinbekommen (welches die Jalousie sogar einmal geschlossen hat statt sie zu öffnen). Dabei war das Attribut Model auch auf "HM-WDS100-C6-O" gestellt. Wahrscheinlich wurden dadurch doch ein paar Register in die Wetterstation geschrieben und seitdem sendet sie mir Sturm-Werte sofort... Ich geh auch gleich nochmal mit dem Fön ran...

discoebbe

Also es scheint so zu sein... Ich habe eben wieder "erfolgreich" ein Rollo mit der Wetterstation gepeert es kommen triggers abgesetzt die gilt es nun nur noch auszuführen. Hier mal ein List von meiner Wetterstation:

Internals:
   DEF        4DC2F4
   HMLAN1_MSGCNT 1414
   HMLAN1_RAWMSG E4DC2F4,0000,2F24A350,FF,FFA3,AF80104DC2F428651F020532060F07050A010000
   HMLAN1_RSSI -93
   HMLAN1_TIME 2017-04-24 21:52:28
   HMLAN2_MSGCNT 1522
   HMLAN2_RAWMSG RA185C061,0001,868FFD4D,FF,FFA3,B080104DC2F428651F020532061407050A010000
   HMLAN2_RSSI -93
   HMLAN2_TIME 2017-04-24 21:52:29
   IODev      HMLAN2
   LASTInputDev HMLAN2
   MSGCNT     2936
   NAME       Wetterstation
   NOTIFYDEV  global
   NR         282
   NTFY_ORDER 50-Wetterstation
   STATE      Temperatur: 10.7 °C, Feuchtigkeit: 51 %, Helligkeit: 0, Regen: 1.18 mm/qm, Wind: 53.4 km/h,  Richtung: 55
   TYPE       CUL_HM
   lastMsg    No:B0 - t:10 s:4DC2F4 d:28651F 020532061407050A010000
   peerList   RolloBueroArbeiten,
   protCmdDel 8
   protLastRcv 2017-04-24 21:52:29
   protResnd  6 last_at:2017-04-24 10:16:09
   protResndFail 4 last_at:2017-04-24 09:46:16
   protSnd    28 last_at:2017-04-24 21:52:28
   protState  CMDs_done
   rssi_at_HMLAN1 min:-94 lst:-93 cnt:1414 max:-67 avg:-75.21
   rssi_at_HMLAN2 avg:-78.24 max:-71 cnt:1522 lst:-93 min:-97
   Readings:
     2017-04-24 21:52:27   CommandAccepted yes
     2017-04-24 21:52:27   PairedTo        0x28651F
     2017-04-24 21:52:29   R-RolloBueroArbeiten_chn-01-stormLowThresh 5
     2017-04-24 21:52:29   R-RolloBueroArbeiten_chn-01-stormUpThresh 20
     2017-04-24 21:52:29   R-RolloBueroArbeiten_chn-01-sunThresh 50
     2017-04-24 21:50:11   R-burstRx       off
     2017-04-24 10:17:25   R-pairCentral   0x28651F
     2017-04-24 21:52:28   R-stormLowThresh 5
     2017-04-24 21:52:28   R-stormUpThresh 15
     2017-04-24 21:50:12   R-sunThresh     50
     2017-04-24 21:52:27   RegL_00.          01:00 02:01 0A:28 0B:65 0C:1F 18:00 00:00
     2017-04-24 21:52:28   RegL_01.          05:32 06:0F 07:05 0A:01 00:00
     2017-04-24 21:52:29   RegL_01.RolloBueroArbeiten_chn-01   05:32 06:14 07:05 0A:01 00:00
     2017-04-24 21:52:26   brightness      0
     2017-04-24 21:52:26   humidity        51
     2017-04-24 21:52:26   isRaining       0
     2017-04-24 21:52:28   peerList        RolloBueroArbeiten,
     2017-04-24 21:52:26   rain            1.18
     2017-04-24 21:52:26   state           T: 10.7 H: 51 W: 53.4 R: 1.18 IR: 0 WD: 55 WDR: 67.5 S: 53 B: 0
     2017-04-24 21:45:22   storm           21
     2017-04-24 21:52:26   sunshine        53
     2017-04-24 21:52:26   temperature     10.7
     2017-04-24 21:45:22   trig_01         RolloBueroArbeiten
     2017-04-24 21:45:22   trigger_cnt     28
     2017-04-24 21:50:12   unknown         0400000000000105320A010000
     2017-04-24 21:52:26   windDirRange    67.5
     2017-04-24 21:52:26   windDirection   55
     2017-04-24 21:52:26   windSpeed       53.4

discoebbe

#9
So. nun bin ich dem ganzen wohl auf der Spur. Folgende Triggers habe ich am Jalousie-Aktor erhalten:


2017-04-24_22:14:57 RolloBueroArbeiten trigLast: Wetterstation:30
2017-04-24_22:14:57 RolloBueroArbeiten trig_Wetterstation: 30_31
2017-04-24_22:14:57 RolloBueroArbeiten deviceMsg: 80 (to Wetterstation)
2017-04-24_22:14:57 RolloBueroArbeiten level: 80
2017-04-24_22:14:57 RolloBueroArbeiten motor: stop:80
2017-04-24_22:14:57 RolloBueroArbeiten pct: 80
2017-04-24_22:14:57 RolloBueroArbeiten 80
2017-04-24_22:14:57 RolloBueroArbeiten timedOn: off


Das ist ja schonmal gut. Ich glaube er fährt die Jalousie nicht auf 100% da der Wert im Trigger nicht 200 ist sondern der tatsächlich gemessene Wert (hier im Beispiel 30), ohne eine Schwelle zu beachten und den Wert auf 200 aufzurunden.
Wer kann mir sagen wie ich die Reatkion auf den Trigger am Jalousie-Aktor ändern kann, damit er auch bei Werten ab 20 auf 100% fährt?

alru

Ich bin leider erst mal für kurze Zeit raus ... das Filesystem auf der SD-Card hat es zerlegt. Mein Raspi wurde immer langsamer, dann habe ich einen Reboot gemacht, nun gibt es ausreichend Fehlermeldungen beim Booten. Ich muss jetzt erst mal eine neue SD-Card besorgen und die Backups einspielen.

Wenn alles wieder läuft, steige ich wieder mit Tests ein.
Gruß,

Stefan
(Raspi 3B - Stretch / HM-LGW / HomeMatic / MySensors)

discoebbe

Es geht voran. Vorab: Die Jalousie erhält nun bei Sturm sofort einen Trigger und sie geht auch auf  ;) . Wie ich das implementiert habe ist aber garantiert falsch, aber es soll den Stein mal weiter ins Rollen bringen damit hier am Ende eine Lösung für alle entsteht die diese Wetterstation gern direkt mit den Jalousien peeren möchten.

Also ich bin wie folgt vorgegangen:

1. Attribute model der HM-WDS100-C6-O-2 manuel gelöscht und auf HM-WDS100-C6-O geändert
2. Mit Jalousie gepeert (set Wetterstation peerchan 1 <JalousieAktorName> single set)
3. Problem mit Trigger Wert kleiner als 200 (trigLast: Wetterstation:25) wie folgt gelöst:

Bei der Jalousie habe ich Register: lgCtValLo, shCtValLo, lgCtValHi, shCtValHi, lgOffLevel und shOffLevel wie folgt (siehe Auszug aus get reg all) geändert:

3:Wetterstation_chn-01 lgActionType     :jmpToTarget
   3:Wetterstation_chn-01 lgBlJtDlyOff     :refOff
   3:Wetterstation_chn-01 lgBlJtDlyOn      :refOn
   3:Wetterstation_chn-01 lgBlJtOff        :dlyOn
   3:Wetterstation_chn-01 lgBlJtOn         :dlyOff
   3:Wetterstation_chn-01 lgBlJtRampOff    :off
   3:Wetterstation_chn-01 lgBlJtRampOn     :on
   3:Wetterstation_chn-01 lgBlJtRefOff     :off
   3:Wetterstation_chn-01 lgBlJtRefOn      :on
   3:Wetterstation_chn-01 lgCtDlyOff       :geLo
   3:Wetterstation_chn-01 lgCtDlyOn        :geLo
   3:Wetterstation_chn-01 lgCtOff          :geLo
   3:Wetterstation_chn-01 lgCtOn           :geLo
   3:Wetterstation_chn-01 lgCtRampOff      :geLo
   3:Wetterstation_chn-01 lgCtRampOn       :geLo
   3:Wetterstation_chn-01 lgCtRefOff       :geLo
   3:Wetterstation_chn-01 lgCtRefOn        :geLo
   3:Wetterstation_chn-01 lgCtValHi        :15
   3:Wetterstation_chn-01 lgCtValLo        :100
   3:Wetterstation_chn-01 lgDriveMode      :direct
   3:Wetterstation_chn-01 lgMaxTimeF       :0.5 s
   3:Wetterstation_chn-01 lgMultiExec      :on
   3:Wetterstation_chn-01 lgOffDly         :0 s
   3:Wetterstation_chn-01 lgOffLevel       :100 %
   3:Wetterstation_chn-01 lgOffTime        :unused
   3:Wetterstation_chn-01 lgOffTimeMode    :absolut
   3:Wetterstation_chn-01 lgOnDly          :0 s
   3:Wetterstation_chn-01 lgOnLevel        :100 %
   3:Wetterstation_chn-01 lgOnTime         :unused
   3:Wetterstation_chn-01 lgOnTimeMode     :absolut
   3:Wetterstation_chn-01 shActionType     :jmpToTarget
   3:Wetterstation_chn-01 shBlJtDlyOff     :refOff
   3:Wetterstation_chn-01 shBlJtDlyOn      :refOn
   3:Wetterstation_chn-01 shBlJtOff        :dlyOn
   3:Wetterstation_chn-01 shBlJtOn         :dlyOff
   3:Wetterstation_chn-01 shBlJtRampOff    :off
   3:Wetterstation_chn-01 shBlJtRampOn     :on
   3:Wetterstation_chn-01 shBlJtRefOff     :off
   3:Wetterstation_chn-01 shBlJtRefOn      :on
   3:Wetterstation_chn-01 shCtDlyOff       :geLo
   3:Wetterstation_chn-01 shCtDlyOn        :geLo
   3:Wetterstation_chn-01 shCtOff          :geLo
   3:Wetterstation_chn-01 shCtOn           :ltLo
   3:Wetterstation_chn-01 shCtRampOff      :geLo
   3:Wetterstation_chn-01 shCtRampOn       :geLo
   3:Wetterstation_chn-01 shCtRefOff       :geLo
   3:Wetterstation_chn-01 shCtRefOn        :geLo
   3:Wetterstation_chn-01 shCtValHi        :15
   3:Wetterstation_chn-01 shCtValLo        :100
   3:Wetterstation_chn-01 shDriveMode      :direct
   3:Wetterstation_chn-01 shMaxTimeF       :unused
   3:Wetterstation_chn-01 shMultiExec      :off
   3:Wetterstation_chn-01 shOffDly         :0 s
   3:Wetterstation_chn-01 shOffLevel       :100 %
   3:Wetterstation_chn-01 shOffTime        :unused
   3:Wetterstation_chn-01 shOffTimeMode    :absolut
   3:Wetterstation_chn-01 shOnDly          :0 s
   3:Wetterstation_chn-01 shOnLevel        :100 %
   3:Wetterstation_chn-01 shOnTime         :unused
   3:Wetterstation_chn-01 shOnTimeMode     :absolut


So. Nun die Fragen an alle Profis: Wie hätte ich das A) besser machen können und B) Warum muss ich die Wetterstation absichtlich als Vorgängerversion im Attribut model einstellen damit ich die Register für die Peers setzten kann... Die ist doch wahrscheinlich einfach noch nicht korrekt in fhem implementiert, oder?

discoebbe

Problem ist nun zu meiner Zufriedenheit gelöst. Letzte Probleme mit den passenden Registern für die Trigger konnte ich heute auch lösen.
Für alle zur Info. Bevor man Sturmmeldungen vom HM-WDS100-C6-O-2 bekommt muss man das Attribut model auf HM-WDS100-C6-O stellen und danach peeren. Sobald ein direktes Peering existiert, kann man das Model wieder ändern. Die Wetterstation sendet dann an alle Peers die Sturm Warnung. Über die Register shCtValHi und shCtValLo kann man dann, direkt am jeweiligen Aktor, problemlos die Sturm-Schwellen definieren. Sie hierzu mein Post von heute: https://forum.fhem.de/index.php/topic,71323.0.html

Es wäre schön, wenn wir hier eine bessere Implementierung in FHEM auf lange Sicht hinbekommen, denn so ist es ja eher etwas umständlich.

martinp876


discoebbe

#14
Auf jeden Fall ist es nach dem Update anders :)

Das sind die Register die ich über get regList nun erhalte:

0: burstRx          |     literal        |          | device reacts on Burst options:on,off
   0: localResDis      |     literal        |          | local reset disable options:off,on
   0: pairCentral      |   0 to 16777215    |          | pairing to central
   1: sign             |     literal        |          | signature (AES) options:on,off
   1: stormLowThresh   |   0 to 200         |          | Storm lower threshold
   1: stormUpThresh    |   0 to 200         |          | Storm upper threshold
   1: sunThresh        |   0 to 255         |          | Sunshine threshold
   1: windSpeedRsltSrc |     literal        |          | wind result source options:average,max
   4: peerNeedsBurst   |     literal        | required | peer expects burst options:on,off


Da ist auch was ganz neues dabei "windSpeedRsltSrc". Damit lässt sich nun also auch einstellen ob die Windgeschwindigkeit im Schnitt genommen werden soll, oder das Maximum, das im aktuellen Messintervall gemessen wurde. Sehr schön!

Ansonsten erscheint nun wieder das unknown im Reading Storm. Ich denke das könnte man entfernen und an dieser stelle einfach direkt den decimal wert schicken. Aktuell kommt unknown:HEX. Der Decimalwert davon entspricht ja eigentlich genau der gemessenen Windgeschwindigkeit. Die Station kann Windgeschwindigkeiten bis max 200 km/h messen (laut Manual). Wenn Sie nun als Decimalwert 20 (hex 14) für Sturm sendet, was ja 10 % entspricht, dann wären es ja auch tatsächlich 20 km/h Wind. Das deckt sich auch mit meinen Beobachtungen.

Battery scheint zu funktionieren. Bekomme in refelmäßigen Abständen ein Battery:ok im Log.

So nun kommen wir zu den Problemen: Die Peers sind noch nicht so toll. Ich wollte bei einem Rollo den stormUpThresh verstellen im Log bekomme ich dann:
R-RolloBueroArbeiten_chn-01-stormUpThresh: set_20
soweit so richtig. Aber dann bekomme ich nur noch murks in fhem:
2017-05-02_09:14:49 Wetterstation unknown: 04000000000000010002010A280B650C1F
2017-05-02_09:14:50 Wetterstation unknown: 0400000000000011001800
2017-05-02_09:14:50 Wetterstation unknown: 04000000000000


Ich glaube das wären die Antworten der Wetterstation gewesen so wie ich sie erhalten hatte als ich das Model auf die Vorgängerversion gestellt habe:
2017-04-21_22:08:50 Wetterstation R-RolloBueroArbeiten_chn-01-stormLowThresh: 5
2017-04-21_22:08:50 Wetterstation R-RolloBueroArbeiten_chn-01-stormUpThresh: 15
2017-04-21_22:08:50 Wetterstation R-RolloBueroArbeiten_chn-01-sunThresh: 50


Also es ist gut möglich, dass die Register in der Wetterstation für die Peers richtig angekommen sind, aber in FHEM nicht richtig wiedergegeben wird. Muss ich also testen ob an den Aktoren dann die passenden Trigger ankommen. Mache ich dann heute Abend.