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