Contador / Smart Meter
Carpeta: smart-meter/ · Puerto: 4200 · Enlace: http://localhost:4200
· Tecnología: Angular 17 servido con Nginx · Perfil: smart-meter
La aplicación del socio de la comunidad. Es la ventana a través de la cual cada miembro ve su energía y participa en las decisiones colectivas.
Está detrás de un perfil de Compose porque su acceso depende de un servicio externo. Para levantarlo:
./dev.sh --profile smart-meter up -d
Qué hace
Reúne dos de los módulos funcionales del proyecto.
Caracterización energética de la demanda
- Visualización de la comunidad como contador agregado.
- Visualización en tiempo real del consumo y la producción.
- Histórico de consumo, producción y excedente de la comunidad.
- Cifras de energía y de CO₂ evitado.
Gobernanza de la comunidad (DAO)
Un sistema de gobernanza basado en tokens digitales ERC-20 que representan la participación de cada miembro:
- Creación de la comunidad y registro inicial de participaciones.
- Gestión de participaciones: cada miembro puede transferir las suyas a otro miembro de forma autónoma.
- Votaciones, con dos modelos que la comunidad elige para cada decisión:
- un voto por token — más peso a quien más invirtió;
- un voto por identidad — todos los miembros pesan igual.
- El presidente de la comunidad decide qué propuestas se activan y ejecuta la decisión una vez reunido el apoyo necesario.
Ejemplos de decisiones sometidas a votación: el precio del intercambio de energía, la elección del presidente, la forma de compartir la energía o la incorporación de nuevos activos.
El contrato inteligente vive en la red Gnosis.
Configuración
A diferencia del Panel y la Calculadora, el Contador habla con tres servicios distintos, y cada uno vive en un puerto propio. Los tres se incrustan al compilar.
smart-meter:
build:
args:
# API de Zertipower
API_URL: http://localhost:3000
# API del propio Contador. Es la que usa para iniciar sesión.
SMART_METER_API_URL: http://localhost:3001
# API de energía en tiempo real
REALTIME_API_URL: http://localhost:3002
| Argumento | Apunta a | Por defecto |
|---|---|---|
API_URL | API de Zertipower (backend) | http://localhost:3000 |
SMART_METER_API_URL | API del Contador (smart-meter-backend) | http://localhost:3001 |
REALTIME_API_URL | API de tiempo real | http://localhost:3002 |
Durante un tiempo el Dockerfile sólo reescribía la primera, con lo que la aplicación se compilaba apuntando a los servidores de producción para las otras dos —el inicio de sesión incluido— sin que se notara: la pantalla de acceso es HTML estático y se veía igual. Si tocas una, revisa las tres.
Limitaciones conocidas
El acceso depende de un servicio externo
El botón de Google redirige a Zertiauth (auth.zertifier.com), un servicio
de Zertifier que resuelve la identificación y devuelve la clave privada de la
que se deriva la cartera del usuario. En un entorno aislado no se puede
iniciar sesión, y es la principal atadura a eliminar antes de entregar el
sistema a un tercero.
La base de datos del Contador nace vacía
zertiair, la base propia de este módulo, se crea pero no se le aplican las
migraciones, así que no tiene ninguna tabla. El resultado es que el último
paso del acceso falla:
The table `users` does not exist in the current database.
Mientras eso siga así, el Contador arranca y se ve, pero no se puede entrar aunque Zertiauth funcione. Ver API del Contador.
Navegador recomendado
El diseño funcional recomienda Chrome por su compatibilidad con las tecnologías Web3, necesarias para la gobernanza. Edge se comporta igual al compartir motor. Safari y Firefox pueden presentar limitaciones en algunas funciones Web3.