NEWS
Woher globale Einheiten (°C / F), (mm / inch)?
-
ich würde gerne Code bauen, der mit Temperaturen korrekt umgeht und die Einheiten des Systems berücksichtigt. Dazu müsste es doch möglich sein auf die "Grundeinstellungen" zuzugreifen - wie geht das?
Und gibt es im ioBroker dafür Umrechnungsfunktionen oder baut man die selbst? -
-
ok - das alias-thema habe ich nicht verstanden - belibt auf meiner Liste der "mus ich noch ausprobieren/lesen" themen.
Die Eingangsfrage war: wo legt ioBroker die "Systemgrundeinstellungen" ab und wie komme ich per js da dran? -
@ltathome sagte in Woher globale Einheiten (°C / F), (mm / inch)?:
wo legt ioBroker die "Systemgrundeinstellungen" ab
Im Object "system.config".
@ltathome sagte in Woher globale Einheiten (°C / F), (mm / inch)?:
wie komme ich per js da dran?
var common = getObject('system.config').common; var tempUnit = common.tempUnit; // usw.
-
@paul53 Wunderbar - danke!
-
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