My initial success with the WIFI unit seem to be not quite as great… I can have several missed commands in a row, then a string of successful KEYs… so I’ve ordered up the
PUSR USR-TCP232-304 Serial RS485 to TCP/IP Ethernet adapter. Think I’ll connect it directly to my Pi and then communicate via WIFI from the Pi to the rest of my network.
Meanwhile, while waiting for Amazon to deliver the new adapter, I’ve been writing my base service that my HomeSeer layer will connect to. I’ve opted for a fixed ID + variable length payload, very human and machine friendly format. Whether something connect to this using stdIn/stdOut piping or I put this in a tcp wrapper, it will be easy to use.
On the display I strip off the 0x80 bit on any flashing text and enclose flashing text “as not flashing [is flashing]”. I think it makes it quite readable, especially in the settings menu when setting the date/time. In this sample below I set the temp. Interesting that when I set it down one degree, the heater turned off and that resulted in the state LEDs getting updated before the display was updated.
When the LEDs are updated, I send all out, when a variable is updated, I only send that one out, but the command STATE will give both full sets. I also have a 5 minute timer that sends them both out just to help an interface remain in sync.
On receipt of DISPLAY, PANEL_LED, VARIABLE, the client app can easily parse what data it needs. Yeah, could have wrapped it all in JSON, but then harder for a human to just sit in front of it.
In my config I have the AUX_1 device as LANDSCAPE (lighting) and VALVE_3 as DECKJETS, I’ve also suppressed some items that I don’t use, such as SPA *
Sample output, yeah I support upper and lowercase on the commands.
DISPLAY__: Salt Level 3200 PPM
DISPLAY__: Heater1 Auto Control
DISPLAY__: Thursday 9[:]57A
menu
CMD_SENT_:
DISPLAY__: Settings Menu
right
CMD_SENT_:
DISPLAY__: Pool Heater1 [87_F]
minus
CMD_SENT_:
---------------------------------------
PANEL_LED: POOL : ON
PANEL_LED: SERVICE : OFF
PANEL_LED: CHECK_SYSTEM : OFF
PANEL_LED: LIGHTS : OFF
PANEL_LED: LANDSCAPE : OFF
PANEL_LED: DECKJETS : OFF
PANEL_LED: FILTER : ON
PANEL_LED: HEATER_1 : OFF
PANEL_LED: HEATER_AUTO_MODE: ON
PANEL_LED: SUPER_CHLORINATE: OFF
---------------------------------------
DISPLAY__: Pool Heater1 [86_F]
menu
CMD_SENT_:
DISPLAY__: Timers Menu
menu
CMD_SENT_:
DISPLAY__: Diagnostic Menu
menu
CMD_SENT_:
DISPLAY__: Configuration Menu-Locked
menu
CMD_SENT_:
DISPLAY__: Default Menu
DISPLAY__: Thursday 9[:]58A
DISPLAY__: Pool Temp 86 F
state
---------------------------------------
PANEL_LED: POOL : ON
PANEL_LED: SERVICE : OFF
PANEL_LED: CHECK_SYSTEM : OFF
PANEL_LED: LIGHTS : OFF
PANEL_LED: LANDSCAPE : OFF
PANEL_LED: DECKJETS : OFF
PANEL_LED: FILTER : ON
PANEL_LED: HEATER_1 : OFF
PANEL_LED: HEATER_AUTO_MODE: ON
PANEL_LED: SUPER_CHLORINATE: OFF
---------------------------------------
VARIABLE_: AIR_TEMPERATURE : 73 F
VARIABLE_: POOL_TEMPERATURE: 86 F
VARIABLE_: POOL_CHLORINATOR: 30 %
VARIABLE_: SALT_LEVEL : 3200 PPM
VARIABLE_: CHECK_SYSTEM_MSG: None
---------------------------------------
DISPLAY__: Pool Temp 86 F
DISPLAY__: Air Temp 73 F