esthesis EDGE Documentation Help

Examples

Here are some possible examples of setting up esthesis EDGE in different environments. Those examples contain sample values for some of the critical environment variables, and you should replace them with your own values.

Standalone installation

Start esthesis EDGE as a Docker container, connecting it to an external MariaDB and InfluxDB. Enable Enedis module, and configure local data sync, as well as esthesis CORE data sync and device registration:

docker run -d \ --pull=always \ -p 9080:8080 \ -e QUARKUS_DATASOURCE_JDBC_URL="jdbc:mariadb://mariadb:3306/esthesis-edge" \ -e QUARKUS_REST_CLIENT_ESTHESIS_AGENT_SERVICE_CLIENT_URL="http://esthesis:59070" \ -e ESTHESIS_EDGE_ADMIN_SECRET="e35b9b5d-8831-4466-ac50-419b2a89c8b6" \ -e ESTHESIS_EDGE_LOCAL_ENABLED="true" \ -e ESTHESIS_EDGE_LOCAL_INFLUX_DB_URL="http://influxdb:8086" \ -e QUARKUS_REST_CLIENT_ENEDIS_CLIENT_URL=https://gw.ext.prod-sandbox.api.enedis.fr \ -e ESTHESIS_EDGE_LOCAL_INFLUX_DB_TOKEN="Bfe-aqkUXEh9owtXKSu1V5zZ4D_1L88kD365dFYrv_trVjjqSoGEqo41j3aXfrflxfibE6PCWILchlqUymrWTw==" \ -e ESTHESIS_EDGE_CORE_PUSH_ENABLED="true" \ -e ESTHESIS_EDGE_CORE_PUSH_URL="ssl://mosquitto:8883" \ -e ESTHESIS_EDGE_CORE_REGISTRATION_ENABLED="true" \ -e ESTHESIS_EDGE_MODULES_ENEDIS_ENABLED="true" \ -e ESTHESIS_EDGE_MODULES_ENEDIS_CLIENT_ID="clientId" \ -e ESTHESIS_EDGE_MODULES_ENEDIS_CLIENT_SECRET="clientSecret" \ -e ESTHESIS_EDGE_MODULES_ENEDIS_FETCH_TYPES_DC_ENABLED="true" \ -e ESTHESIS_EDGE_MODULES_ENEDIS_FETCH_TYPES_DCMP_ENABLED="true" \ -e ESTHESIS_EDGE_MODULES_ENEDIS_FETCH_TYPES_DP_ENABLED="true" \ -e ESTHESIS_EDGE_MODULES_ENEDIS_FETCH_TYPES_CLC_ENABLED="true" \ -e ESTHESIS_EDGE_MODULES_ENEDIS_FETCH_TYPES_PLC_ENABLED="true" \ -e ESTHESIS_EDGE_MODULES_ENEDIS_SELF_REGISTRATION_ENABLED="true" \ -e ESTHESIS_EDGE_MODULES_ENEDIS_SELF_REGISTRATION_STATE_CHECKING="true" \ -e ESTHESIS_EDGE_CORE_CERT="LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxRENDQWJ5Z0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFiTVJrd0Z3WURWUVFEREJCbGMzUm8KWlhOcGN5MWpiM0psTFdOaE1CNFhEVEkwTURZeE9UQTVNRGt4TkZvWERUTTVNVEl6TURJeU1EQXdNRm93R3pFWgpNQmNHQTFVRUF3d1FaWE4wYUdWemFYTXRZMjl5WlMxallUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCkFEQ0NBUW9DZ2dFQkFOandnNUFqMG9vOWtycDJ0NGdTR2FORFVFbSt6WnkxUytvSlBKYTJMcXN3VU1halFyQlMKVjROY3FsSGVYc3lNcGJKclBZNHlGZGx0WldnUFBTVXgvck1qUmV4ZlBNSVc5cENucFZscEZaNGZqTXhBOWptaAo5MnB1NTZuNEc0M0hiOTQyOHI0bmRsSmNmVDNqRGkwNC9JVFpYNXAyejZQekpMTVhaWVE0d3hlOWdJVm44WHplClhoUXRmV3FuTWNRRGFQek9zUUtrd3RML3Azak13cnZYOURGWjNFMFFQOUpNT2dmdzBhZlB2ZGd0ckkzbStIMWoKY3RHQkZKUWx6ZGdNUlh6M01XQXg0WjVEM3pKUE9ycDQ1SGswL1l3S3V2WlRpTjJsVUZXOTRscVVCTW9lYjdOOAphb3RTbzh5dHR3REtTMzNEcnFQaVhiNWJJcm14VUdYMUlWTUNBd0VBQWFNak1DRXdEd1lEVlIwVEFRSC9CQVV3CkF3RUIvekFPQmdOVkhROEJBZjhFQkFNQ0FRWXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQjJhSnl3MVJQQy8KUllrcEpTaG9JQjZiUFM1aHN4cHRrOExPaFNLQytab294cE5zTU05S1AxVEJrSjY3ZXQvYWs2RXRiMTIxSlNCdQpUVWFCWWVLcm9xMi9LNGI5a1E1ZVJRTGt6SUtrYTY1WkJGR0xuaklSR0pYL255SHJtanNMOUxRUTlXYWdpcDhiCms3VDYyOWhVWkkveVlmRGs4MWtaV0ROaEtwNjdZNEQwL1I0dFZZSTBBdEh3R2tpTEFETTB2M3JPMWt5RjNsYVoKV3VZcG9PVktmQkp5NXhKQmJXVGJVeGR0dU5VY25KeUIrZ054RFV3WnRoL3AxMWJzV2ltT05heFBWZGpFN1RpVgpMUWdwZ0tNeVdCL2hxK3lBQmJ0NkVlSWdvd0gvSVJjS0xiUEswOTd5alp6c25vYzAvdkUyK0o5WTBtOU9BQjlsCkZXdkl0Q1NRQ3hrPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" \ --name esthesis-edge \ esthesisiot/esthesis-edge:latest
  • Test administration API authentication

    curl -v -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" localhost:9080/admin/auth

  • Get registered devices

    curl -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" localhost:9080/admin/devices

  • List queued data

    curl -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" localhost:9080/admin/queue

  • Open Enedis self-registration page

    http://localhost:9080/enedis/public/self-registration

  • Get Enedis configuration

    curl -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" localhost:9080/enedis/admin/config

  • Get Edge configuration

    curl -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" localhost:9080/admin/config

Compose installation

Start esthesis EDGE using Docker Compose, including a MariaDB as well as an InfluxDB databases. Enable Enedis module, and configure local data sync, as well as esthesis CORE data sync and device registration:

oras pull docker.io/esthesisiot/esthesis-edge-docker-compose:latest
ESTHESIS_EDGE_SERVICE_PORT=10080 \ ESTHESIS_EDGE_INFLUX_DB_SERVICE_PORT=10086 \ QUARKUS_REST_CLIENT_ESTHESIS_AGENT_SERVICE_CLIENT_URL="http://esthesis:59070" \ ESTHESIS_EDGE_ADMIN_SECRET="e35b9b5d-8831-4466-ac50-419b2a89c8b6" \ ESTHESIS_EDGE_LOCAL_ENABLED="true" \ QUARKUS_REST_CLIENT_ENEDIS_CLIENT_URL="https://gw.ext.prod-sandbox.api.enedis.fr" \ ESTHESIS_EDGE_LOCAL_INFLUX_DB_TOKEN="Bfe-aqkUXEh9owtXKSu1V5zZ4D_1L88kD365dFYrv_trVjjqSoGEqo41j3aXfrflxfibE6PCWILchlqUymrWTw==" \ ESTHESIS_EDGE_CORE_PUSH_ENABLED="true" \ ESTHESIS_EDGE_CORE_PUSH_URL="ssl://mosquitto:8883" \ ESTHESIS_EDGE_CORE_REGISTRATION_ENABLED="true" \ ESTHESIS_EDGE_MODULES_ENEDIS_ENABLED="true" \ ESTHESIS_EDGE_MODULES_ENEDIS_CLIENT_ID="clientId" \ ESTHESIS_EDGE_MODULES_ENEDIS_CLIENT_SECRET="clientSecret" \ ESTHESIS_EDGE_MODULES_ENEDIS_FETCH_TYPES_DC_ENABLED="true" \ ESTHESIS_EDGE_MODULES_ENEDIS_FETCH_TYPES_DCMP_ENABLED="true" \ ESTHESIS_EDGE_MODULES_ENEDIS_FETCH_TYPES_DP_ENABLED="true" \ ESTHESIS_EDGE_MODULES_ENEDIS_FETCH_TYPES_CLC_ENABLED="true" \ ESTHESIS_EDGE_MODULES_ENEDIS_FETCH_TYPES_PLC_ENABLED="true" \ ESTHESIS_EDGE_MODULES_ENEDIS_SELF_REGISTRATION_ENABLED="true" \ ESTHESIS_EDGE_MODULES_ENEDIS_SELF_REGISTRATION_STATE_CHECKING="true" \ ESTHESIS_EDGE_CORE_CERT="LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxRENDQWJ5Z0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFiTVJrd0Z3WURWUVFEREJCbGMzUm8KWlhOcGN5MWpiM0psTFdOaE1CNFhEVEkwTURZeE9UQTVNRGt4TkZvWERUTTVNVEl6TURJeU1EQXdNRm93R3pFWgpNQmNHQTFVRUF3d1FaWE4wYUdWemFYTXRZMjl5WlMxallUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCkFEQ0NBUW9DZ2dFQkFOandnNUFqMG9vOWtycDJ0NGdTR2FORFVFbSt6WnkxUytvSlBKYTJMcXN3VU1halFyQlMKVjROY3FsSGVYc3lNcGJKclBZNHlGZGx0WldnUFBTVXgvck1qUmV4ZlBNSVc5cENucFZscEZaNGZqTXhBOWptaAo5MnB1NTZuNEc0M0hiOTQyOHI0bmRsSmNmVDNqRGkwNC9JVFpYNXAyejZQekpMTVhaWVE0d3hlOWdJVm44WHplClhoUXRmV3FuTWNRRGFQek9zUUtrd3RML3Azak13cnZYOURGWjNFMFFQOUpNT2dmdzBhZlB2ZGd0ckkzbStIMWoKY3RHQkZKUWx6ZGdNUlh6M01XQXg0WjVEM3pKUE9ycDQ1SGswL1l3S3V2WlRpTjJsVUZXOTRscVVCTW9lYjdOOAphb3RTbzh5dHR3REtTMzNEcnFQaVhiNWJJcm14VUdYMUlWTUNBd0VBQWFNak1DRXdEd1lEVlIwVEFRSC9CQVV3CkF3RUIvekFPQmdOVkhROEJBZjhFQkFNQ0FRWXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQjJhSnl3MVJQQy8KUllrcEpTaG9JQjZiUFM1aHN4cHRrOExPaFNLQytab294cE5zTU05S1AxVEJrSjY3ZXQvYWs2RXRiMTIxSlNCdQpUVWFCWWVLcm9xMi9LNGI5a1E1ZVJRTGt6SUtrYTY1WkJGR0xuaklSR0pYL255SHJtanNMOUxRUTlXYWdpcDhiCms3VDYyOWhVWkkveVlmRGs4MWtaV0ROaEtwNjdZNEQwL1I0dFZZSTBBdEh3R2tpTEFETTB2M3JPMWt5RjNsYVoKV3VZcG9PVktmQkp5NXhKQmJXVGJVeGR0dU5VY25KeUIrZ054RFV3WnRoL3AxMWJzV2ltT05heFBWZGpFN1RpVgpMUWdwZ0tNeVdCL2hxK3lBQmJ0NkVlSWdvd0gvSVJjS0xiUEswOTd5alp6c25vYzAvdkUyK0o5WTBtOU9BQjlsCkZXdkl0Q1NRQ3hrPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" \ docker compose up
  • Test administration API authentication

    curl -v -H "X-ESTHESIS-EDGE-ADMIN-SECRET:e35b9b5d-8831-4466-ac50-419b2a89c8b6" localhost:10080/admin/auth

  • Get registered devices

    curl -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" localhost:10080/admin/devices

  • List queued data

    curl -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" localhost:10080/admin/queue

  • Open Enedis self-registration page

    http://localhost:8080/enedis/public/self-registration

  • Get Enedis configuration

    curl -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" localhost:10080/enedis/admin/config

  • Get Edge configuration

    curl -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" localhost:10080/admin/config

Kubernetes installation

Start esthesis EDGE in Kubernetes, deploying all supporting infrastructure, including MariaDB and InfluxDB. Enable Enedis module, and configure local data sync, as well as esthesis CORE data sync and device registration. The esthesis EDGE service is exposed as a LoadBalancer service:

helm install edge oci://registry-1.docker.io/esthesisiot/esthesis-edge-helm --version
helm upgrade --install edge . \ --set global.esthesisRegistry="192.168.50.211:5000/esthesis" \ --set global.timezone="Europe/Athens" \ --set quarkus.log.level="DEBUG" \ --set quarkus.restClient.esthesisAgentServiceClient.url="http://192.168.40.236:59070" \ --set quarkus.restClient.enedisClient.url="https://gw.ext.prod-sandbox.api.enedis.fr" \ --set esthesis.edge.adminSecret="e35b9b5d-8831-4466-ac50-419b2a89c8b6" \ --set esthesis.edge.service.type="LoadBalancer" \ --set esthesis.edge.local.enabled="true" \ --set esthesis.edge.local.influxDb.token="fVfC4PNVzPnO_qsYY4X3lsvYmqIZNFHE3kE6fI8hpZqR" \ --set esthesis.edge.local.influxDb.url="http://edge-influxdb:8086" \ --set esthesis.edge.core.push.enabled="true" \ --set esthesis.edge.core.push.url="ssl://mosquitto.esthesis:8883" \ --set esthesis.edge.core.registration.enabled="true" \ --set esthesis.edge.core.registration.secret="ac50419b2a89c8b6" \ --set esthesis.edge.core.cert="LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMxRENDQWJ5Z0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFiTVJrd0Z3WURWUVFEREJCbGMzUm8KWlhOcGN5MWpiM0psTFdOaE1CNFhEVEkwTURZeE9UQTVNRGt4TkZvWERUTTVNVEl6TURJeU1EQXdNRm93R3pFWgpNQmNHQTFVRUF3d1FaWE4wYUdWemFYTXRZMjl5WlMxallUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQCkFEQ0NBUW9DZ2dFQkFOandnNUFqMG9vOWtycDJ0NGdTR2FORFVFbSt6WnkxUytvSlBKYTJMcXN3VU1halFyQlMKVjROY3FsSGVYc3lNcGJKclBZNHlGZGx0WldnUFBTVXgvck1qUmV4ZlBNSVc5cENucFZscEZaNGZqTXhBOWptaAo5MnB1NTZuNEc0M0hiOTQyOHI0bmRsSmNmVDNqRGkwNC9JVFpYNXAyejZQekpMTVhaWVE0d3hlOWdJVm44WHplClhoUXRmV3FuTWNRRGFQek9zUUtrd3RML3Azak13cnZYOURGWjNFMFFQOUpNT2dmdzBhZlB2ZGd0ckkzbStIMWoKY3RHQkZKUWx6ZGdNUlh6M01XQXg0WjVEM3pKUE9ycDQ1SGswL1l3S3V2WlRpTjJsVUZXOTRscVVCTW9lYjdOOAphb3RTbzh5dHR3REtTMzNEcnFQaVhiNWJJcm14VUdYMUlWTUNBd0VBQWFNak1DRXdEd1lEVlIwVEFRSC9CQVV3CkF3RUIvekFPQmdOVkhROEJBZjhFQkFNQ0FRWXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQjJhSnl3MVJQQy8KUllrcEpTaG9JQjZiUFM1aHN4cHRrOExPaFNLQytab294cE5zTU05S1AxVEJrSjY3ZXQvYWs2RXRiMTIxSlNCdQpUVWFCWWVLcm9xMi9LNGI5a1E1ZVJRTGt6SUtrYTY1WkJGR0xuaklSR0pYL255SHJtanNMOUxRUTlXYWdpcDhiCms3VDYyOWhVWkkveVlmRGs4MWtaV0ROaEtwNjdZNEQwL1I0dFZZSTBBdEh3R2tpTEFETTB2M3JPMWt5RjNsYVoKV3VZcG9PVktmQkp5NXhKQmJXVGJVeGR0dU5VY25KeUIrZ054RFV3WnRoL3AxMWJzV2ltT05heFBWZGpFN1RpVgpMUWdwZ0tNeVdCL2hxK3lBQmJ0NkVlSWdvd0gvSVJjS0xiUEswOTd5alp6c25vYzAvdkUyK0o5WTBtOU9BQjlsCkZXdkl0Q1NRQ3hrPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==" \ --set esthesis.edge.modules.enedis.enabled="true" \ --set esthesis.edge.modules.enedis.clientId="clientId" \ --set esthesis.edge.modules.enedis.clientSecret="clientSecret" \ --set esthesis.edge.modules.enedis.fetchTypes.dc.enabled="true" \ --set esthesis.edge.modules.enedis.fetchTypes.dcmp.enabled="true" \ --set esthesis.edge.modules.enedis.fetchTypes.dp.enabled="true" \ --set esthesis.edge.modules.enedis.fetchTypes.clc.enabled="true" \ --set esthesis.edge.modules.enedis.fetchTypes.plc.enabled="true" \ --set esthesis.edge.modules.enedis.selfRegistration.enabled="true" \ --set esthesis.edge.modules.enedis.selfRegistration.stateChecking="false"
  • Find service IP address EDGE_SRV_IP=$(kubectl get svc esthesis-edge-service -o jsonpath='{.status.loadBalancer.ingress[0].ip}')

  • Test administration API authentication

    curl -v -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" $EDGE_SRV_IP/admin/auth

  • Get registered devices

    curl -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" $EDGE_SRV_IP/admin/devices

  • List queued data

    curl -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" $EDGE_SRV_IP/admin/queue

  • Open Enedis self-registration page

  • Get Enedis configuration

    curl -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" $EDGE_SRV_IP/enedis/admin/config

  • Get Edge configuration

    curl -H "X-ESTHESIS-EDGE-ADMIN-SECRET: e35b9b5d-8831-4466-ac50-419b2a89c8b6" $EDGE_SRV_IP/admin/config

Last modified: 26 March 2025