Skip to content

jalallinux/laravel-thingsboard

Repository files navigation

Laravel ThingsBoard.io Client

Latest Stable Version Latest Version on Packagist Tests Total Downloads


ThingsBoard is an open-source IoT platform for data collection, processing, visualization, and device management. This project is a Laravel Package that provides convenient client SDK for Integrate with Thingsboard APIs.

Installation

You can install the package via composer

composer require jalallinux/laravel-thingsboard

Publish config file

You can publish config file to change default configs

 php artisan vendor:publish --provider JalalLinuX\\Thingsboard\\LaravelThingsboardServiceProvider --tag config

Publish language file

You can publish config file to change default languages

 php artisan vendor:publish --provider JalalLinuX\\Thingsboard\\LaravelThingsboardServiceProvider --tag lang

Preparing for usage

User class must implement JalalLinuX\Thingsboard\Interfaces\ThingsboardUser like this:

class User extends Authenticatable implements JalalLinuX\Thingsboard\Interfaces\ThingsboardUser
{
    public function getThingsboardEmailAttribute(): string
    {
        return $this->attributes['thingsboard_email'];
    }

    public function getThingsboardPasswordAttribute(): string
    {
        return $this->attributes['thingsboard_password'];
    }

    public function getThingsboardAuthorityAttribute(): EnumAuthority
    {
        return EnumAuthority::from($this->attributes['thingsboard_authority']);
    }
    
    ...

Then can use trait JalalLinuX\Thingsboard\Traits\ThingsboardUser like this:

class User extends Authenticatable implements JalalLinuX\Thingsboard\Interfaces\ThingsboardUser
{
    use \JalalLinuX\Thingsboard\Traits\ThingsboardUser
    
    ...
}

Usage with Tntity classes

use JalalLinuX\Thingsboard\Entities\DeviceApi;

/** Without Authentication */
DeviceApi::instance()->setAttribute('deviceToken', 'A1_TEST_TOKEN')->postTelemetry([...])

/** With Authentication */
Device::instance()->withUser($tenantUser)->getDeviceById('ca3b8fc0-dcf6-11ed-a299-0f591673a2d6')
Device::instance()->withUser($tenantUser)->setAttribute('id', 'ca3b8fc0-dcf6-11ed-a299-0f591673a2d6')->getDeviceById()
Device::instance(['id' => 'ca3b8fc0-dcf6-11ed-a299-0f591673a2d6'])->withUser($tenantUser)->getDeviceById()

Usage with Helper function

/** Without Authentication */
thingsboard()->deviceApi()->setAttribute('deviceToken', 'A1_TEST_TOKEN')->postDeviceAttributes([...])

/** With Authentication */
thingsboard()->device()->withUser($tenantUser)->getDeviceById('ca3b8fc0-dcf6-11ed-a299-0f591673a2d6')
thingsboard($tenantUser)->device()->setAttribute('id', 'ca3b8fc0-dcf6-11ed-a299-0f591673a2d6')->getDeviceById()
thingsboard()->device(['id' => 'ca3b8fc0-dcf6-11ed-a299-0f591673a2d6'])->withUser($tenantUser)->getDeviceById()

Changelog

Please see CHANGELOG for more information on what has changed recently.

Credits

License

The MIT License (MIT). Please see License File for more information.

About

ThingsBoard laravel client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages