nomos Documentation Release 1.1.73
October 03, 2016 Contents
1 Introduction 2
2 Basic Configuration, Licensing and Control4 2.1 Basic Configuration...... 5 2.2 Licensing...... 16 2.3 Controlling the nomos - Service...... 21 2.4 Scripting Client Tool...... 30
3 The nomos Command Set 53 3.1 Terminology / Types...... 53 3.2 Syntax (Structure of the Protocol)...... 55 3.3 Answering Sequence...... 57 3.4 Formatting Options, Parsing Options, Status Port...... 58 3.5 Command Classes...... 69 3.6 Standard Command Set...... 70 3.7 Dynamic Classes...... 103 3.8 Keyboard Layout (special keys)...... 111
4 Expanded Functions (AddOn’s) 112 4.1 CommandServer Extension...... 114 4.2 GIRA Homserver KO-Gateway, KNXnet/IP Support...... 132 4.3 Event Server...... 147 4.4 Airport Support (Airfoil)...... 152 4.5 eyeTV - Streaming Support...... 153 4.6 Apple Remote Support...... 155 4.7 Sonos Streaming Player Support...... 163 4.8 Z-Wave Support...... 167 4.9 Philips HUE Support...... 174 4.10 mremote Support (commandFusion iViewer support)...... 176
5 Miscellaneous 187 5.1 Working with System Variables...... 187 5.2 Mini- Webserver...... 191 5.3 Timer Support...... 198
i 5.4 Counter Support...... 202 5.5 Logic...... 204 5.6 OSD Keyboard...... 207 5.7 System Recognition in the Network - ZeroConf...... 208 5.8 VPN Access...... 211
6 TABLE of key codes SYSTEM EVENTS 213
7 Workarounds, Previews 215 7.1 DVD Copy Window...... 215 7.2 iTunes Remote...... 216 7.3 Use of the Squeezebox as IR receiver for controlling nomos...... 218 7.4 Useful Shortcuts and Keyboard Commands...... 220 7.5 Special Characters (Mac/Win/VM-Ware)...... 221
8 nomos Cloud API 222 8.1 API Doku General...... 222 8.2 API Befehlssatz...... 228
9 Legal Advisory 230
10 Version History 231
11 Attachments (templates) 232 11.1 {commandserver}.csv...... 232 11.2 {buttons}.csv (Mac only)...... 234 11.3 webserver.csv...... 235 11.4 sysvars.csv...... 237 11.5 timer.csv...... 238 11.6 baos.csv...... 240 11.7 hs.csv...... 241 11.8 knx.csv...... 242 11.9 remote.csv...... 244 11.10 xbmc.csv...... 245 11.11 sonos.csv...... 246 11.12 mremote.csv...... 247 11.13 logic.csv...... 248 11.14 zwave.csv...... 250 11.15 xpl.csv...... 251
ii nomos Documentation, Release 1.1.73
Welcome to the online documentation of the nomos IoT engine The nomos IoT engine, with its TCP-/UDP-Server (Daemon) processing in the background, places at your disposal a way of controlling devices through a network. The software is based on C Code for Linux Systems. A special protocol defined for this application makes possible the execution of a broad range of actions on these systems and their connected devices as well as their comprehensive control through simple LAN or WLAN connections. The nomos protocol serves to unify here the command sets of all the connected devices. nomos system is also distributed under various OEM names. Please be aware that some of the illustrations may not depict the current state of the software and may therefore deviate slightly.
Contents 1 CHAPTER 1
Introduction
We would like to introduce you to the nomos universal automation-software engine capable of controlling devices, regardless of their communication protocols, standards or proprietary software. The innovative nomos IoT software engine acts as the “Swiss army knife” of automation by elevating soft- ware and hardware to a single communication layer, creating a seamless automation system that can collect, control and feed from any platform. Meeting the Demand of the Rapidly Growing Automation Market The nomos software is made to adapt easily to new ‘standards’ and is extraordinarily light, weighing in with only 613 KB. Unlike the commonly available point-to-point control solutions, nomos is designed to elevate all software, web-services, building automation systems and multimedia components to just one communication level, delivering the full scope of a centralized controller, including logics, scripts and events. In an OEM environment, this IoT software engine can be deployed on virtually all platforms, including low-power devices, or even embedded in a chipset. A consumer-electronics manufacturer then gains the option of creating interoperability among his own prod- ucts while also taking control over third-party applications. The nomos IoT software engine unlocks potential for a boundless array of real-world uses. It can also adapt to and learn any individual consumer’s behavior. In a typical “morning routine” scenario, for example, the system knows the user’s personal wake-up pref- erence, timed by wearable technology. It simply activates macros accordingly, switching the Philips HUE scene to ‘energize.’ Then the Sonos automatically initiates a playlist called “Morning Classic”, set at 37% volume level. The Nespresso machine starts brewing the coffee as the TV, also muted, of course, turns on CNN by default. Detecting the last person to leave the house, the nomos system automatically shuts down appliances. In the car, nomos picks up the Spotify playlist, displays the status of the home in a real-time 3D map environment and shows you the way to the nearest electric-vehicle charging station. Upon leaving the office, nomos sends your ETA with a push-notification to family members or provides details on available parking at your desired destination. – Just one of the many versatile examples, please visit www.nomos-system.com for more IoT use cases. About nomos system
2 nomos Documentation, Release 1.1.73
Founded by home automation veterans as an R&D software lab in 2010, nomos system AG is the leader in innovative building automation, with currently over 2,000 licensed projects and 500 active system integrators in the nomos forum. Using its own software engine, nomos system has completed numerous upscale residential and commercial projects in Europe, the United States and Asia. Suitable for any application from residential to automotive, aviation or marine, nomos system AG supplies OEM partners in the field of automation around the globe. To learn more, please visit http://www.nomos-system.com
3 CHAPTER 2
Basic Configuration, Licensing and Control
Available for the basic configuration (network configuration) of the nomos system are appropriate data entry templates. When using Mac systems, you will find that entries mask after the software installation in the system control. When using Linux versions, you obtain the templates for data entries through the Webpanel. Be aware here that the Linux systems have to be licensed before the Webserver will permit a Configuration. The Mac version offers some additional configuration possibilities, such as adjustability of the project path.
4 nomos Documentation, Release 1.1.73
2.1 Basic Configuration
2.1.1 Installation Mac OSX
The preinstalled nomos Linux versions are delivered on corresponding hardware platforms. The Apple OS X version has to be installed by you. You start this Apple OSX installation from nomos with a double-click on the nomos packet:
This step then guides you through the installation:
Click on „Continue“. Read carefully the licensing agreement that appears and then click again on „Continue“. Confirm the query that follows, when you agree to the terms of the license, by clicking on „Agree“. The installation program then shows you that nomos is being installed on the system’s partition. An installation on another partition is prevented by the system. Confirm this with a click on „Continue“. In the window that now appears, please click on „Update“ in order to proceed with the installation. Operator Rights are required for installation of nomos. Please enter the required data:
2.1. Basic Configuration 5 nomos Documentation, Release 1.1.73
Confirm your data entries with „OK“. nomos is now installed. Confirm the completion of the installation with a click on „Close“. Congratulations! nomos is now installed on your system. Please note that the installation of nomos is always referenced to the user. Multiple installations of nomos for various users of one system are not recommended because this may under certain circumstances cause disruptions of functions.
2.1. Basic Configuration 6 nomos Documentation, Release 1.1.73
2.1.2 Configuration Mac
For the configuration of nomos Mac, please open the system settings.
In the window that now appears, please click on „Others“ in the lower portion on the nomos icon:
2.1. Basic Configuration 7 nomos Documentation, Release 1.1.73
You now find yourself in the configuration (Preference Pane) of nomos:
Prepared in the field „Configuration“ are all of the network settings required to operate nomos. Changes in the configuration are then permanently stored with a click on „Save & Restart“ and the service is rebooted as circumstances warrant so that the changes in configuration are immediately incorporated. nomos can accept TCP as well as UDP connections. The individual services are activated by placing a Check symbol on them. TCP Port identifies the port at which nomos anticipates the incoming TCP connections. Valid value range: 1024-1038 and 1040-65535. An open connection to a TCP Port has a blocking effect so that no UDP Commands are processed when it is present. UDP Port identifies the port at which nomos awaits UDP packets. Valid value range: 1024-65535 additional dispatching port By activating this option, you are activating additional dispatches of the an- swer sequence from nomos to the Client on an additional port. This option is intended as a compat- ibility mode for Clients with limited network functionality and should be activated only in case of need. The additional sending port always corresponds to the selected UDP Port+1. UDP Status provides here the IP (broadcast addresses are allowed) and the Port to which the status infor- mation about the system will be sent. nomos sends the status information automatically upon changes without a Client needing to query it. Try to use... The standard access to the sysvars.csv can be altered here. When this option is not used, the sysvars.csv is situated at .misc below the project index (default). When in use, the file is found directly in the root of the project index. In addition, the file name can be adjusted. This option is deployed for complex projects to the extent that system variables for the dynamic configuration are also being used. TCP Port 1039 is permanently reserved for Debug and Logging functions and is therefore not selectable. To use this function, please set up an extra TCP connection to nomos on this Port. nomos will then send you information on the processing of Commands received. As many as 16 Clients can simultaneously have access to Port 1039 access.
2.1. Basic Configuration 8 nomos Documentation, Release 1.1.73
2.1.3 Configuration Linux (nomos Box/Pi)
Setup of the nomos Box/Pi Version via Wizard Setup for nomos Box/Pi Version with Console (Terminal)
The nomos Box versions 1:1 are functionally comparable to the functions on the MAC. Exceptions are, of course, the proprietary MAC classes for controlling such internal applications as ITUNES, TV, WINDOW and so forth. In the SYS class, some limitations are also to be considered, such as with SETVOL or SAY or ENABLESS. The nomos Box/Pi systems are designed purely as gateways or as servers for just HTML5 or mremote (CommandFusion). Also supported are, naturally, the CommandFusion GUI Upload and the remote ser- vice for AppleTV and the „remote“ iTunes linkup, as well as UPNP and XPL. The nomos Box/Pi HTML5 Service automatically transcodes the GUI Designer project file on HTML5. Made available in this way on every HTML5-capable Webrowser is the Graphic User Interface. Available at this time are two different hardware variants: nomos Box Hardware: alix3d2 (PC Engines), 1 LAN / 2 miniPCI / LX800 / 256 MB / USB Specification: CPU: 500 MHz AMD Geode LX800 DRAM: 256 MB DDR DRAM Storage: CompactFlash socket Power: DC jack or passive POE, min. 7V to max. 20V Three LEDs Expansion: 2 miniPCI slots, LPC bus Connectivity: 1 Ethernet channel (Via VT6105M 10/100) I/O: DB9 serial port, dual USB Board size: 100 x 160 mm - same as WRAP.2E Firmware: tinyBIOS The Box features three status LED‘s on its front: LED 1 - (to the right of the network feed) indicates booting process: LED ON: System boots LED blinks: System started (system loaded Daemon heartbeat recognizable from frequency of blinking) LED 2 - indicates that the NOMOS Service has been started: LED OFF: No Service started (should really never occur) LED ON: Service has started, ready to operate.
2.1. Basic Configuration 9 nomos Documentation, Release 1.1.73
LED 3 - indicates access to external storage (e.g. USB Stick): LED OFF: no access LED ON: read-/write access nomos includes an internal 4GB Industrial NAND Flash Card. The Flash Card cannot be simply exchanged because the hardware ID of the card is required for the license key. The nomos Box has, alongside the network connection jack, an Ethernet connection jack, an RS232 interface and two USB connection jacks on the back. Nevertheless, the nomos Box PoE does not support the usual standard that is used, for example, by the typical PoE switches. In order to use PoE, an optional PoE Injector is required. nomos Pi Hardware: Raspberry Pi Model B Specification: CPU: Broadcom BCM2835 SoC full HD multimedia applications processor DRAM: 512 MB RAM, 400 MHz Storage: SD Memory Card Slot (SDHC), compatible with Class 4 and Class 6 cards Power: 750mA up to 1.2A @ 5V, 5 Status LEDs Board size: 85,60mm x 53,98mm x 17mm The nomos Pi Box has five Status LED‘s on the front: LED 1 - (from the top) read-/write access SD card. Daemon Heartbeat LED flashes: Sys- tem started. System loading is indicated by regular frequecy of blinking. Irregular flashing indicates Read-Write Access on the SD card. LED 2 - (from the top) shows power status: LED ON: Power on. LED 3, 4, 5 - indicate network access LED 3: FDx LED 4: Link LED 5:10/100MBit
2.1. Basic Configuration 10 nomos Documentation, Release 1.1.73
Setup of the nomos Box/Pi Version via Wizard
In order to set up the nomos Box/Pi, the IP address must first be determined. If the IP address is known and the nomos Box/Pi is properly licensed, further configuration can proceed through the R&D Webinterface. There is also the possibility to set up, configure and license the system manually. Basically, the FTP Client is helpful in setting up manually. For that, we recommend, e.g., Filezilla. Proficiency with the FTP Client is a prerequisite. Manual configuration will be explained in more detail later. The nomos Box (Pi excepted) comes equipped with an internal Backup/Restore function. As long as the OS is still running, delivery condition can be reconstituted, except for the license. This possibility will also be treated in greater detail later on. For putting the Box into operation for the first time, a DHCP Server is needed in the network. One learns the assigned IP from the Log of the DHCP Server or from the ZeroConf Protocol (appropriate iPhone App: “ZeroConf Browser” from RemObjects Software). The Box makes itself recognizable through ZeroConf as service “_rmtsysctrl” :
Apart from the IP address, the communications port, service name, version and serial number are also reported by the ZeroConf Service. Alternatively, a running nomos system naturally also recognizes the Box. Observe on the LOG from the nomos Console whether the BOX has been successfully started. Turning on the filter is helpful here. Other- wise, one can simply reboot the nomos Service: The following report, e.g., appears in the LOG:
2.1. Basic Configuration 11 nomos Documentation, Release 1.1.73
When the IP address is known, access can be gained to the Webinterface of the nomos Box:
On the „Basis Configuration“ page of the R&D Wizard, individual network settings can now be initiated. The Service Ports ( 1037-1039 ) are permanently assigned and cannot be changed at this site, in contrast to the Mac OSX version. The same applies to the use of the project name (nomos). Should you still desire to alter these standard settings, you would have to perform a manual change in the system file nomos.conf. Apart from handling changes or adjustments to the network settings, the R&D Wizard also offers you access to such further services as access to the Software Update Server, the Support Interface (VPN), an entries template for securing or reconstituting the configuration data, password allocation for access to the Wizard and much more.
2.1. Basic Configuration 12 nomos Documentation, Release 1.1.73
The respective applications are self-explanatory and will not be explained further here.
2.1. Basic Configuration 13 nomos Documentation, Release 1.1.73
Setup for nomos Box/Pi Version with Console (Terminal)
Naturally, one can gain access to the Box through the terminal and make adjustments there. Yet, this should only be done by someone who has appropriate experience with the shell. Access to the LOG of the Box can also be obtained through the terminal and direct commands can be launched. For manual configuration, the Box offers two standard services: SSH and FTP. The login and access data for these two services are:
Login: root Password: nomos
The access data at the moment cannot be changed. The nomos.conf for the manual setup of the system ports and the project name can be found in the index /root/nomos/config and is structured as follows:
- TCP_PORT=1037 - UDP_PORT=1037 - UDP_PORT_ADD=NO - STATUS_PORT=1038 - STATUS_IP=255.255.255.255 - PROJECT=nomos
The terminal linkup with the Box is made as follows: ssh root@[IP address of the Box] opens terminal and ssh establishes connection to the Box. The password challenge is answered with nomos . One arrives directly after this registration in the user index of the Box /root. Not to be confused with the root - index, which is one level higher. Allocation of the IP address: If a fixed permanent IP is desired for the Box, the file /etc/network/interfaces has to be adjusted: The input: iface eth0 inet dhcp delete or nullify with “#” placed before it The IP information is entered, for example, as follows:
- iface eth0 inet static - address 192.168.1.128 - netmask 255.255.255.0 - broadcast 192.168.1.255 - gateway 192.168.1.1
2.1. Basic Configuration 14 nomos Documentation, Release 1.1.73
Additionally, one should adjust the file /etc/resolv.conf and, e.g., enter a valid name server (DNS-Server): nameserver 192.168.1.1 For the fixed allocation of the IP address, as also in resetting to DHCP , a Shell Script is also available, which can simply be introduced from a USB stick. The current scripts for this are found in our support forum.
2.1. Basic Configuration 15 nomos Documentation, Release 1.1.73
2.2 Licensing
Loading a license file Mac Loading a license file nomos Box/Pi
In order to make the full use of nomos, you will require a licensing file for the specific device. Without a license, nomos presents itself only in the Demo Mode. Full functionality, to include a CommandServer and an Apple Remote Server, is available in the Demo Mode. Beyond that, the presentation is halted randomly every 30 - 50 minutes and must be rebooted again manually. The booting of nomos in the Demo Version is delayed by 30 seconds. During that delay, a display gradually appears. The demonstration version is exclusively available for the Apple OSX versions. nomos is built with modules and can be expanded as desired. The program packet consists of a basic license and the corresponding, optional extentions. At this time, the following modules and system interfaces are available: Basic License Mac: nomos Gate Basic version, not expandable, for users who wish to work with an Apple Computer, for example, as a simple audio player or media client/set-top box. Version contains a CommandServer, a Remote Server, WebServer, simple Button Bar (Standard GUI). This version is also suitable for controlling a simple media center (Frontrow/XBMC, eyeTV, ITunes). nomos Gate plus Basic version, as above, but extendable and contains 10 CommandServers and 3 Remote Server licenses. Packet License nomos Box/Pi: Available at this time for the nomos Box versions are 2 packets (nomos Box - Base and nomos Box - Pro License): nomos Box Base contains 3 CommandServers, 1 Apple Remote Server (ATV/ATV2/Homesharing), mRe- mote Server, HTML5 Server, xPL AddOn, EventServer AddOn, KNX & HS AddOn, UPnP AddOn. nomos Box Pro As with nomos Box Base, but 10 CommandServers, 5 Apple Remote Servers (ATV/ ATV2/Homesharing). Extensions/AddOn’s (only in connection with the Gate plus license): CommandServer AddOn Extension of the CommandServer interface, by respectively 5 protocols (a max- imum 25 protocols per system possible). EventServer AddOn Global interface for receiving and analyzing diverse TCP/UDP protocols. (TCP/UDP Listener) Remote Server AddOn Implementation of the Apple Remote Protocol for protocol-based control of iTunes (Mac/Windows), AppleTV. The AddOn is to be licensed for each remote device. Maximum of 25 remote-device connections possible. XPL AddOn Engagement of the xPL Protocol for, e.g., activation of the Logitech Squeeze Box. Extended Buttons AddOn Extended button-bar controlling. (max. 25 button bars definable (GUI Inter- face). Expanded command set for setting up the buttons. Relevant only for Mac systems.
2.2. Licensing 16 nomos Documentation, Release 1.1.73
BAOS/KNX/HS AddOn Building Management Module for the integration of the Weinzierl KNX IP 770 Interface(Objectserver), and/or GIRA Homeserver KO-Gateway, and/or KNXnet/IP (Routing or Tun- neling), and/or the corresponding function protocols Z-Wave and ZigBee. The control of the Phillips HUE is also covered by this license. Streaming AddOn Module for the eyeTV Streaming Service. Streams the current transponder (4 channels) into the network and can, e.g., be received over VLC. UPnP AddOn Module for the activation of the UPnP protocol. This AddOn is needed, for example, when you wish to include a SONOS system. The Streaming AddOn is still undergoing trials and is delivered free of charge and without claim of com- pleteness. m..Remote Server AddOn Communication server for the inclusion of the CommandFusion interface. This module is recommended for each system to which access is to be gained with mobile devices such as iPhone / iPod Touch / iPad. Client licenses: m..Remote Client AddOn End-use device for using the iViewer Client Software of CommandFusion. Li- cense required for each iPhone/iPod Touch/iPad (only usable in connection with the m..Remote Server)
We guarantee Update Service free of charge for at least one year. For OEM customers or purchasers within the scope of an extraordinary licensing agreement, license models or license packets can be generated as desired.
2.2. Licensing 17 nomos Documentation, Release 1.1.73
2.2.1 Loading a license file Mac
If you lack a valid license file, you can cause nomos to generate the appropriate e-mail. To do this, your e-mail client that is installed on the system has to be correctly configured. Click on „Request Keyfile“. nomos then creates an e-mail message with the system information required for licensing and displays this e-mail message in your E-mail-Client. Should you have further comments pertaining to your request, you may naturally append them and send them off in the e-mail when it is completed. You will promptly receive a response from our Support. Basically required for creating a license is the serial number of the corresponding system. You will find the serial number on the frame or also in the system information. Should you already have a license for nomos, please click on the license file and drag with the depressed mouse clicker to the field „DROP KEYFILE HERE“. This procedure also applies to the m..Remote Client licenses.
Release pressure on the mouse clicker. nomos will now inform you whether the license file is valid and install the file as your wish.
Within the field for the Keyfile is located a small button with a question mark. After clicking on this button, another window appears, presenting information about the currently installed license.
2.2. Licensing 18 nomos Documentation, Release 1.1.73
If a license has a time limit, this information will also be displayed in the same window. You would also find in this display in the tab mRemote the correspondingly licensed m..Remote Client Licenses.
2.2.2 Loading a license file nomos Box/Pi
The license file for the nomos Box/Pi versions can be loaded through the Wizard, if activated. If the Wizard has not yet gone active, the licensing file can also be transmitted through FTP. To request a license file, you will require the serial numbers of the nomos Box/Pi. These are found in the file serial.txt in the index /config, among other places. When you have received a Keyfile, the file has to be stored under the name nomos.key in the index /config. As previously described, this can be done by means of FTP. If the R&D Wizard is active, there will be a dialog there for the licensing. This dialog appears automatically, if no license file is present. The dialog page also contains all the necessary information for registering the nomos Box/Pi. You open the R&D Wizard by entering the IP address of the Box in a Webbrowser.
2.2. Licensing 19 nomos Documentation, Release 1.1.73
There are several available options for receiving the desired license. The buttons „Request Test License“ and „Request License“ are linked with the nomos system Shop. You can request the desired license there. Simply follow the dialog of the Web Shop Systems for this. When you have received your license file, copy the file, for example, onto the Desktop and hit the button „Select file“. Send this now to the license file in the file dialog. After successful transmission, a few seconds may elapse until the file is validated and the license is cleared.
The status of the license can be called up any time with the url http://{IP-Adresse}/licensing.php.
2.2. Licensing 20 nomos Documentation, Release 1.1.73
2.3 Controlling the nomos - Service
The nomos Service, the Daemon (nomos Box/Pi), starts automatically, as long as a valid license file is present. The Mac OSX Version, however, can be adjusted for whether the Service is supposed to be activated automatically upon login.
2.3.1 Activation of the Service (Mac OS)
To start the Service, click on „Start“‘‘in the nomos system installation in the field „Service Control“. nomos will start up propmptly. If, in this acivated state, the button ‘‘„Save & Restart“ is now hit, the nomos system is automatically started as soon as the user, for whom nomos was installed, checks into the System.
An index for the project data is preinstalled under „Project Path“ after the installation. The individually adjustable path given there to the project index always has to be identified in full. nomos recognizes a change in the original path and generates an appropriate index structure when the „Save & and Restart“ button is hit.
In the field „Service Control“ click on „Stop“. The nomos Service ends promptly and the System entry for automatic Start ( see Control ) is removed. The blue backgrounded portions of the field „Service Control“ display in each case the current status of the nomos system.
2.3. Controlling the nomos - Service 21 nomos Documentation, Release 1.1.73
2.3.2 Logging Monitor nomos has a Logging Monitor, which puts out information on the current status of the various services. Mistakes are also posted in the Logging Monitor. You reach the Logging Monitor by pressing the button „Show Log“ on the nomos configuration page:
The Logging Dialog opens. The output corresponds to that of Port 1039. Defective entries in the config- uration files, for example, are quickly discovered with this. The Logging Monitor can also make a record of such things and must remain open for this purpose. Furthermore, this monitor’s built-in filtering mecha- nisms considerably simplify a targeted search. A predefined filter can be installed from a pull-down menu. The entry can be overwritten manually, however. All kinds of filter options can be installed with this.
The „Scroll Lock“ button prevents automatic scrolling of entries. The Log continues to be written, however. The content of the Log can be exported into a file. The button „Save Log“ has to be hit for this. This opens a file dialog, where the storage location and name of the Log file can be entered. The button „Clear LOG“ deletes the current content of the window. Logging functions only when the PrefPane is open; the logging sheet itself need not remain open. The logging takes place asynchronously with a buffer of 1000 log lines The LOG can offer helpful information especially upon starting up the system. The so-called initial log provides information about the status of the various modules. When a connection to Port 1039 is established within 10 seconds of startup of the Dämon, the entire log from the start is reported. As many as 16 monitors
2.3. Controlling the nomos - Service 22 nomos Documentation, Release 1.1.73 can be set up at the same time.
Additional Log Output: Log lines with ERROR or WARNING are now presented in red or orange. NOTICE for unused switches/sections in the .csv WARNING for critical conditions that would probably cause a mistake (e.g., lines too long) ERROR for necessary switches that are not present in the .csv Logging can also be called up with NetCat. This can be done locally through a terminal window or for a remote nomos system: after the entry of, e.g., the command in the terminal window: nc 10.8.0.48 1039 opens a NetCat connection on Port 1039 with the IP address 10.8.0.48
2.3. Controlling the nomos - Service 23 nomos Documentation, Release 1.1.73
appropriate output appears. The display can be ended with “Control C”. The Wizard of the nomos Box versions also has a Log window. The Log window of the Wizard runs of its own accord. Therefore, parallel with the display in the log window, you can also make changes and settings on the Wizard.
You can also execute commands in the log window directly. Press the button „Execute command“ for this. Enter your desired Kommando sequence in the following dialog window and then press the Send button.
2.3. Controlling the nomos - Service 24 nomos Documentation, Release 1.1.73
You can follow the executed command sequence and possible response sequences directly in the LOG window.
2.3. Controlling the nomos - Service 25 nomos Documentation, Release 1.1.73
2.3.3 The nomos Directory Structure
The nomos directory structure is permanently established, except for the origin of a directory. As previously described, this is automatically anchored with the installation of the Service or with a chang in the prescribed path. We will now discuss the particular folders within the project structure. The tree shows the directories below the directory origin. In this case the origin is „nomos“. This can, as already mentioned, by changed at will.
The directory structure for the Linux-based systems is identical to the directory structure of the Mac Systems. Only the Start directory /projects here cannot be changed. The path /projects/nomos is set ac- cording to the standard and can, at the moment, be changed only in the file /config/nomos.conf. The Linux versions have a so-called Config-Watch function as well. The /config folder (with nomos.conf, nomos.key and so forth) is under permanent surveillance. As soon as a file in it is changed, generated or deleted, the nomos Daemon is automatically started anew. The various .csv files are not automatically generated and should show up only where the respective files are to be found. Folders that are added thereafter, for example, for template files are possible and in no way affect functionality. With alterations of the project path, the settings become active only after the “Save & Restart“ button is hit., Directory Structure
/[PROJECT]/addons CommandServer Files /[PROJECT]/events EventServer Files /[PROJECT]/gui Button Bar Files /[PROJECT]/misc PlugIn’s and System Files /[PROJECT]/misc/mremote/ mremote (GUI-Designer) Project Directory /[PROJECT]/misc/web/ Image folder for the Webserver /[PROJECT]/misc/baos.csv BAOS configuration /[PROJECT]/misc/hs.csv GIRA Homeserver configuration /[PROJECT]/misc/knx.csv KNXnet/IP configuration OPC Export File (Default Name) belonging to /[PROJECT]/misc/knx.esf KNX /[PROJECT]/misc/logic.csv Logic Definitions
mremote Configuration /[PROJECT]/misc/mremote.csv /[PROJECT]/misc/remote.csv Apple Remote Definition /[PROJECT]/misc/sonos.csv Sonos Player Definition /[PROJECT]/misc/xbmx.csv XBMC Player Definition /[PROJECT]/misc/sysvars.csv System Variables /[PROJECT]/misc/timer.csv Timer Configuration
Webserver Configuration /[PROJECT]/misc/webserver.csv
2.3. Controlling the nomos - Service 26 nomos Documentation, Release 1.1.73
/[PROJECT]/misc/zwave.csv Z-Wave Configuration /[PROJECT]/scripts Directory of Script Files /[PROJECT]/XPL Directory of the xPL Configuration
You will discovered in subsequent chapters how the files we just named are individually structured. The absence of certain files in the overall structure presents no problem. In this case the interfaces belonging to them are deactivated. There is also no problem with docking additional folders, for example, for model files. Additionally, a referral to a project-wide sysvar.csv has been installed for complex installations. If this function is used, the standard sysvars.csv in the ./misc index is ignored and shunted to a file installed here. An more detailed explanation of this function can be found in the Chapter: Working with System Variables.
2.3. Controlling the nomos - Service 27 nomos Documentation, Release 1.1.73
2.3.4 The nomos Firewall
For additional security and protection against abuse, nomos has been equipped with its own Firewall. The Firewall is only available at the moment for the Apple OS X versions.:
This Firewall only protects against the execution of protocol instructions that are supposed to be blocked on the targeted system. One should be congiszant that, when the ports are open, for example, to gain interactive access to the Internet, codes are also transmitted to the system and can be executed through script instructions. Commands such as SHUTDOWN or SLEEP can also be an annoyance for certain target systems.
All commands of all classes, including the commands from the included AddOns (Command – Server), are available for the firewall. Appended values are not taken into consideration. The erection of the firewall is quite easy. Appropriate selection buttons are at your disposal for the class and for the commands. A command to be ignored is selected simply in this way. Chosen commands are marked with a check symbol and can also be removed again selectively. The selected commands of one class and those to be ignored are placed on display in the overview window. By selecting
2.3. Controlling the nomos - Service 28 nomos Documentation, Release 1.1.73
The Firewall configuration is read only when nomos is started. When Commands/Classes are blocked, this is noted in the Log . The changes are not stored until the SAVE button is pressed. Changes that are not stored are lost only when the PrefPane is closed. Changes to the firewall settings only become active upon restarting Service. CommandServer classes are read as known to the system. When new CommandServer classes are integrated, the PrefPane must also be closed and then opened again, since the reading of classes happens only once at the opening of the PrefPane.
2.3. Controlling the nomos - Service 29 nomos Documentation, Release 1.1.73
2.4 Scripting Client Tool
The Scripting Client Tool is a handy utility that should help with the employment of the nomos system. The command sequences for control can be put together with this tool in a simple way. Command chains can also be laid down as Script. Diverse Logging/Monitoring functions assist in ferreting out possible problems. The tool is continually being refined and extended with additional utilities. This documentation will not be continually revised, however. Additional functions should be self-explanatory in the Client – Tool. The tool is available for Windows and Mac OS.
2.4. Scripting Client Tool 30 nomos Documentation, Release 1.1.73
2.4.1 Installation Windows
Open the file Setup.exe to install the software. A window for installation of the application will then appear.
Now select your target index for the program installation or follow the path suggested. Confirm the dialog with „Continue“. In the ensuing dialog, please read the licensing terms and affirm them. After you have confirmed the dialog with „Continue“, the software will be installed.
2.4. Scripting Client Tool 31 nomos Documentation, Release 1.1.73
2.4.2 Installation of the LabVIEW Runtime Environment Windows
The software was developed under LabVIEW. Therefore, the LabVIEW Runtime environment has to be installed. Users who already have LabVIEW Runtime environment installed on their systems, can skip the following steps and abort the installation routine. Following successful installation, you will automatically be prompted to install the LabVIEW Runtime environment.
Please confirm the unpacking of the Archive file.
Acknowledge the dialog with „Unzip“. The installation files will be unpacked in a temporary index and the installation is started upon confirming the following dialog.
2.4. Scripting Client Tool 32 nomos Documentation, Release 1.1.73
Please confirm this dialog as well with „Next“ and accept the licensing agreement in the following dialog. Confirm all dialogs that follow with „Next“. Following succesful installation, a corresponding notice appears whereupon you will have to reboot your system. Following a successful new-start, the nomos Scripting Client is ready to operate.
2.4. Scripting Client Tool 33 nomos Documentation, Release 1.1.73
2.4.3 Installation Mac
For installation on the Apple OSX system (from Version 10.6), please open the installation package nomos Client.pkg
This opens the installation dialog, which you then follow along and carry out.
Upon successful installation, you will find the nomos.app file in your Applications folder.
The nomos ScriptClient can also be employed without going through the installation routine. In this case, copy the file manually into the application folder and start die application. When the application is being carried out for the first time on a Mac system, or if no LabVIEW Runtime Version is present, you will receive a notification to that effect.
2.4. Scripting Client Tool 34 nomos Documentation, Release 1.1.73
Confirm the notification in the window by clicking on the Download Button. You are then directed to a Website of National Instruments, where you can load the Runtime Version. You will also find the relevant installation instructions there. Following installation of the Runtime Version, you can use the application.
2.4. Scripting Client Tool 35 nomos Documentation, Release 1.1.73
2.4.4 Application
The nomos Scripting Client serves for the simple generation of command sequences (Script´s),‘which can be created with this tool and tested. Furthermore, the generated Script´s can be deposited in an internal databank. Uploading of the Script files to your nomos system can also be accomplished with this tool. Also built in is a simple interface, which makes possible a simple implementation of new command sets for later versions. Monitoring funktionalities are integrated into the nomos Scripting Client as a managerial control mecha- nism. This makes possible an overview of all communications. Detailed information can be found in the Chapter: Monitoring. Start the nomos Scripting Client with a double-click on the program icon:
The following program window appears. (Windows: A corresponding entry can also be found in the Start Menu - Mac: The file nomos.app is found in the program folder)
2.4. Scripting Client Tool 36 nomos Documentation, Release 1.1.73
When all the previous steps have been taken successfully, you can then establish a connection with your nomosSystem. Enter for this the IP address and the corresponding Port (Standard setting is 1037). You may choose between TCP and UDP (Standard) connection. Be aware here that the settings made also conform to your nomos system. When you have entered all the data, press the button Connect. The software takes note of all IP addresses with which a successful connection can be set up. Should you wish to remove an entry from the list, selected that entry on the list, position the mouse cursor over the IP address entry and press the right mouse clicker. A context menu appears with the content „Remove Address“. Highlight the entry in the context menu with the mouse pointer and hit the left mouse clicker to confirm.
Once a connection has been established, a status display will confirm this. Also displayed will be the currently installed nomos version of the connected system as well as its MAC address. In the Monitoring Window you can observe the data exchange.
2.4. Scripting Client Tool 37 nomos Documentation, Release 1.1.73
Following the establishment of communications, the nomos ScriptingClient calls for the current program version of the associated nomos system with the command chains
2.4. Scripting Client Tool 38 nomos Documentation, Release 1.1.73
2.4.5 Working with the ScriptingClient
After you have succeeded in setting up the connection to your nomos system, you can now begin to send commands to the nomos system. Always make use of a plausible chain of commands for this and take care that the commands are processed sequentially. This means that you may have to turn on a device first before it can take further commands. Proceed here exactly as you would, for example, when working with your local applications on an Apple Computer or some external device like a TV set by means of remote control. Illustrated in the following example is the control of the eyeTV application with an Apple Computer. More detailled description of the possible commands and their functions can be found in Chapter Command Set. The nomos Command Set is divided into classes (Device), the class command (Code) and a possible value (Exception) to be transmitted. The characteristics specific to code or the structure required by the sequence to be sent on is handled for you entirely by the Scripting Client. You merely need to choose from the selection fields and append them to sequence. Now, in order to open the application eyeTV, you select the class (Device)
Following the selection of the class, you can cause the available class commands to be displayed and then choose the desired command. The opening of an application basically takes place with the ON command. When the application has already been opened, the ON command has no further effect.
2.4. Scripting Client Tool 39 nomos Documentation, Release 1.1.73
After having chosen the class (Device)
Now, press the „send“ button in order to send this string to the nomos System. The eye TV application then starts on the Apple Computer, if this had been installed. If your system was set up without TV reception, you would send some other class, e.g.
An extended logging function is also provided and will be described in detail in the documentation that follows.
When you pass the mouse pointer over the current command, a tool tip appears with a notice of which function the command contains. You will see that further settings are necessary in order to take the application to the desired status. Normally, the applications do not always open in full-screen mode on the Apple Computer, as desired, for example, with the TV or DVD replay. Furthermore, additional settings are needed, like a possible predesignation of the sound volume, the program selection or the closing of a previously engaged application. In the following example, we will lead you through the previously explained command so that the appropri- ate TV application in full-screen mode starts with the defined sound volume and the defined channel selction. In the succession of commands, please proceed just as you would with the settings for local manipulation on the Apple Computer.
Starting position is our string:
2.4. Scripting Client Tool 40 nomos Documentation, Release 1.1.73
Select the appropriate Device and Code, and press the add- button. Please take care that the selected com- mands are always added at the end of the command string. If the string is attached at some other position, please mark that position with the mouse pointer in the “string to send” before pressing the add-button and confirm the position with a click on the left mouse key. Then press the add-button and the command inserts itself at the selected position in the „String to send“. Please take care that the position of insertion is now internally “acknowledged”. This means that all further commands will line up behind the command that was inserted last, until you change the insertion position again, as previously described. You can also change this string manually, as well as delete or augment entries or value content. After you have hit the „add“ button, the string should look like this:
Now enter the value of your selection in the field „Exception“ and press the add-Button. Thereafter the string should look like this:
2.4. Scripting Client Tool 41 nomos Documentation, Release 1.1.73 anticipates an additional value (Exception). Enter in the field the desired value between 0 and 100. After hitting the „add“ key, the string should look as follows:
2.4. Scripting Client Tool 42 nomos Documentation, Release 1.1.73
In the lefthand portion of the card you will find the Script – Files in the internal Script Datenbank and in the righhand portion of the card you will find the scripts that can be executed, namely those you had stored on the system. If you would now desired to store the string as Script, press the button „New“ and enter a name for the Script file (typically TVon or iTunesON). The file ending (Suffix) is handled automatically and is already fixed with the designation .myh. If the Script file is already stored on the system, it will be appropriately displayed in the righhand selection table. Scripts can be loaded for processing any time in the „String to send“ window. For that you would mark the corresponding script file with a mouse click and then hit the „Load“ button. Should you wish to delete the selected script, press the „Del“ button and when you are ready to execute (for this the Script has to be present in the system), hit the „Run“ button.
The Scripts basically should also always be stored in the internal Script DB. You may dock or choose several internal databanks. The datenbank ScriptDB.sdb is the default databank that is normally opened at program start. The docking of, for example, project-specific databanks is recommended. Later versions support direct copying of databank content to the system. Scripts may also be started, however, with the class appropriate for iTunes:
Now send the string to the Apple Computer and you will see that the TV application with the desired or preselected program or the iTunes application with the desired playlist now opens. You may transmit as many arguments as you please. Should you now wish to preset the sound volume, the following change is necessary. Again change your script file as follows:
2.4. Scripting Client Tool 44 nomos Documentation, Release 1.1.73
or correspondingly:
Change the auguments as you see fit and send the string again. You will see that the volume can now also be set next to the program position. You may use whatever arguments you please. Arguments can also be deployed in lieu of URLs, ´image paths, music titles, window sizes or even codes or classes. The argument replaces or complements a Kom- mando line by its respective value content or text before the call is processed. Arguments can also be fulfilled globally.
A Script with the content <[ARG]>
->
ARG= and GARG= can also be used in combination. To be noted here is that ARG= has to be used first in order to fill targeted placeholders. With the subsequent employment of ‘ :txt-command:‘GARG= all the rest of the wild cards are filled.
Filled out accordingly were the first ARG with „3“, the second ARG with „50“ and the third and fourth ARG with „ITUNES“, thus presented as follows. (Processing of the arguments always takes place sequentially.):
2.4. Scripting Client Tool 45 nomos Documentation, Release 1.1.73
2.4.6 Scripts and their uses
As already described, Scripts define an an entire functional process by stringing individual commands to- gether in a row. The employment of Scripts considerably simplifies the configuration of a nomos system. Furthermore, no reset has to be carried out during running time in order to change a script definition, be- cause a script that is to be carried out is always read in anew. Dynamic content can also be transmitted with a Script Call. We basically prefer the employment of script calls rather than the employment of pure command chains as described in the configuration files that follow. Naturally, „Script in Script“ calls can also be carried out. To be noted here is that delays may occur through the sequential processing.
Example:
Script0.myh with content:
Execution would be initiated with the following command:
Executed one after another accordingly would be Script1.myh through Script3.myh. The execution then progresses, depending upon the content of each particular script, as long as the running script is being processed.
A parallel processing can be forced by means of the command FORCERUN . The script is read in with this and processed in its own thread:
The call by means of command would now be read into all three script files and deposited in its own thread for parallel execution. Reserved Script Names: An additional feature is the so-called reserve scripts. These are automatically carried out if they are present. With these scripts, you can influence, among other things, the booting behavior of nomos. init.myh The content of the scripts is executed after a Service startup. exit.myh The content of the script is carried out before the Service is ended sleep.myh The content of the script is activated before the Standby function wakeup.myh The content of the script is carried out after the „Wakeup“ Some examples of the use of these reserved scripts follows: The init.myh Script:
2.4. Scripting Client Tool 46 nomos Documentation, Release 1.1.73
This script, if it is present, and the nomos Service was configured on “autostart”, is executed automatically after starting up the system. With appropriate calls within the script, for example, applications can be automatically started, „Welcome Messages“ caused to display, or such parameters as System- and/or Application sound volume preprogrammed. The connected TV or Audio System, for example, can also be automatically turned on at the starting of the system. Das exit.myh Script: executed when the running nomos Service is ended. This applies also when the nomos system is being shut down with the system steering. Turn-off commands for the extended periphery, e.g., the TV or Audio system, can be laid down here, for example.
2.4. Scripting Client Tool 47 nomos Documentation, Release 1.1.73
2.4.7 Broadcast Monitoring
The nomos Scripting Client, along with the Monitoring Window already mentioned, also possesses a Broad- cast Monitor and a System-Log Monitor. The Broadcast Monitor serves to display the reports that nomos sends along to the network through the Broadcast Status Port. To start the Broadcast Monitor, switch to the filing card „BC Monitor“.
Hit the „Start“ button and change, for example, the sound volume with your keyboard. You will immediately receive a Feedback Message with the corresponding current values. nomos also sends information on the currently running music titles or the TV program that is currently on. The PLAYER STATUS of the respective applications is also transmitted; for iTunes typically a PLAYED or PAUSED. Broadcast status reports can be received and analyzed with the Eventserver in order to trigger other appro- priate actions. The Eventserver will be described in more detail later in this material. System Monitor Other monitoring windows open by pressing the „Monitor n“ keys.
This is the system monitor, which delivers information on whatever nomos Service is processing. This mon- itor serves, for example, for the analysis whenever problems crop up and can reveal implausible behavior. The sending sequences can also be observed by using the CommandServer- function. The Monitor has to be started by pressing the Logging buttons. The Port 1039 is permanently set and cannot be changed.
2.4. Scripting Client Tool 48 nomos Documentation, Release 1.1.73
The Monitor has some filter functions that somewhat simplify handling. Several filter functions can also be entered. A semicolon has to be used here as a separation character for the individual filters.
The Log can also be exported into a file and respective LOG files also imported again. Use this logging function primarily to observe the Startlog. The start sequence is buffered around 30 seconds after the start of Services and reported entirely upon opening of Port 1039. It can be seen in the Startlog whether all modules have properly started or whether errors have occurred
2.4. Scripting Client Tool 49 nomos Documentation, Release 1.1.73
2.4.8 Testing Field
In order to test basic control functions quickly, a small testing field was integrated into the ScriptingClient. You will find the testing field under the filing card „Test“
The buttons are preallocated with specific system functions. As soon as a client connects his nomos system, the functions can be carried out. Free command chains can be sent to the system on the field „Free String to send“. You can learn the functions of the various buttons from the instructional strip (Tipstrip/ Mouseover). Use the „Free String to send“ in order, for example, to park frequently employed command chains or script calls. You will find a further aid, the QuickPanel, under filing card „Tools“.
Another dialog window opens. Here you can lay down as many Kommando sequences as you like, store them as in a ready room and also read them in again. To read in the .qp file, it suffices to pull the file over the nomos Logo (Drag&Drop)
2.4. Scripting Client Tool 50 nomos Documentation, Release 1.1.73
The Kommando sequences can be pulled with the Drag&Drop function from the main dialog window di- rectly onto the Quick Panel. Files may also be acquired from the main application by pressing the „–>” button.
2.4. Scripting Client Tool 51 nomos Documentation, Release 1.1.73
2.4.9 Other Functions
You will find other functions in the file dialog of the nomos ScriptingClient. Along with the loading of the Script-DB, this also contains a function to update the command set as well as the callup of the Command- Server definitions (AddOn) that will eventually be present.
As soon as your system possesses the corresponding definitions table, the command set is extended with the call on the data. Instructions on the CommandServer- files are found later in this material. With the function „Command Set load“, you can read in the current command set from the definitions file CommandList.csv. You can find the most current definitions file on our Webseite www.nomos- system.com
2.4. Scripting Client Tool 52 CHAPTER 3
The nomos Command Set
After the start of the nomos system, nomos links up the ports defined in configuration to all the network interfaces in the system and waits for an incoming connection. When nomos receives a command that corresponds to the defined command set and presents a valid Syntax, it carries out this command and reports the successful execution and, depending upon the circumstances, any occuring response values back to the Client that initiated the callup. Communication among all connected systems takes place herewith through a uniform and seamless command structure, the nomos system Protocol. Depending upon the type of command, all sorts of different actions are induced this way in the system. The scope of such actions ranges from simple ones confined to the system’s local user interface all the way to the complete shutdown and rebooting of the system. The nomos system also offers the possibility to play out locally various scripts and command sequences and to carry them out, if desired, fully automatically.
3.1 Terminology / Types
The command set of nomos - Software is divided into two types of command
3.1.1 Classes (CLASS)
Classes <{CLASS}> are there to tell nomos which types of command should be executed. The set of com- mands that is supported is also kept in a structured, comprehensible framework in this way. Furthermore, callups of classes must always be terminated with (see Structure), so that a safeguard is si- multaneously established with this procedure against unintentional disruptions in connection and incomplete sequences. The callup of a class in the nomos system does not carry out any commands.
53 nomos Documentation, Release 1.1.73
3.1.2 Commands (CMD)
<{CMD}> put the actual set of commands of the nomos system at your disposal. Commands can come alone or augmented by arguments.
3.1.3 Scripts
A script is a chain of commands that is available as a function that can be called up (Macros). Any number of scripts can be generated and called up. Furthermore, as many as 10 different arguments can be transferred to the script upon callup. A script can be written, changed or deleted with the program during the running time.
3.1.4 Special Commands
Special Commands, e.g.
3.1.5 Formatting options (optional)
Formatting options can be added to their respective commands as an option. Output can be influenced at will through corresponding format strings. Search and sort functions can be initiated in this way.
3.1.6 Protocol Converters or Conversion Options (optional)
Conversion options are employed as options to influence arguments, to recompute them or to transform them.
3.1. Terminology / Types 54 nomos Documentation, Release 1.1.73
3.2 Syntax (Structure of the Protocol)
Array Processing
1Byte Hex values can also be incorporated into the command sequence. Invisible characters, for example, can be transmitted with this as well. The transferred values are transformed into the corresponding decimal numbers. Hexadecimal values are distinguished by a „\0x“ in front of them.
3.2. Syntax (Structure of the Protocol) 55 nomos Documentation, Release 1.1.73
Example:
The maximum length of a command sequence amounts to 8192 Byte (sign). If a class has not been terminated, all of the commands contained in this class callup are discarded.
3.2.1 Array Processing
The nomos system protocol also supports Arrays. For example, lists can be used for them. An Array is defined by means of a separation mark „|“. It is also possible, for example, to generate multiple queries in this way. If such a list is transmitted as argument to a Kommando, for example, elements of the list are processed in the order encountered and a corresponding response sequence is generated. This behavior is comparable to a „FOR-loop“, as is known from applied computer science.
Example:
If a list with several titles like this one is then transmitted:
the corresponding response comes back as:
The nomos system analyzes the transmitted list into its discrete elements and executes a corresponding GETIDALBUM for each element. The result is a reconstituted list that is reported back.
3.2. Syntax (Structure of the Protocol) 56 nomos Documentation, Release 1.1.73
3.3 Answering Sequence
The answering sequence of the nomos - System consists of a repetition of the command sequence. Argu- ments are not repeated. For the sake of XML compatability, the comprehensive „<“ and „>“ is dispensed with in the commands. Several commands of the same class are separated with „|“. Commands with a valid syntax are always marked with the Argument „OK“ in the answering sequence, while invalid commands get „NOK“:
If the answer to a command contains an Argument (ARG), that argument is initially included behind the command:
This behavior is characteristic of the employment of format options as well. The parameters are also added to the answering sequence:
3.3. Answering Sequence 57 nomos Documentation, Release 1.1.73
3.4 Formatting Options, Parsing Options, Status Port
In the following we described placeholders used for such diverse functionalities as initiating queries with formatted output, utilizing or parsing of textual information and transmitting information. Format op- tions/Conversion options always refer here to the partial argument that precedes them.
3.4.1 Formatting Options
Deployment of formatting options that force formatted response values. This is needed, for example, to re- format Time Tickers, which return values in seconds, to give back minutes and hours automatically. Specific list outputs can also be generated with this. It is necessary, for example, in order to query iTunes playlists. The option is attached inside „{}“ to the command for which the response value is to be analyzed. Currently available are the following formatting options:
%h recalculates a value in full hours %m recalculates the value in full minutes %s represents the Value 1:1 %l (List) initiates indicated output after „Index“ ; „Length“ (Count) counts the elements of a list (should be positioned at the end of %lc the option chain) %ls (Sort) sorts a list alphabetically %lf (Filter) filters the output of the list %lu (Unique) filters out all elements present more than one time %c (Partial string) outputs a partial string %r (Replace) replaces one character chain with a new one %t Dummy, in order, e.g., to “name” list outputs (Tagging) %fxml Formatting command for xml-Content (see below)
Formatting options can be combined or linked together as desired. In so doing, the formatting options are separated by commas, {%lfa,%ls ,%lc} (generates a list whose elements begin with „a“ and sorts the elemente alphabetically, placing the sum of all elements atop the list). Please keep in mind here that the options are applied one after another in that order. Thus the filtering should take place, of course, before the count is sent back. Employment of various Options: Forcing output in digits: %3m commands response with at least 3 digits and positions BLANKs (empty spaces) in front Constrains and zeroizes with left-hand zeroes: %04s commands at least 4 places and fills them with left-hand zeros Specified output of lists (possible with all commands that return lists):
3.4. Formatting Options, Parsing Options, Status Port 58 nomos Documentation, Release 1.1.73
%l{Index},{Length} gives back {Index} {Length} list elements. Where {Length} is negative, the count runs backwards, namely the output is turned around %lc adds onto the list output the number of elements contained in the format „...=({Number})|..“
%ls sorts the list output alphabetically %lf{Searchstring} filters the list output by content of {Searchstring} . The search here takes place from left to right. %lu ignores elements of the list that are returned multiple times Universal Format String: %c{Index},{Length} gives back certain characters of a string. %r{String A},{String B} replaces or deletes characters from {String A} through {String B}. If {String B} is empty or if no argument hs been given, all characters of {String B} are erased. The two formatting options may be positioned anywhere as desired. Formatting command for xml-Content: This formatter is used to filter data out of a valid(!) xml string. Multiple hits are possible and are separated by “|” in the response so that further list formatters can be deployed. Syntax: %fxml{NodeName}[={NodeValue}][~{AttributeName}] [={AttributeValue}] Examples: {%fxmlartist} gives back all content of the xml Node with the name “artist” . {%fxmlartist=Depeche Mode} possible but ineffective because no match is defined. {%fxmlartist=Depeche Mode~id} gives back the value of the attribute "id", if the content is the xml Node with the name "artist" "Depeche Mode". {%fxmlartist~id=4711} returns with all contents of xml Nodes with the name "artist", if the value of the "id" attribute is "4711" . {%fxmlartist~id} like {%fxmlartist}: content of the nodes has priority when two criteria are missing. formats response values (only possible with standard commands so far; not for Commandserver Replays).
Examples of the use of the format options: The normal
Callup:
3.4. Formatting Options, Parsing Options, Status Port 59 nomos Documentation, Release 1.1.73
Minutes and seconds are initially computed. Then the minutes are displayed as two digits with left-hand zeroes, a ":" as separator is incorporated and finally the seconds added in two digits.
Callup:
If one merely wants to constrain left-hand zeroes for a value, one enters only the "seconds" formatter:
Callup:
When arguments are to be formatted (functions in principle exactly as above), it should be noted that the format string is appended behind the argument:
Callup:
Examples for the list output:
3.4. Formatting Options, Parsing Options, Status Port 60 nomos Documentation, Release 1.1.73
GETIDTITLE{%tmRemotePlaylist}=\*|OK match, one can make a clear assignment without running the risk that another query for generation of a new list is engaged. Typically even possible match conditions can be formatted into Event definitions alone in this way on the TAG names, namely, e.g., to {%tmRemotePlaylist}=\*|OK. The initiator (GETIDTITLE or GETIDALBUM) of the list remains entirely uninvolved herel. Thus can outputs (m..Remote), for example, be used several times. („%t“ has therefore no true function, but offers only a mark of differentiation through the separation sign „|“).
3.4. Formatting Options, Parsing Options, Status Port 61 nomos Documentation, Release 1.1.73
3.4.2 Conversion Options
Employment of code-converter options, which are able to recompute, transform or convert an argument. This is necessary, for example, in order to recompute values into HEX or to calculate other values, as the following examples should illustrate. The option, expressed within „{}“ is appended to the argument that is supposed to be recomputed. The following conversion options are currently available: conversions: %dec transforms a HEX value into the equivalent decimal number %ascii transforms a HEX sequence into ASCII characters %hex{Digits} transforms a decimal-system number or an ASCII sequence into a HEX number with {Digits} (for decimal numbers only). {Digits} is optional. Maximum of 8 digits possible %raw ensures that the normally implicit conversion of the matches into a decimal-system number is prevented for HEX Command- and Event Servers. The combination of {%raw,%ascii} ensures, for example, that a Hex sequence is expressed as an ASCII String. %pre{Text} inserts {Text} in front of the String. %suf{Text} appends {Text} after a String Calculation Operations: %-{Value} subtracts {Value} from Argument %+{Value} adds {Value} from Argument %/{Value} divides {Value} of Argument; where {Value} = „0“, no calculation results txt-command:%*{Value} multiplies {Value} of Argument The options can also be applied and consolidated repeatedly. To be noted here is that the computation of the various values is always based on the result from the previous option. to illustrate:
3.4. Formatting Options, Parsing Options, Status Port 62 nomos Documentation, Release 1.1.73
Complex:
3.4. Formatting Options, Parsing Options, Status Port 63 nomos Documentation, Release 1.1.73
3.4.3 Parsing Options (Match Conditions)
The nomos system generates various outputs at the different ports. These outputs can be generated au- tomatically or, for example, with MAPPINGS entries in the CommandServer definitions. Matches are case-insensitive. In order to extract specific information from the textual contents, the following Match Conditions/Parser Options are now used: Explanation of the Characters: \^ (\#) matches a character. For each „^“ , a character is anticipated. „#“ is also valid here, but should be avoided because it is employed also as argument. \* matches a chain of characters \? i generates a character \% ignores as many characters as desired \!{Digits}! skips {Digits}. {Digits} may have a maximum of 4 digits and has to be given in decimal system. Please note: With a HEX match, a Byte corresponds to two digits. Matches are case-insensitive. Please find further explanation and examples for employment in the Chapters: CommandServer and EventServer .
3.4. Formatting Options, Parsing Options, Status Port 64 nomos Documentation, Release 1.1.73
3.4.4 Arguments (transferral)
Character chains or values that were analyzed after the previously mentioned match conditions are „buffered“ and can be transferred with the following arguments Explanation of the characters: \# transfers the content of the match sequence (and the „Buffer“) \$ transfers the content of the match sequence (and the „Buffer“ as list) comple- menting \$: \& Index of lists only in combination with „\$“ \§ transfers the JOIN number (only mremote.csv) Further explanations and examples for employment are found in the Chapters: CommandServer and EventServer .
3.4. Formatting Options, Parsing Options, Status Port 65 nomos Documentation, Release 1.1.73
3.4.5 Automatically generated output (Statusport)
The nomos system generates automatic Broadcast output on pre-installed Port 1038. Generated in this way are automatic status and such information on individual applications as, e.g., the current sound volume or iTunes title currently playing. These outputs can, for example, be analyzed with the Eventserver or within the mremote interface and further actions can alo be triggered. The following data are automatically generated through the Broadcast Port: ITUNES:
GETPLAYERSTATE= PLAYING/STOPPED/PAUSED GETPLAYLIST= Name of the current playlist GETTITLE= Name of the title GETSTREAMTITLE= Name of the streaming title (IP radio station) GETARTIST= Name of the performer GETALBUM= Name of the album GETID= Title ID GETINDEX= Index of the title in the current playlist GETRATING= Rating categories (0-5) [REMOTE]:
GETINFO= PLAYING/STOPPED/PAUSED SHUFFLE= Shuffle status REPEAT= Repeat status ITLE= Name of the performer ALBUM= Name of the album GENRE= Title ID DVD:
GETDVDSTATE= PLAYING“/“STOPPED“/“PAUSED GETTITLE= Name of the title GETCHAPTER= Number of the current chapter
3.4. Formatting Options, Parsing Options, Status Port 66 nomos Documentation, Release 1.1.73
GETVOL= Sound volume TV:
GETCH= Current channel number GETCHNAME= Current name of the station GETPROGINFO= with the following content: Starting time of current broadcast program Ending time of current program Brief information on current program Long text of current program Starting time of next program Ending time of next program Brief information on next program Long text of next program GETVOL= Application’s sound volume GETTUNER= Name of the tuner that is currently in the foreground (only with several tuners present in the system) SYS:
GETVOL= with the following content: Audio output EXT/INT Sound volume VOL={0-100} Mute MUTE={ON/OFF} GETSS= State of the viewing screen-saver {ON/OFF} Follow-Me Status: „FMINFO=...|OK“ Transfer of callup parameter for the playing of a DVD on a remote system The following classes also generate Broadcast Status outputs. Their assigned explanations are found in the respective chapters. xPL (when valid (= defined in the .csv ) xpl-message received) HS (always, if something is being received) KNX (always, if the address in the .esf is defined) BAOS (if the datapoint had been defined in the .csv ) ZWAVE (Status changes of registered devices) HUE (Status changes of registered devices) SONOS (title information and status reports)
3.4. Formatting Options, Parsing Options, Status Port 67 nomos Documentation, Release 1.1.73
{CommandServer} (as defined under MAPPINGS )
3.4. Formatting Options, Parsing Options, Status Port 68 nomos Documentation, Release 1.1.73
3.5 Command Classes
The nomos system has the following internal command classes:
Class Description os x linux BROWSER Control of the integrated Internet browser (Safari) x DVD Control of the application for the DVD replay x ITUNES Control of the multimedia application iTunes x SLIDE Control of the integrated picture slideshow x SCRIPT Command class for management of local scripts x x SCRIPTLOAD Command class for loading scripts to the nomos system x x SYS System commands independent of applications x x(teil) TV Control of the TV application (EyeTV) x VLC Control of the VideoLAN Clients x UDP Dispatch of „free“ UDP datagrams x x TCP Dispatch of „free“ TCP packets x x Commands class for the display of free window contents WINDOW x (Text/Graphic/Browser) KNX KNX/IP - Support x x BAOS BAOS Object Server - Support x x HS GIRA Homeserver KO-Gateway Support x x TIMER Timer Support x x QUICKTIME Control of the multimedia application Quicktime x [dynamic] Control of Remote and Sonos classes x x
The limitations of the LINUX set of commands affect only the local control of the software applications, since they are only available on the Apple OS X system. The commands can be used, nevertheless, in order to carry out these functions on remote systems, as long as the nomos software is available there. For example, an iTunes or Safari Browser on a remote Apple Computer can therefore be accessed through a nomos Box. Refer here also to the Relay Funktion.
3.5. Command Classes 69 nomos Documentation, Release 1.1.73
3.6 Standard Command Set
The Standard Command Set is firmly integrated into the nomos system. With few exceptions, the com- mand set is compatible with all platforms. The command set can be expanded nearly at will through the CommandServer interface.
3.6.1 BROWSER
Command set for controlling the Safari Web Browser application (only OS X).
Command Argument Description ON - starts the browser OFF - ends the browser CLOSEAWIN - closes all browser windows CLOSEFWIN - closes the last browser window MINFWIN= {0} or {1} minimizes (1) or maximizes (0) the last window MINAWIN= {0} or {1} like MINFWIN, but for all windows URL= {URL} opens the given URL in a new window ZOOM= {0} or {1} enlarges (1) or reduces (0) the current window WFORMAT= {xmin,ymin,xmax, ymax} scales the current window to the given range SHOW - makes application visible HIDE - occults the application FRONT - brings the application to the front FULL or {XMAX, WINSIZE= YMAX} or {XMIN, changes the window size (origin lower left) YMIN,XMAX,YMAX} Explanation: FULL: strretches the window to the viewing screen resolution (as far as the application per- mits) XMAX,YMAX: centers the window with the expansion Xmax,Ymax on the screen XMIN,YMIN,XMAX,YMAX: positions the window with the expansion Xmax,Ymax and the origin Xmin,Ymin on the screen
3.6. Standard Command Set 70 nomos Documentation, Release 1.1.73
3.6.2 DVD
Command set for controlling the DVD-Player application (only OS X).
Command Argument Description ON - starts the DVD Player application OFF - ends the DVD Player application PLAY - plays the inserted DVD STOP - stops the DVD PAUSE - pauses the playing of the DVD FF - fast forward REW - fast rewind EJECT - ejects the DVD form the drive URL= {URL} opens the given URL FSON - activates full-screen mode FSOFF - deactivates full-screen mode MUTEON - turns off the tone MUTEOFF - turns on the tone SHOW - makes application visible HIDE - conceals the application FRONT - repositions the application to the front UPKEY - simulates the key stroke (Menu-Navigation) DNKEY - simulates the key stroke (Menu-Navigation) LEKEY - simulates the key stroke (Menu-Navigation) RIKEY - simulates the key stroke (Menu-Navigation) ENKEY - simulates the key stroke (Menu-Navigation) GETPTIME - reports the current playing time in seconds SETPTIME= {1...x} jumps to the given play time GETCTIME - delivers the entire play time in seconds GETCHAPTER - delivers the current chapter SETCHAPTER= {1...x} jumps to the given chapter GETALLCHAPTERS - delivers the total number of all chapters GETMEDIASTATE - delivers the media state of the DVD GETMENUSTATE - delivers the DVD menu state GETDVDSTATE - delivers the state of tghe DVD GETCONVIS - delivers the state of the controlling window SETCONVIS= {0} or {1} activates/deactivates the control window SETCONPOS= {1...x},{1...y} sets the position of the control window GETINFVIS - delivers the state of the information window SETINFVIS= {0} or {1} activates/deactivates the information window SETINFPOS= {1...x},{1...y} sets the position of the information window reads out the current title number of the inserted GETTITLE DVD SETTITLE= {1...x} jumps to the given title number GETDVDTITLE delivers the current DVD title SETVOL= {0...100} changes the sound volume of the DVD player
3.6. Standard Command Set 71 nomos Documentation, Release 1.1.73
Command Argument Description delivers the volume of the DVD application in GETVOL the range 0...100 FULL or {XMAX, FULL: stretches the window to the screen reso- WINSIZE= YMAX} or {XMIN, lution (as far as the application allows this) YMIN,XMAX,YMAX} XMAX,YMAX: centers the win- dow with the expansion Xmax,Ymax to the screen XMIN,YMIN,XMAX,YMAX: positions the window with the expansion Xmax,Ymax and the origin Xmin,Ymin on the screen
3.6. Standard Command Set 72 nomos Documentation, Release 1.1.73
3.6.3 ITUNES
Command set for controlling the iTunes application (only OS X).
Command Argument Description ADD# {Path} adds a file to the current playlist ADDIDTOPLAYLIST# {ID},{NAME} adds Title {ID} to the Playlist {NAME} CREATEPLAYLIST# {NAME} creates a new Playlist {NAME} {PL-Name} when no name is creates Playlist {PL-Name} with the content CREATEPLAYLIST FROM- given, list is named automati- of the results of the last search. {PL-Name} is LASTSEARCH# cally optional. DELETEPLAYLIST# {NAME} deletes Playlist {NAME} DISABLECF ends the iTunes Cover Flow starts the iTunes Cover Flow in the full-screen ENABLECF mode FF fast forward FRONT repositions the application to the front GETALBUM delivers the album of the current title comes back with a list of all albums (maximum GETALLALBUMS 250) comes back with a list of all performers (max. GETALLARTISTS 250) delivers all IDs in {Playlist} (maximum GETALLIDSOF PLAYLIST# {Playlist} 250) GETALLPLAYLISTS delivers a list of all available playlists GETALLTITLES comes back with a list of all titles (max. 250) GETARTIST identifies the performer for the current title GETCTIME gives the entire playing time in seconds GETID delivers the {ID} of the current title GETIDALBUM# {ID} delivers the album to the given {ID} GETIDARTIST# {ID} cites the interpreters for the given {ID} delivers the users’ assessment of the {ID} GETIDRATING# {ID} tracks, in a range of (0-5) matching the number of stars GETIDTITLE# {ID} delivers the title to the given {ID} delivers the index of the current title in the cur- GETINDEX rent playlist GETMUTE gives the Mute state GETPLAYERSTATE gives the state of the player GETPLAYLIST delivers the current playlist tells the number of playlists on hand (maximum GETPLAYLISTCOUNT 250) GETPTIME gives the current playing time in seconds delivers the users’ assessment of the current GETRATING tracks, rating range (0-5) matching number of stars gives back the current Repeat mode of the GETREPEAT playlist GETSHUFFLE gives back the current play mode of the playlists
3.6. Standard Command Set 73 nomos Documentation, Release 1.1.73
Command Argument Description GETSTREAMTITLE delivers the title of the current stream GETTITLE gives the current title GETVISSTATE delivers the state of visualization gives the sound volume of the current applica- GETVOL tion HIDE occults the application HIDEPLAYER occults the main window of iTunes MUTEOFF turns off the tone MUTEON turns on the tone NEXT jumps to the next title OFF ends the iTunes application ON starts the iTunes application PAUSE temporarily halts the current title PLAY plays the current title PLAYF# {Path} plays the file given in {Path} PLAYID# {ID} plays the Title {ID} plays the Playlist {Name}. When {Index} is PLAYPLAYLIST# {Name},{Index} also given, the replay in the playlist starts with this title. See also GETINDEX. PREV jumps to the previous title RESUME continues with replay REW fast rewind SEARCHALBUM# {Album} delivers all IDs, which belong to {Album} delivers a list of interpreters that appear in the SEARCHARTIST# {Searchstring} search string (Limit: 50) delivers a Track-ID List of titles that occur in SEARCHTITLE# {Searchstring} the {Searchstring} (Limit: 50) sets the rating of the iTunesTtitel {ID}, (0-5) SETIDRATING# {ID},{0...5} matched by number of stars SETPTIME# {1...x} jumps to a given play time sets the rating of the current iTunes titel (0-5), SETRATING# {0...5} matched by the number of stars SETREPEAT# {ONE/ALL/OFF} sets Repeat mode of the current playlist switches on or off the Mode Shuffle of the cur- SETSHUFFLE# {ON/OFF} rent playlist SETVISSTATE# „0“ or „1“ activates/deactivates visualization sets the system sound volume (iTunes) at 0- SETVOL# {0...100} 100% SHOW makes application visible SHOWPLAYER displays iTunes main window STOP stops the current title URL# {URL} opens the given URL (Streaming) WFORMAT# xmin,ymin,xmax,ymax scales the current window to the given range FULL o. {XMAX,YMAX} FULL or XMAX,YMAX oder WINSIZE# o. {XMIN,YMIN,XMAX, XMIN,YMIN,XMAX,YMAX YMAX}
3.6. Standard Command Set 74 nomos Documentation, Release 1.1.73
3.6.4 SLIDE
Command set for controlling the Slide Show of the iPhoto application (only OS X).
Command Argument Description ON - starts the iPhoto application OFF - ends the iPhoto application START - starts the slide show STOP - ends the slide show PAUSE - temporarily halts the slide show RESUME - resumes showing of slides PREV - jumps back to previous picture NEXT - skips ahead to next picture IMPORT= {Path} imports the pictures in the given path SHOW - makes application visible HIDE - conceals the application FRONT - brings the application forward GETALBUMLIST - gives a list of all albums SELALBUM= {Name.suffix} selects the album {Name.suffix} GETALBUM - delivers the name of the current album
3.6. Standard Command Set 75 nomos Documentation, Release 1.1.73
3.6.5 SCRIPT
Command set for processing scripts
Command Argument Description RUN= {Name.suffix} executes .myh -Script {Name.suffix} transfers one or more variable values to the ARG= {Value} script. (fills sequentially the above place-holder ARG) RUNAS= {Name.suffix} executes Apple Script {Name.suffix} RUNSS= {Name.suffix} executes Shell Script {Name.suffix} DELETE= {Name.suffix} deletes Script {Name.suffix} {Name.suffix} renames .myh Script {Name.suffix} as RENAME= ={Name_new.suffix} {Name_new.suffix} LIST - lists all .myh - scripts in the script folder LISTAS - lists all Apple scripts in the script folder LISTSS - lists all Shell scripts in the script folder SHOW= {Name.suffix} shows the content of Script {Name}
3.6. Standard Command Set 76 nomos Documentation, Release 1.1.73
3.6.6 SCRIPTLOAD
Expanded command set for processing Scripts. This command set used as a rule with software for writers or editors.
Command Argument Description Creating-new-Script {Name.myh}. A is docked; all subsequent classes and arguments NAME= {Name.suffix} define the content of the .myh Script until the Class-Terminator is read
3.6. Standard Command Set 77 nomos Documentation, Release 1.1.73
3.6.7 SYS
OSX Command Argument description only SETVOL= {0...100} x sets the system’s sound volume at 0-100% VOLUP= {0...100} x raises system volume by 0-100% VOLDN= {0...100} x lowers system volume by 0-100% MUTEON - x turns off system tone MUTEOFF - x turns on the system tone GETVOL - x delivers system’s sound volume GETSTATE - x delivers information on the application’s status UPKEY - x simulates the key stroke „Cursor up“ DNKEY - x simulates key stroke „Cursor down“ LEKEY - x simulates key stroke „Cursor left“ RIKEY - x simulates key stroke „Cursor right“ ENKEY - x simulates key stroke „Enter“ SPCKEY - x simulates key stroke „Space key“ TABKEY - x simulates key stroke „Tabulator“ PUSHUPKEY x simulates “hold” key depressed on „Cursor up“ PUSHDNKEY x simulates “hold” key depressed on „Cursor down“ PUSHLEKEY x simulates “hold”key depressed on „Cursor left“ PUSHRIKEY x simulates “hold” key depressed on „Cursor right“ SETMPOS= {0...x},{0...y} x sets mouse pointer at x,y {x,y} or HERE - simulates a mouse click on the position {0...x},{0...y} MCLICK= x x,y, without moving the mouse pointer. HERE clicks on or HERE the current position of the mouse pointer GETMPOS delivers the current coordinates of the mouse pointer activates the FrontRow Application (starting with OSX ENABLEFR - x 10.7 not longer available) deactivates the FrontRow Application (starting with DISABLEFR - x OSX 10.7 no longer available) ENABLESS - x activates the screen saver DISABLESS - x deactivates the screen saver ENABLEDB - x activates the dashboard DISABLEDB - x deactivates the dashboard SHOWDOCK - x shows the dock HIDEDOCK - x hides the dock HIDEALL - x puts all the applications in the background (Hide) HIDESTOPFRONT - x hides, stops and mutes the uppermost application OPEN= {Name.suffix} attempts to open the file {Name.suffix} SHUTDOWN - takes the system down RESTART - starts the system anew EJECT - x ejects the CD/DVD form the drive SLEEP - x suspends activity of the system HELLO - delivers information about nomos
3.6. Standard Command Set 78 nomos Documentation, Release 1.1.73
OSX Command Argument description only delivers information on the currently in- stalled license. Format of the answer: GETLICENSEINFO - {Validity}|{Commandserver}|{Event- Support}|{xPL-Support}|{BAOS-Support}| {Extended-Buttons-Support} delivers information on also present nomos and nomos GETSYSTEMLIST oem systems FADE= {1} or {0} x fades the screen image in or out. fades out the screen image and show the Text {text} MESSAGE= {„text“} x at the center of the screen. A „|“ in the text string causes the lines to advance. Absent from later versions. fades out the text shown with MESSAGE and displays MESSAGEOFF= x the desktop. Absent in later versions SAY= {Text} x transfers a text to the speech output RESTARTSERVICE Starts and resets the Daemon anew. Simulates key stroke [CMD]+{Keycode}. Important: The Apple keyboard code is anticipated, not the ASCII CMDKEY=# {Keycode} x Code! A corresponding table can be found in the at- tachment on documentation Simulates the key stroke [ALT]+[CMD]+{Keycode}. Important: The ALTCMDKEY= {Keycode} x Apple keyboard code is anticipated, not the ASCII Code! A corresponding table can be found in the attachment on documentation Simulates key stroke [CTRL]+[CMD]+{Keycode}. Important: The Apple keyboard code is anticipated, not CTRLCMDKEY# {Keycode} x the ASCII Code! A corresponding table can be found in the attachment on documentation Simulates key stroke SHIFTCMDKEY# {Keycode} x [SHIFT]+[CMD]+{Keycode} Simulates key stroke. Important: The Apple keyboard code is anticipated, not the ASCII Code! A correspond- KEY# {Keycode} x ing table can be found in the attachment on documenta- tion FMINIT - x Initializes the Follow-me status delivers the generated Follow-me string. (assumes a FMREAD - x previous, successful FMINIT.) leaves the Follow-me status. (assumes a successful FMEXIT - x FMINIT has preceded it.) breaks of the Follow-me and commences the return. FMABORT - x (assumes a successful FMINIT has preceded it.) delivers the current Follow-me status (TV,DVD,...) FMINFO - x (also present in Broadcast) internal command for initiating the read-in of the Ad- GETSRVLIST - dOn commands. After it is triggered, the menu is ex- panded with possibly available AddOn’s internal command for initiating the read-in of the xPL GETXPLLIST - commands. When triggered, the menu is expanded with possibly available AddOn’s GETFILENUMIN {Path} delivers the number of files present in {Path} FOLDER=
3.6. Standard Command Set 79 nomos Documentation, Release 1.1.73
OSX Command Argument description only GETFOLDERNUMIN {Path} delivers the number of indices present in {Path} FOLDER= GETFILESIN- {Path,Index=x, delivers a list of the files present in {Path}; index and FOLDER= Length=y} length are optional GETFOLDERSIN {Path,Index=x, delivers a list of the indices available in {Path} ; index FOLDER= Length=y} and length are optional {ButtonBar- OPENBUTTONS= x opens the button bar Name} {ButtonBar- CLOSEBUTTONS= x closes the button bar Name} SETBUTTON- {ButtonBar- sets the condition of a button when pressed (if a toggle x PUSHED= Name} button) SETBUTTON RE- {ButtonBar- sets the condition of a button when not being pressed (if x LEASED= Name} toggle button) CLOSECURRENT x closes the button bar that was currently open BUTTONS {Button- SETBUTTONLA- BarName}, x changes the label of the button briefly BEL= Index{1-10}, {LabelText} {Button- SETALTBUTTON LA- BarName}, x changes briefly the second label of a SWITCH button BEL= Index{1-10}, {LabelText} SHOWKEYBOARD x fades in the (keyboard) input assistance HIDEKEYBOARD x fades out the (keyboard) input help {Variable- GETVAR= reads the value of a system variable name} {Variable- changes the value of a system variable or imposes a SETVAR= name}, value {Value} {Variable- DELVAR= deletes a system variable name} Query and response for the values of all the available GETALLVARS variables blocks or enables the writing of variables to the data LOCKVARS= {ON/OFF} storage medium continues the current sequence until the Sysvar {Variablename} has accepted the Value {Value} . If {Timeout} (in ms) is also given, then it waits out {Variable- a {Timeout} - milliseconds. When this time runs out WAITVAR= name}, and the {Variable} never has {Value} , then the {Value}{,{Timeout}} rest of the sequence is NOT worked through but is dis- regarded. An "IF -> THEN" temporal dependency can be constructed with this. GETSERIAL- lists all serial ports on hand in the system PORTLIST lists all available Airports with names (“Computer” is GETSPEAKERLIST x the local tone of the Apple computer) - Airfoil GETSPEAKER- gives the current application or the active entrance of x SOURCE the sound that is just being streamed - Airfoil
3.6. Standard Command Set 80 nomos Documentation, Release 1.1.73
OSX Command Argument description only SETSPEAKER selects the application that is supposed to be streamed - {Appname} x SOURCE= Airfoil SETSPEAKER- selects the audio input through which to be streamed - {Input} x SOURCE DEVICE= Airfoil GETAUDIODEVICE x lists all available audio entrances - Airfoil LIST {Airport- GETSPEAKERVOL= x queries the volume of the selected Airport -Airfoil Name} {Airport- sets the absolute sound volume of the selected Airport; SETSPEAKERVOL= Name}, x if the name is omitted, the volume of all Airports (in- {0...100} cluding “Computer”) is set - Airfoil {Airport- raises the volume by a given value; name is optional SPEAKERVOLUP= Name}, x here - Airfoil {0...100} {Airport- lowers the volume; otherwise is like SPEAKERVOLUP SPEAKERVOLDN= Name}, x -Airfoil {0...100} {Airport- ENABLESPEAKER= x turns on the selected Airport - Airfoil Name} {Airport- DISABLESPEAKER= x turns off the selected Airport - Airfoil Name} ENABLEALL x turns on all Airports - Airfoil SPEAKERS DISABLEALL x turns off all Airports - Airfoil SPEAKERS GETSPEAKER- {Airport- delivers the state of the selected Airport: ENABLED / x STATE= Name} DISABLED / NOT_AVAILABLE - Airfoil {Num- SETDIGITALJOIN= mRemote Support - sets digital Join (0/1) ber},{Value} {Num- SETANALOGJOIN= mRemote Support - sets analog Join (0-65535) ber},{Value} {Num- SETSERIALJOIN= mRemote Support - sets serial Join (String) ber},{Value} sends a „Magic Packet“ for the given MAC address. {MAC- WAKEONLAN= The way in which the Mac address is written is irrel- Address} evant, as long as exactly 6 Octets are entered. GETAUDIOOUTPUT x lists all available audio output devices with names LIST GETAUDIOOUTPUT x delivers the current output device SETAUDIOOUTPUT= {Name} x switches to output device {Name}
{x,y,bpp},{x,x}, changes the viewing screen resolution, is supported SETDISPLAYMODE= x “0” or “NOR- {x,y,bpp}, {x,x}, "0" or "NORMAL" MAL” delivers the current system time in the KNX EIS3 for- GETTIME mat GETDATE delivers current system date in the KNX EIS3 format initializes the Counter {Name}.{Startvalue} and SETCOUNTER= {Name}{,Startvalue} {Increment} are optional. Default is 0 for {,Increment} {Startvalue} and 1 for {Increment}
3.6. Standard Command Set 81 nomos Documentation, Release 1.1.73
OSX Command Argument description only {Name} {,In- changes the size of the step of an existing Counter SETCOUNTERSTEP= crement} {Name}, 0 for {Increment} stops the counter delivers the current value of the Counter {Name}, with- GETCOUNTER= {Name} out changing it delivers the current value of all counters, without chang- GETALLCOUNTERS ing them GETREMOTEDE- delivers a list of all devices defined in the VICE LIST remote.csv GETVPNIP delivers the VPN IP, in case there is a VPN connection Starts {ON} /ends {OFF} the Pairing Mode for iTunes REMOTEPAIRING= {ON/OFF} and AppleTV in the remote class converts coloration values from the HSV color space {H(0-360),S(0- CONVERTHSV- into RGB. Value: H= color angle (0-360°) - S= satura- 255), V(0- TORGB# tion (0-255) - V= brightness (0-255), return = R,G,B in 255)} the value range 0-255 {R(0-255)}, CONVERTRG- converts RGB color values into the HSV color space. {G(0-255)}, BTOHSV# Values: R=(0-255) - G=(0-255) - B=(0-255) {B(0-255)} GETSONOSDE- delivers the class names of all device defined in the VICELIST sonos.csv GETXBMCDE- delivers the class names of all devices defined in the VICELIST xbmc.csv
Notice on SETDISPLAYMODE command: If the input cannot be converted (resolution and/or color depth), the next possible mode setting automatically kicks in (see Log). It is not possible to install modes that are not supported by the viewing screen. When mmh is ended, the screen is reset to its original mode.
3.6. Standard Command Set 82 nomos Documentation, Release 1.1.73
3.6.8 TV (Elgato eyeTV)
Command set for control of the eyeTV application (only OS X).
Command Argument Description SETVOL= {0...100} sets the system sound volume (TV) to 0-100% ON - starts the TV application OFF - ends the TV application PLAY - starts playback PAUSE - temporarily halts playback STOP - stops playback FF - fast forward REW - fast rewind SLOWF - slow motion forward SLOWR - slow motion backwards SKIPF - jumps forward SKIPR - jumps backward RECSTART - starts recording RECSTOP - ends recording CHUP - moves channel higher CHDN - moves the channel lower FSON - activates full-screen mode FSOFF - deactivates full-screen mode ZOOM= {1} or {0} enlarges (1) or shrinks (0) the current window WFORMAT= {xmin,ymin,xmax, ymax} scales the current window to the given range SHOW - makes the application visible HIDE - conceals the application FRONT - brings the application forward HIDECON - conceals the console window SHOWCON - shows the console window CH= {1...x} selects the channel GETCH - gives the current channel’s number GETCHNAME= {1...x} gives the channel name for the channel number MUTEON - switches the application’s tone off MUTEOFF - switches the application’s tone on ENABLEEGP - switches the EPG display on DISABLEEPG - switches the EPG display off delivers information on the current and the subsequent broadcast in the for- mat: {Start}|{Stop}|{title of GETPROGINFO the current broadcast}|{brief description}|{Start}|{Stop}|{title of the next broadcast}|{brief description} FULL/{XMAX,YMAX}/ Changes the size of the window (origin lower WINSIZE= {XMIN,YMIN,XMAX, left) YMAX} Explanation:
3.6. Standard Command Set 83 nomos Documentation, Release 1.1.73
Command Argument Description FULL: stretches the window to the screen resolution (as far as the application allows). XMAX,YMAX: centers the win- dow with the spread XMAX, YMAX on the screen. XMIN,YMIN,XMAX,YMAX: positions the window with the spread XMAX,YMAX and the origin XMIN,YMIN on the screen. ENABLEMENU displays the eyeTV-OSD Menu DISABLEMENU causes eyeTV-OSD Menu display to vanish ENABLEFSEPG brings up the full-screen EPG display DISABLEFSEPG occults the full-screen EPG display
3.6. Standard Command Set 84 nomos Documentation, Release 1.1.73
3.6.9 VLC
Command set for controlling the VLC application (OS X only).
Command Argument Description ON - activates the VideoLAN client OFF - deactivates the VideoLAN client URL= {URL} opens the File/Stream {URL} TPLAY - toggles the Play state STOP - stops the replay PREV - jumps back to the previous title NEXT - jumps ahead to the next title TFS - toggles the full-screen mode TMUTE - toggles the mute state VOLUP - raises the sound volume VOLDN - reduces the sound volume ZOOM= {1} or {0} enlarges (1) or shrinks (0) the current window WFORMAT= {xmin,ymin,xmax, ymax} scales the current window to the given range SHOW - makes the application visible HIDE - conceals the application FRONT - brings the application forward FULL/{XMAX,YMAX}/ WINSIZE= {XMIN,YMIN,XMAX, changes the window size (origin lower left) YMAX} Explanation: FULL: stretches the window to the screen resolution (as far as the application permits). XMAX,YMAX: centers on the viewing screen the window with the spread dimensions XMAX, YMAX. XMIN,YMIN,XMAX,YMAX: positions on the screen the window with the spread dimen- sions XMAX,YMAX and the point of origin XMIN,YMIN.
3.6. Standard Command Set 85 nomos Documentation, Release 1.1.73
3.6.10 UDP/TCP
The UDP/TCP command class offers the possibility to send as many protocols as desired to a device directly. When employing this option, no additional CommandServer is needed. The Class
Command Argument Description IP= {IP Address}x IP Address of the receiver in point notation PORT= {PORT} Port Address of the receiver establishes the mode of transmission (HEX MODE= {„HEX“,“ASCII“, “BIN“} only at the moment) optional, sets down the Timeout in seconds that TIME= {t} in seconds 0 - 3600 must be allowed to elapse when awaiting an an- swer data content of the UDP packet in the MODE DATA= {Data} format
Examples:
3.6. Standard Command Set 86 nomos Documentation, Release 1.1.73
3.6.11 WINDOW
When using the WINDOWS class (OS X only), the following should be considered: WINDOWS are generated from the SAFARI Browser in the Kiosk Mode (Frameless). Accordingly, all content that can be shown and controlled with the SAFARI Browser and its possible PlugIn’s can also be generated in this class. Also noteworthy is the „Schichtenmodel“ (LAYER). With this feature the WINDOWS are arranged by priority. Thus, one can direct whatever WINDOW is to be displayed to the „highest“ position. The Layer feature permits a choice between two priority groups with different priorities. This is defined from the LEVEL and with the SELECT command. When a LEVEL is not assigned, LEVEL=NORMAL is automatically assumed. The “space” in which the window occurs is chosen with Level. The selection of a pecking order of windows within this “space” can always be made with the help of the SELECT command. A window with SELECT=2 is therefore situated on top of a window with SELECT=1, if both possess the same Level. Accordingly, a window with SELECT=3 and LEVEL=HIGH comes atop(!) a window with SELECT=4 and LEVEL=NORMAL, although the ID of the upper window is lower. The LEVEL command can be employed any time (even for windows that are already displayed).
Command Argument Description X coordinate of the lower left corner of the win- XMIN# {0...} dow (mandatory), default=0 Y coordinate of the lower left corner of the win- YMIN# {0...} dow (mandatory) X coordinate of the upper right corner of the XMAX# {0...} window (mandatory), default=max Y coordinate of the upper right corner of the YMAX# {0...} window (mandatory) NORMAL (default): Window over all normal LEVEL= {LOW,NORMAL,HIGH} windows, below the screen saver. HIGH: over the screen saver LOW: Window under all win- dows, on the Desktop back- ground When XMIN and YMIN are missing in a win- dow configuration, the window is automatically Ext. use of X/YMIN/MAX displayed as centered. XMIN and XMAX are preallocated with Default values to the Banner representation in screen width SHADOW# „0“ or „1“ draw shadow? Transparency of the window (mandatory) - This command can also be used later on a window al- TRANS# {0.0...1.0} ready in use, e.g., for slowly fading in. default= 0.9 TITLE# {Text} Title of the window opens the URL in the window - no further com- URL# {Text} mands needed
3.6. Standard Command Set 87 nomos Documentation, Release 1.1.73
Command Argument Description displays a local or remote picture. The image can be given either as path (e.g. "/Users/MyH/..." ) or as URL ( IMAGE# {Text(URL/Path)} "http://....." ). The rules for dis- playing the picture apply analogously to the URL command centers TEXT in the window – further com- mands needed. A pipe character in the text to TEXT# {Text} be displayed generates a line feed to the appro- priate position. The currently preset typeface for all text displays is Helvetica Bold Oblique TEXTSIZE# {0.0...1.0} Text size in pixels (mandatory) TEXT_RED# {0.0...1.0} Red portion of text coloring- default: 1.0 TEXT_GREEN# {0.0...1.0} Green portion of text coloration - default: 1.0 TEXT_BLUE# {0.0...1.0} Blue portion of text coloration - default: 1.0 Transparent portion of text coloring - default: TEXT_TRANS# {0.0...1.0} 1.0 BACKGROUND_RED# {0.0...1.0} Red portion of the text background - default: 0 BACKGROUND_GREEN# {0.0...1.0} Green portion of text background - default: 0 BACKGROUND_BLUE# {0.0...1.0} Blue portion of the text background - default: 0 Transparent portion of the text background - de- BACKGROUND_TRANS# {0.0...1.0} fault: 1.0 slowly fades the current transparency of the FADETO# {0..1.0} window to the given value Conclusion of the configuration: generates the CREATE window on the viewing screen, if not open. (mandatory) RELEASE Removes the window from the screen MINIMIZE minimizes window in the dock MAXIMIZE reconstitutes window in the dock Window selection (1-10). All following com- mands apply always to the window previously chosen with SELECT . SELECT is optional SELECT# {1...10} (Default value: 1 ). The higher the value, the higher the priority. A WINDOW with SELECT=2 therefore lies over the WINDOW with SELECT=1 RELEASEALL closes all windows and sets SELECT on 1 RESET deletes all windows and sets all parameters to 0 EFFECTCREATE like CREATE, but with animation EFFECTRELEASE like RELEASE, but with animation repositions a window that was already opened MOVE to new coordinates, which have been set in the interim EFFECTMOVE like MOVE, but with additional animation
3.6. Standard Command Set 88 nomos Documentation, Release 1.1.73
3.6.12 BAOS
Set of commands for the use of the BAOS Class. This class is available only when the appropriate AddOn is engaged. Additionally, the corresponding definition file, ../misc/baos.csv , has to be defined for the AddOn. Explicit information on this application is found in the Chapter: KNX-IP Baos 770
Command Argument Description GETINFO delivers general information on BAOS GETDESCRIPTION= {DatapointNumber} delivers the settings of the selected datapoint GETDESCRIPTIONSTRING= {DatapointNumber} gives the description of the chosen datapoint gives the current value of the datapoint, includ- GETVALUE= {DatapointNumber} ing status-flags in HEX format {DatapointNumber}, sets the value of the selected datapoint in HEX, SETVALUE= {HEX/DEC/ASCII} Decimal or as ASCII {DatapointNumber}, { SENDVALUE= sends the value to the KNX bus HEX/DEC/ASCII} {DatapointNumber}, { SETANDSENDVALUE= combination of SETVALUE and SENDVALUE HEX/DEC/ASCII} {DatapointNumber}, READVALUE= reads the value from the KNX bus {HEX/DEC/ASCII} CLEARTRANSMISSION- {DatapointNumber}, deletes the connection state STATE= {HEX/DEC/ASCII} GETPARAMETERBYTE= {ParameterNr.} gives the Byte of the selected parameter
3.6. Standard Command Set 89 nomos Documentation, Release 1.1.73
3.6.13HS
Set of commands for working with the GIRA Homeserver KO-Gateway. This class is available only if the appropriate AddOn is engaged. The corresponding definition file, ../misc/hs.csv , must also be defined for the AddOn. Explicit information on the application can be found in the Chapter: GIRA Homeserver KO-Gateway Support
Command Argument Description SETVALUE# {address},{value} sets absolute {value} to {address}. SETVALUEREL# {address},{value} sets relative {value} to {address} . STEPUP# {address} raises the value to {address}. STEPDOWN# {address} lowers the value to {address}. LISTUP# {address} raises the value to {address}. LISTDOWN# {address} lowers the value to {address}.
3.6. Standard Command Set 90 nomos Documentation, Release 1.1.73
3.6.14 KNX
Set of commands for the use of the KNXnet/IP Protocol (Tunneling/Routing). This class is avail- able only when the appropriate AddOn is engaged. Additionally, the corresponding definition file ../misc/knx.csv has to be defined for the AddOn. Explicit information for this application is found in the Chapter: KNXnet/IP Protokoll Support
Command Argument Description SETVALUE= {Address},{Value} sets {Value} of {Address} GETVALUE= {Address} reads out a value of an {Address} Scans a list of addresses as defined in the SCAN= {Tablename} knx.csv As the previous, except all registered tables are BACKGROUNDSCAN= {Tablename},{ALL} scanned with {ALL} when the scan runs in the background
For the deployment of the KNX Class, the datapoints that are to be contacted have to be available in the definition file ../misc/knx.esf .
3.6. Standard Command Set 91 nomos Documentation, Release 1.1.73
3.6.15 STREAMER
Set of commands for steering the Streamer function for the eyeTV application (OS X only). This class is available only if the appropriate AddOn is engaged. Detailed information on the application can be found in the Chapter: eyeTV - Streaming Support
Command Argument Description starts the Streaming Engine and, if applicable, ON EyeTV (minimized) ends the Streaming Engine, EyeTV keeps run- OFF ning selects the source of Streaming. This command works analogously to the SELECT command in {ChannelNumber} or {Chan- CH# the windows class. All subsequent, channel- nelName} related commands pertain to last channel that was selected with CH delivers a list with all the channels available at GETCHLIST the moment along with their channel numbers. assigns a target to the source previously se- lected and immediately starts the UDP Stream- ing to the given address. An unmistak- ADDTARGET# {IP:Port} able Streaming ID is returned. Please trans- mit to the VLC of the client as URL udp://@:{Portnumber}. stops the streaming of the stream via IP:Port {IP:Port} or {Streaming-ID} or REMOVETARGET# or ID. If only the IP is given, all streams di- {IP} rected at this IP are stopped. REMOVEALLTARGETS stops all streams GETTARGETSFORIP# {IP} lists all streams directed to the IP {ChannelNumber} or {Chan- lists all IP addresses to which the channel GETTARGETSFORCH# nelName} is being streamed GETALLTARGETS lists everything that is being streamed
3.6. Standard Command Set 92 nomos Documentation, Release 1.1.73
3.6.16 TIMER
Set of commands for manipulation of the Timer/Calendar functions (Examples)
Command Argument Description {Name},{Timertype}, {Value generates a new timer and writes it into the CREATE# or Date string}, {Timeraction} timer.csv deletes an existing timer (and stops it in any DELETE# {Name} case) removes AUTOSTART from the timer.csv DISABLE# {Name} and stops the timer, in case it was running writes AUTOSTART behind an existing timer in ENABLE# {Name} the timer.csv and starts it, in case that had not yet happened LIST lists all active timers LISTALL lists all defined timers by their names RESET# {Name} sets the Timer {Name} back START# {Name}{Name} startet den Timer {Name} STOP# {Name}{Name} stoppt den Timer {Name} LIST# {Name} listet alle aktiven Timer {Name}
Timer definitions have to be entered in the File ../misc/timer.csv
3.6. Standard Command Set 93 nomos Documentation, Release 1.1.73
3.6.17 QUICKTIME
Set of commands for controlling the Quicktime application (OS X only)
[QUICKTIME]Command [QUICKTIME]Argument [QUICKTIME]Description CLOSE# {Window title} closes Window {Window title} CLOSEALL closes all windows FRONT brings forward the Quicktime application FSOFF# {Window title} activate the tone output FSON# {Window title} turns on the full-picture display GETALLWINDOWS delivers a list of all window titles present GETCTIME# {Window title} gives the entire playing time in seconds GETFRONTWINDOW gives the title of the first window GETPTIME# {Window title} gives the current playing time in seconds GETSPEED# {Window title} reports the current replay speed and direction GETVOL# {Window title} reports the sound volume of the replay HIDE conceals the Quicktime application MUTEOFF# {Window title} activate the tone output MUTEON# {Window title} turns off the tone output OFF ends Quicktime ON starts Quicktime PAUSE# {Window title} interrupts the replay PLAY# {Window title} plays the file in the window brings forward the Window {Window SETFRONTWINDOW# {Window title} title} (where there are multiple windows) SETPTIME# {Window title},x sets the playing time at {x} seconds SETSPEED# {Window title}, {{-}0.0 ... } controls the replay speed and direction: E.g.
SETSPEED=Matrix.m4v,-2.5 backwards at two-and-one-half times speed, or:
SETSPEED=Matrix.m4v,3.0 three time SETVOL# {Window title}, {0...100} sets the replay sound volume SHOW shows the Quicktime application STOP# {Window title} stops the replay URL# {Path}} opens a file in the path {Path} {Window title}, WINSIZE# sets the size (and position) of the window {x1,y1},{x2,y2}
Since Quicktime supports several windows at the same time, it is necessary with several of these commands to identify the targeted window by title (corresponds as a rule to the file name).
3.6. Standard Command Set 94 nomos Documentation, Release 1.1.73
3.6.18 Special Commands
Command Argument Description delays execution of the subsequent commands {t} in seconds (1 for 1sec, 0.5 DELAY= by x seconds. (without class!) Please use al- for 500ms, ...) ways outside a class sequence. The mmh sequence is routed through UDP to a remote nomos system and waits a max- imum of 3 seconds for an answer. Example:
Special commmand sets should not be used within an opened class. These commands should always be placed after a class is closed or before it is opened. Example:
3.6. Standard Command Set 95 nomos Documentation, Release 1.1.73
3.6.19 CEC
Set of commands for controlling CEC-capable devices. This c lass is available only when the appropriate AddOn has been engaged. No additional configuration file is necessary for the use of CEC. Please note that these commands are not supported by all devices.
Command Argument Description delivers a list of all devices connected to the GETDEVICELIST CEC bus; from this list one can select a {Device} for further commands. POWER_ON# {Device} turns {Device} on POWER_OFF# {Device} turns {Device} off TV_SOURCE_TUNER switches TV to the local Tuner TV_SOURCE_HDMI1 switches TV to HDMI 1 TV_SOURCE_HDMI2 switches TV to HDMI 2 TV_SOURCE_HDMI3 switches TV to HDMI 3 TV_SOURCE_HDMI4 switches TV to HDMI 4 TV_SOURCE_HDMI5 switches TV to HDMI 5 TV_SOURCE_HDMI6 switches TV to HDMI 6 displays {Text} on the TV (supported only by TV_SHOW_MESSAGE# {Text} a few devices) displays {Text} on the TV and waits for ac- TV_SHOW_POPUP# {Text} knowledgement (supported by only a few de- vices) AMP_VOLUME_UP raises the sound volume of the AMP AMP_VOLUME_DOWN lowers the sound volume of the AMP AMP_MUTE_ON switches off the tone of the AMP AMP_MUTE_OFF switches on the tone of the AMP manual setting of the address of the CEC SETPHYSICALADDRESS# {Address} adapter Button Commands BUTTON_SELECT# {Device} Function according to device documentation BUTTON_UP# {Device} Function according to device documentation BUTTON_UP# {Device} Function according to device documentation BUTTON_LEFT# {Device} Function according to device documentation BUTTON_RIGHT# {Device} Function according to device documentation BUTTON_RIGHT_UP# {Device} Function according to device documentation BUTTON_RIGHT_DOWN# {Device} Function according to device documentation BUTTON_LEFT_UP# {Device} Function according to device documentation BUTTON_LEFT_DOWN# {Device} Function according to device documentation BUTTON_ROOT_MENU# {Device} Function according to device documentation BUTTON_SETUP_MENU# {Device} Function according to device documentation BUTTON_CONTENTS {Device} Function according to device documentation _MENU# BUTTON_FAVORITE {Device} Function according to device documentation _MENU# BUTTON_EXIT# {Device} Function according to device documentation BUTTON_NUMBER0# {Device} Function according to device documentation
3.6. Standard Command Set 96 nomos Documentation, Release 1.1.73
Command Argument Description BUTTON_NUMBER1# {Device} Function according to device documentation UTTON_NUMBER2# {Device} Function according to device documentation BUTTON_NUMBER3# {Device} Function according to device documentation BUTTON_NUMBER4# {Device} Function according to device documentation BUTTON_NUMBER5# {Device} Function according to device documentation BUTTON_NUMBER6# {Device} Function according to device documentation BUTTON_NUMBER7# {Device} Function according to device documentation BUTTON_NUMBER8# {Device} Function according to device documentation BUTTON_NUMBER9# {Device} Function according to device documentation BUTTON_DOT# {Device} Function according to device documentation BUTTON_ENTER# {Device} Function according to device documentation BUTTON_CLEAR# {Device} Function according to device documentation BUTTON_NEXT _FA- {Device} Function according to device documentation VORITE# BUTTON_CHANNEL_UP# {Device} Function according to device documentation BUTTON_CHANNEL {Device} Function according to device documentation _DOWN# BUTTON_PREVIOUS {Device} Function according to device documentation _CHANNEL# BUTTON_SOUND_SELECT# {Device} Function according to device documentation BUTTON_SOUND_SELECT# {Device} Function according to device documentation BUTTON_DISPLAY _IN- {Device} Function according to device documentation FORMATION# BUTTON_HELP# {Device} Function according to device documentation BUTTON_PAGE_UP# {Device} Function according to device documentation BUTTON_PAGE_DOWN# {Device} Function according to device documentation BUTTON_POWER# {Device} Function according to device documentation BUTTON_VOLUME_UP# {Device} Function according to device documentation BUTTON_VOLUME {Device} Function according to device documentation _DOWN# BUTTON_MUTE# {Device} Function according to device documentation BUTTON_PLAY# {Device} Function according to device documentation BUTTON_STOP# {Device} Function according to device documentation BUTTON_PAUSE# {Device} Function according to device documentation BUTTON_RECORD# {Device} Function according to device documentation BUTTON_REWIND# {Device} Function according to device documentation BUTTON_FAST _FOR- {Device} Function according to device documentation WARD# BUTTON_EJECT# {Device} Function according to device documentation BUTTON_FORWARD# {Device} Function according to device documentation BUTTON_BACKWARD# {Device} Function according to device documentation BUTTON_STOP_RECORD# {Device} Function according to device documentation BUTTON_PAUSE_RECORD# {Device} Function according to device documentation BUTTON_ANGLE# {Device} Function according to device documentation BUTTON_SUB_PICTURE# {Device} Function according to device documentation
3.6. Standard Command Set 97 nomos Documentation, Release 1.1.73
Command Argument Description BUTTON_VIDEO_ON _DE- {Device} Function according to device documentation MAND# BUTTON_ELECTRONIC {Device} Function according to device documentation _PROGRAM_GUIDE# BUTTON_TIMER _PRO- {Device} Function according to device documentation GRAMMING# BUTTON_INITIAL _CON- {Device} Function according to device documentation FIGURATION# BUTTON_PLAY _FUNC- {Device} Function according to device documentation TION# BUTTON_PAUSE {Device} Function according to device documentation _PLAY_FUNCTION# BUTTON_RECORD _FUNC- {Device} Function according to device documentation TION# BUTTON_PAUSE {Device} Function according to device documentation _RECORD_FUNCTION# BUTTON_STOP _FUNC- {Device} Function according to device documentation TION# BUTTON_MUTE _FUNC- {Device} Function according to device documentation TION# BUTTON_RESTORE _VOL- {Device} Function according to device documentation UME_FUNCTION# BUTTON_TUNE _FUNC- {Device} Function according to device documentation TION# BUTTON_SELECT_MEDIA {Device} Function according to device documentation _FUNCTION# BUTTON_SELECT_AV _IN- {Device} Function according to device documentation PUT_FUNCTION# BUTTON_SELECT_AUDIO {Device} Function according to device documentation _INPUT_FUNCTION# BUTTON_POWER_TOGGLE {Device} Function according to device documentation _FUNCTION# BUTTON_POWER_OFF {Device} Function according to device documentation _FUNCTION# BUTTON_POWER_ON {Device} Function according to device documentation _FUNCTION# BUTTON_F1_BLUE# {Device} Function according to device documentation BUTTON_F2_RED# {Device} Function according to device documentation BUTTON_F3_GREEN# {Device} Function according to device documentation BUTTON_F4_YELLOW# {Device} Function according to device documentation BUTTON_F5# {Device} Function according to device documentation BUTTON_DATA# {Device} Function according to device documentation BUTTON_AN_RETURN# {Device} Function according to device documentation BUTTON_AN_CHANNELS {Device} Function according to device documentation _LIST# BUTTON_MAX# {Device} Function according to device documentation
3.6. Standard Command Set 98 nomos Documentation, Release 1.1.73
3.6.20 Z-Wave
Command set for control of registered Z Wave components
Command Argument Description General sets the zwave Controller to the delivery condi- RESET tion and deletes all devices that have been read in starts/ends the Include Mode (inclusion of de- INCLUDE# {ON/OFF} vices) starts/stops the Exclude Modes (removal of de- EXCLUDE# {ON/OFF} vcies) removes a device with “Force” override (e.g., REMOVE# {Node} when the device is defective and can no longer be excluded) DUMPDEVICES reports all read-in devices in the log interviews a device again (takes place automat- INTERVIEW# {Node} ically with Include) takes on another zwave-XML from the Library LOADCONFIG# {Node},{zwaveXML} for the device {Node} stores on the CF card the current condition of SAVE the zwave network updates the Z-Wave network topology, in case UPDATENETWORK Z-Wave nodes were relocalized or the locations were changed. RESETALARM {Node} resets all Alarm reports for the device {Node} Device Configuration starts the zwave stack in the configuration mode (no zwave.csv required), valid CONFMODE# {Port} values for {Port}: /dev/ttyS1, /dev/ttyUSB0, AUTO sets the configuration option {ConfOpt} {Node}, {ConfOpt}, {Conf- CONFIGURE# of the device {Node} to {ConfValue} , Value} {ConfOpt} is a value from 0 to 255 delivers the configuration values of the device GETCONFIGURATION# {Node} {Node} Device Association delivers all Association Groups of the device GETASSOCIATIONS# {Node} {Node} and their content includes the device {AddNode} of the Associ- ADDASSOCIATION# {Node},{Group}, {AddNode} ation Group {Group} in the device {Node} ; {Group} is an Index removes the device {RemoveNode} from the {Node},{Group}, {RemoveN- REMOVEASSOCIATION# Association Group {Group} on the device ode} {Node} Wakeup Handling GETWAKEUPINTERVAL provides for the device {Node} a valid range {Node} RANGE# of values for the Wakeup (in seconds) delivers (in seconds) the currently set Wakeup GETWAKEUPINTERVAL# {Node} value for {Node} SETWAKEUPINTERVAL# {Node} sets the Wakeup value (in seconds) for {Node}
3.6. Standard Command Set 99 nomos Documentation, Release 1.1.73
Command Argument Description Commands switches on or off the switch {Node}, {Value} can be: ON/OFF,0/1,YES/NO. {Node}, [{Instanz/CH}], When [{Instanz/CH}] is used, other pos- SETSWITCH# {Value} sible instances (e.g., multiple channel switch) are accessible. When only {Node} is used, a list of all Instances of the device is reported. GETSWITCH# {Node} provides the status of the switch {Node} sets the dimmer {Node} to the value {Node}, [{Instanz/CH}], {Value} or switches {Node} on or off; SETLEVEL# {Value} {Value} can be: 0-99 , ON/OFF , YES/NO . Otherwise as SETSWITCH# GETLEVEL# {Node} provides the value of {Node} delivers the supported modes of the thermostat GETTHERMOSTATMODES# {Node} {Node} SETTHERMOSTATMODE# {Node},{Mode} switches the Thermostat {Node} to {Mode} GETTHERMOSTATSET delivers the setting points of all modes of the {Node} POINTS# Thermostat {Node} SETTHERMOSTATSET changes the setting point of the thermostat {Node},{Mode},{Value} POINT# {Node} in {Mode} to {Value} sets the metering value run up on the device RESETMETER# {Node} {Node} to 0
3.6. Standard Command Set 100 nomos Documentation, Release 1.1.73
3.6.21 Philips HUE
Command set for the control of registered HUE components
Command Argument Description GETALLLIGHTS delivers a list of names of all the affiliated lights delivers a list of the IDs of all the affiliated GETALLLIGHTIDS lights RENAME# {Light},{Name} renames the {Light} as {Name} POWER_ON# {Light} turns {Light} on POWER_OFF# {Light} turns {Light} off changes the brightness of {Light} to SETBRIGHTNESS# {Light},{Value} {Value} - {‘Value} may be 0 to 255 changes the color tone of {Light} to SETHUE# {Light},{Value} {Value} - {Value} may be 0 to 65,535 changes the brightness of {Light} to SETSATURATION# {Light},{Value} {Value} - {‘Value} may be 0 to 255 changes the color temperature of {Light} to {Value} - {Value} depends upon the tar- SETCOLORTEMP# {Light},{Value} geted light and may at the moment be 153 - 500 (6500K - 2000K) carries out on {Light} a Color Loop or ends SETEFFECT# {Light}, COLORLOOP/NONE same carries out on {Light} a (SELECT) or several {Light},SELECT/ LSE- SETALERT# (LSELECT - for 30 seconds) “Breathe-Cycle” , LECT/NONE or it ends these (NONE) creates a new group with the Name {group} {group}, {light1}, {light2},..., CREATEGROUP and containing the Lamps {light1}, {lightx} {light2}... DELETEGROUP {group} deletes the Group {group} gives all the groups configued in the HUE GETALLGROUPS Bridge delivers a list of all the lamps assigned to the GETGROUPLIGHTS {group} Group {group}
3.6. Standard Command Set 101 nomos Documentation, Release 1.1.73
3.6.22 DEVICE (nomos App Command Class)
Command set for the DEVICE control (nomos APP)
Command Argument Description SETLANGUAGE# {Lang-Setting} selects a language for the speech output SETVOICE# {Voice} selects a voice for the speech output transmits {Text} to the device from which the ANSWER# {Text} last speech input came transmits {Text} to all devices, or to SAY# {Text},{Device} {Device} displays an instructional text on all devices, or NOTIFY# {Text},{Device} on {Device} displays an Alarm text on all devices, or on ALERT# {Text},{Device} {Device} loads anew the GUI on all devices, or to RELOAD# {Device} {Device} jumps back from the GUI into the System- RETURN# {Device} Selection menu on all devices, or {Device} switches the Screensaver OFF or after {Value} seconds on. The minimum time that SCREENSAVER# OFF/0/{Value} can be set is 2s. If a value or zero, {Value} 0 , is entered, the function behaves like OFF generates a Screensaver-Ticker {ID} with SETTICKERCONTENT {ID},{Content} [,{Value}] the description {Content} and the value {Value}. {Value} is optional REMOVETICKERCONTENT {ID} removes the Ticker {ID} displays the Ticker {ID} if the SHOWTICKERCONTENT {ID} SCREENSAVER is active
3.6. Standard Command Set 102 nomos Documentation, Release 1.1.73
3.7 Dynamic Classes
Dynamic class applies to special types of devices that come with a predefined set of commands. Currently, the nomos system in this field supports the REMOTE command set for the AppleTV as well as a rudimentary control of iTunes. The SONOS music players are also supported. It is important to note when using the remote class that malfunctions may sometimes occur after a software update (iTunes Version/ AppleTV Firmware). In such cases we strive to correct quickly. An improvement can only be made when this is still possible or when the manufacturer of the affected devices allows for this possibility. The nomos system AG makes no guarantee pertaining to legal claims arising from this characteristic!
3.7. Dynamic Classes 103 nomos Documentation, Release 1.1.73
3.7.1 Remote (iTunes/AppleTV)
Command set for the control of Apple Remote-compatible devices/software. This class is available only when the appropriate AddOn is also engaged. Additionally, the corresponding definitions file ../misc/remote.csv has to be defined for the AddOn. Detailed information for the application is found in the Chapter: Apple Remote Support
Command Argument Description delivers information on the current Player Sta- GETINFO tus NEXT jumps to the next title PREV jumps to the previous title PAUSE makes the current title pause PLAY plays the current title TOGGLEPLAY toggles between PLAY and PAUSE STOP stops the current title switches the Shuffle Mode of the current SETSHUFFLE# {ON/OFF} Playlist on or off SETREPEAT# {ONE/ALL/OFF} sets the Repeat Mode of the current Playlist SETPTIME# {1...x} jumps to the given playing time GETCTIME delivers the total play time in seconds GETPTIME reports the current playing time in seconds BUTTON_UP simulates a key stroke of the AppleRemote BUTTON_DOWN simulates a key stroke of the AppleRemote BUTTON_LEFT simulates a key stroke of the AppleRemote BUTTON_RIGHT simulates a key stroke of the AppleRemote BUTTON_SELECT simulates a key stroke of the AppleRemote simulates a key stroke of the AppleRemote BUTTON_SELECTLONG (Context Menu) BUTTON_MENU simulates a key stroke of the AppleRemote Expanded set of commands, not for connection - extended commands - through Home Sharing ADDIDTOQUEUE# {ID} attaches the ID x to the Up-Next-Queue ADDTITLETOQUEUE# {Name} attaches Title x to the Up-Next-Queue ADDARTISTTOQUEUE# {Name} attaches Performer x to the Up-Next-Queue ADDALBUMTOQUEUE# {Name} attaches Album x to the Up-Next-Queue CLEARQUEUE erases Up-Next Queue DISABLEALLSPEAKERS turns off all audio output devices DISABLESPEAKER# {Speakername} turns {Speakername} off ENABLEALLSPEAKERS turns on all audio output devices ENABLESPEAKER# {Speakername} turns {Speakername} on GETALLALBUMS provides a list of all albums GETALLARTISTS provides a list of all performers GETALLIDSOFPLAYLIST# {Playlist} delivers all IDs in {Playlist} (max. 250) GETALLTITLESOFPLAY {Playlist} gives all titles in {Playliste} (max. 250) LIST# GETALLARTISTSOFPLAY gives all performers in {Playliste} (max. {Playlist} LIST# 250)
3.7. Dynamic Classes 104 nomos Documentation, Release 1.1.73
Command Argument Description GETALLALBUMSOFPLAY {Playlist} lists all albums in {Playliste} (max. 250) LIST# GETALLPLAYLISTS delivers a list of all the Playlists on hand GETIDALBUM# {ID} lists the album with the assigned {ID} GETIDARTIST# {ID} lists the performers on the specified {ID} GETIDTITLE# {ID} gives the title with the given {ID} furnishes a list of all recognized audio output GETSPEAKERLIST devices gives the status (ON or OFF) of GETSPEAKERSTATE# {Speakername} {Speakername} gives the volume of an Airtunes loudspeaker GETSPEAKERVOL# {Name} with reference to the Master Volume gives the current sound volume of the applica- GETVOL tion PLAYID# {ID} plays the title {ID} PLAYPLAYLIST# {Name} plays the Playlist {Name} SEARCHALBUM# {Album} lists all IDs, which belong to {Album} reports a list of the performers, who are in- SEARCHARTIST# {search string} cluded in the search string (Limit: 50) delivers a Track-ID list of the titles, which con- SEARCHTITLE# {search string} form to the search string (Limit: 50) sets the sound volume of an Airtunes loud- SETSPEAKERVOL# {Name}, {Value 0-100} speaker with reference to the Master Volume SETVOL# {0...100} sets the volume, 0 to 100%
There are corresponding SYS commands for this:
Command Argument Description gives a list of all devices defined in the GETREMOTEDEVICELIST remote.csv starts {ON} /ends {OFF} the Pairing Mode for REMOTEPAIRING# {ON}/{OFF} iTunes and AppleTV in the remote class
3.7. Dynamic Classes 105 nomos Documentation, Release 1.1.73
3.7.2 Sonos
Set of commands for controlling SONOS Streaming Players. This class is available only when an appropriate AddOn is also engaged. In addition, the corresponding definitions file ../misc/sonos.csv has to be defined for the AddOn . Detailed information for the application may be found in the Chapter: SONOS Streaming Player Support
Command Argument Description PLAY plays the current title PAUSE makes the current title pause STOP stops the current title NEXT jumps to the next title PREV jumps back to the previous title
JUMPTOINDEX# {1...x} jumps to the x title in the queue gives the current sound volume of the applica- GETVOL tion SETVOL# {0...100} sets the volume, 0 to 100% SETBALANCE# {-100...0...100} sets the balance (-100) left - (+100) right GETBALANCE delivers current balance MUTEON muting switched ON MUTEOFF muting switched OFF LOUDNESSON Volume ON LOUDNESSOFF volume OFF SETTREBLE# {-10...0...10} EQ sets the treble SETBASS# {-10...0...10} EQ sets the bass SETPTIME# {seconds} jumps to the given playing time GETPTIME reports the current playing time in seconds GETCTIME delivers the total play time in seconds switches the Repeat Mode of the current playlist SETREPEAT# {ON/OFF,1/0,YES/NO} on or off switches the Random Mode of the current SETSHUFFLE# {ON/OFF,1/0,YES/NO} playlist on or off switches Cross-fade Mode of the current SETCROSSFADE# {ON/OFF,1/0,YES/NO} playlist on or off. GETALLPLAYLISTS delives a list of all playlists on hand erases the queue and immediately plays Playlist PLAYPLAYLIST# {Name} {Name} includes Album {Name} at the end of the ENQUEUEPLAYLIST# {Name} queue GETALLTITLESOFPLAY {Name} reports all titles on the Playlist {Name} LIST# GETALLARTISTSOFPLAY {Name} gives all performers on the Playlist {Name} LIST# GETALLALBUMSOFPLAY {Name} lists all albums on the Playlist {Name} LIST# GETALLALBUMS gives a list of all albums erases the queue and immediately plays Playlist PLAYALBUM# {Name} {Name}
3.7. Dynamic Classes 106 nomos Documentation, Release 1.1.73
Command Argument Description includes Album {Name} at the end of the ENQUEUEALBUM# {Name} queue GETALLTITLESOF ALBUM# {Name} gives all titles of the Album {Name} GETALLARTISTSOF AL- {Name} gives all performers in Album {Name} BUM# GETALLFAVORITES gives all favorites PLAYFAVORITE# {Name} plays the Favorite {Name} immediately GETALLTITLESOFQUEUE gives all titles in the queue GETALLARTISTSOFQUEUE gives all performers in the queue GETALLALBUMSOFQUEUE lists all the albums in the queue CLEARQUEUE deletes content of queue LEDON turns on the LED of the Sonos device LEDOFF turns off the LED of the Sonos device includes an additional Sonos device with the Class Name {Name} as a replay device (source ADDMEMBER# {Name} synchronizing), “x” has to be defined in the sonos.csv. REMOVEMEMBER# {Name} removes the Sonos device with that class name streams the signal from the Line-In Port to the STARTLINEINSTREAM# {Name} device with the class Name “x”; “x” has to be defined in the sonos.csv STOPLINEINSTREAM# {Name} stops the stream to Device “x” PLAYLINEIN plays the signal locally from the Line-In Port -15 - (+)15 - attunes the sensitivity of the Line- SETLINEINLEVEL# {-15 - 15} In Port to the analoge source delivers the selected sensitivity of the Line-In GETLINEINLEVEL Port
3.7. Dynamic Classes 107 nomos Documentation, Release 1.1.73
3.7.3 XBMC
Set of commands for controlling XBMC Clients. This class is available only if the appropriate AddOn is engaged. The definition file ../misc/ xbmc.csv corresponding to the AddOn also has to be present. Detailed information on the application can be found in the Chapter: SONOS Streaming Player Support
Command Argument Description SHUTDOWN shuts system down SUSPEND suspends running of system HIBERNATE activates hibernate mode REBOOT reboots system PLAYFILE# {File} or {URL} plays the given source forthwith PLAY plays the current title PAUSE temporarily interrupts replay STOP stops the replay NEXT jumps ahead to next title PREV jumps back to previous title FASTFORWARD fast forward REWIND fast rewind BUTTON_UP simulates key stroke „Cursor up“ BUTTON_DOWN simulates key stroke „Cursor down“ BUTTON_LEFT simulates key stroke „Cursor left“ BUTTON_RIGHT simulates key stroke „Cursor right“ BUTTON_SELECT simulates key stroke „Enter“ BUTTON_BACK simulates key stroke „Backwards“ BUTTON_HOME simulates key stroke „Home“ BUTTON_INFO simulates key stroke „Info“ BUTTON_MENU simulates the key stroke „Menu“ SETVOL# {0-100} Sets the sound volume to 0-100% GETVOL queries the current sound volume SETREPEAT# {ALL/ONE/ON/OFF} switches the repeat mode of the current title SETSHUFFLE# switches the random mode of the current title MUTEON muting ON MUTEOFF muting OFF GETMUTE queries the muting state SETPTIME# {Seconds} jumps to the given play time GETPTIME delivers the current play time in seconds GETCTIME gives the entire playing time in seconds SHOWMESSAGE# {Message} displays {Message} on the viewing screen — Movies — delivers a list of all the movie IDs available in GETALLMOVIEIDS the library PLAYMOVIEID# {Movie-ID} plays {Movie-ID} GETMOVIEIDTITLE# {Movie-ID} gives the title of the {Movie-ID} — PVR Channels — GETALLCHANNELIDS delivers a list of all Channel IDs
3.7. Dynamic Classes 108 nomos Documentation, Release 1.1.73
Command Argument Description PLAYCHANNELID# {Channel-ID} switches to the station with {Channel-ID} delivers the name of the broadcasting station of GETCHANNELIDNAME# {Channel-ID} {Channel-ID} delivers status information (identical to Broad- GETINFO cast) — Performers — GETALLARTISTIDS gives a list of artists’ IDs for all performers GETARTISTIDNAME# {Artist-ID} lists the performers for the {Artist-ID} PLAYARTISTID# {Artist-ID} plays all songs from {Artist-ID} GETSONGIDSOFARTISTID# {Artist-ID} lists song IDs for all songs by {Artist-ID} — Albums — GETALLALBUMIDS gives a list of album IDs of all albums lists the name of the album for the GETALBUMIDNAME# {Album-ID} {Album-ID} PLAYALBUMID# {Album-ID} plays the album with the {Album-ID} lists song IDs of all songs in the album GETSONGIDSOFALBUMID# {Album-ID} {Album-ID} — Songs — GETALLSONGIDS gives a list of song IDs of all songs GETSONGIDTITLE# {Song-ID} gives the title of {Song-ID} GETSONGIDARTIST# {Song-ID} gives the performer of {Song-ID} GETSONGIDALBUM# {Song-ID} delivers the album with {Song-ID} PLAYSONGID# {Song-ID} plays {Song-ID} immediately — Audio Playlist — GETSONGIDSOFAUDIO delivers a list of all {Song-IDs} in the audio PLAYLIST playlist (equivalent of the audio queue) PLAYAUDIOPLAYLIST plays the audio playlist CLEARAUDIOPLAYLIST deletes the audio playlist ADDSONGIDTOAUDIO {Song-ID} adds {Song-ID} to the audio playlist PLAYLIST# ADDALBUMIDTOAUDIO adds all titles of {Album-ID} to the audio {Album-ID} PLAYLIST# playlist ADDARTISTIDTOAUDIO adds all titles of {Artist-ID} to the audio {Artist-ID} PLAYLIST# playlist — Video Playlist — GETMOVIEIDSOFVIDEO delivers a list of all {Movie-IDs} in the video PLAYLIST playlist (equivalent of the video queue) PLAYVIDEOPLAYLIST plays the video playlist CLEARVIDEOPLAYLIST deletes the video playlist ADDMOVIEIDTOVIDEO adds {Movie-ID} to the video playlist PLAYLIST — Search Functions — seeks {Title} and delivers a Song-ID list of SEARCHTITLE# {Titel} all those found (initial letters suffice) seeks {Performer} and delivers a SEARCHARTIST# {Performer} performer-ID list of all those found (ini- tial letters suffice)
3.7. Dynamic Classes 109 nomos Documentation, Release 1.1.73
Command Argument Description seeks {Album} and delivers an Album-ID list SEARCHALBUM# {Album} of all those found (initial letter suffices) seeks {Film Title} and delivers a Movie- SEARCHMOVIE# {Film Title} ID list of all those found (initial letters suffice)
3.7. Dynamic Classes 110 nomos Documentation, Release 1.1.73
3.8 Keyboard Layout (special keys)
For processing the definition tables described in the following material, characters that are not found in the keyboard layout of the Mac System are sometimes needed. The following table provides a printout of the important characters, those that will be needed and how to obtain them:
@ MacOS = [ALT]+L | MacOS = [ALT]+7 [ MacOS = [ALT]+5 ] MacOS = [ALT]+6 { MacOS = [ALT]+8 } MacOS = [ALT]+9 \ MacOS = [ALT]+[SHIFT]+7 - @ WinOS = [CTRL]+[ALT]+Q | WinOS = [CTRL]+[ALT]+< [ WinOS = [CTRL]+[ALT]+8 ] WinOS = [CTRL]+[ALT]+9 { WinOS = [CTRL]+[ALT]+7 } WinOS = [CTRL]+[ALT]+0 \ WinOS = [CTRL]+[ALT]+ß
The Apple Keyboard makes a distinction on the keyboard between the [ALT] key left and the [ALT] key right alongside the space bar. This means that one can dispense with hitting the [CTRL] key as well when using the righthand [ALT] key under WINDOW.
3.8. Keyboard Layout (special keys) 111 CHAPTER 4
Expanded Functions (AddOn’s)
CommandServer Extension GIRA Homserver KO-Gateway, KNXnet/IP Support Event Servers eyeTV - Streaming Support Apple Remote Support Sonos Streaming Player Support Z-Wave Support Philips HUE Support mremote Support (commandFusion iViewer support)
The nomos system is constructed with modules and can be expanded nearly at will to incorporate functions. The system’s own protocol interfaces can also be defined and incorporated in this way with so-called Com- mandServer Add-on’s. More complex interfaces, such as those for KNX, Z-Wave, SONOS or the Control System Protocol of Commandfusion, are available as ready-made modules. Please note that appropriate licensing is also required as a rule for the use of those modules. All these modules expand the scope of commands of the nomos system accordingly and make possible the employment of the nomos system as an overarching control center or as a multi-protocol gateway, enabling all collaborating systems to communicate with one another by means of a uniform, rudimentary ASCII protocol. All these modules and interfaces are made transparent, as described later, and can be changed, tailored and also expanded as desired by the user. The descriptions of the definition files that will follow are prepared in the .csv format. Strict adherence should be made to the respective configuration options for the various files. The semicolon is the correct sign for separating the respective functions within a line. The end of each line of definition should also conclude with a semicolon. Take care that the end of the line is then terminated with a Line Feed or Return. It is recommended that the files be adequately documented. A commentary text at the start of the line or at the end of the line can be used for this purpose.
// This is a commentary A simple commentary text at the beginning of the line
112 nomos Documentation, Release 1.1.73
1;1;
/* Supported EIS Types in the esf file EIS 1 ’Switching’ (1 Bit) EIS 2 ’Dimming - position’ (1 Bit) EIS 2 ’Dimming - control’ (4 Bit) EIS 2 ’Dimming - value’ (8 Bit) EIS 3 ’Time’ (3 Byte) EIS 4 ’Date’ (3 Byte) EIS 5 ’Value’ (2 Byte) */ multiline commentary is set off with "/*" und "*/". at the end of the documentation, all the definition files are attached for sourcing reference Should the module fail to work as desired after its configuration, a look at the Startlog is recommended. The Log reveals whether the various files could be correctly read in and whether the corresponding module was activated. Example of the Startlog output of the remote.csv
Example of the Startlog output of a CommandServer (LG1.csv)
113 nomos Documentation, Release 1.1.73
4.1 CommandServer Extension
Structure of the CommandServer Definition Tables Reserved (extended) server types Employment of USV/RS232 converters
The CommandServer serves to work with protocols of additional devices by means of the command set of the nomos system. If, for example, along with the steering of the nomos system control, it also becomes necessary to integrate into the controls additional peripherals, such as a multiroom audio system, a possible TV system, a projector or an IR Emitter. The nomos System can also be deployed as a complex control center in this way. Primarily, the integration of such systems is greatly simplified for the user with this technology because he then needs only to concern himself with the command set of the nomos system. Already available CommandServer definition files are there to be freely downloaded from our Hompage www.nomos-system.com . The offering of definition files is continuously expanded. The nomos system’s master license (Gate) comes with a CommandServer license. This means that an exter- nal device can be controlled, namely a CommandServer definitions file can be processed. The nomos system Gate+ License encompasses more than 10 CommandServer licenses and can be expanded to a maximum of 25 CommandServer licenses (nomos Box and Mac OSX). The nomos system determines at the Start of Services whether definition files are available. As long as corresponding entry items are found, the command chains are integrated and made available for controlling. Please take care that the number of definition tables in the respective indices does not exceed the number of licensed CommandServers; nomos engages the tables sequentially. This means that the tables are read in the order they are presented as available by the data system on the basis of the names they are given. When the number of tables becomes greater than the number of licenses, additional tables are disregarded. Information on the files that are read in is given by the Startlog. Please be careful when choosing the .csv names not to use class designations (SYS, BROWSER, ITUNES,TV, ...) that already exist. so as to ensure an unmistakable assignment of the CommandServer class.
4.1. CommandServer Extension 114 nomos Documentation, Release 1.1.73
After the definition tables are read in, the command classes are extended by the content of their definition tables. The output of all available CommandServers can also be initiated on command:
Answer: The typical answer provides a list of all available commands of this class. If a 4.1. CommandServer Extension 115 nomos Documentation, Release 1.1.73 command contains at its end a „#“ . such as with ...|VOLUME#|REW|... , this means that a Value <[CLASS]> 4.1. CommandServer Extension 116 nomos Documentation, Release 1.1.73 4.1.1 Structure of the CommandServer Definition Tables As just described, CommandServer offers the possibility to merge all kinds of systems into the nomos system. The CommandServer also works simultaneously here as a protocol transformer, which integrates the specific protocol of the external systems into the nomos system’s protocol structure. The CommandServer works in two directions. It processes incoming as well as outgoing protocol sequences. A highly efficient integration of external protocols is accomplished through the simple structure of the definition files. Nearly all types of protocols can be processed with this. The CommandServer definition files are read in and made ready when the nomos System is started. If no startup command (STARTUPCMD) is defined, a connection to the target system is initiated after the first command sequence is set forth. If reports (Events) from the external system are to be processed, it is necessary to establish a durable connection. This can be achieved accordingly with, for example, the Parameter TIMEOUT/TIMEOUT_IN_MS. In the [CONFIG] Section, several other possibilities are at hand for individually manipulating the behavior of the communication interface. The possible and available parameters of the definition file are also reported in the Start Log when the DEBUG option is set. The output serves for information and assistance in case of defective behavior If a CommandServer from nomos system is rejected, this will also be reported in the Start Log. Structure of the definitions table: Type: csv file Location: .{projectPath}addon Name: [CLASS].csv Length: 2,000 lines/entry items per section Event: - Export: yes 4.1. CommandServer Extension 117 nomos Documentation, Release 1.1.73 License: yes The [CLASS].csv consists of 3 Sections: [CONFIG]; general configuration of the interface parameter [COMMAND]; Definition of the relevant protocol sequence and assignment of the command names [MAPPINGS] Event definitions of possible answering sequences Structure: Introduce into the \{projectPath}\addon\ folder a {ClassName}.csv with the following con- tent. The file name defines the class name. Take care that the class name chosen for use is not yet recognized by the nomos System: • [CONFIG];Section ACTIVE; activates/deactivates the Webserver „YES“ (default)= active, DEBUG; Expanded LOG output „YES“ = active, „NO“ (default) = not active SERVERIP; {Device-IP}; or LOCAL for USB/RS232 operation. This Parameter is a perequisite. SERVERPORT; {TCP/UDP/AUTO Device-Port}; or, when using USB/RS232 adapters, AUTO or Serial Port; {baud rate}; {databits}{parity}; {Stopbits}; {flow control}. This Parameter is indispensable; with serial Command Servers with SERVERPORT;AUTO the hardware ports are initially used if they are present SERVERPROTOCOL; Protocol: "UDP", "TCP" , “HTTP“ , “HTTPS“ or „SERIAL“ for USB/RS232 adapter. Default = "UDP" SERVERMODE; Transmission type: "ASCII" or "HEX" . This Parameter is absolutely necessary. SERVERTIMEOUT_IN_MS; Time (in ms), while waiting for a possible answer. 0 = don’t wait, NONE = durable connection maintained when SERVERTIMEOUT;NONE is de- fined, the connection is sustained after a command is issued and the data arriving of the device is interpreted (comparable Eventserver). This functions with UDP,TCP and serial connections. Timeout can also be further defined as command responsive. MATCHING; Setting of the procedure for parsing the "MAPPINGS NORMAL“ (default) or „FULL“ EXPORT CommandServer clearance/sharing active „YES“ = active, „NO“ (default) = not active 4.1. CommandServer Extension 118 nomos Documentation, Release 1.1.73 CLIENTIP; {Device-IP}: gives another IP to which the reply of the CommandServer is directed. CLIENTPORT; {Device-PORT}: gives the Port of the CLIENTIP to which the reply should be sent. CLIENTIP and CLIENTPORT must both be defined LOCALPORT; Manual prompt of the local source port for the connection. Possible values: RANDOM or 1..65535 ; if LOCALPORT is now defined, the local port automatically corresponds with the SERVERPORT (as in previous). Should the source port already be in use, a source port is automatically chosen at random and a Log entry is written SERVERTIMEOUT; Like SERVERTIMEOUT_IN_MS , except time (in s), during which a possible answer is awaited. When SERVERTIMEOUT and SERVERTIMEOUT_IN_MS are both already defined, the setting for SERVER-TIMEOUT_IN_MS takes precedence. SERVERTYPE; Definition of the CheckSums rule (HEX CommandServer), applied ac- cordingly during employment. If a rule is defined, the protocol sequence is augmented correspondingly. Firmly embedded rules for specific protocols also exist along with rules that can be freely defined. RUS for the Russound RNet protocol SPEAKERCRAFT for products with the same name. ADNOTAM for products with the same name. SUM= {Index Startbyte}-{Index Endbyte} calculates the Lowbyte of the sum of {Index Startbyte} through {Index Endbyte} and adds this to the end of the protocol sequence. The indices are optional. The option can only be used in HEX mode. Examples: (exit sequence: 0102030405) - SUM : 01020304050F - SUM=1 : 01020304050F - SUM=2 : 01020304050E - SUM=1-5 : 01020304050F - SUM=2-4 : 010203040509 STARTUPCMD; executes {command} once at the Start of the CommandServer. The commands being used have to be defined under [COMMANDS]; . Several commands can be lined up by means of „,“ , for example, : {1stCommand},{2ndCommand},{3rdCommand} . All rules (Prefix, Suffix, Checksumme, etc.), which happen to be current, apply to those commands being employed. Example: STARTUPCMD;POWER_ON,STATE sent at the Start of the CommandServer. The commands POWER_ON and STATE , as defined under [COMMANDS]. 4.1. CommandServer Extension 119 nomos Documentation, Release 1.1.73 HEARTBEATCMD; {HeartbeatCMD};{Heartbeatinterval}; executes the command {HeartbeatCMD} in the time interval {Heartbeatinterval} with spacing in seconds; if no time is given for {Heartbeatinterval} , the default setting of 60s applies. For the {HeartbeatCMD}, the applicable conditions are as those for STARTUPCMD . Only one command can be set, however. The HEARTBEATCMD is executed only when a connection to the target system exists. RECONNECT restores the connection again after a transmission fails one time. „YES“ = active, „NO“ (default) = not active Prerequisites: a) STARTUPCMD is defined b) A durable connection has been established CMDPREFIX; augments the Kommando/protocol output with corresponding characters at the start of the chain of characters. Not to be used if SERVERTYPE is set. CMDSUFFIX; augments the Kommando/protocol output with corresponding characters at the end of the chain of characters. Not to be used when SERVERTYPE is set. SEQUENZPREFIX like CMDPREFIX , except it takes effect at the beginning of the entire protocol sequence. Not to be used when SERVERTYPE is set. SEQUENZSUFFIX like CMDSUFFIX , except it takes effect at the end of the entire proto- col sequence. Not to be used when SERVERTYPE is set. STARTDELIMITER, ENDDELIMITER {Zeichen - oder Bytesequenz} The Delimiters intervene immediately upon receipt of a (partial-)sequence and only hand over the complete reception sequence (which can consist of several partial se- quences) to the Matching Engine when the condition is met or the conditions are met. The Log output is expanded accordingly. If the Standard Reception Buffer (8K) is too small, it is dynamically enlarged in 8K steps. It also makes sure that each part of a re- ceived sequence is transmitted separately to the Matching Engine when this sequence fulfills the Delimiter conditions multiple times. It is sufficient to report either one of the two Delimiters. MAPPREFIX; inserts a corresponding character (analog to CMDPREFIX ) before every Mapping entry MAPSUFFIX; inserts an appropriate character (analog zu CMDSUFFIX ) after each Map- ping entry SPACING; Fixes the minimum temporal spacing {Zeit in ms} (time in ms) between 2 command sequences. Limits in this way the transmission cycle between the protocol sequences to a defined value. This can be helpful, for example, when issuing IR commands. USERNAME; Reporting of user’s name, when necessary PASSWORD; Reporting of password, when necessary ENCRYPTION; reserved, at the moment without a function 4.1. CommandServer Extension 120 nomos Documentation, Release 1.1.73 Example for the use of the xxxPREFIX/SUFFIX option: CMDPREFIX;A ; CMDSUFFIX;E SEQUENZPREFIX;X SEQUENZSUFFIX;Z [COMMANDS]; POWER_ON;01 ; HDMI1;02 ; SC_DIGITAL;03 ; Following exemplary command sequence: <{CLASS}> • [COMMANDS];Section - command definitions Structure of command definition: {CMD};{Sequenz};{Command Timeout[ms]};{Paramteter}; The command definitions assign to a sequence {Sequenz} to be transmitted a freely definable command {CMD}; the sequence is given in appropriate (ASCII/HEX) format. The following special characters can appear in the {Sequenz} : "\#" inserts the Argument conveyed with {CMD} to the corresponding position in {Sequenz}. The Argument is inserted in the ASCII mode without further transformation; the Argument in the HEX mode is transformed with prefixes (1 Byte) and inserted thereafter. Several Arguments can be transmitted when set apart by commas. The Sequence is structured by the order in which commands are issued and transmitted following termination of the class. {CMD}; Freely definable command name under which the transmission of the protocol sequence is triggered. {Sequence}; Assigned protocol sequence that is transferred to the target system when the appropriate command is issued. {Command Timeout[ms]} Timeout Option, which can be assigned individually to every command. The setting of this option disregards the global Timeout setting in the [CONFIG] section. If commands are lined up in a chain within a sequence, the command Timeout, if defined, applies to the last command. 4.1. CommandServer Extension 121 nomos Documentation, Release 1.1.73 {Paramteter}; setting additional option for the manipulation of the value transfer "\#" . See also format options or conditions/comparing system. Examples for possible definitions [COMMANDS] SERVERMODE; ASCII SWITCH;TURN_ON_THE_\#-CHANNEL RECORD;_AND_RECORD_\#_AND_\# the commands: <[CLASS]> generating the following sequence: „TURN_ON_THE_ZDF- CHANNEL_AND_RECORD_ARD_AND_RTL“ Characters that cannot be displayed can also be transferred to the ASCII string. These characters are also embedded like an Argument. Please note that only one character can be transferred in each instance. These characters are transferred as follows: SWITCH;SCHALTE_AUF_DEN_\#-KANAL\0x0D\0x is herewith the wildcard for following HEX Bytes, 0D is the Byte to be sent (in this case a line prompt or RETURN). Please note that the wildcard should be used with each Byte. Namely, \0x0D\0x0C\0xFF ... and so forth. SERVERMODE; HEX SWITCH;07AB\#04; RECORD;07CF\#BD\#06; the commands: <[CLASS]> generating the following sequence: 07AB010407CFFFBD0206 SERVERMODE; HTTP/HTTPS PLAY;/cgi-bin/vcontrol?command=play; STOP;/cgi-bin/vcontrol?command=stop; the commands: <[CLASS]> generating the following sequence: GET /cgi-bin/vcontrol?command=play HTTP/1.1 The Server mode HTTP serves, for example, for contacting devices that have a CGI interface or a WEB interface. Web queries can also be generated with this. As soon as the format options for a command are defined and the HEX Mode is active, the implicit automatic Argument transformation for this command is turned off. Should a Hex transformation still be sought, the formater %hex should be used. Various examples for the application of format options VOLUME; 4.1. CommandServer Extension 122 nomos Documentation, Release 1.1.73 CFG_INITVOL(V);INIVOL\#\x0D;;{%-100,%*-1,%/1.2658,%*1} Scales a value transfer for regulating sound volume. The definition of the manufacturer describes a value range of 0 - 79 decimal, with the Value 0 defining the maximum volume. The computing rule works here as follows: with \# transferred Value: 10 - 10 -100 = -90 - -90 *-1 = 90 - 90 / 1.2658 = 71,10128 - 71,10128 *1 = 71 The nomos system scales the product of a multiplication to the decimal places of the multiplier. If the multiplier is *1, namely without decimal places, the product isf a whole number. • [MAPPINGS](optional) Interpretation of the protocol return sequence {MapString};{Description};{Action};ONCHANGE;{Condition} {Map String} Arriving string, which can be evaluated with the use of the parsing options. When used without parsing, the condition is met when the arriving string = {Map String} . When parsing is used, the condition is met when a successful match takes place. The content of the Parsing Option is transferred as Argument. {Description} Designator for the result of the successful Match. The Argument is automat- ically included {Action} nomos command chain or Script, which is suppsoed to be carried out upon suc- cessful Match. ONCHANGE The Option ONCHANGE is used when the value is supposed to be sent only upon changes in value. If the field remains empty, the value is always sent. {Condition} When defined, the previous action is only executed if the condition is met. The comparative logic symbols ( „>“,“<“,“=“ ) can be employed. Also, such combinations as „<>“ (unequal) or „>=“ (greater than or same) can be defined. The arriving string {Map-String} is searched for the following conditions and transmits the discovered character chain (Match) as Argument to the field {designation}. In {designation} a freely definable string can also be en- tered as a normal text designation (see Example). Entered in {Action} is the nomos command chain and/or Script, which results in execution when the {condition} is fulfilled. The following special characters can be used in {Map String} as an Option for the Matching or Parsing: Parse/Match Options \^ Matches a character exactly and adds the Argument. \? Matches a character exactly and disregards it (Wildcard) \^ and \? may appear at any desired spot 4.1. CommandServer Extension 123 nomos Documentation, Release 1.1.73 \* Wildcard Match and adds the Argument \% disregards any amount of characters \!{number}! skips over this number {number} of places. {number} , the number, may have a maximum of four zeros and has to be given in decimal system. Exercise care that a Byte corresponds to two places with a HEX Match. Further rules: Combinations of \^ and \? are possible in any desired length. Thus, for example, definitions like \^^^^ for 4 characters. If \^ and/or \* are used in combinations, the Argument is augmented by the respective characters. The entry items in the MAPPINGS segment are processed line by line according to the Switch MATCHIN;NORMAL (Residual string after match) or MATCHING;FULL (entire arriving string). With a Match MATCHING;NORMAL additional entry items are disregarded and the characters remaining in the return sequence are evaluated anew. It is therefore sensible to reposition long. complex Match-Strings to the beginning of the Mapping region in order to assure a clear interpretation. In the ASCII mode the Argument is added without further transformation; in the HEX mode the Argument is converted to decimals and then added. Hex values (e.g. "0x0D", just as in the COMMANDS region) can also occur and can be matched. Example (SERVERMODE;HEX): 07AA\##??;VOLUME 07EF\##04;CHANNEL The return sequence: 07EF040407AA1008 creates the following normal text sequence: <[CLASS]>