NEWS
Ack-State abfragen/lesen
-
Eine Frage und zwar redet ihr von diesem Fall?
Ich setzte z.B. den Datenpunkt Power von einem sonoff auf true, dann wird der Befehl per mqtt gesendet, aber selbst wenn der sonoff offline ist lässt sich dieser auf true setzen.
Das heißt ich sehe keine Rückmeldung ob der sonoff auch das gemacht hat was ich wollte.
Ich würde das Bestätigt jetzt so verstehen, das der Befehl ausgeführt wurde, richtig?
-
@saeft_2003 Ja genau das ist eine Rückmeldung
-
Ok Super. Wenn ich lange mit der Maus auf einen Datenpunkt gehe kommt bei mir nicht dieses extra Feld mit Infos. Gibts da einen Trick?
Da ich in JS direkt nicht wirklich fit bin, könntest du mir folgendes erklären?
let ackSetpoint = getState(idSetpoint).ack;
Wo muss hier der Datenpunkt ID hin von dem man die Bestätigung erhalten will? In welchen Datenpunkt wird dann die Rückmeldung geschrieben? Geht das ganze auch mit Blockly?
-
Weißt du ob das bei jedem DP geht? Mir gehts hauptsächlich um meine tasmota geräte (mqtt).
-
@saeft_2003 sagte:
Weißt du ob das bei jedem DP geht?
Ja, jeder Datenpunkt hat "ack". Was möchtest Du damit machen / erreichen ?
-
Mir geht es Hauptsächlich um meine Steuerung von meinen Magnetventilen für die Gartenbewässerung. Diese steuere ich mit einen wemos auf dem tasmota läuft.
Ich hätte eigentlich gerne das wenn ich den Befehl false gebe, dass dann etwas zurück kommt z.B. false=bestätigt.
Weil angenommen der wemos ist nicht mehr im wlan dann läuft meine Bewässerung als weiter und weiter...
-
@saeft_2003 sagte:
der wemos ist nicht mehr im wlan dann läuft meine Bewässerung als weiter und weiter...
Wie willst Du auf diese Situation reagieren ?
-
Das eine pushnachricht in meiner VIS erscheint und ich eine telegram Nachricht bekomme. Gesteuert über ein Skript...
-
-
Vielen Dank für das Blockly. Ich habe jetzt zum Test als Trigger power von einem shelly mit tasmota (Licht Esstisch) angegeben. Muss ich sonst noch etwas im Skript anpassen?
Wenn ich jetzt das Licht ein oder aus schalte bekomme ich immer die Nachricht über Telegram „Licht Esstisch nicht bestätigt“ obwohl das Licht erfolgreich geschalten wird.
-
@saeft_2003 sagte:
bekomme ich immer die Nachricht über Telegram „Licht Esstisch nicht bestätigt“ obwohl das Licht erfolgreich geschalten wird.
Es muss das timeout gestoppt werden, das zur Verzögerung der Nachricht verwendet wird (timeout vs. timeout2).
-
Danke jetzt geht es!
-
Ich hab noch ein paar Fragen. Wo finde ich links in der Blockauswahl z.B. den Block Wert?
Dieser sieht aus wie eine Variable, ist dort aber nicht zu finden. Nur soll ist wie es aussieht eine „normale“ Variable.
Bezieht sich dann z.B. der Wert immer auf die Objekt ID von dem darüber stehenden Trigger?
Das frage ich deshalb weil ich mehrere Abfragen in einem Skript haben möchte.
-
@saeft_2003 sagte:
Wo finde ich links in der Blockauswahl z.B. den Block Wert?
Unter "Trigger":
@saeft_2003 sagte in Ack-State abfragen/lesen:
Bezieht sich dann z.B. der Wert immer auf die Objekt ID von dem darüber stehenden Trigger?
Ja.
-
Wirklich vielen Dank du hast mir bei dem Thema sehr weiter geholfen.
Eine letzte Frage habe ich noch und zwar messe ich den Füllstand meiner Zisterne per Ultraschall, hier kommt alle 60 Sek ein "neuer" Wert. Man könnte doch mit diesem Skript auch relativ "leicht" prüfen ob dies auch geschieht?
Leider bin ich mir nicht sicher wie ich es genau anpassen müsste...
-
@saeft_2003 sagte:
hier kommt alle 60 Sek ein "neuer" Wert
-
Danke!
-
@saeft_2003 da mich das Script als Vorlage sehr interessiert, könntest Du es vielleicht als Javascript exportieren und hier einstellen?
Ich nutze kein Blockly und verstehe auch nicht wirklich wie man das nachstellen könnte um ein Javascript zu erhalten. Das wäre super...Danke -
Paul53 und ich haben über zwei blocklys gesprochen, welches willst du als js?
-
@htrecksler sagte:
als Javascript
var timer, soll; on({id: '...'}, function(dp) { // triggert bei jeder Aktualisierung if(!dp.state.ack) { // Befehl if(dp.state.val != dp.oldState.val) { // Wertänderung soll = dp.state.val; timer = setTimeout(function() { // Nachricht: Keine Bestätigung }, 1000); } } else { // bestätigt if(dp.state.val == soll && timer) clearTimeout(timer); } });