3D-Drucker erst nach letztem Druck abschalten

bisher habe ich nicht viel 3D-gedruckt, meist nachts nur ein Teil und danach sollte sich der power-plug vom Drucker abschalten.

Jetzt drucke ich sehrviel mehr auch mehrere Teile hintereinander. Es wäre blöd, wenn der power-plug immer noch nach Ende des ersten Drucks abschalten würde - ist dann womöglich mitten im zweiten Druck.

meine bisherige Automation:

  1. anycubic.start
    prüft ob der powerplug >50W verbraucht
    aber nur wenn Helfer_3D =off
    dann mache: setze Helfer_3D=on

  2. anycubic.stopp
    prüft ob der powerplug <50W verbraucht für mind. 3 Min.
    aber nur wenn Helfer_3D =on
    dann mache: setze Helfer_3D=off
    sende Benachrichtigung “Dein 3D-Druck ist fertig”
    schalte power-plug nach 5 Min. aus

was müsste ich ändern, damit der Drucker erst nach dem letzten Druck abschaltet?

Ich nutze eine Wartezeit von 30min, die startet wenn der Drucker eine “Druck Fertig”-Meldung sendet.
Dann hab ich genug Zeit, die Teile rauszunehmen und den nächsten Druck zu starten und wenn ich nichts mache, hat der Drucker genug Zeit runter zu kühlen ( Lüfternachlauf für Nozzel z.b. ) bis zur Abschaltung

ok, und woher bekommt Du die “Druck Fertig” Meldung?
Machst Du das nicht mit einem Stromabfall am power plug?

vom Drucker selber, der ist in HA eingebunden, somit hab ich alle Statusmeldungen.
Über Strommessung ginge auch, aber so ist sicherer, weil ich dann weiss, wann der Durckjob 100% fertig ist und nich der Drucker z.b. auf neue Filement wartet

Pic

ok, das ist die Luxus-Version. Mein anycubic cobra ist nicht vernetzt. Ich könnte meine octoprint Integration nehmen, die würde auch ein paar Daten liefern.

da kann man sich aber nicht drauf verlassen und manchmal liefert der RasPi auch überhaupt keine Daten (steht alles im Keller und da ist die W-LAN Abdeckung nicht so gut). Also sicher kann ich es nur über den powerplug machen.

Wenn Deine Automatisierung auf Modus Neu starten steht, dann fängt sie jedes Mal beim Überschreiten der 50-Watt-Schwelle neu an zu laufen. Damit wird auch die Wartezeit am Ende abgebrochen, und der Drucker druckt das nächste Teil durch.

Ja, eben, ich würde das auch eher dann über die Stromaufnahme machen, wie HeikoBauer schon schreibt.
Das ist mir die sicherste Lösung

ja aber wie genau, schaut mal auf meine aktuelle Automation.

Wenn es einen Stromabfall auf <50W gibt
das werde ich mal auf unter 15W ändern
wird der Strom 30 Min. später abgeschaltet, selbt wenn ein neuer Druckauftrag vorher gestartet wird.
Das möchte ich aber verhindern …
ich glaube, ich brauche eine zusätzliche Automation…

Du müsstest die Automatisierung auf den Modus “neu starten” stellen, so startet der Durchlauf neu, wenn neu getriggert wird.

jetzt weiss ich nicht genau was Du meinst.
Dies ist meine Automatisierung, wenn der Druck startet…

alias: anycubic.start
description: 3d Drucker anycubic beginnt zu drucken
trigger:
  - type: power
    platform: device
    device_id: e23f6f09b67650f32d7a8632b30588ad
    entity_id: ca4930ee84bd361f992082891d607afa
    domain: sensor
    above: 50
    for:
      hours: 0
      minutes: 3
      seconds: 0
condition:
  - condition: state
    entity_id: input_boolean.helfer_3d
    state: "off"
action:
  - target:
      entity_id: input_boolean.helfer_3d
    data: {}
    action: input_boolean.turn_on
mode: single

oder muß ich was an der Stopp-Automation ändern…

SORRY, hatte gedacht, du hättest alles in einer Automatisierung.

nein meine andere Automatisierung sieht so aus …

alias: anycubic.finish
description: 3D Drucker ist fertig
trigger:
  - type: power
    platform: device
    device_id: e23f6f09b67650f32d7a8632b30588ad
    entity_id: ca4930ee84bd361f992082891d607afa
    domain: sensor
    below: 50
    for:
      hours: 0
      minutes: 3
      seconds: 0
condition:
  - condition: state
    entity_id: input_boolean.helfer_3d
    state: "on"
action:
  - target:
      entity_id: input_boolean.helfer_3d
    data: {}
    action: input_boolean.turn_off
  - delay:
      hours: 0
      minutes: 0
      seconds: 15
      milliseconds: 0
  - data:
      message: Dein 3D Druck ist fertig!
      title: Homeassistant via pushbullet
    action: notify.pushbullet
  - delay:
      hours: 0
      minutes: 0
      seconds: 15
      milliseconds: 0
  - data:
      message: TTS
      data:
        ttl: 0
        priority: high
        media_stream: alarm_stream_max
        tts_text: Dein 3D-Druck ist seit {{ now().strftime("%H:%M") }} fertig.
    action: notify.mobile_app_kpad
  - target:
      entity_id: input_text.anycubic_fertig
    data:
      value: >-
        {{ ((float(states('sensor.anycubic_450W_verbrauch')) -
        float(states('input_text.anycubic'))) *
        float(states('input_number.preis_strom')))   | round(2)   | replace('.',
        ',')   }}
    action: input_text.set_value
  - delay:
      hours: 0
      minutes: 0
      seconds: 15
      milliseconds: 0
  - data:
      message: TTS
      data:
        ttl: 0
        priority: high
        media_stream: alarm_stream_max
        tts_text: >-
          und der Druckerstrom hat {{states('input_text.anycubic_fertig')}} Euro
          gekostet. Abschaltung in 30 Min.
    action: notify.mobile_app_kpad
  *- delay:*
*      hours: 0*
*      minutes: 30*
*      seconds: 0*
*      milliseconds: 0*
*    enabled: false*
  *- target:*
*      entity_id: switch.anycubic_450w_sockel_1*
*    data: {}*
*    action: switch.turn_off*
*    enabled: false*
mode: single

die letzten beiden Aktionen mit der Stromabschaltung nach 30 Min. (mit vorangestelltem *) sind derzeit disabeled, an dem Punkt frickel ich ja rum …

Ich hätte es grundsätzlich über 1 Automatisierung mit TriggerID gemacht.

description: ""
mode: restart
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.waschmaschine_power
    for:
      hours: 0
      minutes: 3
      seconds: 0
    above: 50
    id: Boolean-an
  - platform: numeric_state
    entity_id:
      - sensor.waschmaschine_power
    for:
      hours: 0
      minutes: 3
      seconds: 0
    id: Boolean-aus
    below: 50
  - platform: numeric_state
    entity_id:
      - sensor.waschmaschine_power
    for:
      hours: 0
      minutes: 30
      seconds: 0
    below: 50
    id: Ausschalten
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Boolean-an
          - condition: state
            entity_id: input_boolean.waschmaschine
            state: "off"
        sequence:
          - action: input_boolean.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.waschmaschine
      - conditions:
          - condition: trigger
            id:
              - Boolean-aus
          - condition: state
            entity_id: input_boolean.waschmaschine
            state: "on"
        sequence:
          - action: input_boolean.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.waschmaschine
      - conditions:
          - condition: trigger
            id:
              - Ausschalten
          - condition: state
            entity_id: input_boolean.waschmaschine
            state: "on"
        sequence:
          - action: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: switch.waschmaschine

Aber du kannst auch einfach eine 3. Automatisierung machen

description: ""
mode: single
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.waschmaschine_power
    for:
      hours: 0
      minutes: 30
      seconds: 0
    below: 50
condition: []
action:
  - action: switch.turn_off
    metadata: {}
    data: {}
    target:
      entity_id: switch.waschmaschine

also das mit dem mode:restart habe ich noch nicht verstanden,

So sieht der Stromverbrauch der letzten 24 Std. aus

die letzte Abschaltung war jetzt erstmal bewußt deaktiviert.