diff --git a/.github/workflows/copy_change.yml b/.github/workflows/copy_change.yml index 0449e8b34..4840853cb 100644 --- a/.github/workflows/copy_change.yml +++ b/.github/workflows/copy_change.yml @@ -15,7 +15,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Push I2CDevices.md to https://github.com/Tasmota/docs - uses: dmnemec/copy_file_to_another_repo_action@main + uses: Jason2866/copy_file_to_another_repo_action@main env: API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }} with: @@ -27,7 +27,7 @@ jobs: user_name: 'github-actions' commit_message: 'I2CDevices.md changed' - name: Push Builds.md to https://github.com/Tasmota/docs - uses: dmnemec/copy_file_to_another_repo_action@main + uses: Jason2866/copy_file_to_another_repo_action@main env: API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }} with: diff --git a/lib/libesp32/Berry/src/be_byteslib.c b/lib/libesp32/Berry/src/be_byteslib.c index ecc665c31..78c20268e 100644 --- a/lib/libesp32/Berry/src/be_byteslib.c +++ b/lib/libesp32/Berry/src/be_byteslib.c @@ -579,11 +579,14 @@ static int m_init(bvm *vm) if (hex_in) { size_arg = strlen(hex_in) / 2; /* allocate headroom */ } - } - - /* check if fixed size that we have the right size */ - if (attr.fixed && size_arg > attr.size) { - be_raise(vm, BYTES_RESIZE_ERROR, BYTES_RESIZE_MESSAGE); + /* check if fixed size that we have the right size */ + if (size_arg > attr.size) { + if (attr.fixed) { + be_raise(vm, BYTES_RESIZE_ERROR, BYTES_RESIZE_MESSAGE); + } else { + attr.size = size_arg; + } + } } /* allocate */ diff --git a/lib/libesp32/Berry/tests/bytes.be b/lib/libesp32/Berry/tests/bytes.be index edb6c012e..9fe75ba4d 100644 --- a/lib/libesp32/Berry/tests/bytes.be +++ b/lib/libesp32/Berry/tests/bytes.be @@ -7,6 +7,8 @@ b=bytes(0) assert(str(b) == "bytes('')") b=bytes(1) assert(str(b) == "bytes('')") +b=bytes(-1) +assert(str(b) == "bytes('')") assert(b.size() == 0) b=bytes("a") @@ -164,3 +166,5 @@ b=bytes() b.fromstring("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.") assert(str(b) =="bytes('4C6F72656D20697073756D20646F6C6F722073697420616D65742C20636F6E73...')") assert(b.tostring(0) =="bytes('4C6F72656D20697073756D20646F6C6F722073697420616D65742C20636F6E73656374657475722061646970697363696E6720656C69742C2073656420646F20656975736D6F642074656D706F7220696E6369646964756E74207574206C61626F726520657420646F6C6F7265206D61676E6120616C697175612E')") + +assert(size(bytes('4C6F72656D20697073756D20646F6C6F722073697420616D65742C20636F6E73656374657475722061646970697363696E6720656C69742C2073656420646F20656975736D6F642074656D706F7220696E6369646964756E74207574206C61626F726520657420646F6C6F7265206D61676E6120616C697175612E')) == 123) diff --git a/tasmota/language/es_ES.h b/tasmota/language/es_ES.h index aa3819d4f..a12da16ec 100644 --- a/tasmota/language/es_ES.h +++ b/tasmota/language/es_ES.h @@ -1064,17 +1064,17 @@ #define D_NEOPOOL_RELAY_CD "Bomba de Salmuera" #define D_NEOPOOL_TIME "Tiempo" #define D_NEOPOOL_FILT_MODE "Filtrado" -#define D_NEOPOOL_CELL_RUNTIME "Cell runtime" +#define D_NEOPOOL_CELL_RUNTIME "Tiempo de actividad" #define D_NEOPOOL_POLARIZATION "Pol" // Sensor status #define D_NEOPOOL_PR_OFF "PrOff" #define D_NEOPOOL_SETPOINT_OK "Ok" #define D_NEOPOOL_COVER "Cover" #define D_NEOPOOL_SHOCK "Golpe" -#define D_NEOPOOL_STATUS_ON "ON" -#define D_NEOPOOL_STATUS_OFF "OFF" -#define D_NEOPOOL_STATUS_WAIT "WAIT" -#define D_NEOPOOL_STATUS_TANK "TANK" -#define D_NEOPOOL_STATUS_FLOW "Flow" +#define D_NEOPOOL_STATUS_ON "Encendido" +#define D_NEOPOOL_STATUS_OFF "Apagado" +#define D_NEOPOOL_STATUS_WAIT "Espera" +#define D_NEOPOOL_STATUS_TANK "Tanque" +#define D_NEOPOOL_STATUS_FLOW "Flujo" #define D_NEOPOOL_LOW "Bajo" #define D_NEOPOOL_FLOW1 "FL1" #define D_NEOPOOL_FLOW2 "FL2" diff --git a/tasmota/language/pt_BR.h b/tasmota/language/pt_BR.h index f2424d24f..c1b937a4f 100644 --- a/tasmota/language/pt_BR.h +++ b/tasmota/language/pt_BR.h @@ -1027,13 +1027,13 @@ // xsns_83_neopool.ino #define D_NEOPOOL_MACH_NONE "NeoPool" // Machine names -#define D_NEOPOOL_MACH_HIDROLIFE "Hidrolife (yellow)" -#define D_NEOPOOL_MACH_AQUASCENIC "Aquascenic (blue)" -#define D_NEOPOOL_MACH_OXILIFE "Oxilife (green)" -#define D_NEOPOOL_MACH_BIONET "Bionet (light blue)" -#define D_NEOPOOL_MACH_HIDRONISER "Hidroniser (red)" -#define D_NEOPOOL_MACH_UVSCENIC "UVScenic (lilac)" -#define D_NEOPOOL_MACH_STATION "Station (orange)" +#define D_NEOPOOL_MACH_HIDROLIFE "Hidrolife (amarelo)" +#define D_NEOPOOL_MACH_AQUASCENIC "Aquascenic (azul)" +#define D_NEOPOOL_MACH_OXILIFE "Oxilife (verde)" +#define D_NEOPOOL_MACH_BIONET "Bionet (azul claro)" +#define D_NEOPOOL_MACH_HIDRONISER "Hidroniser (vermelho)" +#define D_NEOPOOL_MACH_UVSCENIC "UVScenic (lilás)" +#define D_NEOPOOL_MACH_STATION "Station (laranja)" #define D_NEOPOOL_MACH_BRILIX "Brilix" #define D_NEOPOOL_MACH_GENERIC "Genérico" #define D_NEOPOOL_MACH_BAYROL "Bayrol" @@ -1057,19 +1057,19 @@ #define D_NEOPOOL_RELAY "Relé" #define D_NEOPOOL_RELAY_FILTRATION "Filtragem" #define D_NEOPOOL_RELAY_LIGHT "Luz" -#define D_NEOPOOL_RELAY_PH_ACID "bomba de ácidos" -#define D_NEOPOOL_RELAY_PH_BASE "bomba de bases" +#define D_NEOPOOL_RELAY_PH_ACID "Bomba de ácidos" +#define D_NEOPOOL_RELAY_PH_BASE "Bomba de bases" #define D_NEOPOOL_RELAY_RX "Nível de Redox" #define D_NEOPOOL_RELAY_CL "Bomba de cloro" #define D_NEOPOOL_RELAY_CD "Bomba de salmora" -#define D_NEOPOOL_TIME "Time" +#define D_NEOPOOL_TIME "Tempo" #define D_NEOPOOL_FILT_MODE "Filtragem" -#define D_NEOPOOL_CELL_RUNTIME "Cell runtime" +#define D_NEOPOOL_CELL_RUNTIME "Tempo de atividade" #define D_NEOPOOL_POLARIZATION "Pol" // Sensor status #define D_NEOPOOL_PR_OFF "PrOff" #define D_NEOPOOL_SETPOINT_OK "Ok" -#define D_NEOPOOL_COVER "Cover" -#define D_NEOPOOL_SHOCK "Boost" +#define D_NEOPOOL_COVER "Cobrir" +#define D_NEOPOOL_SHOCK "Impulsionar" #define D_NEOPOOL_STATUS_ON "LIGADO" #define D_NEOPOOL_STATUS_OFF "DESLIGADO" #define D_NEOPOOL_STATUS_WAIT "AGUARDE" diff --git a/tasmota/language/pt_PT.h b/tasmota/language/pt_PT.h index 5cfb3739e..3bd0d530c 100644 --- a/tasmota/language/pt_PT.h +++ b/tasmota/language/pt_PT.h @@ -1027,15 +1027,15 @@ // xsns_83_neopool.ino #define D_NEOPOOL_MACH_NONE "NeoPool" // Machine names -#define D_NEOPOOL_MACH_HIDROLIFE "Hidrolife (yellow)" -#define D_NEOPOOL_MACH_AQUASCENIC "Aquascenic (blue)" -#define D_NEOPOOL_MACH_OXILIFE "Oxilife (green)" -#define D_NEOPOOL_MACH_BIONET "Bionet (light blue)" -#define D_NEOPOOL_MACH_HIDRONISER "Hidroniser (red)" -#define D_NEOPOOL_MACH_UVSCENIC "UVScenic (lilac)" -#define D_NEOPOOL_MACH_STATION "Station (orange)" +#define D_NEOPOOL_MACH_HIDROLIFE "Hidrolife (amarelo)" +#define D_NEOPOOL_MACH_AQUASCENIC "Aquascenic (azul)" +#define D_NEOPOOL_MACH_OXILIFE "Oxilife (verde)" +#define D_NEOPOOL_MACH_BIONET "Bionet (azul claro)" +#define D_NEOPOOL_MACH_HIDRONISER "Hidroniser (vermelho)" +#define D_NEOPOOL_MACH_UVSCENIC "UVScenic (lilás)" +#define D_NEOPOOL_MACH_STATION "Station (laranja)" #define D_NEOPOOL_MACH_BRILIX "Brilix" -#define D_NEOPOOL_MACH_GENERIC "Generic" +#define D_NEOPOOL_MACH_GENERIC "Genérico" #define D_NEOPOOL_MACH_BAYROL "Bayrol" #define D_NEOPOOL_MACH_HAY "Hay" #define D_NEOPOOL_FILTRATION_MANUAL "Manual" // Filtration modes @@ -1045,41 +1045,41 @@ #define D_NEOPOOL_FILTRATION_INTELLIGENT "Intelligent" #define D_NEOPOOL_FILTRATION_BACKWASH "Backwash" #define D_NEOPOOL_FILTRATION_NONE "" // Filtration speed level -#define D_NEOPOOL_FILTRATION_SLOW "slow" -#define D_NEOPOOL_FILTRATION_MEDIUM "medium" -#define D_NEOPOOL_FILTRATION_FAST "fast" -#define D_NEOPOOL_TYPE "Type" // Sensor & relais names +#define D_NEOPOOL_FILTRATION_SLOW "lento" +#define D_NEOPOOL_FILTRATION_MEDIUM "médio" +#define D_NEOPOOL_FILTRATION_FAST "rápido" +#define D_NEOPOOL_TYPE "Tipo" // Sensor & relais names #define D_NEOPOOL_REDOX "Redox" -#define D_NEOPOOL_CHLORINE "Chlorine" -#define D_NEOPOOL_CONDUCTIVITY "Conductivity" -#define D_NEOPOOL_IONIZATION "Ionization" -#define D_NEOPOOL_HYDROLYSIS "Hydrolysis" -#define D_NEOPOOL_RELAY "Relay" -#define D_NEOPOOL_RELAY_FILTRATION "Filtration" -#define D_NEOPOOL_RELAY_LIGHT "Light" -#define D_NEOPOOL_RELAY_PH_ACID "Acid pump" -#define D_NEOPOOL_RELAY_PH_BASE "Base pump" -#define D_NEOPOOL_RELAY_RX "Redox level" -#define D_NEOPOOL_RELAY_CL "Chlorine pump" -#define D_NEOPOOL_RELAY_CD "Brine pump" -#define D_NEOPOOL_TIME "Time" -#define D_NEOPOOL_FILT_MODE "Filtration" -#define D_NEOPOOL_CELL_RUNTIME "Cell runtime" +#define D_NEOPOOL_CHLORINE "Cloro" +#define D_NEOPOOL_CONDUCTIVITY "Condutividade" +#define D_NEOPOOL_IONIZATION "Ionização" +#define D_NEOPOOL_HYDROLYSIS "Hidrólise" +#define D_NEOPOOL_RELAY "Relé" +#define D_NEOPOOL_RELAY_FILTRATION "Filtragem" +#define D_NEOPOOL_RELAY_LIGHT "Luz" +#define D_NEOPOOL_RELAY_PH_ACID "Bomba de ácidos" +#define D_NEOPOOL_RELAY_PH_BASE "Bomba de bases" +#define D_NEOPOOL_RELAY_RX "Nível de Redox" +#define D_NEOPOOL_RELAY_CL "Bomba de cloro" +#define D_NEOPOOL_RELAY_CD "Bomba de salmora" +#define D_NEOPOOL_TIME "Tempo" +#define D_NEOPOOL_FILT_MODE "Filtragem" +#define D_NEOPOOL_CELL_RUNTIME "Tempo de atividade" #define D_NEOPOOL_POLARIZATION "Pol" // Sensor status #define D_NEOPOOL_PR_OFF "PrOff" #define D_NEOPOOL_SETPOINT_OK "Ok" -#define D_NEOPOOL_COVER "Cover" -#define D_NEOPOOL_SHOCK "Boost" -#define D_NEOPOOL_STATUS_ON "ON" -#define D_NEOPOOL_STATUS_OFF "OFF" -#define D_NEOPOOL_STATUS_WAIT "WAIT" -#define D_NEOPOOL_STATUS_TANK "TANK" -#define D_NEOPOOL_STATUS_FLOW "Flow" -#define D_NEOPOOL_LOW "Low" +#define D_NEOPOOL_COVER "Cobrir" +#define D_NEOPOOL_SHOCK "Impulsionar" +#define D_NEOPOOL_STATUS_ON "LIGADO" +#define D_NEOPOOL_STATUS_OFF "DESLIGADO" +#define D_NEOPOOL_STATUS_WAIT "AGUARDE" +#define D_NEOPOOL_STATUS_TANK "TANQUE" +#define D_NEOPOOL_STATUS_FLOW "Fluxo" +#define D_NEOPOOL_LOW "baixo" #define D_NEOPOOL_FLOW1 "FL1" #define D_NEOPOOL_FLOW2 "FL2" -#define D_NEOPOOL_PH_HIGH "too high" // ph Alarms -#define D_NEOPOOL_PH_LOW "too low" -#define D_NEOPOOL_PUMP_TIME_EXCEEDED "pump time exceeded" +#define D_NEOPOOL_PH_HIGH "Muito alto" // ph Alarms +#define D_NEOPOOL_PH_LOW "Muito baixo" +#define D_NEOPOOL_PUMP_TIME_EXCEEDED "tempo da bomba excedido" #endif // _LANGUAGE_PT_PT_H_