Skip to main content

MyHome

MyHome is a proprietary bus system for home automation developed by BTicino. HSYCO fully integrates with MyHome using the OpenWebNet (OWN) protocol.

HSYCO supports all MyHome devices and features that the OWN protocol officially supports, including lighting, automation, scenes, AUX and CEN addressing, the temperature control unit and burglar alarm unit.

The bus architecture can be arranged as a single bus or with a riser and several local busses.

Communication

HSYCO supports the Ethernet IP connection to MyHome through IP-based OWN gateways, including the F452, F453, F454, F453AV, F459, MH200, MH200N, MH201 (works in monitor mode only) and MH SERVER 1.

HSYCO also supports the L4686SDK module through an USB connection and an associated virtual serial port.

Gateway Configuration

The OWN gateway must be configured to allow open OWN connections from the IP address assigned to the HSYCO server.

L4686SDK Module

The L4686SDK interface module is connected to HSYCO using a USB cable.

The operating system creates a virtual serial port; its name depends on your HSYCO server configuration, and should be ttyUSB0 if there are no other devices connected to the USB ports.

You could also use the ftdi-n-n.n alias, that is unique for each physical USB port on the server.

For example, in this screenshot we can take a look to the configuration with an L4686SDK connected to the second USB port (ttyUSB1)

MyHome L4686SDK

L4686SDK Limitations

  • L4686SDK firmware version 1.20.0 or later is required
  • Not all protocol frames are supported. The I/O server has been tested with the following functions: scenarios, lights, automation, temperature control, AUX and CEN plus
  • Check the L4686SDK documentation to know which functions are actually supported, also based on the L4686SDK firmware version
  • The clock read and sync functions are not supported
  • HSYCO only support the L4686SDK module on a single main bus; private raiser buses are not supported
  • the USB connection cable should never be unplugged during normal operations. If the cable is unplugged, HSYCO will not be able to restore the connection to the L4686SDK until it is manually restarted.

HSYCO Configuration

Add a MYHOME I/O Server in the I/O Servers section of the Settingsfield defines the module’s family or function and set its parameters:

Communication

  • IP Address: IP address of the gateway. The gateway's MAC address can be used instead of the IP address
  • IP Port: TCP/IP port to use, leave blank to use default port 20000.

Authentication

  • Password: required when the OpenWebNet gateway requires the HMAC authentication or legacy authentication. (the password can be changed in the System menu of Bticino MyHOME App, it is called "OPEN password")

High Availability

  • Shutdown when inactive: defaults to false.

Options

IDDefaultValuesDescription
guitruetrueenables automatic support of Web GUI objects to show the status of the system and intercept control buttons
falsedisables support for the Web GUI
startupeventsfalsetruegenerate IO events also during the driver’s start-up phase
falsestart generating events only after HSYCO is aligned with the current status of the system
discoverytruetrueauto-detects MyHome lighting and automation devices that are connected to the bus and are fully operational, and automatically creates the list of all detected devices and individual data points in the systemtopo.txt file
falseauto-detect is disabled
monitoronlyfalsetruedisable the Command Dispatcher and only use the I/O Server to monitor the bus status (this option is not available with the L4686SDK interface module)
falseCommand Dispatcher is enabled, and the I/O Server can send commands to the bus
tempignorelocaloffsetfalsetruewhen sending zones absolute setpoint commands, the local offset is not corrected
falsesetting a setpoint to an absolute value, it is corrected by the local offset
tempzonesz<n>if you want to monitor and control temperature zones, all zone numbers should be listed with the tempzones option. <n> is the zone number. Multiple zones should be separated by semicolons
languageenen, it, frthe language used for automatically generated GUI text fields
supersockettruetrueuse the "super socket" command session mode
falseuse the normal command session mode (required for the MH201)
networkinterfacestringoptional local network interface name, used when the gateway's MAC address is used instead of the IP address, and the HSYCO server has more than one network interface
note

The 4695 four zone temperature control unit uses a zone address for the control unit itself. This address has to be marked as a special address in the tempzones parameter, enclosing it in round brackets.

For example:

tempZones=(32);33

defines a central unit having address 32, and an additional zone with address 33.

The MyHome I/O Server supports only one central unit for each SCS riser bus.

myhome.ini

The myhome.ini file is a specific configuration file located in the main directory (same directory as hsyco.ini or hsyco.jar).

This file is optional. It is only used to assign friendly names to the burglar alarm zones and technical alarms, so that these names are used in the GUI log and the security.log files.

If you have multiple My Home gateways with multiple burglar alarm panels, the parameters need to be defined for each system, using unique ids, according to the following table:

IDDescription
security.zone.<n>the friendly name for burglar alarm zone <n>
security.aux.<n>the friendly name for burglar alarm technical alarm <n>

The myhome.ini is automatically detected at start-up and automatically reloaded whenever it is modified.

For example, the following myhome.ini file is used to define a few friendly names of two distinct My Home systems:

mh1.security.zone.1.name=entrance
mh1.security.zone.2.name=lobby
mh1.security.aux.1.name=flooding
mh2.security.zone.3.name=windows
mh2.security.zone.5.name=driveway

The Device Configuration Database

The systemtopo.txt file contains the list of all lighting and automation devices that could be directly associated to graphic object in the Web-based user interface.

This file can be filled manually or automatically by HSYCO at start-up. To enable automatic discovery and automatic generation of devices’ information in the systemtopo file, use the discovery option in System Settings. The discovery feature is enabled by default.

This is an example of an automatically generated systemtopo.txt file:

(devices)
mh.autom.82 : AUTOM ; VSHUT ;
mh.autom.88 : AUTOM ; VSHUT ;
mh.autom.93 : AUTOM ; VSHUT ;
mh.autom.96 : AUTOM ; VSHUT ;
mh.light.11 : LIGHT ; LIGHT ;
mh.light.12 : LIGHT ; LIGHT ;
mh.light.13 : LIGHT ; LIGHT ;
mh.light.16 : LIGHT ; LIGHT ;
mh.light.25 : LIGHT ; DIMMER ; DIMMER

Note that HSYCO can automatically detects dimmer modules if they are on when discovery is performed. If a dimmer is off, it will be listed as an ordinary on/off light module, and should be manually changed to DIMMER.

You should manually add comments and other optional parameters:

(devices)
mh.autom.82 : AUTOM ; VSHUT ; driveway gate
mh.autom.88 : AUTOM ; VSHUT ; awning
mh.autom.93 : AUTOM ; VSHUT ; kitchen shutter
mh.autom.96 : AUTOM ; VSHUT ; bedroom shutter

Also, if you want to use (button) objects in the Project Editor to control scenes, you should manually add scenes definitions in systemtopo.txt, as HSYCO can’t automatically detect scene modules and stored scenes:

(devices)
mh.scene.94.5 : LIGHT ; SCENE ; close all shutters
mh.scene.94.10 : LIGHT ; SCENE ; night mode

Datapoints

The naming convention HSYCO uses for the events and to control all MyHome devices is closely related to the MyHome addressing standards and the OpenWebNet protocol implementation.

In OWN, the standard monitor and command frames have the following format:

*<who>*<what>*<where>##

The <who> field defines the module’s family or function. <what> is the state of a device, for example 0 for off and 1 for the on state of an on/off module. Finally, <where> is the module’s address, including the local bus number if the module is not on the riser bus.

With few exceptions, this frame format translates to the following event format inside HSYCO:

IO servername.<who>.<where> = <what>

The WHO field in OWN frames is a number, while we use a literal string in HSYCO to make names easier to read.

The table below lists all supported <who> functions and the HSYCO’s corresponding literals that form the prefix of all IO data points.

OWN WHOHSYCO PrefixFunction Description
0scenescenario module
1lightlighting module
2automautomation module (inter-locking)
3loadload control
4temptemperature control
5securityburglar alarm panel
9auxauxiliary address
15cencen modules / addresses
25cenpluscen plus modules and dry contacts / IR modules

The <where> field in OWN is, in most cases, the numeric address of a module, eventually followed by #4#<b> for modules on local buses (<b>< is the local bus numerical id). Group addressing has the <where> field formatted as #<g>, where <g> is the group’s numerical id.

The table below defines the conversion rules between the OWN <where> format and HSYCO’s data points format.

OWN WHEREHSYCO FormatDescription
<n><n>if <n> is a plain number, it is used as-is in HSYCO. Note that you should retain the leading zero when present. 01 is not equivalent to 1 in OWN, and HSYCO simply passes the where field back and forth with no changes
#<n>g<n>group addresses are represented in HSYCO as a lowercase g followed by the group numerical id, from 1 to 9
<n>#4#<b>l<b>.<n>a lowercase l and the local bus id are prefixed to the base address
#<n>#4#<b>l<b>.g<n>group addressing on local buses

The <what> field represents the value or action, and corresponds to the data point value in HSYCO. Each function supports a specific set of <what> values.

Gateway Module

IDValueR/WDescription
connectiononlineRconnection established to the OWN gateway
offlineRHSYCO can’t connect to the OWN gateway
frameOWN raw frameRa frame event is generated on incoming frames, based on the monitor setting (see below)
Wsend a raw OWN frame to the gateway
monitornoneWthe frame datapoint is not set with monitored frames
ignoredWthe frame datapoint is set with monitored frames that are not recognized and translated to specific events
allWthe frame datapoint is set with any monitored frame
clocksyncWset the gateway clock to HSYCO’s current time
readWread the gateway clock, and the delta with HSYCO’s time
<yyyy>-<mm>-<dd> <hh>:<mm>:<ss>Rthe gateway clock current time
clock.deltaintegerRthe delta time in seconds between the gateway and HSYCO clocks. A positive number means that the gateway clock is ahead of HSYCO

Scenario Modules

IDValueR/WDescription
scene.<module>
scene.<bus>.<module>
eraseRall scenarios erased
Werase all scenarios
lockRmodule is locked (cannot erase or record scenarios)
Wlock the scenario module
unlockRmodule is unlocked (can erase and record scenarios)
Wunlock the scenario module
unavailableRthe scenario module is busy
fullRthe scenario module memory is full
scene.<module>.<scene>
scene.<bus>.<module>.<scene>
1Rscenario activated
Wexecute scenario
onWexecute scenario
0Rscenario deactivated or cleared
Wdeactivate scenario
offWdeactivate scenario
clearWclear scenario status, without sending the deactivate command to the module
recordRrecording
Wstart recording
endRend of recording
Wstop recording
eraseRthe scenario has been erased
Werase scenario
note

<module> is the scenario module address, from 01 to 99 (retain the leading 0).

<bus> is the local bus ID, from 1 to 9, when the scenario module is on a local bus and not on the riser bus.

<scene> is the scenario number, from 1 to 32 (do not add a leading 0 for numbers less than 10).

tip

The unavailable event is generated when the scenario module cannot accept commands. This usually happens when the module is recording a scenario and at the same time is asked to execute another scenario.

Lighting: on/off Modules

IDValueR/WDescription
light.<where>1Ron status
Wturn on
onWturn on
0Roff status
Wturn off
offWturn off
lockWlock (disable)
unlockWunlock (enable)

When a module is locked, it doesn’t respond to any bus command except the unlock command.

Lighting: Dimmer Modules

IDValueR/WDescription
light.<where>1Wturn on at last level
onWturn on at last level
0Roff status
Wturn off
offWturn off
<x>%R<x>% level
Wset to <x>% level
<x>Wset to <x>% level
<x>/<y>Wset to <x>/<y> level
faultRload fault detected
lockWlock (disable)
unlockWunlock (enable)

Dimmers level can be set between 20% and 100%, in 10% steps.

Automation: Inter-locking Modules

IDValueR/WDescription
autom.<where>unknownRthe module’s status is unknown at this time
offupRoff in up position
offdownRoff in down position
stop
off
0
Wstop
upRgoing up
Wup/open command
downRgoing down
Wdown/close command
lockWlock (disable)
unlockWunlock (enable)

When the MyHome driver starts, and until an up or down command is sent to the module, HSYCO sets the data point value to unknown.

The offup and offdown status values do not represent the fully up/opened or down/closed position of the mechanical device controlled by the module, but just the fact that the module was commanding an up or down movement before being stopped.

Temperature Control: Central Unit

IDValueR/WDescription
temp.control0Rsupervisor control of central unit disabled
1Rsupervisor control of central unit enabled
temp.zone.off
[forced event]
1Rat least one zone is set to off mode
temp.zone.protection
[forced event]
1Rat least one zone is set to protection mode
temp.zone.manual
[forced event]
1Rat least one zone is set to manual mode
temp.fault
[forced event]
1Rgeneric fault
temp.battery.fault
[forced event]
1Rcentral unit battery fault
temp.modewinterRwinter mode
Wset winter mode
summerRsummer mode
Wset summer mode
temp.setpointoffRoff mode
protectionRtemperature protection mode
<t>Rwhen setpoint.mode=man, <t> is the temperature setpoint in °C/10
<p>Rwhen setpoint.mode=auto, <p> is the weekly program, from 1 to 3
<s>Rwhen setpoint.mode=scenario, <s> is the scenario number, from 1 to 16
<d>Rwhen setpoint.mode=away, <d> is the number of days, from 1 to 255
<p>Rwhen setpoint.mode=holiday, <p> is the weekly program to be set at the end of the day
temp.setpoint.modeoffRcentral unit is off
protectionRcentral unit is in temperature protection mode
manRcentral unit is in manual mode
autoRcentral unit is in automatic mode
scenarioRcentral unit is in scenario mode
awayRcentral unit is in away mode
holidayRcentral unit is in holiday mode
temp.commandoffWturn the system off
protectionWset temperature protection mode
1Wset weekly program 1
2Wset weekly program 2
3Wset weekly program 3
<t>Wset to manual mode, temperature <t> (in C/10), for example t=215 is 21.5 °C
upWset to manual mode, raising the setpoint by 0.5 °C
downWset to manual mode, lowering the setpoint by 0.5 °C
holidayWset holiday program (returns to weekly program 1 at midnight)
holiday.<n>Wset holiday program (returns to weekly program <n> at midnight)
away.<yyyymmdd>Wset away mode until the day passed as parameter, returning to weekly program 1 at midnight
away.<yyyymmdd> .<n>Wset away mode until the day passed as parameter, returning to weekly program <n> at midnight
away.<d>Wset away mode for <d> days, returning to weekly program 1 at midnight
away.+<d>Wincreases the number of away days by <d>, starting from 2 days
away.-<d>Wdecreases the number of away days by <d>
away.<d>.<n>Wset away mode for <d> days, returning to weekly program <n> at midnight
scenario.<n>Wset scenario mode <n>

Temperature Control: Zones

In the following table, <z> is the zone number, from 1 to 99.

IDValueR/WDescription
temp.<z>.cooling.status0Rzone actuator off in summer mode
1Rzone actuator on in summer mod
temp.<z>.fanoffRfan is off
minRslow fan speed
medRmedium fan speed
maxRfast fan speed
temp.<z>.modewinterRwinter mode
summerRsummer mode
temp.<z>.setpointoffWturn zone off
autoWset zone to automatic mode
protectionWset zone to temperature protection mode
upWset zone to manual mode, raising the setpoint by 0.5 °C
downWset zone to manual mode, lowering the setpoint by 0.5 °C
<t>Rcurrent temperature setpoint <t> (in °C/10), corrected with local offset
<t>Rset zone to manual mode, temperature <t> (in °C/10), for example t=215 is 21.5 °C
temp.<t&gt.setpoint.local-3 ... +3Rzone local offset is set to -3 ... +3
protectionRzone locally set to protection mode
offRzone locally set to off
temp.<z>.setpoint.modeoffRzone is off
autoRautomatic mode
manRmanual mode
protectionRprotection mode
temp.<z>unlockWzone unlock

Burglar Alarm: Main Panel

IDValueR/WDescription
security.active0Rthe burglar alarm panel is not active
1Rthe burglar alarm panel is active (not necessarily armed)
security.alarm0Rno alarm
1Rongoing alarm condition
security.delay
[forced event]
endRend of arming delay (system now fully armed)
security.lowbattery0Rbattery ok
1Rlow battery or battery fault condition
security.maintenance0Rnot in maintenance mode
1Rmaintenance mode
security.nopower0RAC power ok
1Rfault condition on the AC power supply
security.programming0Rnot in programming mode
1Rprogramming mode
security.statusoffRsystem not armed
armedRsystem armed
tip

Note that, because the MyHome burglar alarm panel cannot be directly controlled via OpenWebNet commands, there are no write-enabled data points for this system.

Burglar Alarm: Zones and Technical (aux)

In the following table, <z> is the zone number.

IDValueR/WDescription
security.aux.<z>.alarm
[forced event]
0Rtechnical alarm reset
1Rtechnical alarm zone <z>
security.sensor.<z>.fault
[forced event]
1Rsensor <z> fault
security.zone.<z>.active0Rzone <z> is not active
1Rzone <z> is active
security.zone.<z>.alarm0Rzone <z> intrusion alarm reset
1Rzone <z> intrusion alarm
security.zone.<z>.panic0Rzone <z> panic alarm reset
1Rzone <z> panic alarm
security.zone.<z>.tamper0Rzone <z> tamper alarm reset
1Rzone <z> tamper alarm

Auxiliary Addresses

IDValueR/WDescription
aux.<where>1Ron status
Wturn on
onWturn on
0Roff status
Wturn off
offWturn off

CEN Modules

IDValueR/WDescription
cen.<where>.<bt>onRbutton <bt> (00-31) pressed
Wvirtual press of button <bt>
offRbutton <bt> (00-31) released after short time (<= 0.5s)
Wvirtual short time release of button <bt>
offlongRbutton <bt> (00-31) released after long time (> 0.5s)
Wvirtual long time release of button <bt>
onrepeatRbutton <bt> (00-31) continues to be pressed (this event repeats every 0.5s)
Wvirtual long time pressure of button <bt>

CENPLUS Modules

IDValueR/WDescription
cenplus.<where>.<bt>
(used for CEN PLUS command modules)
onRbutton <bt> (00-31) pressed
Wvirtual press of button <bt>
offRbutton <bt> (00-31) released after short time (<= 0.5s)
Wvirtual short time release of button <bt>
offlongRbutton <bt> (00-31) released after long time (> 0.5s)
Wvirtual long time release of button<bt>
onrepeatRbutton <bt> (00-31) continues to be pressed (this event repeats every 0.5s)
Wvirtual long time pressure of button <bt>
cenplus.<where>
(used for DRY CONTACT and IR modules)
onRon status
Wturn on
offRoff status
Wturn off
requestWrequest a status update
note

The <where> field used for command modules is prefixed by the 2 character in front of the address, while dry contact and IR modules have the <where> field prefixed with 3.

WHEREValueDescription
20-2047CEN PLUS modules configured with Advanced Virtual Configuration
31-201for automation dry contact interface (3477 and F428) <where> should be configured using the Virtual Configurator Software
3[1-9][1-9]for alarm dry contact interface and IR (3480, F482, IR 4610, 4611, 4640) <where> is configured using <z> and <n> with physical configuration pins

F421 Load Control Unit

IDValueR/WDescription
load.voltagerefreshWrequests the measured voltage
VRmeasured voltage, in Volts
load.currentrefreshWrequests the measured current
IRmeasured current, in Amperes
load.powerrefreshWrequests the measured power
PRmeasured power, in Watts
load.energyrefreshWrequests the measured energy
ERmeasured energy
note

Note that reading a measured value to the F421 load control unit requires a relatively long time (up to about 4 seconds, based on our tests) and, during this time, the My Home gateway is unable to process any other request. This can result in temporary slowdown of the execution of other commands.

User Interface

Temperature Control Unit

UISET Actions

IDAttribute
temp.statusvaluesummer/winter followed by the current status, for example: WINTER MAN 21.0 °C

USER Commands

NameParamAction
temp.commandoffturn the system off
temp.commandprotectionset temperature protection mode
temp.command1set weekly program 1
temp.command2set weekly program 2
temp.command3set weekly program 3
temp.command<t>set to manual mode, temperature <t> (in °C/10), for example t=215 is 21.5 °C
temp.commandupset to manual mode, raising the setpoint by 0.5 °C
temp.commanddownset to manual mode, lowering the setpoint by 0.5 °C
temp.commandholidayset holiday program (returns to weekly program 1 at midnight)
temp.commandholiday.<n>set holiday program (returns to weekly program <n> at midnight)
temp.commandaway.<yyyymmdd>set away mode until the day passed as parameter, returning to weekly program 1 at midnight
temp.commandaway.<yyyymmdd>.<n>set away mode until the day passed as parameter, returning to weekly program <n> at midnight
temp.commandaway.<d>set away mode for D days, returning to weekly program 1 at midnight
temp.commandaway.+<d>increases the number of away days by <d>, starting from 2 days
temp.commandaway.-<d>decreases the number of away days by <d>
temp.commandaway.<d>.<n>set away mode for <d> days, returning to weekly program <n> at midnight
temp.commandscenario.<n>set scenario mode <n>

Temperature Zones

The standard TempMini object can be used to control each zone. The fan speed indicator is not visible if the zone is not configured for fan control.

Set the I/O server id in the Server ID field, and temp.<z> where <z> is the zone number from 1 to 99 in the Address field.

note

The Temp object is not supported for the MyHome system.

Zone unlock

If a zone has been locked in the off or protection modes using the local dial, you can create a [[User]] object to unlock that zone.

NameParamAction
temp.<z>unlockunlock zone <z>

Burglar Alarm Unit

UISET Actions

IDAttribute
security.statusvalueshows system status: ARMED, DISARMED or MAINTENANCE
security.alarmvalueshows ALARM if there is an ongoing alarm condition, empty otherwise
security.alarm.typevalueshows the alarm type, if not an intrusion alarm: TAMPER, PANIC or TECHNICAL
security.zonesvalueshows zones 1-8 activation status, for example: 12-----8 means that only zones 1, 2 and 8 are active
security.log.<n>valuelog line <n> of the events log, where <n> is between 1 and 20. Line 1 lists the most recent event
security.status.label.maintenancevisibletrue only when the burglar alarm panel is in maintenance mode
security.status.label.activevisibletrue only when the burglar alarm panel is active (not necessarily armed)
security.lowbattery.labelvisibletrue only when there is a low battery or battery fault condition
security.acfault.labelvisibletrue only when there is a fault condition on the AC power supply
security.status.label.armedvisibletrue only when the system is armed
security.alarm.label.intrusionvisibletrue only when there is an ongoing intrusion alarm condition
security.alarm.label.tampervisibletrue only when there is an ongoing tamper alarm condition
security.alarm.label.panicvisibletrue only when there is an ongoing panic alarm condition
security.alarm.label.auxvisibletrue only when there is an ongoing technical alarm condition

USER Commands

Because the MyHome burglar alarm panel cannot be directly controlled via OpenWebNet commands, there are no standard control objects for this system.

Release Notes

3.8.0

  • added support for legacy OpenWebNet password authentication
  • the OpenWebNet gateway can also be addressed using its MAC address

3.7.0

  • added support for HMAC authentication (for MyHome Server 1 and other recent OpenWebNet gateways)

3.6.0

  • new "tempignorelocaloffset" option: when true, when sending zones absolute setpoint commands, the local offset is not corrected. Defaults to false

3.5.1

  • new "monitoronly" option. Set to true to disable the Command Dispatcher and only use the I/O Server to monitor the bus status. Defaults to false

3.4.0

  • bug-fix: when using the L4686SDK interface, added a small delay when sending commands, to ensure that feedback is properly received by the L4686SDK

3.3.0

  • added support of the L4686SDK interface module

3.2.2

  • clock read and sync are now based on local time

3.2.1

  • improved handling of connection errors

3.2.0

  • new clock datapoint to read the gateway’s internal clock and set it to HSYCO's time

3.0.0

  • initial release

MyHome and BTicino are registered trademarks of BTicino SpA.