# Print Log Project — Context for Claude Code ## What we're building A Home Assistant automation system that logs 3D printer activity to a Notion database in real time — creating a row when a print starts and updating it when it finishes, fails, or is cancelled. ## Notion Database - Name: 🖨️ Print Log - URL: - Database ID: c7bab550efd740909f656f101697832d - Location: CubeCraft Creations page ## Printers | Friendly Name | Entity Prefix | Type | Notes | |-----------------------|----------------------------------|-------------|--------------------------------| | PrintsCharming | p1s_01p09c470102673 | Bambu P1S | Full data | | Ds-Turd-Flinger | a1_03919d540806387 | Bambu A1 | Full data | | Polly-Pocket | a1mini_0309ca580403653 | Bambu A1Mini| Full data | | Constipation-Orion | constipation_orion | Bambu | Full data | | Jordyns-Layer-Slayer | jordyns_layer_slayer | Bambu | Full data | | Centauri Carbon | centauri_carbon | Elegoo FDM | file_name + print_status only | | Saturn | saturn | Elegoo Resin| file_name + print_status only | Bambu sensors follow pattern: sensor.{prefix}_print_status, _gcode_filename, _print_weight, _print_length, _active_tray (attrs: type, color) Elegoo sensors: sensor.{prefix}_file_name, sensor.{prefix}_print_status (status values for Elegoo need verification — may differ from Bambu) ## HA Config Files Produced Three files were generated (in the HA config repo): - print_log_configuration.yaml — input_text helpers + rest_commands - print_log_automations.yaml — 14 automations (start+finish × 7 printers) - print_log_secrets_addition.yaml — Notion bearer token line for secrets.yaml ## Correct Template for Storing Notion Page ID `rest_command` responses are already parsed as dicts — do NOT use `| from_json`: CORRECT: value: "{{ notion_response.content.id | default('') }}" WRONG: value: "{{ (notion_response.content | from_json).id | default('') }}" The finish automation condition checks `| length == 36` on the stored ID. ## Notion rest_command structure - notion_create_print: POST to /v1/pages, returns page ID in response body - notion_update_print: PATCH to /v1/pages/{page_id} - Auth header uses !secret notion_token_bearer (full "Bearer ntn_..." string) - Token stored in secrets.yaml as notion_token_bearer ## HA Setup - HAOS on x86 server - Gitea repo at code.cubecraftcreations.com (username: overseer) - IoT VLAN: 192.168.69.x, Main: 192.168.1.x - ~150 devices, UniFi networking