Aeon Labs Z-Wave Node "manuell" löschen

Begonnen von Thargor, 26 Januar 2015, 12:45:05

Vorheriges Thema - Nächstes Thema

krikan

@wkarl
Hast Du einen Link, wo ich die Bedeutung Deiner vorgeschlagenen und von Rudi eingebauten Ergänzungen nachschauen kann. Die Rückgabe vom isFailedNode verstehe ich nicht. Mir fehlen aber auch die Testobjekte. Danke.

wkarl

@krikan: den code habe ich aus 00_ZWDongle.pm. Habe auch gegoogelt, ob ich dazu Spezifikas finde, aber ohne konkreten Erfolg.

@rudi: habe die zitierten Funktionen schon letzte Woche mal eingebaut und getestet. Leider hatte ich wenig Erfolg. Sehe eben Du hast es eingepflegt, werde es gleich mal testen.

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

wkarl

@rudi: habe die Aktoren auf isFailedNode getestet
Das Ergebnis:
isFailedNode_2 016200
isFailedNode_3 016201


Node-ID 2 ist die aktive Stechdose und Node-ID 3 der inaktiver Schalter.  Das wird dann in den Readings eingetragen, finde ich etwas unschön. Mir genügt die Information, wenn ich ein Gerät abfrage, den entsprechenden Status zu bekommen.
Was aus meiner Sicht evtl sinnvoll wäre, die Abfrage periodisch gegen alle Geräte laufen zu lassen und dann ähnlich wie nodeList die inaktiven Geräte zu zeigen.

removeFailedNode funktioniert auch.

ciao walter
FHEM 5.7 & TabletUI 2.2 auf Fedora22 Server auf NUC5i5RYK
CUL 868 > FAST EnergyCam
HMLAN > HomeMatic TCs & VDs, Bewegungsmelder, Schalter, Taster, Steckdosen

moritzthecat

habe es gestern mal mit den neuen Befehlen probiert, leider erfolglos... bestimmt gibt es eine Sequenz, die man einhalten muss.
Mit dem ZTool ging es dann aber problemlos.

gero

Ich hatte bei meinem ZME_UZB1 Dongle im Auslieferungszustand schon drei mir unbekannte Knoten in der nodeList, die ich natürlich loswerden wollte.

Diese habe ich erfolgreich über folgende Prozedur entfernen können (hier am Beispiel von Knoten 2):
get ZWDongle isFailedNode 2
danach gibt es unter den Readings des ZWDongles folgenden Eintrag:
isFailedNode_2 016200
erst nach einem
set ZWDongle sendNIF 2
wechselt das Reading auf
isFailedNode_2 016201
Erst danach kann der Knoten
set ZWDongle removeFaildNode 2
entfernt werden.


Gruß,
Gero
Odroid C1 - CULV3-868, JeeLink
16 x TX 29 DTH
MAX!: 15x Heizkörperthermostat+, 2x Wandthermostat, 14x Fenserkontakt, 1x Ecotaster
FS20 S4A, FS20IRF, BSB-Heizungssteuerung über Atmega2560
Z-Wave: ZME_UZB1, Fibaro Wall Plug + Motion Sensor

Buwe

Ich bin mir nicht sicher ob das einen neuen Thread wert ist...
Ich habe auch einen ZME_UZB1 neu erstanden. Dieser hatte allerdings bereits zwei Nodes included (Binary Switch nach meiner Erinnerung).

Ich bin nach der Anleitung #18 vorgegangen. Habe dann erst einen Devolo Zwischenstecker hinzugefügt, der dann als ID 4 bekommen hat. Ich hatte die Prozedur dann noch mal durchgeführt, ohne Erfolg.
Ich bezeichne mich jetzt mal "Anfänger". Ich werde die beiden blockierten IDs überleben, bin mir aber nicht sicher ob das irgendwelche Seiteneffekte hat (z.B. erhöhte Funklast)?
Da es die gewünschten Befehle im Z-Wave Wiki nicht gibt zwei get Befehle mit Verbose 5:


2015.09.15 21:04:21 5: zw.dongle dispatch 000400040e320221340000034b000000000000
2015.09.15 21:04:21 4: zw.dongle CMD:APPLICATION_COMMAND_HANDLER ID:04 ARG:0e320221340000034b000000000000
2015.09.15 21:04:38 4: ZWDongle_Read zw.dongle: sending ACK, processing 000400040e320221340000028b000000000000
2015.09.15 21:04:38 5: SW: 06
2015.09.15 21:04:38 5: zw.dongle dispatch 000400040e320221340000028b000000000000
2015.09.15 21:04:38 4: zw.dongle CMD:APPLICATION_COMMAND_HANDLER ID:04 ARG:0e320221340000028b000000000000
2015.09.15 21:04:41 4: ZWDongle get zw.dongle nodeList
2015.09.15 21:04:41 5: ZWDongle_Write 00 02
2015.09.15 21:04:41 5: SW: 01030002fe
2015.09.15 21:04:41 4: ZWDongle_ReadAnswer arg:nodeList regexp:^0102
2015.09.15 21:04:41 5: ACK received, removing 01030002fe from dongle sendstack
2015.09.15 21:04:41 4: ZWDongle_Read zw.dongle: sending ACK, processing 010205001d09000000000000000000000000000000000000000000000000000000000500
2015.09.15 21:04:41 5: SW: 06
2015.09.15 21:04:41 4: ZWDongle_ReadAnswer for nodeList: 010205001d09000000000000000000000000000000000000000000000000000000000500
2015.09.15 21:04:41 4: ZWDongle_Read zw.dongle: sending ACK, processing 000400040e3202213400000415000000000000
2015.09.15 21:04:41 5: SW: 06
2015.09.15 21:04:41 5: zw.dongle dispatch 000400040e3202213400000415000000000000
2015.09.15 21:04:41 4: zw.dongle CMD:APPLICATION_COMMAND_HANDLER ID:04 ARG:0e3202213400000415000000000000
2015.09.15 21:04:41 4: ZWDongle_Read zw.dongle: sending ACK, processing 000400040e3202213400000415000000000000
2015.09.15 21:04:41 5: SW: 06
2015.09.15 21:04:41 5: zw.dongle dispatch 000400040e3202213400000415000000000000
2015.09.15 21:04:41 4: zw.dongle CMD:APPLICATION_COMMAND_HANDLER ID:04 ARG:0e3202213400000415000000000000



2015.09.15 21:06:35 4: ZWDongle get zw.dongle nodeInfo 2
2015.09.15 21:06:35 5: ZWDongle_Write 00 4102
2015.09.15 21:06:35 5: SW: 0104004102b8
2015.09.15 21:06:35 4: ZWDongle_ReadAnswer arg:nodeInfo regexp:^0141
2015.09.15 21:06:35 5: ACK received, removing 0104004102b8 from dongle sendstack
2015.09.15 21:06:35 4: ZWDongle_Read zw.dongle: sending ACK, processing 0141000000030000
2015.09.15 21:06:35 5: SW: 06
2015.09.15 21:06:35 4: ZWDongle_ReadAnswer for nodeInfo: 0141000000030000
2015.09.15 21:06:41 4: ZWDongle_Read zw.dongle: sending ACK, processing 000400040e3202213400000405000000000000
2015.09.15 21:06:41 5: SW: 06
2015.09.15 21:06:41 5: zw.dongle dispatch 000400040e3202213400000405000000000000
2015.09.15 21:06:41 4: zw.dongle CMD:APPLICATION_COMMAND_HANDLER ID:04 ARG:0e3202213400000405000000000000


Ein list <device> ergibt:

Internals:
   CallbackNr 0
   Clients    :ZWave:
   DEF        /dev/ttyACM0@115200
   DeviceName /dev/ttyACM0@115200
   FD         20
   MaxSendRetries 3
   NAME       zw.dongle
   NR         58
   PARTIAL
   RAWMSG     000400040e32022134000003a1000000000000
   ReadTime   1442344074.15793
   STATE      Initialized
   SendRetries 0
   SendTime   1442343995.80541
   TYPE       ZWDongle
   WaitForAck 0
   homeId     d45fed61
   nrNAck     0
   zw.dongle_MSGCNT 578
   zw.dongle_TIME 2015-09-15 21:07:54
   Matchlist:
     1:ZWave    .*
   Readings:
     2015-09-15 21:06:00   caps            Vers:5 Rev:1 ManufID:0115 ProductType:0400 ProductID:0001 SERIAL_API_GET_INIT_DATA SERIAL_API_APPL_NODE_INFORMATION APPLICATION_COMMAND_HANDLER ZW_GET_CONTROLLER_CAPABILITIES SERIAL_API_SET_TIMEOUTS SERIAL_API_GET_CAPABILITIES SERIAL_API_SOFT_RESET UNKNOWN_09 UNKNOWN_0a ZW_SET_R_F_RECEIVE_MODE ZW_SET_SLEEP_MODE ZW_SEND_NODE_INFORMATION ZW_SEND_DATA ZW_SEND_DATA_MULTI ZW_GET_VERSION ZW_SEND_DATA_ABORT ZW_R_F_POWER_LEVEL_SET ZW_SEND_DATA_META ZW_GET_RANDOM MEMORY_GET_ID MEMORY_GET_BYTE MEMORY_PUT_BYTE MEMORY_GET_BUFFER MEMORY_PUT_BUFFER FLASH_AUTO_PROG_SET UNKNOWN_28 NVM_GET_ID NVM_EXT_READ_LONG_BUFFER NVM_EXT_WRITE_LONG_BUFFER NVM_EXT_READ_LONG_BYTE NVM_EXT_WRITE_LONG_BYTE ZW_GET_NODE_PROTOCOL_INFO ZW_SET_DEFAULT ZW_REPLICATION_COMMAND_COMPLETE ZW_REPLICATION_SEND_DATA ZW_ASSIGN_RETURN_ROUTE ZW_DELETE_RETURN_ROUTE ZW_REQUEST_NODE_NEIGHBOR_UPDATE ZW_APPLICATION_UPDATE ZW_ADD_NODE_TO_NETWORK ZW_REMOVE_NODE_FROM_NETWORK ZW_CREATE_NEW_PRIMARY ZW_CONTROLLER_CHANGE ZW_SET_LEARN_MODE ZW_ASSIGN_SUC_RETURN_ROUTE ZW_REQUEST_NETWORK_UPDATE ZW_SET_SUC_NODE_ID ZW_DELETE_SUC_RETURN_ROUTE ZW_GET_SUC_NODE_ID ZW_SEND_SUC_ID ZW_EXPLORE_REQUEST_INCLUSION ZW_REQUEST_NODE_INFO ZW_REMOVE_FAILED_NODE_ID ZW_IS_FAILED_NODE ZW_REPLACE_FAILED_NODE UNKNOWN_66 UNKNOWN_67 UNKNOWN_78 GET_ROUTING_TABLE_LINE LOCK_ROUTE_RESPONSE UNKNOWN_92 UNKNOWN_93 UNKNOWN_98 UNKNOWN_b4 ZW_WATCHDOG_ENABLE ZW_WATCHDOG_DISABLE ZW_WATCHDOG_CHECK ZW_SET_EXT_INT_LEVEL ZW_RF_POWERLEVEL_GET ZW_TYPE_LIBRARY ZW_SEND_TEST_FRAME ZW_GET_PROTOCOL_STATUS WATCHDOG_START WATCHDOG_STOP UNKNOWN_d4 UNKNOWN_ef ZME_FREQ_CHANGE ZME_BOOTLOADER_FLASH UNKNOWN_f5
     2015-09-02 22:22:09   ctrlCaps        PRIMARY
     2015-09-15 19:36:43   homeId          HomeId:d45fed61 CtrlNodeId:01
     2015-09-07 22:26:54   isFailedNode_2  016201
     2015-09-07 22:32:12   isFailedNode_3  016201
     2015-09-05 17:30:19   neighborList_1  4
     2015-09-05 17:30:04   neighborList_4  0
     2015-09-06 17:04:12   nodeInfo_1      STATIC_CONTROLLER STATIC_CONTROLLER listening frequentListening:0 beaming:16 40kBaud Vers:4 Security:0
     2015-09-15 21:06:35   nodeInfo_2      node 2 is not present
     2015-09-02 22:45:10   nodeInfo_3      node 3 is not present
     2015-09-05 17:29:11   nodeInfo_4      ROUTING_SLAVE SWITCH_BINARY listening frequentListening:0 beaming:16 routing 40kBaud Vers:4 Security:0
     2015-09-15 21:04:41   nodeList        1,4
     2015-09-15 19:36:43   random          5b02c4f24c905f3e0de04d015bd7bb7e5c406eb5846fd1a31986e514f9bdef0a
     2015-09-15 19:36:43   state           Initialized
     2015-09-15 19:45:47   timeouts        0106640f
   SendStack:
Attributes:
   alias      Z-Wave Controller
   group      Controllers
   icon       it_wireless_dcf77
   room       Infrastruktur
   verbose    5


krikan

Zitat von: Buwe am 15 September 2015, 21:31:09
Ich werde die beiden blockierten IDs überleben, bin mir aber nicht sicher ob das irgendwelche Seiteneffekte hat (z.B. erhöhte Funklast)?
Das NodeIDs weiter hochgezählt werden, auch wenn Nodes ordnungsgemäß exkludiert bzw. mit removeFailedNode entfernt wurden, ist normaler ZWave-Standard. Nebeneffekte dürfte es nicht geben. Neues Hochzählen der NodeIDs ab 1 bzw. 2 kann man mMn nur durch einen nicht notwenidgen Controllerreset erreichen.

ZitatDa es die gewünschten Befehle im Z-Wave Wiki nicht gibt zwei get Befehle mit Verbose 5:
Danke fürs Lesen der heutigen Wiki-Änderung  :).  Die dort angegeben Befehle sind hier aber grds. nicht notwendig, da zwave-endgerätespezifisch.

jeep

Hallo,

ich habe jetzt seit gestern 3 verschiedene devices nach folgenden Schema ohne Probleme gelöscht.
1. set ZWDongle_Raz removeNode nwOn
2. get ZWDongle_Raz isFailedNode <defekt Nr>  hier 33
  - Ausgabe:ZWDongle_Raz isFailedNode_33 => 016200
3. get ZWDongle_Raz nodeList
4. set ZWDongle_Raz removeFailedNode <defekt Nr>
5. get ZWDongle_Raz nodeList
6. deletereading ZWDongle_Raz isFailedNode_33 und eventuell noch andere readings dieses device löschen und zum Schluss
7. set ZWDongle_Raz removeNode off

Bei einem device stand das reading dann auf 016201. ?
Ich glaube dass das "get ZWDongle_Raz nodeList" nicht unwichtig ist oder auch wie schon erwähnt ein sendNIF zu dem nicht mehr existierenden device abzusetzen. Vielleicht mus man den ZWDongle mit irgendeinem Befehl wachrütteln?

Und falls bis jetzt noch nicht getan das device aus fhem mit "delete <devicename>" löschen.

Vielleicht gehts auch einfacher. Aber das waren wirkliche Leichen und ich konnte sie so alle sauber entfernen.

Und hier meine schöne saubere Nodelist:

ZWDongle_Raz nodeList => 1,7,8,9,24,28,30,31,34,35,36,38,40,41,42,43,44,45

Eine AEOTEC Siren ist gerade dazugekommen.


Grüße,
Josef
Ein wenig HomeMatic
RPi2  - UZB1, FHEM Testsystem - 8 devices
HC2  - 72 devices  (95 % sind Fibaro devices)

krikan

Anliegend Patch für isFailedNode und removeFailedNode mit Klartextevents, so dass evtl. eine bessere Verständlichkeit gegeben ist.

@all
removeFailedNode sollte nur genutzt werden, wenn eine normale Exklusion nicht möglich ist. removeFailedNode funktioniert nur, wenn der Node auf der failedNodeList steht. Dorthin gelangt der Node vereinfacht nur, wenn er zuletzt nicht erreicht wurde. Prüfung, ob der Node auf der failedNodeList steht, erfolgt durch isFailedNode (besser wäre mMn isFailedNodeList).

@Rudi:
Habe zwar keine Probleme mit dem Patch festgestellt, aber bitte kontrolliere -> hoffe habe keine Folgewirkung übersehen. Eine Mini-Dokukorrektur zu CC Color Control habe ich noch mit eingebaut.

rudolfkoenig


Waldgeist78

Hallo zusammen,

die Anleitung funktioniert bei mir nicht. Ich habe ebenso einen ZME_UZB1, allerdings heißen die fehlerhaften Knoten Unknown_X.
isFailedNode_UNKNOWN_2 yes
isFailedNode__UNKNOWN_2 yes

nodeList
ZWDongle UNKNOWN_2 UNKNOWN_3 RM_WZ RM_SZ RM_FL

Wenn ich das nach den oben genannten Schritten durchspiele erhalte ich im LOG folgende Meldung.

PERL WARNING: Argument "UNKNOWN_2" isn't numeric in sprintf at ./FHEM/00_ZWDongle.pm line 316.

Hat jemand ne Idee wie ich die Knoten wieder los werde?

krikan

Wie man aktuell vorgehen muss, steht hier: http://www.fhemwiki.de/wiki/Z-Wave#Wie_kann_man_ohne_Exklusion_Nodes_des_Controllers_l.C3.B6schen.3F

@MaDDin78: Als Argument für "removeFailedNode" musst Du die NodeID nehmen; d.h. Zahl ohne UNKOWN_ davor.

Waldgeist78

Die Anleitung hatte ich auch schon getestet, tut sich nix, :-(

krikan

Zitat von: MaDDin78 am 21 November 2015, 21:39:16
Die Anleitung hatte ich auch schon getestet, tut sich nix, :-(
Hast Du denn immer nur die NodeID genommen? Auch bei isFailedNode (hiernach nicht: isFailedNode_UNKNOWN_2)?
Was sagt das Log?

Waldgeist78

Ja, selbst mit 2 / 3 tut sich da nix, Im Event Log habe ich beim Abschicken folgende Meldung.

2015-11-21 21:54:09 ZWDongle ZWDongle replaceFailedNode 3
2015-11-21 21:54:09 ZWDongle ZWDongle ZW_REPLACE_FAILED_NODE failedNodeRemoveProcessBusy