Jump to content

How to edit ISY Links Table for a Device


shadowb

Recommended Posts

  • 3 weeks later...

I have a similar issue as the person in this thread, my 2477S (Wall switch) has been corrupted with a device link record of type AA and the address of one of my motion sensors. Now, I could go through the remove/readd, but I don't feel that is the proper way, so I've done some digging in the ISY (since that's the source of the corruption) and it seems possible to backup the isy, edit the record manually (replacing AA with A2 which is responder) and then restore. This should correct the incorrect value in the ISY and a subsequent "Restore Device" should then replace the faulty link with a responder link which ISY will allow me to remove.

 

I'll let you know how it works (might be doomed if ISY produces a checksum for its backups)

 

BUT!

If anyone from Universal Devices are reading this, we need a way to find errors like this (you should know what's considered valid values) and issue warnings and also allow a manual "erase" of such links. Because editing a backup and the restoring it makes me feed uncomfortable :)

Link to comment

@LeeG: If you happen to have a list of all Record Types, that would be awesome :) I found two more odd ones (value 62) and it would be great to know if it was expected or not.

 

Also, this script in bash can be used to probe the *.REC files in the ISY backup:

#!/bin/bash

function getrecord()
{
        BASE=$((180 + $2 * )
        hexdump -v -s $BASE -n 8 -e '8/1 "%02x " "\n"' $1
}

FILE=$1
HIDE=$2
HIDE=${HIDE:=false}

I=0
TYPE=""
while [ "$TYPE" != "00" ]; do
        REC=$(getrecord $FILE $I)
        TYPE="${REC:0:2}"
        case "$TYPE" in
                e2|a2|22|02|00)
                        if ! $HIDE ; then
                                printf "%02d: %s - OK\n" $I "$REC"
                        fi
                        ;;
                *)
                        if $HIDE ; then
                                printf "%02d: %s - WARNING (%s)\n" $I "$REC" "$FILE"
                        else
                                printf "%02d: %s - WARNING\n" $I "$REC"
                        fi
                        ;;
        esac
        I=$(($I+1))
done

like so:

for F in *.REC ; do ./screen-rec.sh $F true ; done

1st argument is the file to probe, 2nd argument is true to only show odd values or false (or skipped) to show all records.

Link to comment

MrWorf

 

The 62 is an inactive record.    The AA is valid for the SwitchLinc Relay device.   

 

SmartLabs use to have a link that showed the possible values in bits 3 & 4.   The SmartLabs page has changed making it more difficult to find the document.    I may have a copy locally which I will post if available.

Link to comment

LeeG,

 

The link is on the Switch, it's kinda half-linked, so the switch listens to events from motion, but motion does not care about switch. And the problem is that ISY has a record of it. My plan is to backup, edit the <insteon id>.REC file with a hex editor and replace AA with 22 (deleted) and restore the backup. After that, I should be able to issue a restore device to the switch and presto, motion sensor should no longer trigger my switch.

 

I'll let you know about my result later tonight :)

Link to comment

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...