// Décodeur LoRaWAN officiel : UV254-LB (Dragino) // Source : https://github.com/TheThingsNetwork/lorawan-devices/blob/master/vendor/dragino/uv254-lb.js // The Things Network Device Repository, fichier publié par le constructeur, distribué sans modification. // Format : decodeUplink(input) (TTN v3 / ChirpStack v4). Hébergé par smartbuildings.fr. function datalog(i,bytes){\n var aa= parseFloat((bytes[2+i]<<8 | bytes[2+i+1])/1000).toFixed(3); \n var string='['+ aa +']'+','; \n return string;\n}\n\nfunction Decoder(bytes, port) {\n if(port==5)\n {\n var freq_band;\n var sub_band;\n var sensor;\n \n if(bytes[0]==0x16)\n sensor= \"PS-LB\";\n \n var firm_ver= (bytes[1]&0x0f)+'.'+(bytes[2]>>4&0x0f)+'.'+(bytes[2]&0x0f);\n \n if(bytes[3]==0x01)\n freq_band=\"EU868\";\n else if(bytes[3]==0x02)\n freq_band=\"US915\";\n else if(bytes[3]==0x03)\n freq_band=\"IN865\";\n else if(bytes[3]==0x04)\n freq_band=\"AU915\";\n else if(bytes[3]==0x05)\n freq_band=\"KZ865\";\n else if(bytes[3]==0x06)\n freq_band=\"RU864\";\n else if(bytes[3]==0x07)\n freq_band=\"AS923\";\n else if(bytes[3]==0x08)\n freq_band=\"AS923_1\";\n else if(bytes[3]==0x09)\n freq_band=\"AS923_2\";\n else if(bytes[3]==0x0A)\n freq_band=\"AS923_3\";\n else if(bytes[3]==0x0F)\n freq_band=\"AS923_4\";\n else if(bytes[3]==0x0B)\n freq_band=\"CN470\";\n else if(bytes[3]==0x0C)\n freq_band=\"EU433\";\n else if(bytes[3]==0x0D)\n freq_band=\"KR920\";\n else if(bytes[3]==0x0E)\n freq_band=\"MA869\";\n \n if(bytes[4]==0xff)\n sub_band=\"NULL\";\n else\n sub_band=bytes[4];\n\n var bat= (bytes[5]<<8 | bytes[6])/1000;\n \n return {\n SENSOR_MODEL:sensor,\n FIRMWARE_VERSION:firm_ver,\n FREQUENCY_BAND:freq_band,\n SUB_BAND:sub_band,\n battery:bat,\n }\n }\n else if(port==7)\n {\n var Bat= (bytes[0]<<8 | bytes[1])/1000;\n for(var i=0;i5)\n {\n \n decode.absorbance= \"invalid data\"\n };\n if(bytes.length!=1)\n {\n return decode;\n }\n }\n}