Dada a popularidade deste tópico e o facto de eu ter tido recentemente a dificuldade de encontrar uma soluçao económica para fazer monotorizaçao de consumos em múltiplos canais do circuito, trago-vos hoje aquela que foi a soluçao pela qual optei após muitas horas de pesquisa, bem como um pequeno guia de como fazer o setup da mesma para os interessados .
Chama-se RPICT e é basicamente um HAT que podem colocar no topo dum raspberry, que tanto pode ser o 2, 3 ou 4 .
Isto torna-a numa soluçao particularmente económica para quem já tem um RPI encostado. No meu caso tinha um RPI3B que tinha trocado recentemente por uma NUC, pelo que esta soluçao fez ainda mais sentido . Devo no entanto referir que mesmo que tivessem de comprar um raspberry antigo dificilmente conseguem encontrar uma soluçao identica para monotorizar vários canais por valores inferiores .
Link da página do vendedor das boards :
http://lechacalshop.com/gb/13-internetofthing
No meu caso optei pelo modelo RPICT7V1 Version 3, que me permite controlar 7 circuitos diferentes e mais um canal dedicado à voltagem real .
http://lechacalshop.com/gb/13-internetofthing
Aspectos a referir acerca do vendedor :
- Acondicionamento e embalagem perfeitos
- Encomenda entregue após 2 semanas (Penso que terá sido superior ao normal devido a ter apanhado a altura do ano novo, etc)
- Excelente suporte com resposta quase imediata a todos os emails de dúvidas que coloquei
Posto isto, passo a descrever a minha experiencia com o RPICT71 Version 3, desde o processo de instalaçao até à integraçao com o Home Assistant :
- Instalaçao da board no quadro eléctrico :
Aqui é importante ter uma tomada dentro do próprio quadro, pelo que recomendo que instalem uma ou que chamem um electricista caso nao se sintam preparados para o fazer . Vamos precisar de tomadas ou caso exista espaço para tal, de uma ficha tripla para ligar 2 transformadores, uma vez que um transformador é para o raspberry e outro é para a monotorizaçao da voltagem real .
A única dificuldade que senti aqui foi de colocar o sensor CT no cabo de fase de entrada no disjuntor, dado o pouco espaço disponível e a impossibilidade de mexer as maos no interior desse lado da caixa .
A instalaçao é de resto extremamente simples, basta seguir este guia para os passos iniciais :
http://lechacal.com/wiki/index.php?title=Howto_setup_Raspbian_for_serial_read
Eu optei por alterar a minha configuraçao / sketch, uma vez que por defeito os sketches disponíveis no website nao trazem o factor de potencia, potencia aparente e potencia estimada configurados .
Assim que para alterarem , visitem este link para fazer a vossa configuracao personalizada :
http://lechacal.com/RPICT/config/generator/v3.0/
Neste caso optei pelo sketch 3.0, pelo que toda a configuracao personalizada terá esse sketch como ponto de partida .
Eis o aspecto da minha configuracao final :
Após gerar o config, é importante alterar os valores do kcal para os correctos de acordo com a amperagem do vosso sensor CT ! No meu caso uso um CT de 30A, pelo que o valor de referencia é 26.67, de acordo com a tabela que podem encontrar aqui :
http://lechacal.com/wiki/index.php?title=Noise_level_test_RPICT_V2%263
Devem também ajustar o valor da voltagem na mesma linha, utilizando um multímetro ou outro medidor de consumos preciso para ajustar a voltagem real lida pelo transformador .
Aqui está o meu config :
[main]
format = 3
nodeid = 13
polling = 5000
vest = 230.0
xpFREQ = 50
Ncycle = 20
kcal = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 507.8 27.7 27.7 27.7 27.7 27.7 27.7 27.7
phasecal = 0
Nnode = 8
Nchan = 18
HWSCT = 7 6 5 4 3 2 1 7 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
HWMCPSCT = 10 10 10 10 10 10 10 10 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
HWVOL = 0 0 0 0 0 0 0 127 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
HWMCPVOL = 10 10 10 10 10 10 10 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255
CHTYPE = 1 1 1 1 1 1 1 4 4 4 4 4 4 4 3 2 5 6 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 2$
CHID = 0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 0 7 0 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255$
debug = 0
- Configuraçao a nível de software e integraçao com EmonCMS
Para fazer uma integraçao simples com o Home Assistant optei por utilizar o EmonCMS , mas na verdade existe a flexibilidade de utilizarem MQTT, InfluxDB, etc .
Neste caso a integraçao é feita através do EmonHub, que no fundo é o canal de comunicaçao intermédio entre a porta de série do vosso raspberry e o EmonCMS .
- Sigam inicialmente este guia para instalar o EmonCMS :
- Após instalado o EmonCMS, sigam este guia para instalar uma versao do EmonHub que irá funcionar de forma perfeita com a porta de série do vosso RPICT :
http://lechacal.com/wiki/index.php/Use_Emonhub_with_RPICT
A nível do EmonHUB existem alguns ajustes a ser feitos, nomeadamente o interface a utilizar, que deve ser modificado para porta de série ao invés do que vem por default .
Aqui está a configuraçao que utilizo :
[hub]
### loglevel must be one of DEBUG, INFO, WARNING, ERROR, and CRITICAL
### see here : http://docs.python.org/2/library/logging.html
loglevel = DEBUG #(default:WARNING)
[interfacers]
[[SerialDirect]]
Type = EmonHubSerialInterfacer
[[[init_settings]]]
com_port = /dev/ttyAMA0
com_baud = 38400
[[[runtimesettings]]]
pubchannels = ToEmonCMS,
[[emoncmsorg]]
Type = EmonHubEmoncmsHTTPInterfacer
[[[init_settings]]]
[[[runtimesettings]]]
subchannels = ToEmonCMS,
url = http://localhost/emoncms #uncomment to save on local pi
apikey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
senddata = 1 # Enable sending data to Emoncms.org
sendstatus = 1 # Enable sending WAN IP to Emoncms.org MyIP > https://emoncms.org/myip/list
interval= 10 # Bulk send interval to Emoncms.org in seconds
[nodes]
[[13]]
nodename = my_RPICT7V1
[[[rx]]]
names = RP1, RP2, RP3, RP4, RP5, RP6, RP7, Irms1, Irms2, Irms3, Irms4, Irms5, Irms6, Irms7, Vrms, AP1, EP1, PF1
scales = 1,1,1,1,1,1,1,0.001,0.001,0.001,0.001,0.001,0.001,0.001,1,1,1,1
units =W,W,W,W,W,W,W,mA,mA,mA,mA,mA,mA,mA,V,W,W
datacode = 0
Aspectos importantes a considerar :
DataInterval está incorrecto no config default e deve ser modificado para Interval ou o vosso EmonCMS nao vai receber os dados !
Devem ajustar as scales para corresponder ao nº de canais totais que querem monotorizar ! No meu caso sao 7 canais de potencia / watts, 7 canais de IRMS (corrente) e 1 canal de voltagem . Além disso acrescentei 3 canais para monotorizar factor de potencia, potencia estimada e potencia aparente, de acordo com o sketch de configuraçao descrito no passo 2 ! Eu optei por apenas utilizar estas 3 variáveis para o canal 1 (aquele que uso para monotorizar o circuito geral) , pelo que se quisessem faze-lo para cada canal independente, teriam de acrescentar em scales o valor 1 pela ordem correcta !
No caso dos IRMS usei uma scale de 0.001 porque quero os valores em amperes, e nao em mA …
Feito isto, devemos ter os novos inputs criados no EmonCMS !
Agora resta-nos apenas criar feeds através de cada input !
Existem muitos outros guias para isso mas é algo básico de fazer .
- Finalmente temos tudo pronto para integrar com o Home Assistant !
Só nos resta utilizar a integraçao nativa do HA com EmonCMS no nosso config :
sensor:
- platform: emoncms
api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
url: http://192.168.0.182/emoncms
scan_interval: 10
id: 1
unit_of_measurement: "W"
include_only_feed_id:
- 11
- platform: emoncms
api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
url: http://192.168.0.182/emoncms
id: 2
scan_interval: 10
unit_of_measurement: "kWh"
include_only_feed_id:
- 13
- platform: emoncms
api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
url: http://192.168.0.182/emoncms
id: 3
scan_interval: 10
unit_of_measurement: "A"
include_only_feed_id:
- 14
- platform: emoncms
api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
url: http://192.168.0.182/emoncms
id: 4
scan_interval: 10
unit_of_measurement: "V"
include_only_feed_id:
- 15
- platform: emoncms
api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
url: http://192.168.0.182/emoncms
id: 5
scan_interval: 10
unit_of_measurement: "W"
include_only_feed_id:
- 16
- platform: emoncms
api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
url: http://192.168.0.182/emoncms
id: 6
scan_interval: 10
unit_of_measurement: "W"
include_only_feed_id:
- 17
- platform: emoncms
api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
url: http://192.168.0.182/emoncms
id: 7
scan_interval: 10
include_only_feed_id:
- 18
Reboot e … voilá !!!
Os sensores estao agora todos disponíveis e podem integrar no vosso Interface do HA .
Aqui está o meu :
De referir que estou extremamente satisfeito com esta aquisiçao, as leituras parecem ser bastante precisas e com um desvio muito pequeno dos valores reais, é super estável e penso que foi muito simples de configurar !
Aguardo agora o resto dos sensores que mandei vir da China (tem de ser os SCT013-000) para ficar com todos os circuitos controlados individualmente .
Penso que sem DIY esta é claramente a melhor solucao disponível no mercado a um preço razoável