Hallo,
ich frage mich, was du für einen Code benutzt, der mit beiden Sensoren umgehen kann. Grundsätzlich sind die Binärwerte beim B-Typ doch um drei Stellen nach links geshiftet.
22° beim B-Typ 0000 0001 0110 0000 entsprechen
22° beim S-Typ 0000 0000 0010 1100 .
Wenn du "normalen" S-Code verwendest wird meistens überprüft, ob das obere byte FF ist und falls nicht gefolgert, dass dann positive Temperaturen vorliegen. Dann wird einmal rechts geshiftet (:2).
Bei 22° ergibt das 0000 0000 1011 0000 (B), also den Wert 176.
Bei 22° ergibt das 0000 0000 0001 0110 (S), also den Wert 22.
Vielleicht ist das dein +150°?

Gruß

Rolf