### Install and start the Listener Agent Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-sysmon/index.html Use this command to install and immediately start the listener agent to observe data published to the bus. ```bash vctl install volttron-listener --start ``` -------------------------------- ### Install dependencies and start platform Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-postgresql-historian_docs_root/docs/source/index.html Install required packages and launch the VOLTTRON platform. ```bash pip install volttron pip install psycopg2-binary # Start platform with output going to volttron.log volttron -vv -l volttron.log & ``` -------------------------------- ### Agent start output Source: https://eclipse-volttron.readthedocs.io/en/latest/introduction/platform-install.html Example output showing the successful startup of an agent. ```text # expected output similar to this Starting b755bae2-a3f5-44a0-b01f-81e30b989138 listeneragent-3.3 ``` -------------------------------- ### Inspect installed platform directories Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-ansible/index.html Example directory structure created in the user's home directory after platform installation. ```text . ├── activate-web-env/ ├── ansible_venv/ ├── vhome/ ├── volttron-source.tar.gz └── volttron.venv/ ``` -------------------------------- ### Install and start the agent Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-threshold-detection/index.html Command to install and start the Threshold Detection agent with a specific configuration file. ```bash vctl install volttron-threshold-detection --agent-config threshold_detection_config.json --vip-identity platform.threshold_detection --start ``` -------------------------------- ### Agent installation output Source: https://eclipse-volttron.readthedocs.io/en/latest/introduction/platform-install.html Example output confirming the successful installation of an agent with its unique UUID. ```text # expected output similar to this Agent b755bae2-a3f5-44a0-b01f-81e30b989138 installed ``` -------------------------------- ### Install and Start Systemd Service Source: https://eclipse-volttron.readthedocs.io/en/latest/deploying-volttron/deployment-planning-options.html Commands to register, configure permissions, and initiate the VOLTTRON systemd service. ```bash #Copy the service file into place cp /etc/systemd/system/volttron.service #Set the correct permissions if needed chmod 644 /etc/systemd/system/volttron.service #Notify systemd that a new service file exists (this is crucial!) systemctl daemon-reload #Start the service systemctl start volttron.service ``` -------------------------------- ### Install and Start Sysmon Agent Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-sysmon/index.html Command to install and start the sysmon agent with a specific VIP identity. ```bash vctl install volttron-sysmon --vip-identity agent.sysmon --start ``` -------------------------------- ### Install and Start ILC Agent Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-ilc/index.html Command to install and optionally start the ILC agent using the vctl utility. ```bash vctl install volttron-ilc --vip-identity --tag ilc --start ``` -------------------------------- ### Start an agent Source: https://eclipse-volttron.readthedocs.io/en/latest/introduction/platform-install.html Starts a previously installed agent using its assigned tag. ```bash vctl start --tag listener ``` -------------------------------- ### Install and start the agent Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-log-statistics/index.html Command to install and start the log statistics agent with a specific identity. ```bash vctl install volttron-log-statistics --vip-identity platform.log_statistics --start ``` -------------------------------- ### Install volttron-lib-web Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-web/index.html Install the library required to enable the VOLTTRON Web Service. ```bash pip install volttron-lib-web ``` -------------------------------- ### Install and start agent Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-postgresql-historian_docs_root/docs/source/index.html Command to install the historian agent using a configuration file. ```bash vctl install volttron-postgresql-historian --agent-config --start ``` -------------------------------- ### Install documentation dependencies Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/contributing-documentation.html Commands to set up a virtual environment and install the necessary Python packages for building documentation. ```bash sudo apt install python3-venv python3-pip python3 -m venv /path/to/new/virtual/environment source /path/to/new/virtual/environment/activate pip install sphinx>=6.0 sphinx-rtd-theme>=1.2 pyyaml>=6.0 m2r2==0.3.2 ``` -------------------------------- ### Install the VOLTTRON platform Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-ansible/index.html Installs and configures the platform in user-space without requiring administrative privileges. ```bash ansible-playbook -i .yml \ volttron.deployment.install_platform ``` -------------------------------- ### Driver Configuration Example Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-platform-driver_docs_root/docs/source/device-scalability-settings.html Example of a driver configuration stored under the device path. ```json { "driver_config": {"device_address": "10.1.1.5", "device_id": 500}, "driver_type": "bacnet", "registry_config":"config://registry_configs/vav.csv", } ``` -------------------------------- ### Start the VOLTTRON platform Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-ansible/index.html Runs the playbook to start the platform services on remote systems. ```bash ansible-playbook -i .yml \ volttron.deployment.run_platforms ``` -------------------------------- ### Start and manage VOLTTRON instance Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/development-environment/setup-volttron.html Commands to start the VOLTTRON service and check its status. ```bash volttron -l volttron.log & vctl status ``` -------------------------------- ### Installing the Init.d Script Source: https://eclipse-volttron.readthedocs.io/en/latest/deploying-volttron/deployment-planning-options.html Commands to install, configure permissions, and enable the VOLTTRON init.d script. These commands require root or sudo privileges. ```bash #Copy the script into place cp /etc/init.d/volttron #Make the file executable chmod 755 /etc/init.d/volttron #Change the owner to root chown root:root /etc/init.d/volttron #These will set it to startup automatically at boot update-rc.d volttron defaults #Start the service /etc/init.d/volttron start ``` -------------------------------- ### JSON Configuration Example Source: https://eclipse-volttron.readthedocs.io/en/latest/platform-features/config-store/configuration-store.html Example of a JSON configuration file supported by the store, including Python-style comments. ```json { "result": "PREEMPTED", #This is a comment. "info": null, "data": { "agentID": "my_agent", #This is another comment. "taskID": "my_task" } } ``` -------------------------------- ### Install Linux Prerequisites Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/development-environment/virtual_machine/install-vm.html Commands to install essential software packages on an Ubuntu-based Linux system. ```bash sudo apt install python3.10 ``` ```bash sudo apt install git ``` ```bash sudo apt-get install python3.10-venv ``` -------------------------------- ### Install Pytest Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/developing-agents/writing-agent-tests.html Install the Pytest framework within an activated environment. ```bash pip install pytest ``` -------------------------------- ### Install Agent on Platform Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/developing-agents/agent-development.html Command to install an agent with specific configuration, tag, and VIP identity. ```bash vctl install --agent-config --tag --vip-identity ``` -------------------------------- ### Install and Configure Driver Agents Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-base-driver_docs_root/docs/source/index.html Commands to install the ListenerAgent and Platform Driver, and store the necessary device and registry configurations. ```bash python scripts/install-agent.py -s examples/ListenerAgent python scripts/install-agent.py -s services/core/PlatformDriverAgent -c services/core/PlatformDriverAgent/platform-driver.agent vctl config store platform.driver devices///csv_driver vctl config store platform.driver ``` -------------------------------- ### Install Federation Registry Service Source: https://eclipse-volttron.readthedocs.io/en/latest/deploying-volttron/platform-federation.html Commands to install the platform lookup service via pip or from source. ```bash pip install volttron-platform-lookup ``` ```bash git clone https://github.com/VOLTTRON/platform-lookup.git cd platform-lookup poetry install ``` -------------------------------- ### Install Copier in a Virtual Environment Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/developing-agents/agent-development.html Commands to create a virtual environment and install the Copier tool. ```bash python3 -m venv source /bin/activate pip install copier ``` -------------------------------- ### Install VOLTTRON via pip Source: https://eclipse-volttron.readthedocs.io/en/latest/introduction/platform-install.html Installs the latest stable version of the VOLTTRON platform from PyPI. ```bash pip install volttron ``` -------------------------------- ### Install Fake Driver Library Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-fake-driver_docs_root/docs/source/index.html Command to install the volttron-lib-fake-driver package. ```bash pip install volttron-lib-fake-driver ``` -------------------------------- ### Install VOLTTRON libraries Source: https://eclipse-volttron.readthedocs.io/en/latest/introduction/platform-install.html Use the vctl install-lib command to install libraries from a local source directory or a PyPI package. ```bash vctl install-lib /path/to/cloned/volttron-lib-bacnet-driver vctl install-lib volttron-lib-bacnet-driver ``` -------------------------------- ### Install Python and Dependencies Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/development-environment/vscode/index.html Command to install Python and necessary tools in the WSL2 environment. ```bash sudo apt install python3 python3-pip python3-venv ``` -------------------------------- ### Install a VOLTTRON agent Source: https://eclipse-volttron.readthedocs.io/en/latest/introduction/platform-install.html Installs an agent package from PyPI into the active VOLTTRON environment. ```bash vctl install volttron-listener ``` -------------------------------- ### Install VOLTTRON via pip Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/development-environment/setup-volttron.html Simplified installation command for updating agents or library packages. ```bash pip intall volttron ``` -------------------------------- ### RPC Method Invocation Examples Source: https://eclipse-volttron.readthedocs.io/en/latest/platform-features/message-bus/vip/vip-json-rpc.html Examples of calling, batching, and notifying remote peers. ```python self.vip.rpc.call(peer, 'say_hello', 'Bob').get() results = self.vip.rpc.batch(peer, [(False, 'say_bye', 'Alice', {}), (True, 'later', [], {})]) self.vip.rpc.notify(peer, 'ready') ``` -------------------------------- ### Install agents and libraries Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/development-environment/setup-volttron.html Use vctl to install agents or optional libraries from PyPI or local source paths. ```bash vctl install vctl install vctl install-lib volttron-lib-bacnet-driver vctl install-lib ``` -------------------------------- ### Configure and Install Economizer Agent Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-economizer-rcx/index.html Commands to store the configuration file and install the agent using the VOLTTRON control tool. ```bash vctl config store economizer.ahu1 config vctl install volttron-economizer-rcx --vip-identity economizer.ahu1 --tag economizer --start ``` -------------------------------- ### Start VOLTTRON in Foreground Source: https://eclipse-volttron.readthedocs.io/en/latest/deploying-volttron/deployment-planning-options.html Starts the platform in the current terminal with verbose logging enabled, suitable for testing purposes. ```bash $volttron -vv ``` -------------------------------- ### Start VOLTTRON platform in background with verbose logging Source: https://eclipse-volttron.readthedocs.io/en/latest/platform-features/control/index.html Starts the platform with increased verbosity and redirects output to a log file in the background. ```bash volttron -vv -l volttron.log & ``` -------------------------------- ### Install VOLTTRON libraries using pip Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/development-environment/setup-volttron.html Use these commands to install core VOLTTRON components in editable mode from local source directories or directly from PyPI. ```bash pip install -e or pip install volttron-core pip install -e or pip install volttron-lib-auth pip install -e or pip install volttron-lib-zmq ``` -------------------------------- ### Install an agent with identity and tag Source: https://eclipse-volttron.readthedocs.io/en/latest/introduction/platform-install.html Installs an agent while explicitly setting a VIP identity and a custom tag for easier management. ```bash vctl install volttron-listener --vip-identity volttron-listener-agent-1 --tag listener ``` -------------------------------- ### Install VOLTTRON Ansible collection from GitHub Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-ansible/index.html Installs the latest version of the VOLTTRON Ansible collection directly from the GitHub repository. ```bash ansible-galaxy collection install https://github.com/eclipse-volttron/volttron-ansible.git ``` -------------------------------- ### Execute shell commands Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/contributing-documentation.html Example of displaying a bash command. ```bash ls -al ``` -------------------------------- ### Implementing Agent Lifecycle Methods Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/developing-agents/agent-development.html Examples of implementing onsetup, onstart, onstop, and onfinish lifecycle hooks to manage agent state and communication. ```python @Core.receiver("onsetup") def onsetup(self, sender, **kwargs) """ This method is called after the agent has successfully connected to the platform, but before the scheduled methods loop has started. This method not often used, but is most commonly used to define periodic functions or do some pre-configuration. """ self.vip.core.periodic(60, send_request) @Core.receiver("onstart") def onstart(self, sender, **kwargs): """ This method is called once the Agent has successfully connected to the platform. This is a good place to setup subscriptions if they are not dynamic or to do any other startup activities that require a connection to the message bus. Called after any configurations methods that are called at startup. Usually not needed if using the configuration store. """ #Example publish to pubsub self.vip.pubsub.publish('pubsub', "some/random/topic", message="HI!") #Example RPC call self.vip.rpc.call("some_agent", "some_method", arg1, arg2) @Core.receiver("onstop") def onstop(self, sender, **kwargs): """ This method is called when the Agent is about to shutdown, but before it disconnects from the message bus. Common use-cases for this method are to stop periodic processing, closing connections and setting agent state prior to cleanup. """ self.publishing = False self.cache.close() @Core.receiver("onfinish") def onfinish(self, sender, **kwargs) """ This method is called after all scheduled threads have concluded. This method is rarely used, but could be used to send shut down signals to other agents, etc. """ self.vip.pubsub.publish('pubsub', 'some/topic', message=f'agent {self.core.identity} shutdown') ``` -------------------------------- ### Start VOLTTRON Platform Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/developing-agents/agent-development.html Command to launch the platform in the background with logging enabled. ```bash volttron -v -l volttron.log & ``` -------------------------------- ### Request API Root Endpoint Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-web/index.html Example of an HTTP GET request to the VUI root endpoint. ```http GET https://localhost:8443/vui/ ``` -------------------------------- ### Example Device Configuration File Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-fake-driver_docs_root/docs/source/index.html A sample JSON configuration file for the Fake Driver. The driver_config section must be present but can be left empty. ```json { "driver_type": "fake", "driver_config": {}, "registry_config":"config://registry_configs/fake.csv", "interval": 5, "timezone": "US/Pacific", "heart_beat_point": "Heartbeat", "publish_breadth_first_all": false, "publish_depth_first": false, "publish_breadth_first": false } ``` -------------------------------- ### Start VOLTTRON platform Source: https://eclipse-volttron.readthedocs.io/en/latest/platform-features/control/index.html Commands to launch the platform using either the default configuration or a specified alternate configuration file. ```bash volttron -l volttron.log & ``` ```bash volttron -c -l volttron.log & ``` -------------------------------- ### GET /platforms/:platform/agents Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-web/platforms/agent-endpoints.html Returns a list of routes for agents installed on the specified platform based on their state. ```APIDOC ## GET /platforms/:platform/agents ### Description Returns routes for the agents installed on the platform. Allows filtering by agent state and visibility. ### Method GET ### Endpoint /platforms/:platform/agents ### Parameters #### Path Parameters - **platform** (string) - Required - The identifier of the platform. #### Query Parameters - **agent-state** (string) - Optional - Filter by state: "running" (default), "installed", or "packaged". - **include-hidden** (boolean) - Optional - If true, includes system agents (default=False). ### Request Example Authorization: BEARER ### Response #### Success Response (200) - **route_options** (object) - A map of VIP identities to their respective agent route paths. #### Response Example { "route_options": { "": "/platforms/:platform/agents/:vip_identity" } } ``` -------------------------------- ### GET /platforms Response Examples Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-web/platform-endpoints.html JSON response structures for successful and failed requests to the /platforms endpoint. ```json { "route_options": { "": "/platforms/", "": "/platforms/" } } ``` ```json { "error": "" } ``` -------------------------------- ### GET /platforms/:platform/agents Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-web_docs_root/docs/source/platforms/agent-endpoints.html Returns a list of routes for agents installed on the specified platform, filtered by state and visibility. ```APIDOC ## GET /platforms/:platform/agents ### Description Return routes for the agents installed on the platform. ### Method GET ### Endpoint /platforms/:platform/agents ### Parameters #### Path Parameters - **platform** (string) - Required - The identifier of the platform. #### Query Parameters - **agent-state** (string) - Optional - Filter agents by state: "running" (default), "installed", or "packaged". - **include-hidden** (boolean) - Optional - When True, includes system agents (default=False). ### Request Example Authorization: BEARER ### Response #### Success Response (200) - **route_options** (object) - A mapping of vip_identity to their respective agent route paths. #### Response Example { "route_options": { "": "/platforms/:platform/agents/:vip_identity" } } ``` -------------------------------- ### Retrieve PubSub Routes Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-web/platforms/pubsub-endpoints.html Example response body for a successful GET request to retrieve monitored message bus topics. ```json [ "/vui/platform/:platform/pubsub/:topic", "/vui/platform/:platform/pubsub/:topic" ] ``` -------------------------------- ### GET /platforms/:platform/agents Response Examples Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-web/platforms/agent-endpoints.html JSON response structures for successful and failed requests to retrieve agent routes. ```json { "route_options": { "": "/platforms/:platform/agents/:vip_identity", "": "/platforms/:platform/agents/:vip_identity" } } ``` ```json { "error": "" } ``` -------------------------------- ### Configure device 'all' topic thresholds Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-threshold-detection/index.html Example configuration for monitoring multiple points under a device 'all' topic. ```json { "devices/fake/fakedevice/all": { "OutsideAirTemperature1": { "threshold_max": 60, "threshold_min": 0 }, "OutsideAirTemperature2": { "threshold_max": 42 } } } ``` -------------------------------- ### GET /platforms/:platform Response Examples Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-web/platform-endpoints.html JSON response structures for successful and failed requests to a specific platform endpoint. ```json { "route_options": { "": "/platforms/:platform/", "": "/platforms/:platform/" } } ``` ```json { "error": "" } ``` -------------------------------- ### Example Device Configuration Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-platform-driver/platform-driver-agent.html A sample JSON configuration for an individual device, specifying the driver type, registry, and polling interval. ```json { "driver_config": {"device_address": "10.1.1.5", "device_id": 500}, "driver_type": "bacnet", "registry_config":"config://registry_configs/vav.csv", "interval": 60, "heart_beat_point": "heartbeat", "group": 0 } ``` -------------------------------- ### Example Route Options Response Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-web/index.html A sample JSON response returned from a GET request to a non-leaf node, indicating available sub-paths. ```json { "route_options": { "platforms": "/vui/platforms" } } ``` -------------------------------- ### Implementing a success case integration test Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/developing-agents/writing-agent-tests.html Demonstrates installing and starting an agent on a test platform instance and verifying its health status via RPC. ```python import gevent from pathlib import Path from volttron.client.messaging.health import STATUS_GOOD from volttron.client.vip.agent import Agent from volttrontesting.platformwrapper import PlatformWrapper def test_platform_driver_agent_successful_install_on_volttron_platform( publish_agent: Agent, volttron_instance: PlatformWrapper): # Agent install path based upon root of this repository agent_dir = Path(__file__).parent.parent.resolve().as_posix() config = { "driver_scrape_interval": 0.05, "publish_breadth_first_all": "false", "publish_depth_first": "false", "publish_breadth_first": "false" } pdriver_id = "pdriver_health_id" pdriver_uuid = volttron_instance.install_agent(agent_dir=agent_dir, config_file=config, start=False, vip_identity=pdriver_id) assert pdriver_uuid is not None gevent.sleep(1) started = volttron_instance.start_agent(pdriver_uuid) assert started assert volttron_instance.is_agent_running(pdriver_uuid) assert publish_agent.vip.rpc.call( pdriver_id, "health.get_status").get(timeout=10).get('status') == STATUS_GOOD ``` -------------------------------- ### GET /platforms/:platform/agents/:vip-identity Response Examples Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-web/platforms/agent-endpoints.html JSON response structures for successful and failed requests to retrieve specific agent endpoint routes. ```json { "route_options": { "": "/platforms/:platform/agents/:vip_identity/", "": "/platforms/:platform/agents/:vip_identity/" } } ``` ```json { "error": "" } ``` -------------------------------- ### Point Metadata Example Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-platform-driver_docs_root/docs/source/device-scalability-settings.html Example of metadata associated with a device point. ```json {"units": "F"} ``` -------------------------------- ### Access local documentation Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/contributing-documentation.html Example path to open the generated documentation in a browser. ```text file:///home//git/volttron/docs/build/html/index.html ``` -------------------------------- ### Example Agent Configuration File Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-platform-driver/platform-driver-agent.html A sample JSON configuration for the platform driver agent, defining scrape intervals and publishing behaviors. ```json { "driver_scrape_interval": 0.05, "publish_breadth_first_all": false, "publish_depth_first": false, "publish_breadth_first": false, "publish_depth_first_all": true, "group_offset_interval": 0.0 } ``` -------------------------------- ### List RPC methods with documentation Source: https://eclipse-volttron.readthedocs.io/en/latest/platform-features/message-bus/vip/vip-json-rpc.html Displays method documentation and parameters for a specific RPC call. ```bash vctl rpc list -v platform.historian get_version platform.historian get_version Documentation: RPC call to get the version of the historian :return: version number of the historian used :rtype: string Parameters: ``` -------------------------------- ### Create and activate virtual environment Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-postgresql-historian_docs_root/docs/source/index.html Standard commands to initialize a Python virtual environment. ```bash python -m venv env source env/bin/activate ``` -------------------------------- ### Sample maps.yaml Configuration Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-modbustk-driver_docs_root/docs/source/index.html Example configuration file defining device types, their associated CSV map files, and addressing parameters. ```yaml - name: modbus_tk_test description: Example of reading selected points for Modbus-TK driver testing file: modbus_tk_test_map.csv addressing: offset endian: little write_multiple_registers: true - name: watts_on description: Read selected points from Elkor WattsOn meter file: watts_on_map.csv addressing: offset - name: ion6200 description: ION 6200 meter file: ion6200_map.csv - name: ion8600 description: ION 8600 meter file: ion8600_map.csv ``` -------------------------------- ### Verify Python Installation Source: https://eclipse-volttron.readthedocs.io/en/latest/introduction/platform-install.html Check the installed version of Python to ensure it meets the 3.10+ requirement. ```bash $ python3 --version ``` ```text # expected output similar to this Python 3.10.6 ``` -------------------------------- ### historian_setup(self) Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-base-historian_docs_root/docs/source/developing-historian-agents.html An optional method called at agent startup to perform connection setup or initialization tasks. ```APIDOC ## historian_setup(self) ### Description Optional initialization method run at startup for connection setup. ``` -------------------------------- ### Example VOLTTRON Configuration File Source: https://eclipse-volttron.readthedocs.io/en/latest/deploying-volttron/platform-configuration.html A basic configuration file template defining core platform settings like the message bus, VIP address, and web service credentials. ```ini [volttron] message-bus = zmq vip-address = tcp://127.0.0.1:22916 bind-web-address = web-ssl-cert = /certificates/certs/platform_web-server.crt web-ssl-key = /certificates/private/platform_web-server.pem instance-name = volttron1 ``` -------------------------------- ### Install Platform Driver Agent Source: https://eclipse-volttron.readthedocs.io/en/latest/external-docs/volttron-lib-fake-driver_docs_root/docs/source/index.html Command to install the Platform Driver agent if it is not already present. ```bash vctl install volttron-platform-driver --vip-identity platform.driver --tag driver ``` -------------------------------- ### Configure VOLTTRON instance settings Source: https://eclipse-volttron.readthedocs.io/en/latest/platform-features/control/index.html Example of a configuration file using the modified INI format to define instance-name and vip-address. ```ini [volttron] instance-name = volttron1 vip-address = tcp://127.0.0.1:22916 ``` -------------------------------- ### Define file structure Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/contributing-documentation.html Example of the expected directory and file naming convention. ```text index.rst ├── first-document.rst ├── more-documents │ ├──second-document.rst ``` -------------------------------- ### Install and Configure Poetry Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/development-environment/virtual_machine/install-vm.html Commands to install Poetry for dependency management and configure its environment settings. ```bash curl -sSL https://install.python-poetry.org | python3 - ``` ```bash export PATH="/.local/bin:$PATH" ``` ```bash source ~/.bashrc ``` ```bash poetry config virtualenvs.in-project true ``` -------------------------------- ### Successful log output example Source: https://eclipse-volttron.readthedocs.io/en/latest/introduction/platform-install.html Example log entry indicating successful heartbeat publication. ```text # example output (success) # listener agent is publishing heartbeat messages successively. 2022-03-04 14:12:46,463 (listeneragent-3.3 2192) __main__ INFO: Peer: pubsub, Sender: listeneragent-3.3_1:, Bus: , Topic: heartbeat/listeneragent-3.3_1, Headers: {'TimeStamp': '2022-03-04T19:12:46.460096+00:00', 'min_compatible_version': '3.0', 'max_compatible_version': ''}, Message: 'GOOD' ... ``` -------------------------------- ### Install VOLTTRON 7 dependencies Source: https://eclipse-volttron.readthedocs.io/en/latest/volttron-topics/VOLTTRON-releases/upgrading-versions.html Install required system packages for Python 3 on Debian-based distributions. ```bash sudo apt install python3-dev python3-venv libffi-dev ``` -------------------------------- ### Build documentation locally Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/contributing-documentation.html Command to generate HTML files from the documentation source. ```bash make html ``` -------------------------------- ### Configure VSCode settings.json Source: https://eclipse-volttron.readthedocs.io/en/latest/developing-volttron/development-environment/vscode/index.html Example configuration for environment variables, formatting, and Python analysis paths in VSCode. ```json { "terminal.integrated.env.linux": { "PYTHONPATH": "${workspaceFolder}/src/:${env:PYTHONPATH}", "VOLTTRON_HOME": "/home/${env:USER}/.volttron_modular" }, "editor.formatOnSave": true, "python.analysis.typeCheckingMode": "basic", "editor.rulers": [ 88, 120 ], "python.analysis.extraPaths": [ "${workspaceFolder}src/", ], } ```