def decode(packet):
    """
    https://github.com/telldus/telldus/blob/master/telldus-core/service/ProtocolMandolyn.cpp

    >>> decode(dict(data=0x134039c3))["data"]["temp"]
    7.8
    """
    data = packet['data']
    value = int(data)
    value >>= 1
    temp = ((value & 32767) - 6400) / 128
    temp = round(temp, 1)
    value >>= 15
    humidity = value & 127
    value >>= 7
    value >>= 3
    channel = (value & 3) + 1
    value >>= 2
    house = value & 15
    return dict(packet, sensorId=house * 10 + channel, data=dict(temp=temp,
        humidity=humidity))
