Saltar al contenido principal

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.

No arranca por defecto

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
ArgumentoApunta aPor defecto
API_URLAPI de Zertipower (backend)http://localhost:3000
SMART_METER_API_URLAPI del Contador (smart-meter-backend)http://localhost:3001
REALTIME_API_URLAPI de tiempo realhttp://localhost:3002
Las tres, no sólo una

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.

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.