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): [email protected]
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): [email protected]
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: [email protected]
Telephone: 1 (888) JOULEXNET or 1 (888) 568-5396
Technical Support*
Email: [email protected]
* Level and availability of JouleX technical support is dependent on your service agreement with JouleX or one of its partners.
186 of 186