powerlvlTest hängt im status 2

Begonnen von adb76, 24 Juli 2015, 19:42:56

Vorheriges Thema - Nächstes Thema

adb76

Hallo,

mache gerade ein paar Tests mit meinem ZWave Netzwerk bzgl. der nutzbaren Reichweite. Habe dazu bei einigen Knoten nacheinander den powerlvlTest gestartet (z.B. set kg.wk.sd.waschmaschine 7 0 50). Nun hängen zwei Devices seit ein paar Stunden (!) im status 2 des powerlvlTest und ich kann damit mit diesen Devices keine neuen powerlvlTest starten:

get kg.wk.sd.waschmaschine powerlvlTest --> powerlvlTest:node 7 status 2 frameAck 0
set kg.wk.sd.waschmaschine 1 0 50
get kg.wk.sd.waschmaschine powerlvlTest --> powerlvlTest:node 7 status 2 frameAck 0


Das komische ist die vorhergehenden Tests mit den beiden Devices liefen problemlos durch und haben entweder frameAcks zurückgeliefert oder eben auch nicht, wenn die Verbindung nicht funktioniert hat. Habe zwischenzeitlich meinen Raspi neu gestartet und komplett vom Netz getrennt, analog die Devices - half alles nichts. Bevor ich nun zum komplett Reset der Devices übergehe, wollte ich vorab noch absichern ob es eine andere Möglichkeit gibt die Devices dazu zu bewegen wieder in den Status 0 oder 1 des Tests zurückzugehen?

Hier noch meine Hardware, mit der ich aktuell teste:

Controller: Zwave.me UZB1
Devices: 2 x Devolo Switch MT02646 (Zwave Plus - Spec inkl. Commands: http://products.z-wavealliance.org/MarketCertification/File?folder=&filename=MarketCertificationFiles/1129/PAN11-1B%20manual-20140816.pdf)

Gruß,

André

krikan

Die getesteten Geräte mal stromlos machen. Das hilft zumindet bei Fibaro, dort hatte ich das Problem auch schon 2x.

adb76

Zitat von: krikan am 24 Juli 2015, 19:56:15
Die getesteten Geräte mal stromlos machen. Das hilft zumindet bei Fibaro, dort hatte ich das Problem auch schon 2x.

War auch mein erster Gedanke, leider erfolglos. Hatte bei einem ersten analogen Problem auch schon mal geholfen - dieses Device wehrt sich hartnäckig  :-\  Habe es sogar extra mal länger ausgesteckt, half auch nix - also doch der Device Reset?! Ansonsten reagiert es ganz normal...

krikan

Zitat von: adb76 am 24 Juli 2015, 20:03:30
War auch mein erster Gedanke, leider erfolglos. Hatte bei einem ersten analogen Problem auch schon mal geholfen - dieses Device wehrt sich hartnäckig  :-\  Habe es sogar extra mal länger ausgesteckt, half auch nix - also doch der Device Reset?! Ansonsten reagiert es ganz normal...
Keine Ahnung, ob Device Reset hilft. Probleme habe ich bei mir auch im laufenden Betrieb mit hängengebliebenen Aktor nicht gehabt. Hat mehr als eine Woche so gelaufen. Ich suche noch mal, nach weiteren Infos zum Thema. Mich würde auch interessieren wodurch das entsteht. Hast Du während des Tests Befehle an den Aktor abgesetzt?

adb76

Zitat von: krikan am 24 Juli 2015, 20:11:07
Hast Du während des Tests Befehle an den Aktor abgesetzt?

Ja. Ich habe vor allem bei längeren Tests, also mit grösserer Frame Anzahl (z.B. 1000) immer wieder mal geschaut wie weit der Fortschritt des Tests ist (get powerlvlTest). Hat auch soweit funktioniert und mir den Status 2 und den aktuellen Stand der frameAcks angezeigt und am Ende ist er dann auf den Status 1 gegangen.

Ein Mini-Verdacht: auch das andere Device steht auf Status 2 und frameAck 0! Eventuell liegt es daran, wenn man einen powerLvlTest startet und dann während dem Lauf (get powerlvlTest) abfrägt das Device aber bisher keine frameAcks erhalten hat.

krikan

Danke, ich habe nämlich auch den Verdacht, dass es mit den get powerlvlTest -Abfragen zusammenhängt. In dem einen Fall bei mir habe ich die Abfrage defintiv abgesetzt. Beim anderen weiß ich es leider nicht mehr und habe das Log schon gelöscht. Auf die Schnelle finde ich aber in den zwapi keine Info, warum eine Abfrage nicht erlaubt sein sollte. Werde mal suchen, kann aber dauern.

adb76

Zitat von: krikan am 24 Juli 2015, 20:27:19
Auf die Schnelle finde ich aber in den zwapi keine Info, warum eine Abfrage nicht erlaubt sein sollte. Werde mal suchen, kann aber dauern.

Prima, danke.

Habe mal heute Morgen eines der beiden Devices erst exkludiert und dann noch ein Komplett-Reset und dann noch in Folge stromlos gemacht. Und jetzt wirds merkwürdig: Hat alles nicht geholfen. Eine Abfrage auf den Status auf den Test ergibt erneut den alten Stand - ohne dass ich nach dem Reset irgendwas mit dem Device gemacht habe:

get ZWave_SWITCH_BINARY_30 powerlvlTest --> powerlvlTest:node 7 status 2 frameAck 0

Wie bekomme ich das nun wieder weg?

krikan

In den per Internet zugänglichen Dokumenten kann ich keine Einschränkung hinsichtlich get-PowerlevelTest finden. Auch andere Besonderheiten, die das Problem erklären könnten, erkenne ich nicht. Implemtierung der Class in Fhem sollte vollständig sein; neuere Class gibt es nicht.

Habe jetzt bei mir auch noch mal versucht das Problem zu erzeugen. Habe es nach gefühlten Ewigkeiten 1x geschafft, als ich 1000 Testtelegramme an einen Aktor mit SDK 4.5 geschickt habe und während des laufenden Tests get powerlevelTest aufgerufen habe. Dann habe ich stromlos gemacht, Strom wieder angeschaltet und erneut get-powerlevelTest abgerufen, der Aktor antwortete aber auf den Befehl überhaupt nicht mehr. Andere Befehle wurden jedoch korrekt verarbeitet. Erst als ich (zuletzt) einen neuen set-powerLevelTest durchgeführt habe, funktionierte anschließend get-powerlevelTest wieder.

Komischerweise hatte ich vorher bei dem Aktor schon Tests mit mehr Telegrammen und Abfragen durchgeführt, ohne das Problem erzeugen zu können. Bei einem SDK 6.5 -Gerät, so wie Dein Aktor, habe ich es gar nicht geschafft.

Sehe derzeit leider kein System.

Gibt es eigentlich irgendwo Infos zur 1%-Regel bei ZWave und wie die Geräte sich dann verhalten?

Bitte probiere mal ein set-powerlevelTest mit wenigen Telegrammen. Und berichte gerne weiter. Irgendwie muss sich das doch klären lassen.

adb76

Zitat von: krikan am 25 Juli 2015, 10:39:13
Bitte probiere mal ein set-powerlevelTest mit wenigen Telegrammen. Und berichte gerne weiter. Irgendwie muss sich das doch klären lassen.

Habe nun auf die zwei Devices alle möglichen set-powerlevelTest Varianten versucht: z.B. 1 0 10 oder auch mal auf sich gegenseitig oder auf komplett andere Devices - get-powerlevelTest zeigt unverändert den status 2 und frameAck 0. In powerlevelTests von anderen Devices auf diese Devices verhalten sie sich normal und geben auch eine Antwort.

adb76

Auch weitere Versuche den Status des powerlevelTest zurückgesetzt zu bekommen sind fehlgeschlagen. Ein Device Reset setzt alle Einstellungen zurück nur nicht diesen Status.

Frage: Gibt es eine Möglichkeit vom Comtroller an das Device explizit eine Message oder mehrere Messages zu schicken, die so aussehen, wie wenn sie von einem powerlevelTest kommen? Würde mal gerne sehen was dann passiert. Oder ist diese Idee quatsch?


krikan

Der Controller hat die Funktion:
'be'  => 'ZW_SEND_TEST_FRAME'
Mit dieser Funktion kann man vom Controller zum Device einen Testframe, wie er von powerlevelTest genutzt wird, verschicken.

Die Funktion ist in Fhem nicht als Befehl eingebunden. Darum ist die Funktion über "get <ZWDongle> raw" aufzurufen. Oder Du baust sie in 00_ZWDongle.pm bei Dir in den hash %sets ein (ungetestet):
"sendTestFrame"         => { cmd => "be%02x%02x@"},
1. Parameter: Ziel-NodeId
2. Parameter: Powerlevel

adb76

#11
Wie vermutet empfangen die Devices den Testframe und geben eine Antwort. Ändert aber nichts am Status.

Was ich nicht verstehe: Wenn ich z.B. einen Aeotec Repeater ausstecke und wieder einstecke dann vergisst er den powerlevelStatus sofort, sprich ein get powerlevelTest ergibt dann

powerlvlTest:node 0 status 0 frameAck 0

Wenn ich ein Problem-Device resete vergisst es alles bis auf diesen Status.

Wie und wo verflixt nochmal merken sich die Devolo Switches diesen Status? Gibt es in Zwave Plus Geräten hierfür einen speziellen Speicher? Falls ja, kommt man da irgendwie ran?

P.S. Oder hängt das irgendwie am Controller - kann ich mir aber fast nicht vorstellen, da für das Aeotec Gerät das Abstöpseln den Status zurücksetzt. Auch den Controller stromlos zu machen hat ja nicht geholfen.

krikan

Controllerzusammenhang sehe ich nicht. Bei mir sind die Probleme mit get-powerlevel mit dem Vision und UZB1-Stick jeweils mit dem gleichen Endgerät aufgetreten.

Einen separat zu löschenden Speicher halte ich eher für sehr unwahrscheinlich, kann das aber nicht 100% ausschließen. Bei mir hatte ich auch mit einem ZWavePlus-Gerät (SDK 6.5) getestet und konnte keine Merkwürdigkeiten entdecken. Nach Reset waren Werte nach dem Fhem-Log alle 0. Was sollte das separate Festhalten an den Werten nach einem Reset für einen Sinn machen?

Für entscheidender als das Nicht-Löschen der Werte empfinde ich, dass Du mit den Aktoren keine powerlevelTest mehr machen kannst.

Dem Empfinden nach geht es in Richtung "Gerät-Auffälligkeit", aber natürlich könnte es auch ein Softwarethema sein. Aber warum nur in Einzelfällen? Hänge noch ein bißchen am Gedanken der 1%-Regel, da fehlen mir aber Kenntnisse.

Man bräuchte halt vernünftige aktuelle Doku.

adb76

Kurzes Update: Weitere Versuche die Devices zurückzusetzen oder zu exkludieren/inkludieren haben nix gebracht - die denken immer noch sie sind aktuell in einem powerLevelTest (Status 2) und nehmen daher keine Neuen an.

Hab jetzt aktuell keine Idee was ich noch versuchen kann...

Gruß,

André