NEWS
Alias nach Bedingung aus Zwei Datenpunkten füllen
-
Hallo zusammen,
ist es möglich einen Alias nach einer Bedingung zu füllen?
Konkret:
Es soll ein AliasDatenpunkt nach einer aktualität eines Datenpunktes, nicht älter als 1h, entweder mit dem einen, oder einen anderen Datenpunkt beschrieben werden. -
@australien sagte: entweder mit dem einen, oder einen anderen Datenpunkt beschrieben werden.
So etwas geht nur per Skript.
-
@paul53
das hatte ich befürchtet.
Leider bin ich da nicht sehr versiert, kannst du mir da ein grobes vorstellen, welches ich dann bei mir anpassen kann. -
@australien sagte: vorstellen, welches ich dann bei mir anpassen kann.
Dazu ist die Aufgabenstellung zu vage.
EDIT: Meinst Du so mit den zwei Quell-Datenpunkten?
const id1 = ''; // bevorzugter DP const id2 = ''; // alternativer DP const idDst = '0_userdata.0.xyz'; var ts1 = getState(id1).ts; on({id: id1}, function(dp) { setState(idDst, dp.state.val, dp.state.ack); ts1 = dp.state.ts; }); on({id: id2}, function(dp) { if(dp.state.ts - ts1 > 3600000) setState(idDst, dp.state.val, dp.state.ack); });
-
@paul53
danke und sorry für meine späte Rückmeldung.ich habe das Script jetzt folgendermaßen abgeändert
/* befüllt den Alias Datenpunkt für die lokale Temperatur am NSPanel */ const id1 = 'netatmo-crawler.0.stationData.1.temperature'; // bevorzugter DP const id2 = 'alias.0.Wetter.ORT.TEMP'; // alternativer DP // const idDst = '0_userdata.0.xyz'; const idDst = '0_userdata.0.NSPanel.eigen_TEMP'; var ts1 = getState(id1).ts; on({id: id1}, function(dp) { setState(idDst, dp.state.val, dp.state.ack); ts1 = dp.state.ts; }); on({id: id2}, function(dp) { if(dp.state.ts - ts1 > 360) setState(idDst, dp.state.val, dp.state.ack); });
nun das Problem genauer erklärt.
Der Adapter netatmo-crawler bekommt hinundwieder kein aktuelles Wetter, warum auch immer (?). Nun soll, wenn der Datenpunkt daraus älter als 6 Minuten (360) ist, mit dem id2 Daten beschrieben werden.Das funktioniert auch mit diesem Script, Danke!
-
@australien sagte: 6 Minuten (360)
Da fehlen 3 Nullen (ts ist in ms).
-
@paul53
Danke für den Hinweis, hatte nur bei JS geschaut.