Share My Creation Domoticz Scripts Viewer Tool

Discussion in 'B4J Share Your Creations' started by rwblinn, Oct 26, 2018.

  1. rwblinn

    rwblinn Well-Known Member Licensed User

    Domoticz Scripts Viewer Tool

    upload_2018-10-26_10-51-17.png

    Objectives
    • To view and save the Domoticz (Open Source Home Automation System) automation scripts stored in the Domoticz SQLite database on the remote server (i.e. Raspberry Pi 3B+).
    • To locally backup the remote Domoticz database.
    Tool Functionality
    • List all automation scripts (events) from the database and view the code.
    • Save a selected script to a text file.
    • Save all scripts to a text file.
    • Text file name: script name with extension depending interpreter.
    • File Extensions: Python=py,dzVents=lua,Lua=lua,Blockly=xml. These are set using a map.
    • Filter scripts using where clause, i.e. WHERE Interpreter = "dzVents".
    • Refresh the database by downloading from the Domoticz server to the application folder.
    • The refresh option can also be used to backup the Domoticz database.

    B4J Source Code
    Attached
    Requires the jSch library which can be found here.
    Created with B4J 6.51, tested with Java 1.8.0_191 running on Windows 10

    B4J Development Notes
    Some notes regarding functionality created.

    ToolBar: a button toolbar with fontawesome icons is dynamically created from a JSON array with ordered list of values.
    The values describe a button, which uses properties tag,icon,hint. Example: {"tag":"close","icon":"F00D","hint":"Close app"}.
    The tag is used to execute the button event, i.e. close_action.

    Settings: settings are defined in a map and maintained by a settings dialog.
    The dialog contains a customized listview, which is created from a settingsmap and a, semicolon delimited, string for setting the order of listview items.
    Each listview item contains an EditText view.

    Refresh: The database, domoticz.db, is refreshed by downloading using methods (Initialize, downloadfile) from the jsch library with wait for event completed.

    Filter: Scripts can be filtered using SQL where clause. The clause is defined by an InputDialog.

    ToastMessage: A, Android like, ToastMessage class is created to show messages with short (2s) or long duration (3.5s).

    DBUtils module is used to load the content of the SQLite table EventsMaster.
     

    Attached Files:

    Erel and inakigarm like this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice