ZWave Devices schalten nicht immer an/aus

Begonnen von larry, 22 Januar 2014, 20:45:10

Vorheriges Thema - Nächstes Thema

larry

Habe es heute nochmal upgedated: 00_ZWDongle.pm 4751 2014-01-26 15:32:03Z

Mit dieser Version gehen mehrfach set und get:

2014.01.27 08:56:45.250 2: ZWave set OutdoorLowVoltageLights on                                                                     
2014.01.27 08:56:45.252 5: SW: 0109001305032501FF053d                                                                               
2014.01.27 08:56:45.263 2: ZWave set FrontPorchLights on                                                                           
2014.01.27 08:56:45.273 5: ZWDongle/RAW: /060104011301e8                                                                           
2014.01.27 08:56:45.274 5: SW: 06                                                                                                   
2014.01.27 08:56:45.277 5: ZWDongle_Read ZWDongle_0: 011301                                                                         
2014.01.27 08:56:45.278 5: ZWDongle_0 dispatch 011301                                                                               
2014.01.27 08:56:45.354 5: SW: 0109001306032501FF053e                                                                               
2014.01.27 08:56:45.358 5: ZWDongle/RAW: /06                                                                                       
2014.01.27 08:56:45.362 5: ZWDongle/RAW: /0104011301e8                                                                             
2014.01.27 08:56:45.363 5: SW: 06                                                                                                   
2014.01.27 08:56:45.365 5: ZWDongle_Read ZWDongle_0: 011301                                                                         
2014.01.27 08:56:45.367 5: ZWDongle_0 dispatch 011301                                                                               
2014.01.27 08:57:38.714 2: ZWave set OutdoorLowVoltageLights off                                                                   
2014.01.27 08:57:38.716 5: SW: 01090013050325010005c2                                                                               
2014.01.27 08:57:38.726 2: ZWave set FrontPorchLights off                                                                           
2014.01.27 08:57:38.736 5: ZWDongle/RAW: /060104011301e8                                                                           
2014.01.27 08:57:38.738 5: SW: 06                                                                                                   
2014.01.27 08:57:38.740 5: ZWDongle_Read ZWDongle_0: 011301                                                                         
2014.01.27 08:57:38.741 5: ZWDongle_0 dispatch 011301                                                                               
2014.01.27 08:57:38.819 5: SW: 01090013060325010005c1                                                                               
2014.01.27 08:57:38.823 5: ZWDongle/RAW: /06                                                                                       
2014.01.27 08:57:38.827 5: ZWDongle/RAW: /0104011301e8                                                                             
2014.01.27 08:57:38.828 5: SW: 06                                                                                                   
2014.01.27 08:57:38.830 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.27 08:57:38.832 5: ZWDongle_0 dispatch 011301
2014.01.27 08:58:45.842 2: ZWave get OutdoorLowVoltageLights swbStatus
2014.01.27 08:58:45.844 5: SW: 010800130502250205c1
2014.01.27 08:58:45.849 5: ZWDongle/RAW: /06
2014.01.27 08:58:45.852 5: ZWDongle/RAW: /0104011301e8
2014.01.27 08:58:45.853 5: SW: 06
2014.01.27 08:58:45.855 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.27 08:58:45.857 5: ZWDongle_0 dispatch 011301
2014.01.27 08:58:45.864 5: ZWDongle/RAW: /010500130500ec
2014.01.27 08:58:45.865 5: SW: 06
2014.01.27 08:58:45.867 5: ZWDongle_Read ZWDongle_0: 00130500
2014.01.27 08:58:45.869 5: ZWDongle_0 dispatch 00130500
2014.01.27 08:58:45.871 4: ZWDongle_0 CMD:ZW_SEND_DATA ID:00 ARG:
2014.01.27 08:58:45.873 5: ZWDongle/RAW: /01090004000503250300d2
2014.01.27 08:58:45.874 5: SW: 06
2014.01.27 08:58:45.876 5: ZWDongle_Read ZWDongle_0: 0004000503250300
2014.01.27 08:58:45.878 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:05 ARG:03250300
2014.01.27 08:58:45.886 2: ZWave get FrontPorchLights swbStatus
2014.01.27 08:58:45.888 5: SW: 010800130602250205c2
2014.01.27 08:58:45.893 5: ZWDongle/RAW: /06
2014.01.27 08:58:45.896 5: ZWDongle/RAW: /0104011301e8
2014.01.27 08:58:45.897 5: SW: 06
2014.01.27 08:58:45.899 5: ZWDongle_Read ZWDongle_0: 011301
2014.01.27 08:58:45.901 5: ZWDongle_0 dispatch 011301
2014.01.27 08:58:45.908 5: ZWDongle/RAW: /010500130500ec
2014.01.27 08:58:45.909 5: SW: 06
2014.01.27 08:58:45.911 5: ZWDongle_Read ZWDongle_0: 00130500
2014.01.27 08:58:45.913 5: ZWDongle_0 dispatch 00130500
2014.01.27 08:58:45.915 4: ZWDongle_0 CMD:ZW_SEND_DATA ID:00 ARG:
2014.01.27 08:58:45.917 5: ZWDongle/RAW: /01090004000603250300d1
2014.01.27 08:58:45.918 5: SW: 06
2014.01.27 08:58:45.920 5: ZWDongle_Read ZWDongle_0: 0004000603250300
2014.01.27 08:58:45.922 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:06 ARG:03250300



larry

hmm - zu frueh gefreut - scheint doch noch nicht zu funktionieren. Gestern gingen die ProchLights nicht an und vorgestern nicht aus. Im log sieht man aber nicht ungewoehnliches.


ZWave set FrontPorchLights on                                                                         
2014.01.28 17:31:12.038 5: SW: 0109001306032501FF053e                                                                           
2014.01.28 17:31:12.068 5: ZWDongle/RAW: /060104011301e8                                                                         
2014.01.28 17:31:12.070 5: SW: 06                                                                                               
2014.01.28 17:31:12.072 5: ZWDongle_Read ZWDongle_0: 011301                                                                     
2014.01.28 17:31:12.073 5: ZWDongle_0 dispatch 011301                                                                           
2014.01.28 17:36:33.009 2: ZWave set OutdoorLowVoltageLights on                                                                 
2014.01.28 17:36:33.012 5: SW: 0109001305032501FF053d                                                                           
2014.01.28 17:36:33.041 5: ZWDongle/RAW: /060104011301e8                                                                         
2014.01.28 17:36:33.043 5: SW: 06                                                                                               
2014.01.28 17:36:33.045 5: ZWDongle_Read ZWDongle_0: 011301                                                                     
2014.01.28 17:36:33.047 5: ZWDongle_0 dispatch 011301


Seltsam ist das ich neuerdings dies bekomme:


2014.01.28 18:12:23.577 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9                                                   
2014.01.28 18:12:23.579 5: SW: 06                                                                                               
2014.01.28 18:12:23.581 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277                                             
2014.01.28 18:12:23.582 5: ZWDongle_0 dispatch 004984060a04100125277370867277                                                   
2014.01.28 18:12:23.584 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277                                 
2014.01.28 18:12:26.849 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9                                                   
2014.01.28 18:12:26.851 5: SW: 06                                                                                               
2014.01.28 18:12:26.853 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277                                             
2014.01.28 18:12:26.855 5: ZWDongle_0 dispatch 004984060a04100125277370867277                                                   
2014.01.28 18:12:26.856 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277 

rudolfkoenig

Wegen verpasster Schaltvorgaenge faellt mir nur ein, dass ohne Rueckmeldung ich nicht so recht weiss, was FHEM tun sollte. Kommst Du mit 0.2 Sekunden (s.o) besser zurecht?

Wegen ZW_APPLICATION_UPDATE: damit teilen Geraete die Zwave-Geraeteklassen (siehe classes Attribut) mit. Ich hoffe nicht, dass das ein indirekter Hinweis vom Geraet an FHEM ist, dass FHEM etwas anders senden soll.

larry

0.3 scheint zu funktionieren. Ich bekomme aber nun noch mehr ZW_APPLICATION_UPDATE Messages:


2014.02.01 22:05:00.019 2: ZWave set FrontPorchLights off
2014.02.01 22:05:00.021 5: SW: 01090013060325010005c1
2014.02.01 22:05:00.032 5: ZWDongle/RAW: /060104011301e8
2014.02.01 22:05:00.034 5: SW: 06
2014.02.01 22:05:00.036 5: ZWDongle_Read ZWDongle_0: 011301
2014.02.01 22:05:00.037 5: ZWDongle_0 dispatch 011301
2014.02.01 22:18:31.587 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9
2014.02.01 22:18:31.589 5: SW: 06
2014.02.01 22:18:31.591 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277
2014.02.01 22:18:31.593 5: ZWDongle_0 dispatch 004984060a04100125277370867277
2014.02.01 22:18:31.594 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277
2014.02.01 22:19:10.111 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9
2014.02.01 22:19:10.113 5: SW: 06
2014.02.01 22:19:10.115 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277
2014.02.01 22:19:10.117 5: ZWDongle_0 dispatch 004984060a04100125277370867277
2014.02.01 22:19:10.118 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277
2014.02.01 22:28:56.088 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9
2014.02.01 22:28:56.090 5: SW: 06
2014.02.01 22:28:56.092 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277
2014.02.01 22:28:56.093 5: ZWDongle_0 dispatch 004984060a04100125277370867277
2014.02.01 22:28:56.095 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277
2014.02.01 22:28:56.834 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9
2014.02.01 22:28:56.836 5: SW: 06
2014.02.01 22:28:56.838 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277
2014.02.01 22:28:56.839 5: ZWDongle_0 dispatch 004984060a04100125277370867277
2014.02.01 22:28:56.841 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277
2014.02.01 22:28:58.100 5: ZWDongle/RAW: /0110004984060a04100125277370867277b9
2014.02.01 22:28:58.102 5: SW: 06
2014.02.01 22:28:58.104 5: ZWDongle_Read ZWDongle_0: 004984060a04100125277370867277
2014.02.01 22:28:58.106 5: ZWDongle_0 dispatch 004984060a04100125277370867277
2014.02.01 22:28:58.107 4: ZWDongle_0 CMD:ZW_APPLICATION_UPDATE ID:06 ARG:0a04100125277370867277

fhem-me

Bei meinen Jalousien nutze ich on-for-timer mit 0.4 oder 0.6 um die Neigung einzustellen.
Bei der Abarbeitungsrate von 0.2 oder höher ist die Neigung nicht immer wie ich es erwarten würde.
Habe nun eine andere Strategie ausprobiert:
- ZWave_HandleSendStack rufe ich direkt aus ZWave_Parse nach ZW_SEND_DATA mit ID 00 auf
- der InternalTimer wird explizit bei Verarbeitung gelöscht
- der Timerwert steht bei mir nun bei 0.5 wird i.d.R jedoch nicht mehr benötigt

Folgende Anpassungen waren notwendig:
00_ZWDongle.pm

sub
ZWave_HandleSendStack($)
{
  my $hash = shift;
  shift @{$hash->{SendStack}};
  RemoveInternalTimer($hash);   # remove timer to avoid re-trigger
  return if(!@{$hash->{SendStack}});
  ZWDongle_Write($hash, "00", $hash->{SendStack}->[0], 1);
  InternalTimer(gettimeofday()+0.5, "ZWave_HandleSendStack", $hash, 0);
}


10_ZWave.pm

sub
ZWave_Parse($$@)
...
  } elsif($cmd eq "ZW_SEND_DATA") {
    if ($id ne "00") {
      Log3 $ioName, 2, "$ioName ERROR: SEND_DATA returned $id";
} else {
  ZWave_HandleSendStack($iodev);
}
...


habe vorsichtshalber aus ZWDongle_ReadAnswer($$$) folgende Zeile auskommentiert

  # shift @{$hash->{SendStack}};   # Hope this is right.


mein erfolgreicher Testfall war
set Jalousie1 on-for-timer 0.2; set Jalousie2 on-for-timer 0.2

rudolfkoenig

Habs eingecheckt, testen konnte ich es aber nicht.
Kannst Du bitte pruefen, ob ich es richtig gemacht habe?
Mich interessiert auch, ob "get" von Batterie betriebenen Geraeten noch funktioniert.

fhem-me

#36
ein GET auf einem Batterie betriebene Gerät sieht für mich mal OK aus.
siehe Log von meinem einzigen Batterie betriebenen Gerät (Fibaro Rauchmelder)

2014.04.19 11:28:10.770 2: ZWave get ZWave_a1_15 smStatus
..
2014.04.19 11:30:01.683 2: ZWave get ZWave_a1_15 alarm
..
2014.04.19 11:40:10.973 5: ZWDongle/RAW: /010c0004000f063105012200d33a
2014.04.19 11:40:10.975 5: SW: 06
2014.04.19 11:40:10.977 5: ZWDongle_Read ZWDongle_0: 0004000f063105012200d3
2014.04.19 11:40:10.979 5: ZWDongle_0 dispatch 0004000f063105012200d3
2014.04.19 11:40:10.981 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:063105012200d3
2014.04.19 11:40:10.986 5: SW: 010800130f02310405d9
2014.04.19 11:40:11.010 5: ZWDongle/RAW: /060104011301e8
2014.04.19 11:40:11.012 5: SW: 06
2014.04.19 11:40:11.014 5: ZWDongle_Read ZWDongle_0: 011301
2014.04.19 11:40:11.016 5: ZWDongle_0 dispatch 011301
2014.04.19 11:40:11.235 5: ZWDongle/RAW: /010500130500ec
2014.04.19 11:40:11.237 5: SW: 06
2014.04.19 11:40:11.239 5: ZWDongle_Read ZWDongle_0: 00130500
2014.04.19 11:40:11.241 5: ZWDongle_0 dispatch 00130500
2014.04.19 11:40:11.243 4: ZWDongle_0 CMD:ZW_SEND_DATA ID:00 ARG:
2014.04.19 11:40:11.247 5: ZWDongle/RAW: /010c0004000f063105012200d33a
2014.04.19 11:40:11.249 5: SW: 06
2014.04.19 11:40:11.251 5: ZWDongle_Read ZWDongle_0: 0004000f063105012200d3
2014.04.19 11:40:11.253 5: ZWDongle_0 dispatch 0004000f063105012200d3
2014.04.19 11:40:11.254 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:063105012200d3
2014.04.19 11:40:11.260 5: SW: 010900130f039c01010570
2014.04.19 11:40:11.284 5: ZWDongle/RAW: /060104011301e8
2014.04.19 11:40:11.285 5: SW: 06
2014.04.19 11:40:11.287 5: ZWDongle_Read ZWDongle_0: 011301
2014.04.19 11:40:11.289 5: ZWDongle_0 dispatch 011301
2014.04.19 11:40:11.302 5: ZWDongle/RAW: /010500130100e8
2014.04.19 11:40:11.304 5: SW: 06
2014.04.19 11:40:11.306 5: ZWDongle_Read ZWDongle_0: 00130100
2014.04.19 11:40:11.308 5: ZWDongle_0 dispatch 00130100
2014.04.19 11:40:11.310 4: ZWDongle_0 CMD:ZW_SEND_DATA ID:00 ARG:
2014.04.19 11:40:11.343 5: ZWDongle/RAW: /010d0004000f079c020f010000006e
2014.04.19 11:40:11.345 5: SW: 06
2014.04.19 11:40:11.347 5: ZWDongle_Read ZWDongle_0: 0004000f079c020f01000000
2014.04.19 11:40:11.349 5: ZWDongle_0 dispatch 0004000f079c020f01000000
2014.04.19 11:40:11.350 4: ZWDongle_0 CMD:APPLICATION_COMMAND_HANDLER ID:0f ARG:079c020f01000000


Deine Änderung war beim FHEM Update noch nicht dabei - schaue noch beim SVN drüber ...
Nach Tests musste ich noch den Timeout von 0.5 auf 1 verlängern. Mein RPi legt wohl manchmal eine 1/2 Gedenksekunde ein so dass der InternalTimer zu früh aufräumt und das nächste set nachdrückt was zu einem retransmit führt.

2014.04.18 16:26:04.297 2: ZWave set Buero.Jalousie.Tuer off
2014.04.18 16:26:04.319 5: ZWDongle/RAW: /060104011301e8
2014.04.18 16:26:04.320 5: SW: 06
2014.04.18 16:26:04.323 5: ZWDongle_Read ZWDongle_0: 011301
2014.04.18 16:26:04.325 5: ZWDongle_0 dispatch 011301
2014.04.18 16:26:04.329 5: ZWDongle/RAW: /010500130100e8
2014.04.18 16:26:04.331 5: SW: 06
2014.04.18 16:26:04.333 5: ZWDongle_Read ZWDongle_0: 00130100
2014.04.18 16:26:04.335 5: ZWDongle_0 dispatch 00130100
2014.04.18 16:26:04.336 4: ZWDongle_0 CMD:ZW_SEND_DATA ID:00 ARG:
2014.04.18 16:26:04.337 4: send pending messages
2014.04.18 16:26:04.339 5: SW: 01090013020326010005c6
-> weiss nicht was mein RPi so lange treibt aber vergeht mehr als eine 1/2 Sekunde ohne ein Log-Eintrag
2014.04.18 16:26:04.902 2: ZWave set Buero.Jalousie.Fenster on
2014.04.18 16:26:04.921 2: ZWave set Buero.Jalousie.Tuer on
2014.04.18 16:26:04.940 5: SW: 0109001303032601FF0538
2014.04.18 16:26:04.946 5: ZWDongle/RAW: /060104011301e818
2014.04.18 16:26:04.948 5: SW: 06
2014.04.18 16:26:04.950 5: ZWDongle_Read ZWDongle_0: 011301
2014.04.18 16:26:04.952 5: ZWDongle_0 dispatch 011301
2014.04.18 16:26:04.954 4: ZWDongle_0: CANCEL received, retransmitting.
2014.04.18 16:26:04.955 5: SW: 0109001303032601FF0538

aber mit 1 Sekunde Timeout läuft bei mir bisher alles super.

*** update ***
Habe im SVN die Änderungen angeschaut. Sieht gut aus.
ABER: im Aufruf vom InternalTimer in ZWDongle_Write($$$@) bitte auch noch den Timeout anpassen.
(das hatte ich in meinem Post vergessen, sorry)
Der Timeout kann lieber etwas größer sein da er nur im Ausnahmefall benötigt wird.

rudolfkoenig

Ein Timeout von 1 Sekunde ist problematisch, weil mWn die Batterie-Geraete nur eine Sekunde nach dem letzten Telgramm wach sind, habs aber trotzdem uebernommen. Weiterhin ist es deutlich merkbar, sollte also wirklich nur in Ausnahmefaellen zuschlagen.

Bist du sicher, dass die Gedenksekunde beim RPi nicht dem Dongle geschuldet ist? Oder der USB-Bus ist belegt, der RPi hatte damit manchmal Probleme. Oder ist das kein Thema mehr?