Skip to main content

Common utilities for MoveEV projects

Project description

MoveEV Common Models

This package contains the common models used for Electric Vehicle (EV) Charging Data across the MoveEV ecosystem.

Overview

The moveev_common package provides a set of standardized data models that represent various aspects of EV charging sessions, vehicle information, and location data. These models ensure consistency and interoperability between different components of the MoveEV platform.

Models

The package includes the following main models:

  1. ChargingEvent: Represents individual charging events with detailed metrics including:

    • Charging duration and timestamps
    • Energy consumed (kWh)
    • Voltage and current measurements (milli-volts, milli-amps)
    • Location data (lat/long)
    • Provider-specific information
    • Start/end energy measurements (micro-watt-hours)
    • Charging power (kilowatts)
  2. ChargingStat: Tracks real-time charging statistics including:

    • State of charge (milli-percent)
    • Charging voltage and current
    • Energy consumption
    • Location data
    • Odometer readings (meters)
    • Vehicle telemetry
  3. Vehicle: Contains vehicle information including:

    • VIN number
    • Telematics device details (ID, hardware ID, name)
    • Credential associations
    • Creation and update timestamps
    • Additional metadata (JSONB)
  4. Credential: Manages authentication and access credentials for:

    • Various charging providers
    • Telematics systems
    • API integrations
    • Username/password pairs
    • Database connections
  5. Client: Manages client application information including:

    • Client name
    • Authentication token
    • Service associations
  6. ClientService: Manages client service configurations including:

    • Client associations
    • Service endpoints
    • Event logging relationships
  7. Service: Defines available services including:

    • Service name
    • Service URL
    • Integration endpoints
  8. EventLog: Tracks event notifications including:

    • Charging event references
    • Client service associations
    • Timestamp information
    • Delivery status
  9. LastRunTime: Tracks service execution times including:

    • Credential associations
    • Job name
    • Last execution timestamp
  10. Location: Represents geographical location data including:

    • Latitude and longitude
    • Resolved address information
    • Associated charging events

Usage

These models can be imported and used in various MoveEV projects to ensure consistent data structures when working with EV charging data. They provide a common language for different components of the system to communicate and share information effectively.

Contributing

When adding new fields or modifying existing models, please ensure that changes are reflected across all relevant components of the MoveEV ecosystem to maintain consistency.

For more detailed information about each model and its fields, please refer to the source code and inline documentation.

Database Migrations

Generating Migrations

  1. Make your model changes in the appropriate files under src/moveev_common/. For example, to add new fields to a model:

    class Credential(Base):
        # ... existing fields ...
        session_id = Column(String)
        session_expiry = Column(DateTime)
    
  2. Activate your virtual environment:

    source .venv/bin/activate
    
  3. Generate the migration script:

    alembic revision --autogenerate -m "description of your changes"
    

    This will create a new migration file in the alembic/versions/ directory.

  4. Review the generated migration file to ensure it correctly captures your changes. The file will be named something like 1234abcd_description_of_your_changes.py.

  5. If the migration looks correct, proceed to running the migration as described below.

To run database migrations:

Running Migrations

Local Development

alembic -x environment=local upgrade head

Production

alembic -x environment=production upgrade head

Make sure your .env file contains both sets of database credentials:

  • POSTGRES_USER
  • POSTGRES_PASSWORD
  • POSTGRES_HOST
  • POSTGRES_PORT
  • POSTGRES_DB

AND

  • POSTGRES_USER_PRODUCTION
  • POSTGRES_PASSWORD_PRODUCTION
  • POSTGRES_HOST_PRODUCTION
  • POSTGRES_PORT_PRODUCTION
  • POSTGRES_DB_PRODUCTION

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

moveev_common-0.1.9.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

moveev_common-0.1.9-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file moveev_common-0.1.9.tar.gz.

File metadata

  • Download URL: moveev_common-0.1.9.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.16

File hashes

Hashes for moveev_common-0.1.9.tar.gz
Algorithm Hash digest
SHA256 418f17d5d87d87d477d540bb839ad1a16c46417e9cd1b1468850afcfb9e0ac37
MD5 fe6c1ae24e6e15923644476a618da417
BLAKE2b-256 c3853df3e76238949c1d613300d1b32d3530561d5da656abe5e2613671c91f02

See more details on using hashes here.

File details

Details for the file moveev_common-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: moveev_common-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 15.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.16

File hashes

Hashes for moveev_common-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 a2408a6fbf4f96f0b1446e4166a67b7ca087b053ee3cf54544e6d78da4cec59f
MD5 a44228c6940fb6bbef0ba6966f151b94
BLAKE2b-256 959df1aa078012cbf823bec2d901d823c471a4b9d177e8f3c754e74d53268430

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page