NEWS
Anwesenheitsmeldung zu häufig
-
Moin moin,
ich habe mir per Blockly ein Script angelegt welches über den Ping ermitteln soll ob ich oder meiner Frau (die Handys) zuhause sind.
Dies wird mir dann per Telegram (Bot) ausgegeben.
Jetzt habe ich aber das Phänomen, das anscheinend wenn man den Repeater wechselt immer wieder die Anwesenheitsmeldung ausgegeben wird.Kann mir da evtl jemand helfen?
-
Was wertest du denn beim Ping genau aus? Nur die Antwortzeiten, oder...?
-
@TiboTake sagte:
wenn man den Repeater wechselt immer wieder die Anwesenheitsmeldung ausgegeben wird.
Wechselt dann der Datenpunkt mit dem Namen "Mama" kurzzeitig auf false ? Wenn ja, wie lange (maximal) ?
Mit folgendem Blockly werden Abwesenheitsdauern unter 5 Minuten ausgeblendet.
-
@paul53 said in Anwesenheitsmeldung zu häufig:
@TiboTake sagte:
wenn man den Repeater wechselt immer wieder die Anwesenheitsmeldung ausgegeben wird.
Wechselt dann der Datenpunkt mit dem Namen "Mama" kurzzeitig auf false ? Wenn ja, wie lange (maximal) ?
Mit folgendem Blockly werden Abwesenheitsdauern unter 5 Minuten ausgeblendet.
Danke für dein blockly script. doch mir fehlt anscheinend einiges in blockly.
ich kann bz. stop:timeout, den timeout nicht wählen.
und ganz unten: setzte:timeout auf, nicht finden.wo bzw wie finde ich das?
denn genau diese sachen waren immer dinge die ich im grunde schon länger vermisst habe um vernünftige schaltungen zu machen -
@TiboTake sagte:
stop:timeout, den timeout nicht wählen.
Den kann man erst wählen, wenn "Ausführen timeout" im Skript enthalten ist.
@TiboTake sagte in Anwesenheitsmeldung zu häufig:
setzte:timeout auf, nicht finden.
Es muss erst "Ausführen timeout" eingefügt sein und außerdem muss eine weitere Variable (value) erstellt sein, damit man die Variable timeout auswählen kann.
-
@paul53 said in Anwesenheitsmeldung zu häufig:
@TiboTake sagte:
stop:timeout, den timeout nicht wählen.
Den kann man erst wählen, wenn "Ausführen timeout" im Skript enthalten ist.
@TiboTake sagte in Anwesenheitsmeldung zu häufig:
setzte:timeout auf, nicht finden.
Es muss erst "Ausführen timeout" eingefügt sein und außerdem muss eine weitere Variable (value) erstellt sein, damit man die Variable timeout auswählen kann.
Achso, na das muss einem Dummen doch erstmal gesagt werden...
Danke sehr
-
Aber der erste grüne Block: stop: timeout
den timeout kann ich dort nicht auswählen. ich bekomme nur einen dünner kasten angezeigt in dem ich einen haken setzten kann.das wäre dann auch denke ich der letzte punkt damit es läuft.
-
@TiboTake
Anmerkung: value ist eine vordefinierte lokale Variable und muss bei der Erstellung genau so geschrieben werden. -
@TiboTake sagte:
ich bekomme nur einen dünner kasten angezeigt in dem ich einen haken setzten kann.
Hast Du zwischendurch mal den Button "Speichern" betätigt ?
-
@paul53 said in Anwesenheitsmeldung zu häufig:
@TiboTake sagte:
ich bekomme nur einen dünner kasten angezeigt in dem ich einen haken setzten kann.
Hast Du zwischendurch mal den Button "Speichern" betätigt ?
ja, wieso? schlimm?
-
@TiboTake sagte:
schlimm?
Nein, im Gegenteil. Poste bitte mal den vom Blockly erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
-
@paul53 said in Anwesenheitsmeldung zu häufig:
@TiboTake sagte:
schlimm?
Nein, im Gegenteil. Poste bitte mal den vom Blockly erzeugten Javascript-Code ohne die letzte Zeile in Code tags.
var value, timeout, timeout; on({id: 'ping.0.raspberrypi.192_168_178_20', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (value) { if (!timeout) { sendTo("telegram.0", "send", { text: 'Mama ist zuhause angekommen', user: 'Tobias' }); console.log("telegram['Tobias']: " + 'Mama ist zuhause angekommen'); } } else { (function () {if () {clearTimeout(); = null;}})(); timeout = setInterval(function () { timeout = null; }, 300000); } });
-
@TiboTake
Du hast zwei Variablen timeout ! Eine aus "Ausführen timeout" und eine selbst erstellte.
Weise den beiden Befehlen falls nicht timeout und setze timeout auf null mal die jeweils andere Variable timeout zu, dann müsste die selbst erstellte verschwinden (Speichern). Dann klappte es sicherlich auch mit stop timeout.In der ersten Zeile vom Javascript Code darf nur einmal timeout stehen !
-
@paul53 said in Anwesenheitsmeldung zu häufig:
@TiboTake
Du hast zwei Variablen timeout ! Eine aus "Ausführen timeout" und eine selbst erstellte.
Weise den beiden Befehlen falls nicht timeout und setze timeout auf null mal die jeweils andere Variable timeout zu, dann müsste die selbst erstellte verschwinden (Speichern). Dann klappte es sicherlich auch mit stop timeout.In der ersten Zeile vom Javascript Code darf nur einmal timeout stehen !
Jetzt sieht es zwar so aus wie es soll, aber auswählen kann stop: timeout immer noch nicht.
var value, timeout; on({id: 'ping.0.raspberrypi.192_168_178_20', change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (value) { if (!timeout) { sendTo("telegram.0", "send", { text: 'Mama ist zuhause angekommen', user: 'Tobias' }); console.log("telegram['Tobias']: " + 'Mama ist zuhause angekommen'); } } else { (function () {if () {clearTimeout(); = null;}})(); timeout = setInterval(function () { timeout = null; }, 300000); } });
-
Habs gefunden woran es lag.
man sollte nicht manuel value anlegen sondern das feld "Wert" verwenden. dann klappt es auch.danke dir vielmals
jetzt läuft der test
-
@TiboTake sagte:
man sollte nicht manuel value anlegen
Man sollte nicht manuell timeout anlegen. value ist nicht das Problem.