====== unipiid ====== This interface can be used to identify the device. The identification information given by the API is read directly from HW. To read any information it is necessary to have **root privileges**. {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:08_safety-instructions_pseudo-ISO-7010-info.png?nolink |(!)}} **Note:** \\ If a user without root privileges needs access to information from this API, then the information is accessible for that user only using /run/unipi-plc/unipi-id path. See [[#create_or_refresh_files_in_run_unipi-plc_unipi-id_path|Create or refresh files in /run/unipi-plc/unipi-id path]]. Help for this API can be shown by this command: unipiid Help example: Usage: unipiid -d - create and populate directory /run/unipi-plc/unipi-id unipiid NAME - show value of parameter name unipiid mainboard_description attr [opt] - show list/value of optional parameters Where NAME can be: product_description product_model product_model_full product_version product_serial product_code product_family product_options platform_family platform_id mainboard_description mainboard_id uboard_id api_version {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:08_safety-instructions_pseudo-ISO-7010-info.png?nolink |(!)}} **Note:** \\ This interface can be used only in systems running Debian 13 and newer. ===== API version ===== Like most of the other APIs, unipiid can also be subject to change in the future. __Therefore, comparing the API version before any usage by a user application is strictly recommended.__ unipiid api_version Content example: 2 ===== Product description ===== Overall summary of the product (Unipi PLC) in human-readable format. unipiid product_description Content example: Product model: E413 Product version: 1.0 Product serial: 1260244349 SKU: 2025058 Options: 0x02 Platform family: Edge (6) Platform series: 0x06 RAW platform ID: 0x0606 To get and use just a single value from this list, you do not have to parse the whole complex file - use single-value files as a shorthand: unipiid product_model unipiid product_serial unipiid platform_family unipiid platform_id ===== Full product model ===== Product model with more detailed information about HW configuration. Description of the contents is in the main page for each product. Example for [[en:hw:004-edge#part_number_description|Unipi Edge]]. This can sometimes be the same as //product_model//. unipiid product_model_full Content example: E4130SW43200-M1 ===== Product code ===== Uniquely identifies the device. It consists of #SKU;Product model full_Product version;Product serial#. The same string is contained in the 2D code (data matrix) on the manufacturing label on the device. unipiid product_code Content example: #2025058;E4130SW43200-M1_1.0;1260244349# ===== Mainboard description ===== The mainboard is a key part of every Unipi PLC. The mainboard contains its own EEPROM memory storing all information about itself and the whole unit. unipiid mainboard_description Content example: Model: Mainboard Version: 4C Serial: 00000548 ID: 0x00CC Nvmem: /sys/bus/i2c/devices/1-0057/eeprom To get mainboard type only, parsing of this file is not necessary - simply use this shorthand: unipiid mainboard_id ===== Upper board ===== Upper board identification. It returns an identification number only if an upper board is contained in the device. unipiid uboard_id Content example: 00e0 ===== Fingerprint ===== To reliably detect if the hardware configuration of the Unipi PLC has been changed, the fingerprint value can be used. /* This can occur when e.g. a new card is inserted into a slot. */ The fingerprint value is a unique hash and is computed during every boot. unipiid fingerprint Content example: fcc85af4c8573f82cdd9a30bb27b4536dd68c8d6 ===== Create or refresh files in /run/unipi-plc/unipi-id path ===== Calling this will create or refresh data inside files in /run/unipi-plc/unipi-id. Text files with the information itself will be created in that directory. The identification information in these files is accessible even without root privileges. unipiid -d Files in /run/unipi-plc/unipi-id: $ ls -l /run/unipi-plc/unipi-id/ total 60 -rw-r--r-- 1 root root 1 Jul 16 09:19 api_version -rw-r--r-- 1 root root 40 Jul 16 09:19 fingerprint -rw-r--r-- 1 root root 109 Jul 16 09:19 mainboard_description -rw-r--r-- 1 root root 4 Jul 16 09:19 mainboard_id -rw-r--r-- 1 root root 1 Jul 16 09:19 platform_family -rw-r--r-- 1 root root 4 Jul 16 09:19 platform_id -rw-r--r-- 1 root root 37 Jul 16 09:19 product_code -rw-r--r-- 1 root root 191 Jul 16 09:19 product_description -rw-r--r-- 1 root root 4 Jul 16 09:19 product_family -rw-r--r-- 1 root root 5 Jul 16 09:19 product_model -rw-r--r-- 1 root root 13 Jul 16 09:19 product_model_full -rw-r--r-- 1 root root 2 Jul 16 09:19 product_options -rw-r--r-- 1 root root 10 Jul 16 09:19 product_serial -rw-r--r-- 1 root root 3 Jul 16 09:19 product_version -rw-r--r-- 1 root root 4 Jul 16 09:19 uboard_id