Infos Octoprint

Bonjour

je possede une imprimante ENDER 3 KE qui tourne sous klipper et sur laquelle j’ai installé Mainsail

Avec une prise connectée, je souhaite arreter l’imprimante apres qu’elle est finie l’impression et refroidie.

J’ai installé le plugin OCTOPRINT qui m’indique que mon systeme n’est peut-etre pas compatible (utilisation de jeedom avec un RPI4). Cela semble fonctionner, mais je n’est que le statut et les T° qui remonte comme infos.

Le pourcentage d’avancement reste à zéro. je ne peux donc pas arreter mon imprimante une fois fini

image

Une idée pour je n’ai pas toutes les infos?

Merci à vous

A+

Statut passe à printing quand tu imprimes. Donc tu peux utiliser cette info.

1 « J'aime »

Hello

Sinon, tu peux aussi le faire directement dans Octoprint en lui donnant l’URL dans Jeedom de la prise connectée.

Bad

Ah tiens ça m’interesse pour allumer l’imprimante sans passer par jdom.
Comment tu fais ça ? Tu utilises un plugin special dans octoprint ?

Bonjour

Ca m’interresse, car j’avoue ne pas avoir tout compris !!!

Merci

Hello,

Alors, à l’époque j’utilisais le plugin PSU Control pour Octoprint
et 3 scripts : alim_[on|off|status].sh pour allumer, éteindre ou connaitre l’état de la prise connectée par call API sur Jeedom.

Ca fait quelques années que j’ai arrêté l’impression 3D et délègue toutes mes impressions à un pote (passionné), à qui j’ai donné mon imprimante.

L’idée des scripts est simplement de faire appel aux URLs des commandes On/Off/Etat dans Jeedom :

Il existe maintenant pleins de plugins Octoprint pour ça (cf : Power Control), mais le principe reste le même :

  • Le slicer insère les Gcodes M80 et M81 en début et fin, gérer l’allumage/extinction de l’imprimante,
  • Octoprint détecte M80 et réalise les actions d’alumage, avant de se connecter et gérer la préchauffe,
  • L’impression a lieu,
  • Octoprint détecte M81 et attend le refroidissement du nozzle, puis réalise l’action d’extinction.

Bad

RE

J’ai essayé le script mais j’ai un message d’erreur

------------------------------------
[2024-03-02 11:35:24][SCENARIO] Start : Scenario lance manuellement.
[2024-03-02 11:35:24][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Imprimante 3D][ENDER-3 KE][Statut]# === '"Printing"'  && variable(Impression_en_cours,0)==0
[2024-03-02 11:35:24][SCENARIO] Evaluation de la condition : ["Operational" === '"Printing"'  && 0==0] = Faux
[2024-03-02 11:35:24][SCENARIO] - Exécution du sous-élément de type [action] : else
[2024-03-02 11:35:24][SCENARIO] Exécution d'un bloc élément : 233
[2024-03-02 11:35:24][SCENARIO] - Exécution du sous-élément de type [condition] : if #[Imprimante 3D][ENDER-3 KE][Statut]# !== '"Printing" && variable(Impression_en_cours)==1
[2024-03-02 11:35:24][SCENARIO] Evaluation de la condition : ["Operational" !== '"Printing" && ""==1] = "Operational" !== '"Printing" && ""==1
[2024-03-02 11:35:24][SCENARIO] Expression non valide : "Operational" !== '"Printing" && ""==1
[2024-03-02 11:35:24][SCENARIO] Fin correcte du scénario

Je ne comprends pas bien les ! a certains endroits

Je souhaite prendre en compte la T° de la buse (<50°) avant de couper

Merci

A+

Bonjour
Il faut 2 plugins, le plugin PSU et et le plugin de ta prise

et
PSU Control - Tapo ou PSU Control - Shelly ou PSU Control - Tasmota

Voici la liste

Bonjour,

J’ai une Ender 3D Pro largement customisée (CM BigTreeTech SKR mini E3 v3, affichage BIGTREETECH TFT35 E3 V3.0.1,…) qui tourne sous Marlin 2.1.2.1, et octoprint 1.9.3.

J’ai installé pour contrôler les arrêt/marche :

  • Une prise connectée Trädfri d’Ikéa,
  • Le plugin PSU Control, qui permet entre autre de provoquer l’arrêt de l’imprimante sous condition de T° de la buse (50°C ici) et après un timeout (10’)

  • Complété par le plugin PSU Control - Jeedom, qui permet de gérer via Jeedom ma prise connectée.

Bonjour

Personne pour mon souci de scénario ?

Merci bien

A+

Bonjour,

Oui… Pour en revenir au scénario, les opérateurs :

  • != est équivalent à ‹ différent de ›,
  • == c’est ‹ égal à › (à ne pas confondre avec =, qui est une affectation de valeur)

Voir ici : https://doc.jeedom.com/fr_FR/core/4.3/scenario

Par contre, la notation « !== » ou « === » n’est pas très conforme, mais ca marche…

Autre problème :

[2024-03-02 11:35:24][SCENARIO] Evaluation de la condition : ["Operational" !== '"Printing" && ""==1] = "Operational" !== '"Printing" && ""==1
[2024-03-02 11:35:24][SCENARIO] Expression non valide : "Operational" !== '"Printing" && ""==1

Je dirai à priori que la variable ‹ Impression_en_cours › n’a pas été créée au préalable, du coup Jeedom ne la trouve pas…

Ben là pour le coup, si la T° de la buse ne remonte pas via le plugin Octoprint, il n’y a rien à faire d’autre que d’estimer un temps de refroidissement suffisante de celle-ci. Dans le scénario, entre 3’ et 5’ me semble pas mal.

RE

Merci pour ces explications.

Les variables de T° remontent bien dans octoprint. Ce sont les temps et % qui ne remontent pas

Pour les variables…celles-ci ne se creent pas automatiquement ?

A+

Non, sauf si on fait comme ça :

image

Complètement conforme et des fois nécessaire dans Jeedom.

https://www.php.net/manual/fr/language.operators.comparison.php

Ben oui en php, qui est la base de Jeedom, et ca tombe bien…
Parce que la doc officielle de Jeedom, elle, c’est pas ce qu’elle dit :wink:

(Ah…cette fameuse doc ! Y’a encore du boulot… :slightly_smiling_face:)

1 « J'aime »

RE

J’ai retapé la condition du SINON…et me demander pas pourquoi, cela fonctionne

Plus d’erreur dans le LOG. Par contre j’aimerai rajouter la temperature du BED. Si je le met comme condition, le script va verifier la 1er fois au changement d"etat qui est le déclencheur , si le BED n’est pas trop chaud…mais il ne va pas refaire le test car la condition de déclenchement qui est ETAT n’a pas bougé.

Comment faire ?

Merci a vous

Thierry

Bonjour,
Je n’ai pas vraiment saisi l’objectif, dites moi si je me trompe dans ma compréhension :

Dans une boucle interne SI…ALORS ?
L’idée serait donc :

  • sur un changement d’état de la variable « Impression_en cours », je démarre le scénario.
  • SI le bed est > à tant de degrés, ALORS je ne fait rien.

Effectivement, l’utilisation de ce déclencheur n’est donc pas bon…

Si l’objectif est de stopper l’imprimante dès que la T° du bed passe en dessous d’une certaine valeur, perso je ferai plutôt comme ça :

Déclencheurs : variable(Impression_en cours) et [Bureau][Ender][Actuelle bed]
Donc le scénario se déclenchera soit sur un changement d’état, soit sur un changement de T° du bed.

Dans le scénario, ajouter une boucle SI…ALORS :
SI variable(Impression_en cours)==0 && [Bureau][Ender][Actuelle bed] < xx && [Bureau][Ender][Satut] != « Printing »
ALORS stopper l’imprimante.

Je précise ces conditions qui doivent être toutes réunies pour stopper l’imprimante :

  • Variable(Impression_en cours)==0 → L’imprimante n’est pas en cours d’impression
  • [Bureau][Ender][Actuelle bed] < xx → La température du bed est en dessous du seuil fixé xx
  • [Bureau][Ender][Satut] != « Printing » → cette dernière condition pour traiter le cas d’un démarrage d’une impression 3D où celle-ci ne doit pas être stoppée, c’est à dire lorsque le statut est à « Printing » dans le délai de 3’ avant que la variable « Impression_en cours » ne change d’état, et tant que la température du bed qui va augmenter progressivement (et donc déclencher ce scénario) reste en dessous du seuil.

Bonjour

Voila ce que j’ai ecrit

Cela fonctionne en lancant le script manuellement

Par contre je ne vois pas a quoi sert la variable ? Elle est initialisée nulle part

A+

Bonsoir,
Tel quel, cette variable ne sert à rien et n’est pas prise en compte en effet.
Il faudrait l’initialiser (la créer directement dans le tableau des variables) pour que cela puisse fonctionner. Elle sert à indiquer l’état de l’imprimante 3’ après un changement d’état réel de celle-ci, et de stopper celle-ci à ce moment là, et pas au moment où l’imprimante fini son impression pour passer en cool-down…

J’ai ecrit cela , en rajoutant une notion de temps : a prendre en compte entre 23H30 et 7H00

Est-ce que cela vous semble correct ?

Arret de l’imprimante si T° BED <50° et impression terminée

Merci a vous

A+