Skip to content

Instantly share code, notes, and snippets.

@brad-jones
Created January 9, 2023 09:03
Show Gist options
  • Save brad-jones/b0a20c9eff5f0c070d4e241f4eb459d3 to your computer and use it in GitHub Desktop.
Save brad-jones/b0a20c9eff5f0c070d4e241f4eb459d3 to your computer and use it in GitHub Desktop.
Notes on Evakool Fridge WiFi Protocol

evakool

My evakool fridge comes with an app that connects over WiFi to a proprietary TCP service. ie: not HTTP.

The Android app that talks to this TCP service is shit.

I'm going to attempt to make a less shit app.

The Network

You connect to a WiFi network named JTZNBX_<FRIDGE_ID>

In my case <FRIDGE_ID> is 767BC1

The fridge hands out DHCP addresses, where it is the default gateway of 192.168.4.1/24

The WiFi network it's self is unprotected.

Protocol Spec

Assuming you can ping the fridge then these are the commands you can send it over TCP port 180.

Login

The <USERNAME> & <PASSWORD> appear to be static, I got them from this manual: https://www.evakool.com.au/core/media/media.nl?id=62328&c=6457383&h=op1S_KjoBH-SUttFdrA5xkhUzQJeTB2U0QASk1xH3-ssQ5Zr&_xt=.pdf

  • TX: JTZNBX2015#login#<FRIDGE_ID>#<USERNAME>#<PASSWORD>#

    • eg: JTZNBX2015#login#767BC1#12345678900#123456#
  • RX: SUCCESS#76#1#

    • No idea what the 76 & 1 mean

Read State

This is perhaps going to be the most useful thing we get out of the the fridge.

  • TX: JTZNBX2015#read_state#

  • RX: SUCCESS#<CURRENT_TEMP_LEFT>#<CURRENT_TEMP_RIGHT>#<REQUESTED_TEMP_LEFT>#<REQUESTED_TEMP_RIGHT>#<VOLTS>#<VOLTS_DECIMAL>#10#0#

    • eg: SUCCESS#2#-16#0#-18#27#16#10#0#
    • I think the last 10#0 may have something to do with the low voltage cut off setting
      • 10 = HIGH VOLTAGE CUTOFF = 11.8
      • 9 = MEDIUM VOLTAGE CUTOFF = 11.4v
      • 8 = LOW VOLTAGE CUTOFF = 10.1v
      • Still no idea what the last #0 means???
        • Actually at a guess I think it might be like an error code. The android app has a box with the words "Fridge working properly" but I guess it's possibly that could contain other messages based on this last last digit.
          • In the manual there are a list of error codes, my guess is that this last digit relates to this in some way.
            • ER1: Thermistor is Unplugged
            • ER2: Thermistor is Short Circuited
            • E1: Low Voltage
            • E2: Fan Issue - Fan is drawing too many Amps (Over 1 Amp).
            • E3: Compressor Start Issues
            • E4: The Compressor Speed is Too Low
            • E5: Ambient Temperature Too High
  • RIGHT = SMALLSIDE (has shelf at least on my TravelMate 80L)

  • LEFT = BIGSIDE

Set Config

  • TX: JTZNBX2015#setconfig#50#32#<XFACTOR>#

    • XFACTOR: 8 low volts & celsius
    • XFACTOR: 9 med volts & celsius
    • XFACTOR: 10 high volts & celsius
    • XFACTOR: 12 low volts & ferhnheight
    • XFACTOR: 13 med volts & ferh
    • XFACTOR: 14 high volts & fern
    • Seems to +4 for ferhnheight
    • Not sure what that #50#32# are yet, i presume temp but that have not changed throughout
    • Added 1 degree to LEFT and I now get #51#
    • Did the same for RIGHT and got #33#
    • So I presume JTZNBX2015#setconfig#<REQUESTED_TEMP_LEFT>#<REQUESTED_TEMP_RIGHT>#<XFACTOR>#
    • But when setting the temp it's always in Ferhinheight???
  • RX: SUCCESS

Graphs

Honestly though I think we can just poll the read state function ourselves

  • TX: JTZNBX2015#read_<Y>_<X>#
    • <Y> = wd1 = left temp
    • <Y> = wd2 = right temp
    • <Y> = dy1 = volts
    • Where <X> is 1 through 8, like paging I think
    • You get back a whole heap of crap that I really can't be bothered with right now.
    • Like I say we will just poll the read state & put results into our own db.

ON/OFF

Settings XFACTOR to 2 seems to turn the fridge off. Setting it back to 10 or a I guess a valid value turns it back on.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment