Difference between revisions of "JavaScript Callback Functions API"
Line 1,048: | Line 1,048: | ||
Sends a command to an IRTrans. | Sends a command to an IRTrans. | ||
+ | |||
{{infrared_commands}} | {{infrared_commands}} | ||
+ | |||
'''Parameters:''' | '''Parameters:''' |
Revision as of 13:37, 1 February 2014
Contents
- 1 Callback Functions
- 2 Command and Utility Functions
- 2.1 System Functions
- 2.1.1 dateSet
- 2.1.2 getNextSunrise
- 2.1.3 getNextSunset
- 2.1.4 haActiveState
- 2.1.5 haActive
- 2.1.6 isDaylight
- 2.1.7 powerSet
- 2.1.8 programTimerClear
- 2.1.9 programTimerRepeat
- 2.1.10 programTimerReset
- 2.1.11 programTimerSet
- 2.1.12 schedulerRegister
- 2.1.13 schedulerRemove
- 2.1.14 sleep
- 2.1.15 varGet
- 2.1.16 varSet
- 2.2 Cameras
- 2.3 Data Logger
- 2.4 DMX
- 2.5 Infrared Control
- 2.6 I/O Servers
- 2.7 Leak Detector
- 2.8 Log
- 2.9 Mail
- 2.10 Modbus
- 2.11 Network Services
- 2.12 Public Announcement
- 2.13 Serial Communication Ports
- 2.14 Squeezebox
- 2.15 User Interface
- 2.1 System Functions
Callback Functions
System Functions
DaylightEvent
DaylightEvent(day)
Called at sunrise and sunset, according to the latitude and longitude values set in hsyco.ini, and the optional SunriseOffsetMinutes and SunsetOffsetMinutes parameters.
Parameters:
- day: boolean - true at sunrise, false at sunset.
haActiveEvent
haActiveEvent(active)
Triggered by the change of state of an HSYCO server in a master/slave high availability configuration.
Parameters:
- active: boolean - true if the server is active, false if not active.
PowerEvent
PowerEvent(power)
Triggered by a change of the current power load level, as set using the powerSet() Java API or the POWER action.
Thanks to this method it is possible to alter the power value shown in the Web interface, for example to aggregate power readings acquired from other sensors.
Parameters:
- power: numeric - the power level, in Watts.
Returns:
- numeric - if PowerEvent() returns -1 or doesn't return a value, HSYCO status is updated with the detected power value, the value returned by PowerEvent() is otherwise used.
The JavaScript PowerEvent function is always called, but its return value is used only when the Java PowerEvent callback is not defined or returned -1.
programTimerEvent
programTimerEvent(name)
Called when a program timer is activated.
Program timers are set using programTimerSet(), programTimerReset(), programTimerRepeat(), or using the corresponding actions in the EVENTS.
Parameters:
- name: string - program timer name.
SchedulerEvent
SchedulerEvent(groupname, schedulename)
This callback blocking function allows to call user methods at configurable intervals.
You define schedules using a group name and a schedule name.
Schedules under the same group run in the same thread and are executed sequentially, based on their interval in milliseconds. Schedules in different groups run in parallel.
Parameters:
- groupname: string - the scheduler’s group name
- schedulename: string - the scheduler’s name.
StartupEvent
StartupEvent()
Called only once when HSYCO starts, after the initialization and HTTP server start-up, but before the execution of the different field interface threads. It is not executed in a thread, it is therefore a blocking method, that must complete its execution before all other HSYCO services can be started.
SunPositionEvent
SunPositionEvent(azimuth, elevation)
Called when the Sun changes its height with respect to the horizon or its angle from true north.
Parameters:
- azimuth: numeric - the current Sun angle from true north, in decimal degrees
- elevation: numeric - the current Sun elevation in decimal degrees from the horizon. Elevation is negative at night.
TimeEvent
TimeEvent(time)
Called every 60 seconds.
HSYCO tries to synchronize the execution at the beginning of the minute, executing this method at seconds 0 of every minute.
However, the execution is not guaranteed. In case of heavy load HSYCO might not be able to execute the call with accurate timing. In extreme cases, it could occasionally skip some calls.
Parameters:
- time: numeric - the current time in milliseconds.
varEvent
varEvent(name, value)
Triggered by the change of value of a program variable.
Parameters:
- name: string - the variable name. Names are case-insensitive
- value: string - the value to be assigned to the program variable.
Cameras
CameraCommandEvent
CameraCommandEvent(function, action, camera)
Triggered by a camera control input from the Web interface.
It can be used to execute arbitrary actions when the user clicks on the active areas of the camera view, or to replace some or all of the standard PTZ commands with custom actions.
Parameters:
- function: string - see the table below
- action: string - see the table below
- camera: string - the camera name.
Returns:
- numeric - if CameraCommandEvent() returns -1 or doesn't return a value, the standard PTZ command associated to the PTZ driver is skipped, otherwise it is executed normally.
The JavaScript CameraCommandEvent function is always called, but its return value is used only when the Java CameraCommandEvent callback is not defined or returned -1.
|
CameraMotionEvent
CameraMotionEvent(event, time)
Called when HSYCO starts recording video from a camera.
Recording starts when a camera notifies a recording request with the recording HTTP API call (the zone=id portion is optional):
http://192.168.0.50/x/camerarec?camera=name&zone=id
Recording can also be triggered by the CameraRecTrigger() Java call or the CAMERAREC or CAMERARECFULL actions in EVENTS.
Parameters:
- event: string - the event identification string, either the camera name only or name:id if recording is triggered by a camerarec HTTP call with the optional zone=id parameter
- time: numeric - the current time in milliseconds.
CameraViewEvent
CameraViewEvent(camera, active)
CameraViewEvent() is called on changes of the live view status of cameras.
When at least one web client is showing the live feed from a camera, the camera is marked as active.
When no live feed request is received for a several consecutive seconds, the camera is marked as not active.
Parameters:
- camera: string - the camera name
- active: boolean - true if active, false if not.
DMX
DmxEvent
DmxEvent(channel, state)
Called after changes to DMX-512 channels.
Parameters:
- channel: numeric - DMX channel address, from 1 to 512 which might be preceded by the DMX gateway number, starting from 0
- state: numeric - the new channel value, from 0 to 255.
DmxFilter
DmxFilter(channel, state, reverse)
This function allows to filter the value of the status of each channel on the DMX-512 buses, sending to the gateway different values from those set in HSYCO.
This way, it is possible to apply chromatic corrections, or any on the fly translation of channels values.
This is a blocking function and is called when sending commands to the DMX gateway.
It is also called after reading current channels values from the gateway. In this case the conversion function should be symmetric and return a complementary value.
Parameters:
- channel: numeric - the DMX channel address, from 1 to 512 which might be preceded by the DMX gateway number, starting from 0
- state: numeric - the unfiltered value of the channel, from 0 to 255
- reverse: boolean - false if called when writing to the gateway; true if called when reading from the gateway.
Returns:
- numeric - the channel value that will be sent to the DMX gateway.
The JavaScript DmxFilter function is called only when the Java DmxFilter callback is not defined or returned the original value.
DmxStartupEvent
DmxStartupEvent(index)
Called when starting the monitor threads for each DMX bus, once per bus at the start of the execution of HSYCO, and also after every restart of the monitor thread, for example after communication errors.
It is safe, inside this method, to execute command methods for the same DMX gateway.
This is a blocking method. The DMX driver will start after this function returns.
Parameters:
- Index: numeric - number of the DMX bus, starting from 0.
Infrared Control
IREvent
IREvent(received, irtransid, event)
This method is called when an IRTrans receives or sends an IR command from its local IR database.
Parameters:
- received: boolean - true if the command has been received21 by the IRTrans, false if sent
- irtransid: numeric - IRTrans number, starting from 0 for the first device, based on the listing order of the IRTrans parameter in hsyco.ini
- event: string - the string of the command received or issued, formatted as: "remote_name,command"
I/O Servers
IOEvent
IOEvent(name, value)
Triggered by the value change of any data point of an I/O server.
Parameters:
- id: string - the server id and the name of the data point. According to the type of server, the format changes but it generally appears as server name, as declared the ioServers parameter in hsyco.ini, followed by a specific name representing the data point within the system
- value: string - the new value. For binary inputs or outputs, the returned values are “0” or “1”.
IOStartupEvent
IOStartupEvent(index)
Triggered by the start of the communication thread of each I/O server - once for each server at the beginning of the execution of HSYCO, and also after every reboot of the communication thread, for example after communication errors.
This is a blocking method. The I/O server driver will start after this function returns.
Parameters:
- index: numeric - the I/O server number, starting from 0, based on the listing order of the ioServers parameter in hsyco.ini.
Modbus
ModbusEvent
ModbusEvent(name, addr, unitid, pdu)
Called by the Modbus Server I/O Server on every Modbus request received from a Modbus client.
The returned byte array is used as the Modbus response PDU (function code and data).
Parameters:
- name: string - the name of the Modbus Server I/O server
- addr: string - IP address of the Modbus client
- unitid: numeric - the unit id set in the received Modbus request
- pdu: string - the request PDU data, in hexadecimal string format.
Returns:
- string - the response PDU data, in hexadecimal string format.
The JavaScript ModbusEvent function is called only when the Java ModbusEvent callback is not defined or returned a null value.
Network Services
LocationEvent
LocationEvent(mac, ip, zoneId)
Called, if the location service is active, when a variation in the association of a client to the Wi-Fi Access Points is detected.
Parameters:
- mac: string - the MAC address of the client
- ip: string - the IP address of the client, if available, or null (the IP address could be null if the associated device is not connected to the HSYCO Web interface)
- zoneId: numeric - in case of association, it is the Access Point sequence number, according to the order defined in the LocationBases parameter in hsyco.ini; -1 if the client was de-associated from the Wi-Fi network.
PBX
PBXCallEvent
PBXCallEvent(host, caller, called)
Called when a call notification is sent to HSYCO by the PBX system.
If the method returns true, the request is recorded on the log file with the [OK] status, with [ERROR] otherwise.
Parameters:
- host: string - the IP address of the PBX server
- caller: string - the caller number
- called: string - the called number.
Squeezebox
SlimPowerEvent
SlimPowerEvent(index, power)
Called when a Squeezebox player is turned on or off.
Parameters:
- index: numeric - player number, starting from 0 for the first player, based on the listing order of the slimPlayers parameter in hsyco.ini
- power - 0: OFF, 1: ON.
SlimStatusEvent
SlimStatusEvent()
Called when a Squeezebox player changes its playback mode.
Parameters:
- index: numeric - player number, starting from 0 for the first player, based on the listing order of the slimPlayers parameter in hsyco.ini
- status: numeric - 0: OFF, 1: ON, 2: PAUSE, 3: PLAY, -1: UNKNOWN.
SlimVolumeEvent
SlimVolumeEvent(index, volume)
Called when a Squeezebox player changes its volume level.
Parameters:
- index: numeric - player number, starting from 0 for the first player, based on the listing order of the slimPlayers parameter in hsyco.ini
- volume: numeric - an integer number representing the volume change (not the absolute audio level) in a scale from 0 to 100; positive numbers correspond to a volume increase, negative numbers to a decrease.
Timers and Schedulers
UserTimerEvent
UserTimerEvent(name, active)
Called when a user timer or scheduler’s rule should be activated, and before executing the associated action in EVENTS.
It is also executed at the timer or scheduler’s rule deactivation.
This method must return a true value in order to make the timer or rule actually active and the associated actions executed.
Whenever the method returns false, the timer will not be activated, and the method will be called again once a minute for the scheduled duration of the timer.
In the same way, if the method returns false when the timer or rule is deactivated, the timer or rule will not be deactivated, extending the timer activation beyond the scheduled duration.
This is a blocking method.
Parameters:
- name: string - timer name or scheduler’s rule name
- active: boolean - true when activating and false when deactivating the timer or scheduler’s rule.
Returns:
- boolean - true to confirm the timer event, false to block the event.
The JavaScript UserTimerEvent function is alway called, but its return value is used only when the Java UserTimerEvent callback is not defined or returned true.
User Interface
pageEvent
pageEvent(address, session, userid, project, page)
Called when a Web client initially loads a project and when navigating between pages.
There is no guarantee that the event would be fired the exact moment the page is loaded.
Network delays or errors could cause delayed triggering of this event.
Parameters:
- address: string - the client’s IP address
- session: string - session id string that uniquely identifies the client session
- userid: string - the user id
- project: string - project’s id
- page: string - the page id of the current page.
uiClearEvent
uiClearEvent(session)
Called, following an explicit call of uiClear() or after the client session inactivity timeout expires, if the client session becomes active again (i.e. the client starts handshaking again with the server with the same session id).
Parameters:
- session: string - session id string that uniquely identifies the client session
userCommand
userCommand(session, userid, name, param)
Called by user clicks on buttons created in the Web interface with the (user), (usermini), (usermicro), (userrgb) or (userimage) objects, by a USER action in EVENTS, or by the userCommand() Java method.
This function can optionally return a string. Any returned string causes the log of an [OK] status. If you want to prevent logging, for example to avoid sensitive information to be written in the log file, you should return the string “!”.
If you want to force the Web interface to show a specific page after the button is pressed (it would be like pressing a (link) object), return a string starting with “page:” followed by the page name; in this case, userCommand() will be called again when that popup or page is closed, with "/close" appended to param.
Parameters:
- session: string - a session id string that uniquely identifies the client session
- userid: string - the user id
- name: string - the name field of the (user) object
- param: string - the param of the (user) object.
Returns:
- string - log or go to page, see text above. If this function doesn't return a value, an [ERROR] status is logged in the log file, while any other string causes the log of an [OK] status.
The JavaScript userCommand function is alway called, but its return value is used only when the Java userCommand callback is not defined or returned null or an empty string.
userSubmit
userSubmit(session, userid, name, fields)
This function is similar to userCommand(session, userid, name, param).
When userSubmit() is defined, it will be called when a (submit!id), (submitmini!id) or (submitmicro!id) button is pressed, while userCommand() will continue to be called on (user) buttons.
userSubmit() provides a more convenient access to the values of multiple input fields in a form.
This function can optionally return a string. Any returned string causes the log of an [OK] status. If you want to prevent logging, for example to avoid sensitive information to be written in the log file, you should return the string “!”.
If you want to force the Web interface to show a specific page after the button is pressed (it would be like pressing a (link) object), return a string starting with “page:” followed by the page name; in this case, userCommand() will be called when that popup or page is closed, with "/close" appended to param.
Parameters:
- session: string - a session id string that uniquely identifies the client session
- userid: string - the user id
- name: string - the id of the (submit!id) object
- fields: array - the array of all input fields in the container where the (submit) object is located.
Returns:
- string - log or go to page, see text above. If this function doesn't return a value, an [ERROR] status is logged in the log file, while any other string causes the log of an [OK] status.
The JavaScript userSubmit function is alway called, but its return value is used only when the Java userCommand or userSubmit callback are not defined or returned null or an empty string.
Examples:
The following code shows how to retrieve all field names and values of a submitted form.
function userSubmit(session, user, name, values) : {
if (session.length > 0) {
messageLog(user + ', ' + name + '=' + values);
var keys = values.keySet().toArray();
for (var i = 0; i < keys.length; i++) {
messageLog(user + ', ' + keys[i] + ' = ' + values.get(keys[i]));
}
return "";
}
}
Create a project with a form and a few input fields in a container. Pressing the submit button should return something like this in the log file:
2014.01.31 13:54:32.034 - staff, submit1={keypad1=344, date1=20140131, input1=this is a text field} 2014.01.31 13:54:32.038 - staff, keypad1 = 344 2014.01.31 13:54:32.039 - staff, date1 = 20140131 2014.01.31 13:54:32.042 - staff, input1 = this is a text field 2014.01.31 13:54:32.043 - WEB USER COMMAND [submit1]: input1@this is a text field@date1@20140131@keypad1@344 [OK]
WebRootRequestEvent
WebRootRequestEvent(addr, secure, useragent)
This method is called when the Web server receives a root URL request. It can return a string to redirect the browser to a valid URL, or null to prevent redirection.
Parameters:
- addr: string - the HTTP client’s address
- secure: boolean - true if this is an HTTPS request
- useragent: string - the Web browser’s user agent information.
Returns:
- string - optional return string containing a valid absolute or relative URL
Examples:
The following code redirects any root HTTP request received by the HSYCO server to the manager page.
function WebRootRequestEvent(addr, secure, useragent) : {
return "hsycoserver/manager";
}
Command and Utility Functions
System Functions
dateSet
dateSet(year, month, day, hour, minute, second)
Sets the HSYCO Server operating system’s clock and hardware clock, in the local time zone.
Parameters:
- year: numeric - the year, greater than 1900
- month: numeric - the month, between 1-12
- day: numeric - the day, between 1-31
- hour: numeric - the hour, between 0-23
- minute: numeric - the minute, between 0-59
- second: numeric - the second, between 0-59.
Returns:
- boolean - true if successful, false if not.
getNextSunrise
getNextSunrise(now, withoffset)
Computes the time of the next sunrise after the time set in the now parameter.
The sunrise time is returned in milliseconds since midnight, January 1, 1970 UTC.
Parameters:
- now: numeric - the reference time in milliseconds
- withoffset: boolean - true to take the sunrise offset into account, as defined with the SunriseOffsetMinutes in hsyco.ini, false to ignore the offset and return the actual sunrise time (Based on civil dawn, begins when the geometric center of the sun is 6° below the horizon).
Returns:
- numeric - the next sunrise time in milliseconds since midnight, January 1, 1970 UTC.
getNextSunset
getNextSunset(now, withoffset)
Computes the time of the next sunset after the time set in the now parameter.
The sunset time is returned in milliseconds since midnight, January 1, 1970 UTC.
Parameters:
- now: numeric - the reference time in milliseconds
- withoffset: boolean - true to take the sunset offset into account, as defined with the SunriseOffsetMinutes in hsyco.ini, false to ignore the offset and return the actual sunrise time (Based on civil dusk, ends when the geometric center of the sun reaches 6° below the horizon).
Returns:
- numeric - the next sunset time in milliseconds since midnight, January 1, 1970 UTC.
haActiveState
haActiveState()
When HSYCO is installed in a high availability configuration, this method returns true if the system (master or slave) is active, false if it is not active.
If high availability is not configured, the method returns true.
Returns:
- boolean - high availability current state.
haActive
haActive(active)
Force a master HSYCO server to become inactive, or return to the active state.
This method should be called on the master only, and has no effect on the slave server.
Parameters:
- active: boolean - set to true to force a master to become inactive, or false to return it to the active state after the master was forced to become inactive.
isDaylight
isDaylight()
Returns the day or night status at present time.
The result is based on the latitude and longitude data set in hsyco.ini and the SunriseOffsetMinutes and SunsetOffsetMinutes parameters.
Returns:
- boolean - true during the day, false at night.
powerSet
powerSet(power)
Sets the electric power state variable.
The power value is shown in the navigation or status bar of the Web interface.
Besides setting the power value, this method also triggers the execution of the powerEvent() callback and the POWER event in EVENTS.
Parameters:
- power: numeric - the power in Watt units.
programTimerClear
programTimerClear(name)
Cancels a program timer.
Parameters:
- name: string - the program timer name.
programTimerRepeat
programTimerRepeat(name, seconds)
Sets a program timer that is executed repeatedly with an interval equal to the specified number of seconds.
If a program timer with the same name has already been set, the number of seconds to the timer’s execution is reset to the new value.
Parameters:
- name: string - the program timer name
- seconds: numeric - the interval in seconds of the timer’s execution.
programTimerReset
programTimerReset(name, seconds)
Sets a program timer to be executed after the specified number of seconds.
If a program timer with the same name has already been set, the number of seconds to the timer’s execution is reset to the new value.
Parameters:
- name: string - the program timer name
- seconds: numeric - the number of seconds to the timer’s execution.
programTimerSet
programTimerSet(name, seconds)
Sets a program timer to be executed after the specified number of seconds. If a program timer with the same name has already been set, the action will be ignored.
Parameters:
- name: string - the program timer name
- seconds: numeric - the number of seconds to the timer’s execution.
schedulerRegister
schedulerRegister(groupname, schedulename, interval)
This function registers a new scheduled callback.
Parameters:
- groupname: string - the group name
- schedulename: string - the schedule name
- interval: numeric - interval in milliseconds.
schedulerRemove
schedulerRemove(groupname, schedulename)
Deletes a schedule.
Parameters:
- groupname: string - the group name
- schedulename: string - the schedule name.
sleep
sleep(millis)
Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds.
Parameters:
- millis: numeric - the length of time to sleep in milliseconds.
varGet
varGet(name)
Returns the value of a program variable, or null if no variable with the given name has been defined.
Program variables can be set using varSet() in user.java or in the EVENTS programming environment.
To access a variable used in EVENTS, the name used in varGet() should start with the $ character.
Variables names ending with ! are considered persistent and their values are preserved when HSYCO restarts; normal variables are deleted when HSYCO starts.
Parameters:
- name: string - the variable name. Names are case-insensitive.
Returns:
- string - the current value of the program variable.
varSet
varSet(name, value)
Sets a program variable to the value parameter.
Variables set with varSet() can be read using varGet() and are also available in the EVENTS programming environment, if the variable name starts with $.
If you need to use variables in Java or JavaScript but don’t want these variables to be available in EVENTS, just use names that don’t start with the $ character.
Variables names ending with ! are considered persistent and their values are preserved when HSYCO restarts; normal variables are deleted when HSYCO starts.
Parameters:
- name: string - the variable name. Names are case-insensitive
- value: string - the value to be assigned to the program variable.
Cameras
cameraCommand
cameraCommand(func, action, camera)
Sends PTZ and focus commands to cameras.
Parameters:
- function: string - see the table below
- action: string - see the table below
- camera: string - the camera name.
|
cameraMode
cameraMode(cameraName, enabled)
Disables or enables a camera. When the live view is disabled, recording is also disabled.
Parameters:
- camera: string - the camera name
- enabled: boolean - true to enable the camera, false to disable.
cameraRecMode
cameraRecMode(cameraName, enabled)
Disables or enables recording from a camera, not affecting live view.
Parameters:
- camera: string - the camera name
- enabled: boolean - true to enable the recording, false to disable.
cameraRecTrigger
cameraRecTrigger(cameraName, source, seconds)
Records video from a camera.
Parameters:
- camera: string - the camera name
- source: string - a string used to generate a log message, to identify the source that triggered the recording
- seconds: numeric - recording time in seconds. If set on 0, stops the current recording.
cameraRecTriggerFull
cameraRecTriggerFull(cameraName, source, seconds)
Records video from a camera, like cameraRecTrigger(), but ignores the DroppedFrames parameter in hsyco.ini, so that all frames captured from the camera during the recording period are recorded with no skips.
Parameters:
- camera: string - the camera name
- source: string - a string used to generate a log message, to identify the source that triggered the recording
- seconds: numeric - recording time in seconds. If set on 0, stops the current recording.
Data Logger
dataLoggerClear
dataLoggerClear(name)
Permanently deletes all historical data of the specified data logger.
Parameters:
- name: string - data logger name.
Returns:
- boolean - true if successful, false if not.
dataLoggerOptions
dataLoggerOptions(name, param, value)
Sets a specific option for the specified data logger.
So far the only available option is “origin” which sets the x-bar of all the charts linked to the data logger to the passed value.
Parameters:
- name: string - data logger name
- param: string - option to be set (“origin” is the only option you can currently set with this method)
- value: string - value for the specified option.
Returns:
- boolean - true if successful, false if not.
dataLoggerSave
dataLoggerSave(type, names, path, timestamp)
Creates or updates a CSV file containing the data processed by the specified data loggers.
The possible types are:
- log: append the last acquired value by the data logger to the specified file
- stat: updates the specified file with the currently gathered data by the specified data logger.
Parameters:
- type: string - log type (log or stat)
- names: string array - data logger names
- path: string - path of the file to be created
- timestamp: boolean - if true and the type is log adds a timestamp column in the CSV file for the logged values.
Returns:
- boolean - true if successful, false if not.
Examples:
The following code appends a new line every minute to the userdata/log.csv file with the most recent values of three data loggers, "a", "b" and "c".
time : { dataLoggerSave('log', ['a','b','c'], 'userdata/log.csv', true); }
dataLoggerUpdate
dataLoggerUpdate(name, value)
Supplies the specified data logger with a new value to be processed.
Parameters:
- name: string - data logger name
- value: numeric - value to be processed. Setting value to null, with counter data loggers only, resets the internal delta baseline.
Returns:
- boolean - true if successful, false if not.
DMX
dmxGet
dmxGet(channel)
Returns the current status of a channel on the DMX-512 bus.
Parameters:
- channel: numeric - when using one DMX gateway, address will be a standard DMX-512 address between 1 and 512. If there is more than one gateway, 1000 must be added to the DMX address for the second gateway, 2000 for the third one and so on.
Returns:
- numeric - channel current status, between 0 and 255, or UNKNOWN (-1) if the status is unknown.
dmxOff
dmxOff(channel)
Sets a channel on the DMX-512 bus to 0. It also saves the previous value, so it can be restored with dmxOn().
Parameters:
- channel: numeric - when using one DMX gateway, address will be a standard DMX-512 address between 1 and 512. If there is more than one gateway, 1000 must be added to the DMX address for the second gateway, 2000 for the third one and so on.
Returns:
- numeric - 1 if successful, 0 if not.
dmxOn
dmxOn(channel)
Sets a DMX-512 channel to the value preceding the last call to dmxOff().
Parameters:
- channel: numeric - when using one DMX gateway, address will be a standard DMX-512 address between 1 and 512. If there is more than one gateway, 1000 must be added to the DMX address for the second gateway, 2000 for the third one and so on.
Returns:
- numeric - 1 if successful, 0 if not.
dmxMerge
dmxMerge(fromchannel, tochannel, merge)
Sets all DMX-512 channels between the parameters from and to to merge mode or normal mode. In merge mode, the channels on the DMX OUT bus of the gateway follow the values of the channels of the DMX IN bus.
Parameters:
- fromchannel: numeric - first address of the range. When using one DMX gateway, address will be a standard DMX-512 address between 1 and 512. If there is more than one gateway, 1000 must be added to the DMX address for the second gateway, 2000 for the third one and so on
- tochannel: numeric - last address of the range
- merge: boolean - true to enable merge mode, false to return to normal mode.
Returns:
- numeric - 1 if successful, -1 if to < from, 0 for other errors.
dmxSet
dmxSet(channel, state)
Sets the value of a single DMX-512 channel.
Parameters:
- channel: numeric - when using one DMX gateway, address will be a standard DMX-512 address between 1 and 512. If there is more than one gateway, 1000 must be added to the DMX address for the second gateway, 2000 for the third one and so on.
Returns:
- numeric - 1 if successful, 0 if not.
Infrared Control
irtransCommand
irtransCommand(irid, command)
Sends a command to an IRTrans.
An infrared command is composed by the name that identifies the commands database, followed by a comma and the name of the command in the database.
More commands in a sequence can be separated by “;”.
It is possible to insert the special command @N, which introduces a wait time of N milliseconds before sending the next command.
This command:
denon1036,on;@4000;denon1036,tv
sends the “on” command of the “denon-1036” remote, then waits 4 seconds before sending the “tv” command.
Moreover, the special command @0 allows to send IR commands without wait times before sending the next command.
When the @N delay before an IR command is not specified, there will be a default 500ms pause between commands; with @0 this pause will be reduced to 1ms.
For example:
denon,on;@0;nad,on
sends the “on” command of the “denon” remote, immediately followed by the “on” command of the “nad” remote.
Every IRTrans can contain a database of several remote controls, and each database stores the list of the distinct IR commands. If the hsyco/ir directory contains a .ccfhex file corresponding to the database name, then the CCF string in the file is used instead of sending the command stored in the IRTrans internal database.
Parameters:
- irid: string - identifies the IRTrans, as defined with the IRTrans parameter in hsyco.ini
- command: string - the sequence of IR commands to be sent.
Returns:
- numeric - 1 if successful, 0 if not.
I/O Servers
deviceFunctionGet
deviceFunctionGet(name)
ioGet
ioGet(id)
ioServersRestart
ioServersRestart(name)
ioServersStop
ioServersStop(name)
ioSet
ioSet(id, value)
Leak Detector
leakDetectorClear
leakDetectorClear(name)
leakDetectorOptions
leakDetectorOptions(name, param, value)
leakDetectorUpdate
leakDetectorUpdate(name, value)
Log
errorLog
errorLog(message)
fileLog
fileLog(pathname, message)
messageLog
messageLog(message)
sendMail
sendMail(to, from, subject, body)
Modbus
modbusReadCoils
modbusReadCoils(name, unit, address, quantity)
modbusReadDiscreteInputs
modbusReadDiscreteInputs(name, unit, address, quantity)
modbusReadHoldingRegisters
modbusReadHoldingRegisters(name, unit, address, quantity)
modbusReadInputRegisters
modbusReadInputRegisters(name, unit, address, quantity)
modbusWriteMaskRegister
modbusWriteMaskRegister(name, unit, address, mask, bytes)
modbusWriteMultipleCoils
modbusWriteMultipleCoils(name, unit, address, coils, bytes)
modbusWriteMultipleRegisters
modbusWriteMultipleRegisters(name, unit, address, bytes)
modbusWriteSingleCoil
modbusWriteSingleCoil(name, unit, address, value)
modbusWriteSingleRegister
modbusWriteSingleRegister(name, unit, address, bytes)
Network Services
ping
ping(host, timeout)
wakeOnLan
wakeOnLan(broadcast, address)
Public Announcement
audioPlayFile
audioPlayFile(where, file)
audioPlayText
audioPlayText(where, voice, text)
Serial Communication Ports
closeComm
closeComm(portName)
readComm
readComm(portName, len)
writeComm
writeComm(portName, data)
Squeezebox
slimButton
slimButton(player, button)
slimCommand
slimCommand(player, command)
User Interface
uiClear
uiClear(session)
uiGet
uiGet(id, attr)
uiSessionGet
uiSessionGet(session, id, attr)
uiSessionSet
uiSessionSet(session, id, attr, value)
uiSet
uiSet(id, attr, value)
user
user(name, param)