Coder Social home page Coder Social logo

gdinolee / ioter Goto Github PK

View Code? Open in Web Editor NEW

This project forked from samsung/ioter

0.0 0.0 0.0 187.04 MB

Ioter released by Samsung is an open-source implementation of the Matter Thread Emulator

License: BSD 3-Clause "New" or "Revised" License

Shell 2.15% Python 97.85%

ioter's Introduction

Ioter

What is Ioter

Ioter is a tool that allows you to emulate all Matter supported IoT devices with Linux PC and Thread RCP dongle. This tool runs All-cluster-app of Matter on Linux PC to emulate multiple instances of Matter supported various IoT nodes. Each of these IoT nodes uses underlying Thread RCP based USB Dongle(Radio) for data transmission. By using Samsungs SmartThings Station(that acts as Border Router) and SmartThings Application along with emulated IoT nodes, we can configure a Smart Home.

Ioter acts as Mate/Helper to developers, testers and device manufacturers involved in smart home devices that are compliant with Matter and Thread specifications and it is very beneficial in terms of its below offerings:

  • Flexibility: Multiple types of IoT devices can be implemented using single RCP Dongle.
  • Multiple devices: Devices can be implemented as many as the number of RCP dongles(up to 10).
  • Low Cost: Do not need to pay for testing various IoT device types.
  • Time-Saving: Time involved in searching and procuring various IoT device types is saved.
  • Easy to use: Intuitive UI supports in controlling the status of various device types from the program window.
  • Automation: Repeated testing through scripts can validate device stability and connection.

Overview

ioter_overview

Supporting Things (2023-04-27)

  • Light Bulb
  • Door Lock
  • Contact Sensor
  • Temperature Sensor
  • Humidity Sensor
  • Light Sensor
  • Window Covering
  • Occupancy Sensor
  • OnOff Plugin Supporting Things (2023-04-27).png

Prepare tools

  • Bluetooth enabled desktop or laptop

  • Ubuntu 22.04 (Previous version has Bluetooth version problem)

  • USB hub with power input (USB3.0 recommended)

  • Thread RCP usb dongle. We verified with this:

    1. Nordic nrf52840 OT RCP dongle guide
      nordic_nrf52840_dongle
    2. Nordic nrf52840-DK board OT RCP board guide
      nrf52840dk
    3. Silabs thunderBoardSense2 OT RCP Silabs build&flash guide
      Silabs_thunderBoardSense2
    4. Silabs efr32-mighty-gecko-zigbee-and-thread-kit OT RCP Silabs build&flash guide
      Silabs_efr32-mighty-gecko-zigbee-and-thread-kit
  • Samsung SmartThings with SmartThings hub or SmartThings Station / Apple Home app with Homepod2 or Homepod mini sam_app

How to install and excute

  1. install
cd ioter
./script/setup
  1. excute
cd ioter
./script/run

Or you can use Docker image

How to onboarding

guide1

  1. If you run the ioter with run script, the main window will appear, and if you press the start button, the device control window will appear.
  2. The power on button is the same as the power operation of the actual device.
  3. In the App, click the add device button in the upper right corner.

guide2

  1. And with scan qr code, device onboarding can be started. (It can also be started with other options like pairing code or scanning for nearby device.)
  2. When you click Power on (step 2), a QR code and a paring code are created. Use this to proceed with the onboarding procedure.

guide3

  1. When onboarding is completed, device control is possible.

Known issues

1. Problem with specific linux kernel version (higher than 5.16 and lower than 6.1.2)

The message below appears in the syslog kernel: wpan0 (unregistered): mctp_unregister: BUG mctp_ptr set for unknown type 65535

openthread/openthread#8523

Please use a stable kernel version of 5.15.0-60-generic

$ sudo apt-get install aptitude
$ sudo aptitude search linux-image
$ sudo aptitude install linux-image-5.15.0-60-generic
$ sudo grub-mkconfig | grep -iE "menuentry 'Ubuntu, with Linux" | awk '{print i++ " : "$1, $2, $3, $4, $5, $6, $7}'
  ex)
    0 : menuentry 'Ubuntu, with Linux 5.19.0-32-generic' --class ubuntu
    1 : menuentry 'Ubuntu, with Linux 5.19.0-32-generic (recovery mode)'
    2 : menuentry 'Ubuntu, with Linux 5.15.0-60-generic' --class ubuntu
    3 : menuentry 'Ubuntu, with Linux 5.15.0-60-generic (recovery mode)'
$ sudo nano /etc/default/grub
   Find line GRUB_DEFAULT=...(by default GRUB_DEFAULT=0) and sets in quotes menu path to concrete Kernel. 
   In my system first index was 1 and second was 2. I set in to GRUB_DEFAULT
   GRUB_DEFAULT="1>2"
$ sudo update-grub

2. With Ubuntu 20.04.2 LTS(Focal Fossa) , there is a BLE connection issue while onboarding End Node. To use ioter please upgrade Ubuntu 22.04 LTS or later.

project-chip/connectedhomeip#6347

Contributing

For Ioter contribution, see our Contributing Guidelines for more information. We welcome your contribution at any time.

ioter's People

Contributors

sangsoolee avatar junyong-sim avatar spdkimo avatar ejunu avatar jinwon0325kim avatar dooho-lee avatar stardino2 avatar sam-tirth avatar m-sataraddi avatar lboue avatar bahubali-bg avatar vedansh-bhardwaj avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.