NEWS
Blockly Telegramm Heizungsanlage (Vorlauftemperatur)
-
@asgothian Hallo Asgothian, vielen Dank für deine Rückmeldung.
Leider bin ich nicht so bewandt und daher sagen mir deine Informationen nichts bzw. ich weiß nicht wie ich ein entsprechendes Blockly Script aufbauen kann.-
eine Abfrage : "wert" < limit und "vorheriger Wert" >= 20.. darin: timeout 20 minuten -wenn abgelaufen Meldung
-
list itemeine Abfrage "wert" >= limit dann timeout anhalten.
-
wichtig: die Bausteine "wert" und "vorheriger Wert" stammen aus dem "Trigger" Bereich und sind dort mit "Objektid" vorbelegt.
Ist es für dich OK, wenn du mir da noch mal hilfst und ggf. das Blockly Script aufbauen kannst?
VG
Takahara -
-
Vorschlag:
@asgothian sagte in Blockly Telegramm Heizungsanlage (Vorlauftemperatur):
wichtig: die Bausteine "Wert" und "vorheriger Wert" stammen aus dem "Trigger" Bereich und sind dort mit "Objektid" vorbelegt.
-
@paul53 Hi Paul, auch die vielen Dank.
Müsste es in der sonst falls Bedingung nicht heißen < 50?
VG
Takahara -
@takahara sagte: Müsste es in der sonst falls Bedingung nicht heißen < 50?
Nein, da die Abfrage im sonst-Zweig erfolgt, bedeutet es: Die Temperatur unterschreitet erstmalig 50 °C (war >= 50 und ist jetzt < 50). Ohne diese Abfrage würden mehrere Timer gestartet, die sich nicht mehr stoppen lassen.
-
@paul53 Hallo Paul, so zu 100% habe ich das Blockly Script noch nicht verstanden. Heute Morgen hatten wir wieder mal einen Ausfall der Heizung. Ich hätte jetzt erwartet, das gegen 09:04:24 die Meldung geschickt wird, dass die Vorlauftemperatur zu niedrig ist. Habe allerdings keine Nachricht erhalten.
Wie du siehst, ist die Vorlauftemperatur um 08:44:24 auf unter 30°C gefallen und ist erst wieder um 11:10:47 auf über 30°C gestiegen.Eine weitere Funktion würde ich noch keine einbinden. Und zwar, dass eine Meldung abgeschickt wird, wenn (wie oben zu sehen) die Vorlauftemperatur wieder über 30° oder auch 35°C ist und ich somit sicher sein kann, dass die Heizung wieder funktioniert. Kannst du mir evtl. noch mal helfen, bitte?
Aktuellen Blockly:
VG
Takahara -
@takahara sagte: Habe allerdings keine Nachricht erhalten.
Wenn bei "falls"
Wert >= 30
verglichen wird, muss der Vergleich bei "sonst falls" ebenfallsvorheriger Wert >= 30
sein, da sonst eine Temperaturänderung von 30 °C auf 29,9 °C nicht erfasst wird.@takahara sagte in Blockly Telegramm Heizungsanlage (Vorlauftemperatur):
über 30°C ist und ich somit sicher sein kann, dass die Heizung wieder funktioniert.
falls Wert > 30 und vorheriger Wert <= 30 mache Nachricht "Heizung läuft wieder"
Besser allerdings mit einem höheren Schwellwert und einer Hilfsvariablen:
-
@paul53 Hallo Paul53, vielen Dank nochmals für deine großzügige Hilfe und Unterstützung. Das von dir zur Verfügung gestellte Script scheint aktuell genau das zu machen, was ich gesucht habe.
Ich verstehe leider noch nicht alle Blöcke und hätte noch folgende Fragen:-
Was macht der allererste Funktionblock?
-
Die Systemvariable "Heizung_an", kann nur "wahr" oder "falsch" sein, richtig?
-
Wie kann die Sonst falls Bedingung (vorheriger Wert >= 30) erfüllt sein, wenn hier eigentlich nur Werte < 30 zum Senden der Textnachricht führen sollen?
VG
Takahara
-
-
@takahara sagte: Was macht der allererste Funktionblock?
Er initialisiert die Variable beim Skriptstart auf einen sinnvollen Wert (true bei >= 30 °C). Andernfalls würde nach dem Skriptstart die Nachricht "Heizung läuft wieder" kommen, wenn die Temperatur >= 33 °C ist oder erreicht.
@takahara sagte in Blockly Telegramm Heizungsanlage (Vorlauftemperatur):
Die Systemvariable "Heizung_an", kann nur "wahr" oder "falsch" sein, richtig?
Ja. Ohne den ersten Funktionsblock wäre sie nach einem Skriptstart erst einmal undefined.
@takahara sagte in Blockly Telegramm Heizungsanlage (Vorlauftemperatur):
Wie kann die Sonst falls Bedingung (vorheriger Wert >= 30) erfüllt sein, wenn hier eigentlich nur Werte < 30 zum Senden der Textnachricht führen sollen?
Die Bedingung für den sonst-Zweig ist
Wert < 30
(Gegenteil von Wert >= 30). Die gesamte Bedingung lautet also:Wert < 30 UND vorheriger Wert >= 30
, was erstmaliges Unterschreiten des Wertes von 30 bedeutet und verhindert, dass der Timer mehrfach gestartet werden kann. -
Ich habe mir das Blockly heute morgen auch 100x angeschaut und habe es nicht verstanden.
Man(m) (zumindest ich) vergisst in seinem Kopf schnell, dass die erste Bedienung ja umgekehrt in "sonst falls" fliest.
Am ersten Blick sieht man nur, dass 2x gefragt wird ob der Wert größer als 30 ist und nichts passiert wenn der Wert kleiner ist.Musste es mir auch kurz aufschreiben
35 grad "falls" - stop timeout da Wert größer als 30
30 grad "falls" - stop timeout da Wert gleich 30
25 grad "sonst falls" greift weil "falls" nicht erfüllt wurde. Telegram wird gesendet, da vorheriger Wert >=30
20 grad "sonst falls" greift weil "falls" nicht erfüllt wurde. Telegram wird nicht versendet, da vorheriger Wert nicht >=30 -
@paul53 said in Blockly Telegramm Heizungsanlage (Vorlauftemperatur):
Die Bedingung für den sonst-Zweig ist Wert < 30 (Gegenteil von Wert >= 30). Die gesamte Bedingung lautet also: Wert < 30 UND vorheriger Wert >= 30, was erstmaliges Unterschreiten des Wertes von 30 bedeutet und verhindert, dass der Timer mehrfach gestartet werden kann.
Wenn ich deine Antwort richtig verstehe, dann sagst du mit anderen Worten:
-
Die Bedingung für den sonst-Zweig ist Wert < 30 (Gegenteil von Wert >= 30). =>Ist die erste Prüfung der "Falls Wert >= 30 ist"
-
vorheriger Wert >= 30, => Ist die erste Prüfung der "Sonst falls vorheriger Wert >=30 ist"
Da zuerst die falls-Bedingung geprüft wird und diese nicht erfüllt ist (da Wert <30 ist). Anschließend wir die sonst falls-Bedingung geprüft und diese ist zutreffend, da der aktuelle Wert <30 ist und der vorherige Wert >30 war.
wäre ich nie drauf gekommen, dass so zu programmieren, aber wenn ich das Script jetzt betrachte, macht es Sinn.
Vielen Dank noch mal für deine Hilfe.
VG
Takahara -