das funktioniert prima in scripten - in einem eigenen Adapter rennt der auf Fehler, bzw. liefert nichts.
Es scheint auch noch andere "Nicklichkeiten" beim übertragen von Code in einen Adapter zu geben:
z.B. hatte ich mit:
subscribe({id: "fhem.0.AU_GA_TF_Garage.humidity", change:'any'}, ZimmermanTrackHumidity);
nen subscribe auf nen Luftfeuchte-Sensor gesetzt und der Callback hat dann mit:
...
function ZimmermanTrackHumidity(obj) {
var ts = new Date(obj.newState.ts);
var currenthour = ts.getHours();
var newstate = parseFloat(obj.newState.val);
...
wie erwartet die Werte geliefert.
wenn ich nun im Adapter:
this.subscribeForeignStates("fhem.0.AU_GA_TF_Garage.humidity", this.trackHumidity);
mache und der Callback so aussieht:
trackHumidity(obj) {
var ts = new Date(obj.newState.ts);
var currenthour = ts.getHours();
var newstate = parseFloat(obj.newState.val);
dann bekomme ich:
Caught by controller[0]: TypeError: Cannot read property 'newState' of null