Automatisierung und Flags

Makana

New member
Hallöchen liebe Gemeinde, Ich bräuchte mal einen Tippe wie ich bei einer Automatisierung ein Flag (bzw. dessen Änderung) Trigger nutzen kann.
Ich hab schon mal bissel rumprobiert aber komme jetzt irgendwie nicht weiter. Ich möchte einen Shelly zum ausschalten bringen wenn mein 3D Drucker fertig mit dem Print ist.
Dazu zeigt mir die Entität folgende Möglichkeiten:
1649352553441.png
Ich möchte das Flag "printing " auswerten und zwar wenn es sich von true auf false ändert , da soll der shelly schalten und evtl noch ne Nachrichtabgesetzt werden.
Das war mein Versuch:
1649352720124.png

Wenn der Drucker druckt ändert sich das Flag das kann ich dann sehen wenn ich auf den Sensor klicke. Aber es wird keine Automatisierung ausgelöst.

Ich danke schon mal vielmals im Voraus
 

blurrrr

Well-known member
Hi :)

Was sagen denn die Logs dazu (Einstellungen -> Einstellungen -> Logs), wenn das Event ausgelöst werden soll?
 

azrael783

Active member
Hi,

hast du "Flags" selbst in das Fenster geschrieben, oder über eine Liste ausgewählt? Ich könnte mir vorstellen, dass da "Error Flags" rein muss. Und hast du mal in den Trace der Automatisierung reingeschaut? Da kannst du sehen, warum etwas nicht ausgelöst wurde.
 

Makana

New member
hi ho,
also ich hab heute mal wieder getestet, ich log finde ich nicht wirklich was brauchbares im Logbook sehe ich wie im Screenshoot einen Staus Änderungen und im Trace von der Autmatisierung finde ich auch nix. Nee Flag stand zur Áuswahl im DropDown Menue ich hab lediglich die Attribute eingetragen.

1649521427234.png
 

blurrrr

Well-known member
Könntest Du ggf. mal einen Screenshot von der entsprechenden Entität inkl. aller Attribute über die Dev-Tools machen (so wie es frisch nach der Einbindung vom Addon kommt, ohne etwas umgeschrieben zu haben)?

Du nutzt vermutlich https://www.home-assistant.io/integrations/octoprint/? Vielleicht hilft auch ein Blick in die passenden Files des Addons:

https://raw.githubusercontent.com/h.../homeassistant/components/octoprint/sensor.py
+
https://raw.githubusercontent.com/h...sistant/components/octoprint/binary_sensor.py
 

blurrrr

Well-known member
Also so wie ich das bisher gesehen habe, geht da niemand über das "printing"-Flag, sondern alle gehen auf die Prozentangabe (100%), oder nur auf den generellen Status. Davon mal ab... alle reden immer von:

"sensor.octoprint_current_state" und/oder von "sensor.ocroprint_job_percentage"

Bei Dir heisst es "sensor.octoprint_print_status"? Sei's drum... Was wohl zu funktionieren scheint, wäre etwas in diese Richtung:

Trigger -> State
Entität -> sensor.octoprint_current_state (oder vermutlich Dein ...print_status)
From -> Printing
To -> Operational
Conditions: - (brauchste wohl eher nicht)
Actions: <Steckdose ausschalten> bzw. vielleicht lässt Du Dir auch erstmal nur eine Nachricht schicken, um zu sehen, ob es auch funktioniert
 

Makana

New member
Danke dir, ich probiere es einfach mal aus ich stelle mal auf "Text" Printing --> Operational, in 6h weis ich mehr ^^
 

Makana

New member
nee leider nicht. Ich hab dann mal die Automatisierung manuell gestartet --> funzt prima nach 5 min Delay kamm ne Nachricht und der Drucker bzw. die Steckdose ging aus.
Also scheint das ja wirklich was mit dem Trigger zu tun zu haben. Wobei ich wieder im Logbuch gesehen habe der der Status von Printing zu Operational wechselt
1649683052091.png
Ich hab jetzt mal einen anderen Sensor probiert und schau mal ob bei "Druck Complete 100%" die Automatisierung startet. Nicht da ich da ein essentielles Problem irgendwo hab.
 

blurrrr

Well-known member
Versuch es doch einfach mal so, wie ich es beschrieben habe (so stand es auch im Netz). Einfach auf den Status und dann von "Printing" auf "Operational". Genau "so" steht es übrigens auch bei Dir im Screenshot (und nicht "OctoPrint_Print_Status wechselte zu flag: operational")... ist aber natürlich auch nur eine grobe Vermutung 🙃
 

Makana

New member
Hi also über die Feiertage hab ich nochmal bissel rumprobiert. Zum einen hab ich versucht wie du schon beschrieben hast von Printing auf Operational zu stellen --> hat nix gebracht. Dann habe ich es mal über den Sensor sensor.octoprint_print_progress und von 99 auf 100. hat mich aber auch nicht weitergebracht. Da sehe ich auch keine Logbuch Einträge für den Sensor.

Aber erscheint das ja richtig auszulesen:

1650356814034.png

1650356569100.png
 

Nival

-
Moderator
Nur so ein Gedanke, weil andere Sensoren mit denen ich bislang zu tun hatte sich eher minütlich aktualisierten - kann es sein, dass der Statuswechsel von 99% zu 100% dabei schlicht verpasst wird?
 

Nival

-
Moderator
Vorschlag, geh einmal in die Entwicklerwerkzeuge, dort den Reiter Template wählen und diesen Code dort einwerfen:
YAML:
Status: {{ states('sensor.octoprint_print_status') }}

{% if states('sensor.octoprint_print_status') == "Printing" -%}
  Es druckt.
{% elif states('sensor.octoprint_print_status') == "Operating" -%}
  Es wartet.
{%- else -%}
  Es beschäftigt sich anderweitig.
{%- endif %}
Rein theoretisch, nach allem was ich so sehe, sollte das so schon klappen - einfach mal während des Druckvorgangs und danach die Werte betrachten. Wenn das wie erwartet funktioniert sollte das auch der Punkt sein, an dem man erfolgreich mit der Automatisierung ansetzen kann.
 

Makana

New member
So ich hab das heute mal so ausprobiert also und wie du schon vermutet hast funzt das ergibt bei den verschieden Statusänderungen den jeweiligen String zurück.
ich muste lediglich die Zeile :{% elif states('sensor.octoprint_print_status') == "Operating" -%} gegen {% elif states('sensor.octoprint_print_status') == "Operational" -%} tauschen. da er bei "Operating" --> Es beschäftigt sich anderweitig ausgegeben hatte. wie im ersten Screenshot gezeigt.
Aber wie gehts jetzt weiter damit, wie bekomme ich das denn jetzt in einer Automatisierung abgebildet ?

1650448915738.png
1650448944913.png
1650448969426.png
 

Nival

-
Moderator
Aber wie gehts jetzt weiter damit, wie bekomme ich das denn jetzt in einer Automatisierung abgebildet ?
Das sollte hiermit erledigt sein:
1650452110814.png
So lässt es sich jedenfalls in den Entwicklerwerkzeugen nachstellen und auch korrekt auslösen, wenn man den Status von octoprint_print_status manuell ändert.
 

Makana

New member
Also ich hab das Ergebnis--> leider negativ da hat nix getriggert obwohl der State geändert wurde.

1650531915031.png

Aber ich hab jetzt erstmal einen Workarround gefunden. Ich werte jetzt die Druckdüsentemperatur aus und wenn die 30 min lang unter 40°C fällt und der Drucker bzw. der Sensor binary_sensor.octoprint_printing_2 von "ON" auf "OFF" wechselt funzt das ganze. Komisch nur das es eigentlich da gleiche Prinzip ist.

Code:
id: '1649324325881'
alias: Drucker aus
description: ''
trigger:
  - platform: numeric_state
    entity_id: sensor.octoprint_tool_0_temperature
    below: '40.0'
    for:
      hours: 0
      minutes: 30
      seconds: 0
      milliseconds: 0
condition:
  - condition: not
    conditions:
      - condition: state
        entity_id: binary_sensor.octoprint_printing_2
        state: 'on'
action:
  - service: notify.persistent_notification
    data:
      title: Test mit TEMP
      message: test
mode: single
 

Nival

-
Moderator
Also ich hab das Ergebnis--> leider negativ da hat nix getriggert obwohl der State geändert wurde.
Eigenartig. Wird die Automatisierung denn ausgelöst, wenn Du in den Entwicklerwerkzeugen den Status manuell änderst? Das war bei mir zumindest definitiv der Fall.

Aber ich hab jetzt erstmal einen Workarround gefunden. Ich werte jetzt die Druckdüsentemperatur aus und wenn die 30 min lang unter 40°C fällt und der Drucker bzw. der Sensor binary_sensor.octoprint_printing_2 von "ON" auf "OFF" wechselt funzt das ganze. Komisch nur das es eigentlich da gleiche Prinzip ist.
Funktioniert das nur mit der Temperatur in Kombination? Denn eigentlich klingt der Wechsel von on zu off ja eigentlich auch nach einem ausreichenden Hinweis.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
586
Beiträge
8.664
Mitglieder
204
Neuestes Mitglied
sina27
Oben