Skip to content
This repository has been archived by the owner on Oct 8, 2024. It is now read-only.

cnrancher/octopus-simulator

Repository files navigation

Octopus Simulator

Build Status

Octopus simulator consists of the simulators for testing Octopus adaptor.

Quick-start

To bring up all Octopus simulator, please apply the installer YAML file under deploy/e2e.

$ kubectl apply -f https://raw.githubusercontent.com/cnrancher/octopus-simulator/master/deploy/e2e/all_in_one.yaml

Simulators

Bluetooth Simulator

Bluetooth simulator is mocking a heart rate sensor, there are three GATT Services in this simulated peripheral:

The endianness of all property is LittleEndian.

  • Device Information Service, UUID 00010000-0001-1000-8000-00805F9B34FB.

    Characteristic Type Property UUID Value
    System ID string read 2A23 4EBA552F
    Model Number string read 2A24 Rancher Octopus Bluetooth Device 0.0.1
    Serial Number string read 2A25 CB4040E1234567
    Firmware Revision string read 2A26 0.8.0
    Hardware Revision read string 2A27 0.5.7
    Software Revision read string 2A28 0.1.0
    Manufacturer Name read string 2A29 Rancher Octopus Fake Device
  • Battery Service, UUID 00020000-0001-1000-8000-00805F9B34FB.

    Characteristic Type Property UUID Value
    Battery Level int8 read 2A19 100 - declines per 2 minutes
  • Heart Rate Service, UUID 00030000-0001-1000-8000-00805F9B34FB.

    Characteristic Type Property UUID Value
    Heart Rate Measurement float64 notify,indicate,read 2A37 control_point ± 20
    Body Sensor Location int8 read 2A38 1 - chest
    Heart Rate Control Point float64 write 2A39 80
    Heart Rate New Alert boolean notify,indicate 2A46 0 - green if rate in control_point ± 20, 1 - red

Modbus Simulator

Modbus simulator is mocking a thermometer, the numerical accuracy is two decimal places, and the measurement is Kelvin absolute temperature and relative humidity.

The endianness of all property is BigEndian.

Name RegisterType Type Property Address Quantity Value
Switch CoilRegister boolean read/write 1 1 Triggers to mock, the default is true.
Temperature HoldingRegister float32 read 0 2 Represents the realtime absolute temperature, unit is in kevin, its range is between 273.15 and 378.15.
Humidity HoldingRegister float32 read 2 2 Represents the humidity, unit is in %, its range is between 10 and 100.
High Temperature Threshold HoldingRegister int32 read/write 4 2 Represents the threshold of absolute temperature, unit is in kevin, the default value is 324.
High Temperature Alarm CoilRegister boolean read 0 1 Indicates high temperature alarm. When the temperature exceeds the threshold, the high temperature alarm is true.
Battery HoldingRegister int8 read 6 1 Represents the battery, uint is in %, the default value is 100.
Manufacturer HoldingRegister string read 7 14 Indicates the manufacturer.

MQTT Simulator

MQTT simulator is mocking kitchen door, kitchen light, living room light and bedroom light.

  • Kitchen door Pub/Sub information

    # -- sub
    cattle.io/octopus/home/status/kitchen/door/state -> open
    cattle.io/octopus/home/status/kitchen/door/width -> 1.2
    cattle.io/octopus/home/status/kitchen/door/height -> 1.8
    cattle.io/octopus/home/status/kitchen/door/production_material -> wood
  • Kitchen light Pub/Sub information

    # -- sub
    cattle.io/octopus/home/status/kitchen/light/switch -> false
    cattle.io/octopus/home/get/kitchen/light/gear -> low
    cattle.io/octopus/home/status/kitchen/light/parameter_power -> 3.0
    cattle.io/octopus/home/status/kitchen/light/parameter_luminance -> 245
    cattle.io/octopus/home/status/kitchen/light/manufacturer -> Rancher Octopus Fake Device
    cattle.io/octopus/home/status/kitchen/light/production_date -> 2020-07-08T13:24:00.00Z
    cattle.io/octopus/home/status/kitchen/light/service_life -> P10Y0M0D
    
    # -- pub
    # select from `true, false`
    cattle.io/octopus/home/set/kitchen/light/switch <- true
    # select from `[low, mid, high]`, change to `parameter_luminance`
    cattle.io/octopus/home/control/kitchen/light/gear <- low
  • Living room light Pub/Sub information

    # -- sub
    cattle.io/octopus/home/livingroom/light/switch -> false
    cattle.io/octopus/home/livingroom/light/gear -> low
    cattle.io/octopus/home/livingroom/light/parameter -> [{"name":"power","value":"70.0w"},{"name":"luminance","value":"4900lm"}]
    cattle.io/octopus/home/livingroom/light/production -> {"manufacturer":"Rancher Octopus Fake Device","date":"2020-07-09T13:00:00.00Z","serviceLife":"P10Y0M0D"}
    
    # -- pub
    # select from `true, false`
    cattle.io/octopus/home/livingroom/light/switch/set <- true
    # select from `[low, mid, high]`, change to `parameter[1].value`
    cattle.io/octopus/home/livingroom/light/gear/set <- low
  • Bedroom light Pub/Sub information

    # -- sub
    cattle.io/octopus/home/bedroom/light -> {"switch":false,"action":{"gear":"low"},"parameter":{"power":24.3,"luminance":1800},"production":{"manufacturer":"Rancher Octopus Fake Device","date":"2020-07-20T13:24:00.00Z","serviceLife":"P10Y0M0D"}}
    
    # -- pub
    # select from `true, false`
    cattle.io/octopus/home/bedroom/light/set <- {"switch":true}
    # select from `[low, mid, high]`, change to `parameter.luminance`
    cattle.io/octopus/home/bedroom/light/set <- {"action":{"gear":"low"}}

OPC-UA Simulator

OPC-UA simulator is open62541/open62541:1.0.

Name Type Property NodeID Value
the answer Int32 read/write ns=1;s=the.answer 42.
example bytestring ByteString read/write ns=1;s=myByteString 0x74657374313233(string is test123\0test123)
Boolean - 0 Boolean read ns=1;i=43001 random change
Int16 - 100 Int16 read ns=1;i=43101 random change
Uint16 - 200 Uint16 read ns=1;i=43201 random change
Int32 - 300 Int32 read ns=1;i=43301 random change
Uint32 - 400 Uint32 read ns=1;i=43401 random change
Int64 - 500 Int64 read ns=1;i=43501 random change
Uint64 - 600 Uint64 read ns=1;i=43601 random change
Float - 700 Float read ns=1;i=43701 random change
Double - 800 Double read ns=1;i=43801 random change
String - 900 String read ns=1;i=43901 random change
ByteString - 1100 ByteString read ns=1;i=44101 random change

License

Copyright (c) 2020 Rancher Labs, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at LICENSE file for details.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published