#What am I doing wrong

1 messages · Page 1 of 1 (latest)

thin shale
#

JSON dump from the printer. Trying to grab print_stats "info": {"total_layer": 26, "current_layer": 0}}

{"result": {"eventtime": 1495044.184335206, "status": {"heater_bed": {"temperature": 40.3, "target": 0.0, "power": 0.0}, "extruder": {"temperature": 24.87, "target": 0.0, "power": 0.0, "can_extrude": false, "pressure_advance": 0.0, "smooth_time": 0.04}, "print_stats": {"filename": "SpringNutxyz002.gcode", "total_duration": 83.25961575005203, "print_duration": 0.0, "filament_used": 0.0, "state": "cancelled", "message": "", "info": {"total_layer": 26, "current_layer": 0}}, "toolhead": {"homed_axes": "", "axis_minimum": [0.0, 0.0, -1.5, 0.0], "axis_maximum": [117.5, 118.0, 120.0, 0.0], "print_time": 1776.681568, "stalls": 0, "estimated_print_time": 2041.05257603125, "extruder": "extruder", "position": [0.0, 0.0, 0.0, 0.0], "max_velocity": 200.0, "max_accel": 2000.0, "max_accel_to_decel": 1000.0, "square_corner_velocity": 6.0}, "display_status": {"progress": 0.0, "message": null}, "virtual_sdcard": {"file_path": null, "progress": 0.0, "is_active": false, "file_position": 0.0, "file_size": 0.0}, "gcode_move": {"speed_factor": 1.0, "speed": 1500.0, "extrude_factor": 1.0, "absolute_coordinates": true, "absolute_extrude": true, "homing_origin": [0.0, 0.0, 0.0, 0.0], "position": [0.0, 0.0, 0.0, 0.0], "gcode_position": [0.0, 0.0, 0.0, 0.0]}, "filament_motion_sensor btt_smart_filament_sensor": {"filament_detected": true, "enabled": true}, "temperature_sensor Chamber_Temp": {"temperature": 25.67, "measured_min_temp": 25.46, "measured_max_temp": 27.06}}}}
#
sensor:
  - platform: rest
    name: printer_3d_sensor
    unique_id: "IP3a0c25fa-297d-4c19-b03c-ddf04840682b"
    resource: "http://IP:7125/printer/objects/query?heater_bed&extruder&print_stats&toolhead&display_status&virtual_sdcard&gcode_move&filament_motion_sensor%20btt_smart_>    json_attributes_path: "$.result.status"
    json_attributes:
      - heater_bed
      - extruder
      - print_stats
      - toolhead
      - display_status
      - virtual_sdcard
      - gcode_move
      - "filament_motion_sensor btt_smart_filament_sensor"
      - "temperature_sensor Chamber_Temp"
    value_template: "OK"
    force_update: true
    scan_interval: 1
#
template:
  - sensor:
    - name: 3d_printer_current_layer_actual
      unique_id: "IP167e5dec-719c-42d3-9560-4f177573f742"
      state: '{{ states.sensor.printer_3d_sensor.attributes["print_stats"]["info"]["current_layer"] | float(0) }}% / {{ states.sensor.printer_3d_sensor.attributes["print_stats"]["info"]["total_layer"] | float(0) }}%'
      availability: >
        {% set items = ['sensor.printer_3d_sensor'] %}
        {{ expand(items)|rejectattr('state','in',['unknown','unavailable'])
          |list|count == items|count }}
      icon: mdi:counter
      attributes:
        friendly_name: "Actual Layer"
#

I don't know how to grab those json values should show up like 0 / 25

#
Logger: homeassistant.components.rest.sensor
Source: components/rest/sensor.py:170
Integration: RESTful (documentation, issues)
First occurred: 11:31:12 PM (4 occurrences)
Last logged: 11:31:22 PM

JSON result was not a dictionary or list with 0th element a dictionary