Project

General

Profile

DTXr doc » History » Revision 76

Revision 75 (David Fredriksson, 12/09/2025 04:38 PM) → Revision 76/98 (David Fredriksson, 12/09/2025 04:51 PM)

{{>toc}} 

 h1. DTXr documentation 

 h3. Installation 

 


 * System Requirements 
 DTXr can run on any machine that can run +Java 17+ and has sufficient with RAM and disk capacity. 

 |Requirement|System RAM|System DISK|Example| 
 |Minimal|512Mbyte|512Mbyte|Raspberry 1, Raspberry Zero| 
 |Better|512Mbyte|512Mbyte|Rasberry Zero 2| 
 |Avarage|1GByte|1Gbyte|Raspberry 2-4| 
 |Top|2GByte|8Gbyte|Raspberry 4, Raspberry CM4, Server, PC| 

 * Network Requirements 
 DTXr can run stand alone without any active network connection. In that case the management pages is accessible via localhost interface. But for DTXr to be a fully functional BACnet/IP device it must be connected to an IP network that offers IP address via DHCP and where broadcast traffic is allowed. 

 * Download DTXr software packages 
 Currently only customers to DAVITOR can download DTXr. Contact info@davitor.com for purchase information. 

 * Install on Linux 
 ** There is special install scripts, please follow these steps: 
 ### Download latest DTXr _base_ image and copy to a SD-card that has 16Gbyte capacity or more 

 Or install a new image and install java 
 <pre>sudo apt install default-jdk </pre> 

 ### Insert the SD card, attach keyboard and screen via cable and start the device 
 ### When you get prompt login as **admin/davitor** 
 ### Download the installation script from davitor repository  
 *(note dtx.sh has an update since Jan 17th, 2024 see new parameter 'installfolder' below)* 
 *(note dtx.sh has an update since Nov 6th, 2025 see new parameter 'type' below)* 
 <pre>wget --user=**** --password=**** https://artifacts.davitor.com/repository/dtx-raw/scripts/dtx.sh</pre> 
 There is also a utillity script that can set the host name and MAC adress. Note, optional and only applicable on LION product appliances. 
 <pre>wget --user=**** --password=****    https://artifacts.davitor.com/repository/dtx-raw/scripts/system.sh</pre> 
 Make the scripts exec 
 <pre>sudo chmod 770 *.sh</pre> 
 ### Run installation as below where you first alter: 
 *** Required type (-t type) where type can be "scriptengine" for small platforms like RpiZ with 32-bit OS or "polyglot" for any 64-bits OS like servers or PC. 
 *** Required version (-v x.y.z) 
 *** The the install folder (-f myfolder) Note: Still relative to /usr/local so (-f myfolder) results in /usr/local/myfolder/dtx... 
 *** Partner user name (-u ****) 
 *** Partner password (-p ****) 
 *** Application password for the HTTP interface login on port 9090 (-app-password xxxxxxx) 
 *** BACnet Decvice Id (bac-device-id=nnnnn) 
 *** BACnet password which you will use to control the BACnet device DCC (bacnet-password=xxxxxx) 
 *** BACnet Device Name (bac-device-name=yyyy) 
 *** DAVITOR Reference Key (drk=xxxx) is used to mange and maintain this device from the DAVITOR PLM (Product Lifecycle Management) service. (drk=xxxx) The sequence of drk:s is in PLM instance database. 
 *** Hardware Platform Type (platform=xx) is used to control and switch on/off special features that is hardware dependent. 
 For LION products use: 
 <pre>sudo ./dtx.sh -t scriptengine|polyglot -v 3.2.2 -f myfolder -u **** -p **** -s "bac-device-id=nnnnn bac-device-name=yyyy app-password=xxxxxx bac-password=xxxxxx lion-enabled=true drk=xxxx platform=XX"</pre> 
 For other installations like PC, Servers etc. use: 
 <pre>sudo ./dtx.sh -t scriptengine|polyglot -v 3.1.23 -f myfolder -u **** -p **** -s "bac-device-id=nnnnn bac-device-name=yyyy app-password=xxxxxx bac-password=xxxxxx drk=xxxx platform=XX"</pre> 
 ### Utillity script to set MAC and host name 
 <pre>sudo ./system.sh -mac 70:B3:D5:16:E8:99 -hn DTX-L1-8R8DI</pre> 
 * Upgrade on linux 
 If you already have DTX installed and should upgrade to a new version *(Don't forget to set correct installfolder with -f)* 
 <pre>sudo ./dtx.sh -t scriptengine|polyglot -v 3.1.23 -f myfolder -u **** -p ****</pre> 
 * Manage the DTX service *(Note, since 17th Jan, 2024 of dtx.sh the names of the services are appended with the instsall folder in order to install multiple instances of DTX in same machine.)* 
 Stop<pre>sudo systemctl stop dtx_{myfolder}</pre>  
 Start<pre>sudo systemctl start dtx_{myfolder}</pre> 
 Check status<pre>systemctl status dtx_{myfolder}</pre> 
 Disable service, wont start at reboot<pre>sudo systemctl disable dtx_{myfolder}</pre> 
 Enable service, will start automatically at reboot<pre>sudo systemctl enable dtx_{myfolder}</pre> 

 * For other Linux distributions follow this steps 
 ### _TBD..._ 

 * Install on Windows 
 ** Follow these steps: 
 ### _TBD..._ 

 h3. LION Fieldbus 

 * See LION [[LION:Wiki]] for howto in installataion, channel assigmnets and testing. 

 h3. Setup 

 DTXr is setup via Menu -> Setup page. 

 * System 
 ** Administrator password - Password for the default (and not changeable) account    **"admin"**. Default is **"davitor"**. 
 _When you log in you will start att /home/admin 
 There is another user "pi" as well with a secret password._ 
 ** Operator username - Username for the typical user of any HMI developed on this device. Typically a machine operator. [Optional] 
 ** Operator password - Password for the operator user. [Optional] 
 ** Operator start page - Set any web page in the project folder that will automatically shown on an operator login. [Optional] 
 ** Log Level - The system severity level for the system_app.log in /Logs tree directory. 
 ** Platform - This is where DTX gets its information on which hardware options to consider. 

 * BACnet 
 ** _TBD..._ 

 * Davitor Advantage 
 ** _TBD..._ 

 * Wireless Mesh 
 ** _TBD..._ 

 * Bluetooth 
 ** _TBD..._ 

 * External Database Access 
 ** _TBD..._ 

 * File Integration 
 ** _TBD..._ 

 * HTTP 
 ** _TBD..._ 

 * LION Web Interface 
 ** _TBD..._ – User Documentation (Redmine Textile Format) 

 * IoT HUB (BETA) 
 ** _TBD..._ 


 h3. User's Guide 

 h2. h1. DTXr Web Interface – End User Documentation 

 *Important:*   
 When selecting a *remote BACnet device*, the object list and notifications *do not update automatically*.   
 You must press *@Objects → Refresh@* to reload the data. 

 For the *local device that hosts the web page*, all updates (property changes, events, alarms) are received *in real time*. 

 --- 

 h3. h2. 1. Overview 
 The DTXr web interface allows users to: 
 * View to view, monitor, and modify BACnet objects on the local device or any discovered remote devices. 

 The system supports: 

 Viewing objects and their properties 
 * Modify writable properties (e.g., 

 Writing Present Value) 
 * Edit weekly schedules 
 * Switch Value to output objects 

 Selecting write priority 

 Viewing alarms and events 

 Editing Weekly Schedules 

 Switching between local and remote devices 
 * Monitor alarms, events, and notifications 
 * Use real-time 

 Real-time updates through WebSocket (local device only) 

 --- 

 h3. h2. 2. Navigation Bar 

 h4. The navigation bar provides access to all core actions. 

 h3. 2.1 Objects Menu 
 * *Refresh* reloads 

 Refresh: Reloads all object data and events. objects for the currently selected device. 

 _Note: Refresh is required when a remote device is selected._ 

 h4. h3. 2.2 Devices Menu 
 * Displays The device dropdown displays the local device and all discovered BACnet devices. 
 * 

 Devices are grouped by BACnet network. 
 * Selecting a device loads its 

 Switching devices reloads all object list. and event data. 

 h4. The current device name is displayed in the navigation bar. 

 h3. 2.3 Priority Menu 
 Controls Defines the *BACnet write priority* BACnet WriteProperty priority used when writing Present Value. 

 Examples: 
 * 

 Priority 1 – Manual Life Safety 
 * 

 Priority 8 – Object Default 
 * 

 Priority 16 – Lowest priority 

 h4. h3. 2.4 Notifications Menu 
 Shows: 
 * Displays: 

 Alarms 
 * 

 Events 
 * Return-to-normal 

 Normal (return-to-normal transitions) 

 The menu uses shows badge counters: 
 * 

 Yellow = events   
 * 

 Red = alarms   
 * 

 Green = normal transitions   

 --- 

 h3. Notifications update in real time. 

 h2. 3. Objects View 

 The main view content area lists all BACnet objects. objects for the selected device. 

 Features: 
 * Collapsible categories (accordions) 
 * Lazy loading of 

 Objects are displayed in collapsible sections (accordions). 

 Expanding an object loads its properties when expanded 
 * from the server. 

 Editable Present Value fields where supported 
 * Real-time updates on allow writing values. 

 Read-only fields display the *local* device 
 * Manual refresh required current values. 

 When a property is changed: 

 The change is stored in the internal models structure. 

 Pressing the save/write button triggers a BACnet write. 

 The interface waits for *remote* devices acknowledgment before updating the displayed value. 

 h4. h3. 3.1 Expanding an Object 
 Expanding Click an object loads: 
 * Properties 
 * Values 
 * Writable header to load: 

 List of properties 

 Current property values 

 Editable Present Value fields 
 * Schedule editor button (if supported) 

 Controls for schedule editing (if applicable) 

 h4. h3. 3.2 Writing Property Values 
 Steps: 
 # To write a value: 

 Edit a the value in the input field. 
 # The interface stores the edited value. 
 Press the Write/Save Save/Write button. 
 # DTXr sends The system issues a BACnet WriteProperty with request using the selected write priority. 
 # A popup shows confirms success or error. failure. 

 --- If the device rejects the write, an error message is shown. 

 h3. h2. 4. Device Discovery and Management 

 h4. h3. 4.1 Discovering Devices 
 Opening the *Devices* Devices dropdown sends a BACnet Who-Is request request. 

 The system: 

 Lists responding devices 

 Groups them by network 

 Displays each device's name and populates the list. ID 

 h4. h3. 4.2 Selecting a Device 
 When switching devices: 
 * Properties reload 
 * Notification Selecting a device: 

 Reloads object list reloads 
 * The selected device name appears in 

 Refreshes notifications 

 Updates the navbar navigation bar label 

 h4. h3. 4.3 Refreshing Content Device Data 
 *Mandatory* when using remote devices. 

 Use: 
 @Objects ObjectsRefresh@ Refresh 

 This reloads: 
 * Object list 
 * Property values 
 * Notifications triggers: 

 --- A global Who-Is request 

 h3. Full reload of object content 

 Full reload of notifications 

 h2. 5. Notifications and Events Event Handling 

 Notifications include: 
 * The interface receives events in real time via WebSocket. 

 Types of notifications: 

 Alarm 
 * 

 Event 
 * 

 Normal (return-to-normal) 

 Real-time updates: 
 * Enabled for local device 
 * Disabled for remote devices — manual refresh required Each notification includes: 

 h4. Timestamp 

 Object information 

 Event type 

 Transition state 

 h3. 5.1 Acknowledgment Acknowledging Notifications 
 If Notifications that support acknowledgment display an Acknowledge button. 

 When clicked: 

 A spinner indicates processing 

 The server sends a notification supports acknowledgment: 
 * Press _Acknowledge_ 
 * DTXr sends BACnet AcknowledgeAlarm 
 * Notification 

 Once successful, the notification list updates when completed 

 --- If acknowledgment fails, an error popup is shown. 

 h3. h2. 6. Weekly Schedule Editor 

 h4. Some BACnet Schedule objects allow editing via the integrated weekly calendar. 

 h3. 6.1 Opening the Schedule Editor 
 Click the Clicking on a schedule property to open opens the Weekly Schedule modal window. 

 h3. 6.2 Viewing the Schedule 
 The weekly calendar modal. displays: 

 h4. 6.2 Creating Monday–Sunday timeline 

 Active/inactive periods 

 Event blocks for scheduled times 

 Events are color-coded depending on value type. 
 The UI automatically detects whether the schedule is: 

 Binary 

 Analog 

 h3. 6.3 Creating a New Event 
 To create a new schedule entry: 

 Select a time range in the calendar to create a weekly view. 
 A new event. event appears. 
 A popup confirms creation. 

 h4. 6.3 h3. 6.4 Editing Events an Event 
 Click an event to modify: 
 * modify its value: 

 Binary schedule → schedules: 

 Active / 

 Inactive 
 * 

 Analog schedule → schedules: 

 Any numeric value 

 h4. 6.4 Event color updates accordingly. 

 h3. 6.5 Saving the Schedule 
 To save: 

 Click *@Save changes@* to store @Save changes@ in the modal. 
 The system compiles the full weekly schedule. 

 The data is: 
 * Compiled into BACnet dailySchedule structures Events are sorted automatically. 
 * Sorted chronologically 
 * Sent Values are sent to the device server as JSON JSON. 

 --- On success, a confirmation popup appears. 

 h3. h2. 7. Popups and User Feedback 

 Popups indicate: 
 * The interface shows popup messages for: 

 Success 
 * Errors 
 * (green) 

 Error (red) 

 Info 
 * Warnings (blue) 

 --- Warning (yellow) 

 h3. Examples: 

 “Objects loaded” 

 “Write request sent” 

 “Write failed” 

 “Timeout!” 

 “Schedule saved” 

 h2. 8. Troubleshooting 

 h4. h3. 8.1 Objects Do Not Updating Load 
 * Remote device selected Possible causes: 

 Device unreachable 

 Network discovery failure 

 Connection timeout 

 Solution: 

 Use Objectspress Refresh   
 * Network or device may be unreachable 

 h4. Check network connectivity 

 h3. 8.2 Write Errors Writing Present Value Fails 
 Possible reasons: 
 * Incorrect causes: 

 Wrong priority   
 * 

 Device rejects the value 

 Object out of service   
 * Invalid 

 Incorrect value   

 h4. format 

 Solution: 

 Select another write priority 

 Ensure object is writable 

 h3. 8.3 Schedule Issues Does Not Save 
 * Possible reasons: 

 No valid events created   
 * Missing object entered 

 Schedule ID   
 * Remote missing 

 Server communication error 

 Solution: 

 Ensure events exist before saving 

 Try reopening the schedule editor 

 Check device requires manual refresh   

 --- status 

 h2. 9. Additional Tools (DTXr Menu) 

 The DTXr menu provides quick access to extra tools: 

 Setup – system configuration 

 Code – custom application logic 

 API – Swagger documentation 

 Blocks – block-based programming (Blockly) 

 Logout – return to login screen 




 h3. Setup 

 DTXr is setup via Menu -> Setup page. 

 * System 
 ** Administrator password - Password for the default (and not changeable) account    **"admin"**. Default is **"davitor"**. 
 _When you log in you will start att /home/admin 
 There is another user "pi" as well with a secret password._ 
 ** Operator username - Username for the typical user of any HMI developed on this device. Typically a machine operator. [Optional] 
 ** Operator password - Password for the operator user. [Optional] 
 ** Operator start page - Set any web page in the project folder that will automatically shown on an operator login. [Optional] 
 ** Log Level - The system severity level for the system_app.log in /Logs tree directory. 
 ** Platform - This is where DTX gets its information on which hardware options to consider. 

 * BACnet 
 ** _TBD..._ 

 * Davitor Advantage 
 ** _TBD..._ 

 * Wireless Mesh 
 ** _TBD..._ 

 * Bluetooth 
 ** _TBD..._ 

 * External Database Access 
 ** _TBD..._ 

 * File Integration 
 ** _TBD..._ 

 * HTTP 
 ** _TBD..._ 

 * LION Interface 
 ** _TBD..._ 

 * IoT HUB (BETA) 
 ** _TBD..._ 


 h3. User's Guide 

 * _TBD..._ 

 h3. Developer's Guide 

 [[IDE|IDE walk through]] 
 [[Javascript|The DTXr Javascript guide]] 
 [[Blockly|Blockly tutorials]]