esphome:
  on_boot:
    then:
      - canbus.send:
          # Extended ID explicit
          use_extended_id: true
          can_id: 0x100
          data: [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]
      - canbus.send:
          # Standard ID by default
          can_id: 0x100
          data: [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]

canbus:
  - platform: esp32_can
    id: esp32_internal_can
    rx_pin: 13
    tx_pin: 14
    can_id: 4
    bit_rate: 50kbps
    on_frame:
      - can_id: 500
        then:
          - lambda: |-
              std::string b(x.begin(), x.end());
              ESP_LOGD("canid 500", "%s", b.c_str() );
      - can_id: 0b00000000000000000000001000000
        can_id_mask: 0b11111000000000011111111000000
        use_extended_id: true
        then:
          - lambda: |-
              auto pdo_id = can_id >> 14;
              switch (pdo_id)
              {
                case 117:
                  ESP_LOGD("canbus", "exhaust_fan_duty");
                  break;
                case 118:
                  ESP_LOGD("canbus", "supply_fan_duty");
                  break;
                case 119:
                  ESP_LOGD("canbus", "supply_fan_flow");
                  break;
                // to be continued...
              }