> For the complete documentation index, see [llms.txt](https://docs.myrspoven.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.myrspoven.com/integrations/overview/bms-integrations/web-port.md).

# Web Port

Web Port is a Building Management System (BMS) gateway. myCoreAI uses it to read signals, write setpoints to control PLCs over Modbus, BACnet, and other industrial protocols. This page covers the full integration: installing a local Web Port server, connecting it to Myrspoven's Web Port-Cloud, configuring devices and tags, and finalizing signal flow in myPortal.

## Why Web Port matters

Web Port is not just a single vendor integration. It is a protocol gateway with driver support for a wide range of building and industrial devices.

That means Myrspoven is not limited to a short vendor list when Web Port is the delivery path. If the local system exposes the required signals through a supported driver, Myrspoven can often integrate through Web Port instead of needing a dedicated connector for that BMS brand.

Final fit still depends on signal availability, write scope, network access, and commissioning requirements. See [Web Port driver support](https://kiona.com/products/web-port/driver-support) for the current driver coverage.

## Components

The integration has three parts:

1. **Local Web Port.** A Windows service running on-site (or behind a VPN) that talks directly to control cabinets and DUCs. Can also be partner-hosted as a cloud service.
2. **Myrspoven's Web Port-Cloud.** A shared cloud Web Port instance. The local Web Port connects upward to it; myCoreAI reads tags from there.
3. **myPortal.** Generates the final signal and fallback scripts that wire the building into myCoreAI.

## Prerequisites

* A Windows host to run Web Port as a service. Windows 10 or later recommended. Older versions require .NET Framework 4.8 or later (from [Microsoft](https://dotnet.microsoft.com/en-us/download/dotnet-framework/net481)).
* A Web Port license file (`WebPort.lic`) from [market.webport.se](https://market.webport.se/webport).
* Network access from the host to on-site I/O devices and to Myrspoven's Web Port-Cloud at `https://myrspoven.webport.se`.
* Administrator rights on the host (required to install Web Port as a Windows service).
* A Myrspoven contact for cloud-side credentials, the signal-list template, and the Myrspoven edge build.

## Install the local Web Port

{% stepper %}
{% step %}

## Download the latest release

Download the latest Web Port server release from the [Web Port release page](https://iwmac.zendesk.com/hc/sv/articles/5100183398684-Senaste-releasen-Web-Port).
{% endstep %}

{% step %}

## Run the installer

Run the installer. The vendor's full [installation walkthrough](https://iwmac.zendesk.com/hc/en-gb/articles/6253490179996-Installation#Server) covers every screen. Key choices:

* **Drivers:** select the drivers required for the site's protocols (Modbus TCP, BACnet, etc.).
* **Run mode:** **Run as a Windows service** so Web Port starts with the host.
* **Server port:** default `8090`. Change only on port conflicts.
  {% endstep %}

{% step %}

## Place the license file

Place the `WebPort.lic` file in the Web Port data directory.
{% endstep %}

{% step %}

## Sign in

Open `http://localhost:8090` and sign in.
{% endstep %}
{% endstepper %}

{% hint style="warning" %}
**Rotate the default credentials immediately.** Web Port ships with a default administrator login. After the first sign-in, create a new admin account and disable or rotate the default before the host is exposed beyond localhost.
{% endhint %}

## Configure the local Web Port

### Connect to Web Port-Cloud

Skip this section for partner-hosted cloud Web Port — go straight to [Create an I/O device](#create-an-io-device).

{% stepper %}
{% step %}

## Connect from the local Web Port

On the local Web Port:

1. Open **System settings → Communication → Node setup**.
2. Click **Connect portal**.
3. Fill in:
   * **Name:** company or property name.
   * **Description:** e.g. "Web Port-Cloud Myrspoven".
   * **Portal address:** `https://myrspoven.webport.se/`
4. Save.
   {% endstep %}

{% step %}

## Activate the connection in Web Port-Cloud

Activate the connection on the Myrspoven side:

1. Sign in to [https://myrspoven.webport.se](https://myrspoven.webport.se/).
2. Open **System settings → Communication → Node setup**.
3. Select the new node.
4. Tick **Active device** and save.

An active connection shows green on both sides.
{% endstep %}
{% endstepper %}

### Enable trend logging

Trend logging must be on, otherwise no signal history is stored.

1. Open **System settings → Trend → Basic settings**.
2. Enable **Trend support** and save.

### Verify the host time zone

Incorrect Windows time zones cause signal timestamps to drift and break downstream analysis. Verify before continuing.

### Create an I/O device

An I/O device links Web Port to a control cabinet or DUC. At least one TCP/IP device is required. When each cabinet or DUC has its own IP, Web Port talks to each one directly.

The example uses Modbus TCP — creation is identical regardless of driver.

{% stepper %}
{% step %}

## Add the device

1. Open **System settings → Communication → Device**.
2. Click **Add device**.
3. Fill in:
   * **Name:** the control cabinet name, or the DUC number suffixed with the building name (e.g. `DUC1-ExampleBuilding`).
   * **Description:** optional.
   * **Driver:** the driver for the site (Modbus in this example).
4. Save. The device appears in the list and stays red until configured.
   {% endstep %}
   {% endstepper %}

### Configure the I/O device

This example covers Modbus TCP. Other drivers expose different fields — see the relevant [driver manual](https://iwmac.zendesk.com/hc/sv/articles/10579102738332-Drivrutinsmanualer-Web-Port).

{% stepper %}
{% step %}

## Open the device configuration

Open the new I/O device.
{% endstep %}

{% step %}

## Set the Modbus fields

Scroll to **Slave Address**, **Modbus type**, **(TCP) Host**, **(TCP) Port**.
{% endstep %}

{% step %}

## Fill in the values

Set:

* **Slave Address:** `1` for the master or first DUC, `2` for the next, and so on.
* **Modbus type:** usually **Modbus TCP**.
* **(TCP) Host:** the IP of the control cabinet or DUC.
* **(TCP) Port:** `502` is standard for Modbus. If closed on the target IP, escalate to the site owner or network team before continuing.
  {% endstep %}

{% step %}

## Save and verify

Save. A reachable IP with the port open turns the driver green with state **OK**.
{% endstep %}
{% endstepper %}

### Create a tag list

The simplest approach is an empty list, populated manually.

{% stepper %}
{% step %}

## Open Tags

Open **System settings → Tags**.
{% endstep %}

{% step %}

## Create the list

Click **New tag list**.
{% endstep %}

{% step %}

## Name and save

**Name:** same convention as the I/O device — building name plus the device.

Save.

To edit later, click the tag icon to the left of the name, or click the row and choose **Edit**.
{% endstep %}
{% endstepper %}

### Create tags

Tag creation is identical across protocols — only the address format changes.

{% stepper %}
{% step %}

## Create a new tag

Click **New tag**.
{% endstep %}

{% step %}

## Fill in the fields

Fill in:

* **Name:** structure `BuildingName_Unit_Sensor_Property` — e.g. `ExampleBuilding_HC1_AHU1_TE1_SP`. Consistent prefixes keep signal lists portable across buildings. Avoid Å, Ä, Ö — the database sometimes replaces them with an underscore.
* **I/O device:** the device the tag belongs to.
* **Address:** maps the tag to the underlying object and controls read/write access.
* **Data type:** `INT` for analog I/O; `DIGITAL` for digital signals (0/1).
* **Raw min/max** and **End min/max:** scale the raw value.
* **Unit:** SI unit.
* **Format:** four decimals is standard.
* **Description:** what the tag represents.
* **Trend log:** must be enabled. 300-second interval is sufficient.
  {% endstep %}

{% step %}

## Save

Save the tag, then the tag list.
{% endstep %}
{% endstepper %}

### Filter signals

Exclude any signal not used for optimization or reporting. Fewer irrelevant signals means cleaner mapping later and less noise downstream in myCoreAI.

## Configure Web Port-Cloud

These steps happen in [myrspoven.webport.se](https://myrspoven.webport.se/) and wire the cloud Web Port to myCoreAI.

### Create a group

Each building gets its own group. Group members inherit access to Web Port's API and to the building's tags, and are linked to myCoreAI.

{% stepper %}
{% step %}

## Create the group

1. Open **System settings → Groups**.
2. Click **New group**.
3. **Group name:** building name plus protocol suffix — e.g. `ExampleBuilding_Modbusgroup`.
4. Leave the rest at defaults and save.
   {% endstep %}
   {% endstepper %}

### Create users

Three users per building: **discovery**, **read**, **write**.

{% stepper %}
{% step %}

## Create a user

1. Open **System settings → Users**.
2. Click **New user**.
3. Set the username:
   * `BuildingName_discovery`
   * `BuildingName_read`
   * `BuildingName_write`
4. Set a strong, unique password per user and store it in a password manager. Never reuse passwords across buildings. No leading or trailing spaces.
5. Assign the user to the building's group and save.
6. Repeat for the remaining users.
   {% endstep %}
   {% endstepper %}

### Grant permissions

#### Tag permissions

{% stepper %}
{% step %}

## Create the tag permission

1. Open **System settings → Access → Permissions**.
2. Click **New permission → New tag permission**.
3. Set:
   * **User/Group:** the building's group.
   * **Tag filter:** the building's name followed by `_*` (e.g. `ExampleBuilding_*`). Restricts the permission to that building's tags.
   * **Permissions:** **ADMIN**.
4. Save.
   {% endstep %}
   {% endstepper %}

#### Function permissions

{% stepper %}
{% step %}

## Create the function permission

1. Open **System settings → Access → Permissions**.
2. Click **New permission → New function permission**.
3. Set:
   * **User/Group:** the building's group.
   * **Function:** **API access**.
   * **Permissions:** **ADMIN**.
4. Save.
   {% endstep %}
   {% endstepper %}

## Install the Myrspoven edge

The Myrspoven edge reads tags from Web Port and forwards them to myCoreAI. It runs on the same host as Web Port or on a host with network access to it.

{% stepper %}
{% step %}

## Obtain the build

Obtain the latest Myrspoven edge build from Myrspoven.
{% endstep %}

{% step %}

## Create the folder

Create `C:\Myrspoven` on the host.
{% endstep %}

{% step %}

## Copy and extract the package

Copy the edge package into `C:\Myrspoven\MyrspovenEDGE` and unzip it. Name the unzipped folder `Myrspoven Edge`. Delete the zip once extraction is verified.
{% endstep %}

{% step %}

## Create the scheduler folder

Open Windows Task Scheduler and create a `Myrspoven` folder.
{% endstep %}

{% step %}

## Add the scheduled tasks

Inside it, create the scheduled tasks supplied by Myrspoven (names, actions, and triggers are predefined).
{% endstep %}

{% step %}

## Configure credentials

Configure the credentials the scheduled tasks run as.
{% endstep %}

{% step %}

## Test the edge

Test the Myrspoven edge manually from a command prompt before relying on the triggers. Confirm signals appear in myCoreAI within the expected interval.
{% endstep %}
{% endstepper %}

## Finalize in myPortal

The last steps happen inside myPortal:

{% stepper %}
{% step %}

## Select the building

Select the building.
{% endstep %}

{% step %}

## Open the Web Port Script tool

Open **Tools → Web Port Script**.
{% endstep %}

{% step %}

## Generate the scripts

Follow the in-app instructions to generate the signal script and fallback script.
{% endstep %}

{% step %}

## Adjust if needed

Adjust the script in a text editor if needed.
{% endstep %}

{% step %}

## Paste into Web Port

Paste the script into the local Web Port.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
myPortal's in-app instructions are canonical. On any conflict with this page during script generation, myPortal wins.
{% endhint %}

## Troubleshooting

* **Web Port won't start as a service.** Check the Windows Event Log. Most common causes: missing or expired license file, or another process holding the configured port.
* **Signals collected but timestamps look wrong.** Re-check host time zone and confirm Trend Basic Settings is enabled.
* **Myrspoven edge runs manually but not from Task Scheduler.** Verify the scheduled task's credentials have read access to the Web Port data directory and outbound network access.
* **Driver shows red, not OK.** Confirm the target IP is reachable from the host and the configured TCP port (502 for Modbus) is open end-to-end.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.myrspoven.com/integrations/overview/bms-integrations/web-port.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
