Set Tuya Datapoint value via select

Im so close I can taste it. Thanks to @jesserockz for jumping in and fixing the C to F problem the vendor of my stove created. Truly appreciated.

Im having trouble getting and updated value from a select dp.

I have successfully implemented a select for one of my datapoints.

number:
  - platform: "tuya"
    id: eco_select
    number_datapoint: 101
    min_value: 0
    max_value: 1
    step: 1

select:
  - platform: template
    name: "ECO Mode"
    optimistic: true
    options:
      - ECO1
      - ECO2
    set_action:
      then:
        - lambda: |-
            int value = 0;
            if( x == "ECO1" ) {
              value = 0;
            } else if( x == "ECO2") {
              value = 1;
            } 
            auto call = id(eco_select).make_call();
            call.set_value(value);
            call.perform();

# 1 - Power on (Heat)
#4 - Mode P1/P2/P3P4
#101 - ECO1/ECO2
#104 - Error Code
#106 Set Temp
#107 - Current Temp
#108 - Pipe Temp
#109 - Protect Temp
#-----------------
#Datapoint 1: switch (value: OFF)
#Datapoint 105: enum (value: 0)
#Datapoint 4: enum (value: 0)
#Datapoint 101: enum (value: 0).             <--- ENUM....
#Datapoint 106: int value (value: 68)
#Datapoint 107: int value (value: 64)
#Datapoint 108: int value (value: 68)
#Datapoint 109: int value (value: 72)
#Datapoint 104: bitmask (value: 0)
#GPIO Configuration: status: pin 5, reset: pin 0
#Product: '{"p":"8Dj5zVjGqPSXaUgf","v":"1.0.0","m":0}'
# Register the Tuya MCU connection
tuya:

My log output shows the change being sent and it IS actually changing the MCU and display on the stove, and the select is correct:

11:59:18][D][tuya:300]: Datapoint 101 update to 0
[11:59:18][D][number:012]: 'eco_select': Sending state 0.000000
[11:59:26][D][select:062]: 'ECO Mode' - Setting
[11:59:26][D][select:115]: 'ECO Mode' - Set selected option to: ECO2
[11:59:26][D][number:054]: 'eco_select' - Setting number value
[11:59:26][D][number:113]:   New number value: 1.000000
[11:59:26][D][tuya:547]: Setting datapoint 101 to 1
[11:59:26][D][number:012]: 'eco_select': Sending state 1.000000
[11:59:26][D][select:015]: 'ECO Mode': Sending state ECO2 (index 1)
[11:59:26][D][tuya:300]: Datapoint 101 update to 1
[11:59:26][D][number:012]: 'eco_select': Sending state 1.000000

But the value I see for the sensor I set up for that dp does not change to reflect the new value.
image

this should changed to 1 just like it does when I change it from the stove’s front panel.

I also see the optimistic variable

(Optional, boolean): Whether to operate in optimistic mode - when in this mode, any command sent to the Select will immediately update the reported state.

But I see this warning popup in the esphome editor:

is there a way to force updates of the datapoints so they send their current values?

I have to solve this same problem for the power setting as well. If I cant know the states of these items, I can run automations on them!

Any help appreciated.

It was an Enum issue after all.
Solved in this post: Tuya MCU datapoint reporting - #5 by bearpawmaxim

select:
  - platform: "tuya"
    tuya_id: "house"
    name: "ESPH House Power Select"
    enum_datapoint: 4
    options:
      0: P1
      1: P2
      2: P3
      3: P4
  - platform: "tuya"
    tuya_id: "house"
    name: "ESPH House ECO Select"
    enum_datapoint: 101
    options:
      0: ECO1
      1: ECO2