kalten 3D Drucker abschalten

Floppy525

Member
Hi,
ich möchte, dass mein Bambu Lab abgeschaltet wird, wenn der Druckjob beendet ist und die Düse abgekühlt ist.
In der UI sieht es wie folgt aus:
HA_Drucker.jpg
YAML:
alias: H2D abschalten
description: ""
triggers:
  - trigger: state
    entity_id:
      - sensor.h2d_0948db522301525_druckstatus
    to:
      - finish
    for:
      hours: 0
      minutes: 30
      seconds: 0
conditions: []
actions:
  - wait_for_trigger:
      - trigger: numeric_state
        entity_id:
          - sensor.h2d_0948db522301525_temperatur_der_duse
        below: 40
    continue_on_timeout: false
    timeout:
      hours: 0
      minutes: 40
      seconds: 0
      milliseconds: 0
  - action: switch.turn_off
    metadata: {}
    target:
      entity_id: switch.3d_drucker
    data: {}
mode: single
Bedingungen werden anscheinend nicht erfüllt.
Mein Plan ist, dass der Drucker 30 Min. finish ist, dann noch bis zu 40 Minuten gewartet wird, dass die Düse unter 40 Grad erreicht hat.

Mache ich einen Denkfehler?
Kann es sein, dass nach 30 Min. die Düse schon unter 40 Grad ist und daher wait_for_trigger nicht mehr greift?
Wie löse ich das Problem?

Viele Grüße
Andreas
 
Hätte ich auch gesagt, warum so kompliziert. Warte doch einfach, die die Temperatur unter 40 °C fällt UND wenn dann kein Job läuft, ausschalten.
 
Okay, kann ich mal versuchen. Verstehe nur nicht, warum es so nicht klappt.
Ich wollte so sicherstellen, dass der Drucker nicht abgeschaltet wird, wenn ich in der Zwischenzeit einen neuen Druckjob gestartet habe.
Aber da er dann aber auch nicht mehr auf finish stehen sollte, müsste es auch so funktionieren.

Ich hoffe nur, dass er nicht z.B. nach dem manuellen Kalibrieren auf finish geht und dann sofort ausgeschaltet wird.

Danke für den Tipp.
 
Zuletzt bearbeitet:
Wenn man verstehen möchte, warum etwas nicht funktioniert. Sind die Traces in Home Assistant eigentlich immer ein sehr guter Ansatz. Jeder Aufruf einer Automation wird in einem Trace festgehalten, der detailreich jeden einzelnen Schritt der Automation nachvollziehen lässt.
 
Naja, die Temperatur ist auch ein Trigger... der below sagt... also anspringt, wenn die Temperatur von 40°C auf 39,9°C fällt.
Wenn zum Zeitpunkt der Prüfung die Temperatur 39,8°C hat, wird das ganze in Timeout laufen, weil ja in den 40 Minuten niemals von 40°C auf 39,9°C fallen wird. Trigger sind immer Zeitpunkte, nie Zeiträume. Er wartet also 40 Minuten lang, ob es einen Zeitpunkt gibt, an dem die Temperatur von 40°C fällt. Ob die unter 40°C ist, ist dem Trigger sowas von egal.
 
In meiner Interpretation bedeutet, Trigger greift, wenn Wert unter x ist, und nicht, wenn Wert von über x auf unter x fällt.
Aber anscheinend hast du recht.
Frage mich jetzt nur, wie ich checken würde, ob ein Wert in diesem Moment kleiner x ist?
 
Zuletzt bearbeitet:
Dann ist Deine Interpretation falsch... ein Trigger-Event... (Auslöserereignis) ist genau der Zeitpunkt wenn es von 40°C auf unter 40°C (z.B. 39,9°C) fällt... es ist eben nicht "allgemein unter 40°C".

Daher kannst Du Dir ja das ganze gewarte vorher sparen. Prüfe einfach auf den Trigger "below 40°C" prüf zusätzlich, ob der letzte Job fertig ist und schalt dann aus.
 
Frage mich jetzt nur, wie ich checken würde, ob ein Wert in diesem Moment kleiner x ist?
in einer Bedingung - wenn.
Du schreibst alle potentiellen Trigger als Auslöser rein und pröfst bei und wenn oder mit Bedingung in Aktion, ob alle benötigten zutreffen.
Klassisches Beispiel Licht - sobald Sonne untergeht, sobald Bewegung - und wenn Sonne weg und Bewegung - Licht an.
Trigger ist oder, und kommt in der Bedingung.
 

Letzte Anleitungen

Statistik des Forums

Themen
7.832
Beiträge
76.849
Mitglieder
8.467
Neuestes Mitglied
Dafritz
Zurück
Oben