Ignition installation in Docker can't connect with Bacnet Device

Hello
I have some problems connecting my Ignition/docker Installation with bacnet devices.

My port configuration on docker

 	
0.0.0.0:4445 -> 4445/tcp
0.0.0.0:4446 -> 4446/tcp
0.0.0.0:47808 -> 47808/tcp
0.0.0.0:47808 -> 47808/udp
0.0.0.0:8060 -> 8060/tcp
0.0.0.0:8088 -> 8088/tcp

I have a bacnet client on the same network as the docker computer. It finds all my devices. Ignition and ventilation.
Ignition can connect to a modbus device that are connected on the same network as the ventilation.

My logs tells me that it's more devices with the same device number. But it's not.

IAmRequest	25May2023 23:31:39
	Another instance with my device instance ID found at Address [networkNumber=0, macAddress=[ac,15,0,1,cf,7d]]
IAmRequest	25May2023 23:31:00
	Another instance with my device instance ID found at Address [networkNumber=0, macAddress=[ac,15,0,1,dd,1]]

I think is something to do with the * Config* Bacnet * Local Devices Setup.
On Bind Address. I have tried but linux host IP address. Then I get a error

Error initializing LocalDevice "Ignition_Local_BacNet". bindAddress=10.80.4.10, bindPort=47808, networkNumber=1, deviceNumber=11000

If I use the hostname on the docker/ignition container virtual network. I don't get this error.

I'm don't know whats right to put on the Broadcast Address.

I drew a picture to try and explain better



If you're running this directly on Linux and you're trying to publish all of the ports, perhaps just remove all of those port publishes and use host networking?

With respect to running it on a Docker network, can you share the specific syntax you're using to publish the UDP ports? The default is TCP and the port configuration you listed isn't clear (as it pertains to the applied configuration on the container). Perhaps you can share the contents of docker inspect <container> if there isn't anything too special in there?

We have been using this docker-compose file on other projects. But then with out bacnet. just opca/ua and modbus.

version: '3.1'
services:
  gateway:
    image: inductiveautomation/ignition:latest  # You can change `latest` to a specific version, e.g. `8.0.5`
    platform: "linux/amd64"                     #"linux/arm/v7" "linux/arm64" "linux/amd64"
    restart: "unless-stopped"
    ports:
      - "8088:8088"     # Port 8088 is visable out side of the docker
      - "8060:8060"     # Port 8060 is visable out side of the docker
      - "4445:4445"     # Port 4445 is visable out side of the docker  	Send. This port must be open on this machine to send multicast messages.
      - "4446:4446"     # Port 4446 is visable out side of the docker  	Receive. This port must be open on this machine to send multicast messages.
      - "47808:47808"       # Port 47808 Bacnet TCP
      - "47808:47808/udp"   # Port 47808 Bacnet UDP

    stop_grace_period: 30s
    volumes:
      # - ./gateway_backup.gwbk:/restore.gwbk
      - gateway_data_ignition:/var/lib/ignition/data
    logging:
      driver: "json-file"
      options:
        max-size: "200k"
        max-file: "10"
    environment:
      TZ: Europe/Oslo
    networks:
      - ignition-Storm-network
  db:
    image: mariadb:latest
    restart: "unless-stopped"
    stop_grace_period: 30s
    ports:
      # Note that the 3306 port doesn't need to be published here for the gateway container to connect, 
      # only for external connectivity to the database.
      - "3306:3306"         # Port 3306 is visable out side of the docker
    volumes:
     - db_data_ignition:/var/lib/mysql
    logging:
      driver: "json-file"
      options:  
        max-size: "200k"
        max-file: "10"
    environment:  
      MARIADB_ROOT_PASSWORD: passwd  # specify the password for the root user
      MARIADB_DATABASE: ignition               # create a database with this name
      MARIADB_USER: ignition               # create a user with this name, with all privileges on MARIADB_DATABASE if specified
      MARIADB_PASSWORD: passwd         # password for above user
    networks:
      - ignition-Storm-network

  adminer:
    image: adminer
    restart: "unless-stopped"
    stop_grace_period: 30s    
    ports:
      - "8080:8080"
    environment:
      TZ: Europe/Oslo
      ADMINER_DEFAULT_SERVER: db_data_ignition
      ADMINER_DESIGN: galkaev
    networks:
      - ignition-Storm-network

networks:
  ignition-Storm-network:

volumes:
  gateway_data_ignition:
  db_data_ignition:

With this docker-compose setup I can se the Ignition bacnet Client.

I ask ChatGPT it said that the docker container should be like this. More ports is redirected

docker run -d --name ignition \
  -p 8088:8088 -p 8043:8043 -p 8060:8060 -p 8080:8080 -p 2810:2810 -p 27101:27101 -p 47808:47808/udp \
  quay.io/ignition/ignition:latest

I tride to do this in my docker-compose file. and made just ignition

version: '3.1'
services:
  gateway:
    image: inductiveautomation/ignition:latest  # You can change `latest` to a specific version, e.g. `8.0.5`
    platform: "linux/amd64"                     #"linux/arm/v7" "linux/arm64" "linux/amd64"
    restart: "unless-stopped"
    ports:
      - "8088:8088"
      - "8043:8043"
      - "8060:8060"
      - "8080:8080"
      - "2810:2810"
      - "27101:27101"
      - "47808:47808/udp"

    stop_grace_period: 30s
    volumes:
      # - ./gateway_backup.gwbk:/restore.gwbk
      - ignition:/var/lib/ignition/data
    logging:
      driver: "json-file"
      options:
        max-size: "200k"
        max-file: "10"
    environment:
      TZ: Europe/Oslo
    networks:
      - ignition-Storm-network

networks:
  ignition-Storm-network:

volumes:
  ignition:

One differens I found on this setup is that the IAmRequest error don't appear.

IAmRequest	25May2023 23:31:39
	Another instance with my device instance ID found at Address [networkNumber=0, macAddress=[ac,15,0,1,cf,7d]]

But I now don't see any bacnet errors in the log.

ProjectRunner	26May2023 07:57:01
	Setting SQL Bridge project enabled state to 'ENABLED'
LicenseManager	26May2023 07:57:01
	Trial time reset. Time remaining = 7200.
ProjectRunner	26May2023 02:18:21
	Setting SQL Bridge project enabled state to 'DISABLED'
Project	26May2023 00:34:55
	Restarting gateway scripts...
Project	26May2023 00:34:55
	Restarting gateway scripts...
ModuleManager	26May2023 00:34:55
	Starting up module 'com.inductiveautomation.opcua.drivers.bacnet' v2.1.27 (b2023042509)...
ModuleManager	26May2023 00:34:54
	Shutdown of module "com.inductiveautomation.opcua.drivers.bacnet" completed in 7 ms
ModuleManager	26May2023 00:34:54
	Shutting down module 'com.inductiveautomation.opcua.drivers.bacnet' v2.1.27 (b2023042509)...
ModuleManager	26May2023 00:34:54
	Restarting module "com.inductiveautomation.opcua.drivers.bacnet"
DefaultExceptionMapper	26May2023 00:32:29
	Connection lost, give up responding.
InternalDatabase	26May2023 00:31:55
	Created auto-backup of internal database "config.idb" in 220 ms
InternalDatabase	26May2023 00:31:55
	Creating auto-backup of internal database "config.idb"...
PropertiesFactory	26May2023 00:30:03
	Loading properties files from jar:file:/usr/local/bin/ignition/lib/core/gateway/wicket-extensions-6.30.0.jar!/org/apache/wicket/extensions/Initializer.properties with loader org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@4e892aa5
PropertiesFactory	26May2023 00:30:03
	Loading properties files from jar:file:/usr/local/bin/ignition/lib/core/gateway/wicket-core-6.30.0.jar!/org/apache/wicket/Application.properties with loader org.apache.wicket.resource.IsoPropertiesFilePropertiesLoader@4e892aa5
...com.inductiveautomation.ignition.gateway	26May2023 00:27:11
	redundancyStateChanged: Role=Independent, Activity level=Active, Project state=Good, History level=Full
IgnitionGateway	26May2023 00:27:11
	Ignition[state=STARTING] ContextState = RUNNING
IgnitionGateway	26May2023 00:27:11
	Gateway started in 16 seconds.
ModuleManager	26May2023 00:27:11
	Starting up module 'com.inductiveautomation.opcua.drivers.dnp3' v4.1.27 (b2023042509)...
ModuleManager	26May2023 00:27:11
	Starting up module 'com.inductiveautomation.opcua.drivers.logix' v5.1.27 (b2023042509)...
ModuleManager	26May2023 00:27:11
	Starting up module 'com.inductiveautomation.opcua.drivers.iec61850' v1.1.27 (b2023042509)...
ModuleManager	26May2023 00:27:11
	Starting up module 'com.inductiveautomation.opcua.drivers.ablegacy' v6.1.27 (b2023042509)...
NonceUtil	26May2023 00:27:11
	SecureRandom seeded in 0ms.
ModuleManager	26May2023 00:27:11
	Starting up module 'com.inductiveautomation.opcua.drivers.modbus' v7.1.27 (b2023042509)...
ModuleManager	26May2023 00:27:11
	Starting up module 'com.inductiveautomation.opcua.drivers.siemens' v6.1.27 (b2023042509)...
ModuleManager	26May2023 00:27:10
	Starting up module 'com.inductiveautomation.opcua.drivers.bacnet' v2.1.27 (b2023042509)...
OpcUaClient	26May2023 00:27:10
	Eclipse Milo OPC UA Client SDK version: 0.6.9
OpcUaClient	26May2023 00:27:10
	Eclipse Milo OPC UA Stack version: 0.6.9
OpcUaClient	26May2023 00:27:10
	Java version: 11.0.18

But I still don't have a connection.

the docker inspect info from the last docker-compose with more ports exspost

storm@sm-ignition:~$ docker inspect cd69de38b22b
[]
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/cd69de38b22b/json": dial unix /var/run/docker.sock: connect: permission denied
storm@sm-ignition:~$ sudo docker inspect cd69de38b22b
[
    {
        "Id": "cd69de38b22b4c35e9b7682b0bddefc6f94e433d41639b5162e9c88b6f162969",
        "Created": "2023-05-25T22:15:28.691946971Z",
        "Path": "docker-entrypoint.sh",
        "Args": [],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 2080817,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2023-05-25T22:26:52.803960608Z",
            "FinishedAt": "2023-05-25T22:26:52.204764308Z",
            "Health": {
                "Status": "healthy",
                "FailingStreak": 0,
                "Log": [
                    {
                        "Start": "2023-05-26T08:00:48.265392584+02:00",
                        "End": "2023-05-26T08:00:48.326447714+02:00",
                        "ExitCode": 0,
                        "Output": ""
                    },
                    {
                        "Start": "2023-05-26T08:00:58.328876065+02:00",
                        "End": "2023-05-26T08:00:58.390548078+02:00",
                        "ExitCode": 0,
                        "Output": ""
                    },
                    {
                        "Start": "2023-05-26T08:01:08.393577952+02:00",
                        "End": "2023-05-26T08:01:08.45894387+02:00",
                        "ExitCode": 0,
                        "Output": ""
                    },
                    {
                        "Start": "2023-05-26T08:01:18.46867795+02:00",
                        "End": "2023-05-26T08:01:18.548539916+02:00",
                        "ExitCode": 0,
                        "Output": ""
                    },
                    {
                        "Start": "2023-05-26T08:01:28.940815627+02:00",
                        "End": "2023-05-26T08:01:29.005660784+02:00",
                        "ExitCode": 0,
                        "Output": ""
                    }
                ]
            }
        },
        "Image": "sha256:ab808c23d368bd852ea8cbc9c9c1759577b7da8e5feb607de79b7a7574811fe0",
        "ResolvConfPath": "/var/lib/docker/containers/cd69de38b22b4c35e9b7682b0bddefc6f94e433d41639b5162e9c88b6f162969/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/cd69de38b22b4c35e9b7682b0bddefc6f94e433d41639b5162e9c88b6f162969/hostname",
        "HostsPath": "/var/lib/docker/containers/cd69de38b22b4c35e9b7682b0bddefc6f94e433d41639b5162e9c88b6f162969/hosts",
        "LogPath": "/var/lib/docker/containers/cd69de38b22b4c35e9b7682b0bddefc6f94e433d41639b5162e9c88b6f162969/cd69de38b22b4c35e9b7682b0bddefc6f94e433d41639b5162e9c88b6f162969-json.log",
        "Name": "/ignition-gateway-1",
        "RestartCount": 0,
        "Driver": "overlay2",
        "Platform": "linux",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "docker-default",
        "ExecIDs": null,
        "HostConfig": {
            "Binds": null,
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {
                    "max-file": "10",
                    "max-size": "200k"
                }
            },
            "NetworkMode": "ignition_ignition-Storm-network",
            "PortBindings": {
                "27101/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "27101"
                    }
                ],
                "2810/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "2810"
                    }
                ],
                "47808/udp": [
                    {
                        "HostIp": "",
                        "HostPort": "47808"
                    }
                ],
                "8043/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "8043"
                    }
                ],
                "8060/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "8060"
                    }
                ],
                "8080/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "8080"
                    }
                ],
                "8088/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "8088"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "unless-stopped",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "ConsoleSize": [
                0,
                0
            ],
            "CapAdd": null,
            "CapDrop": null,
            "CgroupnsMode": "private",
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": [],
            "GroupAdd": null,
            "IpcMode": "private",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": null,
            "DeviceCgroupRules": null,
            "DeviceRequests": null,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": null,
            "OomKillDisable": null,
            "PidsLimit": null,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0,
            "Mounts": [
                {
                    "Type": "volume",
                    "Source": "ignition_ignition",
                    "Target": "/var/lib/ignition/data",
                    "VolumeOptions": {}
                }
            ],
            "MaskedPaths": [
                "/proc/asound",
                "/proc/acpi",
                "/proc/kcore",
                "/proc/keys",
                "/proc/latency_stats",
                "/proc/timer_list",
                "/proc/timer_stats",
                "/proc/sched_debug",
                "/proc/scsi",
                "/sys/firmware"
            ],
            "ReadonlyPaths": [
                "/proc/bus",
                "/proc/fs",
                "/proc/irq",
                "/proc/sys",
                "/proc/sysrq-trigger"
            ]
        },
        "GraphDriver": {
            "Data": {
                "LowerDir": "/var/lib/docker/overlay2/3f0b44057c06abc15b3143eb941c67b8c14dc291619a1f94f08c1e0de4c8ee23-init/diff:/var/lib/docker/overlay2/28718842f1a89769060aa9738e2d6e390bf649836344d67309e35d9f36500e99/diff:/var/lib/docker/overlay2/73ff1a730838047909130d03adc4ad28efe8730e638df4643afb142eae00031a/diff:/var/lib/docker/overlay2/bb788ebe2973a4ce5f2a9033f65943fa65ff345469717b633c9c7efe17993de1/diff:/var/lib/docker/overlay2/930c42d5b56cc0680c3d847c3251d6f665e9ce5e3cfe27034ae3f612bfea0f13/diff:/var/lib/docker/overlay2/19a7ab1b202377f4486e749f5196e266ca21c3bfdd2bd3ef5e575c982145921e/diff:/var/lib/docker/overlay2/28269c2fc10fe69a168a58fb06ba630f41bd04881d873fee00a8d838042a47e6/diff:/var/lib/docker/overlay2/58a757c39c631f83f33a4ecd239005328c240fa481db8a2faa4a5dc775725bb0/diff:/var/lib/docker/overlay2/1badc7d86a17df1987efa996fa682d352f914ee4dc684afdc66691433c2ba7e9/diff",
                "MergedDir": "/var/lib/docker/overlay2/3f0b44057c06abc15b3143eb941c67b8c14dc291619a1f94f08c1e0de4c8ee23/merged",
                "UpperDir": "/var/lib/docker/overlay2/3f0b44057c06abc15b3143eb941c67b8c14dc291619a1f94f08c1e0de4c8ee23/diff",
                "WorkDir": "/var/lib/docker/overlay2/3f0b44057c06abc15b3143eb941c67b8c14dc291619a1f94f08c1e0de4c8ee23/work"
            },
            "Name": "overlay2"
        },
        "Mounts": [
            {
                "Type": "volume",
                "Name": "ignition_ignition",
                "Source": "/var/lib/docker/volumes/ignition_ignition/_data",
                "Destination": "/var/lib/ignition/data",
                "Driver": "local",
                "Mode": "z",
                "RW": true,
                "Propagation": ""
            }
        ],
        "Config": {
            "Hostname": "cd69de38b22b",
            "Domainname": "",
            "User": "2003:2003",
            "AttachStdin": false,
            "AttachStdout": true,
            "AttachStderr": true,
            "ExposedPorts": {
                "27101/tcp": {},
                "2810/tcp": {},
                "47808/udp": {},
                "8043/tcp": {},
                "8060/tcp": {},
                "8080/tcp": {},
                "8088/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "TZ=Europe/Oslo",
                "PATH=/usr/local/bin/ignition/lib/runtime/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "LANG=en_US.UTF-8",
                "LANGUAGE=en_US",
                "LC_ALL=en_US.UTF-8",
                "PASS_THROUGH=both",
                "IGNITION_INSTALL_LOCATION=/usr/local/bin/ignition"
            ],
            "Cmd": null,
            "Healthcheck": {
                "Test": [
                    "CMD-SHELL",
                    "health-check.sh -t 3"
                ],
                "Interval": 10000000000,
                "Timeout": 3000000000,
                "StartPeriod": 60000000000,
                "Retries": 10
            },
            "Image": "inductiveautomation/ignition:latest",
            "Volumes": null,
            "WorkingDir": "/usr/local/bin/ignition",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {
                "com.docker.compose.config-hash": "a1bc0ed4bdc943cb6c361d8009483f7aed076edc2fd1f661196ee07bca1f2fc5",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.depends_on": "",
                "com.docker.compose.image": "sha256:ab808c23d368bd852ea8cbc9c9c1759577b7da8e5feb607de79b7a7574811fe0",
                "com.docker.compose.oneoff": "False",
                "com.docker.compose.project": "ignition",
                "com.docker.compose.project.config_files": "/data/compose/6/docker-compose.yml",
                "com.docker.compose.project.working_dir": "/data/compose/6",
                "com.docker.compose.service": "gateway",
                "com.docker.compose.version": "2.17.2",
                "org.opencontainers.image.ref.name": "ubuntu",
                "org.opencontainers.image.version": "20.04"
            },
            "StopTimeout": 30
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "964e60d3ddac045be4230d0115d84026852d85c7bba635fdc1ecbb98ecb36441",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "27101/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "27101"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "27101"
                    }
                ],
                "2810/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "2810"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "2810"
                    }
                ],
                "47808/udp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "47808"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "47808"
                    }
                ],
                "8043/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "8043"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "8043"
                    }
                ],
                "8060/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "8060"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "8060"
                    }
                ],
                "8080/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "8080"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "8080"
                    }
                ],
                "8088/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "8088"
                    },
                    {
                        "HostIp": "::",
                        "HostPort": "8088"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/964e60d3ddac",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "stormignitionmariadbadminer_ignition-Storm-network": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "cd69de38b22b"
                    ],
                    "NetworkID": "410161eaf8c8d83a640402618a63199c0c0ff5a490f094ae5731d33725d8d8bd",
                    "EndpointID": "8c247b0e68157ecff312e75a7709e1da916491085ce9a160de8da54d682d607a",
                    "Gateway": "172.21.0.1",
                    "IPAddress": "172.21.0.2",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:15:00:02",
                    "DriverOpts": null
                }
            }
        }
    }
]
storm@sm-ignition:~$

Just let me know if there is more information you need

I tried to setup on of the devices as a BBMD +FB since it's on a different network.

image
I'm not sure what the BC-Mask should be. I tried 255.255.255.0.

Then my device comes up as a BBMD device on the bacnet scanner.
image
image

The bacnet scanner is on the same network as the linux server with docker.
I tried to setup my bacnet local device in ignition with the same BBMD settings as I had setup my bacnet scanner.

It did not help:(
image
From the loggs

For BACnet, I'd recommend using network_mode: host for your Compose service (since you're running on Docker Engine on Linux directly, this isn't available on Docker Desktop). To target your database container from Ignition in this configuration, you'd use localhost:3306 for the address/port (since you're now actually hitting localhost of your host computer, and thus the published ports from the other service).

Refer to this setup guide for local devices and remote devices for more information. I've not worked with BACnet much, but the one thing that jumped out to me in your screenshot was the Bind Address, that should probably be 0.0.0.0 to listen on all interfaces.

Also, make sure that you're targeting the correct path for your Ignition data volume (note: it is different between kcollins/ignition and our official image inductiveautomation/ignition).

I put together an updated Docker Compose YML, the content of which is below:

Modified Docker Compose YAML (click to expand)
---
# ref: https://github.com/compose-spec/compose-spec/blob/master/spec.md#extension
x-logging-options: &logging-options
  logging:
    driver: "json-file"
    options:
      max-size: "200k"
      max-file: "10"

services:
  gateway:
    <<: [ *logging-options ]
    image: inductiveautomation/ignition:8.1.27  # probably should avoid latest tag for "real" things unless you're also going to add `pull_policy: always`
    restart: "unless-stopped"
    network_mode: host
    stop_grace_period: 30s
    volumes:
      # - ./gateway_backup.gwbk:/restore.gwbk
      - gateway_data_ignition:/usr/local/bin/ignition/data
    environment:
      TZ: Europe/Oslo

  db:
    <<: [ *logging-options ]
    image: mariadb:10
    restart: "unless-stopped"
    stop_grace_period: 30s
    ports:
      # Note that the 3306 port doesn't need to be published here for the gateway container to connect, 
      # only for external connectivity to the database.
      - "3306:3306"         # Port 3306 is visable out side of the docker
    volumes:
     - db_data_ignition:/var/lib/mysql
    environment:  
      MARIADB_ROOT_PASSWORD: passwd  # specify the password for the root user
      MARIADB_DATABASE: ignition               # create a database with this name
      MARIADB_USER: ignition               # create a user with this name, with all privileges on MARIADB_DATABASE if specified
      MARIADB_PASSWORD: passwd         # password for above user
    networks:
      - ignition-Storm-network

  adminer:
    image: adminer
    restart: "unless-stopped"
    stop_grace_period: 30s    
    ports:
      - "8080:8080"
    environment:
      TZ: Europe/Oslo
      ADMINER_DEFAULT_SERVER: db
      ADMINER_DESIGN: galkaev
    networks:
      - ignition-Storm-network

networks:
  ignition-Storm-network:

volumes:
  gateway_data_ignition:
  db_data_ignition:

Here is a quick screenshot of the diff for your reference:

Hope this helps!

1 Like

Thank you. I will look at it. Also, I'll update how it's gone

I have tested with the new dockerfile.

still not initialized

I change the Config/Bacnet/Local Devices to 0.0.0.0


And I can find all device with the bacnet client

Ignition-Sleipner_Ignition_logs_20230526-2057.idb (1.4 MB)

I include the log file from the ignition.
I set it to debug in the hope that it could give you more info.

What is the configuration in Ignition for the remote devices? Disclaimer: I don't know much about BACnet

You mean this one?

I should be pretty simple

  • IP address of the remote host,
  • port number for communication default 47808
  • device ID that the device have. Inn my case 2001
  • Write priority is on of 16 different priority's on the tag.
  • COV. Data clients subscribe to an object for COV reporting. The device monitors the value of the object property, monitors the subscription list and the change criteria. When the change criteria are met the devices sends notifications of the new value to the subscribers.

The typical that is wrong with bacnet is the BBMD setup when the devices is on different networks.
image

Introduction on BBMD

But I think it is setup right, everything works on the bacnet client.
The devices is auto discovered on the client.

This devices is auto discoverer
image

I can search for the devices with the IP address and port number.
This is how I connect bacnet devices to a kepware server. With IP and port nr.
image

I tried to change the
Broadcast Address to 10.80.4.255
From the manual. Broadcast Address A network address shared by other BACnet devices to send and receive UDP data.


And then It worked :slight_smile:

Thanks for your troubleshooting help. Then it looks like I'm in touch. Also, I hope this can be of help to others who apply for this

1 Like