Project

General

Profile

DTXr doc » History » Revision 75

Revision 74 (David Fredriksson, 11/24/2025 02:49 PM) → Revision 75/98 (David Fredriksson, 12/09/2025 04:38 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. 

 DTXr Web Interface – User Documentation (Redmine Textile Format) 

 h1. DTXr Web Interface – User Documentation 

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

 The system supports: 

 Viewing objects and properties 

 Writing Present Value to output objects 

 Selecting write priority 

 Viewing alarms and events 

 Editing Weekly Schedules 

 Switching between devices 

 Real-time updates through WebSocket 

 h2. 2. Navigation Bar 

 The navigation bar provides access to all core actions. 

 h3. 2.1 Objects Menu 

 Refresh: Reloads all objects for the currently selected device. 

 h3. 2.2 Devices Menu 
 The device dropdown displays the local device and all discovered devices. 

 Devices are grouped by BACnet network. 

 Switching devices reloads all object and event data. 

 The current device name is displayed in the navigation bar. 

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

 Examples: 

 Priority 1 – Manual Life Safety 

 Priority 8 – Object Default 

 Priority 16 – Lowest priority 

 h3. 2.4 Notifications Menu 
 Displays: 

 Alarms 

 Events 

 Normal (return-to-normal transitions) 

 The menu shows badge counters: 

 Yellow = events 

 Red = alarms 

 Green = normal 

 Notifications update in real time. 

 h2. 3. Objects View 

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

 Features: 

 Objects are displayed in collapsible sections (accordions). 

 Expanding an object loads its properties from the server. 

 Editable fields allow writing values. 

 Read-only fields display the 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 acknowledgment before updating the displayed value. 

 h3. 3.1 Expanding an Object 
 Click an object header to load: 

 List of properties 

 Current property values 

 Editable Present Value fields (if supported) 

 Controls for schedule editing (if applicable) 

 h3. 3.2 Writing Property Values 
 To write a value: 

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

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

 h2. 4. Device Discovery and Management 

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

 The system: 

 Lists responding devices 

 Groups them by network 

 Displays each device's name and ID 

 h3. 4.2 Selecting a Device 
 Selecting a device: 

 Reloads object list 

 Refreshes notifications 

 Updates the navigation bar label 

 h3. 4.3 Refreshing Device Data 
 Use: 
 Objects → Refresh 

 This triggers: 

 A global Who-Is request 

 Full reload of object content 

 Full reload of notifications 

 h2. 5. Notifications and Event Handling 

 The interface receives events in real time via WebSocket. 

 Types of notifications: 

 Alarm 

 Event 

 Normal (return-to-normal) 

 Each notification includes: 

 Timestamp 

 Object information 

 Event type 

 Transition state 

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

 When clicked: 

 A spinner indicates processing 

 The server sends a BACnet AcknowledgeAlarm 

 Once successful, the notification list updates 

 If acknowledgment fails, an error popup is shown. 

 h2. 6. Weekly Schedule Editor 

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

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

 h3. 6.2 Viewing the Schedule 
 The weekly calendar displays: 

 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 weekly view. 
 A new event appears. 
 A popup confirms creation. 

 h3. 6.4 Editing an Event 
 Click an event to modify its value: 

 Binary schedules: 

 Active 

 Inactive 

 Analog schedules: 

 Any numeric value 

 Event color updates accordingly. 

 h3. 6.5 Saving the Schedule 
 To save: 

 Click @Save changes@ in the modal. 
 The system compiles the full weekly schedule. 
 Events are sorted automatically. 
 Values are sent to the server as JSON. 

 On success, a confirmation popup appears. 

 h2. 7. Popups and User Feedback 

 The interface shows popup messages for: 

 Success (green) 

 Error (red) 

 Info (blue) 

 Warning (yellow) 

 Examples: 

 “Objects loaded” 

 “Write request sent” 

 “Write failed” 

 “Timeout!” 

 “Schedule saved” 

 h2. 8. Troubleshooting 

 h3. 8.1 Objects Do Not Load 
 Possible causes: 

 Device unreachable 

 Network discovery failure 

 Connection timeout 

 Solution: 

 Use Objects → Refresh 

 Check network connectivity 

 h3. 8.2 Writing Present Value Fails 
 Possible causes: 

 Wrong priority 

 Device rejects the value 

 Object out of service 

 Incorrect value format 

 Solution: 

 Select another write priority 

 Ensure object is writable 

 h3. 8.3 Schedule Does Not Save 
 Possible reasons: 

 No valid events entered 

 Schedule ID missing 

 Server communication error 

 Solution: 

 Ensure events exist before saving 

 Try reopening the schedule editor 

 Check device 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]]