pdfJem Manual 4.0.1 - JouleX Energy Manager
Transcription
pdfJem Manual 4.0.1 - JouleX Energy Manager
JouleX Energy Manager v24295 Manual JouleX Energy Manager Manual Welcome Everywhere we look, we see executive management, corporate IT, and facility departments coming to the realization that Sustainability and Green Initiatives are here to stay, and in the best interest of their bottom line. As corporate management and government agencies have explored the increase in global demand for energy and the impacts of carbon-based energy sources that are continuing to be made public, it has become clear that managing energy consumption sustainably is more than a public relations goal. An effective energy management strategy can significantly reduce energy consumption, energy costs, and carbon emissions. Introducing JouleX Energy Manager | (JEM) JouleX Energy Manager helps optimize and reduce energy consumption across the enterprise. Whether you want to improve energy efficiency in the data center, manage energy usage across facilities and distributed office environments, or automate corporate sustainability reporting, JouleX can help. The (JEM) product suite reduces energy costs by monitoring, analyzing, and controlling energy usage for all of your networkconnected devices and systems—no client-side agents or hardware meters required. Unlike other technologies, JEM is a single solution that provides a global view of energy consumption for devices such as: PCs, Macs, and thin clients Physical and Virtual Servers VoIP phones Printers and copiers Network switches and routers Power-over-Ethernet switches Heating, ventilating and air conditioning and lighting systems Storage devices And much more This Help Guide will assist you in getting the most out of your new JouleX Energy Manager deployment. Recommended Articles Installation / Activation Article Description Installation Step by step instructions to guide you through the installation process of the JouleX Energy Manager. Initial Configuration & License Activation Step by step instructions for initial configuration of the software and license activation. Getting Started Article Description Getting Started (Working With Devices) Learn about Devices and how to manually add them to the JouleX Energy Manager. Getting Started (Customization) Guide to the customizable Settings in the JouleX Energy Manager. Device Types Article Description Device Types Overview and short description of the different Device Types. Import Devices Article Description Import Devices Guide to to importing devices using Asset Connectors. Asset Connectors Overview Overview of the different Asset Connectors and a short description for each one. Rules / Device Query Language (DQL) / Scripting Article Description Rules Guide for setup and editing of Rules to control your Devices using Conditions and Actions. Device Query Language (DQL) Learn how to access the JouleX Energy Manager Device Data Fields. Scripting Information on JavaScript based scripting and how to use Device Functions, System Functions and Asset Connector Functions. User Interface Reference Article Description Home Details of the JouleX Energy Manager Homepage (including the widgets) Policies (Rules) Details of the JouleX Energy Manager Rules. Devices Details of the JouleX Energy Manager Devices page. Reports Details of the JouleX Energy Manager Reports. Apps Details of the JouleX Energy Manager Apps (i.e. the JouleX Employee Portal and the TruJoule Optimizer). Settings Settings of the JouleX Energy Manager. About this Documentation The JouleX Energy Manager help guide will provide you with detailed information about JouleX Energy Manager installation, tips for getting started, day-to-day usage, and recommended maintenance tasks. There are two ways to access this information. Read through the documentation chapter by chapter Search our help files to access the specific topic you need by entering your key words into our form inside the JEM Management Console. We strongly recommend that first time users begin with the sections Installation and Getting Started. I n General Concepts you will find information on the underlying concepts of JEM. We suggest taking the time to review the Working with Devices section, to learn how JEM supports different device types and what kind of data each device type provides. The User Interface Reference chapter describes all of the interactive elements of the JEM Management Console Other Help Resources You can find additional information on special topics, FAQ and technical articles in the JouleX knowledge base under http://docs.joulex.net Installation JouleX Energy Manager (JEM) can be installed on any physical or virtual machine running within your network that meet the minimum System Requirements. Because JEM provides remote monitoring and control capabilities to your network connected devices, specific access credentials will be required, based on the type of devices being managed. This Installation section is designed to provide a step by step guide to the full JouleX Energy Manager installation and activation process. System Architecture Overview 1 of 186 JouleX Energy Manager v24295 Manual Click here fore more details about the System Architecture System Requirements To deploy JouleX Energy Manager on your network, JouleX recommends that you follow these guidelines. The minimum deployment requirements primarily depend on the number of devices to be managed. Click here for Multi-Server Deployment information. Minimum Recommended 5000 Devices 10.000+ Devices 1) 50.000+ Devices Deployment Single-Server Single-Server Single-Server Multi-Server Central Multi-Server per Controller CPU Dual Core, 2GHz Dual Core, 2GHz 2 Quad CPUs 2 Quad CPUs Quad Core, 2GHz RAM 4 GB 8 GB 16 GB 16 GB 4 GB Hard Disk 2) 40 GB 250 GB 1 TB 1 TB 250 GB Operating System Windows 7 (32-Bit) Win Server 2008 R2 (64-Bit) Win Server 2008 R2 (64-Bit) Win Server 2008 R2 (64-Bit) Windows 7 or Server (64-Bit) 1) Recommended configuration for more than 30.000 devices: 12 Cores, 24GB RAM 2) Hard disk performance plays a critical role in a JEM deployment. JEM comes with it's own database to store device data, power measurements and other data at a high rate. Alocal physical storage or high-performance SAN is recommended, especially when deploying on a VM. JouleX Energy Manager (JEM) has a browser-based management console for configuration, operation, and reporting. For the best user experience, it is recommended that you use an up-to-date browser, such as the latest version of Google Chrome (preferred), Mozilla Firefox or Internet Explorer 8 or better. Older browsers, especially IE 6 are not fully supported. Regardless of which browser is used, JavaScript will need to be enabled. JEM Controller uses Microsoft .NET 3.5 framework. If this framework is not present on the server prior to installation, it will be automatically downloaded and installed as part of the JEM Controller installation. If the internet connection on the installation server is slow or unavailable, we recommend that you manually download and install the Microsoft .NET 3.5 framework prior to beginning the JEM Controller installation (Download here: http://msdn.microsoft.com/en-us/netframework/). Note: Multiple .NET versions can be installed concurrently (e.g. .NET 4). Since JEM Controller depends on the .NET 3.5 framework, .NET 3.5 will still be required. Some Microsoft operating systems already include the .NET 3.5 framework. On Windows Server 2008 R2 the .NET framework is activated as a server feature via the Server Manager. If you have manually defined Port 80 as HTTP Port you are will not be able to activate IIS. Installation JouleX Energy Manager can be installed on a physical or virtual machine running inside your network. Because JEM monitors and controls your devices remotely, it requires certain access credentials, depending on the devices to be controlled. This section will guide you through the installation and software activation process of the JouleX Energy Manager. Download First, you will need to download the latest JEM 4.0 Build from JouleX.net. Open your download folder. And double click JoulexEnergyManager_4.0_*.exe to start the installation wizard. Depending on your user configuration, Windows may request permission to make changes to the system. Click Yes. Click Next. 2 of 186 JouleX Energy Manager v24295 Manual License Agreement You will need to review the License Agreement and accept the terms to move forward with the installation. Click Next. Installation Method In this section you will choose the type of installation that is appropriate for your network size and configuration. Choose Installation Method. JEM Complete Installation Both the JEM Controller and the JEM Central Management Server will be installed on the same server JEM Central Management Server Choose this option if you plan to install the JEM Central Management Server and the JEM Controller on different servers. JEM Controller Choose this option when installing additional JEM Controllers or when you plan to install the JEM Central Management Server and the JEM Controllers on different servers. Finish Installation Click Finish. Patch For updating your JEM installation, you will download the latest JEM 4.0 patch from joulex.net and follow these instructions: JoulexEnergyManager 4.0 Patch Install JouleX Energy Manager - Complete Installation For complete installation on one server, choose the JEM Complete Installation (JEM Controller and JouleX Centralized Server) option. Click Next. 3 of 186 JouleX Energy Manager v24295 Manual Administrator Account for Management Console At this point in the installation, you will need to create a user account to access the browser based JEM Management Console. Choose a Username and a secure Password and Re-enter the password to confirm. The Web-Port specifies through which port the management console can be accessed. If port 443 is already in use, choose any other unused port (this will not change the SSL securitization). In the event that you need to deactivate SSL, this will need to be done manually. See Ports for more information. If you choose a different port, remember to make note of the port used. You will need this information again when you access the JEM management console. By default, the JEM installer will configure the Windows Firewall settings to open the required ports for the web interface to be accessed from outside the server. Note: If you do not use the Windows Firewall, JEM will not be able to open these ports automatically. In this case, you will need to configure them manually. Further information about the default ports can be found at Ports and Deployment. Internal Ports For communication between the JEM Controller and the JEM Central Management Server, JEM installs a Message Queue Server. The default port is SSL secured port (5672). You can also configure non-secured standard port (5673). The Message Queue server has a separate management console which requires an additional port (55672). For internal communication, JEM requires access to port 8000 and port 9090 on the installation machine. Port 8000 is fixed and not able be changed by the user. A local PostgreSQL database service will be installed along with other components. The default port is 5432. It is recommended that you install JEM using the default settings. These default port settings are used throughout this documentation. All ports can be modified manually during the installation procedure. Detailed instructions for modifying these ports after installation is complete can be found in our Ports section. If you wish to customize the ports, edit them and click Next. Note: If you do not use the Windows Firewall, JEM will not be able to open these ports automatically. In this case, you will need to configure them manually. Further information about the default ports can be found at Ports and Deployment. Message Queue Server During installation you will be able to customize the credentials for the Message Queue server. Enter username and password in the Message Queue Configuration screen and click Next to continue. Installation Directory In this step, choose the installation directory. Make sure you have enough hard disk space, as the JEM Central Management Server and other features require a large amount of disk space over time. Click Install. 4 of 186 JouleX Energy Manager v24295 Manual Install JouleX Energy Manager - JEM Controller This option is generally used when installing additional JEM Controllers or when a JEM Controller should not be installed on the same server as the JEM Central Management Server. For JEM Controller installation please choose JEM Controller. Click Next. Internal Ports To ensure proper communication between the JEM Controller and Central Management Server, JEM also includes a Message Queuing Protocol. The default for this protocol is SSL secured port 5672. You may instead opt for non-secured port 5673. For management of the queuing protocol, port 55672 will also need to be available. e be changed by the user. A local PostgreSQL database service will be installed along with other components. The default port is 5432 and, while modifiable, should only be changed if this port is already in use. All ports can be modified manually during the installation procedure. Detailed instructions for modifying these ports after installation is complete can be found in our Ports section. If you wish to customize the ports, edit them and click Next. Installation Directory In this step, choose the target installation directory. Make sure you have ample hard disk space, as the JEM Controller and other features require a large amount of disk space over time. Click Install. Install JouleX Energy Manager Patch For patch updates to your installation of JEM, download the latest JEM 4.0 patch from joulex.net. Open your download folder. And double click JoulexEnergyManager_4.0_*_patch.exe. This should open the installation wizard. 5 of 186 JouleX Energy Manager v24295 Manual Depending on your user configuration, Windows may request permission to make changes to the system. Click Yes. Click Install. Finish Installation Click Finish. Starting the Management Console JouleX Energy Manager (JEM) user utilizes a browser-based management console for configuration, operation, and reporting. The management console can be accessed using a standard modern web browser and opens automatically once the installation has finished. To access the management console manually, enter the default address in the address bar of your browser. The default address is: https://localhost or https://127.0.0.1 You will have specified the port of the management console during installation. The default setting is HTTPS SSL secured port 443 (nonsecured port 8080 is also available). If you chose an alternate port for the management console, make sure you enter the correct port. When entering the address manually, append the address as seen below. In this example, the default non-secure HTTP port is used. http://localhost:8080 or http://127.0.0.1:8080 To access JEM from a remote location, enter the IP address or hostname of the remote machine on which you have installed JEM into your address bar. See example below: http://<server-ip>:port or http://<hostname>:port 6 of 186 JouleX Energy Manager v24295 Manual During the installation process, you will choose a username and password for the JEM platform. You will need to use this username and a password to to access the management console. Welcome Page Once you have successfully logged into the management console, you'll see the Welcome page. From here, follow the on screen instructions for activation of JouleX Energy Manager. Activation of JEM will be required upon first login. Once the License Activation has been completed, you will see the Initial Setup Wizard, which will help you to begin maximizing the capabilities of the JEM platform. JouleX Energy Manager Setup Wizard The JouleX Energy Manager Setup Wizard will guide you through the first steps with your JEM, and will assist in optimizing your initial configuration and customization. Your Company Enter your company's name here. This name will be used later for naming the root folder in your folder structure within the JEM environment. Click Next. Activate Your JouleX License Enter the license key and activate JouleX Energy Manager. Click Next. Once the license is activated you will see the corresponding license details and the yellow warning message will disappear. JEM will attempt to verify the license key once daily. If the license key is not able to be verified for 7 days consecutive days, JEM will be disabled automatically. If you have internet connectivity problems, you will be redirected to the internet settings page. Note: For licensing, your JouleX Energy Manager needs to be connected to the internet. If activation does not work, please check your Internet Connectivity/Proxy of the respective JEM Controller in Settings and activate JouleX Energy Manager manually with the help of Software License in the Settings menu. If you don't have internet connectivity from your JEM installation machine, please contact our technical support regarding a JEM Offline License. Import Devices JouleX Energy Manager has the potential to automatically import your existing devices. Active Directory Integration 7 of 186 JouleX Energy Manager v24295 Manual The JouleX Energy Manager connects to your Active Directory server and automatically imports Windows devices. If you want to import any devices, enter the configuration credentials of your Active Directory server. Click Next. Otherwise click Skip this step and continue with the regular setup. Cisco EnergyWise Setup The JouleX Energy Manager connects to your Cisco EnergyWise domain imports all connected devices. If you want to import any devices, enter the configuration credentials of your Cisco EnergyWise domain. Click Next. Otherwise click Skip this step and continue with the regular setup. Configuration Completed You finished the basic settings now. Select Windows Access Method. If you wish to define the user and role settings, continue with the next wizard Create Users & Roles, otherwise click Next and close this wizard. You can edit role based access settings at any time from the User Management section. Getting Started Working With Devices Customizing JouleX Energy Manager Working With Devices Once the JouleX Energy Manager is installed, you can begin working with Devices. JEM is able to monitor, measure, and control a wide variety of different Device Types on your network. This includes Windows, Linux, or Mac based desktop computers and servers, Voice-over-IP (VoIP) phones, printers, switches, virtual machines, PDUs, and many more. JEM is an "agentless" architecture which requires no additional software to be installed on the controlled devices. Instead, JEM uses the existing network and system management protocols to monitor, measure, or control the power state of devices in your network. In most cases, the appropriate system management protocols are already in place and can be used without customization whereas, in other cases, it may be necessary to adjust a few settings to achieve full functionality. This section will explain the basic steps of device integration for JEM. You will be able to find detailed information about device integration in the online help system. Importing Devices into JEM This tutorial will explain how to integrate single devices manually, using the JEM Management Console. Manual integration, however, is not the recommended approach when planning to integrate a large number of devices. You can import devices from existing system management tools and directory services, like Microsoft Active Directory, Cisco Works, Cisco CallManager, OpenScape DLS, etc., instead of manual integration. JEM also supports mass import of devices via database connectors and CSV (Comma Separated Values) file import. The imported devices are periodically synchronized with your system management tools to ensure all device data is up-to-date, and new devices will be imported automatically into JEM. Adding the First Device This example describes the steps on how to manually add a Windows device to JouleX Energy Manager. To get started, you will need the following information for the Windows machine available: Hostname or IP address Username and password for a local-admin account To get started, open the Devices Page and click . Then enter basic information about the device in the Device tab. To identify the device, enter either the hostname of the device in the Hostname field or the IP address in the URI field. Usually, providing hostnames is sufficient as JEM automatically resolves hostnames. You will then choose the device type from the Device Type Selector. For this example, that is pc.windows (Windows). The Device Information Field Folder name is populated automatically, based on the folder you are currently operating in. In our example, it is the root folder named Demo, which we created during the initial Setup Wizard. Finally, enter the Username and Password to access the Windows machine.To do this, select the Credentials tab in the dialog and enter username and password into the respective fields. When finished, click Save Changes & Close. 8 of 186 JouleX Energy Manager v24295 Manual After you have integrated the device into JEM, it should be visible in the device table. If you don't see the device, refresh the device table by clicking the Search button. JEM displays different status levels for a device, depending its current power state. Supported Power States and Descriptions: Device Status Description UNKNOWN The device status is currently unknown. This usually happens when a device was imported via an asset connector and not accessible in the network thereafter. OFF The device is currently turned off. STANDBY The device is currently in standby mode. HIBERNATE The device is currently in hibernate mode. ON The device is currently turned on. If the Device Status is UNKNOWN, you can initiate a manual device status check using JEM. To check the current device status, select the device in the device table then click Execute. Select the Check Status action from the available actions list and click on the Execute button on the right. If the device status is still UNKNOWN after the status check, verify your device settings. An Unknown Status can also be caused by incorrect user credentials, access rights, or WMI configuration. If the device is joined to an Active Directory domain, verify that the provided user account has administrator rights over the device by being a member of the local admin group or domain admin group. Another common error is the configuration of the WMI protocol settings on the Windows device. For more information, refer to the section WMI Access. A note about Windows devices As mentioned earlier, JEM uses existing software protocols to access remote devices. For Windows devices, JEM uses a software protocol called WMI (Windows Management Instrumentation) to monitor, measure, and control Windows based devices. For security reasons, Windows requires a user account to be in the local admin group to use the WMI protocol remotely. In some cases, additional configuration steps might be required to enable full support for WMI on the remote machine. For more information, refer to the section WMI Access. Integration with Active Directory A common designated use of JouleX Energy Manager is to monitor, measure, and power-manage Windows computers in the network. JEM integrates into Windows Active Directory server to import and synchronize devices automatically. To enable Active Directory integration, go to the Devices tab and choose Import from the list. Then click on Add Asset Connector and choose Directory > Active Directory from the menu. This will open a dialog box for the asset connector setup. From here, enter the requested information for the Active Directory Integration, like Domain, Username, Password, and the address of the Active Directory Server (Host) then click OK and Save your Changes. 9 of 186 JouleX Energy Manager v24295 Manual JouleX Energy Manager will automatically connect to the Active Directory server and import all devices (Windows machines, printers, etc.) that it finds. Depending on the number of devices, this process might take a while to complete but generally finishes within an hour. During the import process, JEM will automatically try to retrieve location data from Active Directory and populate the location field for each device. JEM Cisco EnergyWise Support JouleX Energy Manager provides full monitoring, analysis, and control of Cisco EnergyWise enabled devices with specific EnergyWise reporting, to optimize energy consumption and reduce energy costs. Here are some JEM features shown for EnergyWise Devices: EnergyWise Integration For more information about EnergyWise Integration, check our EnergyWise Integration documentation. EnergyWise Monitoring and Controlling For more information on EnergyWise Monitoring and Controlling, check our EnergyWise Monitoring and Controlling documentation. EnergyWise Policies 10 of 186 JouleX Energy Manager v24295 Manual For more information on EnergyWise Policies, check our EnergyWise Policies documentation. EnergyWise Reports Customizing JouleX Energy Manager Now that early steps with JouleX Energy Manager have been completed, configuration of some additional Settings, which will become important once JEM is expanded to support more devices, is recommended. Protect your most important devices JEM is a powerful software platform, capable of managing and controlling the energy usage across the entire network. In order to prevent important devices from being mistakenly powered down or put into hibernate status, the Protected Devices settings are important. Protected Devices, allows you to specify which devices should never be powered down, hibernated, or put in standby mode by policy rules or by manual actions. To add a Protected Device, go to the Devices Tab and click Protected Devices then enter IP addresses, locations, device types or other filtering criteria to describe the device that should be protected. As in the example below, you will enter "deny *" to project all devices from status changes by JEM. deny * Take a look at the examples below for other options. Don't forget to click on Save Changes to apply the protected devices settings. Adjust Energy Utility Rates and Currency For correct reporting of energy costs, energy savings, and carbon emissions, it is recommended that actual energy prices and carbon information be entered into JEM. To do this, first go to the Central Settings page and choose the Currency Settings. Enter the appropriate currency symbol into the Currency field. This currency will be used across all JEM reporting, cost and savings calculation, and simulation. Therefore, all monetary values entered should be consistently in one given currency. 11 of 186 JouleX Energy Manager v24295 Manual JEM supports energy pricing and carbon accounting for multiple Locations. This is important for multiple locations with different energy prices and carbon emissions.To get started, first enter a meaningful value for the Default Energy Rate. To do this, go to Settings > JEM Controller Management and click on Edit Settings of the respective JEM Controller. Next, click on Energy Prices on the right, select the corresponding row in the energy prices table and click Edit. To enter specific energy prices and carbon emissions, you will need to provide the following data: Price per kWh This is the price you pay for one kWh (kilowatt hour). Example: 0.10 CO2 Emission kg/kWh This value represents the equivalent carbon emissions in kg for each kWh consumed. Example: 0.6 These values can be obtained from your utility company or facilities department. The energy price information is imperative for correct energy cost and savings reporting, and the carbon emissions can be considered a Green metric to be used for sustainability reporting. If no location-based energy pricing is entered into JEM, the Default Energy Rate will be used. Managing Locations Locations play an important role in JouleX Energy Manager. For instance, you can assign energy utility prices to individual locations, create different power management rules on a per-location basis, or create location-based reports. If you're using Active Directory, locations are imported automatically for all devices in Active Directory. The location for a device can be manually set through the Device Viewer Dialog on the Devices page. Automated Software Updates JouleX Energy Manager supports automated Software Updates. By default, automated software updates are disabled. However, we recommend enabling this feature in order to always have the most current version of JEM. To enable this feature, go to the Settings page, click the Edit button of the respective JEM Controller and select Software Updates. To generally enable software updates, check the Enable automatic updates box. If you only smaller releases and important hotfix updates should be automated, check Hotfixes only box. How To: 12 of 186 JouleX Energy Manager v24295 Manual This section provides streamlined information and recommended settings from the Help documentation, giving the user a more in-depth understanding of adding and working with the devices listed below: How to add Active Directory Devices How to add EnergyWise Devices How to add Virtual Machines How to integrate an Active Directory With the help of the Active Directory, JEM can easily retrieve and import the devices within your network. The procedure to import devices managed by the Active Directory is automated, but needs to be defined with the help of Active Directory Integration. The following describes a step-by-step integration of the Active Directory. Step 1 : Getting started For every Asset Connector, you will begin in Devices, under the Import option. Navigate to Active Directory with the help of the Add Asset Connector button. If you have already defined several Asset Connectors the Basic box will be familiar to you, please define: The name of this specific Asset Connector : AssetConnector Name The scanning routine of this specific Asset Connector : AssetConnector Schedule In addition to an incremental time based scanning schedule, you also have the option of ordering the scanning procedure by device. To arrange the Asset Connectors, dragging and drop the next Asset Connector next to the previous one, or open the dialog box by clicking on the big button. Step 2 : Connection At this step you need to enter all data necessary to connect to the Active Directory. If successfully completed, JEM will automatically import all devices within the domain. Please define the following: Username: The username of Domain Account allowed to enumerate the directory Password: The credentials belonging to the username. Domain: The Windows Domain Host: IP address or Hostname of one of your Directory Controllers Only needed if the IP address can not be resolved via DNS. Note: Aworking DNS is a mandatory requirement for the Asset Connector, as all Computer Names will be retrieved from the Active Directory and then resolved by DNS. This is required as Active Directory has no knowledge of the IP addresses and states of end systems. Step 3 : Organizational Units If you have organized your Active Directory with the help of Organizational Units (OU), as is the standard, JEM allows you to limit the Active Directory Integration to a chosen set of OUs. To do this, click the Org. Units tab and click on Add Org. Unit. A new window will appear which shows your OU, select the OUs you would like to integrate (press Ctrl to select multiple OUs) and click on OK. 13 of 186 JouleX Energy Manager v24295 Manual After you have selected a OU, JEM will list all instances included in the the selected OU. If you select several different OUs they will also be listed. Step 4 : Options For the next step, skip the JEMScript register and move directly to Options. At this point, it is sufficient to focus on the general settings only, as the Map Devices to AD-Site via Subnets will be described in the Advanced Options below. Maximum LastLogon-Age (days): Define if devices which have not been logged on for a certain time should be excluded from integration. 0 equals infinite, all devices which are in Active Directory will be integrated. Enrich only: The Asset Connector will only apply for already existing devices. Will not work for a first time import if the device has not been imported by another Asset Connector. Take Device Ownership: Assign a device to this particular Asset Connector. Usually, the first Asset Connector which imports a device will take the ownership of a device. With this option, an Asset Connector which comes later in the list can take over the ownership. Devices to Import: Select if All Devices, only Computers or only Printers should be added to JEM. If All Devices or Printers are selected, you may need to add the SNMP Version 1 credentials, known as snmp.community.password. A box to enter them is provided just below the drop-down-menu to select the Devices to Import. If empty "public" will be used. If your printers use another SNMP version or several different credentials you will need to import these via CSV/ODBC or script. Working with the Active Directory After you have finished the steps above, your Active Directory Asset Connector will be visible in the list on the Asset Connector Configuration page under Devices > Import. If you go to Devices at this point, JEM will be able to list the imported devices. Please be aware that you might have to activate the specific view first. The screenshot below highlights the views, if you click on the circled icons further options will pop-up. 14 of 186 JouleX Energy Manager v24295 Manual Advanced Options After the Basic Implementation is completed you will be able to move on to the Advanced Options. The advanced options will be found by referring to other other articles within the Help Documentation, after the initial setup has been completed. You will have the options to enhance your Asset Connector integration with JEMScripts, which allows you to dynamically add additional information and Device Data Fields while importing EnergyWise Devices. Click here to learn about the JEMScripting Language. This particular Asset Connector allows you to Map Devices to AD-Site via Subnets. To enable this, tick the box on the Options register, and move on to AD Sitemap; more information can be found here. How to integrate EnergyWise The JouleX Energy Manager import procedure for Cisco EnergyWise devices is automated, which must be defined with the help of the Cisco EnergyWise Integration. Review the steps below to learn how to import Cisco EnergyWise devices. Basic Implementation Step 1 : Getting started Just like all other Asset Connectors, start at Devices > Import. Click the Add Asset Connector button and choose Network Management > Cisco EnergyWise. If you have already defined several Asset Connectors the Basic box will be familiar to you. Define: AssetConnector Name: The name of this specific Asset Connector AssetConnector Schedule: The scanning routine of this specific Asset Connector In addition to an incremental time based scanning schedule, you also have the option of ordering the scanning procedure by device. Step 2 : Connection At this step you need to enter all data necessary to connect to Cisco EnergyWise domain. If successfully completed, JEM will automatically import all nodes (Switches, PDUs, outlets, endpoints, etc.) within the domain. Define the following: Domain: The EnergyWise domain Secret: The EnergyWise credentials IP(s): The IP address of one of your EnergyWise nodes (e.g. EnergyWise enabled switch) Port: The port used for EnergyWise communications Local IP: The IP address of your JEM Controller 15 of 186 JouleX Energy Manager v24295 Manual Step 3 : Settings For the next step, skip the JEMScript register and go directly to Options. At this point, you will only need to work with two settings, as the others are included in the Advanced Options section. If you want to activate the following, please tick the boxes: Enrich only: The Asset Connector will only apply for already existing devices Will not work for a first time import if the device has not been imported by another Asset Connector Take Device Ownership: Assign a device to this particular Asset Connector Usually, the first Asset Connector which imports a device will take the ownership of a device. With this option, a Asset Connector which comes later in the list can take over the ownership. Working with EnergyWise After you have completed the steps above, your EnergyWise Asset Connector will show up in the Asset Connector Configuration list. If you go to Devices, JEM will list the imported EnergyWise devices. Please be aware, that you might have to activate the specific view first. The screenshot below highlights the views, if you click on the circled icons further options will pop-up. Advanced Options After the Basic Implementation is completed you will be able to move on to the Advanced Options. The advanced options will be found by referring to other articles within the Help Documentation, after the initial setup has been completed. You will have the options to enhance your Asset Connector integration with JEMScripts, which allows you to dynamically add additional information and Device Data Fields while importing EnergyWise Devices. Click here to learn about the JEMScripting Language. If you want to learn more about the Options functions which have been left out above, please follow this link, Cisco EnergyWise Integration Advanced EnergyWise Options. How to integrate Virtual Machines (VMware) 16 of 186 JouleX Energy Manager v24295 Manual With the help of the VMware JEM can easily import all devices managed by VMware. The procedure to import devices managed by the VMware is automated, but must be defined with the help of VMware Import. Follow the steps below for integration of VMware. Step 1 : Getting started Just like all other Asset Connectors you have to start at Devices > Import. Navigate to Virtual Machines > VMware with the help of the Add Asset Connector button. If you have already defined several Asset Connectors the Basic box will be familiar to you. Define: AssetConnector Name: The name of this specific Asset Connector AssetConnector Schedule: The scanning routine of this specific Asset Connector In addition to an incremental time based scanning schedule, you also have the option of ordering the scanning procedure by device. Step 2 : Connection At this step you need to enter all data necessary to connect to the VMware. If successfully completed, JEM will automatically import all virtual machines managed by this. Define the following: Host: The IP address of your VMServer Username: The username to access the VMServer Password: The credentials belonging to the username Step 3 : Settings For the next step, skip the JEMScript register and go directly to Options. At this point, you will only need to work with two settings, as the others are included in the Advanced Options section. If you want to activate the following, please tick the boxes: Enrich only: The Asset Connector will only apply for already existing devices Will not work for a first time import if the device has not been imported by another Asset Connector Take Device Ownership: Assign a device to this particular Asset Connector Usually, the first Asset Connector which imports a device will take the ownership of a device. With this option, a Asset Connector which comes later in the list can take over the ownership. Working with VMware Once these steps are completed, your VMware Asset Connector will be visible in the Asset Connector Configuration list. 17 of 186 JouleX Energy Manager v24295 Manual If you go to Devices, JEM will list the imported VMware devices. Please be aware, that you might have to activate the specific view first. The screenshot below highlights the views, if you click on the circled icons further options will pop-up. Advanced Options After the Basic Implementation is completed you will be able to move on to the Advanced Options. The advanced options will be found by referring to other articles within the Help Documentation, after the initial setup has been completed. You will have the options to enhance your Asset Connector integration with JEMScripts, which allows you to dynamically add additional information and Device Data Fields while importing VMware devices. Click here to learn about the JEMScripting Language. General Concepts This section describes general concepts that JouleX Energy Manager is built on. It begins with an overview of the system architecture, workflows, and the role based access within the all new folder structure: System Architecture Energy Management Process Role Based Access You will also find information on the basic concepts of devices and asset connectors: Working With Devices Device Types Asset Connectors System Architecture The chart below displays a high level overview of JouleX Energy Manager components. The core components are JEM Controller and JEM Central Management Server. This chart depicts a sample deployment, with three controllers and a single central management server. Learn more about deployment options: Deployment Options JEM Controller Overview The controller directly interacts and communicates with devices and endpoints through the network. Learn more: JEM Controller Asset Connectors 18 of 186 JouleX Energy Manager v24295 Manual Asset Connectors connect to your network then discover and import existing device information into the JEM platform. JEM relies on Asset Connectors to index and import all Windows PCs from an Active Directory, automatically discover attached monitors and printers, import VoIP phones from Cisco CallManager, and much more. Device Proxies Device Proxies work directly with Asset Connectors to implement low-level communication protocols with your existing devices. For instance, JEM supports a large variety of industry protocols like WMI to communicate with Windows machines, SSH for Linux and Macs, and SNMP for networking equipment like switches and routers. Learn more about general concepts of Devices. JEM Central Management Server Overview The Central Management Server provides functionality such as system configuration, data collection, data storage, and data processing with one or more JEM Controllers. Learn more: JEM Central Management Server Message Queue The Message Queue is the primary communication mechanism between the JEM Controller and JEM Central Server, and is used to manage and distribute all incoming and outgoing messages. Central Server Application All device data collected by the controllers can be used for extensive reporting around energy consumption, energy savings, and carbon emissions. For more details, see Reporting. Reporting Data Processor The Reporting Data Processor receives events and device updates from the controller (e.g. power, on/off status, utilization, temperature, etc.). These events are aggregated and written as historical data into the database. Object Store / PostgreSQL Database The database is an essential part of the JEM Central Management Server. This database holds all device data, configuration data, and historical & realtime reporting data. Web Server JEM Central Management Server has an integrated web server to host files and resources for the Management Console, and to service web service requests for the JEM Web Service API. Depending on the installation, the Web Server port is 8080, 443 (default ports), or any other port you choose to specify during the installation (see Login and Ports). Management Console User Interface (UI) The Management Console is a browser based user interface used to configure and manage the JouleX Energy Manager. It is installed along with the other components during the standard JEM installation process. You can access the Management Console from any computer, as long as it has a network connection to the JEM Central Management Web Server. Although the management console works with most web browsers (IE6+, Firefox 2+, Google Chrome) it is recommended that the most current version of a modern browser like Mozilla Firefox or Google Chrome is used for the best experience. API In addition to the management console, JEM offers a Web Services based API (Application Programming Interface), which can be used by external software tools to communicate and interact with JEM (See JEM Web Service API). JouleX Energy Management Process Asset connectors and device proxies comprise the core foundation of JouleX Energy Manager. Once a device is added to the system (e.g. by an Asset Connector), JEM will begin to periodically monitor and analyze the device for: current power status, power consumption, load and utilization, hardware and software configuration changes or connected device changes, power consumption data, along with other collected information like utilization, load, and temperature. What is a device? Devices are a core concept in JouleX Energy Manager. A device represents each unique network attached component managed by JEM. Since JEM supports a wide variety of different device types, a device is a rather generic structure which maintains information about each specific device. Every device has a minimal set of data fields, including a unique device identifier (id), type, IP address (uri), current device status, power, a location and/or business unit and more. However, only the id field and the type field are required for a device. Other data fields are optional. Device Identifier The id field uniquely identifies a device in JouleX Energy Manager. The id is different than an IP or MAC address, because not every device has an IP or MAC address (e.g. monitors attached to a computer do not have a IP or MAC address). Usually, the id field is only used internally to JEM, but is important to know about it when comes to Scripting. However, inside the JEM Management Console you normally work at the level of IP addresses (uri), MAC addresses (mac) and hostname instead of device id's to perform tasks like: Search for device in the Devices page. Manage lists of protected devices which must not be powered down. See Protected Devices Create power management rules in the policy. See Device Conditions Using the DQL - Device Query Language Device Status and Power Consumption Every device managed by JEM has a corresponding status. This status represents the current power status of the device (e.g. ON, OFF, etc.). JEM continuously monitors each device and displays any device status changes (between On, Off, Standby, etc) in the management console. Learn more about Device Status. Regardless of the device status, JEM also measures the power consumption of each device. Various methods for power measurement are described in TruJoule Energy Profiles. Device Type The type is an important data field which describes what kind of hardware or network device it represents. The System Architecture article describes device proxies as a method to interact with different types of hardware components in a unique way. Depending on the type of a device (e.g. pc.windows, pc.linux, switch, etc.) a special device proxy is used to implement low-level communication using device type specific protocols (WMI, SSH, SNMP, etc). Learn more about Device Types. Other Data Fields Devices usually have more data fields than id, type, status and power. Depending on the type, a device might have 20 to 40 to include all information necessary for detailed device monitoring and power measurement. See the general introduction about Device Data Fields for more details. Lifecycle of a Device Lifecycle of a device Adding devices A device can be added to JEM one of two ways. The first option is to add a device manually using the Add Device Dialog feature in the Devices page. This might be a good approach when you get started with JEM or to include certain device for testing, but is not practical for thousands of devices. The preferred method of importing devices is by using Asset Connectors. With Asset Connectors (also see System Architecture) you can import devices from existing system management and network management tools which already exist in your organization. Working with devices 19 of 186 JouleX Energy Manager v24295 Manual Once a device is added to JEM, it is continuously monitored and measured. At regular intervals, JEM collects device information like status, power consumption, hardware and software configuration, load, utilization and more and stores this information permanently in the JEM database. Selecting a device and clicking the View/Edit button or double clicking a device will bring up the Device Viewer Dialog, which shows the device details: Creating rules and policies You can define Rules to automatically manage the power state of your devices depending on the conditions you choose. Deleting a device Similar to adding a device, a device can be removed manually or will implicitly removed from JEM by deleting the associated asset connector. Please keep in mind that removed devices will no longer be visible in the device view but are still included in historical reports. This way reporting data is consistent for the past, even when devices are replaced, removed or deleted. For more information on deleted devices, see Delete Devices. Device Data Fields The following list is an complete overview of all available data fields for each device. Note: By default, Devices can have a maximum of 2000 Device Data Fields. To increase the number of maximum Device Data Fields, enter following line to the Optional Settings box within Settings > JEM Controllers > > Edit Settings > System/Network and adjust the amount as required: maxNumberOfDeviceDataFields=2000 Name Description Data Format Access Rights __orgpath This is the logical path to the object inside the organization STRING R accessmode Indicated the devices Access Mode Possible Values: minimal|standard|advanced STRING RW 20 of 186 JouleX Energy Manager v24295 Manual For more information click here. acguid Internal ID of the Asset Connector STRING RW acname Name of the Asset Connector STRING RW actype Type of the Asset Connector STRING RW ad.distinguishedName Organizational Unit of the device in the Active Directory STRING RW ad.driverName AD printer driver name STRING R ad.lastlogon Last AD Logon Time STRING R ad.site Location in the network topology STRING R airflow The airflow inside the device in cubic feet per minute. DOUBLE R anel.password Password for the Anel IP Power Switch device STRING RW anel.uri URI of the Anel IP Power Switch device STRING RW battery.mode Indicates if the device runs on battery STRING RW battery.mode.powerhandling Defines how the consumption is handled in battery mode Possible Values: zeropower|savepower|(normal) STRING RW co2rate CO2 Rate DOUBLE R configid Identification String for Hardware used within this device, also used to apply energy profiles to similar systems if enabled in energy profile of a device STRING RW conflicted.ip Indicates a IP Address conflict with another device STRING R consumptionHigh Base power consumption of device when device is running under high load DOUBLE RW consumptionIdle Base power consumption of device when device is running under normal conditions DOUBLE RW consumptionMax Maximum power ever seen for this device. DOUBLE RW consumptionMin Minimum power ever seen for this device in non-off state. DOUBLE RW consumptionOff Power consumption when device is turned off DOUBLE RW consumptionSource Source of energy consumption data STRING R consumptionStandby Base power consumption of device when device is in standby or hibernate mode. This mostly applies to all types of computer based devices (PCs, Macs, Servers, Laptops, etc.) DOUBLE RW cpu.clockspeed Current Clock Speed of the CPU DOUBLE R credentialtype Credential Type - if e.g. set to custom username/password will not be overwritten on Asset Connector refresh STRING RW customConsumption Is set to 1 if consumption values are entered by user Possible Values: 0 (disabled)|1 (enabled) STRING RW customConsumption.master Indicates the device as Custom Consumption template Possible Values: 0 (disabled)|1 (enabled) STRING RW datacenter Name of the datacenter which the device is located in STRING RW dcm.capabilities.airflow_monitoring Indicates if DCM supports airflow monitoring for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.core_configuration Indicates if DCM supports core configuration for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.cpu_power_control Indicates if DCM supports CPU power control for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.cpu_power_monitoring Indicates if DCM supports CPU power monitoring for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.dynamic_power_capping Indicates if DCM supports dynamic power capping for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.hard_power_off Indicates if DCM supports hard power off for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.inlet_temperature_monitoring Indicates if DCM supports inlet temperature monitoring for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.instantaneous_power_monitoring Indicates if DCM supports instantaneous power monitoring for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.memory_power_monitoring Indicates if DCM supports memory power monitoring for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.node_discovering Indicates if DCM supports node discovery for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.outlet_state_control Indicates if DCM supports outlet state control for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.outlet_state_monitoring Indicates if DCM supports outlet monitoring for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.outlet_temperature_monitoring Indicates if DCM supports outlet temperature monitoring for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.power_control Indicates if DCM supports power control for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.power_monitoring Indicates if DCM supports power monitoring for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.power_on Indicates if DCM supports power on for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.realtime_monitoring Indicates if DCM supports real-time monitoring for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.capabilities.soft_power_off Indicates if DCM supports soft power off for this device Possible Values: 0 (not supported)|1 (supported) STRING R dcm.connector Overrides the connector used by the DCM STRING RW dcm.derated_power The derated power used by the device STRING RW dcm.entity_id The entity ID of the device in DCM STRING RW dcm.ip The IP Address of the used DCM server (must exist in Asset Collectors) STRING RW dcm.model The human readable name of the connector used by the DCM STRING RW dcm.policy_id The ID of the DCM policy associated with the device STRING R dcm.poweroff The kind of poweroff the DCM should perform (soft/hard) Possible Values: soft|hard STRING RW defaultgw Default Gateway of the network interface STRING RW description Device Description STRING R distribution The structured release and version of the installed operating system STRING RW dns.disabled Disable DNS resolution Possible Values: 0 (enabled)|1 (disabled) STRING RW dns.lastempty Time when an empty DNS result was encountered first DATETIME RW dns.lastupdate Last date and time of DNS updated DATETIME RW dns.ttl Time the last successful DNS result is used in days DOUBLE RW domain Network Domain STRING RW edata.match Quality of TruJoule Edata match For more information click here. STRING RW encryption.type Encryption Type used for Windows WMI communication. If value is not set PacketPrivacy is used. For more information see http://msdn.microsoft.com/enus/library/system.management.authenticationlevel.aspx Possible Values: Call|Connect|Default|None|Packet|PacketIntegrity|PacketPrivacy|Unchanged STRING RW energystar.sleeptimer Energystar Sleep Timer in minutes STRING R energywise.caliber By EnergyWise reported precision of the power values For more information click here. STRING R energywise.deepsleep Indicates how the device was set into deep sleep state (native/CUCM) Possible Values: native (via EnergyWise)|CUCM (via Callmanager) STRING RW energywise.disable.daisychaincheck Set to 1 to disable EnergyWise Daisy Chain Check Possible Values: 0 (enabled)|1 (disabled) STRING RW energywise.domain Name of the EnergyWise domain the device belongs to STRING RW energywise.endpoint Indicates if the device is an endpoint device STRING RW energywise.if_caliber EnergyWise caliber of the associated switch port of a poe endpoint device For more information click here. STRING R energywise.if_name Name of the associated switch port of a PoE endpoint device STRING R energywise.if_uuid EnergyWise UUID of the associated switch port of a poe endpoint device STRING RW energywise.importance This is the EnergyWise importance of the device. The range goes from 1 to 100 where a higher value means more important. DOUBLE RW energywise.index Index used by the EnergyWise Agent to enumerate devices. To exclude a device from the export to the EnergyWise domain the index has to be set to 1. DOUBLE RW energywise.lastupdate Time of the last device update by the AssetCollector DATETIME RW energywise.level This is the current EnergyWise power level of the device Possible Values: 0|1|2|3|4|5|6|7|8|9|10 For more information click here. DOUBLE R 21 of 186 JouleX Energy Manager v24295 Manual energywise.local_ip Local IP Address of the JEM server which is used by EnergyWise for direct query replies STRING RW energywise.name Name of the device in the EnergyWise domain STRING RW energywise.password EnergyWise Management Secret of the EnergyWise Domain the device belongs to STRING RW energywise.port EnergyWise port of the management switch DOUBLE RW energywise.query_uri URI of the EnergyWise management switch or a comma separated list of multiple URI's for redundancy STRING RW energywise.role The EnergyWise role describes the function of a device. STRING RW energywise.structure Parent-Child relationship in the EnergyWise domain STRING R energywise.type EnergyWise Device Type STRING R energywise.uuid Unique identifier in the EnergyWise domain STRING RW flag Device can be flagged with different colors for grouping STRING RW fqdn Fully Qualified Domain Name STRING RW hostname Hostname STRING RW HyperV.integratedservices.version Version of the Hyper-V Integrated Services used in a VM STRING R HyperV.ip The IP-Address of this Hyper-V Server STRING RW HyperV.name Name of the Virtual Machine STRING RW HyperV.password Password to connect to HyperV Server over WMI STRING RW HyperV.server URI of the HyperV Server STRING RW HyperV.structure Place in the Hyper-V hierarchy STRING R HyperV.type This device's Hyper-V type Possible Values: HostSystem|VirtualMachine STRING R HyperV.username Username to connect to HyperV Server over WMI STRING RW HyperV.vmid ID of the Virtual Machine STRING R id Unique JEM device identifier STRING R ilo2.advanced_license Indicates if the iLO2 uses an advanced License Possible Values: 0 (disabled)|1 (enabled) STRING RW ilo2.ip iLO2 IP Address STRING RW ilo2.password iLO2 Password STRING RW ilo2.port iLO2 Port DOUBLE RW ilo2.temperature.label Name of the Temperature Sensor STRING RW ilo2.url Obsolete use iLO2.ip STRING RW ilo2.username iLO2 Username STRING RW ilo2.version iLO2 Version (2|3) STRING RW STRING RW indirectSaving info.lastupdate Time and Date when the devices information was updated. Set to empty to force a refresh. DATETIME RW infoCDDrive Number of CD drives STRING R infoCPU Information about the CPU STRING RW infoCPU.maxClockSpeed Maximum supported Clock Speed STRING RW infoCPU.maxClockSpeedTurbo Maximum supported Clock Speed of device in Turbo Mode STRING RW infoCPU.minClockSpeed Minimum supported Clock Speed STRING RW infoGPU Information about the GPU STRING RW infoGPUDeviceID PCI device ID of the GPU STRING RW infoGPUVendorID PCI vendor ID of the GPU STRING RW infoHDD Hard disk drive count or information STRING R infoNumberOfCPUs Number of CPUs DOUBLE RW infoPrinterName Printer Name STRING RW infoPrinterStatus Current Printer Status STRING RW infoRAM RAM module count or information STRING R infoScreenSaverState Current state of the screensaver Possible Values: (unknown)|1 (active) STRING R infoScreenSaverTime Elapsed time in minutes since the screen saver is running STRING RW infoUser Username of logged in users if measure.loggedon.users is enabled STRING R ip IP address of the network interface STRING RW ipmi.dcmi This indicates if the device supports DCMI (Data Center Manageability Interface) Possible Values: 0 (not supported)|1 (supported) STRING RW ipmi.ip IPMI/BMC IP Address STRING RW ipmi.mac IPMI/BMC MAC Address STRING RW ipmi.password IPMI Password STRING RW ipmi.sensor.power Custom IPMI Power Sensor Name STRING RW ipmi.sensor.temperature_inlet Custom IPMI Temperature Sensor Name STRING RW ipmi.status IPMI Status Type Possible Values: acpi|chassis STRING RW ipmi.username IPMI Username STRING RW issue Error code number and description STRING R issue.date Date and time of last issue DATETIME R jpi JouleX Performance Index (depends on device type) For more information click here. DOUBLE R junos.deviceid Unique ID assigned from Junos Space Manager STRING RW junos.family Junos Space Device Family STRING R junos.interface.name Name of the Switch Interface the device is connected to STRING RW junos.interface.powerlimit PoE Power Limit of the Switch Interface the device is connected to STRING RW junos.interface.priority Priority of the Switch Interface the device is connected to STRING RW junos.managed_status Current Device Management Status STRING R junos.name Device Name assigned from Junos Space Manager STRING R junos.os_version Juniper Device Operating System version STRING R junos.password Password of the Junos Space Manager STRING RW junos.platform Junos Space Platform STRING R junos.serial Device Serial Number STRING R junos.space_uri URI of the Junos Space Manager STRING RW junos.temperature.label Junos Space Temperature Sensor Name STRING RW junos.username Username of the Junos Space Manager STRING RW keywords Custom keywords/tags to group devices STRING RW location Location of Device For more information click here. STRING RW mac MAC Address of device STRING RW maxCoreLoad Max. utilization over all CPU cores DOUBLE RW measure.disabled If set to 1 measurement is disabled for the device Possible Values: 0 (enabled)|1 (disabled) STRING RW measure.interval Device specific Measure Interval in seconds DOUBLE RW measure.loggedon.users Set to 1 to get logged in users Possible Values: 0 (disabled)|1 (enabled) STRING RW measure.mode Defines how the device is measured Possible Values: client|(normal) STRING RW meter.id Identifier of the Meter STRING RW meter.lastReading Last energy value read by the meter DOUBLE RW meter.lastReadingTime Last Time the energy value was read DATETIME RW meter.meteringMode Defines the Metering Mode (power|energy) Possible Values: power|energy STRING RW meter.sensor_id Indicates the type of the sensor STRING RW meter.type Indicates the type of the meter STRING RW mjem.command.off The action that is executed when the device is debing powered off via the JouleX Mobile App. Possible Values: off|hibernate|standby STRING RW STRING RW mjemid Associates a device with a mobile device for remote control 22 of 186 JouleX Energy Manager v24295 Manual mjemid STRING RW model Model Name in the form of vendor//product STRING RW monitor.brightness Brightness setting of monitor between 0 and 100 (default is 50) STRING RW monitor.displaysize Display Size STRING RW monitor.displaytype Monitor Type Possible Values: analog|digital STRING R monitor.edidver EDID Version STRING R monitor.manufacturingdate Manufacturing Date STRING R monitor.powermanagement Powermanagment features STRING R monitor.productid Product ID STRING RW monitor.serial Serial Number STRING RW netinterfacename Name of a network interface STRING RW objecttype Type of object in the object store STRING R operatingSystem Operating System STRING RW operatingSystemServicePack Operating System Service Pack of Windows based Devices STRING R operatingSystemVersion Operating System Version STRING RW orgfolder Logical folder where the object is defined STRING R outlet.id ID of the PDU Outlet STRING RW parent.deviceid DeviceID of the parent device STRING RW password Password credentials used to access the device (e.g. Windows, Linux, Mac) STRING RW pc.hardpoweroff Set to 1 to override gracefully operating system shutdown and force a hard power off Possible Values: 0 (disabled)|1 (enabled) STRING RW pdu.voltage Voltage of the pdu DOUBLE RW pending.interval Device specific pending scanner interval in seconds DOUBLE RW pending.retries Device specific pending scanner retry count DOUBLE RW performance.level Performance Level of device Possible Values: low|adaptive|high For more information click here. STRING R permanentrule ID of a permanent rule STRING RW phone.directorynumber Directory number of the phone in the Callmanager/DLS STRING R PnPDeviceID Plug and Play Device ID of attached device STRING RW policy.disabled If set to 1 policy processing is disabled for the device Possible Values: 0 (enabled)|1 (disabled) STRING RW policy.interval Device specific time interval for policy execution in seconds DOUBLE RW portal.option Determines if a device is included or excluded in terms of power management with JEM. Appropriate conditions can be set in the policy rules. Possible Values: optin (device is included)|optout (device is excluded) For more information click here. STRING RW power The actual power of the device in Watts. DOUBLE R power.cap Current power capping in Watt. A value of 0 means no power capping is in place. DOUBLE R power.category Power Category Possible Values: consumer|producer|meter|virtual STRING R power.cpu The power consumed by the CPU in Watts. DOUBLE R power.delegate_id ID of the device which uses this device as sensor for indirect measurement STRING RW power.memory The power consumed by the memory in Watts. DOUBLE R power.quality Indicates the the accuracy of the power readings. Values are between 0-10 (9 = best / 10 = reserved). Possible Values: 0|1|2|3|4|5|6|7|8|9|10 For more information click here. DOUBLE R power.reporttype Power Report Type Possible Values: delegate|ignore|virtual STRING RW power.savepoint Power reference reading before policy action was applied DOUBLE R power.sensor_id Device ID of the sensor for indirect measurement STRING RW power_price Actual utility price for this device (depends on the location) DOUBLE R power_saved Amount of saved power for this device due policy actions DOUBLE R printer.pagecount Total count of printed pages DOUBLE RW printer.pagecount_diff Pages printed within the last measure interval DOUBLE RW printer.sec.perpage Seconds per printed page STRING RW printer.wh.perpage Watt hours per printed page STRING RW product Name of the Product STRING RW protected Defined which features of the device handling are protected or denied Possible Values: execution STRING RW proxy.customList Device specific custom List of Device Proxies For more information click here. STRING RW quarantine Indicates if the device is quarantined Possible Values: 0 (not in quarantine)|1 (quarantined) STRING R refresh.winpowerpolicy.disabled Set to 1 to disable the refreshing of the current Windows Power Policy while measurement Possible Values: 0 (enabled)|1 (disabled) STRING RW ruleid Contains the ID of the Rule which currently manages the device STRING R rulename If the device is currently controlled by a rule, this field contains the name of the rule STRING RW runtimeData.deviceMatrix Device Capability Matrix STRING RW runtimeData.ispending Indicates if the device is currently in Pending State STRING RW runtimeData.lastmeasureduration Duration of the last Measurement DOUBLE RW runtimeData.lastmeasuretime Time of the last Measurement DATETIME RW runtimeData.lastPolicyDuration Duration of the last Policy Execution DOUBLE RW runtimeData.lastPolicyTime Time of the last Policy Execution DATETIME RW runtimeData.lastscanduration Duration of the last Status Check DOUBLE RW runtimeData.lastscantime Time of the last Status Check DATETIME RW runtimeData.policyProcessingState Current State of the Policy Processing Possible Values: NONE|QUEUED|PROCESSING STRING RW scan.disabled If set to 1 scanning is disabled for the device Possible Values: 0 (enabled)|1 (disabled) STRING RW scan.interval Device specific Scan Interval in seconds DOUBLE RW serial Serial Number of the Device STRING RW snmp.auth.password SNMP Authentication Password for SNMPv3 For more information click here. STRING RW snmp.authtype SNMP Authentication Type for SNMPv3 Possible Values: MD5|SHA|(none) For more information click here. STRING RW snmp.community.password SNMP Community Password for SNMP version 1 and 2 For more information click here. STRING RW snmp.entityoidlist List of Entity OIDs STRING RW snmp.name Name of the SNMP device STRING R snmp.port SNMP Port of the device STRING RW snmp.priv.password SNMP Privacy Password for SNMPv3 For more information click here. STRING RW snmp.privtype SNMP Privacy Type for SNMPv3 Possible Values: AES128|AES192|AES256|DES|TripleDES|(none) For more information click here. STRING RW snmp.retries Device specific number of SNMP Retries STRING RW snmp.sysdescription SNMP Device System Description STRING R snmp.sysobjectid SNMP Sysobject ID STRING RW snmp.sysuptime SNMP Uptime STRING R snmp.timeout Device specific SNMP Request Timeout STRING RW snmp.trapport SNMP Trap Port of the device STRING RW snmp.username SNMP Username for SNMPv3 For more information click here. STRING RW snmp.version SNMP Version Possible Values: 1|2|3 For more information click here. STRING RW For more information click here. 23 of 186 JouleX Energy Manager v24295 Manual ssh.disabled Set to 1 to disable SSH Access Possible Values: 0 (enabled)|1 (disabled) For more information click here. STRING RW ssh.keyfile Specify Key File for SSH Authentication, needs to reside in '\service\sshkeys\' For more information click here. STRING RW ssh.passphrase Specify Passphrase for supplied key file, requires ssh.keyfile to be set For more information click here. STRING RW ssh.port Custom SSH Port For more information click here. STRING RW status The current energy status of the device Possible Values: ON|OFF|STANDBY|HIBERNATE|UNKNOWN For more information click here. ANY R statusCheck.tcp.port Custom TCP Port for Status Check For more information click here. STRING RW statusCheck.type Status Check Type Possible Values: none|icmp|ipmi|snmp|tcp For more information click here. STRING RW subnet IP Subnet Mask of the network interface STRING RW switch.discovery.protocol Defines the discovery protocol which should be used Possible Values: cdp|lldp|(first cpd than lldp) STRING RW switch.ifalias Switch Port Alias STRING R switch.ifindex Switch Port Index DOUBLE RW switch.neighbordiscovery.enabled Indicated if neighbor devices should be imported during a device info update Possible Values: 0 (disabled)|1 (enabled) STRING RW switch.poeenabled Indicates if the switch supports PoE STRING RW switch.poeport Indicates if the poe port should be used for measurement STRING RW switch.poeportindex Index of the switch port the device is connected to DOUBLE RW switch.poeusage Sum of power used by all PoE ports in Watts DOUBLE RW switch.portcount Count of the switch ports DOUBLE R switch.portname Name of the switch port the device is connected to STRING RW switch.uri URI of the switch the PoE device is connected to STRING RW system.type Windows system type Possible Values: Server|Desktop|Mobile For more information click here. STRING R temperature.inlet Inlet Temperature DOUBLE R temperature.outlet Outlet Temperature DOUBLE R timeout.hdd.off Windows Hard Disk Idle Timeout in minutes DOUBLE RW timeout.hibernate Windows Hibernate Timeout in minutes DOUBLE RW timeout.monitor.blank Windows Monitor Blank Timeout in minutes (only supported on Windows 2008 R2 and 7) DOUBLE RW timeout.monitor.off Windows Monitor Off Timeout in minutes DOUBLE RW timeout.standby Windows Standby Timeout in minutes DOUBLE RW timezone Timezone associated to the device location (as fallback the timezone.remote is used) STRING R type Device Type Possible Values: p|e|m|.|d|a|t|a|.|D|e|v|i|c|e|H|e|l|p|e|r|.|d|e|v|i|c|e|T|y|p|e|W|i|t|h|L|a|b|e|l|s|A|r|r|(|) For more information click here. STRING RW ucs.assignedToDn UCS Distinguished name the device is assigned to STRING RW ucs.chassis_id ID of the chassis DOUBLE R ucs.description UCS Device Description STRING R ucs.dn UCS Distinguished Name STRING RW ucs.name UCS Device Name STRING R ucs.numOfCores Number of cores per CPU DOUBLE R ucs.numOfCoresEnabled Number of enabled cores per CPU DOUBLE R ucs.password Password for the UCS Manager STRING RW ucs.powerGroupName Name of the UCS Power Group, which is used for Power Capping STRING RW ucs.server_id ID of the UCS Server STRING R ucs.slot_id ID of the slot in the chassis DOUBLE R ucs.structure Place in the UCS hierarchy in form of 'Chassis//Server' STRING R ucs.type UCS Device type (blade|chassis) Possible Values: blade|chassis STRING R ucs.url URL of the UCS Manager STRING RW ucs.username Username for the UCS Manager STRING RW ucs.uuid UCS Unique Identifier STRING R unit Business unit associated with the device STRING RW uri Unified Resource Identifier STRING RW username User name credentials used to access the device (e.g. Windows, Linux, Mac) STRING RW utilization Device Utilization DOUBLE R vendor Name of the Vendor STRING RW virtual.type Virtual Machine Type STRING RW vmware.name Name of the Virtual Machine STRING RW vmware.password Password to connect the ESX host or vCenter server STRING RW vmware.path Storage path of the virtual machine file STRING RW vmware.power.sensor Name of the hardware sensor which should be read STRING RW vmware.power.sensor.aggregate Aggregate all matching power sensors Possible Values: 0 (disabled)|1 (enabled) STRING RW vmware.server URI of the ESX host or vCenter server STRING RW vmware.structure Place in the VMware hierarchy in form of 'Datacenter//Cluster//Host' STRING R vmware.type Type of the VMware device Possible Values: VirtualMachine|HostSystem STRING RW vmware.usegwt Activates alternative way of reading sensor data from VMware host Possible Values: 0 (disabled)|1 (enabled) STRING RW vmware.username Username to connect the ESX host or vCenter server STRING RW vmware.uuid Universally Unique Identifier of the virtual machine STRING R vPro.amt.version AMT version running on the system STRING RW vPro.password vPro Password STRING RW vPro.tls Indicates if Transport Layer Security should be used for the vPro connections. If TLS is enabled the vPro.url has to be set to the FQDN of the vPro interface. Possible Values: 0 (disabled)|1 (enabled) STRING RW vPro.url FQDN, Hostname or IP address of the vPro interface STRING RW vPro.username vPro Username STRING RW wakeup.token Device specific Token for user WakeUp For more information click here. STRING RW windir Path of Windows Folder STRING RW windows.command.hibernate Custom Windows Hibernate Command STRING RW windows.command.poweroff Custom Windows Power Off Command STRING RW windows.command.standby Custom Windows Standby Command STRING RW windows.helper.id The unique identifier of the Windows Helper STRING RW windows.helper.version The version of the Windows Helper which runs on the device STRING RW windows.local Indicates if the Device is the local machine Possible Values: 0 (not local)|1 (local) STRING RW winrm.enabled Allow WinRM Access for device instead of WMI Possible Values: 0 (disabled)|1 (enabled) For more information click here. STRING RW winrm.https Set to 1 to force WinRM via HTTPS Possible Values: 0 (disabled)|1 (enabled) For more information click here. STRING RW winrm.port Custom WinRM Port For more information click here. STRING RW winrm.status Is set to 1 after first successful WinRM request Possible Values: 1 (successful) For more information click here. STRING R Disable WMI Access for device 24 of 186 JouleX Energy Manager v24295 Manual wmi.disabled Possible Values: 0 (enabled)|1 (disabled) For more information click here. STRING RW wmi.status Is set to 1 after first successful WMI request Possible Values: 0 (unknown)|1 (successful) For more information click here. STRING R wol.method Indicates which method is used for WoL Possible Values: energywise|client|(normal) STRING RW R = Read Access, RW = Read and Write Access Device Status The following list contains a description of the various power states supported for a device. Device Status Description UNKNOWN The device status is currently unknown. This usually happens when a device was imported via an Asset Connector and was not reachable in the network thereafter. OFF The device is currently turned off. STANDBY The device is currently in standby mode. HIBERNATE The device is currently in hibernate mode. ON The device is currently turned on. Notes: The status of a device can only be determined correctly when the application controls the power state of the device. For instance, when a device is manually put into hibernate mode, JEM will view it as powered off. Whereas when the application put the device in hibernate mode, JEM is aware of the status and will report the device correctly as "HIBERNATE". It's also not possible to switch from an OFF-like status (OFF, STANDBY, HIBERNATE) to another status without first going to an ON-like state. This means you cannot change the device status from STANDBY to OFF without turning the device ON in between. Device Query Language (DQL) The Device Query Language is a powerful feature in the JouleX Energy Manager to provide you with greater flexibility in many areas of the application. For instance you can use the DQL to perform search operations which go beyond simple selections (like a single location, single business unit etc.) You can also use the DQL to build policies for a specific set of devices. To get started with the DQL we recommend to open the Devices view and start from there. Whenever you perform a selection in the device navigator on the left side you can see how the search box gets populated with search terms. This is DQL search. Feel free to play with some DQL searches from the examples below. However, depending on your devices, the search might or might not return any results. We recommend briefly reading the section about Device Data Fields (which store all information about the device, like locations, types, units, models, etc) Here are some sample queries: uri=12.1.2.1 match device with the IP address 12.2.1.2 12.2.1.2 same as uri=12.2.1.2 match a range of IP addresses from 12.2.1.0 to 12.2.1.255 using the CIDR notation. For more information about IP address ranges, see here: http://en.wikipedia.org/wiki/CIDR_notation 12.2.1.0/24 NOTE: This feature is not supported for report generation. location = Rome devices located in Rome location = "San Francisco" need quotes because the space contained in the name of the location location = 'San Francisco' you can use single quotes or double quotes location = '' devices for which the location field is empty (no location set) location <> '' check if the device's location is set (not empty) location != '' identical to location<>' ' NOTE: != has the same meaning as <> not(location=Rome) all devices which are not located in Rome As you can see from the samples below, each device has a uri and location field. Devices will generally have many more populated fields, like type, model, unit and many more. Make sure you learn about Device Data Fields to understand make the most of the options available. Working with AND and OR Examples of some more complex DQL searches: location=Rome and vendor=HP devices located in Rome from vendor HP location=Rome vendor=HP Identical to location=Rome and vendor=HP NOTE: default combination is AND-like fashion location=Boston OR location=Atlanta devices located either in Boston or in Atlanta Working with Wildcards You can also use wildcards to match parts of device fields. Use the asterisk (*) at the beginning or the end of any value you would like to match. vendorfield="DELL*" Matches all devices with the vendorfield starting with DELL, like DELL Server, DELL Laptop, etc. operatingSystem="*Vista*" and location='Atlanta' Matches all devices in Atlanta which run Microsoft Windows Vista Working with hierarchical values In many cases, data field values have a hierarchical structure. For instance, the location field often includes a main location and one or more sub-locations, like in the following example: Atlanta//Buckhead//Building-1 Atlanta//Buckhead//Building-2 Atlanta//DataCenter1//Floor-1 The different hierarchy levels are separated by double-slash characters // similar to paths in the file system. Note, that JEM uses double-slashes to reduce naming collisions with existing naming schemes. The JEM Management Console automatically supports hierarchical values in the Device Navigator Tree by creating a folder-like structure. DQL is aware of hierarchical values. Using the standard field=value query, DQL also matches all sub-values in a hierarchy. This means a search for location='Atlanta' also matches devices in Atlanta//Buckhead//Building-1 and Atlanta//Buckhead//Building-2. If the DQL should strictly match the value excluding any sub-values, use the === operator (3 equal signs) instead. In this case the query location==='Atlanta' would only match devices directly located at the highest level of the hierarchy. The following example will further illustrate the behavior. Let's assume the following device configuration: Device Name location device1 Atlanta device2 Atlanta//Buckhead//Building-1 device3 Atlanta//Buckhead//Building-1 device4 Atlanta//Buckhead//Building-2 device5 Atlanta//DataCenter1 device6 Atlanta GA On the Devices page the above example it would look like this: The following sample DQL queries demonstrate the matching semantics: DQL Query Matched Devices location='Atlanta' device1, device2, device3, device4, device5 location='Atlanta//Buckhead' device2, device3, device4 location==='Atlanta' device1 location==='Atlanta//Buckhead' no match (no device exactly at this level) location='Atlanta*' device1, device2, device3, device4, device5, device6 location='Atlanta//*' device2, device3, device4, device5 location='*GA' device6 Device Segments You will likely need to create reporting on a regular basis for a small segment or subset of the thousands of devices connected to your network. Through JEM Device Segments, you have the ability to group an identifiable set of devices into those subsets or Segments. For instance, you can create a Segment containing all devices in a certain location, or another Segment for only Windows machines. It is possible to use any number of combinations from available data fields. 25 of 186 JouleX Energy Manager v24295 Manual The Devices Segments function also supports special handling of virtual devices (Advanced Options). Read More about power consumption of virtual devices and how this impacts aggregation and interpretation of your energy data. Creating a Segment New Segments can be created throughout the JEM platform, wherever they apply. However, in most cases, you will create Segments on the Devices View. To do this, open the dialog box by clicking on Segments on the left hand side of the window, then click Create New Segment. This will open a new dialog box, giving you the options to name the Device Segment and set the user visibility level. Add as many conditions as you need to create the appropriate subset of data that fits your reporting needs by clicking on Add Condition and then click on Basic Filter: The new box will list all available Device Fields and, if applicable, their different Values. In the following example, we want to group all Windows PCs in Munich into the segment Windows Machines. First, we added the Device Type: Then we chose the Location: The Segment Editor will automatically generate a name for the new segments, in this case it would be pc.windows and Munich, but you can rename it to anything you choose. In the example, we renamed the segment Windows Machines. In the Filters for this Segment: you will be able to view and edit the values you have selected. To modify the criteria of a Segment, just click . You will now be able to see the new Segment in the Devices View on the left hand side. To change the preferences, click the icon. Naming the Segment As described above, the Segment Editor automatically generates a descriptive name for your Segment, based on the device options you choose. You always have the option to manually change the name of a Segment by editing the Name field. To revert to automated naming, just erase all content from the Name box. Advanced Filter With the Advanced Filter, you can add more complex filters to your segment. Advanced Filter enables you to manually add a DQL filter to the 26 of 186 JouleX Energy Manager v24295 Manual query. This Advanced Filter is appended to the other parameters in this segment. For example, if you want to handle physical and virtual devices differently, you can use the Virtual Devices filter to determine which kind of devices you want in this segment. More information about Virtual Devices. Device Audit, Diagnose and Capability Matrix The More menu in the Device Viewer Dialog has three options; Audit, Diagnose and Capability Matrix. Audit Log The Audit page displays audit messages for a device. Audit messages include device status changes like power on or power off, warnings, and errors for this device. Diagnose The Diagnose page has the option to diagnose a device. If a device has technical difficulties with a port, proxy, or other function, it will display the errors and possible solutions. Capability Matrix The Capability Matrix displays in depth detail for the available proxies and the data they provide for the device. 27 of 186 JouleX Energy Manager v24295 Manual Matrix Structure The columns list all proxies that could be addressed. The rows display the different Interfaces. The matrix also displays any failures concerning a proxy and denotes quarantined ones. For more information, see Device Proxies and Capabilities and Quarantine. Device Capabilities In this table all available device capabilities (interfaces) are explained. Device Capability (Interface) Description Status Displays current status of a device. Possible Values: On, Off, Standby, Hibernate PowerStatus Provides the abiltity to change the status of a device. Possible Actions: Power On, Power Off, Standby, Hibernate SensorData Displays current sensor values for a device. Supported Sensors: Power, Utilization, Temperature, Clock Speed DeviceInfo Displays basic device information like model and vendor. Diagnose Displays troubleshooting information for a device. It also attempts to retrieve the status and sensor values through the Status and SensorData interface and provides the results. CustomData Displays some special device information like the current power cap or CPU performance level. PowerCap Provides the ability to set a power cap on a device. PerformanceLevel Provides the ability to set a CPU performance level on device. WindowsPowerPolicy Provides the ability to adjust the current Windows power profile on Microsoft Windows bases devices. EWLevel Provides the ability to set a specific EnergyWise level on a EnergyWise enabled device. NetworkInfo Displays the network information for a device. CheckProcesses Provides the ability to check for running processes on a device. Hostname Displays the hostname of a device. Device Proxies This table shows the available device proxies and their capabilities. Click on the name of a device proxy to see the details about it, e.g. supported interfaces and device types. The State of Quarantine Quarantine is a feature used to avoid repeating error messages and unnecessary network traffic if a device doesn't work properly. If a device gets too many errors while executing the same action, by the same device proxy in a given time frame, this device proxy interface is set to Quarantine. This means the action resulting in the error will no longer be executed by this device proxy. In some cases, another device proxy is able to perform the actions instead. If no other device proxy is found, the action will not be executed at all, but no error is logged and no unnecessary network traffic is produced. If the time since the the first error occurred is greater then the configured time frame, the device proxy interface is released from quarantine and will be executed again. Finding Quarantined Devices In addition to Saved Searches, you can search for quarantined devices on the Devices page by applying the search term listed below. This option allows you to combine the search for quarantined devices with further criteria. quarantine=1 The Quarantine Settings The default time settings trigger Quarantine when reaching 3 errors in 2 hours. This setting can be changed in the settings.xml file. To disable the quarantine feature, set the deviceQuarantineTimeout setting in the settings.xml to '0'. If any device proxy interface is placed in Quarantine, for a device status will show an error icon and there will be a warning message in the device editor. For more detailed information, check the device Capability Matrix that displays which proxy interface is currently quarantined. Release from Quarantine There are two ways to release a device from Quarantine. The most common way is to access the Devices view, highlight the respective device, click the More menu button, choose Tasks, and click Release from Quarantine. This will cause a pre-edited JEMScript to appear. Click Run JEMScript and the chosen Device(s) will be released from Quarantine. 28 of 186 JouleX Energy Manager v24295 Manual It is also possible to execute the Release from Quarantine function manually, by clicking the More button, then choosing Run JEMScript, add the function manually and execute. For more details, please see; Function: releaseFromQuarantine(). Further Information For further information about device proxies and interfaces/capabilities please see Device Proxies and Capabilities. Supported Actions Per Device Type JouleX Energy Manager supports the following Actions for different devices: Action Description Change Power State Changes the Power Settings to Do Nothing, Power Off, Power Saving Mode, Power On or Time-Based Pattern. Follow Change Power State for more information. Notify user on Power Off Send a custom notification message to Windows users before powering off their devices. Follow Notify User On Power Off/Hib/Stby for more information. JEMScript Action With JEMScript Action, you can create rules which are executed based on device status, system information and complex calculations at runtime. Follow JEMScript Action for more information. Run Shell Script Sends an OS dependent script to the target device and executes it locally. Follow Run Shell Script for more information. Power Capping Control how much power a device can consume in Watts. Follow Power Capping for more information. Set EnergyWise Level Set different energy levels for Cisco EnergyWise supporting devices. Follow Set EnergyWise Level for more information. Set CPU Performance Control the device performance level to low, hight and adaptive. Follow Set CPU Performance for more information. Set Windows Power Policy Change the windows internal energy management policy on devices. Follow Set Windows Power Policy for more information. Send System Notification Send a notification per E-Mail, SNMP or JEMScript if a condition applies. Follow System Notification for more information. List of actions per device types For the detailed list of actions per device types, please take a look at the Supported Device Types table. Device Types Overview JouleX Energy Manager supports a wide variety of devices, including Windows computers, switches, Mac and Linux machines, VoIP telephones, etc., and has the ability to add new device types dynamically. List of device types Device Class Description el.hvac TCP/IP controlled (heating), ventilating or air conditioning (HVAC) device el.ipps.anel TCP/IP controlled power switch el.meter TCP/IP controlled meter el.pdu TCP/IP controlled power distribution unit (PDU) el.psu TCP/IP controlled power supply unit el.ups TCP/IP controlled interruptible power supply (UPS) generic Undefined devices monitor Computer monitor/screen pc.bsd All PC-BSD based computers, servers, desktops, etc. pc.linux All Linux based computers including servers, desktops, etc. pc.mac All Apple Mac based computers, server, laptops, etc. pc.solaris All Solaris based computers, servers, desktops, etc. pc.windows All Windows based computers, server, laptops, etc. printer Printer, Scanner, Plotter, etc. router All routing devices storage All network attached/controlled storages switch All switching devices vmware.host All servers which host virtual machines voip Stands for the class of all VoIP based telephones voip.cisco Cisco VoIP phones voip.siemens Siemens VoIP phones wlanap Stands for the class of all wireless access points wlanap.siemens Siemens HiPath Wireless Access Point Add Custom Device Type If you want to add a device manually that is not listed in the Add Device menu (Add Device), just fill in the Device Type field manually by clicking on Custom... and entering a custom value as shown in the screenshot below. 29 of 186 JouleX Energy Manager v24295 Manual Windows Microsoft Windows devices play a central role in most office environments. JEM offers multiple ways to integrate with Windows desktops, laptops, and servers. The method for the integration of Windows devices is through WMI (see below). To integrate all Windows devices in your network, you can make use of the Active Directory Asset Connector. This will ensure you have correct credentials in place to remotely manage and control Windows devices using WMI. JEM also supports automated discovery and import of attached monitors and printers for Windows devices. Integration of Windows devices using WMI JEM uses the Microsoft WMI protocol for remote management of Windows devices. Starting from Windows XP, WMI is a central component of all Windows operating systems that provides a secure way to interact with Windows machines to retrieve device information (hardware configuration, CPU utilization, etc.), as well as to remotely control the power state. In this article you will find an overview of the different options for integrating with WMI. Further information: WMI - Integration and Configuration Security Note: When you use Advanced Windows Support features like CPU utilization, high-resolution measurement, or end-user notifications, JEM will use Windows Scripting to perform certain tasks on the end device. In this case Windows executes the JouleX scripts in the context of the user credentials provided for the device and Windows automatically creates a local user profile for this user on the enddevice. Please note that this is the default behavior in Microsoft Windows. Using WMI with Domain Admin Credentials Advantages Drawbacks Simple to set up Same credential used to retrieve Active Directory Information can be used to access WMI information on each endpoint. If credential changes, only one place to change access to all devices. Credential stored securely in the SQL DB using AES256 encryption. May violate corporate security policy concerning domain admin. Endpoint communications not encrypted. Using WMI with Local Admin Credentials Advantages Drawbacks Individual admin credentials are stored for each endpoint More secure than storing a single Domain Admin credential Can be automated with Active Directory import scripts Credentials stored securely in the SQL DB using AES256 encryption More difficult to manage a credential per end point device Endpoint communications not encrypted Using WMI with Local Account with WMI Access Advantages Drawbacks Single credential needed for all endpoints being managed More secure than storing a single Domain Admin credential Each credential is granted ONLY WMI access and not full Domain Admin Rights If credential changes, only one place to change access to all devices Credential stored securely in the SQL DB using AES256 encryption Must define a Windows Policy to define a credential and assign WMI permissions for that credential Endpoint communications not encrypted Integrating Windows devices using WinRM WinRM is short for Windows Remote Management. It can be used as alternative to WMI by JEM to control Windows based devices. If you want to know more about WinRM or how to activate it on your Windows devices please take a look at WinRM: Configuration in our Technical Articles section. Advantages Drawbacks Single credential needed for all endpoints being managed More secure than storing a single Domain Admin credential Future MS management platform Each WinRM access is authenticated via Active Directory and a Kerberos ticket is generated All endpoint communication is encrypted If credential changes, only one place to change access to all devices Credential stored securely in the SQL DB using AES256 encryption Only supports Vista and Win7 platforms New Management Infrastructure Windows System Types The Windows system type is determined as follows Server is set if the Windows product type is "Server" or "Domain Controller". Mobile is set if the system has a battery. Desktop is set if the system is not server or mobile. Known Issues In rare cases, during the shutdown process Windows logs an error to the Eventlog that a process is still accessing the registry. SSH-enabled Devices Some devices (e.g. pc.linux) fetch their information via SSH. SSH Configuration See SSH: Configuration Mac Retrieving information for Mac devices connected to your network is handled via SSH. SSH Configuration See SSH: Configuration Device Options linux.command.poweroff Overrides the SSH command executed for powering off the device. linux.command.hibernate Overrides the SSH command executed for hibernating the device. linux.command.standby Overrides the SSH command executed for sending the device into standby. EMC Integration Preliminaries Install Unisphere CLI Download the Unisphere CLI from the EMC support website and install it to %JEM_INSTALL_DIR%/Service/commands. Make sure the uemcli.exe is located in the %JEM_INSTALL_DIR%/Service/commands folder. Activate EMCStorage proxy Before the EMC storage devices can be integrated, the EMCStorage proxy has to be activted. The EMCStorage proxy can be activated under Settings > JEMControllers > Device Proxies >JEMScriptProxies Import of EMC devices 30 of 186 JouleX Energy Manager v24295 Manual To import an EMC device go to the Devices page and click on . In the next step set the Device Type to storage.emc. Therefor, click on the Device Type field and choose custom... out of the drop down menu. A new window opens where you can enter the custom value storage.emc. After you set the URI, Username and Password properties for the device, click on Save Changes & Close to complete the device import. NetApp Integration Import of NetApp storage devices To manually import a NetApp storage device go to the Devices page and click on Therefor, click on the Device Type field and choose storage out of the drop down menu. . In the next step set the Device Type to storage. After you set the URI and the SNMP credentials for the device, click on Save Changes & Close to complete the device import. Additional Information Configuring SNMP Device Data Fields Overview Import Devices using Asset Connectors vPro Integration To integrate devices via the vPro interface, the vPro.url (IP/Hostname/FQDN), vPro.username, and vPro.password extended data fields must be added to the device information (as shown in the image below). If these values are present, the device will be powered on by a vPro remote call without the need to use Wake-on-LAN. If Kerberos authentication is required the vPro.username has to be in the Domain\Username format. To activate TLS (Transport Layer Security) the vPro.tls extended data field must be set to 1 and the vPro.url must be set to the FQDN of the vPro interface. vPro Interface Account Configuration A minimum security level allowing the following access rights must be granted for a successful integration into JEM. General Info Hardware Asset Remote Control (only required for Power On and Power Off actions) Additional Information How to manually add devices How to add extended device data fields and properties Printers Printers are either integrated indirectly, such as when they are directly attached to a PC via USB or parallel Port, or directly if they are Network Printers or Multifunctional Devices. Directly attached to PC Printers attached directly to a PC are discovered via Plug-and-Play, which means the Printer must be Plug-and-Play-enabled and appear in Windows Plug-and-Play List. The Status is checked by verifying that the Printer is still in that List and the consumption by the amount of time the Printer was in its printing state versus the idle state. 31 of 186 JouleX Energy Manager v24295 Manual Networked Printers Networked Printers are integrated via SNMP. Please refer to Configuring SNMP on how-to setup SNMP-Access. Networked Printers are periodically polled for their state - JEM differentiates between OFF, Standby (or Power-save), ON(idle) and ON(Printing). JEM will also retrieve the printed Pages data from the Printer, which can be used for a per-page-consumption model; instead of the default consumption measurement, which is based on the amount of time the printer is in its printing vs. its idle state. Printer Information is collected using SNMP via the Printer Mib(rfc1759) or, especially for the Power-Save state, enterprise-specific Mibs. Switches/Routers Switches and Routers are integrated via SNMP. Please refer to Configuring SNMP for how-to setup SNMP-Access. Power over Ethernet For PoE enabled Switches, JEM measures the PoE power supplies and displays that information in addition to the Switches own power consumption. If there are known PoE devices attached to the switch, their power consumption will be subtracted from the value seen here. To configure PoE devices manually please refer to Manually adding PoE devices Monitors Monitors are integrated indirectly via the desktop or laptop computer they are attached to. In this case, the desktop or laptop is also called the parent device. Every monitor has its own power state and power consumption values. However, if the attached desktop or laptop is powered off, the monitor will also be assumed to be powered off. Device Data Fields Name of Data Field Description or Value Format Access type monitor (This value is fixed) t r/w parent.deviceid The device id of the attached desktop or laptop. t r/w display.brightness The brightness level of the monitor. If the monitor supports brightness readings, this value is the actual brightness of the monitor. Otherwise this value is taken from the settings in Device Viewer > Device Details n r/w t = text r / w = read / write Supported Actions Currently, monitors cannot be powered off or on by JouleX Energy Manager. Cisco EnergyWise JouleX Energy Manager seamlessly integrates with Cisco EnergyWise, a technology developed by Cisco for network based energy management. For more information regarding Cisco EnergyWise, please go to the Cisco Web site, at www.cisco.com/go/energywise. Integration of Cisco EnergyWise is usually done by using the Cisco EnergyWise Asset Connector. The asset connector automatically imports all nodes (Switches, PDUs, outlets, endpoints, etc.) in an EnergyWise domain and makes them available as devices in JEM. Furthermore, JEM supports multi domain support, energy measurements, settings power levels, special handling for PDU outlets, keywords and many more. Specific Cisco EnergyWise device properties The EnergyWise specific data fields can be found in the Device Data Field List. Note:The EnergyWise name is not always the hostname of the device and not resolvable by DNS. This means for most of the EnergyWise devices the hostname is empty. Mapping from EnergyWise Power Level to JEM Power Status How does the EnergyWise Power Precision Caliber affect the JEM Power Quality EnergyWise Power Precision Caliber Resulting JEM Power Quality Actual 9 Trusted 9 Max 8 Presumed 8 Unknown 1 Example: Typical EnergyWise device in JEM Please follow EnergyWise Configuration for configuration. Additional Information Activity Check Use the Activity Check feature to ensure that the switch does not power off a phone that is in use. Click here for further information. Cisco UCS Overview The Cisco Unified Computing System represents a radical simplification of traditional architectures, dramatically reducing the number of devices organizations must purchase, deploy, and maintain. Cisco UCS delivers end-to-end optimization for virtualized environments while retaining the ability to support traditional OS and application stacks in physical environments. Additional information regarding Cisco UCS can be found on the Cisco Web site, at www.cisco.com/go/ucs. Integrating with Cisco UCS The best way to integrate with Cisco UCS is to use the UCS Asset Connector. The UCS Asset Connector automatically imports all assets (servers, blades, etc.) as devices into JEM. Please note that the imported devices mainly represent the physical or virtualized components and do not have access at operating system layer. Specific Cisco UCS device properties A UCS device has the following additional extended data fields displayed in the device view. 32 of 186 JouleX Energy Manager v24295 Manual Name of Data Field Description Format Access ucs.url The URL of the UCS Manager of the device. t r/w ucs.username The username of the UCS Manager. t r/w ucs.password The encrypted password of the UCS Manager. t r/w ucs.uuid Every device which is deployed in the UCS Manager gets a unique ID. t r ucs.chassis_id The ID of the chassis. n r ucs.slot_id The ID of the slot in the chassis. n r ucs.dn The distinguished name of the device. t r/w ucs.assignedToDn The distinguished name the device is assigned to. t r/w ucs.numOfCores The number of cores per CPU of the device. n r ucs.numOfCoresEnabled The number of enabled cores per CPU of the device. n r ucs.description The description of the device which you can set in the UCS Manager. t r ucs.name The name of the device which you can set in the UCS Manager. t r n = number, t = text r = read, r / w = read / write Supported Actions The following actions are supported: POWER_OFF POWER_ON Additional Information How to Import devices using an Asset Connector Generic Devices To add any network enabled and attached device to the JEM assets, use the device type generic (Generic). The generic type requires information on power consumption (using a custom energy profile). You also need to input how the status will be verified for this device, either by TCP connect, SNMP, ICMP or none. Additional Information How to manually add devices How to add extended device data fields and properties How to change the device status check method Juniper Junos Space JouleX uses the Junos Space SDK to integrate into the JouleX Energy Manager, providing Juniper clients new opportunities to support their sustainability objectives, increase energy efficiency, reduce their carbon footprint, and realize significant cost savings through unprecedented visibility into the energy consumption and utilization of all devices connected to their network. The JouleX Energy Manager utilizes Junos Space to retrieve actual energy consumption data from the Juniper switching and routing infrastructure. Integration with JEM Integration of Junos Space devices is usually done using the Juniper Junos Space Asset Connector. The Juniper Junos Space asset connector automatically imports all Junos devices (switches, routers, etc.) and makes them available as devices in JEM. Additional information regarding Juniper Junos Space can be found on the Juniper Web site, at http://www.juniper.net/us/en/productsservices/software/junos-platform/junos-space/. Juniper Junos Space device properties A Junos Space device has the following JEM device data fields: Name of Data Field Description Format Access junos.space_uri The URL of the Junos Space Manager. t r/w junos.username The username of the Junos Space Manager. t r/w junos.password The password of the Junos Space Manager. t r/w Junos.deviceid Unique ID assigned from Junos Space Manager. t r junos.name The name of the device. t r junos.os_version The operating system version. t r junos.family The device family. t r junos.platform The device platform. t r junos.serial The device serial. t r junos.managed_status The Junos space management status of the device. t r t = text r = read, r / w = read / write Example: Typical Junos Space device in JEM 33 of 186 JouleX Energy Manager v24295 Manual Support for Virtual Devices JouleX Energy Manager supports energy measurement and management for virtual devices. Virtual machines will be detected automatically or can be imported using the appropriate asset connectors. You can identify virtual devices using a special device data field named virtual.type The following virtualization platforms are supported. virtual.type Description vmware VMware Virtual Machines hyperv Microsoft HyperV Technology xen XEN Virtualization kvm KVM Virtualization VirtualBox VirtualBox Virtualization If you would like to find out which virtual machines are present in your system, just search for virtual.type != '' Power measurement for virtual devices Power measurement for virtual devices uses special algorithms developed by JouleX to provide you with better insights into power consumption of your virtual devices. One important aspect to keep in mind with virtual power consumption is, that by aggregating virtual power consumption and physical power consumption at the same time you might account more power consumption than there is. Consider a physical device which hosts two virtual devices. Let's assume, the physical device consumes 200 Watt. Let's further assume each virtual device accounts for 50 Watt. If you simply add this up, the result would be 300 Watt. However, the physical power consumption is just 200 Watt. You can prevent this by creating proper segments for virtual and physical devices for reporting using the virtual.type data field. One segment might contain all physical devices (virtual.type=''). Another segment can then contain all virtual devices (virtual.type != ''). Another option is to segment devices by other data fields. For instanc,e you could assign all virtual hosts (bare-metal, physical) to a business unit called "datacenter" and assign the virtual devices to the regular business unit "sales" for accounting purposes. This way you can simply aggregate all devices belonging to business unit "sales" no matter if they are virtual or physical, because the virtual hosts are in another segment and won't be aggregated in a report for the "sales" business unit. You can find more information about virtual devices and segments in Device Segments. The segment editor has Advanced Options to handle virtual devices. Power savings for virtual devices Please make sure you understand that power savings of virtual devices are just virtual savings. Consider number of virtual machines which have been powered off by JEM. Those will aggregate savings over time based on the virtual power consumption they had before they got powered off. Of course, these savings are not physical savings and should always be interpreted in the correct context. NOTE: The JouleX Savings Bar on the home screen does not aggregate virtual power consumption or savings and only considers physical devices. HP Integrated Lights-Out (iLO) Integration The HP Integrated Lights-Out (iLO) integration can be used with HP servers that support at least iLO2, iLO3, and powermeter to get sensorreadings from the servers power supplies. To use this integration, verify that HP iLO is enabled on the server and provides Power-readings via Powermeter as shown in the screenshot below. The simplest way to verify HP iLO is working is to login to the iLO webpage from the server JEM is running on. You should see powermeterInformation similar to this: Configuration To configure the device for HP iLO usage, please add the following extended fields: ilo2.ip=ip ilo2.port=port ilo2.username=username ilo2.password=password Note: JouleX Energy Manager only supports HP iLO version 2 and 3. Attached Devices Some devices (children) are attached to other devices (parents). Devices attached directly to a PC are discovered via Plug-and-Play, so the device must be Plug-and-Play-enabled and appear in Windows Plug-and-Play List. In most common cases the child devices are monitors and printers. Important: The orgpath within the folder management is inherited to direct children. Consequence: Attached monitors & printers cannot have different permissions. Monitors Monitors are integrated indirectly via the desktop or laptop computer they are attached to. In this case the desktop or laptop is also called the parent device. Every monitor has its own power state and power consumption values. However, if the attached desktop or laptop is powered off, the monitor is also assumed to be powered off. Supported Actions Currently, monitors cannot be powered off or on by JouleX Energy Manager. Printers Printers attached directly to a PC are discovered via Plug-and-Play, so the Printer must be Plug-and-Play-enabled and appear in Windows Plugand-Play List. The Status is checked by verifying that the Printer is still in that List and the consumption by the amount of time the Printer was in its printing state versus the idle state. IPMI Via IPMI, JouleX Energy Manager can read the (ACPI) status and the specified sensors as well as powering the system on or off. Configuring Sensor Reading All sensors of a device are available via IPMI. Since there is no naming standard but only the type indication, the sensor which should be 34 of 186 JouleX Energy Manager v24295 Manual considered for JEM must be specified manually. This can be achieved by setting the IPMI Configuration extended device data fields. You also have to disable SSH by adding the value '1' to the SSH Disabled device data field. To choose your prefered sensors you need to run ipmiutil which can be found in the %JEM_INSTALL_DIR%\service folder (see Files And Folders). The command is ipmiutil sensor -N <ip.of.ipmi.interface> [-U <username> -P <password>] To specify the sensors, use the value from the Sens_Description column or, where there are several sensors with the same name the S_Num value (without the snum prefix e.g. 2a). IPMI Configuration IPMI/BMC IP Address The IP the IPMI interface is running on (might not be the device IP in case of a BMC present) IPMI Username The username to authenticate at the IPMI interface IPMI Password The password to authenticate at the IPMI interface IPMI Power Sensor Name Name of the power sensor of the IPMI device IPMI Temperature Sensor Name Name of the temperature inlet of the IPMI device Technical Articles This section contains various technical articles about device types. WMI General Information Windows Management Instrumentation (WMI) is used to remotely access Windows machines to gather data and execute commands. NOTE: Although WMI is already available in Windows 2000 with SP2, JouleX Energy Manager does not support Windows 2000 at all and Windows XP Home doesn't support WMI. This means that minimum operating system requirements for JouleX Energy Manager to use WMI are Windows XP Professional SP2 and newer. Recommendation JouleX recommends using a user access level of either domain user or local user with administrative privileges. Doing so will make some of the configuration steps described below unnecessary. To ease the WMI configuration we also supply a script, that performs all the necessary steps at once. You can find it under WMI: Configuration via Script. Configuration NOTE: all these commands have to be run as administrator NOTE: if the device is part of a domain you may have to change those settings in the domain policy instead since it will override the local changes The various configuration steps are: Configuring WMI security Configuring COM security Configuring firewall Configuring network sharing model Configuring UAC Configuring registry permissions Configuring filesystem permissions Configuring user privileges Configuring group membership NOTE: If you are running JouleX Energy Manager on Windows Server 2008 or Windows Vista and you are experiencing high CPU load or Kerberos authentication issues you should install the hotfix KB2028484 provided by Microsoft. Device options These options are device specific and need to be specified in the Extended properties (see Properties). wmi.disabled This option is used to disable all WMI accesses to the device. wmi.status This is actually not an option, but a status indicator verifying whether or not a WMI connection was able to be established. WMI: Configuring COM security To execute WMI queries remotely, specific COM permissions are required. 35 of 186 JouleX Energy Manager v24295 Manual To execute WMI queries remotely, specific COM permissions are required. Command-Line Set the COM security by running the following command (replace %account% with the user account being modified): DComPerm -ml set "%account%" permit level:ll,la,rl,ra NOTE: DComPerm replaces the previous permissions NOTE: The user account must start with a backslash (e.g. \user) when the user is local NOTE: DComPerm is not part of Windows. You can find the tool under WMI: Configuration via Script. Step By Step The option can be changed under Component Services. To access it you have to run dcomcnfg. From there, open Component Services and Computers. Right-click on My Computer and choose Properties. Select the COM Security tab and click Edit Limits... under Access Permissions. Add the account you want to use for WMI and allow Local Access and Remote Access. Follow the same steps for Launch and Activation Permissions by clicking the other Edit Limits... and add the account you want to use for WMI and allow everything. 36 of 186 JouleX Energy Manager v24295 Manual WMI: Configuring filesystem permissions JouleX Energy Manager requires specific permissions for some device files and folders, to work properly. Folders JouleX Energy Manager requires full permissions to the JouleX subfolder inside the Windows folder (e.g. C:\Windows\JouleX) to store and execute scripts. Command-Line You can use cacls.exe to change filesystem permissions (replace %account% with the user account being modified): md %windir%\JouleX cacls %windir%\JouleX /E /G "%account%":F Please refer to Cacls for further information. Step By Step Create a JouleX subfolder in the Windows root folder. The user account you use for WMI needs Full permissions on the JouleX folder. Files Command-Line NOTE: This only applies to Windows XP x64 and Windows Server 2003 (including R2) JouleX Energy Manager requires execute permissions on several binaries under %windir/system32. You can set those permissions with XCACLS.VBS (replace %account% with the user account being modified): cscript cscript cscript cscript xcacls.vbs XCACLS.VBS XCACLS.VBS XCACLS.VBS %windir%\system32\cmd.exe /E /G "%account%":x %windir%\system32\cscript.exe /E /G "%account%":x %windir%\system32\powercfg.exe /E /G "%account%":x %windir%\system32\rundll32.exe /E /G "%account%":x NOTE: XCACLS.VBS is not part of Windows. You can download it at and find information on how to use it under - http://support.microsoft.com/? id=825751. You can also find it under WMI: Configuration via Script. Step By Step Right-click on the file and select Properties. Then select the Security tab and click on Add... to add the user. Grant the user the Read & Execute permissions. 37 of 186 JouleX Energy Manager v24295 Manual WMI: Configuring firewall To perform WMI calls to a machine, the RPC port (TCP 135) must be accessible externally. Command-Line Enable remote administration through the firewall by running the following command: netsh firewall set service RemoteAdmin enable Step By Step The option can be changed using the Local Group Policy Editor. To access it you have to run gpedit.msc. In the editor, open Computer Configuration, then Administrative Templates, Network, Network Connections, Windows Firewall and Standard Profile. The option you need to change is called Windows Firewall: Allow inbound remote administration exception (or Windows Firewall: Allow remote administration exception prior to Windows 7). Double-click it to open. Click the radial button to Enabled. Articles on the Microsoft website: Connecting Through Windows Firewall http://msdn.microsoft.com/en-us/library/aa389286.aspx Connecting to WMI on a Remote Computer http://msdn.microsoft.com/en-us/library/aa389290.aspx Connecting to WMI Remotely Starting with Windows Vista http://msdn.microsoft.com/en-us/library/aa822854.aspx WMI: Configuring group membership To be able to read performance counters, the user access account needs to be part of the Performance Monitor Users(or Power Users on older versions). Command-Line Add a user to a group with the following command (replace %account% with the user account you want to add to the group): net localgroup "Performance Monitor Users" "%account%" /add NOTE: The group name is location-dependent, so if you are not using an English version of Windows you need to use the translated name. Step By Step This option can be changed under Component Services. To access it, run compmgmt.msc. 38 of 186 JouleX Energy Manager v24295 Manual Then open Local User and Groups and Users. Right-click on the user you are using to access the device and choose Properties. Select the Member Of tab and click Add... to add the user to the group. WMI: Configuring user privileges Non-administrative users need certain privileges to work properly with JouleX Energy Manager. Command-Line JouleX Energy Manager requires both the Backup files and directories and Restore files and directories to load the user profile when trying to invoke a process (see Win32_Process.Create fails if user profile is not loaded. It also requires the Force shutdown from a remote shutdown privilege to allow POWER_OFF action to work. Set the user privileges by running the following command (replace %account% with the user account you want to set the privileges for): ntrights -u "%account%" +r SeRemoteShutdownPrivilege ntrights -u "%account%" +r SeBackupPrivilege ntrights -u "%account%" +r SeRestorePrivilege NOTE: ntrights is not part of Windows. It is a part of the Windows Server 2003 Resource Kit Tool or can be found under WMI: Configuration via Script. Step By Step The option can be changed using the Local Security Policy. To access it you have to run secpol.msc. Find the options in Local Policies under Security Options. 39 of 186 JouleX Energy Manager v24295 Manual Double-click the policy and add the user you want to access the device with. WMI: Configuring registry permissions JouleX Energy Manager needs access to the device registry to store various data. Command-Line You can use regini.exe to set permissions on registry keys. Please refer to How to Use regini.exe to Set Permissions on Registry Keys for further information. Create a file called regini.txt and add the following: HKEY_LOCAL_MACHINE\SOFTWARE\JouleX [1 5 7 11 17] Then you need to call regini with the file as parameter: regini regini.txt NOTE: On a 64-bit systems you need to do the same with the key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JouleX Step By Step Fegistry permissions are set within the Registry Editor. To access it you have to run regedit. From there, open HKEY_LOCAL_MACHINE and SOFTWARE and then a create a new JouleX key. On 64-bit systems you also need to ad it under Wow6432Node. 40 of 186 JouleX Energy Manager v24295 Manual Next, set the permissions. Right-click on it and choose Permissions.... Add the user you access the device with and grant it Full Control. WMI: Configuration via Script Download WMI configuration package. The package contains various scripts to configure a device for WMI access. Usage The script you need to run depends on the operating system of the target machine. wmi_xp_2003.cmd - for Windows XP, Windows XP x64 or Windows Server 2003 wmi_vista_win7_2k8.cmd - for Windows Vista, Windows 7, Windows 8 or Windows Server 2008 The script will tell you what actions it will perform and will request the user account you configured for the device in the JouleX Energy Manager. NOTE: You have to run the script as administrator via a command-line. Tools Some of the tools in the package are not part of Windows, but are freely available on the world wide web. WmiSetNsSecurity This is a tool written by JouleX to change WMI security permissions. DComPerm Homepage: http://www.myitforum.com/articles/34/view.asp?id=9323 Download: http://www.myitforum.com/inc/arts/11442dcomperm.zip ntrights This tool is part of the Microsoft Windows Server 2003 Resource Kit Tools. WMI: Configuring network sharing model When using WMI with a local user account you need to be able to access the network shares of the target machine. By default, Windows will map all local accounts to the Guest account which causes the WMI calls to fail. In order to get them to work, change the mode to Classic. Command-Line Change the network sharing model by running the following command: reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa /v forceguest /t REG_DWORD /d 0 /f Step By Step The option can be changed using the Local Security Policy. To access it you have to run secpol.msc. 41 of 186 JouleX Energy Manager v24295 Manual Find the option in Local Policies under Security Options. Double-click it and use the drop down menu to set the option to Classic - local users authenticate as themselves. WMI: Configuring UAC Windows Vista introduced User Account Control that limits the execution of several actions. Since this can interfere with remote WMI queries, it is recommended to disable remote UAC. Command-Line You can disable remote UAC by running the following command: reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f Step By Step Please note: UAC must be disabled entirely, as there is no way to disable remote UAC via a configuration dialog in Windows. The UAC settings are located in the Control Panel. First select System and Security and then select Change User Account Control settings under Action Center. To disable UAC move the slider all the way down to Never notify me when:. Articles on the Microsoft website: 42 of 186 JouleX Energy Manager v24295 Manual User Account Control and WMI http://msdn.microsoft.com/en-us/library/aa826699.aspx WMI: Configuring WMI security To enable WMI access to a machine, specific WMI permissions must be enabled for the used account. Command-Line Set the WMI security by running the following command (replace %account% with the user account you want to set the security for): WmiSetNsSecurity WmiSetNsSecurity WmiSetNsSecurity WmiSetNsSecurity Root\CIMV2 -r %account% Root\CIMV2\power -r %account% Root\Default -r %account% Root\WMI -r %account% NOTE: The user account must start with a backslash (e.g. \user) when the user is local. NOTE: The namespace Root\CIMV2\power is only available on Windows Vista or newer versions. NOTE: WmiSetNsSecurity is not part of Windows. You can find the tool under WMI: Configuration via Script. Step By Step The WMI settings are part of the Computer Management. Go to the Control Panel, first select System and Security then Administrative Tools and you will see the Control Panel. From here, open Services and Application and then select WMI Control. Right-click to open the context menu and then select Properties. Go to the Security tab and select Root -> CIMV2 and click Security. Repeat the following steps for Root -> DEFAULT, Root -> WMI and Root -> CIMV2 -> power (only Windows Vista or newer). Click on Advanced. 43 of 186 JouleX Energy Manager v24295 Manual Add the account you want to use for WMI to the list using Add.... Enter the account name and, in the pop up dialog box, select Remote Enable and make sure that the Apply to drop down menu is set to This namespace and subnamespaces. WMI: Tools JouleX WMI Configuration Tool See WMI: Configuration via Script WMI Code Creator http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2cc30a64-ea15-4661-8da4-55bbc145c30e&DisplayLang=en wbemtest Comes with Windows. If it is missing in your installation you can download it at http://www.computerperformance.co.uk/ScriptsGuy/wbemtest.zip. A short introduction to wbemtest can be found at http://www.computerperformance.co.uk/vbscript/wmi_wbemtest.htm. Tech Note - Powering On PCs PCs, from our perspective, are typical workplace Computers. They can be powered off easily using the operating system installed and put into soft-off mode via acpi or apm. Powering PCs back on can be more of a challenge, depending on the state and type of operating system. There are currently accepted methods, two of which are supported by JEM: 1. Wake-on-LAN (WoL) The classic - this is supported in most "modern" PCs. 2. Intel vPro A relatively new method supported in certain Intel-based PCs (usually the more expensive business models) 3. ACPI Timer-Alert based Wakeup (not supported in JEM yet) This is also supported in most ACPI-enabled systems. This Document focuses on the requirements for Wake on LAN and vPro and the different options which can be used in JEM. Power-On for pc.windows and pc.linux types Currently Power-On is the same for pc.windows and pc.linux device-types. To decide if WoL or vPro should be used, the extended settings of the device to be powered on are checked. If the settings contain the attributes vPro.url, vPro.username and vPro.password, JEM will use Vpro to power on the PC. Otherwise, WoL will be employed. This is discussed in more detail below. Wake-on-LAN JEM supports two different methods for sending WoL packets. To explain these in more detail, this section gives a brief overview of how WoL works. WoL Packet Format From the PC's perspective, to be powered on by WoL, it needs to receive any kind of packet via the network which contains a special byte sequence with the MAC address of the PC's networking card. It is important to note that it does not matter what kind of packet is used. Usually the documentation refers to a "magic"-packet, which most often is UDP-based but is not required to be. Any packet - e.g. raw Ethernet, UDP, or a dhcp-reply will do as long as it contains the special byte sequence with the PC's MAC Address. Availability of WoL on the PC It is important to note that the PC reacts differently to WoL-Packets, depending on the state it is in. 1. If the PC is powered off "completely" This is the Mode in which the bios has to support WoL. Sometimes this requires bios settings to be adjusted or a new bios to be downloaded onto the PC. 2. If the PC is in standby / powered-off and in hibernate In this Mode, the PC relies on ACPI-settings which can be controlled by the operating system - e.g. in Windows this setting can be found at the Network-Adapter configuration level: 44 of 186 JouleX Energy Manager v24295 Manual This means that it may be possible to wake up the PC from Standby, but not from the "complete" powered-off state. This is always the case with mac-systems. WoL Working Condition In order turn a PC on by Wake-on-LAN(WoL), four attributes are required for Devices extended Properties in JEM: IP address of the device Subnet mask address of the device MAC address of the device Default gateway of the device In order to make sure WoL works, please check device properties Note: Please make sure that the URI field of a device matches the IP address in extended settings WoL Options in JEM JEM supports three different Methods of sending out WoL packets to PCs. 1. If the PC to be powered-on and the JEM Controller are on the same network, the WoL packet is sent as a UDP-packet to UDP port 9 and the local network broadcast address. This is checked by comparing all IP/Net mask tuples from the JEM-server - fetched via SELECT IPAddress,IPSubnet FROM Win32_NetworkAdapterConfiguration, MAC address and the URI of the device to be powered on. Example: JEM's address is 10.0.1.10, net mask 255.255.255.0 and the devices uri is 10.0.1.201 - in this case the WoL will be a UDP-packet sent to 10.0.1.255 DST-port 9. 2. If the PC and JEM Controller are on different Networks (most often the case), transmittal of the WoL-packet to the destination network has to occur as a broadcast/multicast/unknown unicast in the PC's network. JEM supports two Modes for Case 2 above, 1. When Mode 1 is enabled, then JEM will use direct broadcast packets to power-on PCs. In order to enable Mode 1, Wake-on-LAN Directed Broadcast option should be enabled in System/Network under Settings > JEM Controllers > <respective JEM Controller> > Edit Settings and restart the JEM Controller service. 45 of 186 JouleX Energy Manager v24295 Manual Or, in order to change manually, the following setting should be edited in settings.xml file and the JEM Controller service restarted. <DirectedBroadcastEnabled>true</DirectedBroadcastEnabled> 2. Mode 2 is enabled by default, which uses dhcpreply packets to power-on PCs. It can also be enabled by disabling the Directed Broadcast option in System/Network under Settings > JEM Controllers > <respective JEM Controller> > Edit Settings, or manually in the settings.xml file. <DirectedBroadcastEnabled>false</DirectedBroadcastEnabled> Currently this is a global setting - so either all WoL packets are sent via Directed Broadcast or as dhcpreply packets. Device Access Modes JouleX Energy Manager uses different access modes to communicate with devices. This document provides an overview on how different access modes affect various device types. The Device Access Mode can be defined globally at System/Network, or individually for each device with the help of Device Data Fields. NOTE: A device specific access mode overwrites the global one. Windows Devices The JouleX Energy Manager uses the logon credentials of domain or local users to connect to the device, in order to gather information about hardware, configuration, and consumption.JouleX Energy Manager may push data to the device. Some of this can be disabled by deactivating the advanced Windows support in System/Networking settings. Minimal Standard Minimal is non-intrusive and therefore the user has no access to the Registry and File System Registry JEM accesses the Windows registry in read-only mode, and reads the following information: timezone, power policy, CPU performance level, display information. Note for Windows XP: When remotely accessing the registry of a Windows XP device, the profile of the user will automatically be created on the filesystem. This is by design and can not be changed. Any access, including just reading the registry, will trigger this. Other versions of Windows are not affected. Advanced Filesystem When the advanced Windows support is enabled, JouleX Energy Manager will push four scripts to the JouleX subfolder in the Windows folder of the device to perform specific tasks. The files are following: greenexec3.vbs - used to invoke the other scripts cpuload3.vbs - used for more precise measuring shutdown.vbs - used by the user notification on power action sendscript.vbs - used by the Run Shell Script action Processes When the advanced Windows support is enabled, JouleX Energy Manager will execute the scripts listed above. This triggers execution of csript.exe on the device. The cpuload3.vbs will be remain active at all times, so there will be processes consistently running. The process for shutdown.vbs will only be visible while the notification dialog is shown. You will also see a msg.exe process in that case. Registry When the advanced Windows support is enabled, JouleX Energy Manager stores some information in the registry in the HKEY_LOCAL_MACHINE\SOFTWARE\JouleX key. Active Directory Integration When using the Active Directory integration to log into the JouleX Energy Manager web interface, the username and the JEM authentication token are stored in the database, but not the password. Attached Devices On some versions of Windows it is not possible for non-administrative users to get information about the attached devices, leading to them not being added as devices. User Notifications Not Working JouleX Energy Manager uses msg.exe to send notifications to all active sessions on the device. However, non-administrative users are unable to send a message to all accounts. This affects all Windows versions. Denied Access When accessing the Windows device with an administrative account and the proper permissions (see WMI), there should be no access problems. EnergyWise: Configuration Before adding a Cisco EnergyWise device, there should be some configuration completed: Verify the switch IOS supports EnergyWise Run one of the following commands on the switch CLI, in enabled mode, to get the current IOS version. #show energywise version #show version Follow the link below to see if your IOS version is supported. The minimum requirement for JEM is the EnergyWise Phase 2, but we strongly recommend that you use the IOS versions for Phase 2.7 or above. Cisco IOS Release Notes for Cisco EnergyWise, EnergyWise Phase 2.8 Best is to use the latest Cisco IOS release to ensure it includes the latest Energywise fixes, that have at least Energywise version 2.7 (with 1.2 toolkit compatibility) e.g. 12.2(58)SE 15.0(2)SE 15.1(1)SG/3.3(0)SG How to verify if EnergyWise is enabled on the switch Run the following command on the switch CLI, in enabled mode. #show config | include energywise If the following lines are present in the output, EnergyWise is enabled. energywise domain domainname security shared-secret 0 domainsecret energywise management security shared-secret 0 managementsecret (optional) energywise endpoint security shared-secret 0 endpoitsecret Switch Configuration for EnergyWise This is a typical example on how to enable EnergyWise on a switch: Switch>enable Switch#configure terminal Switch(config)#energywise domain domainname security shared-secret 0 domainsecret Switch(config)#energywise management security shared-secret 0 managementsecret Switch(config)#energywise endpoint security shared-secret 0 endpointsecret Please read EnergyWise and EnergyWise Integration for more Information. 46 of 186 JouleX Energy Manager v24295 Manual Firewall Configuration The port (TCP) opened by JEM for the communication between JEM and the switches is negotiated individually. It is therefore necessary to configure your Firewall appropriately. Please make sure that the IPs or the IP-Range of your switches are enabled in your firewall for incoming and outgoing data. JouleX Windows Helper The JouleX Windows Helper (JWH) is a slim service for Windows client machines to communicate with JouleX Energy Manager (JEM), in environments where the native and agentless Windows Management Instrumentation (WMI) / Windows Remote Management (WinRM) access is not feasible, e.g. due to security objections or limitation within the network infrastructure. This section will: describe how JEM works, introduce the JWH, and describe the deployment of the JWH. The JWH is compatible to JEM 4.0 and above. JEM’s agentless approach with a PC Windows device The power of JEM lies in its ability to communicate with various devices in their language and apply standard interfaces such as WMI or Simple Network Management Protocol (SNMP). With the help of other network management tools, JEM is able to access a specific device and poll the necessary information. JEM also actively manages the device, via WMI. However, not all environments are JEM friendly - in some cases the DNS-Hostname match is not working properly and in other scenarios JEM is blocked by the firewall. Another challenge is that JEM requires administrator credentials to properly execute WMI for best measurement results, which is not always possible with enterprise security policies. There are several ways to solve this problem; one would be to optimize the network to create an environment that is more JEM friendly, e.g. optimizing/restructuring the DNS/DHCP or Windows Domain. However, in a large deployment of JEM this this might be cumbersome, as policies are in place to guarantee the security of the network. Therefore, JouleX now provides the JWH, which suppliments the existing architecture and does not change the underlying agentless approach of JEM. The functionality of the JouleX Windows Helper The JWH is a Windows service that runs under system context. Once installed it will work quietly and invisibly in the background, for all users who log in at that particular device. The focal point of JWH is the Message Queue for communication to JEM; all data will be exchanged through that Message Queue. The JWH sends data to the Message Queue where it is processed and handled by JEM. JWH continuously monitors the Message Queue to receive actions from JEM. This architecture is not only simple and easy to maintain, but is also secure as there is only one outgoing SSL encrypted port to the JEM Controller. The JWH was created to solve these challenges. As the IP address of the Message Queue is fixed and will be set during installation, there are no obstacles due to Hostname to IP mismatch. Each device directly reports to JEM and sends all necessary information to be identified. As already mentioned, there is only one outbound channel. During installation JEM will open the firewall of the device for that particular outbound traffic which will solve most firewall issues. Once installed and activated by the administrator, there is no need to manage it anymore. The JWH will report regularly to JEM and perform all actions. As a result, administrator credential information used for WMI is no longer needed. Furthermore, the JWH allows JEM to receive even more accurate data regarding the device, examples are the actual idle time and the detailed specification of attached devices as monitors and printers, which are directly called from the Windows API. Deployment Server (JEM & Host) To prepare JEM for the usage of the JWH, one change must be made to the settings.xml which is found at %JEM_INSTALL_DIR%\service. Set the Execution Thread count to 10: <asyncExecutionThreadCount>10</asyncExecutionThreadCount> Do not forget to restart the JEM Controller Service after you made the changes. If the JWH is deployed on numerous devices (800 plus x), the maximum number of sockets for Erlang (Rabbit MQ) must be increased. To do this, access Systems in the Control Panel and select Advanced system settings, the System Properties will pop-up click the Environment Variables... button to change the settings. Create new variable or edit the two following ones to the values given below: ERL_MAX_PORTS=40240 ERL_MAX_ETS_TABLES=90240 47 of 186 JouleX Energy Manager v24295 Manual After these changes are made, your JEM host device is able to handle the inbound messages from thousands of clients. Device (pc.windows) Currently, JWH is installed manually with the help of the Windows Command Prompt, but is also possible to deploy it through the network. Verify installation is completed with Administrator credentials. The following example is based on the scenario that the JWH installation file is centrally stored in a location accessible for all devices within your network: copy \\servername\storage\JoulexWindowsHelper\JoulexWindowsHelper.exe c:\JoulexWindowsHelper.exe If JEM is installed with default settings the only things to specify are the IP address of the JEM Controller and the routing key provided by the Windows Helper Asset Connector. c:\JoulexWindowsHelper.exe /install /host jem-controller-ip /rkey routing-key-id net start "JoulexWindowsHelper" This should complete the installation of the JouleX Windows Helper. If you want to learn more about the possible commands to specify the installation enter: JoulexWindowsHelper.exe /? Further Information Installation specifications During implementation of the JouleX Windows Helper, several default settings will be applied if they are not defined by the user (as in the example above). If changes have been made to the RabbitMQ Port, RabbitMQ Virtual Host or RabbitMQ Username and Password, they must be specified. The table below is a summary of all commands and options available: General Commands JoulexWindowsHelper /? Prints the help JoulexWindowsHelper.exe /install [options] Registers the JouleX Windows Helper as service JoulexWindowsHelper.exe /uninstall Unregisters the JouleX Windows Helper JoulexWindowsHelper.exe /run [options] Runs the JouleX Windows Helper in the command line Options /host RabbitMQ URI (compulsory, see example above) /port RabbitMQ Port /vhost RabbitMQ Virtual Host /user RabbitMQ Username /pwd RabbitMQ Password /rkey Routing Key ID Disable WMI Normally JEM accesses the pc.windows devices with the help of WMI. With the JWH this is no longer necessary. To prevent accessing a device by mistake through WMI (e.g. if the device is added with the help of the JWH but is also part of your Active Directory which is also integrated in JEM) you need to add an additional Device Data Field. Go to Devices page, access the Device Information of the device and click on Properties. Add wmi.disabled as Device Data Field and set the value 1. Information collected by the JWH The JWH provides JEM with various device specific data (if you would like to verify them go to Devices, open the Device Information of the device and click on Properties. The additional information collected by the JWH enables JEM to optimize the management of each device. The list below gives an insight into all data read by the JWH. vendor, model, and hardware (hard disks, RAM, CPU, serial, etc.) network information (MAC-addresses, IPs, Masks, Gateways) battery information (if present) operating system and service packs CPU performance levels CPU clock speed CPU utilization active windows power policies (idle timers) attached devices in Plug'n'Play list (monitors & printers) monitor edit parameters, e.g. vendor, model, size monitor power management parameters (e.g. standby) idle times monitors Track JWH Activity Each JWH can be identified with the help of the windows.helper.id which can be found at Device Information > Properties (see above). With the help of this ID, it is possible to track the JWH within the JEM environment (namely RabbitMQ) and on the device itself. The Properties also provides you with the windows.helper.version, which is helpful when contacting the JouleX Support Team. 48 of 186 JouleX Energy Manager v24295 Manual RabbitMQ To directly access the RabbitMQ management console, use the following IP address http://<JEM-IP>:55672 and apply your Message Queue credentials. After accessing the RabbitMQ management console, navigate to the Queues tab. Each JWH which is connected to JEM can be identified with its windows.helper.id. If there are any problems with the JWH, check here to verify the current status. On the local machine Registry The registry of the JWH provides further information in the JouleX node. Please be aware that in reference to the architecture of the device you have to open the correct entry (on a 64 bit system, the HKEY_LOCAL_MACHINE/SOFTWARE/JouleX/3.0/ entry is only mirrored, please apply all changes to the Wow6432Node entry): 32bits HKEY_LOCAL_MACHINE/SOFTWARE/JouleX/3.0/ 64bits HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/JouleX/3.0/ Note: clienterror is not a current error, but the last error experienced, as it is the case in the screenshot above. Clientlog The JWH also creates a log file on the local machine. This is helpful in verifying the outbound traffic and to assure that the JWH itself communicates with JEM. To view this log file, go to %WINDOWS_INSTALL_DIR%\JouleX and open clientlog_YYYY_MM_DD.txt. 49 of 186 JouleX Energy Manager v24295 Manual If you would like to set the log level for clientlog_YYYY_MM_DD.txt you need to change clientconfig binary in the Windows Registry. The default loglevel, as shown in the screenshot, is 2 (info). For a detailed overview please refer to the table. Log level 0 ERROR 1 WARNING 2 INFO 3 DEBUG Download & Update Download the JouleX Windows Helper The current version of the JWH is available for download by going to: http://download.joulex.net/windowshelper/ Update the JouleX Windows Helper The JWH has a built-in update function; with a restart of the JEM Controller, the version number of the JWH stored at %JEM_INSTALL_DIR%\service\windowshelper, and the one deployed on each client will be compared. If a newer version of the JWH is available on the JEM Controller, an update will be triggered. However to make this "auto-update" happen, the administrator must create the windowshelper folder in the first place and copy the JoulexWindowsHelper.exe manually to the location. Add/Detect PoE Devices (or with the CSV-Asset Connector) Automatically detect PoE Devices To import PoE-Devices automatically, without using an Asset Connector, the respective PoE-Switch must first be added manually. Required information for adding a switch are: URI, snmp.version and SNMP credentials. Click on Save Changes & Close when done. SNMP credentials depend on the SNMP version. Currently these SNMP versions are supported: Version 1: snmp.version=1 snmp.community.password=<community> Version 2 (for us this means 2c): snmp.version=2 snmp.community.password=<community> Version3: snmp.version=3 snmp.username=<usm-user> snmp.authtype=(MD5|SHA|empty=none) snmp.auth.password=<authpassword> (only required if authtype not none) snmp.privtype=(AES128|AES192|AES256|DES|TripleDES|empty = none) snmp.priv.password=<privpassword> (only required if privtype not none) JEM will then retrieve additional required information from the switch which will be stored in the SNMP Configuration and Switch Configuration extended device data fields: If your switch supports CDP/LLDP and is able to read Power-Per-Port, all PoE Devices should now be detected and imported automatically. Manually add PoE devices If your switch does not support CDP/LLDP or is not able to read Power-Per-Port, you can add the attached PoE Devices manually. To add the PoE-Device, specify the PoE Switch the device is attached to and the Port Name on the Switch in the Extended Settings: 50 of 186 JouleX Energy Manager v24295 Manual Add the following extended device data field information. Specify that PoE is enabled on that port: switch.uri switch.portname switch.poeport The device is then added and JEM maps the corresponding PoE-index to it. If available, the correct PoE-Power is also queried from the Switch: Both Devices will appear in the Device-View: The same approach can be used to add switches and PoE-Devices with a CSV-Asset-Connector. For this, specify a switch-file and a PoEDevices file with the following sample-syntax: switch.csv: uri;snmp.version;snmp.community.password 192.168.2.7;1;public poe.csv: uri;switch.uri;switch.portname;switch.poeport 10.0.2.213;192.168.2.7;Fa0/7;1 Additional Information How to add extended device data fields and properties Ports List for Devices List of ports the JEM Controller uses for outbound device communication and asset import. The destination address depends on the configuration of your device. Also, the ports being used might be different depending on the device configuration. Listed are default ports. Destination Destination Port(s) Protocol Encryption Usage/Notes DNS Server 53/UDP DNS No DNS Resolve Active Directory 1443/TCP LDAP Cisco CallManager 8443/TCP HTTPS (AXL API) Yes Cisco EnergyWise 43440/TCP EnergyWise Yes 80/TCP HTTP No 443/TCP HTTPS Yes 80/TCP HTTP No 443/TCP HTTPS Yes 80/TCP HTTP No 443/TCP HTTPS Yes Enterasys NAC 4589/TCP SQL Enterasys NetSight 4589/TCP SQL 5985/TCP HTTP No 5986/TCP HTTPS Yes 8080/TCP HTTP No 8443/TCP HTTPS Yes 1443/TCP WMI/SQL Cisco UCS CiscoWorks EGX300 Importing Devices Hyper-V Juniper Junos Space SCCM 51 of 186 JouleX Energy Manager v24295 Manual SNMP Network Discovery 161/UDP SNMP only Version 3 SSH Network Discovery 22/TCP SNMP Yes OpenScape DLS 18080 HTTP(DLS-GUI) No Out-Of-Band Network Discovery 623/TCP IPMI No VMware 443/TCP SOAP Yes Windows Network Discovery 135/TCP RPC Yes 8688 HTTP No 8643 HTTPS Yes Anel IP Power Switch 75/UDP none No EnergyWise 43440/TCP EnergyWise Yes 80/TCP HTTP No 443/TCP HTTPS Yes 5985/TCP HTTP No 5986/TCP HTTPS Yes 623/TCP IPMI/DCMI No 8080/TCP HTTP No 8443/TCP HTTPS Yes Modbus 502/TCP Modbus TCP No SNMP 161/UDP SNMP only version 3 SSH 22/TCP SSH Yes Siemens IP Phone 8085/TCP HTTP No VPro 16992/TCP HTTP No Wake-on-LAN 9/UDP none No 5985 SOAP No 5986 SOAP Yes 135/TCP RPC Yes DCM Webservice Hyper-V IPMI/DCMI Juniper Junos Space Monitoring, Control WinRM WMI Configuring SNMP Required information for adding a snmp-device: URI or Hostname, snmp.version and SNMP credentials. SNMP credentials depend on the SNMP version. Currently these SNMP versions are supported: Version 1: snmp.version=1 snmp.community.password=<community> Version 2 (for us this means 2c): snmp.version=2 snmp.community.password=<community> Version 3: snmp.version=3 snmp.username=<usm-user> snmp.authtype=(MD5|SHA|empty=none) snmp.auth.password=<authpassword> (only required if authtype not none) snmp.privtype=(AES128|AES192|AES256|DES|TripleDES|empty = none) snmp.priv.password=<privpassword> (only required if privtype not none) Autodiscovery By default, JEM will try to use snmp version 1 and community public if nothing is specified for snmp-enabled devices, such as switches or printers. In case public does not work, JEM will set snmp.version=none in the extended settings and snmp will need to be set up manually as indicated above. SSH: Configuration JouleX Energy Manager will use the URI and the Credentials configured in the device to access the system via SSH. Global options These options are global and apply to all devices. SSHProxyTimeout sshScanPort These options are documented under Values And Options Of Settings.xml. Device options These options are device specific and need to be specified in the Extended properties (see Properties). ssh.disabled Disables all SSH commands. Scans are still being performed. ssh.port The port used for all SSH connections including scans (overrides sshScanPort / default: 22). ssh.keyfile Specify the name of the keyfile. Needs to be placed in the %JEM_INSTALL_DIR%\service\sshkeys folder (see File And Folders). ssh.passphrase Used in conjunction with ssh.keyfile to specify a passphrase for the keyfile. Supported authentication methods password authentication authentication with private key keyboard-interactive authentication (very basic) SSH: Authentication for Linux devices JEM offers you the option of an SSH authentication key instead of a password for Linux devices. Follow these steps make use of this function. Step 1: Generate SSH authentication key Download puttygen.exe from the PuTTY Download Page and execute it. Click on Generate and follow the guidelines given by the PuTTY Key Generator 52 of 186 JouleX Energy Manager v24295 Manual Enter the Key passphrase and Confirm passphrase and select Export OpenSSH key. Save it to %JEM_INSTALL_DIR%\service\sshkeys as a .key file. Step 2: Install SSH authentication key on device Copy the content of the public key file into the following file %JEM_USER%/.ssh/authorized_keys Please replace JEM_USER with the user JEM will make use of to connect to the machine, in the example below this is jem. Step 3: Apply SSH authentication in JEM Access the Device Information, select Properties and open the Credentials tab. For Username enter the JEM_USER and leave Password field blank. Add the following extended device data fields and enter both the name for the the ssh.keyfile which is in the %JEM_INSTALL_DIR%\service\sshkeys folder and the ssh.passphrase (which you have defined earlier on) in plain text (will be decrypted by JEM). Additional Information How to add extended device data fields and properties SSH: Running commands as Administrator There are several commands the JouleX Energy Manager executes via SSH that require administrative authorization to be executed or deliver all necessary information. sudo sudo is a way to execute commands with administrative permissions as a regular user on Linux systems. To find out how to set up sudo please refer to Quick HOWTO : Ch09 : Linux Users and Sudo. sorry, you must have a tty to run run sudo If you see this error message you need to disable requiretty for the user you are connecting with by adding the following to /etc/sudoers: 53 of 186 JouleX Energy Manager v24295 Manual Defaults:username !requiretty pfexec pfexec is the Solaris equivalent of sudo. To find out how to set up pfexec please refer to Introducing pfexec, a Convenient Utility in the OpenSolaris OS. SSH: Commands The JouleX Energy manager uses SSH to execute commands on devices. The commands are executed explicitly or in the context of a sh script. Basic commands used by these scripts are: echo, cat, sed, grep, cut, bc, which, awk. NOTE: The scripts will be executed on the remote session and will never be copied to the devices. Additional Commands Command Devices admin (sudo/pfexec) ifconfig pc.linux pc.bsd pc.solaris on pc.solaris to get MAC address route pc.linux pc.bsd pc.solaris yes (on some systems) iostat pc.mac pc.bsd pc.solaris no modprobe pc.linux yes cpufreq-set pc.linux yes lshal pc.linux yes dmidecode pc.linux yes kenv pc.bsd no sysctl pc.bsd no ps pc.linux pc.mac pc.bsd pc.solaris no hostname pc.linux pc.mac pc.bsd pc.solaris no xset pc.linux no uname pc.linux pc.bsd pc.solaris no poweroff pc.linux pc.bsd pc.solaris lspci pc.linux pmset pc.mac yes shutdown pc.mac yes sw_vers pc.mac system_profiler pc.mac psrinfo pc.solaris no smbios pc.solaris no SSH: Feature Matrix Interface pc.linux pc.mac pc.solaris pc.bsd no FQDN max clockspeed only when cpufreq is installed RAM and detailed RAM information only when dmidecode is available harddisk count only when lshw is available no CD drive information potentially incorrect CPU count on older kernel versions with multi-core CPUs no system type no attached printers no attached printer state no power policy no AC/DC status no FQDN no max clockspeed no RAM information no harddisk information no CD drive information no system type no attached monitors no attached monitor state no attached printers no detailed harddisk information no detailed RAM information no attached printer state no AC/DC status no performance level no current clockspeed no proper CPU information no FQDN no graphics card information (device and vendor ID only) no RAM information no harddisk information no CD drive information no system type no attached monitors no attached monitor state no attached printers no detailed harddisk information no detailed RAM information no attached printer state no power policy no AC/DC status no performance level no current clockspeed setpowerstatus hibernate - custom standby - custom no notification support no notification support hibernate custom standby custom no notification support hibernate - custom standby - custom no notification support setperformancelevel only when cpufreq is installed not supported not supported not supported no clockspeed no clockspeed getdeviceinfo NOTE: FreeBSD is the main supported version - OpenBSD and NetBSD might be lacking more information no FQDN no graphics card information (device and vendor ID only on FreeBSD) no max clockspeed no RAM information no harddisk information no CD drive information no system type no attached monitors no attached monitor state no attached printers no detailed harddisk information no detailed RAM information no attached printer state no power policy no AC/DC status no performance level no network information on NetBSD and OpenBSD getcustomdata getsensordata runshellscript checkprocesses SSH: Scripts Script The JEM Controller will use the SSH scripts found in %JEM_INSTALL_DIR%\service\scripts to perform the various commands. NOTE: These are the scripts, that are being shipped with JEM and might be changed/replaced/added with any future update. Please do not add or replace any of these scripts. NOTE: The scripts are written to be run on /bin/sh. Custom Scripts You can specify a replacement script (meaning the existing one will be ignored completely) by using the device data field ssh.<interface>.script It will look for this file in the %JEM_INSTALL_DIR%\service\scripts folder. Overlay Scripts You can specify an overlay script (meaning it will be run after the existing script and can provide additional or replacement data) by using the device data field ssh.<interface>.script_overlay It will look for this file in the %JEM_INSTALL_DIR%\service\scripts folder. Interfaces The following interfaces are available: checkprocesses customdata_status customdata_sensordata customdata_deviceinfo deviceinfo hostname networkinfo 54 of 186 JouleX Energy Manager v24295 Manual powerstatus_off powerstatus_on powerstatus_hibernate powerstatus_standby powerpolicy sensordata_clockspeed sensordata_utilization sensordata_power sensordata_temperature Return Values The scripts return a list of key and values with the key being the name of the device data field. Example result for deviceinfo interface: infoRAM0=Unknown 1024 MB infoHDD=VMware Virtual S infoGPU0=VMware SVGA II Adapter infoGPU0.vendor_id=5549 infoGPU0.device_id=1029 operatingSystem=Linux ubuntu 3.5.0-21-generic #32-Ubuntu SMP Tue Dec 11 18:51:59 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux operatingSystemVersion=Ubuntu 12.10 distribution=Ubuntu//12.10 vendor=VMware, Inc. infoCPU=Intel(R) Core(TM) i7 CPU Q 720 @ 1.60GHz infoNumberOfCPUs=4 product=VMware Virtual Platform infoCPU.minClockSpeed= infoCPU.maxClockSpeed= infoRAM=1 infoHDD=1 The script also needs to exit with 0 and not write anything to stderr to be considered successfully executed. The returned values will not be applied, if the execution status is failed. Some interfaces have additional fields that can be returned or a different format altogether: sensordata_utilization returns either utilization with the utilization or __cpustat<count> fields (the output of cat /proc/stat per cpu) to calculate the utilization in JEM over time br/> Example for machine with 8 CPUs: __cpustat0=cpu 1182 7 2690 9079724 5761 0 227 0 0 0 __cpustat1=cpu0 102 0 282 1133440 1048 0 170 0 0 0 __cpustat2=cpu1 178 7 605 1135202 510 0 16 0 0 0 __cpustat3=cpu2 64 0 271 1135284 750 0 14 0 0 0 __cpustat4=cpu3 282 0 411 1135082 821 0 8 0 0 0 __cpustat5=cpu4 42 0 176 1135774 417 0 2 0 0 0 __cpustat6=cpu5 291 0 388 1134920 851 0 4 0 0 0 __cpustat7=cpu6 58 0 170 1135734 606 0 4 0 0 0 __cpustat8=cpu7 161 0 383 1134285 756 0 7 0 0 0 checkprocesses returns parsable output (the command column would be enough) of ps to get the process names Example: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 24336 2272 ? Ss 07:58 0:04 /sbin/init root 2 0.0 0.0 0 0 ? S 07:58 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S 07:58 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0 ? S 07:58 0:01 [kworker/u:0] root 6 0.0 0.0 0 0 ? S 07:58 0:01 [migration/0] root 7 0.0 0.0 0 0 ? S 07:58 0:00 [watchdog/0] root 8 0.0 0.0 0 0 ? S 07:58 0:01 [migration/1] root 9 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/1:0] root 10 0.0 0.0 0 0 ? S 07:58 0:00 [ksoftirqd/1] root 11 0.0 0.0 0 0 ? S 07:58 0:00 [watchdog/1] root 12 0.0 0.0 0 0 ? S 07:58 0:01 [migration/2] root 13 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/2:0] root 14 0.0 0.0 0 0 ? S 07:58 0:00 [ksoftirqd/2] root 15 0.0 0.0 0 0 ? S 07:58 0:00 [watchdog/2] root 16 0.0 0.0 0 0 ? S 07:58 0:01 [migration/3] root 17 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/3:0] root 18 0.0 0.0 0 0 ? S 07:58 0:00 [ksoftirqd/3] root 19 0.0 0.0 0 0 ? S 07:58 0:00 [watchdog/3] root 20 0.0 0.0 0 0 ? S 07:58 0:01 [migration/4] root 22 0.0 0.0 0 0 ? S 07:58 0:00 [ksoftirqd/4] root 23 0.0 0.0 0 0 ? S 07:58 0:00 [watchdog/4] root 24 0.0 0.0 0 0 ? S 07:58 0:01 [migration/5] root 26 0.0 0.0 0 0 ? S 07:58 0:00 [ksoftirqd/5] root 27 0.0 0.0 0 0 ? S 07:58 0:00 [watchdog/5] root 28 0.0 0.0 0 0 ? S 07:58 0:01 [migration/6] root 29 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/6:0] root 30 0.0 0.0 0 0 ? S 07:58 0:00 [ksoftirqd/6] root 31 0.0 0.0 0 0 ? S 07:58 0:00 [watchdog/6] root 32 0.0 0.0 0 0 ? S 07:58 0:01 [migration/7] root 33 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/7:0] root 34 0.0 0.0 0 0 ? S 07:58 0:00 [ksoftirqd/7] root 35 0.0 0.0 0 0 ? S 07:58 0:00 [watchdog/7] root 38 0.0 0.0 0 0 ? S 07:58 0:00 [kdevtmpfs] root 40 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/u:1] root 41 0.0 0.0 0 0 ? S 07:58 0:00 [sync_supers] root 42 0.0 0.0 0 0 ? S 07:58 0:00 [bdi-default] root 46 0.0 0.0 0 0 ? S 07:58 0:00 [khubd] root 48 0.0 0.0 0 0 ? S 07:58 0:02 [kworker/0:1] root 49 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/1:1] root 52 0.0 0.0 0 0 ? S 07:58 0:01 [kworker/4:1] root 53 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/5:1] root 57 0.0 0.0 0 0 ? S 07:58 0:00 [khungtaskd] root 58 0.0 0.0 0 0 ? S 07:58 0:00 [kswapd0] root 59 0.0 0.0 0 0 ? SN 07:58 0:00 [ksmd] root 60 0.0 0.0 0 0 ? SN 07:58 0:00 [khugepaged] root 61 0.0 0.0 0 0 ? S 07:58 0:00 [fsnotify_mark] root 62 0.0 0.0 0 0 ? S 07:58 0:00 [ecryptfs-kthrea] root 73 0.0 0.0 0 0 ? S 07:58 0:00 [scsi_eh_0] root 74 0.0 0.0 0 0 ? S 07:58 0:00 [scsi_eh_1] root 99 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/0:2] root 136 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/5:2] root 257 0.0 0.0 0 0 ? S 07:58 0:00 [scsi_eh_2] root 265 0.0 0.0 0 0 ? S 07:58 0:09 [kworker/7:2] root 269 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/2:2] root 270 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/3:2] root 272 0.0 0.0 0 0 ? S 07:58 0:00 [kworker/6:2] root 290 0.0 0.0 0 0 ? S 07:58 0:00 [jbd2/dm-0-8] root 386 0.0 0.1 17628 1164 ? S 07:58 0:00 upstart-udev-bridge --daemon root 404 0.0 0.1 21752 1472 ? Ss 07:58 0:00 /sbin/udevd --daemon root 565 0.0 0.1 21748 1032 ? S 07:58 0:00 /sbin/udevd --daemon root 566 0.0 0.1 21748 1032 ? S 07:58 0:00 /sbin/udevd --daemon syslog 633 0.0 0.1 249472 1412 ? Sl 07:58 0:00 rsyslogd -c5 root 644 0.0 0.0 0 0 ? S 07:58 0:00 [flush-252:0] 102 654 0.0 0.1 23932 1152 ? Ss 07:58 0:00 dbus-daemon --system --fork root 694 0.0 0.0 15188 624 ? S 07:58 0:00 upstart-socket-bridge --daemon root 773 0.0 0.2 10192 2932 ? Ss 07:58 0:00 dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0 root 795 0.0 0.2 49968 2852 ? Ss 07:58 0:00 /usr/sbin/sshd -D root 871 0.0 0.0 14504 960 tty4 Ss+ 07:58 0:00 /sbin/getty -8 38400 tty4 root 875 0.0 0.0 14504 968 tty5 Ss+ 07:58 0:00 /sbin/getty -8 38400 tty5 root 879 0.0 0.0 14504 968 tty2 Ss+ 07:58 0:00 /sbin/getty -8 38400 tty2 root 880 0.0 0.0 14504 968 tty3 Ss+ 07:58 0:00 /sbin/getty -8 38400 tty3 root 882 0.0 0.0 14504 968 tty6 Ss+ 07:58 0:00 /sbin/getty -8 38400 tty6 root 884 0.0 0.0 19112 860 ? Ss 07:58 0:00 cron daemon 885 0.0 0.0 16908 156 ? Ss 07:58 0:00 atd root 920 0.0 0.0 21116 760 ? Ss 07:58 0:01 /usr/sbin/irqbalance root 935 0.0 0.1 65144 1976 tty1 Ss 07:58 0:00 /bin/login -root 975 0.0 0.3 4188820 3936 ? Sl 07:58 0:00 /usr/sbin/console-kit-daemon --no-daemon root 1044 0.0 0.3 186616 3040 ? Sl 07:58 0:00 /usr/lib/policykit-1/polkitd --no-debug notroot 1055 0.0 0.3 20928 3480 tty1 S+ 07:58 0:00 -bash root 1259 0.0 0.3 81900 3828 ? Ss 08:23 0:00 sshd: sshtest [priv] sshtest 1288 0.0 0.1 81900 1932 ? S 08:23 0:00 sshd: sshtest@notty sshtest 1289 0.0 0.0 12772 916 ? Ss 08:23 0:00 /usr/lib/openssh/sftp-server root 1299 0.0 0.3 81900 3856 ? Ss 08:24 0:00 sshd: sshtest [priv] sshtest 1328 0.0 0.1 81900 1920 ? S 08:24 0:00 sshd: sshtest@pts/0 sshtest 1329 0.0 0.3 21028 3680 pts/0 Ss+ 08:24 0:00 -bash root 2405 0.0 0.0 0 0 ? S 09:13 0:00 [kworker/4:0] root 3131 0.0 0.0 0 0 ? S 10:28 0:00 [kworker/4:2] root 3214 1.2 0.3 81900 3788 ? Ss 11:07 0:00 sshd: sshtest [priv] sshtest 3243 2.0 0.1 81900 1832 ? S 11:07 0:00 sshd: sshtest@notty deviceinfo __monitoredid<count> is used to return the EDID data for the attached monitors. customdata_* __monitorstatus is used to return the status of the attached monitors Tech Note - SSL By default, SSL secured communication with the Apache Webserver is activated and available. The default port, if not changed during installation, would be 443. However, the certificate used is generated by JEM during the installation procedure and most browsers will classify it as Untrusted. If you would like to implement a trusted certificate, please contact the authentication service of your choice. The following will explain which files are needed and where they should be implemented. Required steps to implement trusted certification Go to %JEM_INSTALL_DIR%\apache\conf Provide your authentication service with the following files: cert.pem and key.pem After successful authentication copy the authenticated files into %JEM_INSTALL_DIR%\apache\conf Changing the device status check method JouleX Energy Manager settings allow you to perform status checks. By default, every device type has a predefined status-check method, like TCP port 135 for Windows devices or SNMP for printers. It is possible to change this default-behavior, or disable status-checks completely. 55 of 186 JouleX Energy Manager v24295 Manual To change from default to ICMP, TCP, SNMP, or none specify the following value in the Extended device properties: TCP statusCheck.type=tcp The port has to be specified by using: statusCheck.tcp.port=442 Where 442 would be the port to check. ICMP Use ICMP echo request instead of the default statusCheck.type=icmp SNMP Use SNMP for status checking - this requires SNMP to be configured, JEM will run a verification check for accessibility of the sysobjectid parameter, to decide if the device is online. For snmp configuration refer to SNMP configuration statusCheck.type=snmp IPMI Uses "Get ACPI Power State" command to get the status via IPMI. Requires ipmi.ip and ipmi.username and ipmi.password if authentication is necessary. statusCheck.type=ipmi None It is possible to disable the status check via network completely, this will allow for import of the status from an external source via scripting or an Asset Connector. This can be used to integrate devices that JEM does not have direct access to, for example, closed-off servers or building equipment. It is also possible to import the consumption for those devices via an Asset Connector. statusCheck.type=none Once network status polling is disabled, set the devices' status via script or Asset Connector (CSV) by setting the data field status to ON/OFF/STANDBY/HIBERNATE. This status information will not applied immediately, but will be cached and used in during the next status update cycle of the device. Setting the status via scripting: dset("status","ON","10.3.2.1"); Setting the status via CSV Asset Connector: uri;status 10.3.2.1;ON Import Status and consumption via CSV Asset Connector: uri;status;consumption 10.3.2.1;ON;350 VMware Power Sensor Measurement JouleX Energy Manager (JEM) supports Power Sensor readings from ESX hosts. It will automatically use the most reliable sensor available. Overwrite Power Sensor settings If JEM is unable to locate or chooses the wrong sensor, it is possible to overwrite which sensor should be used. To do this, add or edit the vmware.power.sensor extended device settings with the name of the sensor at your ESX host device. The ESX host sensors can be found through use of the vSphere Client. Select your ESX host machine. Go to the "Hardware Status" tab. Select as View: Sensors Write the name of the sensor in the vmware.power.sensor extended setting. WinRM: Configuration Additional Information about WinRM can be found on the Microsoft Web site, at http://msdn.microsoft.com/enus/library/aa384426%28v=VS.85%29.aspx. The required Windows Management Framework Core can be found at http://support.microsoft.com/kb/968930. General Remarks Please be aware that you need administrator credentials for both devices Make sure that WinRM is not blocked by the local firewall on both devices (default ports: 5985 / 5986 (HTTPS)) Only network controllers that are part of a trusted network are allowed to be activated WinRM is not supported by Windows XP x64 How to configure WinRM on JEM Controller Open a command line and enter following commands. C:\>winrm quickconfig C:\>winrm set winrm/config/client @{TrustedHosts="*.domain"} Note: You have to replace domain with your domain or site name. How to configure WinRM on a Windows device Open a command line and enter following commands. C:\>winrm quickconfig C:\>winrm create winrm/config/listener?Address=*+Transport=HTTP NOTE: By default, WinRM requires you to be part of a domain. If you are not using a domain account you need to disable remote UAC with the following command: reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f Additional information regarding WinRM configuration can be found on the Microsoft Web site, at http://msdn.microsoft.com/enus/library/aa384372%28v=vs.85%29.aspx. How to enable WinRM for a single device Go to the Devices tab. Double click the device. On the Device Information go to Properties > Extended. Add "winrm.enabled=1" to the extended settings. Click on the Save Changes & Close button. From this point on the device will be fully controlled via WinRM. How to enable WinRM on Asset Connector import On the Asset Connector Configuration window select the Script tab. Add the line "dset("winrm.enabled",1);" to the script window. Additional scripting features can be found at Introduction to Scripting. Click the OK button and save the changes. All devices that are imported from this Asset Connector are now controlled via WinRm. Additional options winrm.port The port used for the WinRM connections (default: 5985 / 5986 (HTTPS)) winrm.https Controls whether HTTP (default) or HTTPS is being used. Tech Note - Windows Security And Permissions The JouleX Energy Manager uses the configured credentials of domain or local users to connect to the device and gather information about hardware, configuration and consumption. There are also some cases where JouleX Energy Manager pushes data to the system, or it at least appears this way. The ability of JouleX Energy Manager to access each device depends on the assigned credentials and the chosen Device Access Mode. The specific Device Access Mode is defined in System/Network, to learn more about the modes, please see here. Wake-on-LAN (WoL) How To Configure Wake-on-LAN 56 of 186 JouleX Energy Manager v24295 Manual Please refer to Tech Note - Powering On PCs to get information on powering on PCs via Wake-on-LAN. Global options This option is global and applies to all devices. wolPort This option is documented under Values And Options Of Settings.xml. Tools Wake-on-LAN Tool This tool allows you to wake up a remote machine with the help of the Dos command prompt. Copy the file to the folder of your choice and access the folder on the Dos command prompt. wol.exe broadcasts a "Wake On LAN" packet to the Network Interface Card (NIC) with the specified MAC address. The MAC address may optionally be followed by the IP address of the network adapter that should broadcast the packet. A port number can also be specified, although this is rarely necessary. To download the file, please visit www.gammadyne.com. wol.exe 5c9d32b5f287 wol.exe 5c9d32b5f287 192.168.0.1 wol.exe 5C9D32B5F287 192.168.0.1 16962 ctrlwol.vbs Script This script enables WoL for the network interface controller (NIC) of a Windows device (which can also be done manually by accessing the Settings for a network controller in Windows Device Manger). Deploy the script within your network and execute it while starting the specific device. The script allows you to use one of three settings: ENABLE, MANAGED and DISABLE. To active WoL for the use through JEM the setting needs to be ENABLE: cscript.exe ctrlwol.vbs enable To download the script, please open CTRLWOL.vbs. Note: This script is originally for Lenovo devices. However, it should work for all devices with one of the NICs mentioned in strAdap (line 35). To use it for a device with a NIC not mentioned in the list, add the NIC and that the procedure still works. Dell Client Configuration Utility (DCCU) The Dell Configuration Utility compiles an executable which can be easily deployed within the network to activate WoL on Dell Latitude, OptiPlex, and Precision models. If you want to learn more about DCCU please visit the following website: How to enable Wake on LAN BIOS settings using Group Policies and DCCU The program itself plus a documentation is available at Dell. Asset Connector Overview In this section, devices can be imported from existing management systems using Asset Connectors. A wide variety of different management systems for computers, phones, switches, access points, etc. are supported. For instance, it is possible to import Windows machines via Active Directory and at the same time import phones from a phone management system. JEM also supports the ability to import devices from CSV files. Asset Connectors first import all existing devices, then automatically synchronize new and modified devices. This ensures that the system always manages devices correctly. When multiple Asset Connectors provide information for an identical device, compatible data will be aggregated and merged. List of available Asset Connectors Active Directory Import devices (computer, printer, etc.) from Microsoft Active Directory Cisco CallManager Import VoIP phones from Cisco CallManager Cisco EnergyWise Import devices from an EnergyWise domain. Cisco UCS Import devices from Cisco UCS Manager. CiscoWorks CiscoWorks CSV Files General purpose importer using CSV files JEMScript General purpose importer using JEMScript Intel Data Center Manager Intel Data Center Manager Juniper Junos Space Import devices from Junos Space. Enterasys NAC Enterasys NAC Enterasys NetSight Enterasys NetSight Network Discovery: IPMI Import Devices via IPMI Network Discovery: SNMP Import Devices via SNMP Network Discovery: WMI Import Devices via WMI Network Discovery: SSH Import Devices via SSH Schneider Eletrics EGX-300 Import meters via Schneider Eletrics EGX-300 ODBC General purpose importer using an existing ODBC database which contains device information SCCM Import devices from Microsoft SCCM Server OpenScape DLS Import VoIP phones from OpenScape DLS VMware Import virtual machines from VMware ESX/vSphere Hyper-V Import virtual machines and hosts from Hyper-V Windows Clients Import windows devices using the Windows Client Active Directory To integrate an Active Directory, the Domain Name and User Credentials for a Domain Account allowed to enumerate the directory are required. The IP address of a Directory Controller will be resolved via DNS, if this is not possible the IP address or Hostname of one of the Directory Controllers must be supplied. The Asset Connector will connect to the directory, retrieve all Computer Names, and resolve them by DNS. This is required, as Active Directory has no knowledge of the IP addresses and states of end systems. Thus, a working DNS is a requirement for proper function. To restrict the Import Scope, specify the OUs that should be included in the Org. Units Tab. To filter on other properties using a custom logic the JEMScript Tab can be used as explained in Ignoring Devices in Import from Asset Connector DNS Resolution attempts to resolve the Hostnames from Active Directory directly. This means DNS Resolution relies on the "local" search path being configured with a usable domain. E.g. if your domain is company.local and the hostname fetched is host01, the lookup for the DNS should be "host01.company.local". If the Server is joined to the domain, the "domain.local" is automatically added to the Search Path. In other cases you will have to add the domain-path to the search-path manually: By default the "Location" Property will be retrieved from Active Directory and stored in Device Properties for grouping. The location can also be set from any attributes retrieved from Active Directory via the JEMScript Tab. Additional attributes and information can be retrieved and stored in user created custom fields. 57 of 186 JouleX Energy Manager v24295 Manual Active Directory specific Import Options Maximum LastLogon Age Active Directory tracks the last time a Computer Account has logged on to the domain. Setting this to a non-zero Value will filter out "old" or stale accounts Enrich Only With this box selected, JEM will only add additional information to already existing devices. This is not recommended if the Asset Connector is being added manually for the first time, as no devices will be added. Take Device Ownership If a device is part of several Asset Connectors, the one that first scanned the specific device will take ownership. If this box is selected, the status of the Asset Connector is superior to others and therewith will take the ownership (and verifies it with every scan cycle) regardless of when it was scanned. This might be critical as Policies or Segments are based on Asset Connectors. Overwrite Location and Operating System Checking this box allows the Asset Connector to overwrite the Location and Operating System informations provided by WMI with the informations provided by the AD. Map Devices to AD-Site via Subnet For larger AD Deployments, with several Domain Controllers and Sites, this option can be enabled. JEM will then retrieve the Subnets and Sites from the Active Directory. The AD Sitemap tab will summarize this information. To make use of it for your location mapping, copy and paste it to Devices > Location Mapping. Depending on the subnets configuration in the AD Sites, the location property might not be set. Devices to Import By Default JEM will try to import Computer Accounts and Print Queues. This setting restricts JEM to importing only PCs or Printers Default Printer snmpv1 community By default AD Printers will be assumed to be SNMP version 1 enabled, here the community can be supplied for these printers, if empty "public" will be used. If the printers use another SNMP version or several different credentials they will need to be imported via CSV/ODBC or script. Cisco CallManager Integration JEM can be integrated with Cisco CallManager to monitor the energy consumption of all phones, even if they are not PoE-powered. For this, the IP Address of a CallManager Cluster member running the AXL+RIS-Webservices API must be configured and accessible from the JEM-Server. The credentials of a user that has access to the corresponding Webservices will also need to be configured, and Webservices must be enabled. 58 of 186 JouleX Energy Manager v24295 Manual Cisco EnergyWise Integration The Cisco EnergyWise asset connector automatically imports all nodes (Switches, PDUs, outlets, endpoints, etc.) in an EnergyWise domain and makes them available as devices in JEM. JEM also supports multi domain support, energy measurements, settings power levels, special handling for PDU outlets, keywords and many more. Learn more about the EnergyWise Device Type in JEM. Sample Asset Connector Integration To integrate with Cisco EnergyWise, supply the name of the EnergyWise domain in the Domain field and the credentials in the Secret field. Choose one of the Local IP Addresses to be used by EnergyWise to indicate where query replies should be sent. The selected Local IP Address must be reachable by EnergyWise devices. In the IP(s) field, please enter the IP address of one EnergyWise management node in the given domain. 59 of 186 JouleX Energy Manager v24295 Manual After defining the EnergyWise domain, JEM will automatically import all the nodes (Switches, PDUs, outlets, endpoints, etc.) in an EnergyWise domain. Advanced EnergyWise Options Please change the following options with care: Include Switch Ports not in use: changes the EnergyWise Asset Connector import behavior. Normally switch ports with an EnergyWise level greater then 0 and a power consumption of 0 watts are not imported. If this option is enabled, these switch ports will also be imported. Timeout for get queries: allows you to adjust the timeout which is used for EnergyWise get queries. Timeout for set queries: allows you to adjust the timeout which is used for EnergyWise set queries. Timeout for import queries:allows you to adjust the timeout which is used by the Asset Connector for the EnergyWise domain import. Timeout between queries: allows you to adjust the timeout between two EnergyWise queries. If you set this timeout to a value smaller than 10 this can result in flooding warnings on the switch. Delete old devices after: If a device wasn't found by the Asset Connector for this time period it will be deleted. Example In the following example, the red squared IP address 10.0.3.150 is a PDU and the other 8 red squared devices are the different Outlets. In the follwing example, the red squared EnergyWise Level shows which EnergyWise devices are at which EnergyWise level. 60 of 186 JouleX Energy Manager v24295 Manual Depending on the device type, Device Details differ. Typical device details for an EnergyWise device is like below; See EnergyWise Configuration for configuration. Additional Information Check out the following sites for more information: www.cisco.com/go/energywise http://www.cyberswitching.com/download.aspx?id=714 Cisco UCS Integration To integrate Cisco UCS, supply the UCS Manager URL and the appropriate user credentials. The UCS Asset Connector automatically imports all assets (servers, blades, etc.) as devices into JEM. For more information about the imported devices, see Cisco UCS Devices Additional information regarding Cisco UCS can be found on the Cisco Web site, at www.cisco.com/go/ucs. Cisco LAN Management Solution / Cisco Works Integration To integrate with Cisco LAN Management Solution / Cisco Works, configure the URL of the LMS Server and the credentials. 61 of 186 JouleX Energy Manager v24295 Manual CSV File Importer Imports devices from a CSV text file which must be located in %JEM_INSTALL_DIR%\service\acfiles (see Files and Folders) The CSV file must have semicolon (;) separators and a header indicating the column-names as properties. Any unknown properties will be imported as new device data fields. The following shows a default CSV-file sample to import pc.linux devices (for more examples scroll to the bottom of the page) uri;location;unit;type;username;password 192.168.200.100;New York;HQ;pc.linux;root;admin100 192.168.200.101;New York;HQ;pc.linux;root;admin101 192.168.200.102;New York;HQ;pc.linux;root;admin102 It is possible to include any Device Data Field (including custom fields) to the CSV file to provide JEM with all necessary information for your devices. For more information please refer to the given link. It is also possible to edit the CSV file with the help of a spreadsheet (e.g. Microsoft Excel, OpenOffice.org Calc, etc.). Pay close attention to the distinct settings and savings options, so that the office suite does not add additional information and separators which might hinder JEM's ability to read the CSV. Import CSV File After the CSV has been added successfully to JEM (also possible with the help of File Management), add the CSV Asset Connector. To access the Settings page, go to Devices > Import and select Generic > CSV File from the menu which opens as you click on + Add Asset Connector. Besides the Basic settings (AssetConnector Name & Asset Connector Schedule), define the Filename of the CSV at the File register. Optional Settings Additional settings are all optional, but may be important for your environment Enrich Only Normally JEM would sync the devices stored in the CSV with the one integrated into JEM, hence add and delete devices. With this box selected, devices will only add additional information to already existing devices. This is not recommended if you add a Asset Connector for the first time, as no devices will be added. Take Device Ownership If a device is part of several Asset Connectors the one which first scanned the specific Device will take ownership. If this box is selected, the status of the Asset Connector is superior to others and will take the ownership (and verifies it with every scan cycle) regardless of when it was scanned. This might be critical as Policies or Segments are based on Asset Connectors. Match Device using this field This options refers to a similar scenario as Take Device Ownership. If devices are part of two Asset Connectors, JEM matches them with help of the URI, HOSTNAME or MAC-Address by default. With this field it is possible to define a custom matcher, e.g. Inventory ID, Workstation Number, etc. This will reduce the number of mismatches and assists JEM in providing detailed information about the devices. Field Separator By default, JEM assumes that entries in the CSV are separated with a semicolon. If your CSV file uses a different separator, indicate it here. Ignore Empty Fields If this box is selected, JEM will ignore empty fields and not add any entries, meaning no default data will be written (defaults are empty fields for string and 0 for integer values) and existing data will not be overwritten. Please be aware of the effects if the box is selected, especially if you make changes to the CSV file and delete fields. CSV File Examples 62 of 186 JouleX Energy Manager v24295 Manual Integrating Printing Devices The example above refers to integration/addition of new devices into JEM for pc.linux devices. The following will give an example for printers: uri;location;unit;type;snmp.version;snmp.community.password 192.168.300.100;Berlin;Marketing;printer;2;public 192.168.300.101;Berlin;Marketing;printer;2;public 192.168.300.102;Berlin;Marketing;printer;2;public Enriching Device Information with a CSV Asset Connector As pointed out in the table, an Asset Connector is also useful to enrich Device Information. The example assumes that the Devices have been integrated with another Asset Connector and that the box Enrich Only is selected in the Optional Settings. As matcher, JEM will make use of one of the default matchers, URI in this case: uri;inventoryID 192.168.300.101;BerMarP001 192.168.300.102;BerMarP002 192.168.300.103;BerMarP003 Integrating Devices with Power value and Status To add data to JEM for devices, which can not be managed through JEM (e.g. facility management), most device management software allows you to regularly parse the consumption data into a CSV file, which is than added to JEM. The example below refers to the energy meters of a facility. Note: the imported data is stored in the CacheProxy and are persistent, which means that changes only will take affect after JEM Controller is restarted or through new values integrated with the help of the CSV. uri;type;power;status meter001;generic;750;ON meter002;generic;500;ON meter003;generic;0;OFF Network Discovery: Out-Of-Band Network Discovery The Device Discovery Asset Connectors feature allows addition of devices to JEM that are not managed by a central instance. Because the underlying technology is similar to a network scanner, the user has to define several core input factors like IP range, port, and credentials. The Device Discovery Asset Connectors utilize a specialized protocol, enabling far more enhanced device communication capability. IPMI (Out-Of-Band Network Discovery) The Intelligent Platform Management Interface (IPMI) is primarily associated with server infrastructure. The advantage of the interface is that it provides more detailed information than the standard WMI and SSH protocols that, used in combination with JEM, will provide more in-depth information about the devices and their performance. Tab: Basic AssetConnector Name: Name the AssetConnector. AssetConnector Schedule: Choose from different query cycles the AssetConnector should run, from the drop-down menu.. Tab: Connection IP Range: Define the range of the IPs within the Out-of-Band-Network to scan for devices. Exclude IP Range: Define the range of IPs which should be excluded. Ports: Enter the Ports that are used. Important Each IP-Range or single IP address has to be entered in a separate line and in the following notations: 192.168.1.1 192.168.2.0/24 192.168.3.0-255 192.168.4.* Each port must be entered in a separate line. 930 931 970 Tab: Credentials Use + Add Credentials to add the credentials for the IP-Range in the Connection Tab mentioned before. Tab: JEMScript Customize your integration via JEMScript 63 of 186 JouleX Energy Manager v24295 Manual Tab: Options No ICMP Check Check the box if you do not want ICMP to ping but to directly check the ports. Import Generic Devices All reachable generic devices within the IP-Range set in the Connection Tab will be imported. If the No ICMP Check box is selected, this option will not be available. Network Discovery Thread Count: This field is used to set the count of Threads running simultaneously. Network Discovery Scan Timeout: Sets the time in ms when the Network Discovery Scan should time out. Network Discovery: SNMP The Device Discovery Asset Connectors feature allows addition of devices to JEM that are not managed by a central instance. Because the underlying technology is similar to a network scanner, the user has to define several core input factors like IP range, port, and credentials. The Device Discovery Asset Connectors utilize a specialized protocol, enabling far more enhanced device communication capability. SNMP Network Discovery The Simple Network Management Protocol (SNMP) is the default protocol for many network connected devices, especially for those which only use firmware and not a fully functional operating system. SNMP has evolved into a complex protocol with different versions, JEM 4.0 supports the latest version SNMPv3. Tab: Basic AssetConnector Name: Name the AssetConnector. AssetConnector Schedule: Choose from different query cycles the AssetConnector should run, from the drop down menu. Tab: Connection IP Range: Define the range of the IPs within your SNMP-Network to scan for devices. Exclude IP Range: Define the range of IPs which should be excluded. Ports: Enter the Ports that are used. Important Each IP-Range or single IP address has to be entered in a separate line. The following notations are possible: 192.168.1.1 192.168.2.0/24 192.168.3.0-255 192.168.4.* Each port must be entered in a separate line. 930 931 970 Tab: Credentials To + Add Credentials, add the credentials for the IP-Range in the Connection Tab mentioned before. Description: Name the Credentials. SNMP Version: Depending on which SNMP Version is used, the following fields could be greyed out. Community Password: In SNMP-Version v1 and v2c a Community Password is used. With SNMP-Version v3 the Community Password is not applicable. Username: The Username is required only in the SNMP v3. Authentication Type: Choose between MD5, SHA or none (only SNMP v3). Authentication Password: Type in the Authentication Password set in the SNMP configuration (only SNMP v3). Privacy Encryption Type: Select the type of Encryption set for the Privacy Password (only SNMP v3). Privacy Password: Type in the privacy password set in the SNMP configuration (only SNMP v3). 64 of 186 JouleX Energy Manager v24295 Manual Tab: JEM Script Customize your integration via JEMScript Tab: Options No ICMP Check Mark the box if you don't want ICMP to ping but to directly check the ports. Import Generic Devices All reachable generic devices within the IP-Range you set in the Connection Tab will be imported, if this box is selected. If the No ICMP Check box is checked, this option is greyed out. Network Discovery Thread Count: This field is used to set the count of Threads running simultaneously. Network Discovery Scan Timeout: Sets the time in ms when the Network Discovery Scan should time out. Additional Informations SNMP Configuration SNMP Scripting SSH Network Discovery The Device Discovery Asset Connectors feature allows addition of devices to JEM that are not managed by a central instance. Because the underlying technology is similar to a network scanner, the user has to define several core input factors like IP range, port, and credentials. The Device Discovery Asset Connectors utilize a specialized protocol, enabling far more enhanced device communication capability. SSH Network Discovery Secure Shell (SSH) network protocol is the major remote control protocol for Unix devices. With SSH access JEM to enabled to remotely manage device and exchange information, based on the common shell commands. Windows Network Discovery The Device Discovery Asset Connectors feature allows addition of devices to JEM that are not managed by a central instance. Because the underlying technology is similar to a network scanner, the user has to define several core input factors like IP range, port, and credentials. The Device Discovery Asset Connectors utilize a specialized protocol, enabling far more enhanced device communication capability. Windows Network Discovery Windows Management Instrumentation (WMI) allows remote management of Microsoft Windows devices. Earlier versions of JEM make extensive use of WMI, however this new Asset Connector enables scanning for devices which are not centrally managed but have WMI activated. EGX300 Gateway EGX300 is an integrated gateway server from Schneider Electric which collects data of multiple via Modbus connected sensors. EGX300 Asset Connector imports all power sensors automatically, which are connected to the EGX300 gateway. Sample EGX300 Gateway Integration To integrate with EGX300 Gateway, supply the URL, Username and Password of EGX300 web interface in URL, Username and Password fields. 65 of 186 JouleX Energy Manager v24295 Manual Additional Information Check out the following sites for more information: http://www2.schneider-electric.com/sites/corporate Enterasys NAC Import Devices from Enterasys NAC by querying the NetSight Webservice and Database. Enter the IP of the NetSight Server and the credentials for the Webservices-User. All other Values (DB-Port, DB-Name, DB-credentials) should work with default values. Enterasys NetSight Integration Import Switches and Routers from Enterasys NetSight by querying the NetSight Webservice and Database. Enter the IP of the NetSight Server and the credentials for the Webservices-User. All other Values (DB-Port, DB-Name, DB-credentials) should work with default values. To Integrate Enterasys NetSight+NAC, access to the database has to be configured - refer to the following page on how to configure access Enable Enterasys NetSight DB Access The NetSight Asset Connector will retrieve all switches, including their credentials, from the NetSight repository and report the switches' consumption based on their states. The Switch-State (on/off) is retrieved from NetSight as long as the Asset Connector is enabled. If the Connector is disabled in preferences, the status will be polled from the switch via SNMP. JEM supports all SNMP versions (1/2c/3 with MD5/SHA-1, DES/3DES/AES128/AES192/AES256). 66 of 186 JouleX Energy Manager v24295 Manual Intel Data Center Manager This Asset Connector provides connectivity to Intel Data Center Manager (DCM). Intel DCM provides the ability to measure devices, determine their status, and power them on and off if they support the DCMI protocol. Asset Connector Configuration To connect to a device via the DCM, first configure a DCM Asset Connector. First, open the Intel Data Center Management dialog from the Settings page. Go to Devices > Import, click the + Add Asset Connector button and select Server Managementw > Intel Data Center Management: Connection Host The address of the machine the DCM is installed on Port The port DCM is running on (default: 8688 / 8643 (TLS)) Use TLS Check if you have configured DCM to utilize TLS Options Power Sampling Frequency The sampling frequency is the time interval between measurements that DCM collects from managed nodes. DCM starts monitoring cycles immediately when it launches. When the sampling frequency is changed, it only implements the change at the beginning of every 6 minutes. Power Measurement Granularity The measurement granularity is the resolution of power data measurements that are stored in the DCM database for further usage. It must be multiple of the power sampling frequency. Intel recommends the following minimal granularity: Managed devices Recommendation <= 1000 30 seconds 1001 to 5000 180 seconds 5001 to 10000 300 seconds Status Monitoring Frequency The frequency in which DCM determines the status of the registered devices. Device Configuration To finally configure the different devices for the use of DCM, access the extended device data fields. Go to Devices > Overview , double click on the device to be edited and select Properties, then click on Show Properties > Categories and select IPMI Configuration a n d DCM Configuration. Server DCM accesses server via the IPMI protocol. To hook up servers to the DCM, set your values for the extended device data fields: 67 of 186 JouleX Energy Manager v24295 Manual IPMI/BMC IP Address - the BMC address DCM IP Address - the IP of the DCM server as configured in the Asset Connectors DCM Derated Power - the derated power of the device (see http://en.wikipedia.org/wiki/Derating) If the BMC is configured to require authentication you need to set the following fields as well: IPMI Username - the username to authenticate with the BMC IPMI Password - the password to authenticate with the BMC PDU DCM accesses PDU via the SNMP protocol. To hook up PDU to the DCM: set the device type to el.pdu configure the device for SNMP (see Configuring SNMP) set the following extended device data fields: DCM IP Address - the IP of the DCM server as configured in the Asset Connectors DCM Derated Power - the derated power of the device (see http://en.wikipedia.org/wiki/Derating) Synchronization Devices are registered with DCM on the first status check and removed from DCM when the Asset Connector is executed. If obsolute entries must be forcefully removed from the DCM database, do this in the Asset Connector configuration by clicking Execute All Asset Connectors. JEM Script Asset Connector The built-in scripting function of JEM, JEMScript, is a powerful tool to create customized solutions within JEM. With the JEM Script Asset Connector it is possible to import devices using the various JEMScript functions (e.g. HTTP, SNMP). The Asset Connector imports the devices which are returned in JEMScript in a JavaScript Array which contains the individual devices as JavaScript objects. See a simple example below on how the devices must return: 68 of 186 JouleX Energy Manager v24295 Manual Juniper Junos Space Integration The Juniper Junos Space Asset Connector automatically imports all Junos devices (switches, routers, etc.) and makes them available as devices in JEM. The JouleX Energy Manager utilizes Junos Space to retrieve actual energy consumption data from the Juniper switching and routing infrastructure. Learn more about the Juniper Junos Space Device Type in JEM. To integrate with Juniper Junos Space, supply the Junos Space URL and the appropriate user credentials. Additional Information Additional information regarding Juniper Junos Space can be found on the Juniper Web site, at http://www.juniper.net/us/en/productsservices/software/junos-platform/junos-space/. ODBC Database Generic ODBC Database Integration The ODBC Asset Connector is a powerful tool as it enables integration of any ODBC-Database Query as a datasource for creating or enriching devices. To use the ODBC-Connector, supply a valid DSN (ODBC Datasource) which must be setup on the Server JEM is running on. Most Windows systems will allow this to be configured from Administrative Tools > ODBC. NOTE: On a 64-bit operation system, %WINDIR%\SysWoW64\odbcad32.exe must be run instead, to configure the datasource. If not, the message ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified may be received when trying to import data. After the ODBC Datasource has been setup on the Windows machine, it has to be integrated into JEM. Go to the Settings page and select ODBC import from the drop down menu on the Import Devices section. The DSN has to be referenced in the Asset Connector DSN-Field: DSN=odbc_data_source;uid=test;pwd=test The DSN-Field defines the datasource for the query below. The UID and password depends on your DSN. If the DSN settings do not provide an option to define the UID and password it must be manually provided. Note: This will be executed with the permissions of the DSN. The result has to contain Column Names corresponding to the device information fields to be imported, e.g. uri, type, unit, username, etc. Refer to the structure given in the screenshot above. ODBC Troubleshooting As ODBC is an open interface the following can only highlight a couple of possible issues: ODBC Data Source is missing Microsoft Windows comes with several per-installed connectors for the different interface types (e.g. Excel, Access, CSV, SQL, etc.). If one for 69 of 186 JouleX Energy Manager v24295 Manual your specific data source is missing, check online to see if the developers provide one. JEM couldn't connect After the Asset Connector has been successfully defined, Windows verifies the connectivity but JEM is unable to connect. Note that there are different DSN types (User DSN, System DSN and File DSN). Verify that you have selected the correct one for your specific environment. JEM connects to the ODBC but is not able identify the headers Each database follows different rules, you may need to add quotation marks or semicolons so that JEM is able to interpret the column headers. SCCM Integration For SCCM Integration either direct MSSQL Database Access or WMI Access to a SCCM-cluster member running WMI services can be used. The method is defined by part of the host-string entered in the Asset Connector properties, the strings format is "(wmi|sql):ip[:port]". The first part defines if WMI or MSSQL access is used. The second part (ip) is the IP of the server to use. The last part provides the option of supplying a port with :portnumber for SQL access. By default 1433 is used. Sample configuration for the integration of SCCM via an SQL Database: If a username is supplied, the SCCM-connector will use SQL authentication without a username integrated Windows authentication. In the sample above, JEM would attempt to query the database via SQL with SQL authentication to the user 'administrator'. System Center Virtual Machine Manager (SCVMM) System Center Virtual Machine Manager (SCVMM) is Microsoft's powerful tool to integrate Microsoft Virtual Server and Hyper-V into a broader management console. With the SCVMM Asset Connector, JEM provides a unique interface which allows management of Microsoft's virtual solutions from a central instance. JEM pulls the information from the SCVMM, which guarantees that all devices are recognized and managed. OpenScape DLS To integrate with OpenScape DLS, configure the IP & Port and Credentials of an API-User with read-rights of the DLS as indicated in the images below. To verify user credentials, go to the DLS web interface and verify the User has an Access-Type of DLS-API as indicated below JEM will then Import the Devices which are listed under IP Devices->IP Device Management -> IP Infrastructure 70 of 186 JouleX Energy Manager v24295 Manual VMware Import virtual devices directly from an ESX server or multiple ESX servers(e.g. Clusters) from the VMware vCenter. Add the IP Address or Hostname of the ESX / vCenter and add Credentials of an account which at least has "read-only" access rights. Test whether or not the credentials are sufficient by logging in directly into vCenter. If you can see the hostnames and machines, this account will work for JouleX Energy Manager. VMware Asset Connector imports all the virtual and host machines. Further Settings By default, the interaction by JEM with the virtual devices will be logged in the VMware vCenter log file, especially the status check, which JEM performs on a regular basis. If you want to deactivate this, add the following extended Device Data Field for each VM Host: vmware.usegwt=1 Deployment while integration To deploy it while integrating the Asset Connector, make use of the scripting function. Access the JEMScript tab and add the following line: dset("vmware.usegwt","1"); Hyper-V To import Devices from a Hyper-V host using PowerShell, provide the Windows credentials in the Connection tab. See additional information below for how to set up PowerShell for remote access. Notice: The username has to be prefixed with the domain name (as shown in the image below) or if a local user is used, by the IP / computer name of the target host. Importing from SCVMM This Asset Connector automatically detects SCVMM on the target machine and imports all Hyper-V hosts from it if available. If you don't want to import the whole SCVMM Hyper-V structure, move on to the Options tab and check 'Do not import from SCVMM' this way the Asset Connector ignores SCVMM and imports devices from the target machine as if it was a standard Hyper-V host. Additional Credentials for SCVMM When importing from SCVMM the Hyper-VAsset Connector looks up all available Hyper-V hosts in the SCVMM database and connects to the individual hosts. Therefor you might have to add additional credentials for those hosts, if those credentials differ from the credentials given in the 'Connection' tab. As mentioned above the username of the credentials has to be prefixed with domain name or IP / computer name depending on the user. Requirements for SCVMM Importing from SCVMM requires the SCVMM Administrator Console installed on the target machine. 71 of 186 JouleX Energy Manager v24295 Manual Setting up PowerShell for remote access This Asset Connector uses a remote PowerShell connection to import devices. The JEM Controller tries to initiate a remote PowerShell session at the target Hyper-V host. By default remote access via PowerShell is disabled. To enable remote access via PowerShell, please refer to the following article: Enable and Use Remote Commands in Windows PowerShell Windows Helper Integration We have provided the JouleX Windows Helper as an alternative to the WMI and WinRM integration options. It is installed on the specified Windows PC and runs as a system service that pushes PC energy data to the JEM Controller. The JouleX Windows Helper must be deployed with the routing key ID generated by this AssetConnector. On startup, the client registers at the JEM Controller and a device will be automatically be created in the orgfolder of this AssetConnector. Sample Integration To import devices which have the JoulexWindowsHelper.exe running as a service, please start at Devices > Import and click on . In the dropdown menu, click on Generic > Windows Helper. In the window that now opens, click on the Basic tab to set a name for the Asset Connector and its schedule. The tab Windows Helper Configuration holds the Windows Helper Routing Key which is needed for the installation and configuration of the JoulexWindowsHelper.exe. You can access the Routing Key at any time for laterly installations of the JWH by clicking on Options > Edit in the upper right corner of the Asset Connector as shown in the screenshot below. Additional Information For more information about the deployment of the JouleX Windows Helper, refer to our Joulex Windows Helper deployment guide. Technical Articles This section contains various technical articles about Asset Connectors. Ignore devices in Asset Connector imports To ignore devices during Asset Connector import or refreshes, it is possible to write a custom script inside the Asset Connector configuration. Use the acignore function to mark device "to be ignored" for Asset Connector imports or updates. See Function: acignore Example: Exclude one single hostname var hostname = dget("hostname"); if (hostname == "lab-12-srv01"){ acignore(); } Or, to include only devices from a certain OU - in this case "Sales" Example: Only import the "Sales" business unit var unit = dget("unit"); if (unit != "Sales") { acignore(); } Enable Enterasys NetSight DB Access How to Enable NetSight Database Access for the JEM Asset Connector Currently not all information needed by Enterasys NetSight can be retrieved via Webservices, so direct access to the underlying MySQL Database is required. To enable access to the database use the following Windows Batch Script. To adapt it for your environment, download and save the file to the NetSight Server and edit it to adjust the values for IP address, username and password. The IP address should reflect the IP address of the JEM Controller. Then use the credentials supplied to configure the NetSight/NAC Asset Connector. enableDBaccess.cmd 72 of 186 JouleX Energy Manager v24295 Manual Role Based Access Overview JouleX Energy Manager provides folder-based rights management functionality to assign users with specific roles through our all new folder structure. Folders The folders function provides the ability to model the corporate structure within the JouleX Energy Manager by assigning users and roles to the folder structure you create. Through this feature, users can be assigned to different roles with specific permissions (e.g. view and/ or write permissions) to each folder. It is important to note that the permissions assigned to a role apply to all child folders within the directory. Users and Roles Users can have different roles assigned to each folder in your directory, but it is imperative to ensure that the user role is assigned at the appropriate directory level as, again, all permissions are applied to child or subfolders in the directory. For example, if User Bob should have full administration permissions for specific functions, define the role Admin and assign the corresponding permissions (e.g. view, edit, and execute permissions). Then apply this role to User Bob's account and to the appropriate folder (e.g. Facility) in your directory. However, User Bob should have view only access to a different folder (e.g. R&D JEM 2). In this instance, follow the same procedures outlined above. Define the role, assign that role to User Bob and to the other folder. Permissions As an essential element of Role Based Access, permissions allow creation of custom roles for managing your JouleX Energy Manager deployments. Folders With folders, JouleX Energy Manager offers the perfect way to map the JEM environment to correspond with your corporate structure. The folder structure also forms the basis for the subsequent Role Based Access, meaning that a well-organized folder structure will reduce your permissions based workload within the JEM deployment. Assigning JEM Controller to Folders The following figure provides a high level example of folder organization for two different locations of a company. Example One: The company has deployed JouleX Energy Manager to three servers in their Atlanta, GA location. Two of these servers are assigned to the Folder Facilities. In this case, JEM Controller 1 monitors the lighting and JEM Controller 2 monitors the HVAC. The company's Distributed Offices equipment (PCs and attached devices) are monitored and managed by JEM Controller 3. 73 of 186 JouleX Energy Manager v24295 Manual As seen in the figure above JEM Controller can be assigned to Folders, but each Folder and related subfolders can only be scanned by one JEM Controller. In the example above, the Facilities folder hosts two JEM Controller; one assigned to Air Con and another to Lighting. Because the air con and lighting folders are each scanned by a different JEM Controller, the servers can not be assigned directly to the Facilities Folder. The servers must be assigned to their own subfolders and then integrated to the Facilities Folder. Example Two: The company's Munich location is entirely managed by a single JEM Controller. The folder structure for this location shows that JEM Controller 4 is assigned to the Facilities Folder, and all of the location's devices are organized in subfolders. Assigning Users and Roles to Folders The Role Based Access Management allows creation of users with specific roles and permissions for each folder. Each subfolder will always inherit the users and roles from the folder it is assigned to. In our example, that means a user with full view/write permissions assigned to the folder Facilities JEM 4 in Munich will have those same permissions in all subfolders. Another user, e.g. a user with view-only permissions, assigned to the Folder Lighting will only be able to see the data contained in this folder and not the parent folder. Roles and Permissions In the context of Role Based Access, Permissions are bundled Rights-Attributes which are defined in Roles and assigned to Folders. JouleX Energy Manager comes with a basic set of predefined Roles to get you started. You will have the ability to add your own custom Roles. To create these roles, access the Role Management features. Important: Permissions are inherited within the folder structure. The figure below illustrates how permissions inheritance works within the folders. Bob has his permissions set in a role for the folder Atlanta. As you can see, Bob now has the same role/permissions for all subfolders. In this case, Facilities, Lighting JEM 1, Air Con JEM 2 and Offices JEM 3. John's permissions, in a role defined for the folder Facilities are inherited only to Lighting and Air Con. Users In the context of Role Based Access, JouleX Energy Manager allows manual creation of users or import of users and assignment of access levels based on Active Directory access levels. You can then assign user roles for any or all folders in the directory. Thus, roles can be defined as any combination of permissions for the folders you choose. TruJoule Overview 74 of 186 JouleX Energy Manager v24295 Manual Today's enterprises require complex IT and facility environments to function. In most of these environments, there are many types of servers, PCs, phone systems, and facility control systems. JouleX Energy Manager (JEM) was designed with that complexity in mind, and creates a classification system that simplifies the larger class of devices no matter who the manufacturer is. A big challenge for managing the energy in enterprises is that legacy IT equipment is interspersed with modern computing devices. The reason this is challenging is that most legacy devices were not built with energy information available. Even energy management systems installed directly on each device are not able to get this information, since the devices themselves cannot report energy data. JEM is able to determine whether or not an end point is able to generate actual power data. If the end point is not able to deliver power data, JEM utilizes a patent-pending process to calculate power based on a combination of reference information, measured end point components, and load of the end point. All this information is organized through TruJoule engine, providing a complete picture of the energy information for that individual end point device. TruJoule is a core technology developed by JouleX to enable remote power measurement of network connected devices. Using network based techniques and state-of-the-art algorithms, in combination with an extensive online product database, TruJoule provides a unique way of measuring power consumption for a variety of device types. For example PCs, laptops, desktops running Windows, Linux or Mac OS, VoIP phones, switches, PoE devices, printers, displays and monitors. Learn more about different Measurement Methods. TruJoule Database The TruJoule Database is a central part of our TruJoule technology. It contains hardware information and power consumption data for tens of thousands of different device types, for all major hardware vendors and product lines. Power consumption data for tens of thousands of different computer configurations, based on actual measurements for: on, off, standby, and hibernate states. Includes verified power consumption data for all major desktop and laptop computer brands. Utilization-based power curves for most CPUs and GPUs used for dynamic modeling. Power consumption curves for thousands of different displays and monitors with brightness information for all major brand vendors. Power consumption characteristics for all major printer vendors. TruJoule Database Updates JouleX continually maintains and expands the TruJoule Database with new and updated device information, newly supported device types, new vendors and models, updated CPU and GPU information, and much more. JouleX Energy Manager (JEM) can be enabled to automatically update the TruJoule Database for your installation on a daily basis. You can enable or disable automated TruJoule Database updates on the TruJoule Settings page. TruJoule Reporting Despite the comprehensiveness of the TruJoule Database, power information for certain device models might still be missing. With TruJoule Reporting enabled, JEM can automatically report device vendor, model, and hardware information to JouleX. This data will be verified and processed by JouleX developers, then missing device information will be added to the TruJoule Database. Privacy Note TruJoule Reporting only sends hardware specific device data to JouleX. This information does NOT contain usernames, passwords, IP or MAC addresses, locations, or other sensitive data. Measuring Explained As previously mentioned, TruJoule employs different methods and algorithms to perform power measurements. This article provides insight into typical use cases for remote device measurement. Measuring desktop and laptop computers Since most typical desktop and laptop computers don't support direct sensoring, JouleX Energy Manager (JEM) uses a combination of static and dynamic measurement methods (see Measurement Methods) to calculate power consumption. When a device is imported or discovered the first time, JEM gathers all necessary information from the device, for example: Vendor and model information CPU- and GPU-type, processor speed and count Storage, number of drives Directly attached monitors and printer (vendor and model) JEM automatically creates individual devices for directly attached displays and printers to visualize consumption per device and ensure transparency at JEM user interface. Example: A typical set of device data fields retrieved by JouleX Energy Manager from a device and used by TruJoule to calculate power consumption. infoCDDrive=1 infoCPU0=Intel(R) Core(TM) i7 CPU 860 infoGPU0=NVIDIA Quadro NVS 290 infoHDD=1 infoMonitorModel0=Default Monitor infoMonitorVendor0=(Standard monitor types) infoRAM=4 operatingSystem=Windows XP Professional operatingSystemVersion=5.1 (2600) product=ESPRIMO E9900 system.type=Workstation vendor=FUJITSU model=Fujitsu//ESPRIMO E9900 @ 2.80GHz For desktop and laptop computers, power consumption is calculated using the devices' reference values or modeled with the help of its components (e.g. CPU, GPU). The modeled power value is the result of a set of consumption data, which involves power consumption for miscellaneous device states (hibernate, standby, on, off) and utilization information (CPU/GPU 0% load, 100% load). The actual power consumption of a device also depends on the current device state and its current utilization (work load). The following image shows a Windows device. The power consumption is made up of the reference idle value (0% load) plus a proportionate load value. The oscillation is based on changing utilization over time (ON and OFF in this case). Measuring display and monitors Monitors are usually connected through a computer system and can only be measured when the computer system is powered on. Similar to the utilization of computers, the consumption of a monitor depends on the brightness. Some monitors support brightness readings. Alternatively, a global value can be set for brightness or configured for individual settings in the Device Viewer Measuring printers Printer power consumption greatly depends on current activity like standby, idle, or printing. For most printers, JEM can effectively measure device activity and approximate power consumption for different activity states. Alternatively, JEM also supports power approximation by the number of printed pages. Depending on the printer type, the TruJoule Database contains information about typical consumption for individual printer states and per-page consumption. 75 of 186 JouleX Energy Manager v24295 Manual Measurement Methods TruJoule supports different power measurement methods, from direct sensor readings, smart meter support, load and utilization based power modeling, to database reference lookups for legacy devices. Each method has different measurement characteristics and different levels of accuracy. TruJoule determines the best measurement method for each device individually. To find out which measurement method is being used, access the Energy Profile in the Device Viewer for a particular device. Learn more about measurement accuracy Direct Sensor Measurement Direct sensor power measurement is the preferred method for JouleX Energy Manager (JEM) whenever possible. Many devices already have power sensors built in, which can be accessed remotely and report accurate power readings. This category typically includes the following device types: Direct and indirect power meters (smart meters, external sensors, custom sensors) Data center servers with support for DCMI, iLO2, Intel Node Manager, IPMI Cisco EnergyWise enabled devices Intelligent PDUs Various types of switches are supported by proprietary protocols (e.g. Juniper, Force10) Various bare-metal servers running VMware ESX PoE (Power-over-Ethernet) devices which are measured through the switch, this includes VoIP phones, PoE access points, IP cameras, etc. Other PoE devices through Cisco EnergyWise Dynamic Measurement If direct sensor reading is not available for a device, TruJoule utilizes state-of-the-art algorithms to calculate power consumption based on dynamic device modeling. Dynamic measurement is available for devices which expose hardware configuration and utilization information, for example: standard computer systems, desktops, laptops running Windows, Linux Apple Macs Virtual Machines in ESX/vSphere environments Various types of switches which expose hardware configuration in terms of blades, add-in modules Various types of printers which provide information about printing states or printed pages Dynamic measurement algorithms use various hardware information to model power consumption: Available product information including vendor and model Type and speed of processors (CPU) Type of graphic adapters (GPU) CPU load/utilization Virtual processors Static Measurement This measurement method uses vendor and model information to determine approximate power consumption of a device. When a device is added to the system, JEM automatically recognizes vendor information and model or product serial numbers which uniquely identify a device. To determine power consumption, JEM integrates with the TruJoule Database which contains model specific power data. Learn more about the TruJoule Database. Power Quality Index JouleX Energy Manager (JEM) supports a vast variety of different devices and device types. Some device types (PoE devices, devices supporting on-board power sensors) already report accurate power consumption data using built-in hardware sensors, while others like legacy PCs, printers, and monitors don't have built-in capabilities for power measurement. For those devices, JouleX uses a technology called TruJoule which uses multiple modeling algorithms to determine actual power consumption of a device. Each one of the TruJoule algorithms has unique characteristics with different levels of accuracy. The accuracy of the energy measurement is called Power Quality Index. The Power Quality Index indicates the level of accuracy the measurement method actually delivers. The following table provides basic description of the different scores in the Power Quality Index, ranging from 9 (best) to 0 (unknown) with different granularities. Power Quality Index Description Accurate sensor reading from device. Usually using built-in hardware power sensor. 9 8 Sensor reading from device with low sensor quality. For example, some EnergyWise sensors are rated as low quality if EnergyWise precision caliber is below Trusted. 7 Energy profile for device model exists in TruJoule database with verified quality or Custom Energy Profile (user defined power values) . Energy profile for device model exists in TruJoule database with unverified quality. 6 4-5 Energy profile for device model exists in TruJoule database with low quality or is modeled based on a similar device that exists in TruJoule database. 2-3 Energy profile based on modeling of hardware components and system configuration (CPU information, GPU information) 1 Default energy profile for a device type is used. This is usually the case, when the vendor and model/product of a device could not be determined. 0 Power Quality Index cannot be calculated. Usually this happens for unknown devices or devices which don't have any recognizable hardware information. The exact Power Quality Index of a measurement depends on various features of the device. For instance, a device which supports loadbased measurement (e.g. how busy is the device) will receive a higher Power Quality score than the same device without load-based measurements. Improving Measurement Accuracy Measuring power using a metering device One way to improve accuracy for power measurements is to use a metering device and perform a direct measurement at the device power cords. This method is especially useful when you have a number of similar devices (like identical model desktops or laptops). In this case, JouleX Energy Manager (JEM) can automatically use measurement values and apply these values to similar devices which have a nearly identical configuration. How to measure To measure power with an external metering device, direct access to the device to be measured is needed. Insert the power meter between the power socket and the device. Performing two measurements is recommended, one measurement when the device is in idle state (e.g. not doing any relevant work) and another measurement when a device is under heavy load (e.g. performing a processor intensive task). For the high-load measurement, use freely available benchmarking tools. Enter the measurements results in the Device Viewer > Energy Profile dialog box. Select the Custom Profile (user defined) option to enable input. Improving TruJoule Data Accuracy There are a number of ways to participate in improving TruJoule data quality and, as a result, improving the reporting of consumption and savings for devices: JouleX recommends enabling the automatic TruJoule Reporting option in TruJoule Settings. This will automatically collect energy consumption data about unknown devices, which are not yet in the TruJoule database, and send it to JouleX for review. Our research team will then locate the energy data for the unknown device and send an update through TruJoule Update twice each week. For this option, the machine where JEM is installed must be connected to the internet. It is also possible to participate manually, if you have more accurate power measurement for any device or if you believe the device power measurement is not accurate. To do this, first download the energy measurement data, which is in xml format, make your suggested changes and send this file to JouleX by email. It is possible to download energy data for a single device or for all devices. For a Single Device If you want to download TruJoule Reporting for a single device, go to of that device and click Download TruJoule Reporting Data. 76 of 186 JouleX Energy Manager v24295 Manual For all Devices To download TruJoule Reporting for all devices, go to the respective JEM Conroller Settings and click on Download TruJoule Reporting Data. Other Topics This chapter has articles on other related topics. Savings How does JouleX Energy Manager calculate savings? Only savings that are achieved directly through the use of JouleX Energy Manager (JEM) are calculated as a savings benefit to our platform. This means that only if JEM actively manages a device, and that active management results in energy savings, are those savings calculated in our reports. For example, if a Change Power State Action is used to turn off a device, the savings achieved would be calculated in your reports. If that same device is manually powered down by a user, the resulting savings would be not be calculated as a benefit of JEM. The goal behind this calculation method is to ensure that JEM is only tracking your true, platform managed, savings. Which metrics for saving does JouleX Energy Manager calculate? JEM calculates and reports on three(3) savings metrics: Energy Cost Savings - The Energy Cost Savings are calculated based on the energy consumption of each device and the associated Energy Price (View Energy Price Settings) for the device's physical location. Energy Unit (kWh) Savings - The Saved Energy Report is calculated from the specific energy consumption of each specified device. Carbon Emissions Savings - The Carbon Savings Report is calculated based on the carbon emission per kWh saved, which is also defined with each device's location Energy Price. How to track savings? JEM offers several methods to track savings. For instant user visibility, there are different Widgets we recommend, including: Total Savings Widget, Rule Effectiveness Widget, and the Energy Statistics Widget (Savings by ...). For more in depth tracking, JEM offers customizable Reports, which give a detailed insight into the savings generated by JEM. Some of these are: Energy Cost Savings Report, Saved Energy Report, Carbon Savings Report, and the Energy Savings Report. Activate indirect savings As we discussed above, JEM only calculates and reports savings if a device is power managed by the JouleX Energy Manager platform. However, if you wish to calculate all savings, regardless of method of power management, JEM does offer an additional option. This option, the Indirect Savings reporting, builds on the Calculate Power Savings functionality, which comes with the Run Shell Script Action. To activate Indirect Savings reporting for any of your devices, add the following Device Data Field: indirectSaving=1 To deactivate this feature, delete the Device Data Field or set the value to 0. As this option must be defined for each device, we recommend deploying it via a Policy or with the help of a CSV file. It is common practice to create a rule which includes specified managed devices, for example all devices in the distributed office, that is executed once per day, and add a JEM Script Action using the following query: dset("indirectSaving","1"); This script will enable JEM recognition and reporting of both direct and indirect energy savings of each defined device, making the reporting visible in several instances, e.g. as part of the Rule Effectiveness Widget. User Interface Reference Home Policies (Rules) Devices Reports Apps Settings Dashboard Overview The Dashboard is the default view in the JouleX Energy Manager. It is fully customizable to keep the data you need most at the ready. Using a series of Widgets, the user can determine what is important to see at-a-glance and add that information to the Dashboard view. The Dashboard layout can be saved in any folder within the JEM folder structure, enabling administrators to customize the view based on permissions level of the user. This is an example of what a customized Dashboard might look like: 77 of 186 JouleX Energy Manager v24295 Manual At the top right corner of the screen there is a button labeled Refresh. When Auto-Refresh is active, the JouleX Energy Manager will (among other things) update the Dashboard every 15 seconds. Clicking the Auto-Refresh button allows you to toggle between Auto-Refresh On and Auto-Refresh Off. Activated / Deactivated Auto-Refresh will also affect the Devices View. Whenever you see the JouleX Energy Manager is refreshing. You can add and customize different Dashboards, which can be accessed via the buttons labeled 1, 2, 3, etc. Each Dashboard that you do not customize will have one of the three default layouts. Create new Dashboards Clicking the Options button, in the upper left corner of the Dashboard, opens a submenu. Choose New Dashboard from this menu. Next, choose a name for the Dashboard and the Folder it should be saved in. Depending on your personal requirements, you can choose the Dashboards Layout from 1-Column (Fullscreen) to 4-Columns. Confirm your changes with the OK button. Each new Dashboard created becomes the default Favorite Dashboard. Edit Dashboards To edit a Dashboard, click the Options button from that dashboard. Next, choose Edit Dashboard. In the dialog window that opens, you will be able to edit the current Dashboard. For Example, you can rename the Dashboard, save it to a different Folder location, or even delete it. Manage Dashboards The Dashboard Management options allow you to set favorite Dashboards, edit, and/or delete them. To access the Dashboard Management Dialog, first click on the Options button, then choose Manage Dashboards. The screenshot below shows the Dashboard Management Dialog with two Favorite Dashboards, JEM Performance and Default Dashboard 1: As previously mentioned, the Dashboard shortcut buttons (shown below) allow you to quickly and easily switch between Dashboard views. It is important to note that only Dashboards saved as Favorites appear as Shortcuts. Adding Favorite Dashboards To add a new Favorite Dashboard, click + Add Favorite and to access overview of all Dashboards which are not assigned to favorites. Select a Dashboard and confirm with OK. 78 of 186 JouleX Energy Manager v24295 Manual The Favorite Dashboard will then appear in the list within the Dashboard Management and as a Shortcut. Deleting Dashboards To delete a Dashboard, go to Dashboard Management and click on the Delete button. This will open a new window where you can choose to either remove the dashboard from your favorites or delete entirely. Widgets Add Widgets Add Widget will open the following dialog box, displaying the widget options available to customize your dashboard. Use the Device Query Language (DQL) to determine which devices the information of a widget will be shown. location='Paris' E.g. entering Paris will show the widget's information for all devices with location set to Paris. Widgets Options / Dashboard Mousing over the title bar of a widget will change your cursor to and dragging them to the desired location. . This allows you to rearrange the widgets on your dashboard by clicking Mouse over to open a widget specific menu, which allows you to configure, access the help, share the information of a widget in a public domain or your companies intranet with the help of the Export Widget function, or remove the widget. Reporting Statistics The information provided by the Reporting Statistics Widget is the number of connected JEM Controllers (to the Central Management Server), the number of messages sent, and detailed information regarding each connected JEM Controller. Type of data: This widget provides aggregated and real time data, meaning that the number of Total Messages is aggregated whereas the rest of the information is real time. Device Information The Device Information widget shows an overview of the current status of your devices. The device infrmation shown is: the total number of devices, the number of those that are powered ON, OFF, STANDBY or HIBERNATE. If you click on any of these status icons, the Devices tab will open and you can see all details (i.e. if you click on ON it will show you all powered on devices in the Devices view). Type of data: This widget provides realtime data Realtime Device Activity The Realtime Device Activity widget shows the most recent events to take place, and updates every 15 seconds. After starting the JouleX Energy Manager, it will first show you the data from the last time the service was running. 79 of 186 JouleX Energy Manager v24295 Manual Type of data: This widget provides realtime data Device Watcher The Device Watcher widget allows you to display single or multiple devices, clearly arranged on the dashboard. For this purpose you have two metrics available - Power and Utilization. First, click in the upper left corner of the Device Watcher Widget. This will bring up the device overview. From here, choose one or more Devices to be displayed in the Device Watcher. After adding the appropriate devices to the Device Watcher, you will see the device hostnames in the second column of the widget. In the first column is the status icon that corresponds with the device listed in each row. Click here for more details on Device Status. To open the individual Device Information, click on the hostname within the Device Watcher. To remove any single device from the Device Watcher, simply click on the icon. Type of data: This widget displays realtime data. Total Savings The Total Savings widget provides a high-level overview of resources that have been saved. Type of data: This widget provides aggregated data Limit number of observed devices The Total Savings widget provides a Select Devices option. Using the Device Query Language (DQL) you can determine for which devices the widget will show information for. Power (Used vs. Max) The Power widget gives you an overview of the current energy consumption. Type of data: This widget provides realtime data Configuration Options The Power (Used vs. Max) widget provides a Select Devices option. Using the Device Query Language (DQL) you can determine for which devices the widget will show information. In addition, it allows you to change the viewed unit to optimize displaying of high numbers. You may also set your own maximum power value. Energy Statistics 80 of 186 JouleX Energy Manager v24295 Manual Energy Statistics can be tracked by Rule, Location, Device Type, and Business Unit. Type of data: This widget provides aggregated data Total savings/consumption by Location Total savings/consumption by Type Total savings/consumption by Business Unit Select Devices The Total savings/consumption by ... widgets provide a Select Devices option. Using the Device Query Language (DQL) you can determine for which devices the widget will show information. Floorplan Widget The Floorplan Widget allows you to display your custom created floorplan on the Dashboard pages. Add the Floorplan Widget as described in the Widget Overview chapter. 81 of 186 JouleX Energy Manager v24295 Manual To configure the settings for the Floorplan Widget, click on the gear-wheel icon in the upper right corner of the widget and click on Configure. Within the Floorplan Configuration window you can choose from a list of floorplans you created previously by clicking Open. You are also able to choose from different Overlays. Your changes take effect when clicking Close. Additional Information General information about the Floorplan App How to add Widgets Geo Map Widget The Geo Map Widget pulls several input factors from the Maps App, but can be configured separately from it. Adding a new Geo Map Widget will reproduce the data from the Maps App, but each widget can be customized individually to be magnified at a specific level, limited to specific devices, or a certain type of data. It is also possible to add several Geo Map Widgets to present different locations, devices, or data. For a detailed description, please see Maps App. PUE Widget (Datacenter) Based on the Power Effectiveness (PUE), which is part of the Datacenter Report, this Widget reproduces the report content. The user can select from the pre-defined Datacenter and choose and individual Date range. Type of data: This widget provides realtime data Click to open the configuration menu. Click on Configure to expand the widget view to include settings, which allows you to define the Datacenter and the Daterange. It is even possibleto create multiple PUE Widgets for different Datacenters and Dateranges. Missing Data Note that in order to calculate the PUE, JEM must be running for more than 24 hours before any data is available, incuding data from Today (covers the time period from midnigt to the crrent moment in time). If the PUE analysis widget is accessed withn the first 24 hours, it will display thefollowing error message: Realtime Charts Realtime Charts like Power, Power (Min/Max), Powered-On Devices, Device Status, Device Locations, Line Chart, and Week Matrix Chart provide you with the most important information up front and right away. You can choose any of these charts as the default by clicking on the in the upper-right corner of the window. Two drop-down menus will appear; Date and Chart. The Date menu will show multiple options, from the last 2 hours t the last 24 hours. The Chart menu presents you with the six chart options mentioned above: 82 of 186 JouleX Energy Manager v24295 Manual Power Power shows the power demand in kW based, in 10-minute increments. By clicking and dragging into the graph you can use the widget's (horizontal) zoom when Power Demand is selected from the Chart menu. Power(Min/Max) Power (Min/Max) shows the minimum, maximum, and average power demand in kW. By clicking and dragging into the graph you can use the widget's zoom when Powered Demand (Min/Max) is selected from the Chart menu. 83 of 186 JouleX Energy Manager v24295 Manual Powered-On Devices Powered-On Devices shows the number of devices that are powered on, in 10-minute increments. By clicking and dragging into the graph you can use the widget's (horizontal) zoom when Powered On Devices is selected from the Chart menu. Device Status / Device Location Device Status pulls from the Data Field (Property) and allows the user to group the data in two different types of diagrams. JEM offers you the Device Status Widget, which by default groups the status of the devices; and the Device Locations Widgets, which groups the devices by location. The user is free to choose from whatever Data Field suits their informational needs best. The user has several options to customize this Widget. The button following Group By Data Field allows the user to choose a property (Data Field). Mouseover on Pie Chart (or respectively Bar chart) opens a small menu to choose between the two different types of diagrams. 84 of 186 JouleX Energy Manager v24295 Manual Mouseover on include (or respectively don't include) opens a small menu to choose if devices with an undefined property should be listed or not. Mouseover on undefined (or respectively a number between 2 and 10) opens a small menu to choose how many groups should be listed. Line Chart The Line Chart allows you to present different metrics with a line chart. Open the Configure menu and choose Edit Chart Settings. The dialog box allows you to define the Date range, Segment and Metric. Week Matrix Chart / Heat Map The Heat Map limits the presented data to a weekly basis, and only for typical work week days from Monday to Friday. If you open the Configure menu and choose Edit Chart Settings, the dialog box allows you to define a specific Daterange, Segment and Metric. Select Devices The Realtime Charts widget provides a Select Devices option. Using the Device Query Language (DQL), you can determine for which devices the information of the widget will be shown. Resource Chart The Resource Chart informs the user about the usage of physical and virtual memory on the JEM Controller during the prior 24 hours. The values are presented in a line chart, with the blue line being the Memory Used and the red one representing the Virtual Memory Used. More detailed information is shown on mouse over. Type of data: This widget provides realtime data Rule Error Statistics Any errors that occur while executing a rule will appear here. Type of data: This widget provides aggregated data Rule Effectiveness (Savings by Rule) This widget shows rules that are currently in effect and the results of those rules in Saved Cost, Per Month, and Per Year. It is also possible to choose between Saved Energy and Saved Energy Cost. 85 of 186 JouleX Energy Manager v24295 Manual Type of data: This widget provides aggregated data. Scanner Information The Scanner Information Widget displays the current state of the scan processing engine. The screenshot below shows the scan engine running regularly. The first row displays the progress of the Current Scan Cycle. By default, JEM scans up to 5 devices at a time, each device for a maximum of 10 minutes. If the scanning is not completed within the timeframe, the process will be cancelled. The second row displays the Last Scan Cycle, showing when the last scan finished and the duration of the last scan. Type of data: This widget provides realtime data If the scanner is disabled, the message below will be displayed. Currently running scans will be finished but no new scans will be started. If the Asset Scanner cannot complete the scan-cycle in the time selected under Settings/Networking, the widget will provide the following message. To learn more about how to troubleshoot the problem, check the Help File. System Information The System Information widget shows important data about a JEM Controller. Policy tells you whether the rule engine is currently running or not. In addition, the current local time at the server is displayed. Type of data: This widget provides realtime data system.resource.memused.service Memory in use by the JEM Controller system.resource.memused.database Memory in use by the database (if present) system.resource.memused.webserver Memory in use by the webserver (if present) policy.started Start time of last policy cycle policy.ended End time of last policy cycle policy.duration Required time for last cycle to apply all policies(in seconds) scanner.successfullyScanned Number of successfully scanned devices during the last scanning cycle scanner.errors Number of errors during the last scanning cycle scanner.currentDuration Current time for scanning scanner.started Point in time when the last scanning cycle started scanner.lastDuration Required time for last scanning cycle scanner.devicesToScan Number of devices to scan scanner.progress Number of devices already scanned during the current cycle scanner.processed Number of devices processed scanner.currentlyScanning Number of devices to be scanned at this point in time System Messages The System Messages widget provides the time and status of any changes made. Type of data: This widget provides realtime data Mouse over the control button in the top right corner to configure this widget: You can set the minimum severity a message must have in order to be displayed in the list. This does not affect the log level settings in System/Network preferences of the respective JEM Controller. Twitter Updates You can add the Twitter Updates widget by clicking on Add a Widget symbol. 86 of 186 JouleX Energy Manager v24295 Manual With Twitter Updates, you will be updated about JouleX News, upcoming Features, and a lot more. Export Widgets JouleX Energy Manager (JEM) enables you to share widgets with users who do not have access to the JEM console. This may be useful for informing others of the company's energy usage or to present your efforts to save energy via thethe intranet or on a public facing website. On the JEM home screen, choose a widget and mouse over . This will open a widget specific menu which allows you to to export the widget. Choose Create embeddable widget and a new menu will pop-up. Select the link (to be on the safe side, use the CTRL+A hotkeys to select all), copy it with CTRL+C hotkeys and activate the function with a final click on OK. The widget can be used in whatever environment it suits your needs. Send the permalink out via email to be viewed in a browser or embed it into a website. Externally facing widgets are displayed in View Only mode, so no one can make any changes to the widget settings. It is possible to modify the appearance of the widget and refresh contet options. http://192.168.1.215/widget.html?uuid=92bcde52404be00813be9551c5bad944&noframe=1 To integrate the widget without borders, add &noframe=1 to the permalink. http://192.168.1.215/widget.html?uuid=92bcde52404be00813be9551c5bad944&autorefresh=1 To activate autorefresh, add &autorefresh=1 to the permalink. Script Widget The Script Widget widget enables you to create a fully customized widget using JEMScript for getting the data and HTML for the layout. A Script Widget uses JEMScript and requires a folder with a JEM assigned to work. By default, this widget displays the number of devices in the current folder. When opening the configuration dialog for this widget you have several customization options: You may set a custom name for the widget, which will appear in the widget title.You may edit the executed JEMScript code & the HTML code, which is used to render the layout. Other options include the time intervals after which the script is executed and the height of the widget. Usage Use the JEMScript editor to write a script that returns the values you need (e.g. power of all devices). You may return a simple JavaScript value like a string or a number or even an object. When using an object, use key value pairs (e.g. { "power" : 50, "deviceCount" : 2 }, see the 87 of 186 JouleX Energy Manager v24295 Manual example below). The keys can be referenced in the HTML editor by using the $(key) keyword (where key is replaced by the key name). When not using an object (or array) as return value in the JEMScript, then use $(result) as keyword to reference the return value of the JEMScript. Example: Total Power The following example calculates the currently used power for the number of devices in the current folder. JEMScript Code // the value this script returns can be used in the layout editor var devs = queryDevices("*"); var power = 0; var units = ["W", "kW", "MW", "GW"]; for (var i = 0, len = devs.length; i < len; ++i) { power += parseFloat(dget("power", devs[i])); } i = 0; while (power > 1000) { power /= 1000; i++; } power = Math.round(power * 100) / 100; return { "power" : power, "unit" : units[i], "devices" : len }; HTML Code <!-- enter html here. $(result) is replaced by script result --> <table style='width:100%;height:100%;text-align:center'> <tr><td><img src="resource/pem/logo/header.png"></td></tr> <tr> <td style='vertical-align:middle;font-size:16px;'> The <b>$(devices)</b> devices in this folder require <b>$(power) $(unit)</b> </td> </tr> </table> Policies (Rules) Overview What is a rule? Rules are used to automate power management of your devices, according to the parameters set by the JEM administrator. Each Rule must have at least one condition and one action in order to be triggered and executed. Conditions for actions to be executed may be based on business units / locations date and time device types devices applications that are running / not running scripts externally triggered events employee opt-in/opt-out For details read Conditions. The Actions that can be executed when the chosen conditions are fulfilled may be changing the power state of devices notifying users on power off script running a shell script continue to next rule / stopping the process For details read Actions. Structure of a rule The rule interface is divided into two areas: The left side, which defines the Conditions of the rule. The right side, which defines the Actions that will be executed by this rule. How Rules Are Processed It's easier to understand the processing order of the rule engine when you work from top to bottom. For each existing device, the rule engine begins with Rule 1 and checks its conditions. If the current device meets all conditions in this rule, the actions are executed. At this point, the rule engine moves on to the next device and begins at Rule 1 again. If the conditions in Rule 1 are not met, the rule engine proceeds to the next active rule in the list and checks the device against those conditions for execution of that rule. This process will continue through each active Rule until each rule is checked on the device or the device meets all of the conditions for a rule to be executed. When all devices have been processed by the rule engine, the process starts all over again. 88 of 186 JouleX Energy Manager v24295 Manual If the Actions side a rule contains the action Continue to next rule, and all conditions are met, JouleX Energy Manager will process the next rule on the same device, instead of immediately moving to the next device immediately. (see also Continue to next rule). Note: The rule engine always skips and ignores disabled rules. Policy Information Policy Information offers some statistics about current policies. Engine Status displays the enabled or disabled status of the policy engine. When disabled, no rules are executed Run Started displays date and time the current rules processing run began Devices displays number of currently controlled devices Last Run Ended displays date and time the most recently completed rules processing run ended Last Duration displays the total time duration of the most recently completed rules processing run Simplify The Policies (Rules) View Through the Options menu, choose the rule options to be displayed on the Policy screen. To see an option on the Policy screen, make sure the item is checked on the Options drop down menu. To remove an option from the screen, make sure the item is unchecked on the Options drop down menu. The options to choose from are: Conditions & Actions, Statistics, and Disabled Rules. 1. Show Conditions & Actions and Statistics 2. Show Conditions & Actions but don't show Statistics 3. Don't show Conditions & Actions but show Statistics 4. Show neither Conditions & Actions nor Statistics Import and Export Rules To Import or Export rules, click the More button and choose one of the options from the drop down menu. All exported rules will be saved in one XML file which can be imported at a later point in time. NOTE: a rule import replaces all other rules. Adding a new rule To create a new rule, click on the Add New Rule button. Anew rule named "unnamed" will appear on the Policy screen and a yellow warning message will prompt you to Save Changes or to Revert All Changes. Clicking on Revert All Changes will open the following dialog: Clicking OK will delete the added rule. To keep the new rule, can click on Save Changes. Currently Controlled Devices, Tot. Saved Cost, or Tot. Saved Energy. 89 of 186 JouleX Energy Manager v24295 Manual Rule Settings Click either the name of the rule or the to edit the Rule Name, change its Enabled / Disabled Status or add Notes about the rule. Enabled rules are represented by , disabled rules are represented by respectively will toggle between Rule enabled and Rule disabled. in the title bar of the rule. Clicking Adding Conditions Conditions are necessary for a rule to be processed. A rule can have zero, one, or multiple conditions. When there are zero conditions no actions will be executed. If a rule has two or more conditions the actions on the right hand side will only be executed if all the conditions are met (see How Conditions Are Connected Logically below). Mouse over the area beside Conditions to bring up the the appropriate Condition to add: Button. Click it to open the following dialog menu, from which you can choose The corresponding icon of this dialog will appear next to each condition on the rule. Conditions can be deleted by mousing over them and clicking the . Learn more about the different types of Conditions. How Conditions Are Connected Logically As you can see in the dialog above, the conditions for a rule are divided into Unit/Location Condition, Date Condition, etc. When a rule has two or more conditions, there are different ways they are connected logically. Conditions of the same type are connected by the logical or (which will also be displayed in the Conditions column). Conditions of different types are connected by the logical and. Consider the following example of a rule: In this example the action Action 1 is executed if a device is either of Device Type 1 or Device Type 2 and located either in Location 1 or Location 2. Look at the table to see for which devices Action 1 would be executed in this example. Device Device Type Device Location Action 1 executed? Device 1 Device Type 1 Location 3 NO (Wrong Location) Device 2 Device Type 3 Location 2 NO (Wrong Device Type) Device 3 Device Type 1 Location 2 YES Device 4 Device Type 4 Location 5 NO (Wrong Device Type, wrong Location) Device 4 Device Type 2 (no location) NO ("Wrong" Location) Adding Actions Mouse over the area next to Actions to bring up the executed when the condition(s) is / are fulfilled: button. Clicking it will open a dialog menu to choose the appropriate Action to be Actions can be deleted by mousing over them and clicking the . Learn more about Actions. Organizing Rules Mouse over the title bar of a rule to turn your cursor into processed. . By dragging and dropping rules you can change the order in which they are For more information on how rules are processed, read the corresponding section in the Policies (Rules) Overview. Editing Rules Rules can be edited both on the Conditions side and the Actions side. Editing Conditions When you mouse over a condition, it will be underlined. Edit the condition by clicking on it to open. Note that the type of the condition will not change. e.g. by clicking the condition you cannot change its type from Unit/Location Condition into Device Type Condition. For that you would have to delete your Unit/Location Condition and add a new Device Type Condition. You can also remove a condition by clicking the next to it. 90 of 186 JouleX Energy Manager v24295 Manual Editing Actions When you mouse over an action, it will be underlined. Edit the action by clicking on it to open. As with the conditions, you cannot change its type. You can also remove a condition by clicking the next to it. Example Although rules may be quite complex they can be best explained by simple examples. Assume you want to put all Windows PCs in your company into standby mode during lunch. Let us look at two ways to do this. 1. via Date Condition, Device Type Condition And Power Action 1. Create a new rule called windows pc standby during lunch 1. 2. On the Conditions side you add a Date Condition. By default the current day will be selected. Select a Time (in this case your lunch time) and click OK. 3. Next add a Device Type Condition and choose the device type pc.windows. 4. On the Actions side click on Add and choose Change Power State, set Standby. 91 of 186 JouleX Energy Manager v24295 Manual 5. The rule is now ready and its conditions will be checked on the specified time and date: 2. Via Device Type Condition And Power Action 1. Create a new rule called windows pc standby during lunch 2. 2. On the Conditions side add a Device Type Condition and choose the device type pc.windows. 3. On the Actions side change Do nothing from the Change Power State action to Time-Based Pattern and set a Standby dot where you need it. 4. Your rule is now ready and its conditions will be checked on the next specified time: After a short while the Statistics Bar of the rule will update and you see its first effects: 92 of 186 JouleX Energy Manager v24295 Manual Note: In the first approach you can set a more precise time but, to Power On your devices, you will need to add a new rule or you have to do it manually. In the second approach you can only set the time to full hours but you can add more Change Power State actions. Folders and Policies The JouleX Energy Manager provides a folder structure for application of policies. Each folder can have it's own local policy. New folders do not have local policies defined by default. When a new folder is created, the JEM displays an information box indicating this and will search upper directories (parent folders) for policies to apply to the device. This means that policies are inherited from the parent folder until until a new policy is defined on that folder. Execute a parent policy If a policy is defined in a subfolder, by default the JEM Controller will only process this policy for devices in this folder, ignoring all other policies. JEM also provides the option to process a policy defined in a parent folder (called parent policy). This option is enabled through the Execute Parent Policy Action. Through Execute Parent Policy Action, you have the ability to define whether a parent policy should be processed, and in what order it should be processed. For instance, you can select the timing of a parent policy should be processed before the local policy to give the parent policy a higher priority or execute the parent policy last, and/or if no other rules match. The second configuration would prioritize a local policy and rely on the parent policy as a backup. Conditions By adding Conditions to your rules, you can determine whether the actions of rule are executed. Without Conditions the actions will never be executed. This is a brief overview of the Conditions that can be checked: For details follow these links: Device Location Date Condition Device Type Condition Data Field Condition Device Condition Running Apps Condition JEMScript Condition Event Condition Employee Opt-In/Opt-Out Aggregated Device Power/Utilization (Device Power/Util./etc) Data Field Condition Use the Data Field Condition to execute this rule for a selection by data fields. To choose which data field should be used for the condition, click on the Data Field Condition drop down menu as shown in the screenshot below. From the pop up window that opens, select the appropriate data field then confirm your selection by pressing the OK button. Click here for a detailed explanation of the different types of data fields. In the next step you should choose one or more conditions Simply click the appropriate data field(s) and then OK. To import more then one field, hold down the Shift Key while clicking each of the fields. Date Condition With the Date Condition, you can execute this rule only at certain times. You can choose between two options: on a specific day/time or on selected days of the week. With the first option, the rule will be executed exactly at the given date and time (within a time range of five minutes). 93 of 186 JouleX Energy Manager v24295 Manual With the second option, you can define repeating execution of the rule for selected days of the week at certain hours. Hovering the mouse over the table will turn the cursor into week: and you can add checkmarks by clicking on the desired time and day of the Device Type Condition Use the Device Type Condition to execute this rule only for selected types of devices. Choosing (Any Device) will have the same effect as choosing All Devices when adding a condition. If you want actions to be executed for more device types add a new Device Type Condition and choose the next device type. Learn more about device types: Device Types Device Condition With this condition you can decide that the rule only will be executed if there are devices matching a given condition. This is a really powerful feature where you can use JouleX Device Query Language (DQL) to create sophisticated conditions. To learn more about DQL, click here. The condition can simply be the * character, which stands for All Devices. Please be careful using All Devices, because you can easily power off all connected devices. To protected important devices form being shut down, it is recommended to add those devices to the Protected Devices list. * matches all devices in the network The condition can be a URI or IP address: uri=10.1.2.1 matches a device with the given IP address uri=10.1.2.0/24 matches a device in the given IP address range (10.1.2.0 .. 10.1.2.255) For simplification, you can enter IP addresses without specifying uri= as in the following example 10.1.2.1 10.1.2.0/24 You can also enter conditions to match general device fields, like in the following examples: location='Berlin*' Devices having a location starting with Berlin, like Berlin, Berlin-Germany, Berlin/Office model='Lenovo//Thinkpad' Match devices which have the value Lenovo//Thinkpad in the model field costcenter='Sales' and location='Atlanta' This is a more complex query to match devices which belong to the Sales costcenter in Atlanta You can enter multiple lines in the dialog. Each line will be considered as a single condition and all lines will be combined in an OR-like fashion. This makes it easy to combine lists of IP addresses, like in the example below which matches for any of the five IP addresses. 10.1.2.1 10.1.2.2 10.1.2.7 10.1.2.8 10.1.2.9 94 of 186 JouleX Energy Manager v24295 Manual Running Apps Condition Here you can edit your OS settings for the rule. You can click on Only when Screen Saver is active to activate the rule only for devices which have a screen saver running. Additionally, you can enter names of applications which must be or must not be running to execute this rule. Example Below you see an example for a pc.windows device. In this particular case the screen saver has to be running and Microsoft Outlook and Microsoft Word are not allowed to run in order to execute the rule. JEMScript Condition The rule engine comes with JEMScript support to give you maximum flexibility for rule creation. With JEMScript, you can create rules which are executed based on device status, system information and complex calculations at runtime. Learn more about scripting support How to access device data How to access system data How to write a JEMScript condition JEMScripts are written in the built-in JavaScript language. Within a script you can use all regular JavaScript language features, built-in functions and classes (String, Math, Regular Expressions, etc.) and extra functions to access device data, system data and more. Usually, a script accesses certain data fields of the device and system information to make the decision. As a result, the script must return either true or false. In case the script returns true, the rule will be considered for execution (along with other conditions in the same rule). Quick Reference: Device Functions | System Functions Example: Execute rule based on specific location of a device The purpose of this script is to execute the rule for all devices located in Miami. This example demonstrates how to access the location field of a device and depending on the content of the location field, either returns true or false. var l = dget("location"); if( l == "Miami" ) return true; return false; What it does: In the first line of code the function dget is used to retrieve a data field from a device. The name of the data field is "location". The next line of code checks whether the location equals Miami. If that is the case, the script returns true. Important: Make sure that data field names are quoted in "double-quotes", otherwise the script will not work. Example The Actions of a rule with the following JEMScript Condition will only be executed for devices with power demand greater than 200 Watt. 95 of 186 JouleX Energy Manager v24295 Manual Event Condition Set the rules to execute only when certain events happen. This allows you to integrate for instance with badge management system or demand-response services. To trigger events from external sources, please use the Function: fireEvent in the JEM Web Services API. Employee Opt-In/Opt-Out Use this condition to execute rules based on employee opt-in or opt-out status. JouleX Energy Manager has a feature called Employee Portal, where each employee in an organization can opt-in or opt-out to your energy management policy. Learn more about the Employee Portal The following options are available: OptIn/Opt-Out not set The rule is only executed for devices which don't have an opt-in or opt-out status set. This can happen because either the employee has not made a decision yet or the device is not available for the opt-in/opt-out workflow. Employee Opt-In The rule is only executed for devices which have been opted-in through the Employee Portal Employee Opt-Out The rule is only executed for devices which have been opted-out through the Employee Portal It is generally recommended to have a Employee Opt-Out rule right at the beginning of the policy with Do Nothing action. This way, opted-out devices will be skipped from further processing. Aggregated Device Power/Utilization You can use this condition for devices with specified power or utilization under specified time frame and percentage. It can be enabled under conditions by clicking on Device Power/Util./etc. Example: Apply a condition on devices which have maximum utilization of less than 70% within the last 10 minutes. This will only select the devices which have maximum utilization less than 70% during last 10 minutes and will skip those devices which have utilization more than 70% during last 10 minutes. Actions By adding Actions to your rules you can determine what happens once the Conditions of the rule are fulfilled. This is a brief overview of the Actions that can be executed: 96 of 186 JouleX Energy Manager v24295 Manual For details follow these links: Change Power State JEMScript Action Run Shell Script Power Capping Set EnergyWise Level Set CPU Performance Set Device Power Policy System Notification Execute Parent Policy Change Power State With this Action you are able to change the power state of a device. Open the drop down menu and choose from the following options: Do Nothing, Power On, Power Off, Standby, Hibernate or Time-Based Pattern. If you want to apply a time pattern, you have to choose Time-Based Pattern. Select a power state from the bar and organise your individual pattern. Selecting an empty field will set that power status for the associated time, selecting a dot will change the power state and with Do Nothing you can erase the defined power state. Notify User On Power Off/Hib/Stby If you tick Notify User on Power Off/Hib/Stby you enable the option to inform the user about the upcoming change of power state. With this activated, the user will receive a message on his screen along with option to decline the planned action. User Notification is only supported for Windows devices by using WMI protocol. After the box is ticked your can add a custom message, therefore click on Edit Message And define in a second step how much time is given to the user to interrupt JEM from executing the action. As a result, this action will be blocked for that specific device for an hour. A rule, combined of a Device Type Condition, Running Apps Condition and Power Off + Notif User Action should look like the following: 97 of 186 JouleX Energy Manager v24295 Manual JEMScript Action The rule engine comes with built-in JEMScript support to give you maximum flexibility for rule creation. With scripting, you can create rules which are executed based on device status, system information and complex calculations at runtime. JEMScript is executed in the context of the JouleX Energy Manager Learn more about JEMScript How to access device data How to access system data How to write a JEMScript action JEMScript is based on the JavaScript language. Within a JEMScript you can use all regular JavaScript language features, built-in functions and classes (String, Math, Regular Expressions, etc.) and extra functions to access device data, system data and more. Usually, a script accesses certain data fields of the device and system information and eventually executes certain actions on a device or on a global scope. For example, you can use the function dexecute to control the power state of a device using scripting. You also can perform external actions, like runCommand to run a process at operating system level. Run Shell Script This action sends a OS depended script to the target device and executes it locally. The action will only be performed for computing devices (PCs, Mac Linux). Depending on the operating system, the script must be written in a supported language of the target device. Calculate Power Savings One goal of JEM is to visualize your power savings, nevertheless, some of the actions which could be activated and initialized through the Script may be already set up for the device. Therefore the administrator has the option to define, if and how power savings should be counted for the specific Script action. With a click on Calc Power Savings a drop down menu opens, and gives you the following choices: Don't count power savings for this action Power actions of the device which relate to the action will not be counted. Only count when executed immediately Counts the savings for the period the action is executed (e.g. if a computer is on hibernate due the action, the savings will be counted for the time the computer is on hibernate) Permanent count savings if executed once Counts the savings starting with the time the action was activated (e.g. the action sets all devices on "Hibernate after 10 minutes", from there on all saving for the devices which have been affected will be counted as savings as soon as they hibernate). Examples Windows Shell Script: Linux Shell Script: Mac Shell Script: 98 of 186 JouleX Energy Manager v24295 Manual Power Capping Power Capping can be enabled for devices that are power capping supported. With power capping we can control how much power a device can consume in Watts. If the power capping limit reaches then JouleX Energy Manager will reduce the device utilization, so that the power consumption also decreases. In order to activate this policy, add a new action for a rule in Policies and select Power Capping. Example: In order to restrict a device not to use more than 200 watts, we will set the power capping limit to 200 watts. Set EnergyWise Level You can set different energy levels for cisco EnergyWise supporting devices. There are 0 to 10 EnergyWise power levels to control the power consumption on devices. In order to activate this policy, add a new action for a rule in Policies and select Set EnergyWise Level. Note: Besides to set the EnergyWise level with the Set EnergyWise Level policy, the EnergyWise level can also be set with a JEM Script Action, for more information, please see at Function: dxEWSetQuery Example: Set CPU Performance You can apply this action to control the device performance level when a certain condition is matched. You can make the device's CPU performance level to low, hight and adaptive. If you set the action to adaptive level, then the device can be flexible in case CPU is utilizing less or more than average. Performance Level possible values are: "high" - maximum performance of the device, e.g. CPU speed max "adaptive" - enabled CPU or device internal adaptive CPU speed settings "low" - slowest performance of the device, e.g. CPU speed minimum In order to activate this policy, add a new action for a rule in Policies and select Set CPU Performance. 99 of 186 JouleX Energy Manager v24295 Manual Example: As shown in below, Performance Level for a device is set to Adaptive Level. System Notification System Notification is a powerful tool to inform administrators and users based on defined conditions. Thereby the setup allows to choose between E-Mail, SNMP or a script based notification. Click the Select button to define new notifications or to change preferences of current ones. Edit Notifications The following dialog allows you to manage your notifications, and define them in detail. Click to create and name a new notification and thereby enable the register to enter the preferences. If you want to Delete or Duplicate a notification make use of . Settings defines the general preferences, most important thereby is the Limit Notification function, which allows the user to limit the 100 of 186 JouleX Energy Manager v24295 Manual numbers of notifications send out during a defined time frame. Furthermore Resend notification for each source or device defines if the notification should only be activated for the first time the conditions are fulfilled (within the given timeframe) or for every device anew. Enabling Email activates automated messages, to a single or multiple email addresses, please separate each mail address with a semicolon. The administrator could define subject and content individually in the given fields and boxes. Please make sure, that the connectivity to your email server is set up properly; see E-Mail Notifications . You can use macros in the email subject and body. A macro is a special variable which will be replaced by a value. A macro variable starts with '$(' and ends with ')', e.g. $(device.uri), $(rule.name) or $(device.snmp.version). At the moment macros can only be used when a notification is sent by policy action (and not by Alert). To get values of a device, use $(device.*) and replace * by the datafield you want to retrieve, e.g. id, uri, status. You can find more information about device datafields here. To get values of a rule, use $(rule.*) and replace * by a datafield of a rule you want to retrieve. At the moment the only datafields available for rules are: id, name and description. Macro Example: The device $(device.uri) has hit rule $(rule.name). It's current consumption is at $(device.power). Activating Send SNMP Trap gives you the opportunity to manage your devices based on SNMPv1 or SNMPv2. Initially the administrator has to choose between SNMPv1 or SNMPv2, before adding further parameters. SNMPv1 SNMPv2 Destination(s) IPAddress of the target SNMP management system. equals SNMPv1 Community The SNMP community to use (e.g. "public") equals SNMPv1 Trap OID The enterprise OID of the trap or a generic trap. You may also have to set the specific id. The OID of the trap. Message A message to send with the trap. You may use macros here. equals SNMPv1 Script gives you the possibility to set up an individual function based on a notification. Nevertheless it is limited to processes which could be activated through the JEMScript; see Introduction to JEMScript. Execute Parent Policy When choosing this action, the JEM Controller executes the next existing parent policy before continuing with the next rule or action. This could be any policy in a parent folder of the current folder. The first found policy is used. If none is found, then this action does nothing. 101 of 186 JouleX Energy Manager v24295 Manual Set Device Power Policy JEM enables you to change the device inherit energy management policy, e.g. the Windows Power Policy. All you need to do is to create a rule, with a Set Power Policy Action. As a result the power policy of all matching devices will be changed to your predefined settings. Define the Action After you added the action, you need to define which device types should be affected by the power policy changes, you can choose between, All (both pc.windows devices and printers), Windows or Printers (via SNMP). All & Windows All & Windows offer the same Energy Policy Settings. Nevertheless, as printers only support Device Standby this is the only power policy which will apply for them if you select All. The drop down menus allow you to customize the Power Policy for you needs. JEM allows you to define a minute and hour based pattern or skip certain states. Note: As the Win32_UserAccount object on Windows XP x64 is unable to return domain accounts, it is impossible for JEM to properly set the performance level and the Windows Power Policies. Printers (via SNMP) As printers only support Device Standby this is the only power policy offered at this stage. The drop down menus allow you to customize the Power Policy for you needs. JEM allows you to define a minute and hour based pattern. Continue To Next Rule Action Continue defines how to continue if the rule conditions are met. The options are: stop processing or continue to next rule. The current selection is indicated by a little arrow at the right hand side of each rule. 102 of 186 JouleX Energy Manager v24295 Manual To select the mode, click on the arrow and choose from the menu. To stop processing rules, select Stop processing here. To continue processing rules select Continue with next rule. Devices The Devices page is a powerful device browser and editor. Use the devices page to view, search, edit, and manually power devices on or off. The middle section of the page offers multiple ways to view device information, ranging from a list-based view to see all devices in a table, or dashboard-like overviews and audit information.The device navigator, which helps you navigate through all your devices, is visible on the left side of the screen. For instance, select a particular location and the List View displays all devices for that location. Use device views and search for devices The navigation tabs at the top of the Devices section enable easy switching between the multiple views. Click on Overview, List, or Audit to change the selected view. There is also a device search box on the right side of the row. Use this box to enter search queries to locate specific devices. Learn more about the DQL - Device Query Language for conducting searches Overview View The Overview view displays a dashboard with important information about the selected set of devices. List View The List View displays a detailed table containing various information about the devices. To customize the List View, add any of the following to the table as a new column (the available columns are dependent on the Data Fields in use): Asset Connector Asset Connector ID Asset Connector Type Business Unit CO2 Rate Configuration ID Consumption Idle Consumption Off Consumption Source Consumption Standby consumptionMax EW Level Hostname JPI Last Measurement Duration Last Measurement Time Last Policy Execution Duration Last Policy Execution Time Last Scan Duration Last Scan Time Location Max. Core Load Power Price Power Quality Power Savepoint Portal Option Printed Pages Product Name Protected Rule Saved Power Status System Type 103 of 186 JouleX Energy Manager v24295 Manual consumptionMin CPU Clockspeed CPU Information Current Device Timezone Custom Consumption Device ID Device Type Model Operating System Perf. Level Policy Processing State Power Power Cap Power Category Temperature Inlet TruJoule Edata Match URI URI Utilization Vendor Name Virtual Machine Type To select one or more devices in the table (hold the CTRL key for multi selection) for edits, deletion, or to apply an action to the device(s) selected. Status Indicators: Device is currently powered on. Device is currently powered off. Device is in hibernate mode (not supported for all devices) Device is in standby mode (not supported for all devices) Device status is unknown. This is a virtual device. Learn more about Virtual Devices. There is a major Issue or the device is in Quarantine. The More button enables performance of additional tasks: delete selected devices clear an issue for devices which have unknown status or other problem release a quarantined device download TruJoule Reporting data for selected devices download device support data for selected devices refresh device information export all device information for selected devices to a CSV file export selected column to a CSV file flag a device, to better organize the List of Selected Devices; if the flags are not shown use the Device Column Picker protect devices, for more information see Protected Devices run JEMScript for selected devices The small table icon in the far right column allows you to add or remove columns in the table. For more information, follow Device Column Picker Click the Select All button in the bottom to select all the devices on a page. Audit View The Audit View displays the date and time the devices state changed or an error or warning occurred. Use the Filter option to filter all audit messages by severity: All Messages (includes warnings and errors) Warnings (includes errors) Errors The following symbols indicate the type of the messages: Information Warning Error 104 of 186 JouleX Energy Manager v24295 Manual Device Navigator Select Devices Allows the user to categorize devices by groups (the available categories are dependent on the Data Fields in use): Asset Connector Asset Connector ID Asset Connector Type Business Unit CO2 Rate Configuration ID Consumption High Consumption Idle Consumption Off Consumption Standby consumptionMax consumptionMin CPU Clockspeed Current Device Timezone Custom Consumption Device ID Device Type EW Level EW Structure JPI Keywords Location Max. Core Load Model Operating System Perf. Level Power Power Cap Power Category Power Quality Power Savepoint Portal Option Printed Pages Product Name Protected rule Rule Saved Power Status System Type Temperature Inlet TruJoule Edata Match UCS Structure URI Utilization Vendor Name Virtual Machine Type VMware Structure Note that these are only the default options. These searches can be run on single or multiple criteria. Selecting an entry on the left causes that entry's devices to appear in the right-hand window. The search criteria also populates in the Search Devices field. A search can be performed manually or by using the Select Devices window. Segments Use Segments to create dynamic device groups. For instance, to create a segment for all Windows devices in a particular location, create a segment which contains only these devices. Segments can be used in the Device page and for reporting and rules. Edit existing Device Segments by clicking the next to it. Learn more about Device Segments. Saved Searches Use Saved Searches to keep frequently used criteria stored for later use. If search queries are manually entered in the search box above, or if you click on locations, business units, or device segments in the Device Navigator, JouleX Energy Manager will perform a device search. To save a search query, open the Saved Searches tab and click on Save Current Search. To remove Saved Searches click on the next to it. By default, JEM already contains couple of pre-defined Saved Searches that we feel will be very beneficial while working with JEM. For example, Devices in Quarantine identifies quarantined devices and Empty Locations displays where you still need to add locations. Add Device Generally, devices are imported from existing system management software. It is possible, however, to manually add devices to JouleX Energy Manager using the Add Device dialog. It is important to specify the Device Type and a URI/IP address or a hostname to identify the device in the network. Use the + Add button to bring up the following dialog: 105 of 186 JouleX Energy Manager v24295 Manual When manually adding Windows devices, it will be necessary to also enter Credentials so JEM can access the devices via WMI. It is also possible to enter additional properties for the device. For more information, see Properties. Import Devices Import devices using an Asset Connector To add an Asset Connector for importing devices, go to Devices > Import. Then click on + Add Asset Connector and choose from the list of available connectors. Each Asset Connector has its own features and functions. When you have multiple Asset Connectors in use, please import them in an appropriate order. Asset Connectors in vertical order can run simultaneously, while Asset Connectors in horizontal order will run one after another. Please notice that Asset Connectors overwrite device data fields from previous Asset Connectors. See the full list of Asset Connectors. Note: Within the individual Asset Connector configuration settings, you will find options like Enrich Only or Take Device Ownership. Enrich Only means, that this Asset Connector will only be applied to already existing device and does not create new devices. Using Take Device Ownership you can assign a device to a particular Asset Connector. Usually, the first Asset Connector which imports a device will take the ownership of a device. With this option, a Asset Connector which comes later in the list can take over the ownership. You also can specify an import script. This script will be executed on each device that is imported or updated from this Asset Connector. Refer to Asset Connector Scripting Functions Disabling Asset Connectors By default, a newly added Asset Connector will be enabled automatically. However, the user has the option to disable single Asset Connectors as needed. To disable an Asset Connector, use the toggle button. An enabled Asset Connector is represented by ,a disabled Asset Connector is represented by . Please do not forget to save your changes. The example below shows a JEM with two enabled and one disabled Asset Connectors: Deleting Asset Connectors You can either disable an Asset Connector or delete it from the list. When an asset connector is disabled, all devices are still valid and will be kept in the system but will not be longer synchronized or updated by the Asset Connector. Asset Connectors can be enabled or disabled at any time. When an asset connector is deleted, all devices owned by that Asset Connector (see Device Ownership) are deleted. Note: It will still be possible to generate reports for deleted devices, since the reporting in JEM keeps track of historical data. 106 of 186 JouleX Energy Manager v24295 Manual Refresh Assets In addition to defining the time interval to execute Asset Connectors on a regular basis (explained below), it is possible to trigger the execution of all or specific individual Asset Connectors. To refresh all Asset Connectors, click on refresh a specific Asset Connector, go to the Options on that connector and click . . To Use the Asset Connector Schedule to set the time interval to refresh the devices to be imported automatically via Asset Connectors. JouleX recommends synchronization of assets, with Active Directory and other management systems, once a day. To set these options, click Options > Edit for the specific Asset Connector. Then choose the Basic tab. By default, the Asset Connector Schedule is set on "every 12 hours". Use the drop-down menu to change the settings. Device Column Picker By default, only a small number of data fields are enabled in JouleX Energy Manager. Enable extra data fields for devices by clicking the Column Picker symbol on the right side of data fields on the Devices page. This is circled in red in the image below. From the column picker symbol, select extra fields for the Devices page. Execute Action Dialog The Execute Action Dialog enables you to manually Power Off, Standby, Hibernate or Power On a device or check its status. Select one or more devices you wish to power manage and click on Execute. In the dialog, select the action you want then click on Execute. The Check Status action performs a complete status check including power measurement. Folder Mapping Folder Mapping is used to move new and existing devices from the folder the mapping lives in to a new target folder. To create a new mapping click Add Folder Mapping, which opens up the Folder Mapping Dialog box. 107 of 186 JouleX Energy Manager v24295 Manual Use this box to define the set of devices to be moved by entering a DQL. After saving changes made to the Folder Mapping, all mappings are immediately applied to existing devices. Folder hierarchy processing As folder mappings can be defined on any folder it is important to understand the processing steps when multiple folders are involved. For any given device object, processing always starts at the folder of this device. If a folder mapping is defined in this folder, this folder mapping list is processed first. In case a mapping matches, processing will stop at this point and the new folder will be assigned. If no mapping matches, processing will continue at the parent folder. This workflow continues up to the root folder if no mappings match on folders in between. Property Templates Property Templates are used to apply a set of properties to new or existing devices. To create a new template click on Add Template to open the Device Template Dialog. Enter a name that describes your template. For 'Matched Devices' enter a DQL to define the set of devices to which this template will be applied. In 'Properties' you'll find the Property Editor which allows you to add, delete, or modify properties that are applied to the matching devices. Check the box if the template should overwrite existing values found in devices. To enable the template, check the Enable Template box prior to clicking OK. To disable or save without enabling, click OK after confirming the Enable Template box is unchecked. After you've saved your changes made to the Device Templates, all enabled templates are immediately applied to existing devices. Device Templates are only applied to devices that live in folders a JEM Controller is assigned to. Folder hierarchy processing As property templates can be defined on any folder it is important to understand the processing steps when multiple folders are involved. For any given device object, processing always starts at the folder of this device. If a property template table is defined in this folder, this table is processed from top to bottom. After this, property templates in parent folders are processed. Device Viewer Dialog The Device Viewer is a key component of the JouleX Energy Manager. It shows various aspects of a particular device on a summary page, displaying the most important features of a device. It also provides detailed views for device properties: the energy profile and device-centric audit view. The Device Viewer has the following options: Summary Displays the most important features at a glance Properties Edit or view all device data fields in detail Device ID View or check Device ID Energy Profile Information about energy measurements and accuracy. Audit Audit messages for the selected device Diagnose Diagnose a device and check for errors Capability Matrix Matrix which shows interfaces in relation to proxies Summary This page shows the key facts about a device at a glance. 108 of 186 JouleX Energy Manager v24295 Manual Facts Display key facts about the device. Depending on the device type, various data will be shown. Typical information includes: Device status and power demand. Virtual Device information Parent and child device relationships Standard data like IP address or URI, hostname, location, model, etc. Multi-Series Charts Shows the two different blocks of charts like; power, utilization, CO2 Rate, Saved Power, etc. One in blue and in red. Select any two charts and compare them, like in below example, power and utilization are selected and compared. Properties Each device has many different data fields or properties. To better differentiate between them, they are grouped into categories. Click the value box of a property to directly edit it. Not every property is editable, some are read only properties (e.g. Device ID). To add a new property, click the "Add" button and enter a name and value. Then click the "OK" button to add the property. Common properties are suggested in a popup when entering the property name. For some properties there are also predefined values available, which will be shown to you when entering the value box (see image). How to ... Device data fields provide great flexibility for configuration. This section demonstrates common use cases: Changing the device status check method Manually add PoE Devices (or with the CSV-Asset Connector) Add Generic devices vPro Integration Where can you find the Device ID? 109 of 186 JouleX Energy Manager v24295 Manual The Device ID is displayed in the properties tab of the device information view in Devices page. The Device ID is generated when the device is saved for the first time. To copy the Device ID, double click the field to open a popup containing the ID. From here, use CTRL + C to copy the ID. Energy Profile This page displays detailed information about the energy profile and the measurement accuracy. Energy Profile Some device types (PoE devices, devices supporting on-board power sensors) report accurate power consumption, while others like legacy PCs, printers, and displays are approximated measurements. For those devices, it is important to choose the correct Energy Profile. TruJoule (automatic) Energy Profile TruJoule is a technology which uses mathematical modeling algorithms to determine actual power consumption of a device. Depending on the device type (pc, printer, display, etc.) different TruJoule algorithms are used. Each one has special characteristics with different levels of accuracy. Indirect via other device With Indirect Method, it is possible to retrieve the device's consumption indirectly from a power meter or PDU. For example, Device A draws power from a PDU Outlet 1. In JEM, simply go to Device A Energy Profile and then Indirect method to select the PDU outlet 1 and use its Energy Profile for Device A, as shown below. Custom profile (user defined) In some cases, TruJoule measurements may not meet internal requirements regarding accuracy. It is always possible to perform an exact measurement on your own (using a power meter) and create a custom energy profile for a single device or Hardware Patterns for specific hardware configurations. Details Displays detailed information about the current energy profile. The Measure Accuracy is displayed as Power Quality Index. Measure Method describes which TruJoule algorithm is being used to measure power. Audit The Audit page displays audit messages for a device. Audit messages include device status changes like power on or power off, as well as warnings and errors for this device. 110 of 186 JouleX Energy Manager v24295 Manual Use the Audit View to review when devices changed their state or caused an error or warning. It is possible to filter all audit messages by severity: All Messages (includes warnings and errors) Warnings (includes errors) Errors The following symbols indicate the type of the messages: Information Warning Error Diagnose The Diagnose page provides the ability to diagnose a device. If a device has a problem with any port, proxy or, etc. it will display the errors and also possible solutions. Capability Matrix The Capability Matrix displays in depth detail for the available proxies and the data they provide for the device. Matrix Structure The columns list all proxies that could be addressed. The rows display the different Interfaces. The matrix also displays any failures concerning a proxy and denotes quarantined ones. For more information, see Device Proxies and Capabilities and Quarantine. JPI - JouleX Performance Index The JouleX Performance Index, or JPI, is a benchmark to help optimize the energy utilization of your devices. Its foundation is a broad base of processor performance measurements. If a JPI for your device exists, it can be verified in the Device Information. The higher the JPI, the better the device performs. The JPI is a powerful indicator for cross checking the performance of devices. JouleX advises our customers to evaluate energy efficiency from all possible angles. A prime example can be found in the Device Model Report, Model Replacement. This report will always, if available, quote the JPI. This makes it a handy tool for administrators to evaluate the performance of their devices. To get a better understanding of the JPI, review the table below: Processor Cores Freq. Power Release Date Type JPI AMD Opteron(TM) 6174 12 3.2 GHz 115W March 29, 2010 Server 132.9 Intel(R) Core(TM) i7-860 4 2.8 GHz 95W September 8, 2009 High End Desktop 49.4 Intel(R) Celeron(R) M Processor 320 1 1.3 GHz 24.5W January 5, 2004 Mobile Computers 3.0 There are three devices listed above. Each has the same utilization rate, but there are significant differences between them. The JPI helps to quantify them with an easy-to-understand approach: if the utilization rate is the same, the device with the higher JPI delivers a better overall performance. Note: Currently the JPI only applies for devices with a CPU known to the database. Device Locations Generally, locations are assigned by the Asset Connectors during the device import. If not, follow these directions to define them manually. 111 of 186 JouleX Energy Manager v24295 Manual For devices that were not automatically assigned to the correct location, explicitly assign them with the Location Mapping tool. For instance, if you have phones in a specific IP range, and all phones in this IP range are in New York, assign them the following way: 10.2.0.0/16 => location='New York' It is permissable to omit the location= term, since this is the default field when nothing else is specified. 10.2.0.0/16 => 'New York' Besides IP addresses and IP address ranges, it is possible to specify which devices should be mapped using any DQL - Device Query Language search term. In the following example, all devices with the device type pc.linux will be associated with the location Server Room. type='pc.linux' => location='Server Room' Correct ordering of mapping The mapping process is conducted in a serial manner from the first line to the last. If you have multiple mappings that could match for a device, only the first mapping that matches a device will be used. Here are two examples. The first example works as expected, because the more specific IP address is mapped before the less specific ones. The second example will not work as expected, because the mapping stops at the first match which means the mapping for Manhattan will not be processed. # Example 1 - Correct order 10.2.1.10 => location='Manhattan' 10.2.0.0/16 => location='New York' # Example 2 - Wrong order 10.2.0.0/16 => location='New York' 10.2.1.10 => location='Manhattan' Using the NEXT command to control ordering of the mapping Mapping can become complex and flexibility may be needed in the processing of the mapping. In this case you can use the NEXT command to control if the mapping should stop or continue once a match is found. With a modification, Example 2 above will work as expected by inserting the NEXT command into the first mapping. This tells JEM to process the mapping for the matching devices and then move on to the next line instead of stopping. # Example 2 (again) - Now correct order using NEXT NEXT 10.2.0.0/16 => location='New York' 10.2.1.10 => location='Manhattan' Complex Mapping Statements You can use complex Device Query Language (DQL) statements for Device Mapping. In the below example, a combination of IP address range and hostname prefix is used to determine the location of the device. # Example - Use complex DQL 10.3.1.20/16 and hostname='ATL*' => location='Atlanta' Map other data fields besides location You can also assign values to any other data field. Simply use the same format as above, with the appropriate data field values. For example: # Example - Mapping non-location data fields # first, clear the business unit data field for all devices (use the * for all devices) NEXT * => unit='' # assign special business unit for virtual devices NEXT virtual.type != '' => unit='Virtual Data Center' Assign values to multiple data fields at the same time It is also possible to assign values to multiple data fields in the same line. In the following example, for each device which matches the IP address range, all three data fields (unit, location, and myattribute) are assigned to the respective values. # Example - Assign multiple data fields at the same time # assign three data fields at the same time uri=10.2.1.0/16 => unit='QA' location='West Coast' myattribute='Server' Folder hierarchy processing As location mappings can be defined on any folder it is important to understand the processing steps when multiple folders are involved. For any given device object, processing always starts at the folder of this device. If a location mapping is defined in this folder, this location mapping is processed first. In case a mapping matches (and no NEXT rule is provided), processing will stop at this point. If no mapping matches, processing will continue at the parent folder. This workflow continues up to the root folder if no mappings match on folders in between. Protected Devices The Protected Devices list provides the ability to define devices to be excluded from power management, both manual and policy based. This ability is recommended for protection of important servers, gateways, etc. so they will be excluded from being shut down for any reason. By default, no devices are protected, which means that all devices managed by JouleX Energy Manager are able to be powered off unless they are added to the Protected Devices list. This list can be used to protect individual devices, device groups, locations, etc. How to protect devices deny * Protect all devices from being powered off. This can be practical when getting started with JouleX Energy Manager deny 10.2.2.1 Protected a single device with the given IP address deny 10.2.2.0/24 Protected all devices in the given IP range deny type='pc.linux' Protected all Linux machines deny location='DataCenter*' Protected all devices which have a location name starting with DataCenter allow 10.2.2.23 Allows a single device even if the other ones within the same group are denied (due to type, location, IP range, etc.) By default, a device contained within a group protected by the list will be denied, whether or not it has deny as its prefix. To allow devices from a group of devices that are by on the Protected Devices list, (due to type, location, IP range, etc.) the allow condition must be listed prior to the deny condition. These are just a few examples. It is possible to allow or deny any kind of devices using the DQL - Device Query Language 112 of 186 JouleX Energy Manager v24295 Manual How to verify if devices are protected Integrated into the Devices page is a powerful tool that allows you to verify whether a device is protected or not. The padlock on the Summary page of the Device Viewer Dialog indicates that the Device is protected. It is also possible to add the Protected column to the main page List view. In the screenshot above the following query is applied: deny 10.0.1.0/24 More options To utilize the option to protect devices on the Devices page, select a device, click the More button, then go to Protect Device -> Device. Click on Remove Protection to remove a device from the Protected list. Protect This option does not overrwite any protections defined from the Protected Devices section. If you protect a device on the Settings page under Protected Devices, it will be impossible to remove the protection on the Devices from this menu. So, clicking Remove Protection will not remove the padlock. Folder hierarchy processing As protected devices can be defined on any folder it is important to understand the processing steps when multiple folders are involved. For any given device object, processing always starts at the folder of this device. If a protected devices list is defined in this folder, this protected devices list is processed first. In case of a match (allow or deny), processing will stop at this point. If no matches occur, processing will continue at the parent folder. This workflow continues up to the root folder if no matches occur on folders in between. Reports The Report page gives you access to all statistics of JEM. With the help of the menu on the left, you can choose the various types of statistics you want to analyze. 113 of 186 JouleX Energy Manager v24295 Manual Detailed Reports Select from dozens of report templates and get detailed insight into your energy data. Learn more about Detailed Reports. Favorite Reports (Save & Export) To keep reports for later use or export them in a PD,F or any other format of your choice, click Save & Export at the top right of the report header. Choose Add to Favorites for the report settings (daterange, segments, etc.) to be saved under Favorite Reports for later access. The reports added to the favorites will appear in the menu on your left under Favorite Reports. Interactive Reports Besides the option to display different sets of data and thereby create customized reports for your companies needs, JEM also offers further options to gain a better understanding of your data. The following will describe options which are directly accessible through the GUI. Mouse Over Data Boxes All reporting graphs offer a dynamic scale, helpful in deriving data for a specific point in time. However, for a more detailed view, mouse over any point of interest and a box with detailed information will pop up. In most cases, this includes a Timestamp, the Report Name followed by the Measurement Unit, and the specific Value The example below is from the Energy Consumption w/ Ranking report and quotes the detailed consumption of all devices at Atlanta for the chosen point in time. Notice: The timestamps within the reports show the value aggregated from the hour displayed to the next hour. This means, e.g. the timestamp at 07:00 a.m. local time Germany(UTC+1) displays the aggregated value from 07:00 a.m.(UTC+1) to 08:00 a.m.(UTC+1). Clock Figures Some reports provide you with a 24-hour clock, to give you a better understanding of your average consumption for a particular hour of the day, move the mouse around the clock to see the detailed data. Weekly Data Besides the chart, where the dots visualize the values, mouse over any green dot to view the exact data for that dot. 114 of 186 JouleX Energy Manager v24295 Manual Customize Charts Ranked Reports (Specific Segment) To focus on one device, the Segment in the table and JEM will load a segment specific chart only providing values for this segment. Ranked Reports (Dynamic) Another way to reduce the number of segments, or hide data, is to focus on specific information. Click the name of the segment or data in the legend of the chart to reduce the shown data.The chart will only display the segment you have chosen. To addmore segments, click grayed out segment names in the legend. The example below retraces the procedure applied to show a chart with data from locations within Europe. The standard report with all locations: Choose the first location within Europe: All European locations are selected: Throughout the reporting, you will find these and similar options to customize your charts. Try it out and see how beneficial it is to gain a better understanding of your energy consumption and generate even more savings. Detailed Reports JEM offers a variety of reports on different aspects of energy, costs, carbon emission, device status, and beyond. Different Report Types Energy Cost Savings Shows how much money JouleX Energy Manager has saved by powering off devices. By default, JEM only accounts savings caused by policy rules and ignores devices being powered off manually or by other processes. All cost calculations are based on the energy price of the device's location and reflect historical energy prices. Energy Costs Shows how much money spent on energy. All cost calculations are based on the energy price of the device's location and reflect historical energy prices Saved Energy Shows how much energy JouleX Energy Manager has saved by powering off devices. By default, JEM only accounts savings caused by policy rules and ignores devices being powered off manually or by other processes. Energy Consumption Shows the energy consumption of your network. Carbon Savings Shows how much carbon JouleX Energy Manager has saved by powering off devices. By default, JEM only accounts savings caused by policy rules and ignores devices being powered off manually or by other processes. All carbon calculations are based on the carbon emission rates of the device's location and reflect historical data. Carbon Emission Shows the carbon emission of your IT infrastructure. All carbon calculations are based on the carbon emission rates of the device's location and reflect historical data. 115 of 186 JouleX Energy Manager v24295 Manual EnergyWise Reports The EnergyWise Reports displays information about the time, consumption, and power demand in reference to EnergyWise levels. Comparison Reports Compares Energy Costs / Savings, Energy Consumed / Saved, Energy Cost / CO2, Energy Cost / Consumption, Saved Energy Cost / Saved Consumption and Energy Consumption / Devices On. Rule Reports Verifiy the effectiveness of your rules and analyze the number of devices controlled by a specific rule per hour. Devices Shows how many devices are powered on/off manually or rule controlled. The report offers seven different analysis: Powered-On, Powered-On w/ Total (compared to the # of total devices), Powered-Off, Powered-Off w/Total (compared to the # of total devices), Controlled By Rule, Controlled By Rule On/Off, and Controlled By Rule On/Off/Stby/Hib. Utilization Reports The Utilization Report groups devices by their utilization, to give you a better understanding of the capacity utilization of your devices. Device Model Reports Calculates typical characteristics of certain device models and yields the possibility of calculating additional spending after replacing models. Datacenter This report displays the ratio of power demand of your data center, comparing the total power demand (Servers, Switches, UPS, Light, Air Condition, etc.) to the power demand of the IT infrastructure. Distributed Office The Distributed Office report monitors the workstations within your network and should help you to reduce energy and cost during non office hours and weekends. Energy Savings The report provides you with an overview of saved Energy, Costs, and CO2. It also shows you the savings by Location and Device Types. Forecast your savings with the help of the Scenario function. Baseline Reports Baseline Report offers another option to show savings. Using this report it's easy to calculate savings on different date ranges even without managed devices. Report Review A lot of reports are standardized. For nonstandardized reports check the links given in the table above or read the descriptions. The standardized reports generally show five different types of data preparation. General Based on your chosen Filtering Options, with a focus on the chosen Daterange, this pages displays a graph and an overall summary. w/ Stats A reproduction of the General output along with a table where with some brief statistics. Average Daily Based on the chosen Daterange, this sub-report gives detailed statistics for an average day. Top 10 A list of the Top 10 Devices with the associated value (hours, kWh, USD, etc.). w/ Ranking A subset which ranks the location in reference to the analysis of the specific report. It comes along with a value, states the percentage and the number of devices. Filtering Options To fully use the reporting functionality, become familiar with the various filtering options provided by JEM. The gray header at the top of every report provides a brief overview and the option to directly access the specific Report Settings. Click on Report Settings to open the general context menu for each report. Daterange Define the date and time range the report should cover. Learn more about the Daterange Segments Select all or a specific subset of your devices for reporting. Learn more about the general concept of Device Segments and their specific purpose for the reporting. Save & Export As described in Reports Overview it is possible to Save & Export and add a specific report to your Favorite Reports. EnergyWise Reports General Settings Similar to the other reports, the EnergyWise Report is defined with the help of the box at the top of the page. Unlike some other reports, it is not necessary to add any more information than Daterange and Segments. Average Time in Level per Day [days] Average Time in Level per Day report displays the time spent in each EnergyWise level for an average day for all devices in the chosen segment and date range. The EnergyWise Level shown is the average time per day of all devices in chosen segment. Time in Level [days] Time in Level report represents the total time of all devices spent in each EnergyWise level for the chosen segment and date range. Average Consumption in Level per Day [kWh] Average Consumption per Day report displays total consumption in each EnergyWise level for an average day for all devices in chosen segment and date range. The shown value is the sum over consumption per day of all devices in chosen segment. Consumption Consumption report represents the total consumption of all devices spent in each EnergyWise level, for the chosen date range and segments. 116 of 186 JouleX Energy Manager v24295 Manual Power Demand Power Demand report shows total power demand in kW for the respective EnergyWise level, for all devices in chosen segment and date range. The shown value is the sum over average demand of all devices in the EnergyWise level. Time Spent in EnergyWise Level [%] The Time Spent in EnergyWise Level report shows the amount of time spend in an EnergyWise level by percentage. The scale is dependent on a chosen date range. If you analyze more then 48 hours, the information provided will be on a daily basis, below 48 it will be on a hourly basis. Utilization Reports This report will help to better understand the utilization pattern of the devices within the network, therefore JEM provides six different subreports, which list the devices and visualize the utilization with an individual chart for every device. General Settings Similar to the other reports, the Utilization Report is defined with the help of the box at the top of the page. Besides the known settings for Daterange, Segments, Granularity and Limit/Offset, Settings allows to define the Utilization Range. Subtypes of Report High Utilization (Avg) Within this sub-report the devices are sorted from high to low utilization. The High Utilization (Avg) report gives an overview over load patterns of all devices in the chosen Segment(s). Each bar stands for a certain time range and represents average utilization within the selected Daterange. High Utilization (Max) Within this sub-report the devices are sorted from high to low utilization. High Utilization (Max) reports give an overview over load patterns of all devices in the chosen Segment(s). Each bar stands for a certain time range and represents the maximum utilization within selected Daterange. Low Utilization (Avg) Within this sub-report the devices are sorted from low to high utilization. The Low Utilization (Avg) report gives an overview over load patterns of all devices in the chosen Segment(s). Each bar stands for a certain time range and represents average utilization within the selected Daterange. Low Utilization (Max) Within this sub-report the devices are sorted from low to high utilization. Low Utilization (Max) reports give an overview over load patterns of all devices in the chosen Segment(s). Each bar stands for a certain time range and represents the maximum utilization within selected Daterange. Low utilized devices Low utilized devices report shows all devices that haven't been utilized more than 10% within selected Daterange. Devices with mostly low utilization Devices with mostly low utilization identifies all devices that are rare high utilized. These devices haven't been utilized more than 10% over 90% of selected Daterange and were utilized more than 40% for at least one time. Visualization Example: High Utilization (Avg) The following is a screenshot from High Utilization (Avg) report. Besides the Device IP/Hostname, you could find the JPI and VMware Type for the specific 117 of 186 JouleX Energyyou Manager v24295 Manual Device IP/Hostname, could find the JPI and VMware Type for the specific device, a bar chart with the utilization over time and the average utilization for the chosen Daterange. Device Model Reports These report section holds the possibility to run analysis on a specific device, compare devices, and to calculate savings due to replacement. The reports will be available shortly after the device your are looking at was added to JEM. Nevertheless, as it is based on data collected over a course of time, the results will be more significant as longer the device is monitored by JEM. Different to other reports this one, does not give you any option to define any Daterange, as JEM works with all data available for the specific device. The different reports could be accessed in the Report section of the console, through the menu on your left-hand side. Overall there are four different model reports you could apply, Model Analysis, Model Replacement, Model Replacement w/ Factor and Model Replacement w/ Custom. The following will explain them in detail. Model Analysis The Model Analysis report provides detailed information on every model that is included into JouleX Energy Manager. Making use of the Model Analysis for the first time after login, the Report Settings menu will pop-up. Here you have to choose a model you want to analyse, and by default Model Analysis will calculate the values over all devices of the selected model. Nevertheless you can limit the devices analyzed with the Device Segments function, in the same pop-up menu. Thereby you can use the segments you have created earlier on or you click and follow the approach explained at Device Segments. Furthermore you could alternate the reviewed device and segments in the top column. If there are devices where no data exists (yet), you will get the following error message: No data found. To select a model choose Model Analysis tab on Report Settings and select a model as described in Model Analysis settings. The provided data could be split in two different categories, first of all general statistics about usage and utilization of the device, and secondly energy statistics. Operating Figures show you first of all which device you have chosen, the JPI, the absolute number of the selected devices in the segment you are reviewing and the so called time stamp, which informs you about the analyzed time period. The Power table informs you about the relation between the time devices where turned on to the turned off time for the analyzed timespan. Please remind, that this reporting uses a defined timespan which could not be adjusted. The Utilization chart and figures refer to the CPU utilization or for monitors the brightness. Average informs you about the average utilization (for Status On), whereas Max about the maximum reached utilization of a device during the monitored period. Power Demand gives you an overview of the power used by the device (all figures are the average per device). Thereby JEM differentiates between the maximum seen, the average seen, the minimum seen and if the status of the device is off. The table Forecast summarises the collected data and projects them on a monthly, yearly and 3 year basis. All data output refers to the usage of one device. The calculation of Energy Costs and CO2-Emission is based on the figures you have entered at Energy Prices which could be also accessed with a click on Edit at the very end of the menu on your left. Model Replacement As the concept for the three different approaches of Model Replacement differs only marginally, the following will explain the standard approach in detail, whereas the then following sections will only refer to the differences. The replacement report allows to compare models on energy cost, energy consumption and CO2 emission. Therefore a typical behavior of the selected model is calculated. Then the replacement model is adapted to this behavior. Two compare two models select both as described in Model Analysis settings. If you want to verify your choice later on, take a look at the grey box at the top of the report page. It does not only provide you with information about the models you have chosen, but also about the Segments. The dialog boxes at Model Replacement lend their structure from the Model Analysis. The Settings table gives some general information, which are: the name of the devices, JPI, the share of Power On and Power Off and the Utilization rate in percentage. Remember that this report is a 1-on-1 comparison between the average value for one device. 118 of 186 JouleX Energy Manager v24295 Manual The Summary and the Cost-Evolution over Time are a graphical summary of the tables at the bottom of the page. The background color for Summary will give you a first indicator if the replacement would have a positive (green) or negative (red) effect. Feel free to use the dynamic elements of the graph, as you swipe across with the cursor. The overview Detailed Result gives you the opportunity to develop an in depth understanding of your Energy Costs, Energy Consumption and CO2 Emission. On the one hand you see the development over time, on the other hand, JEM shows you the difference between the two models and indicates with the color green or red the effects in relation to your base model. Note: For both the Model Analysis report and the Model Replacement report the Daterange is disabled. Model Replacement /w Factor The Model Replacement /w Factor differs from Model Replacement report as it gives you the possibility to assign a Replacement Factor. The Report Settings box, gives you the possibility to choose a number of analysis and replacement models Model Replacement /w Factor calculates cost of energy, energy consumption, and CO2-Emission, and thereby compares savings and costs. Note: This report holds the possibility to calculate acquirement costs by selecting the same analysis and replacement model. Model Replacement /w Custom This report provides the possibility to compare a device that does not yet exist in JEM. Therefore select the Device Type of the replacement model and put the consumption values for the device. Blank fields will be counted as zero. If the Specify Usage Pattern box is unchecked JEM will calculate consumption of the replacement device based on the behavior of device to be replaced. By checking the box additional information about the device's behavior can be set. Datacenter Reports Datacenter Report is found in two locations; for local JEM under Local Reports or for all devices network wide under Centralized Reports. The Datacenter Report is based upon the PUE (Power usage effectiveness), a measure of how efficiently a computer data center uses its power; especially, how much of the power is actually used by the computing equipment (in contrast to cooling and other overhead). Defining Datacenter Devices Before you can analyze the PUE, it is necessary to define devices belonging to the Datacenter and the device(s) metering the Datacenter. To do this, access the device information in the Device Viewer Dialog under the section Properties. Set property datacenter to the name of your datacenter. Set property meter to the name of the meter that measures the entire consumption of the datacenter (Total Facility Power Demand). If dc1 is the datacenter's name, then the Total IT Power Demand of datacenter dc1 is the sum of all devices and meter=dc1. Datacenter Report Settings Once the data centers have been defined, you can begin running reports. If there is more than one Datacenter, specify which one is to be analyzed. Find the Report Settings menu at the top of the window, click Not set yet. To Configure, open the Report Setting menu and choose the preferences for each report, and access the menu to select the data center you want to evaluate. Power Usage Effectiveness (PUE) The Power Usage Effectiveness (PUE) displays the PUE for the chosen Datacenter for the selected Daterange. The PUE is only available for a Daterange of more than 24 hours. If the JEM installation is less than 24 hours old, or if you attempt to retrieve data for Today, JEM will produce an error message. Under-Utilized Servers To fully use all functions off the data center report, it will be necessary to add another parameter. The Under-Utilized Servers report gives you the option to evaluate costs due to underutilization. To report on the Idle Utilization rate, under Report Settings at the top of the page, choose Underutilized from the list on your left. The drop down menu gives you the option to define the idle threshold. All servers with an average utilization below or equal the Idle Utilization over the timespan of date range will be rated as under utilized server for the report. The report output is displayed in two sections. The first one is an overview, quoting the number of Underutilized Servers, Total Costs affected by the underutilization, and the Cost Forecast for one Year. The second section presents detailed ranking of the top underutilized servers, with their URI, Cost Fraction, and the Absolute value of costs. 119 of 186 JouleX Energy Manager v24295 Manual Datacenter Summary This not only displays the report summary but also provides a deeper insight on the Costs, Consumption, Utilization, and Idle time. The first three tables on this page are outlined above. Cost Analysis This specific part of the report, analyzes the Costs of your Datacenter during the chosen Daterange. The second column represents the Cost for an average day, the third and forth column are the absolute Maximum Costs and Minimum Cost which occurred at one point in time within the chosen Daterange. Consumption Analysis This section of the report is split into two different parts, the first one Consumption Analysis gives you the Average, Maximum and Minimum Consumption. Thereby Consumption Analysis applies the same pattern as Cost Analysis, Average represents an average day within the chosen Daterange and Maximum and Minimum are absolute values at a specific point in time. The second part of this section, Average hourly Consumption <Daterange> informs you about the consumption of you Datacenter during an Average Day. Thereby the approach is twofold, the table provides you with figures, quoting the Maximum Increase and Minimum Increase, which comes along with a time stamp. Furthermore the 24 hours clock underneath visualizes the Consumption on an hourly basis. On mouseover JEM will even provide you more detailed data. Utilization Analysis Same as for the other figures, the produced data is based on the chosen Daterange, but for an average day. These figures should help you to get a better understanding of your Datacenter Utilization. The provided data, are shown for the Maximum Increase and Maximum Decrease, besides the numbers, the time of occurrence is also part of the table. Furthermore, the 24 hours clock visualizes the utilization level and the de- and increases. Idle Analysis Devices which operate on a very low utilization rate, are classified as Idle. As described above, with the help of Report Settings the user could set the threshold for Idle Utilization. This report focuses on under-utilization on an hourly basis. Therefore all servers with an (absolut) maximum utilization equal or below the set Idle Utilization will be considered. The structure of this sub-report is partly similar to the other presented above. Average Idle refers to average devices idle per hour for the chosen Daterange. Maximum Idle and Minimum Idle, refer to the one time high and low during the chosen Daterange. Total Idle Hours is the sum over Daterange of Idle Hours. Average hourly Idle <Daterange> presents the hourly changes of Datacenter devices which are classified as Idle. The table informs about the Maximum and Minimum Increase and thereby does not only quote the number of devices, but also a time stamp. The 24 hour clock visualizes the changes for an average day. 120 of 186 JouleX Energy Manager v24295 Manual Distributed Office Reports The Distributed Office Report is meant to analyze the energy consumption of your workstation, or to monitor your devices with the goal to minimize consumption during Non Business hrs. and Weekend Days. Distributed Office Summary The Distributed Office Summary compares the consumption of your devices, and applies two frameworks: Working Days / Weekend Days, and Business hrs. / Non Business hrs.. Configure Distributed Office Report As with the other reports, start at the top of the page and open the Report Settings. Through Report Settings, define the Daterange of your analysis. The shaded area is hidden and can be accessed by clicking . Business hrs. / Non Business hrs. and Weekdays / Weekends must be defined separately. The hours you set define the exact start and end time of the Business Hours. Find details in Report Settings. Working Day / Weekend Day Analysis The table compares Workings Days with Weekend Days. It is important to keep in mind that the settings for Business hrs. / Non Business hrs. do not affect this section of the report. Similar to the Datacenter Report, the Average represents the consumption for an average day, based on the data for the Daterange you have chosen. Max and Min represent an absolute value at a specific point in time. The clocks beneath the table, show you how many devices have been on / off each hour during Working Days or Weekend Days. The icon at the top right displays the ideal status of your devices over 24 hours. Business hrs. / Non Business hrs. This table does not differ much from the one above, but applies a different approach to delivering insight to the consumption of your devices and whether the energy consumption is properly balanced between Business hrs. and Non Business hrs. Unlike the analysis above, which solely relies on the input factor set, the input factors Working Days also influences the analyzed Devices On At Night This particular report should visualize how many devices in the Distributed Office are On at night. The chart shows the total number of devices turned on during the Non Business hrs. The table below displays data on the Wasted Money and Wasted Power, showing the amount of money wasted because these devices have been turned on at night, and the amount of power they consumed during that period. 121 of 186 JouleX Energy Manager v24295 Manual Energy Savings Reports Energy Savings displays both the actual savings of all time and potential savings that can be achieved, and is part of the Detailed Reports that are accessed through the menu on the left hand side of the Report page. Energy Savings (All-Time) The Energy Savings (All-Time) report shows the total savings of all time. The only settings available for this type of report are the Segments. Scenario Reports The Scenario Reports allow you to calculate potential energy savings that can be achieved by power managing all devices (for the chosen segment) for a defined period of time. Select a Daterange in Report Settings to define the range in time the report is calculated on. As mentioned above, Scenario Reports give you the opportunity to test savings due to different scenarios. To access these settings, open the Report Settings by clicking Configure at the top of the page. The Scenario settings provide several options: Set the time your devices should be Powered ON and Powered OFF; indicate if devices should be Powered OFF for the weekend by the check box; and identify devices which should never be powered off. For example: To forecast the savings for turning off all computers in an Overseas Office, except the Servers & Infrastructure, go to Segments, check the box Overseas Office, set the preferences at Scenario settings, click on the field that says "Never power off devices in this segment", and check the box for Servers & Infrastructure. With this scenario, all devices will be powered ON and OFF at the Overseas Office, except the Servers & Infrastructure. Energy Savings (Monthly) This dialog analyzes the energy consumption of the last 30 days and calculates the energy that can be saved by turning all specified devices off according to a schedule you choose in the Scenario Settings. The report will display a comparison between the actual energy costs and projected energy costs as they would be if the Scenario Settings were implemented (in addition to existing Rules). 122 of 186 JouleX Energy Manager v24295 Manual Energy Savings (Weekly) This dialog analyzes the energy consumption of the last seven days and calculates the energy that can be saved by turning all specified devices off according to a schedule you choose in the Scenario Settings. The resulting report will display a comparison between the actual energy costs and projected energy costs as they would be if the Scenario Settings were implemented (in addition to existing Rules). Baseline Report Within the framework of Joulex Energy Manager, a Baseline is defined as a snapshot of a Device Segment in a selectable date range for metrics like power, cost, carbon, and more. With Baseline Reports compare and visualize performance changes based on a defined Baseline. Note that the report is the same regardless of which folder you are operating in. Detailed information on how to create Baselines can be found here. Example of use: The management of a company sends an e-mail to its employees with a new policy to power down all workstations when leaving the office instead of leaving them in standby mode. With the Baseline Report, it is possible to compare consumption values before the introduction of the new policy and the projected effects afterwards. 123 of 186 JouleX Energy Manager v24295 Manual Note: Editing a Baseline will result in overwriting it. Non-historical device parameters can change over time and the resulting baseline might not be what you expect. For example, if you have created a Baseline for unit "Sales" (Segment: unit=Sales), then later 10 PCs are moved from "Sales" to "Development". The same Baseline will have a different result because there are 10 fewer PCs in Unit "Sales". Charts The Baseline Report consists of three main parts. The information box and two different charts. Information Box The Information Box displays information for the Baseline and the Report on the total of the selected metric, the number of devices, and the average per device. It provides an overview on the differences between Baseline and Report represented in figures. Baseline Chart In the Baseline Chart, the selected Report is superimposed over the defined baseline, where the red diagram shows the baseline and the blue line shows the report. As seen in the screenshot above, the Date Range chosen for the Report is longer than the Date Range set for the Baseline. In this case the Baseline replicates itself over the Date Range of the Report. Difference Chart The Difference Chart is another way to display the differences between the Baseline and a Report. The Baseline here is represented by the horizontal zero-axis. Metrics and Date Range Once you have chosen a Metric and a Date Range for the Baseline in the Report Settings, the report will automaticallyl arrange hours and weekdays. The Segment, as well as the Granularity, will be set implicitly by the selected baseline. Select from following Metrics: Energy Saved Energy Energy Costs Saved Energy Costs CO2 Saved CO2 Devices per Rule Generates a line chart of given date and granularity Each data point is a counting of devices affected by the chosen rule, within the resolution (per hour, day, month). Devices can be counted at the same time on two different rules if they are included in both rules. For Example: One device in JEM is powered on by RuleOn at 12:15h and powered off by RuleOff at 12:45h. The "Device per Rule" report will show 1 on hourly report at 12:00h for RuleOn and RuleOff. Favorite Reports When you create a Favorite Report with the Save & Export function, the Edit Favorite Report menu pops up. Please fill in a name for that specific report at the Name box. 124 of 186 JouleX Energy Manager v24295 Manual All Favorite Reports can be accessed through the menu on the right. Editing Favorite Reports Click the to edit the settings for a favorite report. You can change the Name of the report (which will by default be given by the name of the detailed report you chose) or add Notes about the report. If you want to remove the report, click Remove from Favorites. Schedule the Report You can also Schedule the report and activate automated email notification. The specified recipients will receive the report as a PDF file. Make sure that you have configured your mail server properly, if not warning will be displayed, for more information, Email Notifications. The reports can be delivered in three different formats: PDF, JPG and CSV. The user should select any or all of the options. If no file format is selected, the system will automatically choose PDF. To send the report to multiple recipients, separate the email addresses with a semicolon. It is possible to choose between Daily, Weekly and Monthly reports and to define a delivery time of your choice. Remarks Ascheduled report might not be sent to the desired email addresses if the Central Component of JEM is not running at the scheduled time. There is a small time frame of 15 minutes after the scheduled time in which the report will still be sent, if it hasn't been sent yet. Meaning that if a report should be sent at 15:00 o'clock but JEM was not running until 15:10 o'clock, the report might still be sent, because JEM was running within the 15 minute time frame. After 15:15 o'clock the report won't be sent at all that cycle. If a Favorite Report has been sent already during the day, changing the Schedule settings will not trigger a new email. To deliver a second time the same day, Save & Export the report once more and setup a new Schedule. Report Settings Every report has specific settings. The gray header at the top of every report displays a brief overview and the option of direct access to the specific settings. Besides , the button that opens general Report Settings (screenshot at the bottom of the page), there will also commonly be settings for Folder, Segments, and Daterange. Click the values (blue colored) to either open a drop down menu or the specific Report Settings. 125 of 186 JouleX Energy Manager v24295 Manual This section describes the most common Report Settings, namely they are: Daterange (or Date), Granularity, Grouping, Limit/Offset and Segments (or Device Segments). Baseline Overview To create a Baseline for a Report, or to create new Baselines, go to Reports > Baseline > Report Settings > Baseline. This displays a list of all created Baselines. To choose a Baseline for Baseline Reporting, click the appropriate box then click OK. Clicking on the gear wheel icon at the right side of each baseline displays the respective Baseline Settings. Note: editing a Baseline overwrites the existing one. Creating Baselines To create a new Baseline, go to Reports > Baseline > Report Settings > Baseline and click A new window will pop up for editing Baseline settings. . Name: Name the Baseline. Choosing a descriptive name for easy identification later is recommended. Folder: Choose the folder in which the Baseline will be saved.Only devices in this folder are used in the calculation of of the Baseline. Note: the storage location chosen for saving the baseline will define the visibility and the editability. In other words, only users with permissions on baselines in that folder can view or edit them. Segment: Choose the Device Segment to be used for the Baseline. This Segment will implicitly be used for the entire Report. Date from: Define the start date for the Baseline. Note: this field will be adjusted if Date from + Date range points to a date in the future. Date range: Select the Date range. Possible values are: 1 day, 1 week or 4 weeks. Granularity: Possible values are: Hourly, Daily and Monthly. The value set here will also be set for the later Report. Metric: This Metric selector is only used for the preview and displays all possible metrics that can be used for Baseline Reporting. To choose a Metric for Baseline Reporting, select it at Reports > Baseline > Report Settings > Metric. Delete Baselines To delete a Baseline permanently, click . Datacenter 126 of 186 JouleX Energy Manager v24295 Manual To select a datacenter the report should be calculated for, click clicking OK. and choose your datacenter from the list. Confirm selection by Detailed information about Datacenter Reports can be found here. Daterange The default time period for Detailed Reports is set for the current day, from midnight up to the current time. In the header of every report is a summary of the specific settings. Click the down arrow to choose from a list of predefined Date Ranges or click on custom to customize it for your specific needs. To enter the detailed menu, either click Custom or . Daterange Options These are the options for Daterange Today Today until current time Yesterday Yesterday from 0:00 am to today 0:00 am This Week From Monday until today This Month From the 1st of this month until today Last Week From last Monday to last Sunday Last Month From the 1st to the last of the last month Last 24h From yesterday mm:hh until today mm:hh (with mm:hh being the current time) Last 7 Days From d, mm:hh last week until today mm:hh (with d being the current day of the week and mm:hh the current time) Last 30 Days The last 30 days including today up to the current time Custom ... Set custom range of dates via calendar Custom ... Daterange To select a start and end date of your choice, set Select Date on Custom ... and enter the specific values in the date boxes. Consider Hours Option The system allows you to limit the reporting to a defined time window of the day. By default this setting is disabled. To enable it, check the Consider Hours box shown in the screenshot below then set the start and end hours using the drop down menu. The hours selected define the exact start and end time of your analysis. Visualization The chosen Daterange on a Detailed Report will be reflected in the timeline at the bottom of the graph. Depending on the range you choose, this timeline will show hours and minutes (hh:mm) or dates (dd. mmm). (This example has two Segments) Compare with another Daterange Option To compare two Dateranges, click Compare with another date range to access the menu to define a second Daterange. Set the values as described above, and click OK. The same procedure to open the menu will also close it and deactivate the comparison daterange. To compare different time periods (e.g. This Month with Last Month) click the Use smart alignment checkbox to align the report curves by day. 127 of 186 JouleX Energy Manager v24295 Manual This changes the graph to display two different curves, and for each graph the specific time is indicated (see x-axis at the top and bottom). The grey box at the top of the page also displays information on the additional date range. Click the down arrow to select one of the predefined date ranges. If using Comparing with another Daterange, the system only allows a comparison between a maximum of two Segments. (This example compares two custom date ranges) Daterange Summary Unlike other date settings, the date settings for the Distributed Office Reports provides additional options like Business Hours or Weekend Settings. Settings Overview Date Range Settings: Choose between predefined date ranges or a custom date range for the report. Click here for detailed information about the date range settings. Business Hours: Clicking on the gearwheel icon opens a settings box where you can specify your business hours. Weekend Settings: Clicking on the gearwheel icon opens a settings box where you can specify your weekdays and and weekend days. Granularity Several JEM reports generate graphs (line charts) which provide data based on time frames. Generally, JEM applies a dynamic approach which is dependent on the Daterange. Hourly Hourly (accumulated) data will be provided by JEM, as long as the Daterange is below 9 days. Daily Daily (accumulated) data will be provided by JEM, as soon as the Daterange is more than 9 days and below a year. Monthly Monthly (accumulated) data will be provided by JEM, as soon as the Daterange is above a year. Dynamic Automatically chooses the optimal granularity dependent on the chosen daterange. Besides the dynamic approach, JEM provides the option to determine the units on the x-axis yourself. To do this, click at the top of the page. Select Granularity from left side of the Report Settings menu. From the drop down menu, choose between: Dynamic (default setting), Hourly, Daily, and Monthly. Note,if Daily is selected, the data provided by JEM will be displayed in reference to UTC+0. This means that data for the current, with hourly granularity, will be displayed differently to data with daily granularity. 128 of 186 JouleX Energy Manager v24295 Manual Note: The values shown are always accumulated in reference to your chosen Granularity. Grouping Most reports contain a sub-report option that provides a ranking (e.g. Cost /w Ranking, CO2 Emission /w Ranking, etc.). These are called stacked reports. This option allows you to customize the grouping order of the reporting data fields. JEM allows customization choices from all options in the Device Data Fields. To access these settings, click Configure. Choose Grouping from the list on on the left, and an option from the drop down menu. See the screenshot below for reference. Finally, select the ranking options you prefer by clicking the white box in the right section. This will open a new window to allow you to select data fields. Limit/Offset The JouleX Energy Manager provides most reports in list format. System defaults set these lists to 10 entries per page, beginning with the appropriate prioritization depending on the report type. If these settings need to be changed for your reporting purposes, go to Report Settings and choose Limit/Offset then click Configure. From here, the Report Settings menu allows for the adjustment of the number of entries and the offset point. Metric Some of the reporting charts allow customization of display metrics through the widget on the JEM dashboard. To customize these display metrics, log in to the Dashboard and click the widget menu. icon in the upper right corner of the widget. This will pop up the Next, click Configure. 129 of 186 JouleX Energy Manager v24295 Manual This will pop up a new window. Click on . From the Report Settings pop up, click Metric on the left . Then select a metric by clicking the drop down menu the right column. List of metrics Energy Shows the historical energy consumption of the selected Segments Saved Energy Shows how much energy JouleX Energy Manager has saved by power management of devices. By default, JEM only calculates savings created by policy rules, and disregards savings created by manually powering off the device or nonJEM related processes. Energy Costs Shows your total estimated energy costs. All cost calculations are based on the energy price of the device's location and reflect historical energy prices, therefore can only be estimated. Saved Energy Costs Shows your total estimated energy savings created by JouleX Energy Manager policies. By default, JEM only calculates savings created by policy rules, and disregards savings created by manually powering off the device or non-JEM related processes. All cost calculations are based on the energy price of the device's location and reflect historical energy prices, therefore can only be estimated. CO2 Shows the carbon emission of your IT infrastructure. All carbon calculations are based on the carbon emission rates of the device's location and reflect historical data, therefore can only be estimated. Saved CO2 Shows how much carbon JouleX Energy Manager has saved by powering off devices. JEM only calculates savings created by policy rules, and disregards savings created by manually powering off the device or non-JEM related processes. All carbon calculations are based on the carbon emission rates of the device's location and reflect historical data, therefore can only be estimated. Devices On Shows how many devices are powered on/off manually or rule controlled. This report offers seven different analysis: Powered-On, Powered-On w/ Total (compared to the number of total devices), Powered-Off, Powered-Off w/Total (compared to the number of total devices), Controlled By Rule, Controlled By Rule On/Off, and Controlled By Rule On/Off/Stby/Hib. Model Analysis Create and configure reports for Model Analysis and Model Replacement. More detailed information about the actual reports can be found at Device Model Reports. For Model Analysis, the report settings can be found at Reports > Detailed Reports > Device Model Reports > Model Analysis. Select the model by clicking the Select... button and navigate to the appropriate model. Model Replacement For Model Replacement, the report settings can be found at Reports > Detailed Reports > Device Model Reports > Model Replacement. Follow the same steps as for Model Analysis above, but also select the replacement model. Model Replacement /w Factor For Model Replacment /w Factor, the report settings can be found at Reports > Detailed Reports > Device Model Reports > Model Replacement /w Factor. This report differs from Model Replacement report in that it provides the option to assign a Replacement Factor. The Report Settings box provides the option to choose a number of analysis and replacement models. Model Replacement /w Factor calculates cost of energy, energy consumption, and CO2-Emission, comparing savings and costs. 130 of 186 JouleX Energy Manager v24295 Manual Model Replacement /w Custom For Model Replacment /w Custom, the report settings can be found at Reports > Detailed Reports > Device Model Reports > Model Replacement /w Custom. This report provides the ability to compare a device that does not yet exist in JEM. To do this, select the Device Type of the replacement model and enter the consumption values for the device. Blank fields will be counted as zero. If the Specify usage pattern box is unchecked, JEM will calculate consumption of the replacement device based on the behavior of device to be replaced. By checking the box, additional information about the device's behavior can be set. Over-Utilized Only devices with an avg utilization above Rule Selection Through Rule Selection, review the effectiveness of the rules enabled in the JEM Policies section. This will allow you to analyze the number of controlled devices by a by specific rule per hour. To access this report, click Rule Selection from the Report Settings menu as shown in the screenshot below. From here, click the box to the right of Select Rule and choose the desired rule. 131 of 186 JouleX Energy Manager v24295 Manual Segments By default, the set of devices for the Detailed Reports is All Devices. The chosen devices can be verified in the header of each report. Click on the blue colored text which follows Segments, or on in the menu, choose it from the list on the left of the box. to access the Report Settings. If Segments is not selected Check the box to choose any of the Segments created earlier on, or add new ones. Start the Create a new segment menu with by clicking the button and follow the instructions given here. Note: For every segment chosen, a new graph will be added for comparison. Under-Utilized Only devices with an avg utilization beyond Utilization Range Only devices with an avg/max (depending on chosen report) utilization between limits are shown gm Apps Overview The Apps section provides some useful tools to support your work with the JouleX Energy Manager. For example, use Apps to create global consumption patterns for specific hardware configurations with the TruJoule Editor app, or visualize the energy usage of your company with the Maps app. Here is a list of all the tools and a brief description of them. TruJoule Optimizer The TruJoule Optimizer helps to improve energy measurement accuracy across all network devices. TruJoule Editor The TruJoule Editor enables manual configuration of consumption values of your devices, by creating patterns for specific hardware configurations. JouleX Employee Portal The JouleX Employee Portal gives employees in the organization the ability to engage in energy savings and sustainability initiatives. Alerts Alerts is based upon the general concept of System Notification, to notify or perform an action, if based on conditions set. Maps Maps is a powerful application to visualize energy usage and savings of your devices on a geographical map. JouleX Employee Portal 132 of 186 JouleX Energy Manager v24295 Manual The JouleX Employee Portal provides your organization's employees with the ability to actively participate in company energy savings and sustainability initiatives through JouleX Energy Manager. With the JouleX Employee Portal Opt-in and Opt-out functionality, employees of your organization can independently decide whether or not their devices should be managed by JEM. The portal also provides access to JouleX Mobile, the personal mobile phone application which employees can download free from the Apple App Store to remotely power manage their devices. The JouleX Employee Portal is a website that is included as part of the JouleX Energy Manager installation. By default, the portal is disabled and inaccessible to the organization. Go to Apps > Employee Portal > Settings Portal to enable the Employee Portal website and define which employees should have access. Once access is enabled, each employees with access can control individually whether or not their workplace computers can be powered off by JEM. Note: Make sure you are operating at the folder the respective JEM Controller is assigned to. If activated, the JouleX Employee Portal is accessed through the following URLs: Single-Server Deployment: http://<hostname>:port/portal or https://<hostname>:port/portal. Multi-Server Deployment: http://<hostname>:port/portal/?jemid=jemid_of_respective_controller or https://<hostname>:port/portal/? jemid=jemid_of_respective_controller. Note: The URL changes depending on your JEM deployment. For a Multi-Server Deployment you need the jemid of the JEM Controller which manages the respective workplace computer. You can obtain the jemid from the JEM Controller Management page. Therefor, go to Settings > JEM Controllers. Employee Opt-In/Opt-Out Using the portal, employees have a simple way to opt-in or opt-out of power saving settings of their workplace computers. This process relies on the IP address of the workplace computer being used to access the portal website. Consider the opt-in and out-out status of a workplace computer by creating special rules in the policy using the Employee Opt-In/Opt-Out Condition. Internally, the employee portal uses the following device data fields to control opt-in and opt-out: portal.option = "optin" The device has been opted-in for power management portal.option = "optout" The device has been opted-out of power management If the portal.option field is not set (or empty) then the employee has not taken any action yet. Usage - JouleX Employee Portal It is important to understand the functionality of the portal and the options for administrators and users when interacting with JEM through the portal. Portal Structure The portal is solely meant for users working with JEM enabled devices. If a user accesses the portal by directly linking to its URL (see links below), JEM will automatically match the device IP/Host. Even if the address is identical for all users, each user only has only access to his or her settings. Therefore, only enabled devices can access the portal page. Single-Server Deployment: http://<hostname>:port/portal or https://<hostname>:port/portal. Multi-Server Deployment: http://<hostname>:port/portal/?jemid=jemid_of_respective_controller or https://<hostname>:port/portal/? jemid=jemid_of_respective_controller. Accessing & using the Portal For the end user to access the portal, two conditions must be met: The device must be managed by JEM. As the Portal Structure above explains, JEM matches each User and its IP address with the help of network management protocols, whether you work with DHCP or fixed IP addresses. The Device must be enabled to be managed through the Portal. JEM allows you do define, in detail, which devices are included or not. For more information, please see here. Common Employee Portal error message: This error message is displayed when a user attempts to access the Portal from a device that is not enabled for Portal based user management or not integrated with JEM at all. Administrators often attempt to test the functionality of the Portal on the machine JEM is installed on (directly after installation). This machine is not managed by JEM, by default, and access to the Portal will be denied. If the user has access to the portal, the Welcome screen will be displayed and his or her individual settings on the Opt In/Out page will be accessible. 133 of 186 JouleX Energy Manager v24295 Manual Settings - JouleX Employee Portal The JouleX Employee Portal is a website that is included as part of the JouleX Energy Manager installation. By default, the portal is disabled and inaccessible to the organization. Employee Portal Access To get started with the Employee Portal, click Enable the Employee Portal website for this network to enable access to the website. Note: Make sure you are operating at the folder the respective JEM Controller is assigned to. In case of a JEM Multi Server deployment, the Employee Portal can be activated separately for each JEM Controller. Client Authentication Choose from the drop down menu and define the client identification method that should be employed to identify users and their devices. Via IP address JEM matches the devices solely based on the IP address, be aware that this might cause problems using DHCP or any other dynamic approach Via Hostname (Reverse DNS) JEM matches the devices based on the hostname and retrieves the IP addresses through them Via Script Make use of a custom script to match your devices. An example is given at %JEM_INSTALL_DIR%\service\jemscript\employee_portal_auth.js Feel free to customize it for your needs, but do not make any changes to the filename. Control Employee Portal Access for Individual Devices Once the employee portal website has been enabled, allow access to individual devices, groups, etc. By default, all devices are denied access. allow * Grant access for all devices (NOT RECOMMENDED) allow type='pc.windows' allow type='pc.mac' Gives portal access for Windows and Mac devices deny 10.2.2.1 Denies access for a particular device These are just a few examples. You can allow or deny any kind of devices using the DQL - Device Query Language Settings - JouleX Mobile JouleX Mobile is an App available for Iphone and Blackberry which allows employees to remotely power manage (off or on) their devices. Location based services (GPS) devices associated with an employee can automatically be powered off when he or she leaves the predetermined range. Before JouleX Mobile can be enabled, it must be set up. 134 of 186 JouleX Energy Manager v24295 Manual By default, JouleX Mobile access is disabled for the network and all devices. To begin with JouleX Mobile, click Enable JouleX Mobile Access for this network. Once JouleX Mobile support has been enabled for the network, grant access for individual devices, groups, etc. By default, all devices are denied access. allow * Grant access for all devices (NOT RECOMMENDED) allow type='pc.windows' allow type='pc.mac' Grants JouleX Mobile remote control access for Windows and Mac devices deny 10.2.2.1 Denies access for a particular device These are just a few examples. You can allow or deny any kind of devices using the DQL - Device Query Language Define Power Off Action The administrator is able to define the power off action. By default, a device will shut down with JouleX Mobile but, with an additional Device Data Field, it can be customized for other business needs. In the example below, the device would hibernate if the user leaves the GPS range selects the OFF option. mjem.command.off=hibernate Further possible values are off The device will be shut down. hibernate The device will hibernate standby The device will go into standby Setup JouleX Mobile Steps for the administrator Before JouleX Mobile can be used, the following steps must be taken by the administrator. 1. Go to Settings - JouleX Mobile, in the Apps / Employee Portal tab of the JouleX Energy Manager, and click the checkbox labeled Enable JouleX Mobile Access for this network. This is unchecked by default. Activation of the Employee Portal must be completed before setup can be done for JouleX Mobile, meaning that the Opt-In / Opt-Out status of the employee is not recognized until the portal is enabled. Once the employees have successfully installed JouleX Mobile and connected it to JEM, it is possible to deactivate the Employee Portal. Note: Make sure you are operating at the folder the respective JEM Controller is assigned to. In case of a JEM Multi Server deployment, the Joulex Mobile Access can be activated separately for each JEM Controller. 2. Go to Setings - Employee Portal in the Apps / Employee Portal of the JouleX Energy Manager and click the checkbox labeled Enable the Employee Portal website for this network which is unchecked by default. Steps for the user 1. Access http://<hostname>:port/portal (see Installation) from the PC you want to control via JouleX Mobile. You will see the following welcome screen. 135 of 186 JouleX Energy Manager v24295 Manual 2. Go to the Opt-In / Opt-Out tab and set your status to Yes. 3. Go to the Mobile App tab. Th e Download App button will transfer you to the Mobile Apps, or you can also follow this link: http://download.joulex.net/mobile/. The download at this point is optional, however the app must be installed on the smartphone (also possible with the help of the built-in app store) to work. 4. Click the Register Phone button. Start the App on your smartphone and enter the displayed code. App Screenshots Note: The range set only refers to the Power Off capability. By default, the linked device will be Powered On if you are within a 1 mile range, but the Power Off Range is set at 2, 5 or 10 miles. You can visit http://<hostname>/portal/#dashboard to see your company's savings. TruJoule Optimizer The built-in TruJoule Optimizer helps improve energy measurement accuracy across all your devices. Some device types (PoE devices, devices supporting on-board power sensors) already report accurate power consumption, while others like legacy PCs, printers, displays are approximated measurements. The accuracy of the energy measurement is expressed in the Power Quality Index. The Power Quality Index indicates the accuracy of the measurement. Learn more about the Power Quality Index Summary View The Summary page provides a brief overview of the measurement accuracy for your devices. Use the Device Navigator on the left side of the screen to drill down to specify locations, business units, or user defined segments and review the accuracy. The breakdown table of the power quality shows two metrics, %Devices and %Power. The %Devices metric stands for the percentage of the number of devices with a specific power quality, relative to all devices in the selected device set. The %Power metric is a slightly better metric, since it puts the accuracy in relation to the power consumption. The overall accuracy is better, devices with higher consumption have a better accuracy. Optimize View The Optimize view provides useful insights and recommendations on how to improve the overall power quality for your devices. JEM provides many built-in optimization methods, which can be used to identify devices that have low power quality, and potentially recommends improvement methods. Once you select an optimization method, JEM will show a list of devices to be reviewed. TruJoule Editor 136 of 186 JouleX Energy Manager v24295 Manual The built-in TruJoule Editor enables you to improve energy measurement accuracy across all your devices. Some device types (PoE devices, devices supporting on-board power sensors) already report accurate power consumption, while others like legacy PCs, printers, and displays are approximated measurements. The TruJoule Editor allows you to manually configure the consumption values of your devices by creating patterns for specific hardware configurations. Important: Only devices with a Power Quality Index of 7 or less will show up in the TruJoule Editor. Devices with a Power Quality Index of 8 or higher are measured by a meter, which is the most accurate measurement method possible for a device, making it unnecessary to edit the consumption values with the help of the TruJoule Editor. Hardware Patterns The screenshot above shows a hardware pattern created in the TruJoule Editor and its manually added consumption values. In this case that means that all Fujitsu ESPRIMO Q900 PCs with an Intel Core i3-2310M processor have the following consumption values: Watts per Mode 1 = Off 10 = Standby 50 = Idle 100 = Full utilization Inheritance of Hardware Patterns The Hardware Patterns set in the TruJoule Editor are applied to the underlying folder structure in JouleX Energy Manager. Once a Hardware Pattern is defined within a JEM assigned folder, all relevant devices in the subfolders will also adopt the new consumption values. Priority of manually set consumption values The order of prioritization of Consumption Values are as follows: User defined Custom Profile of a device TruJoule Editor defined values TruJoule Database defined values TruJoule Editor - Creating Hardware Patterns As described in the Overview of TruJoule Editor, the following steps will lead you through the creation of Hardware Patterns and their Consumption Values. Step 1: Choose the correct folder. Choose a folder by clicking on the "+" button in the upper left corner to expand the folder structure. All devices within the chosen folder, and all related subfolders, will then be visible in the TruJoule Editor. Step 2: Creation of Hardware Patterns From the menu on the left side of the TruJoule Editor to find all devices assigned to the selected folder and its subfolders. Select Device Type by clicking on it. You can also filter devices according to Power Quality by clicking the grey sort box to the right of Power Quality and choose from All, Low, or Medium. Important: As mentioned in the TruJoule Editor Overview devices measured by a meter are not listed in the TruJoule Editor, regardless of which Power Quality filter is chosen. Depending on the selected Device Type there will be different levels of granularity in order to create your Hardware Patterns. In our example, we created a pattern for the specific PC Hardware Configuration: PCs that are Fujitsu ESPRIMO Q900s with an Intel Core i3-2310M processor. Step 3: Applying Consumption Values 137 of 186 JouleX Energy Manager v24295 Manual After the creation of a pattern, manual entry of consumption values for the four statuses is required: Off [W], Standby [W], Idle [W] and High [W], where [W] stands for Watts. Make sure that a value is applied for each field from Off [W] to High [W], and that the values are sorted in ascending order. As the the screenshot below shows, the consumption value set for High [W] is lower than the value for Idle [W] so the numbers will be displayed in red to know the values are incorrect. Once the correct values have been entered, the numbers will be displayed in green and it will be possible to save changes by clicking on the button. Note: depending on the selected device type you select, the names of the consumption value fields can differ. Alerts Alerts is based upon the general concept of System Notification, to notify or perform an action, if certain conditions are met. For Alerts, the chosen Condition must either fall below or surpass a set threshold to trigger an alert.. Note: Alerts only work on folders with a JEM Controller assigned. Add & Configure Alert To add a new alert, click Add Alert at the top of the page and a new menu will pop-up. Edit the general settings. Name the Alert and, if needed, add further information in the box Notes. In the "Folder" box, define in which folder the Alert will be stored. Only users that have access to the chosen folder will have access to the Alert. Click the Conditions tab to Select Device(s) and define the thresholds. Select the specific devices with a help of a DQL string, e.g.: location=kassel To apply multiple conditions, separate each string with a semicolon, e.g.: location=kassel;type=pc.linux Next, define your Thresholds. Choose the value you would like to monitor, with the help of the drop down menu, and enter the values for the lower and upper threshold. Defining the Notifications, is similar to System Notification, but determines the length of the condition prior to generating an alert. Click OK to save the alert. When an alert is Selected, a dialog box pops-up. The options are identical to the System Notification options.Click here to read more on how to Edit Notifications. Alerts Overview After an alert has been added, it will be visible on the Alerts page. This overview displays information for the chosen devices, conditions, actual value or count, the status. 138 of 186 JouleX Energy Manager v24295 Manual The alert status is hilighted in either red for outside of the alert threshold (below or above) or green for within the alert threshold. Maps Maps is a powerful application that enables visualzation of energy usage and savings of all devices on a geographical map. This alows presentation of data in relation to the location of your devices. This is not only useful for administrators to get a better overview of the system, but Geo Map Widget can be used to Export this data to share with other users. If already configured, the map displays the value of the chosen metric, such as the power or the number of powered on devices. Change the displayed metric, or the devices that should be considered in the calculations by defining a DQL, at the top bar of the map app. Add Location Before a location can be set on the map, the Device Location must be defined. To verify your locations,view the Devices overview screen and look for the Locations option in the left navigation bar. To add a Location on the map, click Edit Locations. This activates the Edit Mode. The sidebar on the left lists all locations set in devices. The blue marker to the right of each location indicates whether or not the location has already been placed on the map. In this example, the location Germany is already placed on the map. Clicking a location in the list will enable the yellow marker, which is used to set the coordinates for the location. Simply drag and drop the marker to the desired location. When the yellow marker is placed correctly, click Save in the black editor box at the right top: The position of the location will be saved as a blue box at the chosen position. To delete a location, choose a placed location from the list and click the Delete button in the black editor box. 139 of 186 JouleX Energy Manager v24295 Manual The editor also allows you to define in which folder the location should be stored. The location will only be visible to users that have access to the defined folder. Settings Overview In Settings, there are multiple configuration options for JouleX Energy Manager. Settings can be edited for four main areas of JEM. JEM Controllers, Central Settings, User Management and Administration. List of all setting possibilities JEM Controller Settings Central Settings Overview Folder Assignment System/Network Internet Connection/Proxy Software License Software Updates Energy Prices Timezones TruJoule File Management Device Proxies Mail Settings LDAP Settings Currency Settings User Management User Management Role Management Access Control Management Administration System Monitor My Settings/Password On this page you can change your login password for the JEM Management Console and view the JEM settings. To access the page, click your username in the upper right corner, then click My Settings. Display Theme provides the option to customize the background color of your JEM console; choose between Dark and White. Language Settings provides the option to choose a specific language for the reports of your JEM installation. JEM Controller Management Folder Assignment Define which folders are assigned to the JEM Controller System/Network General controller settings. e.g. renaming the JEM Controller, setting time intervals for device status checks, etc. Internet Connection/Proxy Internet access settings for JEM Controller Software License View & Update software license key for JEM Controller Software Updates Configure automation or manual management of software updates Energy Prices Assign individual energy prices to each location. Locations without energy rates assigned show the Default Energy Rate. Timezones Configure individual location time zone settings TruJoule TruJoule Reporting settings and TruJoule Database Update settings File Management Manage files stored on the server to download logfiles and add or remove asset connector CSV files or scripts. Device Proxies See the list of active device proxies and manage JEMScriptProxies. JEM Controller Settings Overview The image below shows the JEM Controller Overview page. 140 of 186 JouleX Energy Manager v24295 Manual The following table explains the different types of information within the Overview. General Information This field provides general information about the JEM Controller e.g. the name of the controller, the JEM Controller ID, or the expiration date. Status Information Shows the connectivity status of the controller as mentioned earlier in this chapter. Asset Scanner The Asset Scanner Information informs the user of the current state of the scan processing engine and allows you to enabled or disable it. Policy Engine The Policy Engine Information gives you some statistics about your policies, and the powerful tool to activate or deactivate all policies which are enabled. TruJoule Information The TruJoule Information field provides information about the TruJoule version and date of the last update. Easy to read indicators provide at-a-glance status information for the communication between the JEM Controller and the Central Management Server. Communication Status Mouseover Message Description OK OK Connectivity status between controller and central server is OK. WARNING Warning. No event received in the last 60 minutes! No connectivity within the last 60 minutes between controller and central server. ERROR Error. No event received in the last 24 hours! No connectivity for the last 24 hours between this controller and the central server. Folder Assignment Within the Folder Assignment page you can easily define which folders should be managed by the JEM you are on. Assigning a JEM to Folders For assigning a JEM to a folder simply click on the Assign button and chose a folder out of the folder tree by double clicking it. The folderpath now shows up in the table where all assigned folders are listed. Unassigning a JEM from Folders To unassign a JEM from a folder, just highlight the corresponding folder path in the table and click on the Unassign button. Important: Please note that by assigning a JEM to a folder, all subfolders are also effected. System/Network This section covers system specific settings, like logging and networking settings. 141 of 186 JouleX Energy Manager v24295 Manual Name Settings This is where you will customize the name of your JEM Controller. In the example above we entered JEM 1 into this field. Logfile Settings The Logfile Settings allow you to configure the level of information your log file messages should provide. In the pilot phase, we recommend using the DEBUG settings, which provides the most information to simplify troubleshooting of errors. Once your JEM installation is put into the production environment, we recommend adjusting the logfile settings to WARNING, which will only log warnings, errors, and fatal errors. Learn more about the management of Log files The logs events are categorized from TRACE, in which all events are logged, to FATAL, which only logs severe errors. List of Log levels: None No events will be logged TRACE All events will be logged DEBUG Logs events which are important for debugging and above INFO Logs system information events and above WARNING Log warnings (non-critical errors), errors and fatals ERROR Only log critical errors and fatal errors FATAL Only severe errors will be logged Device/Assets JouleX Energy Manager is a network based product which relies on a properly performing network in order to run efficiently. At the same time, JouleX Energy Manager is programmed to make the most efficient use of your network resources. Because polling device states and measuring device power consumption create network traffic, you can optimize the network performance through the following settings: Check Device Status The device status check only polls the device for ON or OFF states. This process is very fast and efficient using ICMP (ping), SNMP, or other proprietary protocols depending on the device type. Measure Device Measuring a device requires more resources than a status check. Depending on the device type, the measuring process includes load based consumption measurement, detailed device querying, or web service calls. Other Network Settings DNS Resolve If the DNS Resolve option is checked, the hostname will be resolved on each status check and the returned IP address will be used as the device URI Wake-on-LAN Directed Broadcast Send Wake-on-LAN packets to the broadcast network address of the client device. Use ICMP fallback By enabling this option, your JEM Controller will also use ICMP protocol to do the device status check, in the event of WMI protocol fails. Advanced You will have the option to choose from from three different Device Access Modes, also known as the Windows Access Method. The dropdown menu enables you to choose from Minimal, Standard or Advanced. Click here for a detailed description.. Optional Settings The Optional Settings are used solely by the JouleX Support team, for analysis and debugging purposes only. They are not available to the administrative or productive use of JouleX Energy Manager. This field is used by the JouleX Support for purposes of analysis and debugging. Internet Connection/Proxy To synchronize TruJoule-Data, and to periodically verify the license, JEM must connect to the JouleX TruJoule and License Servers. This requires an active Internet connection for these JouleX Services. You can find information about the external services and associated web addresses under External Services. If your network requires a proxy server to access the internet, enter the Proxy Server Settings on this page. You can verify the active internet connection by clicking on the Check Connection button. This initiates a validation process to the settings you entered, regardless of Direct Internet connection or a Connection via proxy server. If the settings are correct, you should get this result: If the verification check fails, it may be necessary configure a Proxy Server. You will do so using the full URL syntax, such as proxy:port as shown below. Note that JEM uses SSL secured connections, so this will need to be enabled for your proxy. 142 of 186 JouleX Energy Manager v24295 Manual If your proxy does not require authentication, leave the user/password fields empty. For NTLM authentication within a domain enter the corresponding domain, otherwise leave this field empty. To verify that the proxy works, click on the Check Connection button again. You will still be looking for the same the green check mark icons as the result. Software License Each installation of JouleX Energy Manager requires a valid license to run properly. The license includes information about which features and modules are enabled, how many users are supported and how long the license is valid. To access the License Settings please click on Settings > JEM Controller Management. In the next Step, click on the Edit Settings button of the respective JEM Controller. In the opening page, click on License Settings in the menu on the left. Obtaining a license key You should have received a license key along with the JouleX Energy Manager directly from JouleX or a certified JouleX partner. If you don't have internet connectivity from your JEM installation machine, please contact our technical support regarding a JEM Offline License. After the product activation, please keep the license key safely in your records. If you don't have a license key yet, please contact a JouleX representative: Sales (E-Mail): sales@joulex.net Sales (Phone): +1 (404) 457-4445 Activate JEM with a valid license After a fresh installation of JouleX Energy Manager, you need to activate the product. Click on Activate and enter the license key provided by JouleX to activate the product. Internet connectivity needed The JouleX licensing workflow requires permanent Internet connectivity, since the license information is synchronized with JouleX license database on a regular basis. If you have further questions regarding the licensing workflow, please contact tech support: Technical Support (E-Mail): support@joulex.net Expiration of a license When the license expires, the JouleX Energy Manager will no longer monitor or manage devices. However, you still can access historical data with reporting. Software Updates JouleX Energy Manager supports automated software updates. Using this feature you'll always have the latest software release of JouleX Energy Manager installed in your organization. Options We recommend enabling Automatic Updates, which run in the background and checks for updates daily. If you are only interested in minor updates or hotfixes, check the Hotfixes Only box. In this case the automatic and manual update will only check for hotfixes. Major releases will not be considered. Current Version Displays the currently installed JEM software version. To manually check for updates, click on Check for New Update. Available Updates Once there are software updates available for your installed version, you can review the update package and manually install the update. Depending on the size and features of the software update package, the software update process might shut down the JouleX Energy Manager temporarily for the duration of the update. Energy Prices Under Settings and JEM Controller Management you will find the Energy Prices settings screen. This is where you enter the Energy Price of your locations in kW/Unit of Currency. Please note that the Currency Setting is managed through Central Settings and not within Jem Controller Management. If you run JEM on a global scale, you will need to convert the different currency prices of your locations into the companies accounting currency. JEM comes installed with a Default Energy Rate, please adjust the price and CO2 Emission after the initial start up (by clicking on Edit). As long as you do not add a specific energy rate for a location, the Default Energy Rate will be applied. To add specific locations, click on Add Energy Price Setting, a menu appears, which allows you to choose the location and define the rates. 143 of 186 JouleX Energy Manager v24295 Manual Edit Energy Cost Per Location For every defined location you can individually manage the energy prices and CO2 emissions. Timezones JouleX Energy Manager supports local time zones for time-based policy rules. Using this feature, you can consider the local time zone of a device when executing actions. For simplicity, time zones for devices are derived from the location field and saved per Folder. You can find the Timezone settings within the respective JEM Controller Settings If no time zones are specified, all actions will be executed based on the time zone of the JEM Controller. This is the Default Timezone. Please check your Windows system configuration to verify that this time zone is set correctly. Create Timezones As mentioned above, you can assign one or more locations with a time zone setting. Click Add Timezone Setting to create a new time zone mapping. Later, each device in the given location will be assigned to the specified time zone. TruJoule With TruJoule you can greatly improve the accuracy of your energy measurements. Learn More about TruJoule Using TruJoule, you'll have the following benefits: Energy profile data updates which keeps your reports accurate Provides updates to asset discovery database to allow new device types to be found automatically 144 of 186 JouleX Energy Manager v24295 Manual TruJoule Reporting TruJoule Reporting collects energy consumption relevant data about unknown devices which are not yet in the TruJoule Database and sends it to JouleX for review. Updated energy profiles for these devices will automatically be available through TruJoule Updates. By clicking Download TruJoule Reporting Data the JouleX Energy Manager exports an .xml file containing all devices imported into JEM. The .xml files sent to JouleX will be reviewed and devices that are not listed in TruJoule database will be researched and available within one of the next edata updates. TruJoule Database Updates TruJoule Database Updates automatically downloads the latest energy profile information from JouleX and updates energy consumption data for your devices. Learn more about the TruJoule Database. Device Proxy Tools This page displays all active Device Proxies in the selected JEM Controller. The Device Proxies determine the device types a JEM Controller supports for monitoring & controlling. Under the "Proxy List" tab is a list of active Device Proxies sorted in descending order, based on the priority of each proxy. Click on a proxy to display more information about it. Proxies with "(Script)" text at the end of their name are JEMScriptProxies. Those proxies hold more information than internal proxies and have the option to stop them by clicking the "Kill Proxy" button. The tab "JEMScriptProxes" shows all available JEMScriptProxies. You may enable / disable the proxies by toggling the on / off switch. When there is an error or additonal information about a proxy, a red error icon will be displayed to the right of the on / off switch. Mouse over the error icon to get more information. File Management Within the JEM Controller Management, File Management is an easy to use application for file transfers to and from the JEM Controller server without directly accessing the server file system. File Management allows you to download logfiles and add or remove asset connector CSV files or scripts. 145 of 186 JouleX Energy Manager v24295 Manual Download File To download a file, choose the file you would like to download. For example, to review the installation log <cr_installation.log>, navigate to the subfolder <logs> of <root>, select the file, and choose whether to save the file as it is or store in a ZIP-Archive. For ZIP archive, click Download (zip). To download the file as it is, click the Download button. This will open a context menu which provides the option of viewing or saving the file. Upload File To upload a file, go the the menu on the lower part of the page. New scripts can be added to JEM in three simple steps. The example below shows how to upload the JavaScript file my_utils.js to the jemscript directory for use in other JEMScripts. To upload the file, select the target folder first. In this case, it is jemscript Then choose the file to upload by clicking the Choose File button, which will open a pop up file browser. After selecting the file, the filename will be populated next to Choose File button. Click Upload to add the file. 146 of 186 JouleX Energy Manager v24295 Manual After the file has been successfully uploaded, it can be accessed via the target folder you chose during the first step. Miscellaneous Besides the option to Upload and Download files, JEM also provides the ability to Delete or Rename files. If you do not see the file(s) uploaded, click Refresh and the file browser will be updated to reflect the most current data. JEM does not allow manual management of files in all folders. Some folders, such as the logs folder, are not accessible for uploads. Important: Only single files are available for download. Central Settings Overview Within the Central Settings you can edit the more global settings like the Currency Settings. The Central Settings are accessible by clicking the Settings-Tab at the right upper corner of the screen and then clicking Central Settings. Mail Settings Setup e-mail notifications and mail server configuration. LDAP Settings Configure LDAP or Microsoft Active Directory for user authentication Currency Settings Setup the currency that is displayed throughout the whole application. Mail Settings JEM will generate notification emails for fatal system errors, low resources, if the license expires, or when an update has been successfully installed. To enable email notifications, enter the configuration settings of the mail server in your organization and the email addresses of the appropriate recipients. These settings are also used to send Scheduled Favorite Reports or other sources via email. Recipient E-Mail Addresses This is semicolon separated list of email accounts which will receive notification emails. Mail Server Configuration JEM requires an SMTP server (mail server) to send out emails. Enter the hostname or IP address of your network's SMTP server. It is also recommended to add a "sender" email account. If the sender address is empty on the outgoing mail, some mail servers the notification email as SPAM. If your SMTP server requires authentication, you can enter username and password of a valid email account on the mail server. If you want to send the notification via a secure connection check the "Use SSL" option. Note: If you changed the default port for your SMTP Server, just add the port in the SMTP Server field as shown in the screenshot below. JEM offers two distinct options for user authentication: No authentication/Auto discovery No authentication/Auto discovery can be best described as an auto discovery-mechanism. JEM will only apply credentials if necessary, based on the Windows default mailer-functionality from the system-account of the machine JEM is installed on (which equals that computer's account credentials in Active Directory). Otherwise, no authentication is applied. These are default settings and may vary for your particular environment. Username/Password authentication If JEM Central Management Server is running on a machine without predefined email credentials, or you want to use a different mailbox, enter the appropriate SMTP server information and the specific credentials manually into the necessary fields. NOTE: Because the machine name is used to establish the connection to the mail server, the notifications might not work if the name contains special characters (e.g. umlauts) or other characters your mail server does not allow. Notifications JEM will email a notification if one the following events occurs: the amount of devices exceeds the licensed number when the JEM is not licensed when a resource drops below its threshold (see Resource Checking) when an update was successfully installed when the service terminates unexpectedly (e.g. crash, out of memory/disk space) when a new update is available and Notify only was checked when an update is being installed when an update failed In addition to those events this mail configuration is also used for: sending System Notifications, e.g. in Policies or Alerts sending Scheduled Favorite Reports LDAP Settings In the LDAP Settings you easily can configure your LDAP Directory or Microsoft Active Directory for user authentication. Once imported, LDAP users and groups can be used to define access levels to specific Folders within the Access Control Management. To access the LDAP Settings go to Settings > Central Settings. In the left sidebar menu click on LDAP Settings. 147 of 186 JouleX Energy Manager v24295 Manual After you have entered the Domain, Host, Username and Password, JEM automatically suggests an LDAP Search Path. The Search Path is the path to the respective container object of your preferred users and groups within your LDAP directory. You do have the option to change the Search Path manually. To verify the entries you made are valid, click Check Configuration. If there is no error message, it is safe to save your changes. It is possible to specify a port number by appending the number to the host value separated by a colon. When no port is specified 389 is used. If you prefere to use encrypted communication you can enable LDAP over SSL (LDAPS) by checking the corresponding box option. The default port for LDAPS is 636. Important: Once the LDAP Settings are configured correctly, the user credentials are JEM authenticated. Now you can move on with creating ACL Entries for single users or groups in the User Management & Access Control Settings of JEM. With Test Login you can simulate a login of any single user within the LDAP container object. Just type in the Username and Password of the respective user and click on Test. Currency Settings Setting the Central Currency To set the Central Currency, go to Settings, choosing Central Settings from the drop down menu, and click the Currency Settings link. For correct reporting of energy cost, energy savings, and carbon emissions, we recommend entering a currency symbol. Enter the appropriate currency symbol into the Currency field. This currency will be used across JEM reporting, cost and savings calculation, and simulation. All monetary values you enter should be in the chosen given currency. User Management Overview JEM provides the ability to create multiple user accounts with different access levels. Depending on the access level, certain features are enabled or disabled. User This column lists all the created or imported user accounts. Type There are two different types of users. Single users(manually added) and user groups (imported LDAP groups). Authentication The Authentication column gives information whether the user is added manually (local) or imported via ldap. Active Gives information whether a user is active (true) or not (false). User The users admin and system-user are created during the initial installation of your JEM Environment. Both users are linked to the root folder (My Company) with its own roles and permissions. User: admin The user admin comes standard with all permissions. User: system-user The system-user is a virtual user provided only with scripting permissions and a few view permissions. There is no login access with the system-user because it is used by JEM for adjustment purposes for the JouleX Energy Managers. Note: Incorrect changes when configuring the system-user's permissions can bring down your entire JEM System. New Users The User Management also allows manual creation of users. For more Details, scroll down within this chapter. Type There are two different types of users in User Management: user and group. User Users are single users which were either created manually, via the user management, or imported from an LDAP group. Groups User groups can be imported via LDAP, through Access Control Management. A usergroup created in this manner shows group in the type column. Authentication The Authentication column shows whether a user is created manually (local) or imported from a LDAP group (ldap). Active 148 of 186 JouleX Energy Manager v24295 Manual This column indicates whether a user or group is active (true) or inactive (false). Inactive users are not able to connect to the JEM Environment or to make use of their roles and permissions for the respective folders. Add new User The User Management allows you to create User Accounts manually. To do this, click the Add button, which brings you to the User Settings. Enter a username and create a password, then indicate if the user should be active ticking the Active box or leaving it blank. Click on OK to create. The user should show up in the table within the User Management. Role Management Roles and Permissions In the JouleX Energy Manager, a Role is a set of Permissions which can be defined and assigned to Users and Folders. To provide a User with different Permissions for a specific Folder, Roles must be defined. This section explains how to create a custom Role and explains the predefined Roles automatically created during the first installation of JEM. Create a new Role Click Add to create a new Role. From the popup window, edit the Role name and description then define the Permissions for the Role. Click OK button to save the new Role. List of Permissions Global Permissions Important: Global Permissions are only effective when applied to the root folder! JEM Central Management View Configuration View Central Configurations, e.g. Mail Settings Edit Configuration Edit Central Configurations like the Currency Settings Assign JEM Controllers Allows assigning JEM Controllers to folders User & Role Management View Users Sets the view-rights for user related informations within the User & Roles Management Edit Users Edit user related information; like adding new users and setting passwords View Roles Set the view-rights for roles related information within the User & Role Management Edit Roles Edit roles related information like adding new roles and assigning permissions Folder Permissions JEM Controller View JEM Controller Settings View settings like the status of the Software License or Timezones Edit JEM Controller Settings Edit settings like Internet/Proxy Settings or Update-Behavior View Server Info Set view-rights for different Server Informations like the Scanner Information Widget View Log Files View the JEM Controller related Log Files Folders View Folders See the folders on the left folder tree within the UI Edit Folders Edit folders; such as adding new folders, rename folders or assigning JEMs to Folders View Access Control Settings View, but not edit, the Access Control Settings Edit Access Control Settings Edit Access Control Settings, e.g. assigning roles to users and folders Devices / Assets View Devices View Devices within e.g. the Overview or Organization Edit Devices Edit devices, for example adding new devices manually or delete them Execute Devices Actions Execute Devices Actions, e.g. power off, standby or power on View Asset Connectors View Asset Connector related topics Edit Asset Connectors Edit Asset Connector related topics like adding new Asset Connectors Policy View Policy View Policies. Editing functions are greyed out. Edit Policy Edit Policies, for example adding New Policy Rules or editing Time Based Patterns Segments View Segments View the configured segments but not edit Edit Segments Edit Segment related topics, like creating new Segments Alerts View Alerts View but not to edit the Alerts set Edit Alerts Set or edit Alerts Notifications 149 of 186 JouleX Energy Manager v24295 Manual View Notifications View but not to configure the notification options Edit Notifications Configure the notification options Maps View Locations View the added Locations within the Maps App Edit Locations Edit or add new locations to the Map TruJoule Editor View Custom Consumption View consumption values of devices within the TruJoule Editor framework Edit Custom Consumption Edit TruJoule Editor related options, like manually setting the consumption values for devices Scripting Enable JEMScript Enable the execution of JEMScripts Enable Password Support Enable reading of the passwords in plaintext using the dget strings within the JEMScript framework View Custom JEMScripts View only rights for all JEMScript related topics Edit Custom JEMScripts Save or create new JEMScripts API Enable API Access API is a special access level to authorize external software calling the JEM Web Services Applications Employee Portal View and to edit the Employee Portal related options Edit Roles Edit all Roles by highlighting the respective Role and then clicking on the Edit button. Delete Roles Within Role Management, it is possible to delete all Roles except the admin Role and the system Role. Important: Deleting a Role also deletes all related ACL-Entries in the Access Control Management. Copy Roles Copying of Roles can be very useful when creating templates or backups of Roles. E.g. if you want to create a new Role that differs from an existing Role only slightly, copy the existing Role, make the necessary changes and save it under a new name. Access Control Management After Users (User Management) and Roles (Role Management) have been created, assign them to Folders in the Access Control Management. The screenshot below displays the overview page of Access Control Management. The table holds all ACL entries. E.g. Bob has an editor role for the Folder Atlanta. To create a new ACL entry, click the Add button. Open the User Selection by clicking theSelect button. In User Selection,define the type of User, Local Users or LDAP Users/Groups. If the User was created in the local User Management, click Local User to locate or search. To select user groups or individual users from the LDAP directory, click LDAP Users/Groups. Confirm selection by clicking OK. Next, choose the Role. Click Please select a role and select a predefined or custom created Role. Choose the Folder by clicking the drop down menu beside Folder, which opens the folder tree. Click the appropriate Folder and confirm the selection by clicking OK. Note: The Role and its Permissions will be inherited by all related subfolders! 150 of 186 JouleX Energy Manager v24295 Manual Enter a short description of the new ACL entry and finalize the configuration by clicking the OK button. The ACL entry will now be displayed in the Access Control Management table. Further Informations about the Role Based Access: Role Based Access Overview Folders Roles and Permissions Administration Administration overview for JEM Central Management Server System Monitor Advanced information about message queue status, uptime, memory usage and other central management server metrics. System Monitor The System Monitor provides administrators a tool to check the current state of JEM Central Management Server, as well as allowing performance tuning and database optimization. Overview The Overview page displays the current status of various components of the JEM Central Management Server, connected JEM Controllers, database statistics, and message queue status. Message Queue This page displays information about the performance of the Message Queue, e.g. the number of messages waiting to be processed, and other general information. Administrators have sufficient permissions to change the Message Queue (Rabbit MQ) Password, if needed. Learn More: Message Queue Central Server Shows current status and memory usage of the Central Server component. You can determine the Log Level for this function. Learn More: Central Server Application Processor Shows current status and memory usage of the Reporting Processor component. You can determine the Log Level for this function. JEM offers the option to restart the Processor component and perform benchmarks to test the capabilities of your system configuration. Learn More: Data Processor Database This page is divided into three different sections; Database Information, which displays information about the database size and other generalized information; Current Data, which reports in reference to each granularity level the available time period; and Maintenance settings, where the archive settings are defined. Learn More: Database To learn more about the Management Console, Review the following 5 Typical Administrative Tasks. 5 Typical Administrative Tasks Task 1: General Overview To better understand how the central server and controller communication is performing, the System Monitor is the best place to start. It displays data for the different services involved, their performance, utilization, and usage of resources. This is also a good place to start when troubleshooting any technical difficulties. Task 2: Check Health Status of Services Both the Reporting and Processing pages provide a view into the current Health Status of their associated services. Task 3: Change Log Levels The various JEM components generate different log files, including Central Server log and Processor log. A high log level (INFO) is recommended for day to day operations, as every event does not normally need to be logged. During testing, troubleshooting, or other case by case situations, it is useful to switch to a lower log level (DEBUG or TRACE) to get detailed insight into the operations performed by the Central Server or the Processor components. Click on Set Level to change the log level. Task 4: Change Database Settings By default, JEM does not perform any maintenance operations for the database, which means that no data is deleted or archived. To maintain a reasonably sized database, we recommend going to the Database page and defining the Maintenance settings which best apply to your environment. Task 5: Troubleshooting When technical difficulties arise, you can access the System Monitor charts for possible areas to begin troubleshooting. More than simply visibility into possible issues, JEM has some integrated features to actively support problem solving. If the system indicates that the Processor might be the error source (e.g. a large number of Ready and Unacknowledged Message and no Throughput), click on the Restart Processor button on the Processor page to see if this fixes the issue. If data in the reports is missing, data aggregation may not be 151 of 186 JouleX Energy Manager v24295 Manual Processor button on the Processor page to see if this fixes the issue. If data in the reports is missing, data aggregation may not be functioning properly. To begin the troubleshooting process by resetting the data aggregation, click on the Force Aggregation now button. Floorplan Overview The floorplan app is a powerful visualization tool. This application provides the ability to visualize different values, such as temperature, utilization, or power consumption values provided by JEM and display them as an overlay for your floorplan. This means always having access to a perfect overview of all the devices and their consumption values within your building. In addition, you can define alarm thresholds which, when exceeded, display a warning symbol on the floorplan. Additional Information How to create an interactive floorplan Floorplan Widget Floorplan Overview Step by step instructions for creating a floorplan with the JEM Floorplan App that explains the different settings and overlays. Step 1: Navigate to the graph tool Within the JEM Management Console navigate to Apps > Floor Plans and click the Options tab in the upper left corner. Click Edit to access the graph editor. Step 2: Upload a Floorplan Backround Image From the Graph Editor, click File > Backround Image. Browse for a raw floorplan image of your choice and click upload. All common image file types are supported (e.g. png, jpg, gif). Step 3: Draw Property Shapes To add a shape to your floorplan, drag and drop it from the shape icons on the left. Every shape provided by the Graph Editor has its own property settings, accessible by right-clicking the respective shape/cell. 152 of 186 JouleX Energy Manager v24295 Manual Step 4: Setting Properties Cell Properties Tab Text Enter the text to be displayed on the shape/cell. This text field will be replaced when entering a value to the Data Field line. ID, URI or DQL** This field is required to link a cell with devices. Data Field Choose from any Device Data Field. Entries made here will overwrite the entries made in the Text field. Alarm Threshold Define a function for setting a threshold, such as power > 20 (matches if at least one devices has power > 20). A yellow exclamation mark is displayed at the bottom right corner of a shape/cell if an Alarm Threshold has exceeded.(See screenshot below) Overlay Behavior The Overlay Behavior affects the coloring behavior of shapes/cells when choosing an overlay within the Floorplan App. Setting this option to No Overlay means that the cells are not going to be colorized by a chosen overlay. Note: Mousing over the value fields of the properties dialog displays additional value possibilities/functions, such as summarizing values for more than one device. Overlays Tab The Overlays tab within the properties dialog allows the preview of the different overlays while operating in the graph editor framework. Options Tab Step 5: Save and Exit To save a floorplan and make it accessible from the Floorplan App go to File > Save as, choose a name, folder and a description an click OK. Then, from the Floorplan App click Options > Open... and select the appropriate floorplan. Folders Overview With folders, JouleX Energy Manager offers the perfect way to map the JEM environment to correspond with your corporate structure. The folder structure also forms the basis for the subsequent Role Based Access, meaning that a well-organized folder structure will reduce your permissions based workload within the JEM deployment. Note that you can also store objects like dashboards or floorplans in the folders. How to create a folder When starting JEM for the first time a root folder will be created during the Initial Setup Wizard. In our example this root folder is called My Company. To create a subfolder first click on the button in the upper left corner of your JEM Management Console what expands the folder sidebar. Right-click on your root folder and choose Create Folder. A new window opens where you can enter different values like Name or Description. Click on OK to save the settings and close the window. The new folder now appears in the folder sidebar. Additional Information Use of folders in the context of role based access Folder Assignment Folder Mapping Folders and Policies Supported Browsers The following browsers have been tested with, and are supported by, the JouleX Energy Manager Management Console: Google Chrome (24 and higher) Mozilla Firefox (3.5 and higher) Apple Safari (5, 5.1) 153 of 186 JouleX Energy Manager v24295 Manual Apple Safari (5, 5.1) Internet Explorer (7 and higher) Opera (10 and higher) The following browsers are not supported at all: Opera Mini (4.x, 6.x) Notes 1. Working with Internet Explorer 8 you may experience poor performance. This issue will result in a pop-up window indicating slow performance. 2. When using a version of Internet Explorer prior to Internet Explorer 9, you may experience very poor performance and a "Script is not responding" warning. Please do not abort the script execution to ensure that the UI is working correctly. If you experience issues with the Internet Explorer, please install Internet Explorer 9 or any other of other browser options listed above. About You will find the About section at Help in the navigation bar, the following gives you an overview and explanation of About. General Information General Information The subsection General Information, informs you about the currently installed JEM version on your server. Furthermore it indicates if the simulation mode is On or Off, the later one could be activated in the settings.xml. Device Usage Monitored Devices gives you the information about the number of devices which are currently monitored by JEM. License Status The section License Status shows the name of the registered customer, furthermore Licensed informs you if your version of JEM is successfully registered or not (true or false). Other information provided are the number of Licensed Devices, and therewith the maximum of devices your JEM could manage. In addition you could review your Activation Key, the Expiration Day of your license, the date of the Last Update of JEM and your License Type. Technical Information The information provided on this site are important for the technical support, please have them at hand when you call JouleX. Besides the JEM Version number and the Installation Date, this section provides important information about the system JEM in installed on, namely the Operating System and the Operating System Version. Furthermore the Operating System Service Pack, the architecture of the Processor, the installed version of .NET Framework, the amount of Free RAM in megabyte and the Physical Ram in megabyte. Please note, that the version number of some products is not coherent to the product name, e.g. Microsoft Windows 7 Professional N and Microsoft Windows NT 6.1.7601 Service Pack 1. Support Request If the the settings for E-Mail Notifications are set correctly, this feature allows you to directly communicate with the JouleX Support team. Fill out the boxes and and with a click on Send an email will be delivered to the Support Team. The context dialog allows you to define a support Category, please select Support Request, Feature Request or Bug Report with the help of the drop down menu. Furthermore you have to add an Response email, a Subject, and the Message text. Last but not least, you could untick the box, to Include technical data, per default this option is set, as it sends important Technical Information along which will help our Support Team to better track down your issue. Contact If you want to contact JouleX, Inc. please check for the details. For any questions concerning our products, services, the contract, your license, etc. please make use of the details provided in the General Inquires. Any technical issues could be solved best if you contact our engineers through the Technical Support or the Support Request which is explained above. Copyright For copyrights please see the Copyright section. Advanced Topics This section provides detailed information on advanced topics in the JouleX Energy Manager Help Files. Scripting - Use scripting to create highly dynamic energy management rules Deployment Scenarios and Components - Which components are installed with JEM? JEM Maintenance Guidelines - Important information for day-to-day operations JouleX Energy Manager Deployment JEM can be deployed either in single server or in multi server mode. Single server deployments are common for smaller scale installations (up to 30.000 devices or endpoints) and the central management server and the controller typically reside on the same server (physical or virtual). For larger installations, JEM can be deployed across multiple sites using a single central management server and multiple distributed controllers. Each component will require a physical or virtual server for installation. Partitioning of JEM Controllers depends on network segments, geography or other business requirements. With multi site deployment it is possible to host the central management server at the corporate HQ and have JEM Controllers distributed among subsidiaries. In this scenario, local controllers have low-latency access to the local network to perform device scanning and measurement and send consolidated device data to the central management server using the message queue. Learn More: JouleX Energy Manager Architecture Single-Server Deployment The simplest form of deployment is the Single-Server Deployment. All components are installed on a single server and scales up to 30.000 device or endpoints accessible in a single network. This is the default installation method provided by the installation software (See Installation). Learn more: Single-Server Deployment Multi-Server Deployment For larger deployments, JEM can be deployed across multiple servers for scale, performance and network reach. The Multi-Server Deployment is a little more complex to install but will be supported by the installation software as well. Learn more: Multi-Server Deployment The figure below shows a sample multi-site deployment with three controllers and a single central management server. 154 of 186 JouleX Energy Manager v24295 Manual Single-Server Deployment This is the simplest form of deploying JEM. All components (JEM Central Management Server, JEM Controller, Message Queue, Database, Web Server, etc.) are installed on a single Windows machine (physical server or virtual machine). This is recommended for smaller installations, pilots and trials to get familiar with JEM. For deployment, use the standard installer (See Installation) to install and configure all components. Upgrading As mentioned before, this deployment works well up to 30.000 devices or endpoints, depending on the hardware configuration of the server. For scaling and distributed deployment, it is possible to add additional JEM Controllers to this deployment which are connected to the existing central server. It is also possible to disable the JEM Controller which was installed for the single-server deployment entirely and only use external controllers. Each controller requires access to the central message queue server for communication with the central server. This can be configured during the installation or afterwards. See JEM Controller Learn More: Installation of additional JEM Controllers Multi-Server Deployment Deploying JEM across multiple servers is recommended when more than 50.000 devices or endpoints should be managed. This requires one instance of the JEM Central Management Server and one or more JEM Controller instances. Each JEM Controller can handle up to 50.000 devices or endpoints on a selected, high-performance hardware server. Aseparate JEM Central Management Server can scale up to 500.000 devices on a selected, high-performance hardware server. For larger installations, please contact JouleX support. Multi-Server deployment also enables implementation of JEM for geographically distributed sites or isolated networks. Individual JEM Controllers can be deployed across your organization, preferably close to the endpoints in the network, so that network traffic, latency and scanning times are optimized. JEM Controllers can also be deployed in isolated networks and only require a single connection with the central server via the message queue. Multi-Server Installation Install JEM Central Management Server on a high-performance hardware server. 1) See Installation for details and only install the JEM Central Management Server Take note of port settings for the Message Queue server. Install JEM Controller on a separate server. 2) Follow the instructions in JEM Controller Installation and use the message queue settings from step 1) to configure the communication between the JEM Controller and the central server. Also make sure firewall and network settings are correct. New JEM Controllers will automatically appear in the JEM Management Console under Settings > JEM Controllers and need to be assigned to a folder. 3) Repeat step 2) for multiple JEM Controllers Other Deployment Options Standalone Message Queue Server The integrated Message Queue can also be deployed on a standalone physical or virtual server. The JEM installer does not support this out of the box but RabbitMQ can be downloaded directly from the website http://www.rabbitmq.org. After installation on a standalone server, the respective ports on the Central Management Server and JEM Controllers need to be adjusted. JEM Central Management Server JEM Central Management Server is the core component of a JouleX Energy Manager installation. It hosts the central database for user management, device data, reporting data, communicates with one ore more JEM Controllers in a distributed network and hosts the web server for the management console. This section covers configuration files, network ports and other advanced topics which will be helpful for maintenance, system tuning and troubleshooting. 155 of 186 JouleX Energy Manager v24295 Manual Central Server Application The Central Server application provides core functionality of the JouleX Energy Manager platform and acts as the central component in a distributed deployment with one or more JEM Controllers. Typical tasks of the Central Server Application include: Coordinate centralized device and object database Centralized policy management Role-based access control Web Services Interface Provide services for Management Console UI Installation Directory %JEM_INSTALL_DIR%/WebApp Configuration Files %JEM_INSTALL_DIR%/WebApp/conf/application.conf and %JEM_INSTALL_DIR%/WebApp/conf/jemprocessor.conf Ports (9090) Opens port 9090 per default. This port is used for internal local communication from web server to the Central Server Application. To change the Central Server Application port, open %JEM_INSTALL_DIR%/WebApp/conf/application.conf and edit the the following lines: http.port = 9090 Note: Changes will also require modifications of web server configuration file to point to the new port (replace 9090 with the new port). Reporting Data Processor The Reporting Data Processor is a separate component within the JEM Central Management Server and provides the following functionality: Report data collection and aggregation Historical and real-time reports Installation Directory %JEM_INSTALL_DIR%/WebApp Configuration Files %JEM_INSTALL_DIR%/WebApp/conf/jemprocessor.conf Ports (9091) Opens port 9091 per default. This port is only used for internal local communication between Central Server Application and the Report Data Processor and the System Watcher. Message Queue (RabbitMQ) The message queue is the main communication protocol between JEM Central Management Server and JEM Controllers. More Information about RabbitMQ: www.rabbitmq.com Installation Directory RabbitMQ is installed in this directory: %JEM_INSTALL_DIR%/RabbitMQ/ Configuration File %JEM_INSTALL_DIR%/RabbitMQ/data/rabbitmq.conf Message Queue Ports & Protocols (Ports: SSL 5672/AMPQ 5673) The default installation configures the Message Queue with the following port settings: Port 5672 for SSL Port 5673 for AMPQ In case you need to change the ports, please edit the RabbitMQ configuration (see above). NOTE: If you change the ports and/or server address of the Message Queue/RabbitMQ, you also need to change port settings for JEM Central Management Server and all JEM Controllers. Please review the following configuration files: Central Configuration File for Central Server Application and Report Data Processor JEM Controller Configuration for JEM Controller RabbitMQ Administration Console (Port: 55672) RabbitMQ comes with a separate, pre-installed administration console for administration and debugging purposes. Normally (using default installation ports), the administration console can be accessed at the following address: http://localhost:55672 This assumes localhost is the server where the Message Queue/RabbitMQ is installed. The port is the default port. In case you have changed the port during installation time, please use that port. Web Server (Apache) JEM Central Management Server comes with an integrated web server (Apache) to serve the management console user interface (JEM UI), API, reporting data and much more. Apache is a commonly used, industry grade secure web server and is installed automatically along with JEM Central Management Server. More Information about Apache: www.apache.org Per default, the installation configures ports for HTTP as well as HTTPS for secure login. Installation Directory Apache web server is installed in this directory: %JEM_INSTALL_DIR%/apache/ Configuration File %JEM_INSTALL_DIR%/apache/conf/httpd.conf Ports (HTTPS/SSL 443, HTTP 8080) To change the web server port, open %JEM_INSTALL_DIR%/apache/conf/httpd.conf and modify the following lines: Listen 8080 Listen 443 The first line indicates the port which the rules should apply to, the following lines (the rule) defines that the port is an SSL secured one. <VirtualHost *:443> ServerName localhost DocumentRoot "%JEM_INSTALL_DIR%/apache/htdocs" SSLEngine On SSLCertificateFile conf/cert.pem SSLCertificateKeyFile conf/key.pem <IfModule !mpm_netware_module> <IfModule !mpm_winnt_module> User daemon Group daemon </IfModule> </IfModule> The first line indicates the port which the rule should apply to, the following lines (the rule) define that it is a non-secured port. <VirtualHost *:8080> ServerName localhost DocumentRoot "%JEM_INSTALL_DIR%/apache/htdocs" 156 of 186 JouleX Energy Manager v24295 Manual <IfModule !mpm_netware_module> <IfModule !mpm_winnt_module> User daemon Group daemon </IfModule> </IfModule> Database Server (PostgreSQL) JEM Central Management Server comes with an integrated database server (PostgreSQL) to store device data, policy and system configuration, reporting data and much more. PostgreSQL is an industry grade, reliable database server which is installed automatically along with JEM Central Management Server. More Information about PostgreSQL: www.postgresql.org Installation Directory %JEM_INSTALL_DIR%/pgsql/ Configuration File %JEM_INSTALL_DIR%/pgsql/data/pgsql.conf Ports (5432) Default port for PostgreSQL server is 5432 which can be changed at installation time using the installation wizard. To change the port or authentication settings afterwards, edit the PostgreSQL configuration file. #-----------------------------------------------------------------------------# CONNECTIONS AND AUTHENTICATION #-----------------------------------------------------------------------------port = 5432 Configuration File (jemprocessor.conf) The central configuration file contains multiple configuration options for the JEM Central Management Server, for instance ports, message queue endpoints, backup options and much more. It is used by both, Central Server Application and Report Data Processor. File Location The configuration file is located at: %JEM_INSTALL_DIR%/conf/jemprocessor.conf Database Settings Configuration options for the database. Needs to be changed if changes are made to the database configuration. jdbc.host=localhost jdbc.port=5432 jdbc.username=postgres jdbc.password=***** Message Queue Settings queue.hostname = 127.0.0.1 queue.port = 5672 queue.management.port = 55672 JEM Central Management Server Port List JEM Central Management Server installs a number of components and additional services. Many of the ports listed below can be defined during installation time. This list provides an overview of the ports and network addresses opened or used by the central server and how to make modifications. Ports Opened by JEM Central Management Server Application Ports Protocol Encryption Usage/Notes Central Server Application 9090 localhost only HTTP No Internal local communication between central management application and web server. Report Data Processor 9091 localhost only HTTP No Internal local communication. 5672 (Default) AMQP SSL RabbitMQ message queue server, e.g. for communication with JEM Controllers 5673 (Default) AMQP NO Unused by JEM, mandatory by RabbitMQ 55672 (Default) HTTP Web Server (Apache) 443 (Default) HTTPS SSL Web server for browser-based Management Console, API, Reporting Database Server (PostgreSQL) 5432 (Default) localhost only TCP No JEM automatically installs a PostgreSQL database server. Message Queue Server (RabbitMQ) NO RabbitMQ Administration Console Outbound Connections JEM Central Management Server uses the following outbound connections for standard functionality. Outbound communication with JEM Controllers is done via the message queue and is not listed below as no extra ports will be opened. Destination Destination Ports Protocol Encryption Usage/Notes Mail Server 443/TCP HTTPS Yes Depending on the email settings, JEM will send emails for notifications and alerts to the mail server provided in the configuration. Mail Configuration LDAP / Active Directory 1443/TCP LDAP Yes Depending on the User Management settings, JEM will connect to the Active Directory or LDAP servers to read user and user groups LDAP Settings JEM Controller The JEM Controller is an essential component within a JouleX Energy Manager deployment. It is responsible for direct device communication within the network, device and asset import, power measurement, policy control, and much more. Each JEM deployment requires a minimum of one JEM Controller connected to the Central Management Server. Larger deployments typically have multiple JEM Controllers deployed across different sites or locations, or even multiple controllers in the same location for large networks. This section covers configuration files, network ports, and other advanced topics helpful for maintenance, system tuning, and troubleshooting. JEM Controller Files and Directories Base Directory If you didn't make any changes during the installation, JEM Controller is installed in the default programs directory C:\Program Files\JouleX Energy Manager\service (on 64-bit systems: C:\Program Files (x86)\JouleX Energy Manager\service) . All important files and sub directories are created inside this directory. Some help articles refer to this directory with: %JEM_INSTALL_DIR%\service . Example: C:\Program Files\JouleX Energy Manager\service All the directories and files mentioned below can be found in the directory %JEM_INSTALL_DIR%/service. Important Directories Directory Description /acfiles Contains import files for the CSV asset connector. /commands Location for commands and executable which are safe to be called from JEMScript via runCommand (see Function: runCommand) This directory is not created by default and must be created by the administrator. /edata TruJoule Database signatures. /jemupdate Used by the jemupdate tool for Software Updates (including logs). /script Internal scripts used by JEM Controller to perform remote operations. NOTE: Do not modify Joulex files as they will be overwritten with a software update. /PluginProxies Additional device proxies as JEMScript Plugins NOTE: Do not modify Joulex files as they will be overwritten with a software update. /sshkeys SSH private keys used to execute SSH commands on devices (see SSH: Configuration) /jemscript Contains JEMScript files which can be loaded via JEMScript function include(). Per default, JEM comes with a number of predefined scripts in this folder which can be used. Also, user defined and custom scripts can be placed in this folder. NOTE: Do not modify Joulex files as they will be overwritten with a software update. 157 of 186 JouleX Energy Manager v24295 Manual Important Files File Description settings.xml Configuration file for JEM Controller lic.dat License information file for JEM Controller External Services The JEM Controller uses various external services for license management, automated software updates, TruJoule Energy Profile updates, JouleX Mobile support, and many more functions. Internet Connectivity All external services require internet connectivity by the JEM Controller. It is important to note that there is a difference between internet connectivity from your desktop PC and internet connectivity from the JEM Controller to the internet. In some cases you will need to take extra steps to allow internet access for the JEM Controller. This depends primarily on the security policies of your network. For details see Internet Connection/Proxy List of external web services used by JEM Controller JouleX TruJoule Server The TruJoule server is used to keep the energy profile database up to date (see TruJoule). The external service address is https://trujoule.joulex.net. You will need to make sure this is not blocked by a proxy or firewall. JouleX Software Update Server JEM supports automated software updates so your installation is always current version (see Software Updates). The external service address is https://update.joulex.net. Make sure this is not blocked by a proxy or firewall. JouleX Mobile Server In order to work with external mobile applications like the JouleX Mobile App, JEM requires an external proxy server to bridge the connection between your local JEM installation and an external mobile application. The external service address is https://mjem.joulex.net. Make sure this is not blocked by a proxy or firewall. JouleX License Server The JouleX Energy Manager License server holds information about your licensed JEM installation (expiration date, number of devices, etc.). JEM verifies your license once daily. If the license server can not be reached, JEM will continue to work for 7 days before it is automatically disabled. The registered administrator will receive email notification, in the event that your license server is unable to be reached. (see License). The external service address is https://license.joulex.net. Make sure this is not blocked by a proxy or firewall. Note: In the event that these service addresses are blocked by a firewall or proxy server, please contact your network administrator and review this document: JEM Controller Port List. Configuration File / Settings.xml This page will give you an overview about the values and options in %JEM_INSTALL_DIR%\service\settings.xml. The settings.xml file allows the configuration of global options for the JEM Controller. Whenever this file is changed, the controller service has to be restarted for the settings to take effect. <installDate>dd.mm.yyyy</installDate> Installation date of the JouleX Energy Manager <jemId>********************************</jemId> Internal identifier for this particular JEM instance. Important for clustering nad mobile support. Please do not change. <simulationMode>true</simulationMode> Possible values are true or false If Simulation Mode is enabled (true), no real actions or executions will be taken on devices, this can be used to try out policies or manual action. If you want to learn more about the Simulation Mode, please see here <logLevel>TRACE</logLevel> Possible values are NONE, TRACE, DEBUG, INFO, WARNING, ERROR and FATAL controls the amount of log-information. Corresponds to Log Level in System/Network on the JEM Controller Management page. <LogCleanCycle>0</LogCleanCycle> (in days) Controls the amount of time after which the logfiles are deleted. Possible values are 0 = Never, 7 = 1 week, ..., 21 = 3 weeks, 31 = 1 month, ..., 186 = 6 months. Corresponds to Delete Logfiles after in System/Network on the JEM Controller Management page. <logDir>%JEM_INSTALL_DIR%\logs\</logDir> Specifies the directory for the JouleX Energy Manager logfiles jemService_yyyy.mm.dd.log <polltimeout>3000</polltimeout> (in milliseconds) Controls the amount of time for the scanner to wait for a TCP/IP-connect <SSHProxyTimeout>60000</SSHProxyTimeout> (in milliseconds) The amount of time to wait for a SSH connect - for Linux/Mac or any SSH proxy device <snmptimeout>2000</snmptimeout> (in milliseconds) The amount of time to wait for response of a snmp connection. <snmpretries>2</snmpretries> The maximum number of snmp connection attempts. <scannerThreadCount>10</scannerThreadCount> (integer, whole number must be >=1) The maximum number of parallel scans. <scannerThreadTimeout>10</scannerThreadTimeout> (in minutes) Maximum amount of time to wait for response from a single device when scanning. <deviceScanIntervall>1</deviceScanIntervall> (in minutes) The interval in which to scan/refresh device status, e.g. the system will try to scan each device every deviceScanIntervall minutes <pendingScannerThreadCount>5</pendingScannerThreadCount> (integer, whole number must be >=1) The maximum number of parallel pending scans - these are the scans executed to verify the device is really powered-off or -on after a JEM policy executed a state-change <executionThreadCount>10</executionThreadCount> (integer, whole number must be >=1) The maximum number of parallel executions - when a JEM Policy for example powers off 100.000 devices the amount of devices that can be processed in parallel <ruleEngineExecutionIntervall>30</ruleEngineExecutionIntervall> (in seconds) The interval in which to execute the rule-engine, e.g. every ruleEngineExecutionIntervall seconds the Rule Engine will be processed. The Rule Engine will not be processed if there are still Devices in Execution <dnsResolveEnabled>true</dnsResolveEnabled> Possible values are false or true If this is "true" JEM will try to resolve the hostname to a current IP address every time the device is accessed, this is necessary for mobileenvironments or if devices are switched from LAN to WLAN often. Corresponds to the DNS Resolve checkbox in System/Network on the JEM Controller Management page. <deviceMeasureIntervall>1</deviceMeasureIntervall> (in minutes) The interval in which to measure sensor data from devices Corresponds to Measure Device every: in System/Network on the JEM Controller Management page. <deviceInfoRefreshInterval>0</deviceInfoRefreshInterval> (in minutes) The interval in which to refresh Device-Info such as vendor, type, cpu and other hardware information 158 of 186 JouleX Energy Manager v24295 Manual <AssetConnectorStatusRefreshInterval>30</AssetConnectorStatusRefreshInterval> (in minutes) The interval in which to refresh the status-cache if a Asset Connector is used that provides the status of devices. E.g. Enterasys NetSight or Cisco CallManager have their own polling/verification mechanisms to check if devices are alive, so we can poll this Information from them instead of polling each device <blur>********************************</blur> Encryption key for all passwords in database or config-file, this must be kept secret, and should not be given to anybody. <blurOld>********************************</blurOld> Old encryption key used for pre-4.0 passwords. <sshScanPort>22</sshScanPort> (tcp-port) Port used to scan a SSH device. <siemensPhonePort>8085</siemensPhonePort> (tcp-port) All tcp-port settings control the default TCP port to poll to verify if devices with a WMI, SSH or voip.siemens proxy are on- or off-line. <wolPort>9</wolPort> (udp-port) The UDP port used to Wake-on-LAN magic packets. <accessMode>advanced</accessMode> Possible values are minimal, standard or advanced. Defines the access mode for Windows devices. For more information see Device Access Modes. <DirectedBroadcastEnabled>false</DirectedBroadcastEnabled> Possible values are true or false. To turn on PC-Devices Wake-on-LAN can be used, there are two Methods for Wake-on-lan, the most common one is to send the Magic Packet via Directed Broadcast, the other to send it in a "special" unicast-fashion to DHCP-enabled networks. Corresponds to Wake-on-LAN Directed Broadcast checkbox in System/Network on the JEM Controller Management page. <asyncExecutionThreadCount>0<asyncExecutionThreadCount> Maximum Count of parallel working threads. A value of 0 indicates that the Windows Client Support has not been enabled. When enabling the Windows Client Support, set the Execution Thread count to 10 and enable Windows Client Support with the value true. <asyncExecutionThreadTimeout>10</asyncExecutionThreadTimeout> (in minutes) Maximum amount of time an Execution Thread should take before it times out. <enableWindowsClientSupport>false</enableWindowsClientSupport> Possible values: true, false. The JouleX Windows Helper (JWH) is a slim service for Windows client machines to communicate with JouleX Energy Manager (JEM) in environments where the native and agentless Windows Management Instrumentation (WMI) / Windows Remote Management (WinRM) access is not feasible, e.g. due to security objections or limitation within the network infrastructure. If the Joulex Windows Helper is used, set the Execution Thread count to 10 and enable the Windows Client Support with the value true. <allowedPublicWakeUpMethod>all</allowedPublicWakeUpMethod> Values are all (wake by IP, Hostname or token), token (wake only by token) and disabled (default value), which activates user based device Wake-Up, see Wake-Up. <deviceQuarantineTimeout>7200</deviceQuarantineTimeout> The quarantine time frame in seconds which defines how long an error is considered, see Quarantine. A value of 0 means the quarantine feature is disabled. <maxDeviceQuarantineErrors>3</maxDeviceQuarantineErrors> The number of errors in the time frame (set by deviceQuarantineTimeout) before the device proxy interface is set to quarantine, see Quarantine. <useICMPFallback>true</useICMPFallback> Possible values: true, false By setting this value to true, your JEM Controller will also use ICMP protocol to do the device status check, in the event of WMI protocol fails. Message Queue Settings <mqHost>localhost</mqHost> <mqPort>5672</mqPort> <mqUsername>*****</mqUsername> <mqPassword>--*********-**--******--****************************************************************--</mqPassword> <mqVHost>joulex</mqVHost> <mqExchange>jemMessageBroker_a3efe696b07a44f9ae84ef5b5f096e0c</mqExchange> Message Queue Settings to access the Message Queue Handler. Database Settings <dbsettings> <host>localhost</host> <port>5432</port> <username>********</username> <password>-x******************************************************************************************x-</password> <database>emdata</database> <deleteOlderThan>32</deleteOlderThan> <maintenanceStartTime>00:30</maintenanceStartTime> <maintenanceKeepStatusData>true</maintenanceKeepStatusData> </dbsettings> Database Settings to access the PostgreSQL database External Services Learn more about: External Services <internetConnectionType>1</internetConnectionType> Options for JEM to access the internet 0 No connection allowed 1 Direct connection 2 Via proxy server <proxy /> <proxyuser /> <proxypass /> <proxydomain /> Proxy-settings, should be configured via the Internet Connection/Proxy dialog on the JEM Controller Management page <licenseServerAddress>https://license.joulex.net/LicenseServer/activate</licenseServerAddress> URL for the JouleX Licensing Server Please do not change. <truJouleServerAddress>https://trujoule.joulex.net/TruJoule/upload</truJouleServerAddress> URL for the JouleX TruJoule Server Please do not change. <truJouleReportingEnabled>true</truJouleServerAddress> Enables the TruJoule Reporting. <updateServerAddress>https://update.joulex.net/UpdateServer/checkUpdate</updateServerAddress> URL for the JouleX Update Server. Please do not change. <mjemUrl>http://mjem.joulex.net/MJemProxy/v1/</mjemUrl> URL for the JouleX Mobile server. Please do not change. Local Folders <databaseDir>C:\Program Files (x86)\Joulex Energy Manager\pgsql\</databaseDir> Folder of the database installation. 159 of 186 JouleX Energy Manager v24295 Manual Please do not change. <jemName>Example-JEM-1</jemName> Here you can change the name of the respective JEM Controller. Corresponds to Name of JEM Controller in System/Network on the JEM Controller Management page. JEM Controller Port List JEM Controller uses a variety of networking ports for different purposes. Ports Opened by JEM Controller Application Ports Protocol Encryption Usage/Notes JEM Controller 8000/TCP localhost only HTTP No Only for internal use See Details PostgreSQL Database Server 5432 (Default) localhost only TCP No Each JEM Controller has a local PostgreSQL server installed. You can change the port for PostgreSQL at %JEM_INSTALL_DIR%/pgsql/data/pgsql.conf See Details Outbound Connections JEM Controller uses the following outbound connections for standard functions. NOTE: In addition, many other ports are being used for device communication. Please refer to the List of Device Ports for more details. Destination Destination Ports Protocol Encryption Usage/Notes Message Queue JEM Central Management Server 5672 SSL Yes Depends on the configuration of the Message Queue endpoint on the central server JouleX Licensing Server 443/TCP HTTPS Yes See Details JouleX TruJoule Server 443/TCP HTTPS Yes See Details JouleX Software Update Server 443/TCP HTTPS Yes See Details JouleX Mobile Server 443/TCP HTTPS Yes See Details Running JEM Controller in Simulation Mode Instead of measuring and power manage real devices, JEM Controller can also run in simulation mode. After installation it might be useful to test JEM functionality before you go live with the energy monitoring and management in your network. The simulation mode is the perfect environment for the trial and error phase of the implementation process. It allows you to integrate real devices, but their management is only simulated. Activating the Simulation Mode To activate the Simulation Mode you have to modify the settings.xml file of the JEM Controller. Please stop the JEM Controller service in Windows Services before making any changes to settings.xml and do not forget to restart the service afterwards. Asset Connectors & Simulation Mode Per default, the Simulation Mode does not change the setting to import Asset Connectors. If you have already defined the Asset Connector import, the controller will keep scanning them on a regular basis. If you want to learn how to Import Devices (add Asset Connectors), please see here. It is the users obligation to verify which Asset Connectors should be included while running on Simulation Mode. If you want to learn how to manage Asset Connectors, please see here. Simulation Capabilities Making use of the Simulation Mode the user has the advantage to create a scenario based on real devices, without taking action on the real device. First of all, the options the user has are limited to the real specification of a device (e.g. a device which only knows ON/OFF as status, cannot be set on HIBERNATE in the simulation mode). Furthermore power data is not real-time but approximated from the database. You can also use Policies, but their effects are only simulated and therefore have no impact on the real device. Switching back to live mode If you want to switch to the live mode, you have to revert the changes in settings.xml. Be aware, that after restarting JEM Controller, all policies will apply as you have defined them before. Therefore it might be useful to turn off all Policies before you switch to the live mode. Introduction to JEMScript The JouleX Energy Manager comes with built-in scripting language called JEMScript. This gives you maximum flexibility for rules, asset import, execution, etc. JEMScript is based on JavaScript and supports most of the standard features. Here is a list of supported features: Loops (do, while, for) Conditional statements (if, switch/case) Functions JavaScript classes (String, Math, Object, Number, Date, Array) Regular expressions Comments // or /* ... */ Unsupported: The following features are unsupported because they are either not applicable for this purpose or they pose a security risk. DOM objects/functions alert function Extended Functionality for JouleX Energy Manager In addition to the standard JavaScript functions, JEMScript provides extended functions to access JEM-specific functions. Access device data like location, consumption, device properties, etc. Learn more about Device Functions Runtime information about consumption, manages devices, stats Learn more about System Functions Access data from asset connectors when importing devices Learn more about Asset Connector Functions Access websites and devices using network protocols Learn more about Networking Functions Create reports in JEMScript Learn more about Reporting Functions Interact with the object store Learn more about how to access the object store Access databases Learn more about how to access a database using ODBC Create custom proxies using JEMScript Learn more about JEMScriptProxies Finally some more functions can be found in the Scripting API reference Have a look at the Scripting API reference Tips and Tricks JavaScript Resources in the web Good JavaScript Overview http://www.w3schools.com/js/default.asp Details on string-operations (used for most JEM Scripting) http://www.w3schools.com/jsref/jsref_obj_string.asp search() vs. indexOf() search does a regex search, and 10.0.73. would be treated as a regex and not a lexical search indexOf does a lexical search (case sensitive) More Information: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/String/search Working with 'null' and 'unknown' values JavaScript values can often be null or unknown. This is especially the case for return values of dget function calls, because a device data field might not even exist for a device. We recommend to use the compact syntax using the || operator as shown in the example below. // get the uri of the device (result might be empty string or null-value) var uri = dget("uri"); if( !uri ) uri = "n/a"; // compact syntax var uri = dget("uri") || "n/a"; Another example reading the power data field: // get the power of the device (result might be null-value) var power = dget("power"); if( !power ) power = 0.0; // compact syntax var power = dget("power") || 0.0; The JEMScript Directory In the installation directory of the JEM Controller there is a directory called jemscript which contains additional scripting files (see here). At least the following 2 files are present: 160 of 186 JouleX Energy Manager v24295 Manual jeminit.js - a file that contains some default functions and classes used in JEMScript snmp.js - the JEMScript SNMP Class. You should not change these files. Detailed information about the functions those files provide can be found in the JEMScript API Reference. The files located in the "jemscript" directory can be included in every JEMScript you create. To include the contents of an external JEMScript file in your script, use the include function. Write your own JEMScript file You may write your own JEMScript files and put them in the jemscript directory to make them available for JEMScripts to include. Every file you put into the directory has to be included using the include function. Exceptions are the jeminit.js and the userinit.js files. Both are included automatically in every JEMScript, so that you can use their contents without calling the include function. The userinit.js file does not exist by default, but you can create it at any time. Example A new file math.js is created, which will be put into the "jemscript" directory. It only contains a simple "add" function, which will be available to a JEMScript, once it is included using the include function. // adds two numbers and returns the result function add(a, b) { return a + b; } A JEMScript using the math.js // use the include function to include math.js // math.js should exist in the "jemscript" directory include('math.js'); // now the add function is available var c = add(2,2); log(c); Device Functions With JEMScript, you have runtime access to a device data fields to read and write their content, change the power state of a device, execute device specific commands and many more features. Device functions at a glance Function Description addDevice Adds a device with a defined set of properties. deleteDevice Deletes a single device. deleteDevices Deletes a set of devices. updateDevice Stores changes made to a device and triggers mappings. deviceToObject Returns a device as JavaScript object. dget Returns the value of a data field from a device. dset Sets the value of a device data field of a device. dexecute Execute a power action on a device. (DEPRECATED use dxSetPowerStatus instead) dxEWSetQuery Set a value for a group of EnergyWise devices dxSetPowerStatusEx Set the device to a certain status with the possibility of a user notification. getCurrentDevice Returns the ID of the current device. dxRunShellScript Runs a shell script on a device. dxSetEWLevelByKeyword Set an EnergyWise level for a group of devices dxSetEWLevel Sets the EnergyWise level for a device. dxSetPerformanceLevel Sets the performance level of a device. dxSetPowerCap Sets a power cap on a device. dxSetPowerStatus Set a device to a certain status. queryDevices Search for devices. releaseFromQuarantine Releases one or more devices from Quarantine with the help of Run JEMScript resolveHostnameFromIP Resolves hostname from a device from the known IP resolveIPFromHostname Resolves IP from a device from the known hostname General remarks for device functions The data field parameter - Using Device Data Fields Some device scripting functions expect a device data field as a parameter. Because this is a string, make sure you quote the field name with double quotes when calling functions like dget or dset. Learn more about Device Data Fields. The id parameter - device identifiers Many device functions have an optional id parameter to specify for which device the function should be performed. For simplicity, this parameter can be omitted if the script is executed within policy or asset connector scripts. In this case, the current device is used implicitly. The id parameter is a JavaScript string data type and represents the unique id of a device (see Devices). Example: Simple dget and dset This example implicitly uses the current device. // get location and business unit from a device var loc = dget("location"); var unit = dget("unit"); // and fill data field "c1" with a special string dset("myfield", loc + "//" + unit); Example: dget and dset Explicitly specify the device for which the scripting functions are executed. // get the device id for the device with the uri:10.1.2.1 var match = queryDevices("uri=10.1.2.1"); if( match.length > 0 ) { var id = match[0]; // get location and business unit from a device var loc = dget("location", id); var unit = dget("unit", id); // and fill data field "c1" with a special string dset("myfield", loc + "//" + unit, id); } Function: addDevice Creates a new device in JEM and stores it in the database. Returns the device id of the newly created device, if the device could be created. Otherwise null is returned. If a device with the same uri already exists in JEM, then that device is updated with this one. Syntax addDevice( object ) Parameters Parameter Type Description object JavaScript object This a JavaScript object which may contain all device data fields, for example: uri, hostname, type (DQL type, e.g. pc.windows), location, unit (Business unit), mac (MAC address). If the object contains an id-property, it will be ignored and a new one will be created for the device. Return Value On success returns the id of the added device. Otherwise returns null. Example addDevice({ uri : "127.0.0.1", type : "pc.windows", location : "Frankfurt, Germany" }); Function: deleteDevice Tries to delete a device. Syntax deleteDevice (uri_or_id) Parameters Parameter Type Description uri_or_id string The uri or the id of the device to delete. Example deleteDevice("127.0.0.1"); Function: deleteDevices Tries to delete multiple devices. 161 of 186 JouleX Energy Manager v24295 Manual Tries to delete multiple devices. Syntax deleteDevices (array) Parameters Parameter Type Description array JavaScript array An array of multiple URIs or IDs of devices to delete. Example deleteDevices(["127.0.0.1", "192.168.2.60"]); Function: deviceToObject Returns a device as JavaScript object. Syntax deviceToObject (uri_or_id) Parameters Parameter Type Description uri_or_id string URI or ID of the device to get. Return Value Returns the device as JavaScript object or null if the device could not be found Example var dev = deviceToObject ("127.0.0.1"); if (dev) { log (dev.location); log (dev.power); } Function: dexecute Execute a power action on a device. NOTE: If this function is deprecated. Please use dxSetPowerStatus instead. Syntax dexecute( action, [opt] id ) Parameters Parameter Type Description action string Action to be performed. Possible values are: "POWER_OFF" - power device off "POWER_ON" - power device on "POWER_SAVE" - enter standby mode "HIBERNATE" - enter hibernate mode id [optional] string Identifier of the device for which the function should be performed. Note: If the id parameter is omitted and the function is called within the context of the policy, the function is performed for the current device processed by the policy. Example var devices = queryDevices("location=Berlin"); for( var i=0; i<devices.length;i++ ) { var d = devices[i]; if( dget("power", d) > 1000.0 ) dexecute("POWER_OFF", d); } Function: dget Returns the value of a data field named datafield from a device. Syntax dget( datafield, [opt] id) Parameters Parameter Type Description datafield string Name of the device data field for which the value should be returned. Make sure the field name is quoted (e.g. "location") id [optional] string Identifier of the device for which the function should be performed. Note: If the id parameter is omitted and the function is called within the context of the policy, the function is performed for the current device processed by the policy. Return Value Returns the desired property of the device or null if not found. Example: Set/create a new data field named "c1" // get location and business unit from a device // and fill data field "c1" with a special string var loc = dget("location"); var unit = dget("unit"); dset("c1", loc + "//" + unit ); Remarks JavaScript values can be null or unknown. This is especially the case for return values of dget, because a device data field might not even exist for a device. // get the uri of the device (result might be empty string or null-value) var uri = dget("uri"); if( !uri ) uri = "n/a"; // compact syntax var uri = dget("uri") || "n/a"; Another example reading the power data field: // get the power of the device (result might be null-value) var power = dget("power"); if( !power ) power = 0.0; // compact syntax var power = dget("power") || 0.0; Function: dset Sets the value of a device data field. Syntax dset( datafield, value, [opt] id ) Parameters Parameter Type Description datafield string Name of the device data field for which should be set. Make sure the field name is quoted (e.g. "location") value string / integer Value which should be set id [optional] string Identifier of the device for which the function should be performed. Note: If the id parameter is omitted and the function is called within the context of the policy, the function is performed for the current device processed by the policy. Example: Set/create a new data field named "c1" // get location and business unit from a device // and fill data field "c1" with a special string var loc = dget("location"); var unit = dget("unit"); dset("c1", loc + "//" + unit ); Function: dxCheckStatus Checks the status of a device and performs a measurement. This function blocks the current execution and waits for completion of the status check. After the function is completed, device data fields like status, power, etc contain the latest measurements. Returns nothing. Syntax dxCheckStatus( [opt] uri_or_id ) Parameters Parameter Type Description 162 of 186 JouleX Energy Manager v24295 Manual Parameter Type uri_or_id [optional] string Description Identifier of the device for which the function should be performed. Note: If the id parameter is omitted and the function is called within the context of the policy, the function is performed for the current device processed by the policy. Function: dxEWSetQuery Afunction to perform and Action to set a value (integer or string) for a specific group (based on the EnergyWise keywords) of devices within a EnergyWise domain. Learn more about Cisco EnergyWise. Syntax dxEWSetQuery( ip, qualifier, action, value) Parameters Parameter Type Description ip string The IP address of the EnergyWise domain (management switch) as used for the Cisco EnergyWise Asset Connector qualifier string Dictionary of key value pairs which are used to filter the devices of your choice, e.g: "name", "keyword", "role" action string Action to be performed, e.g: "setpowerlevel", "setname", "setkeywords", "setimportance", "setrole" value integer or string Value to be set, e.g: EnergyWise Level, Keywords or Name Example Set all phones with an importance of 60 and managed by the switch with the IP 10.0.4.7 to EnergyWise level 2. dxEWSetQuery("10.0.4.7", {"keyword":"phone","importance":60}, "setpowerlevel", 2) Remarks The new power level will show up after JEM has successfully checked the status of the device and not immediately after the function has been executed. Other Actions performed will not be recognized by the system till the Asset Scanner is performed for the next time. Function: dxRunShellScript Sends a device specific script command (VBScript, bash, etc.) to a device and executes it immediately. Syntax dxRunShellScript( script, [opt] id ) Parameters Parameter Type Description script string Script content to be executed on the device. Depending on the device type, the script can be a Windows VB Script, a Linux shell script or similar. NOTE: This script is NOT a JEMScript, it's an device and operating system dependent script! id [optional] string Identifier of the device for which the function should be performed. Note: If the id parameter is omitted and the function is called within the context of the policy, the function is performed for the current device processed by the policy. Example In order to shut down a device, we can run the following script: // Example for Windows: dxRunShellScript("set oShell = CreateObject(\"WScript.Shell\")\r\n oShell.exec(\"shutdown.exe -t 0 -s\")") // Example for Linux: dxRunShellScript("shutdown now") Function: dxSetEWLevel Set the EnergyWise level for a device. Learn more about Cisco EnergyWise. Syntax dxSetEWLevel( level, [opt] id ) Parameters Parameter Type Description level integer EnergyWise level to use for the device. Possible numeric values are 0, 1, ... 10. id [optional] string Identifier of the device for which the function should be performed. Note: If the ID parameter is omitted and the function is called within the context of the policy, the function is performed for the current device processed by the policy. Example: Set EnergyWise Level Set all phones in Office1 to EnergyWise level 0 (power off). var devices = queryDevices("location='Office1' and type='voip.cisco'"); for( var i=0; i<devices.length;i++ ) { var d = devices[i]; dxSetEWLevel(0, d); } Function: dxSetEWLevelByKeyword A function to set the EnergyWise level for a specific group (based on the EnergyWise keywords) of devices within a EnergyWise domain. Learn more about Cisco EnergyWise. Syntax dxSetEWLevelByKeyword ( ip, keyword, level) Parameters Parameter Type Description ip string The IP address of the EnergyWise domain (management switch) as used for the Cisco EnergyWise Asset Connector keyword string Key value which is to be used as a filter, based on the EnergyWise keywords level integer EnergyWise Level Example Set all phones managed by the switch with the IP 10.0.4.7 to EnergyWise level 10. dxSetEWLevelByKeyword("10.0.4.7", "phone", 10) Remarks The new power level will show up after JEM has successfully checked the status of the device and not immediately after the function has been executed. Function: dxSetPerformanceLevel Enables Performance Level for a device. When a device is in Performance Level mode, JEM will set CPU's performance to either low, hight and adaptive. Performance Level is supported by a number of devices types. Learn more about Performance Level. Syntax dxSetPerformanceLevel( level, [opt] id ) Parameters Parameter Type Description level string Action to be performed. Possible values are: "high" - maximum performance of the device, e.g. CPU speed max "adaptive" - enabled CPU or device internal adaptive CPU speed settings "low" - slowest performance of the device, e.g. CPU speed minimum id [optional] string Identifier of the device for which the function should be performed. Note: If the ID parameter is omitted and the function is called within the context of the policy, the function is performed for the current device processed by the policy. Example: Set Performance Level Set all devices in a rack to the lowest performance level. var devices = queryDevices("rack=DC1//Rack1"); for( var i=0; i<devices.length;i++ ) { var d = devices[i]; dxSetPerformanceLevel("low", d); } 163 of 186 JouleX Energy Manager v24295 Manual Function: dxSetPowerCap Enables Power Capping for a device. When a device is in power capping mode, JEM will make best efforts to limit the power demand to the specified cap value on average. It is not guaranteed that the power demand will always be below the cap value. Power Capping is supported by a number of devices types. Learn more about power capping. Syntax dxSetPowerCap( cap, [opt] id ) Parameters Parameter Type Description cap integer Numeric value (in Watt) at which the power demand of the device should be capped. Set cap to zero (0) to reset the Power Capping feature. id [optional] string Identifier of the device for which the function should be performed. Note: If the ID parameter is omitted and the function is called within the context of the policy, the function is performed for the current device processed by the policy. Example: Set Power Cap Set Power Cap to 200W for each device in Rack1 in DC1. var devices = queryDevices("rack=DC1//Rack1"); for( var i=0; i<devices.length;i++ ) { var d = devices[i]; dxSetPowerCap(200, d); } Example: Reset Power Cap Reset Power Cap for each device in Rack1 in DC1. Devices will consume their original power. var devices = queryDevices("rack=DC1//Rack1"); for( var i=0; i<devices.length;i++ ) { var d = devices[i]; dxSetPowerCap(0, d); } Function: dxSetPowerStatus Set a device to a certain status. Syntax dxSetPowerStatus( status, [opt] id ) Parameters Parameter Type Description status string Status to be set. Possible values are: "OFF" - power device off "ON" - power device on "STANDBY" - enter standby mode "HIBERNATE" - enter hibernate mode id [optional] string Identifier of the device for which the function should be performed. Note: If the ID parameter is omitted and the function is called within the context of the policy, the function is performed for the current device processed by the policy. Example var devices = queryDevices("location=Berlin"); for( var i=0; i<devices.length;i++ ) { var d = devices[i]; if( dget("power", d) > 1000.0 ) dxSetPowerStatus("OFF", d); } Function: dxSetPowerStatusEx Set a device to a certain status with the possibility to issue a user notification. Syntax dxSetPowerStatusEx( status, message, timeout, [opt] id ) Parameters Parameter Type Description status string Status to be set. Possible values are: "OFF" - power device off "ON" - power device on "STANDBY" - enter standby mode "HIBERNATE" - enter hibernate mode message string The message to be shown in the user notification dialog on the target device. timeout integer The amount of time in seconds the notification will be shown before the status will be applied. id [optional] string Identifier of the device for which the function should be performed. Note: If the ID parameter is omitted and the function is called within the context of the policy, the function is performed for the current device processed by the policy. Example var devices = queryDevices("location=Berlin"); for( var i=0; i<devices.length;i++ ) { var d = devices[i]; if( dget("power", d) > 1000.0 ) dxSetPowerStatusEx("OFF", "Please press OK to cancel the shutdown", 5 * 60, d); } Function: getCurrentDevice Returns the id for the current device being processed. Returns null if called outside policy or asset connector scripting. Syntax var id = getCurrentDevice( ) Parameters None. Example: Check for current device var id = getCurrentDevice(); if( id ) { syslog("Current device id:" + id); } Remarks Instead of calling getCurrentDevice() you can also access the variable named ID which always contains the id of the current device. if( ID ) { syslog("Current device id:" + ID); } Some functions (dset, dget) implicitly use the current device as a parameter. The semantics of the function calls are identical when passing the id of the current device. var u1 = dget("uri") var u2 = dget("uri", ID); var u3 = dget("uri", getCurrentDevice()); var equal = (u1 == u2 && u2 == u3); syslog("All the same:" + equal); // OUTPUT All the same:true Function: queryDevices Search for devices matching a query. The query is specified using the DQL - Device Query Language. Returns a list of device ids which match the query. Syntax var array = queryDevices( query, [opt] sortfield ) Parameters Parameter Type Description query string The query is specified using the DQL - Device Query Language. sortfield [optional] string The device data field to sort the devices by. Return Value Returns a JavaScript array which contains the IDs of devices matching the given DQL query. Never returns null. Example: Aggregated Power 164 of 186 JouleX Energy Manager v24295 Manual var list = queryDevices("location='Berlin'"); var result = "", uri, power, totalpower = 0; for( var i=0; i<list.length;i++ ) { d = list[i]; uri = dget("uri", d) || "(unknown)"; power = dget("power", d) || 0; totalpower += power; result += "URI:"+uri+", Power:" + power + "\n"; } result = "Total Power :"+ totalpower + "\n" + result; result; // OUTPUT Total Power :2809.1 URI:10.56.205.249, Power:0 URI:10.55.10.124, Power:26.1 URI:10.56.211.229, Power:0 URI:10.57.10.43, Power:3.5 ... more ... Function: releaseFromQuarantine() Releases a device from Quarantine. Syntax releaseFromQuarantine() Parameters None. Function: resolveHostnameFromIP Returns the hostname of device if the IP address is given. Syntax resolveHostnameFromIP (IP) Parameters Parameter Type Description IP string Device IP Return Value Returns the hostname for the IP address or an empty string if not found. Example: Set value for data field hostname // resolve hostname from a device with the help of the given IP // and fill data field "hostname" var gethostname = resolveHostnameFromIP('192.168.100.100); dset("hostname", gethostname ); Function: resolveIPFromHostname Returns the IP address of a device if hostname is given. Syntax resolveIPFromHostname (hostname) Parameters Parameter Type Description hostname string Device hostname Return Value Returns the IP address for the hostname or an empty string if not found. Example: Set value for data field URI // resolve IP from a device with the help of the given hostname // and fill data field "URI" var getip = resolveIPFromHostname('myhostname'); dset("URI", getip ); Function: updateDevice Stores changes made to a device so that they are persistent. Calling updateDevice triggers the Device Templates, Protected Devices Config, Location Mapping Config, etc. and processes it on the device. When the device data changed, then an update is sent to the Central Server as well. Syntax updateDevice( [opt] uri_or_id ) Parameters Parameter Type Description uri_or_id [optional] string URI or ID of the device to update. If not given, then the device currently processed in the scripting context is used. Example var devices = queryDevices("uri=127.0.0.1"); if (devices.length > 0) { // change location to Kassel dset("location", "Kassel", devices[0]); // trigger location mapping on device after location changed updateDevice(devices[0]); } System Functions With JEMScript you have runtime access to many of the applications' data fields. For example, you can retrieve values from data fields using the JavaScript function sysget. Or you can set fields to specific values using the JavaScript function sysset. Function Description sysget Returns the value of system variable. sysset Sets a system variable to a given value. syslog Writes a message to the log file. setPowerPrice Dynamically set utility rates for a location. getPowerPrice Get utility rates for a location. runCommand Executes an external shell command. runCommandEx Executes an external shell command and returns exitcode, stdout and stderr. include Include an external JavaScript file in your JEMScript. Function: getPowerPrice Returns the energy price for a specific location. Syntax getPowerPrice(location) Parameters Parameter Type Description location string Location for which the energy price should be retrieved. Return Value Returns the energy prices as number or -1 on error Example var price = getPowerPrice("Berlin"); setPowerPrice("Madrid", price*0.9); // 90% Function: include Includes an external JavaScript file into a JEMScript to import code and functions. Use this functions at the beginning of your JEMScript to include external script files. Location of external scripts External script files to be included need to be stored on the JEM Controller in the jemscript directory (see here) %JEM_INSTALL_DIR%\service\jemscript You can write your own JEMScript files and store them in the jemscript directory and then can reuse code in other JEMScipts Syntax include( filename ) 165 of 186 JouleX Energy Manager v24295 Manual Parameters Parameter Type Description filename string Name of the file to include, e.g. snmp.js Remarks For better performance, some JEMScripts cache the included files and do not reload them for every execution. For example, policy scripts (in conditions and actions) are only loaded if the policy was modified and included files will only be loaded at this time. Therefore it might be neccessary to update the policy to refresh internal caches. Example // import the Snmp JEMScript class to a JEMScript include('snmp.js'); // loads %JEM_INSTALL_DIR%\service\jemscript\snmp.js // now you can create a Snmp object var snmp = new Snmp(); Function: runCommand Execute an external shell command running locally at the server. Use this function with caution, because it executes code at operating system level on the server where JouleX Energy Manager is running. For security reasons, the shell commands to be executed (.bat, .exe) must be located inside a %JEM_INSTALL_DIR%\service\commands directory at the server (see Files and Folders) Syntax runCommand(command, arguments, timeoutMs) Parameters Parameter Type Description command string Name of the shell command to be executed on the server. The command must not contain any relative path specifications (/ or \). arguments string This command line arguments will be passed when the command is started. timeoutMs integer The timeout in milliseconds the policy will wait for this command to finish (default: 60000). Return Value The exitcode of the command or -1 when it failed or the timeout exceeded. Example: Send SMS to admin when a device draws more than 1000 Watts This example requires a Windows batch file named sendsms.bat to be present in the commands directory of the JEM installation. The SMS sending batch file accepts two parameters, the phone number and a message. var adminPhone = "+12345678900"; if( dget("power") > 1000 ) { var msg = dget("uri") + " is drawing more than 1000 Watts"; runCommand("sendsms.bat", "\"" + adminPhone + " " + msg + "\"" ); } // OUTPUT - The following command is executed ... sendsms.bat +12345678900 "10.1.3.1 is drawing more than 1000 Watts" Function: runCommandEx Execute an external shell command running locally at the server. Use this function with caution, because it executes code at operating system level on the server where JouleX Energy Manager is running. For security reasons, the shell commands to be executed (.bat, .exe) must be located inside a %JEM_INSTALL_DIR%\service\commands directory at the server (see Files and Folders) Syntax runCommandEx(command, arguments, timeoutMs) Parameters Parameter Type Description command string Name of the shell command to be executed on the server. The command must not contain any relative path specifications (/ or \). arguments string This command line arguments will be passed when the command is started. timeoutMs integer The timeout in milliseconds the policy will wait for this command to finish (default: 60000). Return Value Returns JSObject which contains exitcode stdout and stderr. The exitcode of the command or -1 when it failed or the timeout exceeded. Example: Send SMS to admin when a device draws more than 1000 Watts This example requires a Windows batch file named sendsms.bat to be present in the commands directory of the JEM installation. The SMS sending batch file accepts two parameters, the phone number and a message. var adminPhone = "+12345678900"; if( dget("power") > 1000 ) { var msg = dget("uri") + " is drawing more than 1000 Watts"; var res = runCommandEx("sendsms.bat", "\"" + adminPhone + " " + msg + "\"" ); if( res["exitcode"] ==-1) { log(res["stderr"]); } } // OUTPUT - The following command is executed ... sendsms.bat +12345678900 "10.1.3.1 is drawing more than 1000 Watts" Function: setPowerPrice Set energy price for a specific location. Syntax setPowerPrice(location,price) Parameters Parameter Type Description location string Location for which the energy price should be set. price integer Energy price for one kWh in the system currency. Example setPowerPrice("Berlin", 0.17); Function: sysget Returns the current value of a system variable. Syntax value = sysget(name) Parameters Parameter Type name string Description Name of the system variable for which the value should be retrieved. Note: This parameter has the data type string. Make sure to use quotes. Return Value Returns the value of the variable or null if not found. Reserved variables available for sysget Beside the variable names below, you use arbitrary variable names to store user defined information. Variable Name Description "devices.total" The total number of devices managed by the application "devices.on" The total number of devices currently ON "devices.off" The total number of devices currently OFF "power.max" Estimated maximum power consumption if all devices were switched on. This is the sum of the average consumption of all managed devices. "power.current" The aggregated sum of the power consumption of all devices which are currently switched on Example: Get the total number of devices var total = sysget("devices.total"); Function: syslog Writes a log file entry Syntax syslog(message, [opt] loglevel) Parameters Parameter Type Description 166 of 186 JouleX Energy Manager v24295 Manual message string Message to be written into the log file [optional] loglevel string Defines the loglevel for this message. Optional value. Uses "DEBUG" if not specified. Loglevel Values Value Description "DEBUG" Logs on the DEBUG level Default setting if nothing else specified. "INFO" Logs on the INFO level "WARNING" Logs on the WARNING level "ERROR" Logs on the ERROR level To set the Log Level of JEM please see, System/Network in the respective JEM Controller Settings. Example: Write id, uri, and power of a device into logfile var id = dget("id")|| "n/a"; var uri = dget("uri") || "n/a"; var power = dget("power") || 0.0; syslog("DeviceInfo id:" + id + ", uri:" + uri // OUTPUT 2011/02/11 2011/02/11 2011/02/11 2011/02/11 (see logfile) 10:47:01 4352 10:47:01 4352 10:47:01 4352 10:47:01 4352 DEBUG DEBUG DEBUG DEBUG SCRIPT SCRIPT SCRIPT SCRIPT + ", power:" + power DeviceInfo DeviceInfo DeviceInfo DeviceInfo ); // default loglevel is DEBUG id:7c46d82ea4e642469c0ede4f5dfc27ec, id:2484d24a93d04eb4b646d361e141b09a, id:2d489fb19e6b4764abe8042e101f0f71, id:6ae12e146fc4498fb91701ffe47b0260, uri:10.55.10.66, power:2 (RuleMatrix) uri:n/a, power:27.9 (RuleMatrix) uri:10.64.54.58, power:16.2 (RuleMatrix) uri:10.57.10.95, power:2.9 (RuleMatrix) Function: sysset Sets a system variable to a given value. Values stored in system variables are not persistent and will be reset when JEM is restarted. Syntax sysset(name, value) Parameters Parameter Type name string value any Description Name of variable to set Note: This parameter has the data type string. Make sure to use quotes. Value to be set for the system variable. Reserved variable names for sysset Beside the variable names below, you can use arbitrary variable names to store custom information. Variable Name Description "display" Variables starting with the prefix display will automatically be displayed on the JEM dashboard in the System Information widget. Example: Display messages on the dashboard This example finds the device with the biggest power consumption and shows it on the dashboard in the System Information widget. var devices = queryDevices("*"); // get all devices var maxpower = 0, maxid=""; for( var i=0; i<devices.length;i++) { // find max var id = devices[i]; var power = dget("power", id) || 0; if( power > maxpower ) { maxpower = power; maxid=devices[i]; } } if( id ) { // found va uri = dget("uri", id) || "unknown"; // get URI var msg = uri + " => " + maxpower; sysset("display.max", msg); } else { // no max found sysset("display.max", "N/A"); } Asset Connector Functions JEMScript is also supported with Asset Connectors at the time when devices are imported. In order to use scripting support in Asset Connectors effectively, it is important to understand how the asset importing process works. NOTE: Asset Connectors scripting functions are only available when a device is being imported or refreshed inside an asset connector operation. In this case, the Asset Connector first fills the standard data fields for a device. After that (and before the device data is written to the database), the scripting code is executed for every device. The scripting code will typically use acget function to read data from the Asset Connector and then call dset function to write values into the device data fields. You can use any kind of string manipulation functions, regular expression matching, etc. Take full advantage of device data fields to store any information along with a device for later reporting and logging purposes. Function Description acget Returns the value of a data field named fieldname from an Asset Connector. acignore Don't import or refresh this device. Function: acget Returns the value of a field of the current data-record processed by an Asset Connector. Syntax acget( acfield ) Parameters Parameter Type Description acfield string Name of the ac field to retrieve. Make sure the field name is quoted (e.g. "location") Which asset connector fields are supported depends on the Asset Connector. For example, an Active Directory entry for a device might have other data fields than a OpenScape DLS Asset Connector. The following list gives a brief overview of the available data fields for various asset connectors. Active Directory: Asset Connector Fields Depending on your Active Directory structure, different fields are available. Fieldname Description Location Usually refers to the organizational location of a device Example // retrieve the Asset Connectors location data field // and store the location information in the device var loc = acget("Location"); dset("location", loc ); Function: acignore Instructs the Asset Connector to ignore this device for imports and updates during the current Asset Connector run. Syntax acignore( ) Parameters None. Example: Exclude one single hostname var hostname = dget("hostname"); if (hostname == "lab-12-srv01"){ acignore(); } Example: Only import the "Sales" business unit var unit = dget("unit"); if (unit != "Sales") { acignore(); } Networking Functions With JEMScript you may access external resources using HTTP or access devices via SNMP. Basic Functions Function Description ping Tries a ping on a target device. pingCurrentDevice Tries to ping the device currently processed in the scripting context. pollPort Tries to check if a port is open on a given device. udpSend Send data via UDP. 167 of 186 JouleX Energy Manager v24295 Manual udpReceive Receive data via UDP. tcpSend Send data via TCP. tcpReceive Receive data via TCP. HTTP Functions Function Description httpGet Returns contents of a website using the HTTP GET command as a string. httpGetEx Returns contents of a website using the HTTP GET command as an object including the response headers. httpPost Returns contents of a website using the HTTP POST command as a string. httpPostEx Returns contents of a website using the HTTP POST command as an object including the response headers. SNMP Functions Communication via SNMP can be achieved using the SNMP JEMScript class Learn more about using the JEMScript SNMP class Function: ping Tries to ping a target ip address. Syntax ping( ip, [opt] timeout ) Parameters Parameter Type Description ip string The ip address of the target device. The device does not have to exist inside of the JEM. timeout [optional] integer A number in milliseconds which is used as timeout for the ping. Defaults to 2000. Return Value Returns true if target could be pinged and false otherwise Example var isReachable = ping("192.168.2.1"); if (isReachable) { log("Ping was successful."); } else { log("Ping failed!"); } Function: pingCurrentDevice Tries to ping the device which is currently processed in scripting context. Syntax pingCurrentDevice( [opt] timeout ) Parameters Parameter Type Description timeout [optional] integer A number in milliseconds which is used as timeout for the ping. Defaults to 2000. Return Value Returns true if the device was pingable and false otherwise Example var isReachable = pingCurrentDevice(); if (isReachable) { log("Ping was successful."); } else { log("Ping failed!"); } Function: pollPort Tries to do a TCP connect on the target port of the target device. Syntax pollPort( uri, port, [opt] timeout ) Parameters Parameter Type Description uri string The uri of the target device. The device must exist inside of the JEM. port integer The port number to try to connect to. timeout [optional] integer A number in milliseconds which is used as timeout for the port check. Defaults to 2000. Return Value Returns true if the target port is reachable and false otherwise Example var port80Free = ping("192.168.2.1", 80); if (port80Free) { log("Port 80 seems to be free."); } else { log("Could not connect to port 80."); } Function: httpGet (http_get) Does a HTTP request using the GET method on a specific uri. Syntax httpGet( config ) Parameters Parameter config Type Description JavaScript object This is an object which contains all necessary information to do the request. The following properties can be set. {string} url - Required. This property specifies the url, e.g. "http://www.joulex.net". You may also add request variables to the end of the url, e.g. "http://www.google.de?q=joulex&hl=de". If you do not to specify a protocol in the uri (e.g. http or https) http will be used as default. {string} [opt] username - If the target website required authentication, you have to set the username {string} [opt] password - If the target website required authentication, you have to set the password {int} [opt] timeout - a number which indicates the time in seconds to wait for a response of the request {object} [opt] headers - an object which contains header names and values to set for the request e.g.: { "Accept" : "text/plain" } Return Value This function returns the response as string or null on error. The function may throw an exception. Example // this outputs the contents of www.joulex.net to the system messages log. var config = { url : "http://www.joulex.net", timeout : 4 }; // use try..catch to handle errors try { var result = httpGet(config); log(result); } catch (e) { log(e); } You may also read the contents of a file: var textfile = { url : "http://www.someurl.com/somefile.txt", }; try { var result = httpGet(textfile); log(result); } catch (e) { log(e); } Function: httpPost (http_post) 168 of 186 JouleX Energy Manager v24295 Manual Does a HTTP request using the POST method on a specific uri. Syntax httpPost( config ) Parameters Parameter config type Description JavaScript object This is an object which contains all necessary information to do the request. The following properties can be set: {string} url - Required. This property specifies the url, e.g. "http://www.joulex.net". You may also add request variables to the end of the url, e.g. "http://www.google.de?q=joulex&hl=de". If you do not to specify a protocol in the uri (e.g. http or https) http will be used as default. {string} [opt] content - any textual content to send with the request, e.g. JSON or simple string {string} [opt] contentType - a string that describes the content type of the content property, e.g. "text/json". This property is required if the content property is set. {string} [opt] username - If the target website required authentication, you have to set the username {string} [opt] password - If the target website required authentication, you have to set the password {int} [opt] timeout - a number which indicates the time in seconds to wait for a response of the request {object} [opt] headers - an object which contains header names and values to set for the request e.g.: { "Accept" : "text/plain" } Return Value This function returns the response as string or null on error. The function may throw an exception. Example // this outputs the contents of www.joulex.net to the system messages log. // The request sends the json data set in the property 'content' to the target website. var config = { url : "http://www.joulex.net", content : '{ "greeting" : "Hello!" }', contentType : "text/json", timeout : 4 }; try { var result = httpPost(config); log(result); } catch (e) { log(e); } The SNMP Scripting Class JEMScript allows you to access devices using the SNMP protocol. Using the SNMP class slightly differs from the way a function is called. This page describes how to use the SNMP JEMScript class. You can find detailed information about all functions of the SNMP class in the Scripting API documentation. Prerequisites In order to use the SNMP class you have to include the file snmp.js in your JEMScript. Insert the following line at the top of your script: include('snmp.js'); Syntax 1. The easiest way to create a new SNMP object is by not providing any configuration parameters. In this case, SNMP will be initialized by using the SNMP extended properties of the device, which currently processed in the scripting context: var snmp = new Snmp(); 2. The following command creates a new SNMP object using a config object as parameter: var config = { targetIp : "192.168.178.50", community: "private" }; var snmp = new Snmp( config ); 3. A new SNMP object can also be initialized using the ID or URI of a device. Please be aware that, in order to make this work, the target device must have been configured for using SNMP. var snmp = new Snmp( "192.168.2.112" ); You may also initialize SNMP by using the static create function of that class. Usage equals the examples above: var snmp = Snmp.create(); var config = { targetIp : "192.168.178.50", community: "private" }; var snmp = Snmp.create(config); var snmp = Snmp.create( "192.168.2.112" ); The create method will never throw any exception. Exceptions that occur during the creation of the SNMP object will be caught and logged to JEM's log file. Parameters Parameter config device_id Type Description JavaScript object This is an object which contains all necessary information to create a new SNMP object. The following properties can be set: {string} [opt] targetIp - This property specifies the ip address or hostname of the target device. Defaults to 127.0.0.1 {int} [opt] port - sets the SNMP port the target device listens to. Defaults to 161. {int} [opt] trapPort - sets the SNMP port the target device listens for incoming traps. Defaults to 162. {int} [opt] snmpVersion - a number which indicates the protocol version to use. Valid values are 1, 2 and 3. Defaults to 1. {string} [opt] community - sets the SNMP community to use. Defaults to "public". {int} [opt] maxGetBulkEntries - Specifies the maximum amount of entries to retrieve when doing a SNMP GetBulk command. Defaults to 10. {string} [opt] username - Specifies username when using SNMPv3 {string} [opt] authType - Specifies authentication algorithm when using SNMPv3 (MD5, SHA1) {string} [opt] authPassword - Specifies authentication password when using SNMPv3 {string} [opt] privType - Specifies encryption algorithm when using SNMPv3 (AES128, AES192, AES256, DES or TripleDES) {string} [opt] privPassword - Specifies encryption password when using SNMPv3 string The ID or URI of a specific device. ID and URI of a device can be retrieved using various methods. Examples are: use the dget("id") / dget("uri") function, which returns the id / uri of a device currently processed. use the global ID variable which contains the ID of a device currently processed. Of course you can also use any ID or URI without using dget(), but the device which has that URI or ID has to exist in JEM. SNMP can only be configured using a device id / uri if the target device has SNMP properties set in its extended properties. Return Value When creating an SNMP object either null is returned, if the creation failed, or an object is returned. The object can be used to execute SNMP commands, e.g. GET, GETBULK, WALK, GETNEXT. The return values of those commands depend on the SNMP functions called. Examples will be given below. Examples Output system information // This example creates a SNMP object and calls it getSystemInfo() method, which returns an array of strings containing data of the // .iso.org.dod.internet.mgmt.mib-2.system OID. // use try..catch to handle errors during SNMP operations include('snmp.js'); var snmp = null; try { snmp = new Snmp(); var result = snmp.getSystemInfo(); if (result) { for (var i = 0; i < result.length; ++i) { log(result[i]); } } } catch (e) { log(e); } finally { if (snmp) snmp.close(); } Get the value of an OID // Gets the value of the sysDescription OID. Uses the URI of localhost to initialize SNMP. include('snmp.js'); var snmp = null; try { snmp = new Snmp("127.0.0.1"); // using the GET command var result = snmp.get("1.3.6.1.2.1.1.1.0"); 169 of 186 JouleX Energy Manager v24295 Manual var result = snmp.get("1.3.6.1.2.1.1.1.0"); if (result) { log(result.oid + " = " + result.value); } // you may also use the getValue() function, which returns the value directly log(snmp.getValue("1.3.6.1.2.1.1.1.0")); } catch (e) { log(e); } finally { if (snmp) snmp.close(); } Set the value of an OID // Sets the value of the sysLocation OID. Uses a config object to initialize SNMP. include('snmp.js'); var config = { targetIp : "192.168.1.70", port : 16001, trapPort : 16002 }; var snmp = null; try { snmp = new Snmp(config); // SNMP SET is implemented using various set() methods, e.g. setString() snmp.setString("1.3.6.1.2.1.1.6.0", "Kassel, Germany"); // check if it was set log(snmp.getValue("1.3.6.1.2.1.1.6.0")); } catch (e) { log(e); } finally { if (snmp) snmp.close(); } Function: httpGetEx Does a HTTP request using the GET method on a specific uri and returns an object including the response and the response headers. Syntax httpGetEx( config ) Parameters Parameter config Type Description JavaScript object This is an object which contains all necessary information to do the request. The following properties can be set. {string} url - Required. This property specifies the url, e.g. "http://www.joulex.net". You may also add request variables to the end of the url, e.g. "http://www.google.de?q=joulex&hl=de". If you do not to specify a protocol in the uri (e.g. http or https) http will be used as default. {string} [opt] username - If the target website required authentication, you have to set the username {string} [opt] password - If the target website required authentication, you have to set the password {int} [opt] timeout - a number which indicates the time in seconds to wait for a response of the request {object} [opt] headers - an object which contains header names and values to set for the request e.g.: { "Accept" : "text/plain" } Return Value This function returns null, when the config parameter is not an URL string or a config object. Returns an object with the following values: {string}ProtocolVersion - HTTP Protocol Version of the response {string}ResponseUri - URI that responded to the request {string}Server - Name of the server that responded to the request {number}StatusCode - HTTP status code of the response {string}StatusDescription - HTTP status describing of the response {object}Headers - Object which contains the HTTP response headers {string}Response - Response body Example // this outputs the contents of www.joulex.net to the system messages log. var config = { url : "http://www.joulex.net", timeout : 4 }; // use try..catch to handle errors try { var result = httpGetEx(config); log(result.StatusCode + " " + result.StatusDescription); log(result.Headers.Content-Type) log(result.Response); } catch (e) { log(e); } You may also read the contents of a file: var textfile = { url : "http://www.someurl.com/somefile.txt", }; try { var result = httpGetEx(textfile); if(result.StatusCode == 200) log(result); else log("Failed to get file: " + result.StatusDescription) } catch (e) { log(e); } Function: httpPostEx Does a HTTP request using the POST method on a specific uri and returns an object including the response and the response headers. Syntax httpPostEx( config ) Parameters Parameter config type Description JavaScript object This is an object which contains all necessary information to do the request. The following properties can be set: {string} url - Required. This property specifies the url, e.g. "http://www.joulex.net". You may also add request variables to the end of the url, e.g. "http://www.google.de?q=joulex&hl=de". If you do not to specify a protocol in the uri (e.g. http or https) http will be used as default. {string} [opt] content - any textual content to send with the request, e.g. JSON or simple string {string} [opt] contentType - a string that describes the content type of the content property, e.g. "text/json". This property is required if the content property is set. {string} [opt] username - If the target website required authentication, you have to set the username {string} [opt] password - If the target website required authentication, you have to set the password {int} [opt] timeout - a number which indicates the time in seconds to wait for a response of the request {object} [opt] headers - an object which contains header names and values to set for the request e.g.: { "Accept" : "text/plain" } Return Value This function returns null, when the config parameter is not an URL string or a config object. Returns an object with the following values: {string}ProtocolVersion - HTTP Protocol Version of the response {string}ResponseUri - URI that responded to the request {string}Server - Name of the server that responded to the request {number}StatusCode - HTTP status code of the response {string}StatusDescription - HTTP status describing of the response {object}Headers - Object which contains the HTTP response headers {string}Response - Response body Example // this outputs the contents of www.joulex.net to the system messages log. // The request sends the json data set in the property 'content' to the target website. var config = { url : "http://www.joulex.net", content : '{ "greeting" : "Hello!" }', contentType : "text/json", timeout : 4 }; try { var result = httpPostEx(config); log(result.StatusCode + " " + result.StatusDescription); log(result.Headers.Content-Type) log(result.Response); } catch (e) { log(e); 170 of 186 JouleX Energy Manager v24295 Manual } Function: tcpReceive Receive data using TCP. Syntax tcpReceive( config, callback, [opt] cb_scope ) Parameters Parameter Type Description config JavaScript object This is an object which contains all necessary information to do the request. The following properties can be set. {number} port - Required. The port on which to listen. {number} [opt] receiveBufferSize - Specifies the amount of bytes to receive at max as response (max. 512 Kb). Defaults to 512 Bytes. {string} [opt] bindIP - Defines the ip address to locally bind to. Defaults to 0.0.0.0 {string} [opt] contentType - Defines the expected content type (string, array, double, integer or boolean). Defaults to array. {string} [opt] encoding - You may specify the encoding of the data to be sent (e.g. UTF-8). Defaults to ASCII. {number|string} [opt] timeout - Defines the timeout in milliseconds to wait until this function returns. Setting it to the string "infinite" disables timeout. Defaults to 30000. {function} [opt] cancelWhen - Specifies a function that returns a bool. If true is returned then listening is stopped. Use to stop listening for example when no timeout is used. {function} [opt] onError - Specifies a function which is executed when an error occurs. The function has one argument, which contains the error message. callback Function The function to execute when data is received. Has 2 arguments: 1. The received data as expected content type 2. An object which contains information about the connection, e.g. host and port of the client the data was received from. cb_scope JavaScript object This object defines the scope of the callback. Example 1 var receiveConfig = { port : 5555 }; // wait to receive data on port 5555; timeout after 30 seconds tcpReceive(receiveConfig, function(data, client) { log(data); }); // this also works for returning the received data: var d = null; // wait to receive data on port 5555; timeout after 30 seconds tcpReceive(receiveConfig, function(data, client) { d = data; }); log(d); Function: tcpSend Send data using TCP and optionally receive a response. Syntax tcpSend( config, data, [opt] callback, [opt] cb_scope ) Parameters Parameter Type Description This is an object which contains all necessary information to do the request. The following properties can be set. {string} host - Required. This property specifies the hostname or ip address of the endpoint the data should be sent to. {number} port - Required. {string} [opt] encoding - You may specify the encoding of the data to be sent and received (e.g. UTF-8). Only important for strings. Defaults to ASCII. {function} [opt] onError - Specifies a function which is executed when an error occurs. The function has one argument, which contains the error message. config JavaScript object data String|Array|Number|Boolean This is the data to be sent. It can be a string, an array, a number or a boolean value. callback Function When this function is specified, tcpSend assumes you want to wait for a response from the remote host. This function is executed when data is received. Has 2 arguments: 1. The received data as expected content type 2. An object which contains information about the connection, e.g. host and port of the client the data was received from. cb_scope JavaScript object This object defines the scope of the callback. When waiting for a response see tcpReceive for additional config parameters. Example // Send data to a host and await a response as a string. Wait at max for 5 seconds. var config = { host : "10.0.1.121", port : 6666, receiveContentType : "string", receiveBufferSize : 1024, timeout : 5000 }; tcpSend(config, "Ping!", function(data, client) { if (data) log("received " + data + " from " + client.host + ":" + client.port); }); Function: udpReceive Receive data using UDP. Syntax udpReceive( config, [opt] callback, [opt] cb_scope ) Parameters Parameter Type Description config JavaScript object This is an object which contains all necessary information to do the request. The following properties can be set. {number} port - Required. The port on which to listen. {string} [opt] bindIP - Defines the ip address to locally bind to. Defaults to 0.0.0.0 {string} [opt] contentType - Defines the expected content type (string, array, double, integer or boolean). Defaults to array. {string} [opt] encoding - You may specify the encoding of the data to be sent (e.g. UTF-8). Defaults to ASCII. {number|string} [opt] timeout - Defines the timeout in milliseconds to wait until this function returns. Setting it to the string "infinite" disables timeout. Defaults to 30000. {function} [opt] cancelWhen - Specifies a function that returns a bool. If true is returned then listening is stopped. Use to stop listening for example when no timeout is used. {function} [opt] onError - Specifies a function which is executed when an error occurs. The function has one argument, which contains the error message. callback Function The function to execute when data is received. Has 2 arguments: 1. The received data as expected content type 2. An object which contains information about the connection, e.g. host and port of the client the data was received from. cb_scope JavaScript object This object defines the scope of the callback. Example 1 var receiveConfig = { port : 5555 }; // wait to receive data on port 5555; timeout after 30 seconds udpReceive(receiveConfig, function(data, client) { log(data); }); // this also works for returning data: var d = null; udpReceive(receiveConfig, function(data, client) { d = data; }); log(d); Function: udpSend Send data using UDP and optionally wait for a response from the remote host. Syntax udpSend( config, data, [opt] callback, [opt] cb_scope ) 171 of 186 JouleX Energy Manager v24295 Manual Parameters Parameter Type Description This is an object which contains all necessary information to do the request. The following properties can be set. {string} host - Required. This property specifies the hostname or ip address of the endpoint the data should be sent to. {number} port - Required. {string} [opt] encoding - You may specify the encoding of the data to be sent (e.g. UTF-8). Defaults to ASCII. {function} [opt] onError - Specifies a function which is executed when an error occurs. The function has one argument, which contains the error message. config JavaScript object data String|Array|Number|Boolean This is the data to be sent. It can be a string, an array, a number or a boolean value. callback Function When this function is specified, udpSend assumes you want to wait for a response from the remote host. This function is executed when data is received. Has 2 arguments: 1. The received data as expected content type 2. An object which contains information about the connection, e.g. host and port of the client the data was received from. cb_scope JavaScript object This object defines the scope of the callback. When waiting for a response see udpReceive for additional config parameters. Example var sendConfig = { host : "localhost", port : 5555 }; udpSend(sendConfig, "Hello from the JEM Controller!"); Object Store Functions With JEMScript you may access the object store on the JouleX Central Management Server. Basic Functions Function Description queryObjects Search the object store by providing a DQL string. createObject / createObjects create one or more objects and save them in the object store. updateObject / updateObjects update one or more objects in the object store. deleteObject / deleteObjects delete one or more objects in the object store by providing the ids of those objects. Function: createObject / createObjects Add one or more new objects to the object store. Syntax createObject( object ) / createObjects( array ) Parameters Parameter Type Description object JavaScript object | Array This argument can either be a single JavaScript object or an array of JavaScript objects depending on if you want to add just one or multiple objects to the object store. An object requires the following properties : objecttype. Return Value Returns all successfully added objects as array. Example 1 // adds a new device to the object store var objectToCreate = { objecttype : "device", uri : "127.0.0.1", hostname : "test" }; createObject(objectToCreate); Example 2 // adds 2 new devices to the object store var objectsToCreate = [ { objecttype : "device", uri : "127.0.0.1", hostname : "test" }, { objecttype : "device", uri : "127.0.0.2", hostname : "test2" } ] createObjects(objectsToCreate); Function: deleteObject / deleteObjects Delete one or more objects in the object store. Syntax deleteObject( object ) / deleteObjects( array ) Parameters Parameter Type Description object string | Array This argument can either be an id or an array of ids depending on if you want to delete just one or multiple objects in the object store. Return Value Returns the ids of all successfully deleted objects Example 1 // deletes the object in the object store deleteObject("5e54d2de09dd499d824055323af5d0e6"); Example 2 // deletes 2 objects in the object store deleteObjects(["5e54d2de09dd499d824055323af5d0e6", "5e54d2de09dd499d824055323af5d0e7"]); Function: queryObjects Search the object store for a set of objects and returns them by using a DQL string. Syntax queryObjects( dql ) Parameters Parameter dql Type Description string This string defines which objects to search for. You can search for objects as you would do for devices using queryDevices(). Examples: "objecttype=device" - returns all devices you have access to from the object store "objecttype=assetconnectorconfig" - returns all assetconnector configs you have access to from the object store "id=00000000000000000000000000000000" - returns the object with id 00000000000000000000000000000000 from object store Example // get all devices and log their hostname, uri or id var devices = queryObjects("objecttype=device"); for (var i = 0; i < devices.length; ++i) { log(devices[i].hostname || devices[i].uri || devices[i].id); } Function: updateObject / updateObjects Add one or more new objects to the object store. Syntax updateObject( object ) / updateObjects( array ) Parameters Parameter Type Description object JavaScript object | This argument can either be a single JavaScript object or an array of JavaScript objects depending on if you want to add just one or multiple objects to the object store. You need to specify an id in the updated 172 of 186 JouleX Energy Manager v24295 Manual Array object otherwise this function behaves like createObject(s) and creates a new object with a new id. Return Value Returns all successfully updated objects as array. Example 1 // updates the hostname of the device in the object store var objectToUpdate = { id : "5e54d2de09dd499d824055323af5d0e6", hostname : "test5" }; updateObject(objectToUpdate); Example 2 // updates the hostnames of 2 devices in the object store var objectsToUpdate = [ { id : "5e54d2de09dd499d824055323af5d0e6", hostname : "test5" }, { id : "5e54d2de09dd499d824055323af5d0e7", hostname : "test8" } ] updateObjects(objectsToUpdate); Reporting Functions JEMScript allows you to access certain data on the reporting server. Function Description executeReport Creates a report from a given configuration and returns it. Function: executeReport Creates a report from a given configuration and returns it as a string. Syntax var report = executeReport( config ) Parameters Parameter Type Description The properties of this JavaScript object are used to build the url for the call to the reporting api. The names of the properties are the variable names in the url. The least required properties are: report - the type of report to get (e.g. votws) metric - which metric to use in the report (e.g. power, power_saved, co2) config JavaScript object Other useful properties are: export - the type of the export of the report (e.g. JSON, CSV/COMMA, CSV/DOT, XML). Defaults to JSON. dtype - a date type string (e.g. today, thisweek, lastweek, last24h). Defaults to last24h. granularity - granularity of the data in the report (e.g. hourly, daily, dynamic). Defaults to dynamic. See the Reporting API Documentation for details about which variables and values can be used, when creating a report via url. Return Value The function returns the report as a string. This function never returns a null value. If the function fails for some reason, an empty string is returned. Example - JSON Report // import json2.js in order to use JSON.parse() include('json2.js'); // Returns a JSON report which contains the daily power consumption of this week var reportConfig = { report : "votws", metric : "power", dtype : "thisweek", granularity : "daily" }; // get the report var jsonReport = executeReport(reportConfig); if (jsonReport) { // create a JavaScript object from the received JSON string var reportObject = JSON.parse(jsonReport); // the actual data of the report ist stored in reportObject.data[0] reportObject = reportObject.data[0]; // log the value of the first day in the report log(reportObject.items[0].v); } Example - CSV Report // Returns a CSV report which contains daily saved power in this month var csvReport = executeReport({ report : "votws", metric : "power_saved", "export" : "csv/dot", dtype : "thismonth", granularity : "daily" }); if (csvReport) { // create an array where each entry is a text line in the csvReport var lines = csvReport.split("\n"); // walk through the lines which contain the actual data of the report for (var i = 3; i < lines.length; ++i) { // create an array where each entry is a column in the csv text line var columns = lines[i].split(";"); // log the power_saved value of the current line log(columns[1]); } } JEMScriptProxies The JouleX Energy Manager allows you to create your own custom device proxies using JEMScript. In order to be able to understand the following contents you should have read the General Concepts of JEM. Especially you should know what a device proxy is and how it works. Also there are JEMScript functions and classes used in a JEMScriptProxy file that you may not have heard about yet. Those classes are described in the JEMScript API Reference. A JEMScriptProxy represents a custom proxy which is completely written in JEMScript. You may use such a proxy to measure device types which are not supported in the JouleX Energy Manager by default. But a JEMScriptProxy can be used for many different purposes. Location of JEMScriptProxies Each JEMScriptProxy is stored in its own JavaScript file (e.g. SomeProxy.js) locally on the JEM Controller. These files have to be put into the PluginProxy folder which is located in the JEM_install_dir%/Service directory (See here). You do not have to shutdown the JEM Controller if you want to add a new JEMScriptProxy. The .js files in the PluginProxy directory can be added, changed and deleted at runtime, presumed their code conforms to the syntax of the template given below. The JEMScriptProxy Template You may use the following code as template for your JEMScriptProxy. This template can be found in the PluginProxies directory as well (_ExampleProxy.js). [+] Show Code [ Download File ] Examples A simple JEMScriptProxy which returns a random device status for devices supporting this proxy: include('jem.scriptproxy.js'); JEM.ScriptProxy.create ({ name: "RandomStatusProxy", info: "This proxy returns a random status for a device.", dql: "random.status = 1", priority: 900, statusTypes: ["ON", "OFF", "UNKNOWN", "STANDBY", "HIBERNATE", "INVALID", "REDUCED"], /** * Used to check the current status of a device. * @returns {string} one of the following strings: ON, OFF, UNKNOWN, STANDBY, HIBERNATE, INVALID, REDUCED */ getStatus: function () { var status = Math.round(Math.random() * 6); return this.statusTypes[status]; } }); 173 of 186 JouleX Energy Manager v24295 Manual A ready to use Example can be found in the PluginProxies directory. The file _RandomUtil.js is a JEMScriptProxy which creates random utilization in the range from 0 to 100% for all devices which have the extended property random.utilization set to any value other than nothing. In order to use the proxy, rename it to RandomUtil.js (remove the leading '_' character), choose a device in the JEM and add an extended property random.utilization=1 for it. On every status check of the device, its utilization should change. Interface Functions A JEMScriptProxy uses so called "Interface Functions" to communicate with the JouleX Energy Manager. Each function may have some arguments which are provided by JEM and most of the functions also have return values. If an Interface Function has a return value, that value has to follow specific rules, so that the JEM is able to work with it. Let's have a closer look at an example: The getStatus() Interface Function is used to determine the status of a device which is supported by the JEMScriptProxy. The getStatus() function does not have any arguments but has a return value. In the _ExampleProxy.js file it is documented as follows: /** * Used to check the current status of a device. This function is called for example on a check status action for a device. * @returns {string} one of the following strings: ON, OFF, UNKNOWN, STANDBY, HIBERNATE, INVALID, REDUCED */ getStatus: function () { //return "OFF"; return null; } As you can see each Interface Function described in _ExampleProxy.js has describing comments above its definition. The comments inform about what the function does, which arguments it has and what its return value is. As already mentioned, the getStatus() function does not have any argument and therefore non is described in the comments. Nevertheless it does have a return value, which in this case is a string and its only allowed values are: ON, OFF, UNKNOWN, STANDBY, HIBERNATE, INVALID, REDUCED There is one more return value which is always allowed for every Interface Function: the 'null' value. Returning a null value means the same as if the function would not exist: the JEMScriptProxy does not support this Interface Function. You should also return a null value if you haven't been able to determine the status of a device in the getStatus() function. In this case the next device proxy in the descending priority order will try to retrieve the status of the device. getStatus() - Examples A device proxy which always returns "OFF" as status for devices: getStatus: function () { return "OFF"; } A device proxy which does not support retrieving the status and leaves this to other proxies: getStatus: function () { return null; } There is another example here where a scripting proxy is described which returns a random status. You can use any JEMScript functions in the JEMScriptProxy. To get the current status of a device you could for example use the Networking Functions List of Interface Functions with return types and arguments: {string} getStatus() Called on each status check. Returns the current status of the device. Allowed return values: ON, OFF, UNKNOWN, STANDBY, HIBERNATE, INVALID, REDUCED {string} diagnose() A function which is called when a diagnose is started on a device. You can do some custom checks in this function. You can use log() to log messages to the diagnose view. The function returns a error message (if your diagnose detected any error) or null. {JEM.ScriptProxy.SensorResult} getSensorData(sensorsToRead) {JEM.ScriptProxy.SensorCapabilities} getSensorCapabilities() Those 2 functions are used to return sensor values of a device. The getSensorCapabilities() function returns an object which describes which sensors the getSensorData() function is able to return. The getSensorData() function does the measuring of sensors and returns their values. The getSensorCapabilities() function is only called once for each JEMScriptProxy. The getSensorData() function is called on every forced status check and measuring procedure. The sensorsToRead argument of getSensorData() is of type {JEM.ScriptProxy.SensorCapabilities} and must be used to determine which sensor values is asked for. The sensorsToRead argument must not necessarily contain the same values as the return value of getSensorCapabilities(). {JEM.ScriptProxy.PowerStatusCapabilities} getPowerStatusCapabilities() {JEM.ScriptProxy.PowerStatusResult} setPowerStatus(statusToSet) These 2 functions are used to enable a JEMScriptProxy to set power status levels for a device. The getPowerStatusCapabilities() function returns an object which describes which power status levels a JEMScriptProxy is able to set. Allowed power levels to be set in return object are: ON, OFF, STANDBY, HIBERNATE. The setPowerStatus() function is used to set a new power status level for a device. The argument statusToSet is a simple string which may be one the following values: ON, OFF, STANDBY, HIBERNATE. This function returns an object which contains information about the newly set power status level. {string} runShellScript(script) Use this function to allow your JEMScriptProxy to run scripts. How the script is executed is completely up to you. The function receives the script as its argument, somehow executes it and returns an empty string on success and any error message on failure. {string} setPowerCap(watts) Use this function to set a power cap in watts for a device. Argument watts is a number in watts, which describes the power cap to set. The function returns an empty string on success and any error message on failure. {Array} getProcesses() This function is used to return running processes on a target device. It returns an array on string values, where each string is the name of running process. {bool} isScreenSaver(processName) This function is used to check if a process is a screensaver. This is used in policies to enables/disable actions when a screensaver is running. The function receives the name of a process as argument, then checks if the process is a screensaver and returns true if yes and false if no. {string} setPerformanceLevel(level) Sets a performance level for a device. Argument level is a simple string which maybe one those values: low, adaptive, high. The function returns an empty string on success and any error message on failure. getCustomData() Use this function to set any additional data for a device. For example you could do some SNMP calls here and use dset() to get and set data. {string} getDeviceInfo() This function works almost the same as getCustomData() but it is only executed once for each device (on the first measuring procedure). It is used to set some information about the device using dset(). The function returns an empty string on success and any error message on failure. {string} getHostname() This function returns the hostname of the device. {string} getNetworkInfo() This function is used to get and set network information for a device. It is always called if the ip of a device changes to update its network information. For example you could use dset('mac'), dset('hostname'),... to set network information. The function returns an empty string on success and any error message on failure. {object} setEWLevel(level) Used to set a new energywise level for a device. Argument level is a number which describes the new level to set. The function returns a javascript object which contains 2 properties: status the new status of the device, after the EW level has been set, as JEM would display it. 174 of 186 JouleX Energy Manager v24295 Manual Allowed values are the return values of the getStatus() function. isPending This is an optional property. It's a boolean value which describes if the status is set immediately (true) or if it is not known when the status change will be done (false). Proxy Priority Order Each device proxy has a priority. A priority is number from 0 to 10000. A JEMScriptProxy is allowed to have any priority from 0 to 999. The reason for this is there are some internal device proxies which always must have a higher priority than any JEMScriptProxy. Device proxies are executed in descending priority order. This means that the first proxy which is executed on a device is the proxy which has the highest priority value. Let's assume we have 4 proxies: 1. 2. 3. 4. ProxyA has priority 500 ProxyB has priority 300 ProxyC has priority 150 ProxyD has priority 150 The proxies are executed in the order as listed. An exception to this rule are ProxyC and ProxyD. Because they have the same priority, the order of their execution can not be predicted. Priority Order & Interface Functions There is always one Interface Function executed per time, per device proxy. Let's assume we are doing a forced check status on a windows device (DQL: type = pc.windows). The status of a device is retrieved by executing the getStatus() Interface Function of all the proxies, which support the DQL "type = 'pc.windows'". Again we have the 4 proxies listed above and they implement getStatus() as follows: 1. 2. 3. 4. ProxyA does not support getStatus() (which means it's not implemented or always returns a null value) ProxyB tries to get the status using SNMP somehow ProxyC uses WMI to get the status of the device ProxyD always returns an "UNKNOWN" status This is an example of how the getStatus() function could be executed: 1. ProxyA: because this proxy does not support getStatus(), the next proxy in order is used. 2. ProxyB: In the getStatus() function of this proxy, SNMP is used to retrieve the status. If this fails, the next proxy in order will try to return a status. Now as already mentioned, for the next 2 proxies it is not predictable which one is in order. Let's just assume it's ProxyC before ProxyD. 3. ProxyC uses WMI to get the status of the device. If it has success, its status is returned otherwise ProxyD is in charge. 4. ProxyD always returns an "UNKNOWN" status This is how executing each Interface Function works. The function of the proxy with highest priority is executed first. Troubleshooting This page lists some of the most common problems that occur when writing and using a JEMScriptProxy. Common Hints In any case of error, try the following steps to identify the problem or to get more details about it: Use try...catch around JEMScript blocks and log the error to JEM's log file using the syslog() or log() function in the catch block. This way you will see the message of the exception in the log file. Example: try { var snmp = new Snmp(); ... } catch (e) { log("function x in scriptproxy y failed with error: " + e); } Check the log file of the JouleX Energy Monitor for entries of your JEMScriptProxy. In most cases JEMScriptProxies fail with a JintException and this is mostly due to an error in the JavaScript code of the proxy. Double check your code: be sure you don't reference null values, use undefined functions, forgot brackets, braces or commas Check if all the Interface Functions of your JEMScriptProxy are returning the correct and allowed values and types. See the comments in _ExampleProxy.js and the list of Interface Functions for more details. Check if you forgot the this reference when calling a function or referencing a datafield inside of a JEMScriptProxy. If you want to access a field or function which exists inside of a JEMScriptProxy you have to prefix the call with 'this': JEM.ScriptProxy.create({ ... info : "Hello World!", ... getInfo : function() { return this.info; }, ... diagnose : function() { return this.getInfo(); } }); Errors: Use of Clr not allowed, Function expected In both cases you are calling a undefined JEM- or JavaScript function at some place in your code. Use the diagnose() function To test your JEMScriptProxy you can use the diagnose in the Device Viewer Dialog of a device which is supported by the proxy. Diagnose outputs measured data and read status of each proxy that supports the device, the diagnose is done for. Use the Capability Matrix The capability matrix of a device displays all the proxies that were used to get data for a device. It is filled upon the first status check. So if it is empty, then try to do a forced status check on a device which supports your JEMScriptProxy. After that, the matrix should be filled with entries. If your JEMScriptProxy does not appear in the matrix, then there seems to be a problem with the proxy (in most cases this is due to invalid JavaScript code). If it appears in the matrix, then you can check if your proxy returned the correct values in each Interface Function. SQL Functions JEMScript allows you to access databases using ODBC. For more information on how the JEM Controller accesses a database via ODBC please refer to the ODBC Asset Connector. Function Description odbcQuery Returns the result of a SQL Query using ODBC. odbcUpdate Updates values of a database entry using ODBC. Function: odbcQuery Returns the result of a SQL query using ODBC. Syntax var result = odbcQuery( dsn, query ); Parameters Parameter Type Description dns String The ODBC-DSN (Data Source Name) to use for the query. query String A SQL query string ("SELECT * FROM...") Return Value The function returns an array of objects. Each object represents a row returned by the SQL query. The row contains the column names, the SQL query should contain, as object properties. Example 1 // assume we have a ODBC-DSN 'test1' and a table 'users' with columns 'username', 'pw', 'id' var result = odbcQuery("test1", "SELECT * FROM users"); for (var i = 0, len = result.length; i < len; ++i) { var username = result[i]["username"], password = result[i]["password"], id = result[i]["id"]; if (username == "Alice") { // ... do some stuff } } Example 2 // assume we have a ODBC-DSN 'test1' and a table 'data' // log all rows with columns and values var result = odbcQuery("test1", "SELECT * FROM data"); for (var i = 0, len = result.length; i < len; ++i) { 175 of 186 JouleX Energy Manager v24295 Manual var str = "Row " + i + ": "; for (var column in result[i]) { str += column + " = " + result[i][column] + ", "; } log (str); } Function: odbcUpdate Executes an update on a table using ODBC. Syntax var rowsUpdated = odbcUpdate( dsn, updateStr ); Parameters Parameter Type Description dns String The ODBC-DSN (Data Source Name) to use for the query. updateStr String A SQL update string ("UPDATE users SET...", "INSERT INTO...", "DELETE FROM...") Return Value The function returns the amount of updated rows. Example // assume we have a ODBC-DSN 'test1' and a table 'users' with columns 'username', 'pw', 'id' var result = odbcUpdate("test1", "UPDATE users SET pw = 'test' WHERE username = 'Alice'"); if (result <= 0) { log("error could not update the table"); } Web Service API The JouleX Energy Manager provides various API (Application Programming Interface) functions which can be used by external software tools to communicate and interact with JEM. Technically, the web service API is hosted on the central server which can be accessed via the web server. Base URL for web service calls The base URL for the web service calls depends on the server address and port of JEM Central Management Server installation. Note, that this is the same address you would use to access Management Console in your browser. http://localhost:8080/central/<FUNCTION> Authentication All web service API calls require authentication to provide secure, role-based access to JouleX Energy Manager. Learn More: Authentication for Web Service calls Working with Folders Most web service calls require to operate on a specific folder. Usually, the folder is passed to the web service call using the orgfolder parameter. The orgfolder parameter requires the ID of the folder (and not the name of the folder). The ID of the folder is displayed in the Edit Folder dialog in the Management Console. Available APIs API Description JEM Central Management Server API Functions performed by the JEM Central Management Server. JEM Controller API Functions directly performed on a JEM Controller. JEM Reporting API Historical and aggregated reporting data for energy, carbon, costs, utilization, etc. About the Examples Some of the functions have examples in various programming languages (Python, JavaScript) or use simple command line tools like CURL to perform HTTP GET and POST requrests directly from the command line shell. For more information, see CURL Web site (http://curl.haxx.se/) Web Service Authentication Each JEM Web Service call requires authentication for secure, role-based access to JouleX Energy Manager. For authentication, the web service calls use the same user credentials (username and passwords) as the Management Console. Depending on the role and permissions, different features and functions can be accessed through the API. For example, if a given user does not have access to a certain folder through the management console, the user also will not have access using the API. Almost every web service function requires proper authentication. This is done using a so called authentication token, which consists of a number of characters. Usually, the authentication token is passed to a web service call in the auth parameter. The API offers various methods for authentication: Authentication via LOGIN function The standard method of authentication is done using the login Function. Calling this function with username and password will return the authentication token. This authentication token can then be used for one or more subsequent web service calls. To invalidate the auth-token, it's recommended to call the logout Function Learn More / Example: login Function In-Place Authentication It is also possible to pass the username and password directly to the web service call using the auth parameter. Use the following syntax (using two so called pipe characters): auth=<USERNAME>||<PASSWORD> Example: http://localhost:8080/central/version?auth=bob||xx123mkl Response: 1.0 JEM Central Management Server API This chapter documents features and functions which are directed to the central management server. API Functions Function Description login Login and authentication with JEM. Function: login Login and authentication with JEM Central Management Server Syntax POST /central/management/login POST Data (JSON) { "username":"bob", "password":"xx123mkl" } Parameters Parameter Position Description username Post Data Username password Post Data Password Result If successful, returns user profile and authentication token which can be used for further web service calls. Example Request C:\>curl http://localhost:8080/central/management/login -XPOST -d{"username":"bob","password":"xx123mkl"} Response: { "auth":"2ce5102e05584ee8b0d9284a4021b062", "id":"e2bbfaa7d996496695110d8a16b5340d", "home":"02ca6acf75a44a10854359fbae65c0b6", "username":"admin", "authMethod":"local", "permissions":{ ... list of permissions per folder ... }], } The auth field in the response above is important, because it is used to set the auth parameter for all subsequent web service calls. Often in the API description, this value is referred to as AUTH_TOKEN and should be replace with this value from above. Using the auth code After successful authentication using login, the auth token can be used for all following web service calls. In the example above the auth token returned is 2ce5102e05584ee8b0d9284a4021b062. Use this code and pass it in the auth parameter. http://localhost:8080/central/version?auth=2ce5102e05584ee8b0d9284a4021b062 Response: 4.0 Function: logout Logout and invalidate authentication token Syntax GET /central/management/logout?auth=<AUTH_TOKEN> 176 of 186 JouleX Energy Manager v24295 Manual URL Parameters Parameter Position Description auth URL Auth-token which should be logged out and invalidated See Authentication Result None Example C:\>curl http://localhost:8080/central/management/logout?auth=2ce5102e05584ee8b0d9284a4021b062 Response is empty on success. Function: testCentralAPI Test API connectivity. Syntax GET /central/testCentralAPI?auth=<AUTH_TOKEN>&options=Hello Alternatively, for this function can also be called via POST: POST /central/testCentralAPI?auth=<AUTH_TOKEN> Using the following POST data format: { "options":"Hello Post" } URL Parameters Parameter Description auth See Authentication options Optional value, will be returned as response Result Returns the text provided in the options parameter. Example Request (GET) C:\>curl http://localhost:8080/central/testCentralAPI?auth=2ce5102e05584ee8b0d9284a4021b062&options=Hello Response: Hello Example Request (POST) C:\>curl "http://localhost:8080/central/testCentralAPI?auth=bob||xx123mkl" -XPOST "-d{'options':'Hello Post'}" Response: Hello Post Function: version Version information about the API version of the JEM Central Management Server API Syntax GET /central/version?auth=<AUTH_TOKEN> URL Parameters Parameter Position Description auth URL See Authentication Result Version string of the API version Example Request C:\>curl http://localhost:8080/central/version?auth=2ce5102e05584ee8b0d9284a4021b062 Response: 4.0 JEM Controller API This chapter covers web service calls provided by the JEM Controller. Each web service call is routed through the JEM Central Management Server in the first place for authentication and role-based access control. Then, depending on the folder or the provided JEM Controller ID, the call is forwarded to the appropriate controller. API Functions Function Description testAPI Simple test function to verify whether the JEM Controller API is working. fireEvent Triggers an event which can be used with policy rules to execute certain actions. Creating API Users To get API access, it is necessary to equip a user with the appropriate permission (Enable API Access). For this purpose, please review the chapters about Role Based Access Control Management. Calling JEM Controller API functions All controller web service calls are HTTP POST requests to a URL relative to the base address of the central server. For example, if the central server is installed at the address localhost:8080, then all controller web service calls are located at localhost:8080/central/controller/<FUNCTION>. In the case of multiple controllers, the controller is selected depending on the specified folder. However, the individual controller can also be defined by appending the controller ID to the URL, like localhost:8080/central/controller/<CONTROLLER_ID>/<FUNCTION> All parameters passed to the controller web service calls and all return values are encoded in the JSON format. JSON is a widely adopted and structured data exchange format which is similar to XML and is supported by all major programming languages. Most functions also return JSON format as a result. Please note that due the implementation, all results have a field named d in the response, e.g. { 'd': RESULT }. Function: fireEvent Triggers an event inside JEM which can be used with policy rules to execute actions. This API function should be used together with the Event Condition of the policy. Use this for instance to integrate facilities badge systems to notify JEM when an employee badges in or out of a building. Syntax POST /central/controller/fireEvent?auth=<AUTH_TOKEN>&orgfolder=<FOLDER> POST Data (JSON) { "eventId":"test", "devices":"id=1238623126313", "ttl": 300 } Parameters Parameter Position Description auth URL See Authentication orgfolder URL Folder eventId Post Data devices Post Data ttl Post Data Custom unique event identifier. Any unique string can be used to identify, please combine the username and the password of the API enabled user in one string separated by two | characters. Example: employee-badge-out Define which devices will be affected for this event. Devices are specified using the DQL - Device Query Language. Example: employeeId=1233 Maximum time in seconds before the event gets deleted (ttl = time to live) If the event is not processed within the given time it is deleted from the event system. Example: 300 - 300 seconds or 5 minutes Result On success, returns an internal id for this event (different to your eventId). Example: Power off devices when a employee badges out This example describes a typical scenario to power off devices for a user when he or she badged out of an office building. To make this example work, you can do the following: Each device associated with an employee should have a data field named employeeBadge. This data field can be populated manually or by using Asset Connectors (e.g. CSV, ODBC, etc.) The badge management system should sent out an ID for each badge which matches the value in employeeBadge data field Create a rule in the policy using the Event Condition and enter employee-badge-out as the EVENT-ID for the condition and add a Power Off Action to this rule 177 of 186 JouleX Energy Manager v24295 Manual # This code could be executed by a badge mgmt system. # In a real world scenario, the employeeBadge parameter would contain the badge-id of the employee C:\>curl "http://localhost:8080/central/data/jemwscall/fireEvent?auth=2ce5102e05584ee8b0d9284a4021b062&orgfolder=00000000000000000000000000000000" -XPOST -d{'eventId':'employee-badge-out','devices':'employeeBadge=1233','ttl':300} Response: {"d":"SUCCESS ID=76c85fea46894f91802d944c94dec6c4"} The return value is just for reference purposes and can be ignored. It can be found in the log file. 2013/01/22 14:53:45 11652 DEBUG GENERIC Added event to event queue: guid=76c85fea46894f91802d944c94dec6c4, eventId:employee-badge-out, devices:employeeBadge=1233, ttl:300 Function: runScript Executes a JEMScript. Syntax POST /central/controller/runScript?auth=<AUTH_TOKEN>&orgfolder=<FOLDER> POST Data (JSON) { "script":"... script goes here..." } Parameters Parameter Position Description auth URL See Authentication orgfolder URL Folder in which the script should be executed. script POST Data Script to be executed. Result Returns a JSON object which contains the following fields: status ("SUCCESS" or "ERROR") message (usually an error message) result (the data returned from the script execution; JSON or text) output (output written by log()) Function: testAPI This is a simple test function to verify whether the JEM Controller running. Syntax POST /central/controller/testAPI?auth=<AUTH_TOKEN>&orgfolder=<FOLDER> POST Data (JSON) { "options":"Hello World" } Parameters Parameter Position Description auth URL See Authentication orgfolder URL Folder options Post Data The content of the options parameter is returned when the call is successful. Result On success, returns the value passed in the options parameter. Example C:\>curl "http://localhost:8080/central/data/jemwscall/testAPI?auth=bob||xx123mkl&orgfolder=00000000000000000000000000000000" -XPOST "-d{'options':'Hello World'}" Result: {"d":"Hello World"} JEM Reporting API Please contact JouleX Technical Support for more information about the JEM Reporting API. Sample Code This chapter covers some examples for different programming languages. Web Service Playground Request Data Enter username and password, then click Call Function Function - OTHER - URL Username Password Folder ID 00000000000000000000000000000000 Other Params Post Data Call Function Result POST testCentralAPI / JavaScript This sample code demonstrates how to use the API in JavaScript and AJAX style web service calls. It uses the widely popular jquery framework. NOTE: For this example to work, please make sure that you host the website on the same webserver where the JEM Management Console is running, otherwise you cannot make AJAX calls because of browser cross-site scripting protection. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>TEST PAGE FOR WEB SERVICE CALLS</title> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> <script src="http://jquery-json.googlecode.com/files/jquery.json-2.2.min.js" type="text/javascript"></script> <script type="text/javascript"> function callJEMWS() { var username = "bob"; // TODO SET USERNAME HERE var password = "xx123mkl"; // TODO SET PASSWORD HERE var auth = username + "||" + password; // TODO SET PARAMETERS FOR THE JEM WS CALL var postdata = { options:"Hello JouleX!" } var myurl = 'central/testCentralAPI?auth='+ auth; $.ajax({ 'url': myurl, 'type': 'POST', 'data': $.toJSON(postdata), 'dataType': "json", 'contentType': "application/json; charset=utf-8", 'timeout': 10000, 'success': function(data) { // TODO: DO SOMETHING WITH THE RESULT alert("Response: " + $.toJSON(data)); }, }); } $(document).ready(function(){ $("#action").click(function(event){ callJEMWS(); }); }); </script> </head> <body style="font-family:Arial; padding:30px"> <div> <h3>JouleX Energy Manager Web Service Sample</h3> <input id='action' type="button" value="Call testCentralAPI function"></input> 178 of 186 JouleX Energy Manager v24295 Manual </div> </body> </html> GET version / Python This is a simple test function to verify whether the JEM Web Service API is working. import httplib import json headers = {"Content-Type": "application/json; charset=utf-8"}; # replace localhost by the hostname or IP of the JEM Central Server conn = httplib.HTTPConnection('localhost:8080'); conn.connect(); conn.request("GET", "/central/version?auth=bob||xx123mkl", "", headers); response = conn.getresponse(); raw = response.read(); print raw conn.close() Output 4.0 JEM 3.0 Compatibility When migrating from JEM 3.0 to 4.0 it's important to understand the architectural changes. In 3.0, web service calls were directly invoked on the JEM Controller (or JEM Server in 3.0 terminology) using the Base URL /service/PEM_WebService/service/ and providing all payload data in the POST body. Also, authentication calls were directly made on the JEM 3.0 Server to retrieve the authentication token. For compatibility, all calls to the old base URL /service/PEM_WebService/service/<method>> are automatically forwarded to the JEM Controller. The auth token in the POST data (version 3.0) will automatically be forwarded as well. As 3.0 calls did not support an orgfolder, a default folder is chosen, which is the highest folder in the folder hierarchy for this controller. Apache Web Server Settings For correct migration of the above URL, the Apache web server configuration needs to be changed for previous JEM 3.0 deployments. Within the Apache configuration file, modify the lines with /service to the following end points. Port 9090 is the default port of the JEM Central Server Application. NOTE: The default Apache configuration file has two sections, for both HTTP and HTTPS. Make sure you modify all occurrences. ProxyPass /service http://127.0.0.1:9090/service retry=0 ProxyPassReverse /service http://127.0.0.1:9090/service retry=0 System Maintenance This chapter provides more information about ongoing, day-to-day operations with JouleX Energy Manager. Database Cleanup For various reasons, it may be necessary for you to cleanup the databases, e.g. to free up some disk space or other housekeeping reasons. Cleanup for JEM Database (emdata) For the JEM Database Cleanup you can change following values in the settings.xml: <deleteOlderThan>30</deleteOlderThan> ⇒ Deletes data older than 30 days <maintenanceKeepStatusData>false</maintenanceKeepStatusData> ⇒ Setting this to true also deletes the status data. The status data is the most growing table. Cleanup for Central Database (cloud) Use the jemprocessor.conf file which can be found at %JEM_INSTALL_DIR%\WebApp\conf\jemprocessor.conf for your Central Database cleanup. Therefor, change the following values according to your needs and requirements: db.tasks.daily_export_after_days=60 ⇒ Set to delete hourly report data which is older than 60 days. db.tasks.daily_export_after_days=60 ⇒ This will export the hourly report data which is older than 60 days to the c:\export folder. Notice: Both settings for the jemprocessor.conf can be made also at the System Monitor section (Database) within the Administration page. Deleted Devices A device can be removed manually or will implicitly removed from JEM when the corresponding asset connector is deleted (not just disabled!). Once a device is deleted, it will no longer be visible in the device view. However, all historical information for the device is still available in the database and historical reports (e.g. last month) will still include the device. This way reporting data is consistent for the past even when devices get replaced, removed or somehow deleted. From pilot to production The just described behavior with deleted devices is important to consider when you move from a pilot deployment to a production deployment. Since historical data is being kept, you might consider installing from scratch for the production deployment. JEM Backup & Restore Backup Procedure It is highly recommended to backup JouleX Energy Manager regularly, so that in case of a system crash or any other minor or major problem you are able to restore to it. The integrated backup procedure will save the following files: settings.xml, lic.dat, blur.key, all folders like acfiles, export, edata, sshkeys, commands, jemupdate, webApp config, jemcloud etc. and JEM database backup. The backup program is located in JEM installation folder, %JEM_INSTALL_DIR%\ext\backup. The backup has to be run through the command prompt, therefore open cmd.exe: 179 of 186 JouleX Energy Manager v24295 Manual Access %JEM_INSTALL_DIR%\ext\backup and execute the following command: backup.exe backup "%JEM_INSTALL_DIR%" "%backup_folder%" Alternatively you can also execute the command from any other folder of your choice as followed: "%JEM_INSTALL_DIR%\ext\backup\backup.exe" backup "%JEM_INSTALL_DIR%" "%backup_folder%" After the successful backup, you will find the backup file in the defined target folder. Restore Procedure To restore your JEM you have to apply a similar procedure as to backup it. By replacing the backup command with the restore command and giving the location of the backup file JEM will be restored. Nevertheless it is important that you have accessed JEM at least ones, entered your license key and set the proper Device Access Mode (also possible with the help of the Initial Configuration). Access %JEM_INSTALL_DIR%\ext\backup and execute the following command: backup.exe restore "%JEM_INSTALL_DIR%" "%backup_folder%\%filename%.zip" Alternatively you can also execute the command from any other folder of your choice as followed: "%JEM_INSTALL_DIR%\ext\backup\backup.exe" restore "%JEM_INSTALL_DIR%" "%backup_folder%\%filename%.zip" JEM will shut down and all data will be imported into JEM. After successful restoration JEM will start automatically. 180 of 186 JouleX Energy Manager v24295 Manual Please login and verify if JEM has restored all data properly. Make sure that the policies are turned on again and it might be useful to force the Asset Connectors to do an initial scan, to guarantee that you have accurate status data. Windows Event Log In case of certain events JEM will write messages into the Windows Event Log. Errors the configuration (settings.xml) could not be loaded JEM is not licensed when the available disk space of the service is below 2GB when the jemupdate encounters an exception when the service terminates unexpectedly (e.g. crash, out of memory/disk space) when the internal logging experienced an error when an update fails Warnings when any resource drops below its threshold (see Resource Checking) when the time of JEM and the database differs more than one hour (can only happen with external database) Information when the service successfully started when the service successfully stopped when a new update is available and Notify only was checked when an update is being installed You can also configure the E-Mail Notifications if you want JEM to send you mails in case of important events. Log Files JouleX Energy Manager makes extensive use of log files to store logging information for informational purposes, warning and errors. Depending on the logging granularly, log files can become large and consume a lot of hard disk storage. Log File Directory Depending on the installation path and the current settings, the log files can be usually located here: %JEM_INSTALL_DIR%\logs For more information on %JEM_INSTALL_DIR%, see Files and Folders Managing Log Files Log files are cycled on a daily basis. This means a separate log file will be created for every single day. Per default, log files are kept forever. To save storage space, it's recommended to delete older log files. To do this, go to System/Network within the respective JEM Controller Settings and in the Logfile section select an appropriate time frame. What to log? In System/Network you can also define the granularity of the logging. In the pilot phase, it's recommended to use the DEBUG settings which is more verbose in case of errors and eases troubleshooting. Later on, when you move into production, it is sufficient to switch to WARNING and only log warnings, errors and fatal errors. Reset Password In an unlike circumstance you might be obliged to reset one of the user passwords for JEM. Therefore JEM comes with an build-in application, which allows you to reset the password if you have access to the host machine. The resetPW.exe is located in %JEM_INSTALL_DIR%\ext\resetPW Execute the resetPW.exe with a double-click or alternatively open the following path in the command prompt: "%JEM_INSTALL_DIR%\ext\resetPW\resetPW.exe" The script guides you through several steps which allow to reset the password for a specific user. In the first step you will be asked to insert a username. Type in the username the password should be created or changed for and press Enter. In the next step please enter the new password and hit Enter. The new password will be applied, and JEM asks you if you want to restart the service so that the new password will be effective. Confirm with Y and press enter. 181 of 186 JouleX Energy Manager v24295 Manual The script restarts the JEM service. When done, press any key to close the command prompt. Resource Checking The JEM performs a check of various resources every 10 minutes. The data is written to the logfile with the level INFO (see System/Network). When one of the resources drop below its threshold it will add a Windows Event Log entry and in severe cases also sends a notification (see E-Mail Notifications). The following table lists the various resources, their thresholds and notifications/Event Log details: Value Threshold Notification Event Log Service memory usage 1.5 GB no Warning Database server memory usage 3 GB no Warning Web service memory usage 120 MB no Warning System memory available none no no Service/database server storage available 5 GB 2 GB no yes Warning Error Logs storage available 500 MB no Warning Thread count none no no Thread count (unmanaged) none no no Requests in progress none no no Unknown Devices As described in Delete Devices historical data will be kept by JEM to guarantee that the Reporting is consistent. This is a useful setup for JEM as it does not corrupt your reporting data. However, in case JEM regularly imports Unknown Devices which will be deleted manually thereafter your database will explode in size, e.g. if you import an Active Directory with a lot of unknown (not used) entries. The best workaround to solve this problem is to apply the following scripts with the help of JEM Policies. Therefore you have to apply the following two rules: Rule 1: delay non resolvable 12 hrs Add a new Rule and name it delay non resolvable 12 hrs. Select a Device Condition and paste the following script: issue=100107* scan.interval!='43200' Furthermore select a JEMScript Action and paste the following script: // set scan_measure_interval to 12 hrs dset("scan.interval",43200); dset("measure.interval",43200); Rule 2: reset resolvable to scan default interval Add a new Rule and name it reset resolvable to scan default interval. Select a Device Condition and paste the following script: scan.interval='43200' uri!='' Furthermore select a JEMScript Action and paste the following script: //reset scan_interval to default dset('issue',''); dset('issue.date',''); dset("scan.interval",1800); dset("measure.interval",7200); Result Applying these rules will result in a cleaned up database and therefore guarantee a good performance of your JEM. Furthermore, these two rules have to show up on your Policies page: Troubleshooting This chapter provides more information on how to identify and resolve common issues with JouleX Energy Manager. Issues - This chapter provides detailed information for issue identifiers. Asset Scanner cannot finish in time - How to adjust the settings of the Asset Scanner Conflicted Devices - What to do if devices are "conflicted" Gathering Support Data - Which data are need to be gathered before contacting the JouleX Support Team Cannot login to JEM - Sources for login issues Services - Possible issues with the JEM components Windows32Shutdown failed - Shut down issue with Windows 2003 Server or Windows XP x64 RabbitMQ Issues - RabbitMQ connection issues Issues This chapter provides detailed information for issue identifiers. 100101 - Conflicted Devices See Conflicted Devices. 182 of 186 JouleX Energy Manager v24295 Manual 100102 - WMI Connection Issues In case you never set up WMI on the device you are trying to access please refer to WMI first. The RPC server is unavailable. (Exception from HRESULT: 0x800706BA) This means, that the RPC port (TCP 135) is not opened. See WMI: Configuring firewall. Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))) This means, that there are unnecessary permissions to access WMI from remote. See WMI: Configuring COM security. See WMI: Configuring WMI security. See WMI: Configuring network sharing model. See WMI: Configuring UAC. If you ca not fix those issues or the system does not support WMI (Windows 2000 or Windows XP Home) you can disable it by setting wmi.disabled in the extended or use WinRM (see WinRM: Configuration) instead. Provider failure Out of memory This means, that the WMI provider service on the target device has reached the configured MemoryPerHost quota. You can find out more about WMI quotas under http://blogs.technet.com/b/askperf/archive/2008/09/16/memory-and-handle-quotas-in-the-wmi-providerservice.aspx. 100103 - WinRM Connection Issues Connecting to remote server failed with the following error message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic. Please check the provided credentials. Connecting to remote server failed with the following error message : The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. You can get more information about that by running the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic. WinRM is not configured correctly. You have to add your domain to the TrustedHosts list. Please see WinRM: Configuration for further informations about WinRM configuration. 100104 - SSH Connection Issues In case of a SSH connection issue you will get an error message, which describes the actual problem. Please refer to SSH: Configuration to resolve this issue. There are also some specific errors listed below. Authentication method not supported The authentication method of the SSH server is not supported by the JouleX Energy Manager. A list of the supported methods can be found under SSH: Configuration. Unsupported keyboard-interactive authentication Same as Authentication method not supported. Could not ... SSH session These are internal errors. Please contact the support, if you encounter such an error. 100106 - Cisco EnergyWise Issues Firewall The port (TCP) opened by JEM for the communication between JEM and the switches is negotiated individually. It is therefore necessary to configure your Firewall appropriately. Please make sure, that the IPs or the IP-Range of your switches are enabled in your firewall for incoming and outgoing data. IP Address & Port Error: EnergyWise query result was invalid. EW_LOG Error: ew_init_sockets: Socket connect failed -1, error = 10061(Unknown error) EW_LOG Error: energywise_queryResults: Query failed to execute, no results available. The EnergyWise connection couldn't be established. Check the provided IP Address and the port. Also check if EnergyWise is enabled on the switch as described at EnergyWise: Configuration Fur further information please see, Execution Proxys - EnergyWise Troubleshooting . Domain name & Secret Error: EnergyWise query result from management device 192.168.2.7 was empty Check the domain name and the secret. This error also appears if too many queries in a short time frame were sent. Fur further information please see, Execution Proxys - EnergyWise Troubleshooting . 100107 - DNS Issues Could not resolve hostname Means, that the hostname of the device could not be resolved. This could have several reason: the machine isn't online the machine isn't registered in the DNS the DNS server for the machine is not used on the JEM Controller the DNS server is not reachable The hostname resolution is performed as part of the status check. 100108 - Intel Data Center Manager Issues These are errors reported by the Intel Data Center Manager. Please refer to Intel Data Center Manager to resolve this issue. 100109 - HP Integrated Lights-Out (iLO) Issues These are errors reported by the HP Integrated Lights-Out (iLO) interface. Please refer to HP Integrated Lights-Out (iLO) Integration to resolve this issue. Asset Scanner cannot finish in time The JEM Controller continuously scans and measures devices to collect energy consumption data. The status (on/off/..) is collected during the status scan. Power data and other sensor data is collected during the measurement. The collection frequency for both is set under System/Network within the respective JEM Controller Settings. Default frequency for status checks is every five minutes and every 30 minutes for measurements. Individual per device frequency's can be configured using the scanning.interval and measure.interval. An Overview of these settings can be found at devicedata The Asset Scanner is doing a predefined number of scans in parallel. The number of parallel scans is defined in the settings.xml file in the service directory of the installation path. The corresponding entry is <scannerThreadCount>5</scannerThreadCount> If the Asset Scanner cannot scan all devices within the predefined global scan interval you have to either increase the scan interval or the maximum number of parallel scans. Increasing the measurement interval will also help as a measurement takes more time than a simple status scan thus reducing the total time required for a scan. Changing Scanner Settings To Increase The Scan- or Measure-Interval simply go to the Settings->System/Networking page and change them. To Increase the number of parallel Scans you need to manually edit the settings.xml file, increase the scannerThreadCount and restart the JEM Controller. Conflicted Devices In a networked environment using DHCP and DNS or on a VPN-concentrator IP address-ranges are shared for several devices e.g. if you dial-in to your VPN and reconnect you will often get a different IP address. The same can happen in any enterprise network where DHCP is used. This means that it can happen that JEM gets the same IP address via DNS (see DNS resolution) for different hostnames, in this case the devices are treated as conflicted. The "conflicted" state should not be confused with an error - this is normal behavior for VPN and DHCP enabled Enterprise Networks Conflict Resolution JEM will try to resolve this conflict, which will not always be possible - imagine that the IP is not reachable, in that Case there will be no way to tell which of the two devices "rightfully" owns the IP address - so in this case JEM will set the status for both Devices to UNKNOWN and set the extended-property conflicted.ip=ipaddress Case 1 - IP is reachable and can be queried for hostname If the IP is reachable, JEM will try to query the hostname from that IP and verify which of the devices has the "correct" hostname - that device will go to the ON-State, the other device will be forced to UNKNOWN and have its URI cleared. Case 2 - IP is reachable but cannot be queried for hostname If the IP is reachable, but JEM cannot fetch the hostname via WMI or another Method, a reverse lookup on the IP will be done to verify if the reverse mapping of the IP matches the hostname of one of the devices - in this case that device will be left ON, the other forced to 183 of 186 JouleX Energy Manager v24295 Manual UNKNOWN. Case 3 - IP is unreachable When the IP is unreachable JEM will continuously try to resolve the hostname - if either the DNS TTL expires or the mapping changes the Devices will be updated accordingly and the conflicted state will be resolved Cannot login to JEM If you have trouble accessing the JouleX Energy Manager using the Management Console, please begin troubleshooting with the following items: Refresh your browser by pressing F5 or CTRL-F5 Enter your username and password again and make sure the SHIFT/CAPS lock key is deactivated If you still can't login, please review the following list of common problems. No login screen / No connection to server If you do not have an active internet connection, instead of the JEM Management Console login screen, you see the following error: To troubleshoot this, check the server address and the specified port in the browser URL field. See the Installation Guide or the JEM Central Management Server Ports for details on the server address and ports. You can also attempt to access the internet via the local machine's browser to attempt to connect through the network to JEM, typing the following in the address bar: http://localhost:8080 - (NOTE: Please use the port you specified during the installation) If you still cannot access the login screen confirm that the Apache Webserver is running on the machine. In the Windows start menu, open the Administrative Tools > Services dialog and verify the Apache Webserver is running Login failed: Service unavailable - Central is probably not running In this case, you have access to the Apache webserver of the JEM deployment, but the JEM Central Management Server service is not working properly In the Windows start menu, open the Administrative Tools > Services dialog to manage your Windows services. Then, locate the JouleX services in the list and verify it they are all running. For a more detailed description, please see Services in this section. Services JouleX Energy Manager Services Overview JEM is dependent on several Windows Services which are all automatically installed. Only if all of them are started you will be able to use JEM. The following table provides an overview of the different services. Furthermore, the columns JEM Controller and JEM Central Management Server indicate which services will be installed for which part of the deployment. Service Name Description JEM Controller JEM Controller Application JEM Controller X JEM Central Management Server Joulex PostgreSQL 9.1 Database Server X JEM Central Management Server Central Server Application X JEM Central Processor Reporting Data Processor X Joulex RabbitMQ Message Queue X Joulex Apache2.2 Apache Web Server X X If you want to verify if all Services are started please open services.exe (click on the Windows start button, enter services.exe and press Enter). It is here where you can Start, Stop and Restart Services (only with administrative rights). 184 of 186 JouleX Energy Manager v24295 Manual Troubleshooting No login screen for management console / No connection to JEM Central Management Server Please verify if the JEM Central Management Server is up and running No reporting data available Verify if JEM Central Processor is running Timeout while starting the services Due to a high number of devices (approx. 100,000) and/or slow performance of the physical machine, JEM could experience a timeout while starting up. Windows32Shutdown failed With Windows 2003 Server or Windows XP x64 you will experience difficulties to shut it down unless a user is logged in. JEM will return the following error message: Win32Shutdown failed with 21 To solve this problem please install the hotfix provided by Microsoft, unfortunately there is only a version for Windows Server 2003: http://support.microsoft.com/kb/834100 DNS Resolution When the setting DNS Resolve has been checked the JEM will resolve the hostname on each status check and update the URI field with the returned IP address. NOTE: The JEM will use the last successful DNS result for 4 days by default (the value can be adjusted via the device data field dns.ttl). If after the given time the result it still empty it will clear the URI field. Gathering Support Data This article gives some tips and tricks which kind of data should be collected before you reach out to technical support. Basic Information For efficient technical support, we recommend the following data in order to help our technical support staff. JEM software version and Windows OS software version System memory, free hard disk space JouleX Energy Manager license activation key (see License Information) Log Files In many cases, the log files provide a good ground for detailed technical analysis. Log files are located in the log file folder in the JEM installation. Please refer to Log Files for detailed information. Each log file has a date in its file name. We recommend to zip the log files for the respective time period before you send it to technical support. Ports JEM uses a variety of ports and server addresses throughout the deployment. For detailed documentation, choose one of the topics below: JEM Central Management Server Ports JEM Controller Ports Device Ports RabbitMQ Issues RabbitMQ.Client.Exceptions.ProtocolVersionMismatchException: AMQP server protocol negotiation failure: server version unknown-unknown, client version 0-9 This indicates a connection error because of a timeout. RabbitMQ has a very lot hard-coded timeout, which can lead to problem when the network connection to the RabbitMQ server is slow. When using SSL connections (the connections are SSL by default) the common issue is the Automatic Root Certificates Update of Windows. This can be disabled via the Group Policy Editor. Go to Computer Configuration open Administrative Templates, System, Internet Communication Management and then Internet Communication settings. In the details pane double-click Turn off Automatic Root Certificates Update and select Enabled. End User Functions The JouleX Energy Manager provides several functions which could be accessed directly and without authentication by the end user. Device Wake-Up by End User Within your network users can access the Wake-Up function through a special wake-up page. It enables them to power up their device or a group of devices from every workstation within your network (or via VPN). The wake-up page resides on the JEM Central Management Server and this is the place where the end user would access the page. Standard wake-up page location for single-server deployment (Note, that IP/Server address depending on actual deployment): http://192.168.100.1/wakeup.html 185 of 186 JouleX Energy Manager v24295 Manual In the case of multi-server installation, the wake-up page will require a JEM Controller ID in the URL to route the wake-up request to the respective controller: http://192.168.100.1/wakeup.html?jemid=5812ae9fba264f208ff21353e50859f5 As a precondition the wake-up function must be activated in the %JEM_INSTALL_DIR%\service\settings.xml of the JEM Controller, see Values And Options Of Settings.xml. <allowedPublicWakeUpMethod>all</allowedPublicWakeUpMethod> Possible values are all (wake by IP, Hostname or token), token (wake only by token) and disabled (default value). Users can wake-up devices by entering an IP, Hostname or a token, the later one must be defined in the Device Viewer Dialog. The dialog could be accessed through the Devices site, by selecting the device of your choice and selecting View/Edit in the menu. Thereby a token could be assigned to a single device, or by assigning the same token to several devices you are able to create a group of devices which then are waked up simultaneously. Please keep in mind that a token has to be assigned manually to each device, based on the following pattern wakeup.token=name-of-token Migration This chapter provides more information about migration from earlier versions of JouleX Energy Manager Issues - Migration from 3.0 to 4.0 Migration 3.0 to 4.0 SSH defaultlinuxSSHShutdownCommand setting The option defaultlinuxSSHShutdownCommand has been removed from the settings.xml. If you have this set to a different command than poweroff you will need to create a custom shutdown SSH scriptfor the devices utilizing it. linux.command.* device data fields The linux.command.* device data fields have been removed. If you used this to add sudo to a command you don't have to change anything since sudo is now implied for all commands, that require it. Click here for details about the overlay script. If you completely changed the command you need to create an overlay SSH script for the devices having these fields set. cpufreq_*.sh If you modified any of the cpufreq_*.sh scripts and you are seeing the problems again, that forced you to change the scripts in the first place please use replacement scripts (see SSH: Scripts) for sensordata_clockspeed and powerformancelevel or contact the support. Contact JouleX For product information, sales information, or technical support*, please use the contact methods below. For general information about our products and service: Email: info@joulex.net Telephone: 1 (888) JOULEXNET or 1 (888) 568-5396 Technical Support* Email: support@joulex.net * Level and availability of JouleX technical support is dependent on your service agreement with JouleX or one of its partners. 186 of 186