Aller au contenu

GO Print

[WIP] Lire les données publiées par les imprimantes Bambu (usage domotique, etc.)


SR-G

Messages recommandés

Tout premier jet, il faut encore creuser ...

J'ai lancé une impression de 6 heures et j'ai capturé l'intégralité des événements envoyés par la Bambu X1C (pour usage par le client desktop ou le client Android) : çà se fait via le protocole MQTT, sous forme de données JSON, avec de nombreux events publiés.

En 6 heures, j'ai eu 53275 events, mais seulement 4 types d'events différents.

Soit 288 MO (quand même !) (et seulement 4.3 MO une fois compressé en GZIP vu qu'il y a énormément de données identiques entre chaque message).

- Events "info" : 3 events

- Events "liveview" : 2 events

- Events "mc_print" : 28534 events

- Events "print" : 24736 events

Ca ce sont les events de l'imprimante vers l'extérieur : ce sont juste des publications d'infos / des "compte-rendus". Il en manque bien sûr / sans doute / clairement plusieurs autres. Ca en fait un paquet : l'imprimante balance sans arrêt les mêmes infos statiques tout le temps (c'est presque over kill, mais bon).

Et il y a bien sûr des events dans l'autre sens : Bambu Studio > MQTT > imprimante (pour envoyer des commandes) (genre, changement de température > un message spécifique avec la valeur, etc.) (je n'ai pas encore creusé).

Mes notes persos sur les manips pour tranquillement récupérer ces events (via DOCKER)

# Launch a docker container in order to have a MQTT client
docker run --rm -it -v $(pwd):/data -w /data/ --name mqtt-client2 debian:bullseye-slim /bin/bash

# Once inside the container, install the MQTT client and JQ (for JSON formatting)
apt-get update && apt-get install -y mosquitto-clients jq

# Put your informations here regarding the Bambu (IP address + internal ID (visible in Bambu Studio))
export BAMBU_X1C_IP="192.168.8.130"
export BAMBU_X1C_ID="00M00A261900054"

# Display continuously all messages sent by the printer
mosquitto_sub -h ${BAMBU_X1C_IP} -v -t '#' 

# Send them to a file
mosquitto_sub -h ${BAMBU_X1C_IP} -v -t '#' > bambu-traces-$(date '+%Y-%m-%d_%H-%M').log

# Display all messages except the (continuously sent) reports : there should be nothing
mosquitto_sub -h ${BAMBU_X1C_IP} -v -t '#' -T "device/${BAMBU_X1C_ID}/report"

# Extract the %age of the current print in progress from the continuous reports (to monitor progress of current print)
mosquitto_sub -h ${BAMBU_X1C_IP} -t "device/${BAMBU_X1C_ID}/report" | jq '.print.mc_percent' 

 

Et pour le détail voici le contenu des 4 types de messages trappés (le début est le nom du TOPIC MQTT (cf. option "-v" ci-avant), le reste est le contenu du JSON tel qu'envoyé par l'imprimante).

Premier type, le plus complet, avec toutes les infos "statiques" sur l'AMS (couleurs des filaments dans les AMS) et toutes celles "dynamiques" (qui changent potentiellement tout le temps sur la durée), dont l'humidité, les températures, le % de progression, les erreurs, ...

device/00M00A261900054/report {
    "print": {
        "ams": {
            "ams": [
                {
                    "humidity": "2",
                    "id": "0",
                    "temp": "22.5",
                    "tray": [
                        {
                            "bed_temp": "0",
                            "bed_temp_type": "0",
                            "drying_temp": "0",
                            "drying_time": "0",
                            "id": "0",
                            "nozzle_temp_max": "260",
                            "nozzle_temp_min": "220",
                            "remain": 0,
                            "tag_uid": "0000000000000000",
                            "tray_color": "161616FF",
                            "tray_diameter": "0.00",
                            "tray_id_name": "",
                            "tray_info_idx": "GFG99",
                            "tray_sub_brands": "",
                            "tray_type": "PETG",
                            "tray_uuid": "00000000000000000000000000000000",
                            "tray_weight": "0",
                            "xcam_info": "000000000000000000000000"
                        },
                        {
                            "bed_temp": "0",
                            "bed_temp_type": "0",
                            "drying_temp": "0",
                            "drying_time": "0",
                            "id": "1",
                            "nozzle_temp_max": "260",
                            "nozzle_temp_min": "220",
                            "remain": 0,
                            "tag_uid": "0000000000000000",
                            "tray_color": "F98C36FF",
                            "tray_diameter": "0.00",
                            "tray_id_name": "",
                            "tray_info_idx": "GFG99",
                            "tray_sub_brands": "",
                            "tray_type": "PETG",
                            "tray_uuid": "00000000000000000000000000000000",
                            "tray_weight": "0",
                            "xcam_info": "000000000000000000000000"
                        },
                        {
                            "bed_temp": "0",
                            "bed_temp_type": "0",
                            "drying_temp": "0",
                            "drying_time": "0",
                            "id": "2",
                            "nozzle_temp_max": "260",
                            "nozzle_temp_min": "220",
                            "remain": 0,
                            "tag_uid": "0000000000000000",
                            "tray_color": "FFFFFFFF",
                            "tray_diameter": "0.00",
                            "tray_id_name": "",
                            "tray_info_idx": "GFG99",
                            "tray_sub_brands": "",
                            "tray_type": "PETG",
                            "tray_uuid": "00000000000000000000000000000000",
                            "tray_weight": "0",
                            "xcam_info": "000000000000000000000000"
                        },
                        {
                            "bed_temp": "0",
                            "bed_temp_type": "0",
                            "drying_temp": "0",
                            "drying_time": "0",
                            "id": "3",
                            "nozzle_temp_max": "260",
                            "nozzle_temp_min": "220",
                            "remain": 0,
                            "tag_uid": "0000000000000000",
                            "tray_color": "0ACC38FF",
                            "tray_diameter": "0.00",
                            "tray_id_name": "",
                            "tray_info_idx": "GFG99",
                            "tray_sub_brands": "",
                            "tray_type": "PETG",
                            "tray_uuid": "00000000000000000000000000000000",
                            "tray_weight": "0",
                            "xcam_info": "000000000000000000000000"
                        }
                    ]
                },
                {
                    "humidity": "5",
                    "id": "1",
                    "temp": "20.6",
                    "tray": [
                        {
                            "bed_temp": "0",
                            "bed_temp_type": "0",
                            "drying_temp": "0",
                            "drying_time": "0",
                            "id": "0",
                            "nozzle_temp_max": "260",
                            "nozzle_temp_min": "220",
                            "remain": 0,
                            "tag_uid": "0000000000000000",
                            "tray_color": "F72323FF",
                            "tray_diameter": "0.00",
                            "tray_id_name": "",
                            "tray_info_idx": "GFG99",
                            "tray_sub_brands": "",
                            "tray_type": "PETG",
                            "tray_uuid": "00000000000000000000000000000000",
                            "tray_weight": "0",
                            "xcam_info": "000000000000000000000000"
                        },
                        {
                            "bed_temp": "0",
                            "bed_temp_type": "0",
                            "drying_temp": "0",
                            "drying_time": "0",
                            "id": "1",
                            "nozzle_temp_max": "260",
                            "nozzle_temp_min": "220",
                            "remain": 0,
                            "tag_uid": "0000000000000000",
                            "tray_color": "A03CF7FF",
                            "tray_diameter": "0.00",
                            "tray_id_name": "",
                            "tray_info_idx": "GFG99",
                            "tray_sub_brands": "",
                            "tray_type": "PETG",
                            "tray_uuid": "00000000000000000000000000000000",
                            "tray_weight": "0",
                            "xcam_info": "000000000000000000000000"
                        },
                        {
                            "bed_temp": "0",
                            "bed_temp_type": "0",
                            "drying_temp": "0",
                            "drying_time": "0",
                            "id": "2",
                            "nozzle_temp_max": "260",
                            "nozzle_temp_min": "220",
                            "remain": 0,
                            "tag_uid": "0000000000000000",
                            "tray_color": "898989FF",
                            "tray_diameter": "0.00",
                            "tray_id_name": "",
                            "tray_info_idx": "GFG99",
                            "tray_sub_brands": "",
                            "tray_type": "PETG",
                            "tray_uuid": "00000000000000000000000000000000",
                            "tray_weight": "0",
                            "xcam_info": "000000000000000000000000"
                        },
                        {
                            "bed_temp": "0",
                            "bed_temp_type": "0",
                            "drying_temp": "0",
                            "drying_time": "0",
                            "id": "3",
                            "nozzle_temp_max": "260",
                            "nozzle_temp_min": "220",
                            "remain": 0,
                            "tag_uid": "0000000000000000",
                            "tray_color": "AF7933FF",
                            "tray_diameter": "0.00",
                            "tray_id_name": "",
                            "tray_info_idx": "GFG99",
                            "tray_sub_brands": "",
                            "tray_type": "PETG",
                            "tray_uuid": "00000000000000000000000000000000",
                            "tray_weight": "0",
                            "xcam_info": "000000000000000000000000"
                        }
                    ]
                }
            ],
            "ams_exist_bits": "3",
            "insert_flag": true,
            "power_on_flag": false,
            "tray_exist_bits": "ff",
            "tray_is_bbl_bits": "ff",
            "tray_now": "6",
            "tray_read_done_bits": "ff",
            "tray_reading_bits": "0",
            "tray_tar": "6",
            "version": 13
        },
        "ams_rfid_status": 2,
        "ams_status": 768,
        "bed_target_temper": 70.0,
        "bed_temper": 70.0,
        "big_fan1_speed": "0",
        "big_fan2_speed": "15",
        "chamber_temper": 31.0,
        "command": "push_status",
        "cooling_fan_speed": "0",
        "fail_reason": "0",
        "fan_gear": 16711680,
        "force_upgrade": false,
        "gcode_file": "/data/Metadata/plate_1.gcode",
        "gcode_file_prepare_percent": "100",
        "gcode_start_time": "1673860282",
        "gcode_state": "RUNNING",
        "heatbreak_fan_speed": "15",
        "hms": [],
        "home_flag": 271,
        "hw_switch_state": 1,
        "ipcam": {
            "ipcam_dev": "1",
            "ipcam_record": "disable",
            "resolution": "1080p",
            "timelapse": "enable"
        },
        "lifecycle": "product",
        "lights_report": [
            {
                "mode": "on",
                "node": "chamber_light"
            },
            {
                "mode": "flashing",
                "node": "work_light"
            }
        ],
        "mc_percent": 6,
        "mc_print_error_code": "0",
        "mc_print_stage": "2",
        "mc_print_sub_stage": 0,
        "mc_remaining_time": 326,
        "mess_production_state": "active",
        "nozzle_target_temper": 255.0,
        "nozzle_temper": 255.0,
        "online": {
            "ahb": true,
            "rfid": false
        },
        "print_error": 0,
        "print_gcode_action": 0,
        "print_real_action": 0,
        "print_type": "cloud",
        "profile_id": "1264843",
        "project_id": "1264845",
        "sdcard": true,
        "sequence_id": "2021",
        "spd_lvl": 2,
        "spd_mag": 100,
        "stg": [
            2,
            14,
            1,
            8
        ],
        "stg_cur": 0,
        "subtask_id": "2435333",
        "subtask_name": "boardgame-the-king-is-dead_plate_1",
        "task_id": "2435332",
        "upgrade_state": {
            "ahb_new_version_number": "",
            "ams_new_version_number": "",
            "consistency_request": false,
            "dis_state": 0,
            "err_code": 0,
            "force_upgrade": false,
            "message": "",
            "module": "null",
            "new_version_state": 2,
            "ota_new_version_number": "",
            "progress": "0",
            "sequence_id": 0,
            "status": "IDLE"
        },
        "upload": {
            "file_size": 0,
            "finish_size": 0,
            "message": "Good",
            "oss_url": "",
            "progress": 0,
            "sequence_id": "0903",
            "speed": 0,
            "status": "idle",
            "task_id": "",
            "time_remaining": 0,
            "trouble_id": ""
        },
        "wifi_signal": "-60dBm",
        "xcam": {
            "allow_skip_parts": false,
            "buildplate_marker_detector": false,
            "first_layer_inspector": true,
            "halt_print_sensitivity": "medium",
            "print_halt": true,
            "printing_monitor": true,
            "spaghetti_detector": true
        },
        "xcam_status": "0"
    }
}

Des infos statiques sur toutes les versions de firmwares, en début d'impression

device/00M00A261900054/report {
    "info": {
        "command": "get_version",
        "module": [
            {
                "hw_ver": "",
                "name": "ota",
                "sn": "",
                "sw_ver": "01.03.00.00"
            },
            {
                "hw_ver": "AP05",
                "name": "rv1126",
                "sn": "00M00A261900054",
                "sw_ver": "00.00.16.35"
            },
            {
                "hw_ver": "TH07",
                "name": "th",
                "sn": "00300A261900148",
                "sw_ver": "00.00.04.53"
            },
            {
                "hw_ver": "MC07",
                "name": "mc",
                "sn": "00200A261900479",
                "sw_ver": "00.00.12.63/00.00.12.63"
            },
            {
                "hw_ver": "",
                "name": "xm",
                "sn": "",
                "sw_ver": "00.00.00.00"
            },
            {
                "hw_ver": "AMS08",
                "name": "ams/0",
                "sn": "00600A282505298",
                "sw_ver": "00.00.05.75"
            },
            {
                "hw_ver": "AMS08",
                "name": "ams/1",
                "sn": "00600A290900120",
                "sw_ver": "00.00.05.75"
            },
            {
                "hw_ver": "AHB01",
                "name": "ahb",
                "sn": "00K00A290100335",
                "sw_ver": "00.00.00.42"
            }
        ],
        "sequence_id": "20010"
    }
}

Je suppose une info pour le liveview de la caméra (depuis Bambu Studio | Handy)

device/00M00A261900054/report {
    "liveview": {
        "authkey": "XXXXXX",
        "command": "prepare",
        "passwd": "XXXXX",
        "result": "succeed",
        "sequence_id": 0,
        "ttcode": "94ZBLJ5JTR865S3F111A"
    }
}

Un rapport d'avancement pour l'AMS ...

device/00M00A261900054/report {
    "mc_print": {
        "command": "push_info",
        "param": "[AMS][TASK]ams1 en=1,mode=0,sta=0",
        "sequence_id": "2421"
    }
}

(c'est un premier jet, il va encore que j'y travaille - l'idée est notamment de pouvoir à distance l'avancée des impressions autrement (par ex., sous linux en ligne de commande) qu'en prenant sans arrêt son téléphone + de voir ce qu'on peut récupérer comme infos et éventuellement qu'en faire (stockage pour graphs sur la durée, alertes sur seuils genre pour l'humidité, ...). La dernière commande ci-avant fait justement çà (avec "jq") : extraire du JSON en continu le %age d'impression et l'afficher en console (à titre d'exemple).

Modifié (le) par SR-G
  • J'aime 2
Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...
  • 4 months later...

Bonjour,

Pour ma part je n'ai qu'un seul besoin. Eteindre l'imprimante lorsqu'elle imprime de nuit.

Avec Jeedom c'est tout à fait faisable sans plugin dédié. il suffit d'installer le plugin jmqtt, de créer un brocker, puis un équipement.

J'ai une P1S qui de toute façon n'envoi pas grand chose. Que se soit en mode cloud ou en mode réseau uniquement je ne reçois que çà.

Citation

{"print":{"nozzle_temper":78.21875,"bed_temper":59.875,"command":"push_status","msg":1,"sequence_id":"10031"}}

Mon imprimante étant sur un prise connectée je peux donc la détecter et vérifier que jmqtt à réussi à se connecter à la P1S à l'aide d'un scénario.

Je me base en ensuite sur les températures pour savoir si elle va imprimer ou non.

j'arrête ou non la P1S en fin d'impression en fonction d'un choix fait à l'aide du plugin Telegram. (Le choix par défaut si pas de réponse est 'Pas de prise en charge de l'extinction'.

Pour la X1C beaucoup plus bavarde, je vois pas pourquoi d'autres actions ne seraient pas possible.

il y à même quelqu'un qui semble passer quelques commandes à une P1P.

https://forum.bambulab.com/t/added-p1p-a-touch-screen/19017. A voir dans le temps.

 

Modifié (le) par D12230
Lien vers le commentaire
Partager sur d’autres sites

Le broker est intégré dans l'imprimante, il suffit de s'y connecter (depuis un client MQTT quelconque).

Dans mon cas j'ai une prise commandée "SHELLY" compatible, et j'éteins à la voix ("Alexa, éteins X1").

Car en effet, il faut faire attention à ne PAS éteindre l'imprimante tout de suite = il ne faut pas l'éteindre quand les ventilateurs tournent encore, pour éviter un choc thermique (qui à la longue pourrait être dommageable).

Plus, bien évidemment, souvent j'enchaîne les impressions et je ne voulais donc pas automatiser l'extinction après chaque impression.

Le broker est intégré dans l'imprimante, il suffit de s'y connecter (depuis un client MQTT quelconque).

Dans mon cas j'ai une prise commandée "SHELLY" compatible, et j'éteins à la voix ("Alexa, éteins X1").

Car en effet, il faut faire attention à ne PAS éteindre l'imprimante tout de suite = il ne faut pas l'éteindre quand les ventilateurs tournent encore, pour éviter un choc thermique (qui à la longue pourrait être dommageable).

Plus, bien évidemment, souvent j'enchaîne les impressions et je ne voulais donc pas automatiser l'extinction après chaque impression.

 

Sinon pour rappel, par rapport aux événements publiés par l'imprimante, moi j'ai mis çà en place pour avoir un fichier .CSV contenant la liste de tout ce que j'ai imprimé.

https://forum.bambulab.com/t/beta-tester-needed-bambu-lab-observer-command-line-binary/5599/

 

(compatible depuis peu avec le firmware 1.06.00.00 qui a changé pas mal de choses sur l'aspect messages MQTT)

Lien vers le commentaire
Partager sur d’autres sites

il y a 3 minutes, D12230 a dit :

tu fais "ajouter un brocker" puis.

Broker.thumb.png.406843a92c57d57d28d300ecfcacf3e0.png

Dans un premier temps, c'est bien exactement ça qui m'intéressait. A terme, je voudrai récupérer les valeurs de température etc.

Je ne suis pas chez moi mais j'ai crée le broker avec mon IP et tes paramètres et entrerait mon MDP bblp dès que je serai devant et te tiendrai au jus !

Lien vers le commentaire
Partager sur d’autres sites

Salut !! Alors j'ai beaucoup avancé !! J'ai sniffé énormément d'infos de ma X1C et peux à présent afficher quasiment toutes les informations sur Jeedom.

 

J'ai essayé de faire un mouvement de 10mm selon l'axe Y depuis BambuStudio, voici le retourJMQTT:

{
    "print": {
        "command": "gcode_line",
        "param": "M211 S \nM211 X1 Y1 Z1\nM1002 push_ref_mode\nG91 \nG1 Y-10,0 F3000\nM1002 pop_ref_mode\nM211 R\n",
        "reason": "SUCCESS",
        "result": "SUCCESS",
        "sequence_id": "20073",
        "user_id": "1692490449"
    }
}

 

Penses-tu qu'il soit possible d'envoyer un ordre de mouvement à l'imprimante via une commande action ??

Lien vers le commentaire
Partager sur d’autres sites

Bien sûr : tout ce qui est fait depuis l'appli Android ou depuis Bambu Studio n'est rien d'autre que d'autres commandes JSON envoyées par MQTT (dans le sens appli > imprimante).

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Désolé pour la réponse tardive mais je ne reçois aucune notification du forum. Je suis  bien abonné au sujet et l'adresse mail est bonne alors pourquoi ????

- Pour le flux de la caméra il me semble avoir lu quelque part que ce n'était pas possible.

Pour ce qui est d'envoyer une commande.

Il faut créer une commande action, saisir le topic (device/SN de l'imprimante/report) et saisir une valeur au format Json

Ci-dessous représente la réponse. Pas ce qui à été publié.

Citation
{
    "print": {
        "command": "gcode_line",
        "param": "M211 S \nM211 X1 Y1 Z1\nM1002 push_ref_mode\nG91 \nG1 Y-10,0 F3000\nM1002 pop_ref_mode\nM211 R\n",
        "reason": "SUCCESS",
        "result": "SUCCESS",
        "sequence_id": "20073",
        "user_id": "1692490449"
    }
}

moi j’essaierai ceci dans la valeur de l'action.

Citation
{
    "print": {
        "command": "gcode_line",
        "param": "M211 S \nM211 X1 Y1 Z1\nM1002 push_ref_mode\nG91 \nG1 Y-10,0 F3000\nM1002 pop_ref_mode\nM211 R\n"
    }
}

 

Si cela ne marche pas, ajoute le user_id.

 

Le 14/08/2023 at 00:15, Lecl0ne a dit :

Peux-tu m'aider à formater mon message d'envoi pour par exemple envoyer ce déplacement de 10mm en Y? Après je comprendrai le principe !

Bon j'ai trouvé.

 

Il faut donc ajouter une action sur l'équipement dans jmqtt puis saisir dans le topic  "device/SN de l'imprimante/request" (request et non pas report)

dans la valeur mettre la commande JSON.

Pour faire un home.

Citation

{"print":{"command":"gcode_line","param":"G28\n","sequence_id":"0","user_id":"0"}}

Pour mettre le ventilateur de la chambre à 50%.

Citation

{"print":{"command":"gcode_line","param":"M106 P3 S150 \n","sequence_id":"0","user_id":"0"}}

 

Le log du slicer est ton ami. 😀

Lien vers le commentaire
Partager sur d’autres sites

Salut, Sais-tu par hasard si je peux faire la demande en jmqtt d'une valeur ? 

Par exemple, au démarrage, la valeur de la température ne remonte pas toute seule:

[print][nozzle_temper]

Crois-tu qu'avec un

device/00M00A2C187349/request

puis en mettant quelque chose dans valeur, je peux lui demander de me renvoyer l'information ?

Pour donner une petite idée de ce qui est possible, voici la page BambuLab de mon design !! (j'y ai passé plusieurs dizaines d'heures)

 

Pageimpr.3DJeedom.thumb.png.e124ccf56eb5be1db0f7c57104cc7175.png

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

oui il faut envoyer çà dans request

{"pushing":{"command":"pushall","sequence_id":"0"}};

 

tu obtiendras ça dans report:

Citation

{"print":{"upload":{"status":"idle","progress":0,"message":""},"nozzle_temper":28.375,"nozzle_target_temper":0,"bed_temper":26.875,"bed_target_temper":0,"chamber_temper":5,"mc_print_stage":"1","heatbreak_fan_speed":"0","cooling_fan_speed":"0","big_fan1_speed":"0","big_fan2_speed":"0","mc_percent":0,"mc_remaining_time":0,"ams_status":0,"ams_rfid_status":0,"hw_switch_state":0,"spd_mag":100,"spd_lvl":2,"print_error":0,"lifecycle":"product","wifi_signal":"-41dBm","gcode_state":"IDLE","gcode_file_prepare_percent":"0","queue_number":0,"queue_total":0,"queue_est":0,"queue_sts":0,"project_id":"0","profile_id":"0","task_id":"0","subtask_id":"0","subtask_name":"","gcode_file":"","stg":[],"stg_cur":0,"print_type":"idle","home_flag":17800,"mc_print_line_number":"0","mc_print_sub_stage":0,"sdcard":true,"force_upgrade":false,"mess_production_state":"active","layer_num":0,"total_layer_num":0,"hms":[],"online":{"ahb":false,"rfid":false,"version":113608849},"ams":{"ams":[{"id":"0","humidity":"2","temp":"0.0","tray":[{"id":"0","remain":-1,"k":0.019999999552965164,"n":1.399999976158142,"tag_uid":"0000000000000000","tray_id_name":"","tray_info_idx":"GFG99","tray_type":"PETG","tray_sub_brands":"","tray_color":"FFFF00FE","tray_weight":"0","tray_diameter":"0.00","tray_temp":"0","tray_time":"0","bed_temp_type":"0","bed_temp":"0","nozzle_temp_max":"270","nozzle_temp_min":"220","xcam_info":"000000000000000000000000","tray_uuid":"00000000000000000000000000000000"},{"id":"1","remain":-1,"k":0.019999999552965164,"n":1.399999976158142,"tag_uid":"0000000000000000","tray_id_name":"","tray_info_idx":"GFL01","tray_type":"PLA","tray_sub_brands":"","tray_color":"804000FF","tray_weight":"0","tray_diameter":"0.00","tray_temp":"0","tray_time":"0","bed_temp_type":"0","bed_temp":"0","nozzle_temp_max":"240","nozzle_temp_min":"190","xcam_info":"000000000000000000000000","tray_uuid":"00000000000000000000000000000000"},{"id":"2","remain":0,"k":0.019999999552965164,"n":1.399999976158142,"tag_uid":"0000000000000000","tray_id_name":"","tray_info_idx":"","tray_type":"","tray_sub_brands":"","tray_color":"00000000","tray_weight":"0","tray_diameter":"0.00","tray_temp":"0","tray_time":"0","bed_temp_type":"0","bed_temp":"0","nozzle_temp_max":"0","nozzle_temp_min":"0","xcam_info":"000000000000000000000000","tray_uuid":"00000000000000000000000000000000"},{"id":"3","remain":-1,"k":0.019999999552965164,"n":1.399999976158142,"tag_uid":"0000000000000000","tray_id_name":"","tray_info_idx":"GFL99","tray_type":"PLA","tray_sub_brands":"","tray_color":"FFFFFFFF","tray_weight":"0","tray_diameter":"0.00","tray_temp":"0","tray_time":"0","bed_temp_type":"0","bed_temp":"0","nozzle_temp_max":"240","nozzle_temp_min":"190","xcam_info":"000000000000000000000000","tray_uuid":"00000000000000000000000000000000"}]}],"ams_exist_bits":"1","tray_exist_bits":"f","tray_is_bbl_bits":"b","tray_tar":"255","tray_now":"255","tray_pre":"255","tray_read_done_bits":"f","tray_reading_bits":"0","version":4,"insert_flag":true,"power_on_flag":false},"ipcam":{"ipcam_dev":"1","ipcam_record":"disable","timelapse":"disable","mode_bits":3},"vt_tray":{"id":"254","tag_uid":"0000000000000000","tray_id_name":"","tray_info_idx":"GFL96","tray_type":"PLA","tray_sub_brands":"","tray_color":"161616FF","tray_weight":"0","tray_diameter":"0.00","tray_temp":"0","tray_time":"0","bed_temp_type":"0","bed_temp":"0","nozzle_temp_max":"240","nozzle_temp_min":"190","xcam_info":"000000000000000000000000","tray_uuid":"00000000000000000000000000000000","remain":0,"k":0.019999999552965164,"n":1.399999976158142},"lights_report":[{"node":"chamber_light","mode":"off"}],"upgrade_state":{"sequence_id":0,"progress":"","status":"","consistency_request":false,"dis_state":0,"err_code":0,"force_upgrade":false,"message":"","module":"","new_version_state":2,"new_ver_list":[]},"command":"push_status","msg":0,"sequence_id":"9986"}}

 

 

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...
  • 3 months later...

J'ai récemment migré de Jeedom à Home Assistant et y'a une intégration de Bambu Lab plutôt poussée 👌

Sur le papier voici quelques exemples de ce qu'on peut faire :

image_2023-08-04_230844236.png

opera_dTtyqdC58Q.png

2023-12-14 10_34_14-greghesp_ha-bambulab_ A Home Assistant Integration for Bambu Lab Printers.jpg

 

Pour le moment je n'y ai pas passé trop de temps mais déjà la configuration de base avec ce dashboard est pas mal :

2023-12-14 10_27_50-Maison – Home Assistant.jpg

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Ah oui pas mal ! Est-ce que tu sais s'il est possible d'avoir sur la même interface les infos de plusieurs X1C en simultané (par exemple avoir les deux flux vidéos en même temps) ?

Lien vers le commentaire
Partager sur d’autres sites

Avec un print en cours 🙂 

2023-12-14 12_31_30-Maison – Home Assistant.jpg

 

il y a 39 minutes, Aezio a dit :

Est-ce que tu sais s'il est possible d'avoir sur la même interface les infos de plusieurs X1C en simultané (par exemple avoir les deux flux vidéos en même temps) ?

Je dirais que oui, tu peux visiblement intégrer autant d'imprimantes que tu veux avec leur couple IP / SN.

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Ce sont les screenshots du développeur, j'ai pas (encore?) ça sur mon dashboard.

J'aurais tendance à dire qu'il s'agit d'une illustration générique mais je n'ai pas retrouvé l'image.

Dans les capteurs y'a le fichier gcode, à voir si c'est juste le nom ou s'il a le contenu et donc la preview 🤔

2023-12-14 13_05_01-Paramètres – Home Assistant.jpg

Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...
Le 11/08/2023 at 15:42, SR-G a dit :

Le broker est intégré dans l'imprimante, il suffit de s'y connecter (depuis un client MQTT quelconque).

Dans mon cas j'ai une prise commandée "SHELLY" compatible, et j'éteins à la voix ("Alexa, éteins X1").

Car en effet, il faut faire attention à ne PAS éteindre l'imprimante tout de suite = il ne faut pas l'éteindre quand les ventilateurs tournent encore, pour éviter un choc thermique (qui à la longue pourrait être dommageable).

Plus, bien évidemment, souvent j'enchaîne les impressions et je ne voulais donc pas automatiser l'extinction après chaque impression.

Le broker est intégré dans l'imprimante, il suffit de s'y connecter (depuis un client MQTT quelconque).

Dans mon cas j'ai une prise commandée "SHELLY" compatible, et j'éteins à la voix ("Alexa, éteins X1").

Car en effet, il faut faire attention à ne PAS éteindre l'imprimante tout de suite = il ne faut pas l'éteindre quand les ventilateurs tournent encore, pour éviter un choc thermique (qui à la longue pourrait être dommageable).

Plus, bien évidemment, souvent j'enchaîne les impressions et je ne voulais donc pas automatiser l'extinction après chaque impression.

 

Sinon pour rappel, par rapport aux événements publiés par l'imprimante, moi j'ai mis çà en place pour avoir un fichier .CSV contenant la liste de tout ce que j'ai imprimé.

https://forum.bambulab.com/t/beta-tester-needed-bambu-lab-observer-command-line-binary/5599/

 

(compatible depuis peu avec le firmware 1.06.00.00 qui a changé pas mal de choses sur l'aspect messages MQTT)

Bonjour SR-G,

Je n'arrive pas, avec un client Mqtt (j'ai essayé jMqtt de Jeedom et Mqttx), à me connecter au broyer de mon imprimante. Je renseigne l'IP, le port par défaut, l'ID mais le client Mqtt me renvoi "impossible de se connecter au broyer".

Il y a qqch à activer dans l'imprimante ?

 

Merci

Lien vers le commentaire
Partager sur d’autres sites

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...