openhab-addons/bundles/org.openhab.binding.souliss/README.md
Luca Calcaterra a1b3f27964
[souliss] fix discovery issue (#11438)
* Initial Contribution

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>
Co-Authored-By: Tonino Fazio <fazioa@gmail.com>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update pom.xml

spotless-apply

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>
Co-Authored-By: Tonino Fazio <fazioa@gmail.com>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Renamed healty in healthy (simple word error)

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update thing-types.xml

onOff to CamelCase
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* camelCase fixed on some types

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/README.md

Co-authored-by: Matthew Skinner <matt@pcmus.com>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/README.md

Co-authored-by: Matthew Skinner <matt@pcmus.com>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update README.md

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update README.md

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update README.md

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update README.md

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fixed camelCase on thhings parameters

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update thing-types.xml

fixed label cases
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update thing-types.xml

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Revert "Update thing-types.xml"

This reverts commit 5c19fbc69dee53f41d56a847bc82660192e0158c.

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Initial Contribution

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>
Co-Authored-By: Tonino Fazio <fazioa@gmail.com>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Fix some errors (Nullable issues) and pom.xml format

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update pom.xml

spotless-apply

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>
Co-Authored-By: Tonino Fazio <fazioa@gmail.com>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissT11Handler.java

Default case on switch (handlecommand )

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* added secoresend to t31 skeleton and variable smessage fix declaration

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Initial Contribution

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>
Co-Authored-By: Tonino Fazio <fazioa@gmail.com>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update pom.xml

spotless-apply

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>
Co-Authored-By: Tonino Fazio <fazioa@gmail.com>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayHandler.java

Cutted comments and uneccessary log on gw status

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Renamed healty in healthy (simple word error)

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fixed camelCase on thhings parameters

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update thing-types.xml

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* cleanup and quality code fixes

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissBindingUDPDecoder.java

fixed some npe

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* npe check fix

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissCommonCommands.java

Remove comments unused code

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissCommonCommands.java

commented out code unused

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissCommonCommands.java

remove unused code commented out
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissBindingUDPServerJob.java

remove unused code comments
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissBindingSendDispatcherJob.java

fixed logger trace and remove unused code comments
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/README.md

Co-authored-by: Matthew Skinner <matt@pcmus.com>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* removed completely unnecessary comments

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fixed some thing types cases

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayHandler.java

removed unnecessary log line
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayHandler.java

removed unnecessary comment
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* loggers as final !

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayJobHealthy.java

removed unnecessary logs

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayJobPing.java

removed unnecessary logs
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fixed redundancy on types checks

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update README.md

fixed examples parms
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayHandler.java

changed parm var name bridge
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/src/main/java/org/openhab/binding/souliss/handler/SoulissT11Handler.java

remove comments

Co-authored-by: Matthew Skinner <matt@pcmus.com>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/src/main/java/org/openhab/binding/souliss/handler/SoulissT12Handler.java

comments removed

Co-authored-by: Matthew Skinner <matt@pcmus.com>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/src/main/java/org/openhab/binding/souliss/handler/SoulissT13Handler.java

comments removed

Co-authored-by: Matthew Skinner <matt@pcmus.com>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fixed thing type on README and some case on xml thing types

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update README.md

cutted part about manually thing config specs on README . Who use oh already knows it .
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Code cleanup and optimizations based on @Skinah tips

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fixes from @Skinah suggestions

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

Fixed typeid's on costants files

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* various optimizations follow @Skinah tips (thanks!)

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* spotless:apply fix

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fixes constants and channel id types of t31

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Fix various NPE warnings

Fixes many ... Some added suppresswarnings.
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGenericActionMessage.java

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Refactor handlers into souliss.internal.handler

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* spoless:apply fix

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* spotless:apply

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fix t19 (securesend parm ,labels and setvalue)

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update thing-types.xml

spotless:apply fix

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/README.md

Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/README.md

Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/README.md

Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/README.md

Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/README.md

Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* spotless:apply fix

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Null checks Warnings removed

(mitigated with local copy of field)  - removed comments

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* syntax sugar fixed of consts and section removed from README

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* moved files to internal package

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissHandlerFactory.java

check types on object and not on strings

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* various fixes based on @fwolter

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Gateway ip address regex on config param

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* changed description of gateway ip on param

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* formatted tables in README.md

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* removed comments

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* wip for npe checks - breaking functionality :-(

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* spotless fix Author: Luca Calcaterra <calcaterra.luca@gmail.com>

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fix contrib header in some files

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* reworked udp - only one bridge allowed and  UDP  listen only to bridge port 230

...passing datagramsocket  with soulissnetworkparameter class

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* quite ok. Where to close socket in case of thread interruption ?

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* wip

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* wip2

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* wip3 udp receive but not on vpn

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Classes names Refactor

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* wip

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* wip

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* replaced datagramsocket with nio socket- seems to be ok

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update UDPListenDiscoverRunnable.java

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Fixed some null checks removed securesend option (only t11 end similar)

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* dummy initial value of raw values - removed thread on decoder line

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fix t19 ex catch and broadcast function

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Reworked Config of Gateway as Class (todo check nulls...)

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Added representation property on gw - some cleanups

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayHandler.java

cleanup unused vars

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* refactor methods of gw parameters

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* WIP to remove NetworkParameter class

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* wip refactor DiscoverResult

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* wip remove networkparameters

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* WIP remove NetworkParameter Class. Things online only on a health message

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* WIP Fix Topics

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* WIP2 Fix topics

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update pom.xml

upgrade  binding version to 3.2 snapshot
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* topics bound to bridge - seems to be ok.

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* remove NetworkParameters class - topics ok but need parse rework

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* code cleanup and bugs check fix

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Add node and slot to property - other fixes

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* change default interval subscription -cleanup constants

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* WIP WAN Address gw

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* WAN option external network. Fixed Putin on commands - to test well

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* cleanup - safesend check WIP

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fixed secursend for t11-18

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* WIP Fix null checks

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGenericHandler.java

fixed wrong assignment of prop
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* null checks fixes for code quality

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fixed listen port according to gw parm (default 23000)

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* nuances

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update thing-types.xml

changed default values
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* CommonCommands to static - other fixes .

seems quite ok, remain T31 to fix (securesend)

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update UDPListenDiscoverRunnable.java

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayHandler.java

changed executor imp for udp
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* restored commoncommands non static

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SendDispatcherRunnable.java

safesendcheck fix (not really)
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* various nuances (sonarlint)

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update README.md

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/README.md

Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/README.md

Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update README.md

removed explain how oh works on example
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/README.md

Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update bundles/org.openhab.binding.souliss/src/main/feature/feature.xml

Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* @fwolter various fixes

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissT11Handler.java

wrong header

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissT11Handler.java

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fix headers descriptions before authors on all classes

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* all var on begin of classes and @nullable sugar syntax

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* removed @nullable on local vars

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* wip comments translations and cleanup

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* cleanup comments and translated them (if italian occourred)

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* @fwolter suggestions for approval...various fixes

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* various fixes based on @fwolter suggestions.

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* various fixes based on @fwolter suggestions.

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayHandler.java

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update thing-types.xml

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update UDPListenDiscoverRunnable.java

hexutils usage
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissT22Handler.java

removed unused method
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissT22Handler.java

fix previous commit
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissT11Handler.java

@Nullable on configuration
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* method to put bridge offline (network exception on listener)

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update thing-types.xml

changed some channels to trigger type
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* WIP broken

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update thing-types.xml

spotless:apply
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* various changes

call super on initialize() of all handlers. Changed to QuantityType where appliable
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayDiscovery.java

added uniqueId (ip of gateway+node+slot) as representationProperty
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* wip for load discovery component

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* big fixes and code quality improvments

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fixes

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGenericHandler.java

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update README.md

wrong format ..

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* fix null soulissGwHandler and code analysis

Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayDiscovery.java

Comment removed 
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayDiscovery.java

cleanup ...
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayDiscovery.java

reintroduced local var for avoid SAT  warning
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

* Update SoulissGatewayDiscovery.java

fix error ...nuances
Signed-off-by: Luca Calcaterra <calcaterra.luca@gmail.com>

Co-authored-by: Tonino Fazio <fazioa@gmail.com>
Co-authored-by: Matthew Skinner <matt@pcmus.com>
Co-authored-by: Fabian Wolter <github@fabian-wolter.de>
2021-10-26 19:00:37 +02:00

26 KiB

Souliss Binding

Souliss is a networking framework for Arduino and compatibles boards, and is designed to let you easily build a smart home that is distributed over multiple boards via Ethernet, WiFi, wireless point-to-point and RS485 bus.

Souliss is an open-source and community driven project, you can use the wiki and Community to get help and share your results.

Prerequisites

The binding requires a deployed network. As a minimum, you need one Souliss node with Ethernet or WiFi access configured as a Gateway. A Gateway is a special node that is able to communicate with the user interfaces. The binding interacts as a user interface for Souliss.

A starting point is the Souliss wiki. The best is to start with a single node and connect with SoulissApp. The code for networking activities of this binding is based on SoulissApp code, so once connected with SoulissApp, you can move to openHAB directly.

You can use SoulissApp and the Souliss binding at the same time, and generally up to five (by default, but can be increased) user interfaces simultaneously.

Sketches

The easiest way is start with a simple example to control an ON/OFF light (though a relay). You can go to project Souliss, see a lot of examples sketches: Souliss examples

Discovery

First add a gateway (one only is permitted on LAN at this moment), then discovery can find other things (Souliss Typicals)

Supported Things

In Souliss Framework a Typical is one of predefined logic dedicated to smart home devices like lights, heating or antitheft.

Typical can be one of T11, T12, T13, T14, etc...

They are defined here.

Typicals match directly with openHAB Thing type.

Device type Typical Code Thing type
ON/OFF Digital Output with Timer Option T11 t11
ON/OFF Digital Output with AUTO mode T12 t12
Digital Input Value T13 t13
Pulse Digital Output T14 t14
RGB LED Strip T16 t16
ON/OFF Digital Output T18 t18
Single Color LED Strip T19 t19
Digital Input Pass Through T1A t1A
Motorized devices with limit switches T21 t21
Motorized devices with limit switches and middle position T22 t22
Temperature control T31 t31
Anti-theft integration (Main) T41 t41
Anti-theft integration (Peer) T42 t42
Analog input, half-precision floating point T51 t51
Temperature measure (-20, +50) °C T52 t52
Humidity measure (0, 100) % T53 t53
Light Sensor (0, 40) kLux T54 t54
Voltage (0, 400) V T55 t55
Current (0, 25) A T56 t56
Power (0, 6500) W T57 t57
Pressure measure (0, 1500) hPa T58 t58
Analog Setpoint T61 t61
Analog Setpoint-Temperature measure (-20, +50) °C T62 t62
Analog Setpoint-Humidity measure (0, 100) % T63 t63
Analog Setpoint-Light Sensor (0, 40) kLux T64 t64
Analog Setpoint-Voltage (0, 400) V T65 t65
Analog Setpoint-Current (0, 25) A T66 t66
Analog Setpoint-Power (0, 6500) W T67 t67
Analog Setpoint-Pressure measure (0, 1500) hPa T68 t68
Broadcast messages Action Message topic

Channels

The following matrix lists the capabilities (channels) for each type:

Thing type / Channel Switch / onOff Switch / sleep DateTime / lastStatusStored Number / healthy Switch / autoMode Contact / stateOnOff Contact / stateOpenClose Switch / pulse Switch / whiteMode Rollershutter / rollerBrightness Dimmer / dimmerBrightness Color / ledColor Switch / one Switch / two Switch / three Switch / four Switch / five Switch / six Switch / seven Switch / eight
t11 x x x x
t12 x x x x
t13 x x x x
t14 x x x
t16 x x x x x x x x
t18 x x x
t19 x x x x x x
t1A x x x x x x x x x x
Thing type / Channel DateTime / lastStatusStored Number / healthy Rollershutter / rollerShutter (see below) / rollerShutterState (see down) / mode (see down) / fan Switch / status Number / setPoint Switch / setAsMeasured Switch / measured Switch / statusAlarm Switch / onOffAlarm Switch / rearmAlarm
t21 x x x
t22 x x x x
t31 x x x x x x x x
t41 x x x x x
t42 x x x x

rollershutterstate = opening, closing, limSwitchOpen , limSwitchClose, stateOpen, stateClose, noLimSwitch

mode = COOLING_MODE, HEATING_MODE, POWEREDOFF_MODE

fan = AUTO, HIGH, MEDIUM, LOW, FANOFF

Thing type / Channel DateTime / lastStatusStored Number / healthy Number / value
t51 x x x
t52 x x x
t53 x x x
t54 x x x
t55 x x x
t56 x x x
t57 x x x
t58 x x x
Thing type / Channel DateTime / lastStatusStored Number / healthy Number / value
t61 x x x
t62 x x x
t63 x x x
t64 x x x
t65 x x x
t66 x x x
t67 x x x
t68 x x x
topic x x

Parameters

Thing type Parameters Name and Default Value Description
Gateway gatewayLanAddress="" Mandatory - lan address of Gateway
" gatewayWanAddress="" (advanced) When gateway is outside local network can insert domain/ip in this field
" gatewayPortNumber=230 (advanced) Gateway UDP Port
" preferredLocalPortNumber=23000 (advanced) Local UDP Port
" pingInterval=30 (advanced) Interval in seconds to check for device presence
" subscriptionInterval=2 (advanced) Interval in minutes to subscribe Souliss Gateway
" healthyInterval=35 (advanced) Interval in seconds to send nodes healthy
" userIndex=70 (advanced) Generally the default is good. It must be different from other ui (ex: SoulissApp)
" nodeIndex=120 (advanced) Generally the default value work good. It must is different from other ui (ex: SoulissApp)
Txx (all) Node Node of typical
Txx (all) Slot Slot of typical
T11 sleep=5 Set sleep timer in cycles
T11 secureSend=true Ensure command is correctly executed
T12
T13
T14
T16 sleep=5 Set sleep timer in cycles
T19 sleep=5 Set sleep timer in cycles
T1A
T21
T22
T31
T4x
T5x
T6x

Full Example

souliss.things:

Bridge souliss:gateway:105 "Souliss Gateway - 105" [gatewayLanAddress="192.168.1.105", gatewayPortNumber=230, preferredLocalPortNumber=0, pingInterval=30, subscriptionInterval=2, healthyInterval=38, userIndex=72, nodeIndex=38,  timeoutToRequeue=5000, timeoutToRemovePacket=20000]
{  
Thing t14 1-6 "Portoncino"@"Rientro" [node=1,slot=6] //thing UID is named as node-slot only as mnemonic convention, but you are free to assign other values
Thing t14 1-7 "Cancello"@"Rientro" [node=1,slot=7]
Thing t57 1-4 "Consumo"@"Soggiorno" [node=1,slot=4]
Thing t57 4-0 "Fotovoltaico"@"Soggiorno" [node=4,slot=0]
Thing t57 4-6 "Pannelli Gruppo 1"@"Soggiorno" [node=4,slot=6]
Thing t57 4-8 "Pannelli Gruppo 2"@"Soggiorno" [node=4,slot=8]
Thing t52 4-10 "Temp.Pannelli Gruppo 1"@"Soggiorno" [node=4,slot=10]
Thing t52 4-12 "Temp.Pannelli Gruppo 2"@"Soggiorno" [node=4,slot=12]

Thing t52 3-0 "Temperatura Boiler Solare Termico" [node=3,slot=0]
Thing t52 3-2 "Temperatura Termocamino" [node=3,slot=2]
Thing t11 3-4 "Acqua Termocamino" [node=3,slot=4]
Thing t11 3-6 "Auto: Boiler / Termocamino" [node=3,slot=6]	 
Thing t31 3-7  "Acqua Auto: Boiler / Termocamino" [node=3,slot=7]	

Thing t31 6-0 "Termostato Soggiorno"@"Soggiorno" [node=6,slot=0]
Thing t53 6-7 "Umidità"@"Soggiorno" [node=6,slot=7]
Thing t19 6-9 "Termostato Soggiorno - Luminosità"@"Soggiorno" [node=6,slot=9]

Thing t11 5-0 "Tettoia"@"Giardino"  [node=5,slot=0]

Thing t11 12-0 "Divano"@"Soggiorno" [node=12,slot=0,sleep=10, secureSend=false] 

Thing t16 8-0 "LYT1" [node=8,slot=0]

Thing t11 10-0 "Albero di Natale" [node=10,slot=0]
Thing t11 11-0 "Birra"@"Soppalco" [node=11,slot=0]
Thing t52 11-1 "Birra - Temp 1"@"Soppalco" [node=11,slot=1]
Thing t52 11-3 "Birra - Temp 2"@"Soppalco" [node=11,slot=3]
}

You have to write your Gateway IP Number and leave all other to default values

default.items:

Group    Home                 "Tonino"        <house>

Group    FamilyRoom           "Soggiorno"     <parents_2_4>   (Home)
Group    Divano               "Divano"        (Home)
Group    Outside              "Esterno"   <garden>   (Home)
Group    TV                   "TV"   <television>   (Home)
Group    Elettricita
Group    Diagnostic
Group    TermostatoSoggiorno

Switch   tettoia  "Tettoia"  <light>    (Outside)   ["Lighting"]   {autoupdate="false", channel="souliss:t11:105:5-0:onoff"}
String	 tettoia_aggiornamento	"Agg [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"	<keyring> (Outside, Diagnostic)  {channel="souliss:t31:105:5-0:lastStatusStored"}

Switch   portoncino         "Portoncino"          <light>         (FamilyRoom)         ["Lighting"]   {autoupdate="false",channel="souliss:t14:105:1-6:pulse"}
Switch   cancello         "Cancello"          <light>         (FamilyRoom)         ["Lighting"]   {autoupdate="false",channel="souliss:t14:105:1-7:pulse"}

Number   FamilyRoom_Temperature   "Temperatura [%.1f °C]"   <temperature>  (FamilyRoom)                  {channel="souliss:t31:105:6-0:measured"}
Number   FamilyRoom_Humidity      "Umidità [%.1f %%]"       <humidity>      (FamilyRoom)                     {channel="souliss:t53:105:6-7:value"}
String	AggiornamentoNodo6	"Agg [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"	<keyring> (FamilyRoom, Diagnostic)  {channel="souliss:t31:105:6-0:lastStatusStored"}

Number   Consumo      "Consumo [%.1f W]"       <energy>      (FamilyRoom, Elettricita)                     {channel="souliss:t57:105:1-4:value"}
Number   Fotovoltaico      "Fotovoltaico [%.1f W]"       <energy>      (FamilyRoom, Elettricita)                     {channel="souliss:t57:105:4-0:value"}
String	AggiornamentoNodo1	"Agg.Consumi [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"	<keyring> (FamilyRoom, Elettricita, Diagnostic)  {channel="souliss:t57:105:1-4:lastStatusStored"}
String	AggiornamentoNodo4	"Agg.Fotovoltaico [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"	<keyring> (FamilyRoom, Elettricita, Diagnostic)  {channel="souliss:t57:105:4-0:lastStatusStored"}
                                  
Switch divano "Divano" <light> (FamilyRoom, Divano ) ["Switchable"] {autoupdate="false", channel="souliss:t11:105:12-0:onOff"}
String divano_aggiornamento	"Agg. [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]"	<keyring> (FamilyRoom, Divano, Diagnostic)  {channel="souliss:t57:105:12-0:lastStatusStored"}
String divano_healthy	"Salute"	<keyring> (FamilyRoom, Divano, Diagnostic)  {channel="souliss:t57:105:12-0:healthy"}

Number termostatosoggiorno_temperatura  "Temperatura [%.1f °C]" <temperature> (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:measured"}
Number termostatosoggiorno_umidita "Umidità [%.1f %%]" <temperature>   (TermostatoSoggiorno)       {channel="souliss:t53:105:6-7:value" }

Number termostatosoggiorno_umidita "Umidità" <humidity>   (TermostatoSoggiorno)  {channel="souliss:t53:105:6-7:value" }

Number termostatosoggiorno_temperatura  "Temperatura" <temperature> (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:measured"}
Number termostatosoggiorno_setpoint "Regola Set Point [%.1f °c]"    <heating> (TermostatoSoggiorno) {autoupdate="false", channel="souliss:t31:105:6-0:sePpoint"}
Switch termostatosoggiorno_setasmeasured "Set temp. attuale" <heating> (TermostatoSoggiorno)  {channel="souliss:t31:105:6-0:setAsMeasured"}
String termostatosoggiorno_modo "Modo" (TermostatoSoggiorno) {autoupdate="false", channel="souliss:t31:105:6-0:mode"}
Switch termostatosoggiorno_power "Termostato" <powerIcon> (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:system"}
Switch termostatosoggiorno_fire "Fire" <fire> (TermostatoSoggiorno) {channel="souliss:t31:105:6-0:fire"}

Dimmer  TermostatoSoggiorno_displayBright   "Lumin.min. display" (TermostatoSoggiorno)      {channel="souliss:t19:105:6-9" }
String TermostatoSoggiorno_aggiornamento "Agg.[%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]" <keyring> (TermostatoSoggiorno, Diagnostic)  {channel="souliss:t31:105:6-0:lastStatusStored"}
Number TermostatoSoggiorno_healthy "Salute" <keyring> (TermostatoSoggiorno, Diagnostic )  {channel="souliss:t31:105:6-0:healthy"}

default.sitemaps:

sitemap default label="Tonino" {
    Frame {
        Text label="Rientro casa" icon="light" {
           Switch item=portoncino mappings=[ON="Apri"]
           Switch item=cancello mappings=[ON="Apri"]
        }
    }        
         
 Frame {
        Group item=Outside
    }

Text item=Consumo label="Consumo [%.1f W]"
Text item=Fotovoltaico label="Fotovoltaico [%.1f W]"

Frame {

        Group item=Elettricita label="Elettricità" icon="energy"
}

Frame {  
       Group item=Divano icon="light"
}

Frame label="Temperature"{	

            Text label="Temperatura e umidità" icon="temperature" {
            Default item=FamilyRoom_Temperature label="Temperatura"
            Default item=FamilyRoom_Humidity label="Umidità"
            Default item=AggiornamentoNodo6 icon="icon16x16"
        
}

Text label="Termostato soggiorno" icon="temperature" {
            Setpoint item=termostatosoggiorno_setpoint step=0.5 minValue=10 maxValue=30
            Default item=termostatosoggiorno_temperatura
            Default item=termostatosoggiorno_umidita
            Switch item=termostatosoggiorno_setasmeasured mappings=[ON="Set"]
            Switch item=termostatosoggiorno_modo label="Heating Mode" mappings=[HEATING_MODE="Set"] 
            Switch item=termostatosoggiorno_power label="Power On/Off"
            Default item=termostatosoggiorno_fire label="Fire"
	        Text item=termostatoSoggiorno_aggiornamento label="Aggiornato: [%1$td.%1$tm.%1$tY %1$tk:%1$tM:%1$tS]" icon="icon16x16"
            Default item=termostatoSoggiorno_healthy
	        Slider item=termostatoSoggiorno_displayBright
	}		
 }
}

Community

Souliss is a small community and doesn't have sufficient human resources to be more active on openHAB official community.

These are some very popular forum:

English Group, here

Italian Group, here

Spanish Group, [here] (https://groups.google.com/forum/#!forum/souliss-es)

Contribution

Official repository for contributing to the Souliss project, GitHub page: here

Known issues

Securesend is, at moment, enabled and tested only for t11...