Aller au contenu

Messages recommandés

Posté(e) (modifié)

Introduction

Il y a au moins deux façon de communiquer avec une imprimante en klipper. En effet, klipper/moonraker met à disposition des API qui peuvent être utilisées soit via des requêtes "http" POST ou GET ou soit via MQTT.

La première solution via des GET et POST est évoquée ici : 

Dans l'idéal, il faudrait que lorsqu'un évènement se produise, on puisse obtenir en "temps réel", enfin en quelques millisecondes, la nouvelle valeur. Ainsi, on serait averti en temps réel du fait qu'une impression s'arrête, ou on pourrait connaitre en temps réel la température de l'extrudeur ou du bed.

C'est  ce que va nous permettre MQTT.

On verra plus loin que comme déjà évoqué, MQTT peut non seulement récupérer des évènements, mais aussi, à l'image des GET, interroger l'imprimante pour qu'en retour elle nous renvoie un certain nombre d'infos. Enfin, à l'image des POST, MQTT permet également le déclenchement d'actions (lancement d'impression, exécution d'un Gcode etc...)

 

Exemple de ce que peut on récupérer via MQTT (ou via des GET) comme renseignements "en temps réel" ?

Voici ce que j'ai réussi ,jusqu'à présent comme renseignement en temps réel :

-L'état (printing standby...)
-La durée d'impression
-La durée total d'impression (je ne sais pas encore complètement la différence avec la durée d'impression)
-Le nom du fichier en cours d'impression
-La température du Bed
-La température de l'extrudeur
-Le temps d'impression de l'extrudeur. J'ai l'impression que c'est le temps cumulé depuis quand vous avez reçu l'imprimante. Ca reste à confirmer.

Ce sont les principaux, mais il y en a d'autres que vous allez retrouvé plus bas dans un tableau.

Installation et configuration de MQTT

-Si vous n’êtes pas familiarisés avec MQTT, en particulier coté serveur, suivez un tuto sur internet ou demandez des précisions sur ce fil de discussion.

-vous devez pouvoir vous connecter avec putty ou équivalent à votre imprimante. Avec certaines imprimantes, ce n'est pas possible. le firmware est trop bridé.

-Vous devez avoir un serveur MQTT accessible. Chez moi, un pi qui contient ce serveur (mosquitto)

  sur internet, il y a plein de tutos qui montrent comment ça s'installe.

-Vous devez avoir installé la partie client de mosquitto dans votre imprimante (via putty par exemple). Attention en théorie, cela peut vous faire perdre la garantie ! (voir le message qui s'affiche lorsque vous vous connectez avec putty).

Pour savoir si il a déjà été installé :

dpkg -l | grep mosquitto-clients

doit vous répondre quelque chose comme cela :
 

ii  mosquitto-clients                      1.5.7-1+deb10u1                      arm64        Mosquitto command line MQTT clients

 

Pour l'installer (si apt n'est pas adapté à votre distribution, il faut chercher ce qui peut le remplacer) :

sudo apt install mosquitto-clients

 

 

Puis, on va compléter le fichier moonraker.conf en lui ajoutant une section [mqtt]

 Chez moi, le fichier moonraker.conf se trouve dans /homme/mks/klipper_config si ce n'est pas le cas pour vous, vous pouvez  lancer une recherche :

find / -name moonraker.conf

Chez moi, j'ai cette réponse :
 


Message from syslogd@mkspi at Jan 27 11:37:04 ...
 kernel:[   53.228014] Disabling IRQ #58
/home/mks/kiauh-backups/klipper_config/220725-0302/klipper_config/moonraker.conf
/home/mks/kiauh-backups/klipper_config/220725-0259/klipper_config/moonraker.conf
/home/mks/kiauh-backups/klipper_config/220725-0304/klipper_config/moonraker.conf
/home/mks/moonraker/docs/moonraker.conf
/home/mks/klipper_config/moonraker.conf
/home/mks/kiauh/resources/moonraker.conf

Les backups sont des sauvegardes, on ne s'en occupe pas
Les dossier doc non plus
Pour moi, c'est celui qui est dans klipper_config qui est est le bon et donc

/home/mks/klipper_config/moonraker.conf

Commencez par faire une copie de sauvegarde de ce fichier (si votre fichier /home/mks/klipper_config/moonraker.conf se trouve dans un autre répertoire, à vous de remplacer le répertoire dans lla commande suivante et dans les autres commandes)

sudo cp /home/mks/klipper_config/moonraker.conf /home/mks/klipper_config/moonraker.conf.old

-Puis vous allez le compléter via nano (ou autre). Si besoin en modifiant le répertoire.
 

sudo nano /home/mks/klipper_config/moonraker.conf

Vous pouvez aussi y accéder par fluidd, enfin, chez moi..

image.png.d3db558b307f1723bc1a67dedd093ae2.png

A la fin du fichier, ajouter

[mqtt]
address: 192.168.1.... # l'IP de votre serveur MQTT. Pas son nom réseau, seulement une IP
port: 1883
username: votreNomUtilisateurQuiAEteDeclareDansVotreServeurMQTT
password: SonMotDePasse;
status_objects:
  webhooks
  toolhead=position,print_time,homed_axes,speeds,acceleration
  extruder=temperature,target,pressure_advance,smooth_time
  printer=state,extruder,target,position,virtual_sdcard
  heater_bed=temperature,target,power
  print_stats=filename,total_duration,print_duration,filament_used
  job_last=filename,print_duration

Pour address, comme de base, sur mon imprimante q1pro il n'y a pas de DNS déclaré correctement dans l'imprimante, seul une adresse IP (192.168.1....) fonctionne. C'est l'IP de votre serveur MQTT. Dans un premier temps rentrez l'IP, et dans un second temps, si vous le souhaitez, essayez de remplacer l'IP par son nom réseau.

Le username et le password sont des identifiants de connexion qui doivent être déclarés dans le serveur MQTT

-Sortez de "nano" (Ctrl X et validez)

-relancez moonraker (attention attendez si besoin la fin d'une impression en cours pour le faire)

sudo systemctl restart moonraker

Configuration du fichier moonraker.conf pour indiquer les évènements que l'on veut recevoir lors d'un changement (notion d'évènement)

Dans la section MQTTque vous venez d'ajouter dans le fichier de configuration moonraker.conf , il y a une partie status_objects dot le rôle est d'indiquer à moonraker les évènements que vous souhaitez avoir via MQTT

La ligne
 

  print_stats=state,filename,total_duration,print_duration

va par exemple nous permettre de récupérer en temps réel l'état de l'imprimante (standby, printing...)  le nom du fichier en train de s'imprimer, les durées d'impression prévu ...

à chaque fois qu'ils changent, un message MQTT est envoyé

Vous pouvez voir ces messages défiler par exemple à l'aide du logiciel MQTT Explorer

Ces messages sont envoyés par l'imprimante avec comme topic quelque chose sous la forme (chez vous il est possible que "mkspi" soit remplacé par autre chose) :

mkspi/klipper/status

et des payload (messages) au format JSON. Par exemple :
 

{
  "eventtime": 10149.499403589,
  "status": {
    "toolhead": {
      "print_time": 10164.745453851414,
      "position": [
        123.4,
        121.858,
        28.906922455714884,
        1829.6180900007298
      ]
    },
    "extruder": {
      "temperature": 209.75,
      "power": 0.9052395424853155
    },
    "heater_bed": {
      "power": 0.4082908609993894
    },
    "print_stats": {
      "total_duration": 1802.585450651999,
      "print_duration": 1603.111610140999,
      "filament_used": 1210.5352800007333
    }
  }
}

A noter que si par exemple pour print_stats vous ne spécifiez que
print_stats=state
au lieu de
print_stats=state,filename,total_duration,print_duration

L'imprimante ne retournera en MQTT que state lorsque ce dernier changera. Il ne vous enverra pas par exemple, de message lorsque "filename" change

De même si cous mettez print_stats sans le "=" et ce qui est derrière, il renverra tout ce qui concerne print_stats. C'est un moyen d'explorer, de tester ce que peut renvoyer l'imprimante, mais cela va la faire envoyer des messages inutiles.

 

 

Concrètement :

       
ligne dans moonraker.conf Topic Filtre JSON  
 print_stats mkspi/klipper/status [status][print_stats][state] Etat : printing, standby…
 print_stats mkspi/klipper/status [status][print_stats][print_duration] temps d'impression
 print_stats mkspi/klipper/status [status][print_stats][total_duration] Temps total d'impression
 print_stats mkspi/klipper/status [status][print_stats][filename] Nom du fichier en cours d'impression
heater_bed mkspi/klipper/status [status][heater_bed][temperature] Température du bed
heater_bed mkspi/klipper/status [status][heater_bed][target] Cible température bed
heater_bed mkspi/klipper/status [status][heater_bed][power] Puissance en % pour le Bed
extruder mkspi/klipper/status [status][extruder][temperature] Température de l'extruder
extruder mkspi/klipper/status [status][extruder][target] Cible température extrudeur
extruder mkspi/klipper/status [status][extruder][power] Puissance en % pour l'extrudeur
toolhead mkspi/klipper/status [status][toolhead][position] position de la tête. Je pense [x,y,z]
toolhead mkspi/klipper/status [status][toolhead][position][0] Position de la tête (x?)
toolhead mkspi/klipper/status [status][toolhead][position][0] Position de la tête (y?)
toolhead mkspi/klipper/status [status][toolhead][position][0] Position de la tête (z?)
toolhead mkspi/klipper/status [status][toolhead][print_time] Temps de travail depuis alumage imp?
     
       
       
       
       
       
       
       
       
       

Utilisation de MQTT pour déclencher des API : demande d'infos

 

Trouver le nom d'hote (hostname) de votre imprimante.

 

Vous devez connaitre votre hostname pour connaitre le premier élément des topics.

Sous fluidd vous l'avez ici

image.png.9127ba5bc0550df7272763d68ad9c7fe.png

Sinon, la commande

hostname

Vous le donnera. Chez moi la réponse est :
 

mkspi

Vous pouvez aussi l'imposer dans le fichier de configuration  "moonraker.conf" en y ajoutant dans la section [server] la ligne
 

hostname: mkspi

Vous pouvez bien sûr remplacer mkspi par ce que vous voulez.

Dans tous les exemples ci-dessous, si votre hostname n'est pas mkpsi ou si vous avez ajouté une ligne ligne hostname: mkspi dans la section [server] du fichier  moonraker.conf, remplacé le premier terme des topic (mkspi" par ce que vous avez obtenu par la commande hostname ou par ce que vous avez imposé dans moonraker.conf

Vous trouverez la liste des API ici : https://moonraker.readthedocs.io/en/latest/web_api/

Principe d'utilisation de ces API :

On envoie un message MQTT ayant comme topic (toujours le même)   (en remplaçant éventuellement "mkspi" par ce que vous avez chez vous)

 

mkspi/moonraker/api/request 

 

et comme contenu  (payload) une chaine JSON indiquant ce que vous vous obtenir et que vous pouvez trouver dans ce lien https://moonraker.readthedocs.io/en/latest/web_api/

Moonraker vous renvoie alors une réponse via un message MQTT avec comme topic

mkspi/moonraker/api/response

Prenons par exemple cette API (extrait du document en question) :
 

Citation

JSON-RPC over HTTP

Exposes the JSON-RPC interface over HTTP. All JSON-RPC methods with corresponding HTTP APIs are available. Methods exclusive to other transports, such as Identify Connection, are not available.

HTTP request:

 
POST /server/jsonrpc
Content-Type: application/json
{
    "jsonrpc": "2.0",
    "method": "printer.info",
    "id": 5153
}

On va pouvoir interroger l'imprimante via un message MQTT

avec comme topic

mkspi/moonraker/api/request

et comme payload au format JSON

{ "jsonrpc": "2.0", "method": "printer.info", "id": 5153 }

Vous pouvez utiliser MQTT explorer ( https://mqtt-explorer.com/) pour lancer ce message MQTT :

image.png.efe1ab71cf2298728b0bb19e1c4810a1.png

     

Vous allez y récupérer ce message en réponse :

image.png.43fb548eb15f8db41574a3c29d7b5faa.png

la réponse complète dans mon cas :

{
  "jsonrpc": "2.0",
  "result": {
    "state_message": "Printer is ready",
    "klipper_path": "/home/mks/klipper",
    "config_file": "/home/mks/klipper_config/printer.cfg",
    "software_version": "v0.10.0-530-g3387a9c2-dirty",
    "hostname": "mkspi",
    "cpu_info": "4 core ?",
    "state": "ready",
    "python_path": "/home/mks/klippy-env/bin/python",
    "log_file": "/home/mks/klipper_logs/klippy.log"
  },
  "id": 1
}

 

Utilisation de MQTT pour déclencher des API : demandes d'actions

Avec le même principe, vous pouvez déclencher des actions. Toujours pareil, vous trouvez l'API qui convient dans https://moonraker.readthedocs.io/en/latest/web_api/

Par exemple pour mettre en pause une impression en cours

image.png.b82763bc88c21fc343ced70578976da2.png

Le topic est toujours le même :

mkspi/moonraker/api/request

le JSON est

{"jsonrpc":"2.0","method":"printer.print.pause","id":4564}

Moonraker vous renvoie une réponse (ok) avec un message MQTT ayant pour topic

mkspi/moonraker/api/response

 

Un autre exemple : demande d'exécution d'un GCODE

Le topic, donc toujours
 

mkspi/moonraker/api/request

la payload (en remplaçant M104 S20 qui est un GCODE demandant de chauffer la buse à 20°, par le GCODE que vous souhaitez voir exécuté :

{"jsonrpc":"2.0","method":"printer.gcode.script","params":{"script":"M104 S20"},"id":1}

 

 

 

Utilisation avec Home assistant :

Je ne pratique pas HA mais je sais qu'il y a pas mal de tuto sur le sujet sur internet. @fran6p l'utilise et nous a communiqué ce lien : https://github.com/marcolivierarsenault/moonraker-home-assistant

Utilisation avec Jeedom

Sous jeedom, j'utilise le plugin JMQTT qui permet d'une part d'avoir un serveur MQTT, mais aussi de facilement récupérer les messages MQTT pour des topic bien préçis.

Dans JMQTT, vous créez autant d'infos que vous voulez, en vous servant du tableau plus haut pour le remplir.
Exemple :

Pour  l'équipement (à noter que pour l'instant, j'ai choisi 1 pour le Qos pour être sûr de ne pas rater une info :

image.png.a97abf48cd051890c16618ac29d60de2.png

Et comme commandes de type info (exemples) :

Voir le tableau plus haut pour d'autres infos.

image.thumb.png.ee0253c4ae9de57052bbe9a2b9a67685.png


Pour les actions  :

Exemple pour mettre en pause et relancer après pause :
 

mkspi/moonraker/api/request

{"jsonrpc":"2.0","method":"printer.print.pause","id":4564}

et
 

mkspi/moonraker/api/request

{"jsonrpc":"2.0","method":"printer.print.resume","id":1465}

image.thumb.png.e65d27dda89c79ed2879f4e195a2c4dc.png

Et pour demander l'exécution d'un GCODE :

image.thumb.png.1616dc778fe1d523aa4535b9afc78dca.png

 

N'hésitez pas à me faire un retour sur votre utilisation en spécifiant le type d'imprimante...

 

image.png

Modifié (le) par 2cv001
  • J'aime 1
  • Merci ! 1
  • 2cv001 changed the title to MQTT avec une Q1pro : ça a l'air de marcher.... en partie.
Posté(e)

Salutation !

Il y a 9 heures, 2cv001 a dit :

Si ça vous intéresse, je fais un tuto.

Oui, je suis intéressé.

Pour voir l'implémentation et les outils utilisés (et cela même si pas complètement terminé ni complétement fonctionnel )

Merci.

Posté(e) (modifié)

 

@PPAC

Voilà déjà un bon début (voir dans le premier message de cette discussion que j'ai édité pour ajouter le tuto).
Tu maitrises bien MQTT ? Tu as déjà un serveur MQTT installé ?

Modifié (le) par 2cv001
  • Merci ! 1
  • 2cv001 changed the title to [TUTO] MQTT avec une Q1pro : ça a l'air de marcher.... en partie.
Posté(e)
il y a une heure, 2cv001 a dit :

Voilà déjà un bon début (voir dans le premier message de cette discussion que j'ai édité pour ajouter le tuto).
Tu maitrises bien MQTT ? Tu as déjà un serveur MQTT installé ?

Merci.

Niveau MQTT, je suis débutant. Je découvre en partant de zéro.

Posté(e)

Il va donc falloir que tu installes un serveur MQTT. Tu as un linux genre raspberry pi quelque part ?

 

Posté(e)

@pjtlivjy Prèt à faire des tests, ou tu veux simplement que je développe plus l'intéret de la chose ?
Tu connais quelque chose à MQTT ?

 

Posté(e) (modifié)

je n'y connais absolument rien @2cv001 là je suis en déplacement donc pas dans mon atelier donc je veux bien pour l'instant que tu développe l'utilité de cela 😉

Modifié (le) par pjtlivjy
Posté(e) (modifié)

Modes de dialogue avec l'imprimante.

Il existe plusieurs moyens pour dialoguer avec l'imprimante.

La première que j'avais déjà évoqué ici : https://www.lesimprimantes3d.fr/forum/topic/60858-ici-on-pourrait-réunir-tout-ce-qui-permettrait-de-domotiser-les-qidi-ou-simplement-de-pouvoir-les-intérroger-ou-les-faire-agir-par-nimporte-quel-programme/

 

Est par des POST ou GET

Les GET pouvant être fait simplement en rentrant une url dans votre navigateur préféré, je vous invite à taper dans votre navigateur cette url:
 

http://192.168.1.4:7125/printer/info

en remplaçant  192.168.1.4 par l'ip de votre imprimante (si vous ne savez pas comment la connaitre, demandez moi). bien laisser le :7125 derrière l'ip

Vous allez voir apparaitre quelque chose comme cela dans votre navigateur.
 

{
  "result": {
    "state_message": "Printer is ready",
    "klipper_path": "/home/mks/klipper",
    "config_file": "/home/mks/klipper_config/printer.cfg",
    "software_version": "v0.10.0-530-g3387a9c2-dirty",
    "hostname": "mkspi",
    "cpu_info": "4 core ?",
    "state": "ready",
    "python_path": "/home/mks/klippy-env/bin/python",
    "log_file": "/home/mks/klipper_logs/klippy.log"
  }
}

Bref, et c'est juste ce qu'il faut retenir, les GET permettent de demander à notre imprimante de nous fournir de l'info : certains renseignements tels que la température de la buse, du bed, les températures cible, le fichier en train de s'imprimer...
Les GET (comme les POST que l'on verra juste après) sont facilement déclenchables par des programmes (python...) et par l"intermédiaire de logiciels de domotique préférés (jeedom, home assistance...). Concrètement, on peut agir en fonction d’évènements. Par exemple, nous envoyer un message sur notre smartphone lorsque l'impression est fini ou lorsqu'elle en est à 70%.

Il existe aussi des requêtes POST qui envoient une requête pour déclencher des actions.

Par exemple, dans une invite de commande (ça vous parle ?) si vous tapez, en changeant l'IP
 

curl -X POST "http://192.168.1.4:7125/printer/gcode/script" -H "Content-Type: application/json" -d "{\"script\": \"M140 S20\"}"

L'imprimante va exécuter le gcode M140 S20 qui impose une température de 20° pour la buse.


Bon,ok, ça marche, j'ai testé et on peut récupérer beaucoup d'infos et déclencher pas mal d'actions (lancer une impression...).

L'inconvénient, pour la récupération d'infos, est qu"'il faut poser la question pour avoir une réponse (quel est la température de la buse) il nous répond instantanément, mais il faut poser la question. Si on pose la question toutes les mn, on peut rater une mn pendant laquelle l'info a changé.

Le mieux serait que ce soit l'imprimante elle même qui nous envoie l'info lorsque l'info change. Et c'est ce que l'on peut faire avec MQTT.

Avec MQTT, je peux m'abonner à une info (l'état de l'imprimante : standby, printing...) et du coup quand cette info change, l'imprimante nous envoie un message en temps réel, enfin presque (quelques millisecondes peut être), avec la nouvelle info. Donc beaucoup plus adapté pour avoir des infos lorsqu'elles changent.

A suivre.... Après j'expliquerai un peu plus précisément comment fonctionne MQTT.

Je vous lisse réagir et poser des questions sur ce qui vient d'être dit.



 

Modifié (le) par 2cv001
  • Merci ! 1
Posté(e)

Même si ce n'est pas à proprement parler du MQTT 😉

Moonraker fournit une API qui permet de communiquer avec Klipper => https://moonraker.readthedocs.io/en/latest/web_api/

J'utilise comme outil domotique HomeAssistant. Il existe une intégration pour Moonraker.

Ave ma X-Max3, j'avais déjà abordé le sujet ici.

🙂

  • Merci ! 1
Posté(e)

@fran6p Effectivement, et je m'en suis servi pour jeedom ( je parle de requêtes POST et GET). Voir ici :
https://community.jeedom.com/t/tuto-imprimante-3d-sous-klipper-moonraker/136463

En fait, j'ai cherché à faire du MQTT pour avoir l'évènement en temps réel et non soumis à un cron. C'est aussi parque je maitrise beaucoup plus MQTT que les websoket etc..
Et comme MQTT fonctionne (j'ai testé sur pas mal d'impressions aujourd'hui).

Pas encore réussi à déclencher des actions (lancer une impression...) par MQTT, ça m'amuserait de le faire, mais là, on a pas le problème du cron et donc on sait faire via un POST (c'est ce que je fais pour Jeedom dans le même lien que je viens de donner). Je cherche encore.

Posté(e)

Ca se confirme, ça marche bien.
Voici ce que j'arrive à récupérer actuellement 'j'ai mis à jour le premier message pour le rajouter :


-L'état (printing standby...)
-La durée d'impression
-La durée total d'impression (je ne sais pas encore complètement la différence avec la durée d'impression)
-Le nom du fichier en cours d'impression
-La température du Bed
-La température de l'extrudeur
-Le temps d'impression de l'extrudeur. J'ai l'impression que c'est le temps cumulé depuis quand vous avez reçu l'imprimante. Ca reste à confirmer.

 

J'ai ajouté dans le premier message un tableau avec les topics à mettre en fonction de ce que l'on veut récupérer, ainsi que des détails pour une utilisation à travers Jeedom.

  • J'aime 2
Posté(e)

J'ai été plus loin, J'ai fait ce tableau que l'on retrouve aussi dans le premier message que j'ai édité :

ligne dans moonraker.conf Topic Filtre JSON  
 print_stats mkspi/klipper/status [status][print_stats][state] Etat : printing, standby…
 print_stats mkspi/klipper/status [status][print_stats][print_duration] temps d'impression
 print_stats mkspi/klipper/status [status][print_stats][total_duration] Temps total d'impression
 print_stats mkspi/klipper/status [status][print_stats][filename] Nom du fichier en cours d'impression
heater_bed mkspi/klipper/status [status][heater_bed][temperature] Température du bed
heater_bed mkspi/klipper/status [status][heater_bed][target] Cible température bed
heater_bed mkspi/klipper/status [status][heater_bed][power] Puissance en % pour le Bed
extruder mkspi/klipper/status [status][extruder][temperature] Température de l'extruder
extruder mkspi/klipper/status [status][extruder][target] Cible température extrudeur
extruder mkspi/klipper/status [status][extruder][power] Puissance en % pour l'extrudeur
toolhead mkspi/klipper/status [status][toolhead][position] position de la tête. Je pense [x,y,z]
toolhead mkspi/klipper/status [status][toolhead][position][0] Position de la tête (x?)
toolhead mkspi/klipper/status [status][toolhead][position][0] Position de la tête (y?)
toolhead mkspi/klipper/status [status][toolhead][position][0] Position de la tête (z?)
toolhead mkspi/klipper/status [status][toolhead][print_time] Temps de travail depuis alumage imp?
  • Merci ! 1
Posté(e) (modifié)

Bon, j'ai avancé.
Je savais jusqu'à présent recueillir "en temps réel" de l'info sur des paramètres (état de l'imprimante..) mais je ne savais pas déclencher des actions comme par exemple déclencher une impression ou faire exécuter un Gcode par MQTT.
Ca y est, je sais faire. Les explications demain. Là, il est tard.

 

Modifié (le) par 2cv001
  • J'aime 1
Posté(e) (modifié)

Voilà, c'est fait. il faudra que je relise.

Tous les commentaires sont les bienvenus.

J'ai changé le titre pour un titre qui maintenant me semble lus approprié.

 

@PPAC

J'avais classé ce message avec les qidi tech, mais en fait cela dépasse les qidi et concerne toutes les imprimantes avec klipper. Une idée d'où le mettre ?

Dans la section TUTO ?
Ou je place un message dans la section TUTO avec un lien renvoyant ici ?

 

Modifié (le) par 2cv001
  • 2cv001 changed the title to [TUTO] MQTT avec Klipper / Moonraker ou comment dialoguer avec son imprimante en temps réel.
Posté(e)
Il y a 1 heure, 2cv001 a dit :

J'avais classé ce message avec les qidi tech, mais en fait cela dépasse les qidi et concerne toutes les imprimantes avec klipper.

Je n'ai pas suffisamment joué avec toute sorte de machine sous Klipper pour savoir si ce tuto est suffisamment générique ou non pour être facilement applicables sur toutes les configurations Klipper que l'on trouve actuellement.

Mais presque certain que toutes les distributions n'ont pas forcément apt comme gestionnaire de pakage, ni forcement le fichier moonraker.conf dans le même dossier utilisateur.

Et il y a les exceptions des machines sous Klipper mais qui ont un firmware verrouillé (sans possibilité d'accès SSH avec le firmware officiel, donc par exemple les Kobra 2 Pro, Kobra 3, Kobra 3 Max, Kobra S1, ...)

Il y a 1 heure, 2cv001 a dit :

Une idée d'où le mettre ?

Dans la section TUTO ?
Ou je place un message dans la section TUTO avec un lien renvoyant ici ?

J'hésite... je vais demander.

@Modérateurs Globaux si vous avez un avis merci.

Posté(e)

C'est déplacé.

Le lien dans la section Qidi ne sera là que 30 jours. Donc, je vais faire un sujet dans la section Qidi pour faire le lien.

  • Merci ! 1
Posté(e) (modifié)
il y a une heure, PPAC a dit :

Mais presque certain que toutes les distributions n'ont pas forcément apt comme gestionnaire de pakage, ni forcement le fichier moonraker.conf dans le même dossier utilisateur.

Effectivement, merci pour la remarque. Du coup, j'ai modifié le tuto en ajoutant par exemple :
 

Citation

 Chez moi, le fichier moonraker.conf se trouve dans /homme/mks/klipper_config si ce n'est pas le cas pour vous, vous pouvez  lancer une recherche :

find / -name moonraker.conf

Chez moi, j'ai cette réponse :
 


Message from syslogd@mkspi at Jan 27 11:37:04 ...
 kernel:[   53.228014] Disabling IRQ #58
/home/mks/kiauh-backups/klipper_config/220725-0302/klipper_config/moonraker.conf
/home/mks/kiauh-backups/klipper_config/220725-0259/klipper_config/moonraker.conf
/home/mks/kiauh-backups/klipper_config/220725-0304/klipper_config/moonraker.conf
/home/mks/moonraker/docs/moonraker.conf
/home/mks/klipper_config/moonraker.conf
/home/mks/kiauh/resources/moonraker.conf

Les backups sont des sauvegardes, on ne s'en occupe pas
Les dossier doc non plus
Pour moi, c'est celui qui est dans klipper_config qui est est le bon et donc

/home/mks/klipper_config/moonraker.conf

 

Et j'ai aussi fais un ajout concernant apt

Modifié (le) par 2cv001
  • J'aime 1
Posté(e)

@2cv001

Juste pour information :

Le nom «mkspi» au début d'un topic MQTT correspond au nom d'hôte du matériel qui envoie / reçoit les données. Il dépend donc de son propre matériel et doit être modifié s'il est différent.

Un moyen simple pour le connaitre, une fois connecté en ssh sur l'imprimante (exemple avec ma X-Max 3) :

mks@mkspi:~$ hostname
mkspi

🙂

  • Merci ! 1
Posté(e)
il y a 38 minutes, fran6p a dit :

@2cv001

Juste pour information :

Le nom «mkspi» au début d'un topic MQTT correspond au nom d'hôte du matériel qui envoie / reçoit les données. Il dépend donc de son propre matériel et doit être modifié s'il est différent.

Un moyen simple pour le connaitre, une fois connecté en ssh sur l'imprimante (exemple avec ma X-Max 3) :

mks@mkspi:~$ hostname
mkspi

🙂

Merci @fran6p pour ces précisions, cela permet de faire évoluer le tuto. J'ai modifié te tuto en conséquence. Du coup, j'ai aussi ajouté la possibilité que l'on a d'imposer ce début de topic en plaçant un truc du genre

hostname : cequetuveux

dans la section [server] du fichier moonraker.conf

Posté(e) (modifié)

Comme je gère mon réseau local depuis pas mal d'années, ma passerelle d'entrée (pas la Box internet de mon FAI, qui elle est utilisée en bridge) fournit à tous les périphériques connectés toutes les infos nécessaires. Je peux ainsi accéder aux matériels aussi bien via leur adresse IP (c'est le minimum 😉) que par leur nom pleinement qualifié (xmax3.poulizac.net) ou le nom du nœud réseau (xmax3) obtenu via «hostname» ou via «uname -n».

🙂

Modifié (le) par fran6p
Posté(e)

Tiens, je viens de découvrir que dans fluidd, on a la possibilité d'étiter les fichiers de configuration et donc de se passer de putty. Bien pour ceux qui connaissent mal linux !
image.png.bcaecbcea2e6a79fd14566ea44cddcc0.png

image.png.7a6edba6a7a06b5605a1d2266f231223.png

On peut aussi y voir le nom d’hôte

image.png.f7e2a6015ed11a52ef6826e07cc6816c.png!

Pas testé, mais j'ai l'impression que sous fluidd, on veut aussi redémarrer kipper ou moonraker. Pas encore testé.

image.png.36b3325779e95e41477facb3cbd18aa3.png

image.png.25ca0b85f45102876bfdf11fe161a872.png

Posté(e) (modifié)

Mainsail le permet aussi 😉 (Octoprint avec le greffon idoine le permettait également du temps où j'utilisais encore Octo).

C'est une fonctionnalité implémentée dès la création de ces interfaces Web.

En plus d'éditer, on peut aussi téléverser, télécharger, créer…

Il y a 1 heure, 2cv001 a dit :

j'ai l'impression que sous fluidd, on veut aussi redémarrer kipper ou moonraker.

C'est plus ou moins fonctionnel 😉. En fonction des ajouts effectués, on peut relancer d'autres services, et même piloter ses prises électriques : c'est Moonraker qui le permet.

Avec ma X-Max 3 «libérée» :

fluidd-hote.jpg.5f1c0c6accb20300126b6af2cc785526.jpg fluidd-power.jpg.f5329730cf77ea8c97aa31664a01c02a.jpg fluidd-services.jpg.ddf0df7fd38b1a4a0a96e55ad7689091.jpg

Par contre, ça n'est pas pleinement fonctionnel pour l'onglet «Hôte» sur nos Qidi (éteindre, par exemple) 😉

Avec Mainsail, on a des fonctionnalités identiques

mainsail-hote-services-power.jpg.7825a9ce5618d58035a8412e9a95d462.jpg

🙂

Modifié (le) par fran6p
Posté(e)

Mainsail ça s'installe sur l'imprimante ou comme octopi par exemple sur un pi qui est sur le réseau ?

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...