mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-25 05:03:52 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| esphome:
 | |
|   on_boot:
 | |
|     then:
 | |
|       - canbus.send:
 | |
|           # Extended ID explicit
 | |
|           canbus_id: esp32_internal_can
 | |
|           use_extended_id: true
 | |
|           can_id: 0x100
 | |
|           data: [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]
 | |
|       - canbus.send:
 | |
|           # Standard ID by default
 | |
|           canbus_id: esp32_internal_can
 | |
|           can_id: 0x100
 | |
|           data: [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]
 | |
|       - canbus.send:
 | |
|           # Extended ID explicit
 | |
|           canbus_id: esp32_internal_can_2
 | |
|           use_extended_id: true
 | |
|           can_id: 0x100
 | |
|           data: [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]
 | |
|       - canbus.send:
 | |
|           # Standard ID by default
 | |
|           canbus_id: esp32_internal_can_2
 | |
|           can_id: 0x100
 | |
|           data: [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]
 | |
| 
 | |
| canbus:
 | |
|   - platform: esp32_can
 | |
|     id: esp32_internal_can
 | |
|     rx_pin: GPIO8
 | |
|     tx_pin: GPIO7
 | |
|     can_id: 4
 | |
|     bit_rate: 50kbps
 | |
|     on_frame:
 | |
|       - can_id: 500
 | |
|         then:
 | |
|           - lambda: |-
 | |
|               std::string b(x.begin(), x.end());
 | |
|               ESP_LOGD("canbus1", "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("canbus1", "exhaust_fan_duty");
 | |
|                   break;
 | |
|                 case 118:
 | |
|                   ESP_LOGD("canbus1", "supply_fan_duty");
 | |
|                   break;
 | |
|                 case 119:
 | |
|                   ESP_LOGD("canbus1", "supply_fan_flow");
 | |
|                   break;
 | |
|                 // to be continued...
 | |
|               }
 | |
|   - platform: esp32_can
 | |
|     id: esp32_internal_can_2
 | |
|     rx_pin: GPIO10
 | |
|     tx_pin: GPIO9
 | |
|     can_id: 4
 | |
|     bit_rate: 50kbps
 | |
|     on_frame:
 | |
|       - can_id: 500
 | |
|         then:
 | |
|           - lambda: |-
 | |
|               std::string b(x.begin(), x.end());
 | |
|               ESP_LOGD("canbus2", "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("canbus2", "exhaust_fan_duty");
 | |
|                   break;
 | |
|                 case 118:
 | |
|                   ESP_LOGD("canbus2", "supply_fan_duty");
 | |
|                   break;
 | |
|                 case 119:
 | |
|                   ESP_LOGD("canbus2", "supply_fan_flow");
 | |
|                   break;
 | |
|                 // to be continued...
 | |
|               }
 |