Sim é o que eu pensava, via serial consigo flashar com tasmotizer , o problema depois é que não consigo que as alterações que faço ao module confif fiquem gravadas , dá ideia que não “fixa” a config , talvez seja falta de espaço … mas o nodeMCU teria 4MB certo?
Diria que fica bastante… Mas não devia ser impeditivo… Eu compilo sempre por gitpod e desactivo features que nao me interessam, por isso mesmo…
Isto é tudo muito rebuscado vamos lá expor a experiencia (não muito positiva) que pode servir a outros.:
- 1º voltei a flashar firm personalizado com opções
Resultado, não conseguia alterar as config do modulo que insiste em ficar em sonoff basic (nem recorrendo config template como fiz na 2ª tentativa com firm c/opções mais reduzidas ). Até associar um simples Ledlink ao gipo 2 não dá.
- 2º fiz uma dieta e flashei firm personalizado com opções mais leves:
Resultados:- não conseguia alterar as config do modulo que insiste em ficar em sonoff basic,
- depois atraves do config template e de alterar o name ( e só depois de alterar ) é que lá consegui que ficasse em generic (18)
- a seguir voltei a tentar alterar o template e já não dá, fica sempre como anteriormente generic (18)
Isso acontece quando atribuis mal as configurações do modulo ou usas um template errado. É uma espécie de modo de segurança para garantir que não tens de flashar de novo para corrigir o erro.
Não entendo bem isso, não fiz nada de mais na config do módulo que já não tenha feito no wemos.
Se calhar é por ser um nodemcu, embora qd tem o firm normal, funciona mais ou menos com o wemos, altero os gpios na boa
Provavelmente tens os gpio9 e 10 configurados para alguma coisa e não pode ser…
Sim sei que 9 é 10 eventualmente só dá nos 8255.
Depois de flashado 1o. Firm mais gordo ficou como sonoff BASIC, e nao conseguia alterar a config, não aceitava nada., muito estranho.
No 2o. Flash com firm mais reduzido, depois de várias tentativas lá consegui pôr template em generic 18, com gpio todos em user.
Amanhã vou fazer mais umas experiências a ver se identifico as circunstâncias que bloqueiam e as que permitem alteração da configuração
Cá estou novamente sem conseguir identificar o problema, continuo desconfiado que é da gordura do firmware e/ou do nodeMCU “falsificado” que não tem 4MB, provavelmete necessito explicação, pk se calhar a memoria extra nem serve para o firmware, será isso?
Com estas opções não consigo configurar o modulo de maneira nenhuma. Nem via WebUI nem via serial com tasmotizer a enviar Module generic nem usando template do tipo {“NAME”:“personalizado”,“GPIO”:[xxx,xxx,… ],“FLAG”:0,“BASE”:18}
Com o firmware mais magro
Já consigo configurar o modulo.
Vou fazer mais uns testes com combinações de opções a ver o que dá
Depois a duvida é que opções utilizar, IO expander para o efeito é obrigatorio, Web UI pode dar jeito… Rules e Timers sei para o que serve, tb podem dar jeito , agora para que serve opção Home Assistant em concreto , alguem sabe?
@Maddoctor que opções usas ?
Com ESPHome, já há alguns resultados animadores, para testar já tenho 1 output e 1 input a bulir (editado no 1º post).
Com o Tasmota, continuo aos papeis, já consigo fazer i2cscan e ver o device no address 23, não sei passar os estados do IO para o WebUI e ainda não os consigo ver a alterar na consola.
Na personalização do firmware no passo 4 , coloquei #define USE_PCF8674_ADDR 0x23
, mas deve faltar alguma coias mais de certeza.
Na WebUI não vês nada que venha de fora do equipamento, os sinais são passados para o HA com rules e conseguem ser vistos na consola.
@j_assuncao
ESPHome vejo qualquer coisa do Expander , webUI um pouco austera e ás vezes não actualiza os valores sem F5 refresh
Tasmota - Aqui https://github.com/arendst/Tasmota/issues/6765 dá a entender que se pode ver algo, com a interface mais agradavel do tasmota
Tambem me deveria aparecer este menu para config do PCF8475
O MadDoc, tem experiencia nos expanders, deixa ver o que ele diz
Sim, deveria aparecer esse menu e os io configurados aparecem como relés no tasmota, como se fossem relés de gpios nativos…
Depreendo que também tenhas activado o próprio pcf e não só a morada dele…
Referes-te activar PCF na compilação? é #define USE_PCF8574
certo?
No PCF8574 não foi preciso definir ADDRESS , parece que para os MCP23xxx é necessário :
#define USE_MCP230xx // [I2cDriver22] Enable MCP23008/MCP23017 - Must define I2C Address in #define USE_MCP230xx_ADDR below - range 0x20 - 0x27 (+4k7 code)
#define USE_MCP230xx_ADDR 0x20 // Enable MCP23008/MCP23017 I2C Address to use (Must be within range 0x20 through 0x26 - set according to your wired setup)
#define USE_MCP230xx_OUTPUT // Enable MCP23008/MCP23017 OUTPUT support through sensor29 commands (+1k5 code)
#define USE_MCP230xx_DISPLAYOUTPUT // Enable MCP23008/MCP23017 to display state of OUTPUT pins on Web UI (+0k2 code)
.
Entretanto lá dei mais uns passos …
Na compilação no passo 4 tem de se introduzir
#define USE_PCF8574 // [I2cDriver2] Enable PCF8574 I/O Expander (I2C addresses 0x20 - 0x26 and 0x39 - 0x3F) (+1k9 code)
Depois de flashado o firm, na consola activa-se o driver
i2cdriver2 1
E lá aparece o menu
.

Depois podemos configurar os 8 IO como input ou output
.
E já aparecem mais 8 reles para alem dos 4 que configurei no NodeMCU
.
Agora quase lhe posso chamar sonoff 12CH, se acrescentar mais uns PCF8575 ( ainda não chegaram os MCP para testar ) que posso tirar dos LCD que tenho no monte , facilmente se deve conseguir expandir para mais uns quantos IO e passa sonoff 32CH, o equivalente a uma carta de automato por menos de 10€
Sabes qual o limite de nós/enderesos no i2c?
EDIT: Actualizado no 1º post
Em princípio serão possíveis 32 relés, mas, pelo menos até há pouco tempo, seria necessário fazer uma alteração no código do tasmota para isso… Neste momento não tenho a certeza… O pcf apenas pode ser usado como output no tasmota porque o driver nunca foi acabado…
Já o MCP pode ser usado como input e output, mas, até há pouco tempo, os outputs não apareciam como relés nem os input como switch, ou seja, para os activares directamente precisavas de rules, mas era possível. Entretanto, foi feita uma mudança ao driver e já devem aparecer como relés,mas não testei…
@Maddoctor
Confirma-se que o PCF no TASMOTA apesar de se poder configurar os IO para output ou input , só funciona como output, pelos menos o state dos input´s não aparecem publicados na consola. Se calhar tb precisa de algumas rules como dizes necessárias para o MCP.
Se usarmos ESPHome já dá para usar o PCF como input ou output, a interface do ESPHome é que … não ajuda
não, os input não funcionam mesmo no pcf em tasmota… com ou sem rules…
Resumindo, para expander de IO em tasmota é melhor os MCP23017
Não é bem… Depende dos usos… O pcf está mais “integrado”, com a página de configuração e tal…mas o MCP tem mais IOs e permite inputs…
@PDM Sorry for writing in English, but I hope you’ll understand my question: Very nice post! I’m using an ESP-01 board with SCL=0 and SDA=2 (I need RxD and TxD as well so this is the only chance…) and I followed all the steps you mentioned. “i2cscan” returns the correct connections (one PCF8574 in my case), but when I enter i2cdriver2 1
, the command is obviously accepted, but the ESP resets without enabling the “Configure PCF8574” menu. Any idea? Can you please share your .bin file for me to test?
Answering in Portuguese is welcome for sure as well.