NEWS
[gelöst] OnLog liefert kein Wert
-
Hallo,
ich habe den Smartmeter-Adapter mit einem Abfrage-Intervall am laufen. Damit dieser immer zum selben Zeitpunkt die Daten abruft, muss er zu einen definierten Zeitpunkt gestartet werden. Das Script für den Start ist kein Problem und läuft ohne Probleme.
Was mein Problem ist wenn der IoBroker zwischendurch mal durchgestartet werden muss, wegen Update oder ..., dann ist der Adapter nicht zum richtigen Zeitpunkt wieder aktiv. Jetzt war meine Idee mit OnLog die Meldung des Adapter abzufangen und die Zeit auszuwerten und ggf. den Adapter zu stoppen.
dieses Script liefert mir aber keine Infos. Wo ist mein Fehler??
log Meldung2025-09-04 03:41:56.759 - info: smartmeter.0 (2677026) Received 66 values, 5 updated
Script
onLog('info', (data) => { if (data && data.from == 'smartmeter.0') { log(data.from); log(data.message); log(getDateObject(data.ts).getMinutes()); } });
-
@tt-tom sagte: Wo ist mein Fehler??
Versuche es mal so:
if (data && data.message.startsWith('smartmeter.0')) {
EDIT: Gerade getestet: Es müsste auch mit data.from funktionieren.
-
das hat auch keine Meldung geliefert. ich habe mal einen anderen Adapter eingesetzt, auch ohne Erfolg.
-
@paul53 sagte in OnLog liefert kein Wert:
EDIT: Gerade getestet: Es müsste auch mit data.from funktionieren.
ich glaube es liegt an 'info' mit Error habe ich das für einen anderen Adapter am laufen.
-
@tt-tom sagte: ich glaube es liegt an 'info'
Das kann sein, denn ich habe es mit 'warn' getestet.
-
@paul53
bei Info könnte ich mir vorstellen das der Trigger Amok läuft. In der Doku steht aber nur was von '*' ist disabeld -
@tt-tom sagte: In der Doku steht aber nur was von '*' ist disabeld
In der Doku steht auch
Important: you cannot output logs in handler with the same severity to avoid infinite loops.
So funktioniert es:
log(data.from, 'warn');
-
@paul53 sagte in OnLog liefert kein Wert:
Important: you cannot output logs in handler with the same severity to avoid infinite loops.
Ah. Okay, dann gebe ich das als Warnung aus, was ja bei mir da auch Sinn macht. Ich teste es gleich mal.
-
@paul53 sagte in OnLog liefert kein Wert:
@tt-tom sagte: In der Doku steht aber nur was von '*' ist disabeld
In der Doku steht auch
Important: you cannot output logs in handler with the same severity to avoid infinite loops.
So funktioniert es:
log(data.from, 'warn');
Okay, es funktioniert. ja wenn mann die Doku nicht komplett liest oder nur überfliegt.