In-Home Display (IHD)

Development
Since we will be using the IHD in a manner that it was not designed for, nor supported by the vendor, I will attempt to put everything up here I can find out. The ultimate goal will be to be able to send messages and alerts from the CIS (Daffron) to the IHD via TNS (TWACS), preferabley using Multispeak.

For testing, we have obtained 1 IHD, serialnumber 14680410, that is connected to meter number 76074956, which has module 16450573, and is at map location 042436.

A full list of the TWACS tables can be found here.

TWACS TNS Tables
The following are tables in TNS that relate to the IHD.

IHDACCTS
Field nameNullType
SERIALNUMBER N NUMBER(22)
SERIALPORT N NUMBER(22)
IHDMODE Y NUMBER(22)
CUSTOMERACCTNUM Y VARCHAR2(21)
TIMEZONEOFFSET Y NUMBER(22)
LANGUAGE Y CHAR(2)
COUNTRY Y CHAR(2)
LOWMONEYTHRESHOLD Y NUMBER(22)

Content of table after installation of IHD.

SERIALNUMBER 14680410
SERIALPORT 0
IHDMODE 2
CUSTOMERACCTNUM
TIMEZONEOFFSET 0
LA EN
COUS
LOWMONEYTHRESHOLD10

\
IHDMESSAGES
Field nameNullType
MSEXIDNNUMBER(22)
GROUPIDNNUMBER(22)
PRIORITYNNUMBER(22)
SERIALNUMBERNNUMBER(22)
SERIALPORTNNUMBER(22)
SUBIDNNUMBER(22)
REPEATSLEFTNNUMBER(22)
FUNCCODENNUMBER(22)
CMDDATAYVARCHAR2(255)
LASTSENTDTNDATE(7)
TIMEOUTNDATE(7)

There are currently no records in this table.

IHDMODEXREF
Table: IHDMODEXREF
Field nameNullType
IHDMODENNUMBER(22)
DESCRIPYVARCHAR2(21)
SHORTDESCYVARCHAR2(4)

Content of table after installation of IHD.

SQL> select * from ihdmodexref;
IHDMODE DESCRIP SHOR
---------- --------------------- ----
0 Unconfigured UNCF
1 Regular Billing RB
2 Prepayment PP
3 Demand Resp Notif. DRN
4 Reg Bill Demand Resp RBDR
5 Prepay Demand Resp PPDR
6 rows selected.

IHDRSP_INPQ
Table: IHDRSP_INPQ
Field nameNullType
SUBSYSIDYNUMBER(22)
PRIORITYYNUMBER(22)
STAMPYDATE(7)
USERNAMEYVARCHAR2(32)
GROUPIDYNUMBER(22)
PRIYNUMBER(22)
TNSCMDTIMEOUTYDATE(7)
SUBCMDTIMEOUTYNUMBER(22)
SUBIDYNUMBER(22)
MSEXIDYNUMBER(22)
SUBEXIDYNUMBER(22)
FUNCCODEYNUMBER(22)
EXTYPEYNUMBER(22)
UTILACCTIDYNUMBER(22)
CMDDATAYVARCHAR2(255)

IHDSVR_INPQ
Table: IHDSVR_INPQ
Field nameNullType
SUBSYSIDYNUMBER(22)
PRIORITYYNUMBER(22)
STAMPYDATE(7)
USERNAMEYVARCHAR2(32)
GROUPIDYNUMBER(22)
PRIYNUMBER(22)
TNSCMDTIMEOUTYDATE(7)
SUBCMDTIMEOUTYNUMBER(22)
SUBIDYNUMBER(22)
MSEXIDYNUMBER(22)
SUBEXIDYNUMBER(22)
FUNCCODEYNUMBER(22)
EXTYPEYNUMBER(22)
UTILACCTIDYNUMBER(22)
CMDDATAYVARCHAR2(255)

Results of IHDSVR_INPQ after issuing a Prepay configure message:

Select * from ihdsvr_inpq;
SUB
SYS
ID
PRIORITY STAMPUSERNAMEGROUPID PRITNS
CMD
TIM
SUBCMD
TIME
OUT
SUBIDMSEXID SUBEXIDFUNCCODEEXTYPEUTILACCTIDCMDDATA
75-1 19-MAY-09 IHD_SQLPROC321714 254300001014680410|0

Results of IHDSVR_INPQ after issuing a Broadcast message:
Select * from ihdsvr_inpq;
SUB
SYS
ID
PRIORITY STAMPUSERNAMEGROUPID PRITNS
CMD
TIM
SUBCMD
TIME
OUT
SUBIDMSEXID SUBEXIDFUNCCODEEXTYPEUTILACCTIDCMDDATA
75-119-MAY-09IHD_SQLPROC321723 254300003014680410|0|0|2|3|2|2|1|1|0|Line 2
75-119-MAY-09IHD_SQLPROC321721 254300003014680410|0|0|2|3|2|2|0|0|1|-
75-119-MAY-09IHD_SQLPROC321722 254300003014680410|0|0|2|3|2|2|1|0|0|line 1

CMDDATA appears to break down as follows:
ColumnBreak-down
1Serialnumber
2
3
4Expiration
0 - No expiration
1-? (Increments of 15 minutes)
5Audible Alert
0 - None
1 - 1 Beep/3 Sec.
2 - 1 Beep/minute
3 - 1 Beep/15 minutes
6LED State
0 - Off
2 - Flash
3 - On
7
8Attached Lines?
0 - none/1 line of text
1 - 2 Lines of text
2 - 3 Lines of text
3 - 4 Lines of text
9Text
0
1 - Line 2 of message
2 - Line 3 of message
10Index Flag?
1 - Initial Record
0 - Line 1
11Message to display

The DeviceRelations tabl apparently associates the IOHD with the associated meter, thereby providing TNS with the communications path to communicate with the IHD.
Table: DEVICERELATIONS
Field nameNullTypeComments
PRISERIALNUMBERNNUMBER(22)Serialnumber of IHD
SECSERIALNUMBERNNUMBER(22)Serialnumber of associated meter (Module)
RELATIONTYPENNUMBER(22)1 - In-Home Display
2 - DSI Module
3 - Demand Response Unit
USER1YVARCHAR2(17)empty
USER2YVARCHAR2(17)empty
UPDATEFLAGYNUMBER(22)empty

Add and IHD to TWACS

The following insert command adds the IHD to the TWACS TNS System.

insert into serialnumber values
(14680410,NULL,NULL,0,0,0,0,0,0,77,11,'NONE',NULL,
SYSDATE,0,NULL,'Y','1W',SYSDATE,SYSDATE,0,0,0,0,NULL,
0,NULL,SYSDATE,NULL,NULL);

insert into devicerelations values(14680410,16450573,1,NULL,NULL,NULL);
--on the devicerelaions table (firstSN is IHD, 2nd is Associated SN)
insert into serialportref (serialnumber,serialport,prepayflag) values(14680395,0,1);

insert into serialport values(14680410,0,NULL,NULL,SYSDATE,SYSDATE,0,NULL,'Y',0,NULL,SYSDATE,NULL,NULL);

insert into ihdaccts values(14680410,0,0,NULL,0,'EN','US',3);