Как вообще работать с этим значением?
nxsnmpwalk.exe 10.102.12.2 .1.3.6.1.2.1.25.3.5.1.2                                                                                                                                                  .1.3.6.1.2.1.25.3.5.1.2.1 [STRING]: ?    
                        
Мониторим принтеры, элемент hrPrinterDetectedErrorStateинтересует oid: 1.3.6.1.2.1.25.3.5.1.2.1 выдаёт octet string (hex string).
Из описания
            Condition        Bit #
            lowPaper              0
            noPaper              1
            lowToner              2
            noToner              3
            doorOpen              4
            jammed                5
            offline              6
            serviceRequested      7
            inputTrayMissing      8
            outputTrayMissing    9
            markerSupplyMissing  10
            outputNearFull      11
            outputFull          12
            inputTrayEmpty      13
            overduePreventMaint  14
			
			
			
				Если запустить скрипт на ноде, то:
transport = $node->createSNMPTransport();  
if (transport == null) exit;
value = transport->get(".1.3.6.1.2.1.25.3.5.1.2.1");
if (value == null) exit;
bytestream = value->getValueAsByteStream();
bytestream->seek(0); 
println(bytestream->readByte());
bytestream->seek(xxx) позволяет указать, с какого байта мы хотим читать. При создании byte stream будет стоять на 0, так что bytestream->seek(0); делать и не нужно. 
Тут мы прочитали один байт. Можно прочитать и сразу два:
println(bytestream->readUInt32B());
или
println(bytestream->readUInt32L());
смотря как они там идут - как Little Endian или Big Endian. 
Ну и стоит проверить, что bytestream->size достаточной длины, чтоб в нем два байта поместилось. 
Судя по описанию там каждый бит сообщает о каком-то состоянии. Нужен ли пример разбора по битам?
------
В документации bytestream не описан, будем потихоньку добавлять. Но информацию об NXSL классах можно добыть прямо в скрипте, это может помочь разобраться:
transport = $node->createSNMPTransport();  
if (transport == null) exit;
value = transport->get(".1.3.6.1.2.1.25.3.5.1.2.1");
if (value == null) exit;
println("=========================================================");
println("Class: " . classof(value));
println("=== Attributes ===");
for(a : value->__class->attributes)
  println(a . " = " . value->__get(a));
println("=== Methods ===");
for(a : value->__class->methods)
  println(a);
bytestream = value->getValueAsByteStream();
println("=========================================================");
println("Class: " . classof(bytestream));
println("=== Attributes ===");
for(a : bytestream->__class->attributes)
  println(a . " = " . bytestream->__get(a));
println("=== Methods ===");
for(a : bytestream->__class->methods)
  println(a);