@@ -0,0 +1,1753 @@
+package com.uwetrottmann.wpdisplay.model;%0A%0A/**%0A * Holder object for heat pump controller status data.%0A */%0Apublic class StatusData %7B%0A%0A    /**%0A     * Maximum length of data supported. Sent status data is actually 183 bytes long, but we don't%0A     * care about the rest, yet.%0A     */%0A    public final static int LENGTH_BYTES = 80;%0A%0A    interface Index %7B%0A        /**%0A         * All following are temparature values, factor 10, Celsius.%0A         */%0A        int TEMP_OUTGOING = 10;%0A        int TEMP_RETURN = 11;%0A        int TEMP_RETURN_SHOULD = 12;%0A        int TEMP_OUTDOORS = 15;%0A        int TEMP_WATER = 17;%0A        int TEMP_WATER_SHOULD = 18;%0A        int TEMP_SOURCE_IN = 19;%0A        int TEMP_SOURCE_OUT = 20;%0A%0A        /**%0A         * All following are time values, Seconds.%0A         */%0A        int TIME_PUMP_ACTIVE = 67;%0A        int TIME_REST = 71;%0A        int TIME_COMPRESSOR_NOOP = 73;%0A        int TIME_RETURN_LOWER = 74;%0A        int TIME_RETURN_HIGHER = 75;%0A    %7D%0A%0A    private int%5B%5D rawData;%0A%0A    public StatusData(int%5B%5D rawData) %7B%0A        if (rawData.length != LENGTH_BYTES) %7B%0A            throw new IllegalArgumentException(%0A                    %22array is not size %22 + LENGTH_BYTES + %22 but was %22 + rawData.length);%0A        %7D%0A        this.rawData = rawData;%0A    %7D%0A%0A    public double getTemperatureOutdoors() %7B%0A        return getTemperature(Index.TEMP_OUTDOORS);%0A    %7D%0A%0A    private double getTemperature(int index) %7B%0A        int tempRaw = getValueAt(index);%0A        return tempRaw / 10.0;%0A    %7D%0A%0A    private int getValueAt(int index) %7B%0A        if (index + 1 %3E rawData.length) %7B%0A            throw new IllegalArgumentException(%0A                    %22index must be from 0 to array length %22 + rawData.length);%0A        %7D%0A%0A        return rawData%5Bindex%5D;%0A    %7D%0A%7D%0A

Add holder class for status data.