NEWS
[Frage] Wie lautet der Syntax für adapter.getState
-
Laut https://github.com/ioBroker/ioBroker/wiki/Adapter-Development-Documentation#object-fields:
adapter.getState('myState', function (err, state) { adapter.log.info( 'State ' + adapter.namespace + '.myState -' + ' Value: ' + state.val + ', ack: ' + state.ack + ', time stamp: ' + state.ts + ', last changed: ' + state.lc );
-
Ist das gleiche wie bei einer anderen frage von dir: Adapter ist alles asynchron!! Also per callbacks ausschließlich.
Gesendet vom Handy …
-
Da bin ich noch nicht wirklich durchgestiegen :lol:
Ich versuche mich zu bessern
-
Wenn man aus dem JavaScript-Adapter Skript-Umfeld kommt muss man da umdenken.
Im JavaScript-Adapter sind einige Dinge synchron gemacht damit es beim Scripte-Scheiben einfacher ist. Aber Adapter ist "plain"
-
Wenn man aus dem JavaScript-Adapter Skript-Umfeld kommt muss man da umdenken.
Im JavaScript-Adapter sind einige Dinge synchron gemacht damit es beim Scripte-Scheiben einfacher ist. Aber Adapter ist "plain" `
Erschwerend kommt noch hinzu dass ich eigentlich nur ein Hobby-Scripter bin und das alles durch "learning bei schmeißing in the eis cold water" lernen muss :lol:
-
Danach kannst Du noch viele weitere Adapter bauen :-))
-
Danach kannst Du noch viele weitere Adapter bauen :-)) `
Bis dahin bin ich ergraut!
Eine Frage hab ich noch, wie macht der Profi das nun dass er mit:
adapter.setObjectNotExists('History.letztes_minimal_Backup', {type: 'state', common: {name: 'Letztes minimal Backup', type: 'string', state: 'Noch kein Backup', role: 'indicator'}, native: {}});
Den Datenpunkt erstellt und ihn gleich mit bspw. (Noch kein Backup) befüllt?
Weil wenn jetzt der Datenpunkt neu erstellt wurde, ist er ja leer d.h. wenn ich in abfrage bekomme ich einen error (TypeError: Cannot read property 'val' of null) Wenn ich ihn jedoch mit setState befüllen würde ohne vorher zu prüfen ob da schon was drin steht, würde ja bei jedem Adapterstart wieder der "Default-Eintrag" reingeschrieben werden.
Oder sehe ich das falsch?
-
An der Stelle würde ich das Trennen. Du machst einmal setObjectNotExists und danach ein "getState" und im Callback wenn state oder stata.val ===null ist dann den Wert setzen.
-
Ich weiß ich bin etwas spät, aber dafür gibts eigentlich
{..., common: { ..., def: "Standardwert", ... }, ...}
-
Menno … stimmt ... du hast recht ... ohje ...