From 71b80209f27eb374bc28cda87a33531288bfff98 Mon Sep 17 00:00:00 2001 From: Jerome Luckenbach Date: Fri, 22 Feb 2019 15:43:06 +0100 Subject: [PATCH] Initial moving concepts pages from ESH repo. (#890) * Initial moving concepts pages from ESH repo. * Fix iconset ressource path * Remove vuepress preview config filter due to reintregration. * Remove vuepress preview config filter due to reintregration. FIX Signed-off-by: Jerome Luckenbach --- .vuepress/config.js | 2 +- concepts/audio.md | 42 ++++ concepts/categories.md | 49 +++++ concepts/diagrams/event_interfaces.png | Bin 0 -> 38877 bytes concepts/diagrams/event_interfaces_source.xml | 1 + concepts/diagrams/status_transitions.png | Bin 0 -> 23639 bytes .../diagrams/status_transitions_source.txt | 31 +++ concepts/discovery.md | 39 ++++ concepts/images/audio.png | Bin 0 -> 75724 bytes concepts/images/hli.png | Bin 0 -> 19515 bytes concepts/images/thing-devices-1.png | Bin 0 -> 25132 bytes concepts/index.md | 52 +++++ concepts/items.md | 159 +++++++++++++++ concepts/profiles.md | 34 ++++ concepts/things.md | 126 ++++++++++++ concepts/units-of-measurement.md | 189 ++++++++++++++++++ 16 files changed, 723 insertions(+), 1 deletion(-) create mode 100644 concepts/audio.md create mode 100644 concepts/categories.md create mode 100644 concepts/diagrams/event_interfaces.png create mode 100644 concepts/diagrams/event_interfaces_source.xml create mode 100644 concepts/diagrams/status_transitions.png create mode 100644 concepts/diagrams/status_transitions_source.txt create mode 100644 concepts/discovery.md create mode 100644 concepts/images/audio.png create mode 100644 concepts/images/hli.png create mode 100644 concepts/images/thing-devices-1.png create mode 100644 concepts/index.md create mode 100644 concepts/items.md create mode 100644 concepts/profiles.md create mode 100644 concepts/things.md create mode 100644 concepts/units-of-measurement.md diff --git a/.vuepress/config.js b/.vuepress/config.js index f0648a360..cbdad9c3f 100644 --- a/.vuepress/config.js +++ b/.vuepress/config.js @@ -88,7 +88,7 @@ module.exports = { } ], sidebar: { - '/docs/': DocsSidebarNavigation.filter((s, i) => s.title !== 'Concepts') + '/docs/': DocsSidebarNavigation } } } diff --git a/concepts/audio.md b/concepts/audio.md new file mode 100644 index 000000000..c5be167fd --- /dev/null +++ b/concepts/audio.md @@ -0,0 +1,42 @@ +--- +layout: documentation +title: Audio & Voice +--- + +{% include base.html %} + +# Audio & Voice + +Audio and voice features are an important aspect of any smart home solution as it is a very natural way to interact with the user. + +Eclipse SmartHome comes with a very modular architecture that enables all kinds of different use cases. +At its core, there is the notion of an *audio stream*. +Audio streams are provided by *audio sources* and consumed by *audio sinks*. + +![](images/audio.png) + +- *Audio Streams* are essentially a byte stream with a given *audio format*. +They do not need to be limited in size, i.e. it is also allowed to have continuous streams, e.g. the input from a microphone or from an Internet radio station. +- *Audio Formats* define the container (e.g. WAV), encoding, bit rate, sample frequency and depth and the bit order (little or big endian). +- *Audio Sources* are services that are capable of producing audio streams. +They can support different formats and provide a stream in a requested format upon request. +Typical audio source services are microphones. Typically, a continuous stream is expected from them. +- *Audio Sinks* are services that accept audio streams of certain formats. +Typically, these are expected to play the audio stream, i.e. they are some kind of speaker or media device. +- *Text-to-Speech* (TTS) services are similar to audio sources with respect to the ability to create audio streams. +The difference is that they take a string as an input and will synthesize this string to a spoken text using a given voice. +TTS services can provide information about the voices that they support and the locale that those voices are associated with. +Each voice supports exactly one locale. +- *Speech-to-Text* (STT) services are similar to audio sinks, but they do not simply play back the stream, but convert it to a plain string. +They provide information about supported formats and locales. + +As plain text from an STT service is often not very useful, there is additionally the concept of a *human language interpreter*: + +![](images/hli.png) + +A *Human Language Interpreter* takes a string as an input. +It then derives actions from it (like sending commands to devices) and/or replies with a string, which opens the possibility to realize conversations. +As such an interpreter is not directly linked to audio streams, but operates on strings only, this can be the basis for any kind of assistant, e.g. for chat bots using the console, XMPP, Twitter or other messaging services. + +Applications can dynamically choose which services to use, so that different sinks can be used for different use cases. +Defaults can be set as a configuration for all those services in case an application does not ask for any specific service. diff --git a/concepts/categories.md b/concepts/categories.md new file mode 100644 index 000000000..c76f83cbf --- /dev/null +++ b/concepts/categories.md @@ -0,0 +1,49 @@ +--- +layout: documentation +title: Categories +--- + +{% include base.html %} + +# Categories + +Categories in Eclipse SmartHome are used to provide meta information about Things, Channels, etc. UIs can use this information to render specific icons or provide a search functionality to for example filter all Things for a certain category. + +## Differences between categories + +We separate the categories into `functional` and `visual`. +Therefore we treat `Thing categories` as how the physical device **looks like** and `Channel categories` as something that describes the **functional purpose** of the Channel. + +## Thing Categories + +The Thing type definition allows to specify a category. +User interfaces can parse this category to get an idea how to render this Thing. +A Binding can classify each Thing into one of the existing categories. +The list of all predefined categories can be found in our categories overview: + +| Category | Description | Icon Example | +|-----------------|-------------|{% for category in site.data.categories_thing %} +|{{category.name}}|{{category.description}}|![{{category.icon}}](/iconsets/classic/{{category.icon}}){:height="36px" width="36px"}|{% endfor %} + +### Channel Group Categories + +Channel Groups can be seen as a kind of `sub-device` as they combine certain (physical) abilities of a `Thing` into one. For such `Group Channels` one can set a category from the `Thing` category list. + +## Channel Categories + +The Channel type definition allows to specify a category. +A Binding should classify each Channel into one of the existing categories or leave the category blank, if there is no good match. +There are different types of categories for Channels, which are listed below. + +{% for category in site.data.categories %} + {% assign typesStr = typesStr | append: category.type | append: ',' %} +{% endfor %} +{% assign types = typesStr | split: ',' | uniq %} + +{% for type in types %} +#### {{ type }} + +| Category | Icon Example | +|-----------------|--------------|{% for category in site.data.categories %}{% if category.type == type %} +|{{category.name}}|![{{category.name | downcase}}](/iconsets/classic/{{category.name | downcase }}.png){:height="36px" width="36px"}|{% endif %}{% endfor %} +{% endfor %} diff --git a/concepts/diagrams/event_interfaces.png b/concepts/diagrams/event_interfaces.png new file mode 100644 index 0000000000000000000000000000000000000000..0327d8f71b7401c2c5995b72ea4bd3d19680107e GIT binary patch literal 38877 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 literal 0 HcmV?d00001 diff --git a/concepts/diagrams/event_interfaces_source.xml b/concepts/diagrams/event_interfaces_source.xml new file mode 100644 index 000000000..1d267d21c --- /dev/null +++ b/concepts/diagrams/event_interfaces_source.xml @@ -0,0 +1 @@ +7VpRc9q4E/80zPQeyGAcU3iMA01vpneXOTL3vz51BBagqbF8sqHQT99deWXL2CYhOJfyv/AAeCWtpN/qt9qV3HFv17s7xeLVbzLgYaffC3Ydd9zp90feNXyjYJ8JvAE8oWCpRJCJnEIwFd85CXsk3YiAJ6WKqZRhKuKycC6jiM/Tkmwhw3IXMVsa9YVgOmdhVfo/EaQrkjqDUVHwkYvlivoZ9gdZQZLujY6AL9gmTLtaRHNdM6NLz8qdAGBKStCC/9a7Wx4iaAaQbOofGkrzQSoe0TiON6BBbFm4oTF2+oMQmvpxaeiDfzY4JH/N1FJEHfcGSnvxDr5BqGeB8m4q46zs2ipL+S7tslAsqd0cxsZVoRP+LelX9ywsAVuDQl+Ly09/TO9Ed8rVVsx5XlJuVVIKENh6tWyGgyhLjGCyhUHeb2ahSFZ6rEZJXsOSAVRl2bOwC/kCauXgNaFTHXTdCFaVWi8zJqwbyyQ1vSQxi2o7CkXEuyviByp0rpAghxrfaeB/yapsJSzTYpKZ7mNzP6DblqtUAINvsrU31qvTp5U4zubmS6i1COU3kCwEcMP1FzJKydk4QEj9/IGtRYhu6iMPtxy1IsjpGuqPHapzK0OpdM+u6/bgg3ikSn7lVgnKdQl2ZskX+oOrVrFAAAZjocBnCYlDjaRCJ0EztNlNhMeZcnKrWkRsv+NyzVO1hypUOswakMcdvc8ev1kebUTe1RhLt/IyGSPHusz1Fr4F/pB7qXc17puraXY1080smSsxe/M1x33NzadPXyZ/TX5/+PLw+X4yzepPUyWi5WuBdJLLOxHrx13eBcyvoEk0S/DnkQmeu4cseUGnQLPrYR/z5B3tKlOOu5XF73z51HO5bohPI0a9VaqzuL5yR/gZOEPP7bkVS9kWtL/bMpt35TjY/3Doed7IaWYfIKvx/CBCcKsGUEvUCmyB2F4qko0E6MFmzsWWnxff5LISRK8Y9TTEMM1RT7Jige71WNB0LARahizBIATbtxAOee8pLKGAyAQ6VkDUv64JiBwjPCciovT38iKiX1HHgr1cOFTxJm+hUMWjsDgO9yV/MoPDD659yFtu9CxnMCpnR/33VW9Qmx4Z2TnOgLr6DzqD1qjcypzLjuiYC/r5XALEZxjq5pHupeRFpwSgDzIW8/YyiCd03QjnhWVnp6B8z/ahZMFJU297KP8/efEpyE/lRs2bKXyJh6DHtu3GFMJOFOygvzlqiLkSsO1yNY3ZHFHLGii5iQKOu2xm5rPDhDxJaM4ZaqMEx9xbnRMmOHVJw4HJeRTcKKXRkzEHtH2Q2MYMGNxqoELExzIgYKL2fxNS+uEzPlx5+LgTKRbpevC/KGmENNFLuXTRlALF4PzFjnh4ULp4q8Ju4zogCBUPWQr5dKm/OlxJ3b0UuJnnJqRrMWPCSjqXDZ1a2fdnh4qGjyjKJlxRpM2cz/FJljdDtiyfgF2Tivkx4inbVfFEfGczXUGToHAAFA65/qGfWIsgwAZ+yGY89Nn861IzqY6sNSuAlildvVLf+XXkCWzrXfVH5u6AQO7SYjpzEXSBCyXbUS9Gg1wsEjwrPMtqTl1c3zpf84cnsPI5FDQJkvFgJkFya1yfoejTDXF4CPNsNnomYTscX/tsdOja37IrHfH9pIQkJM4g5Jl0K+fWZjztko1euXgZstEGWGyHSLaj55D2BkhL3GYf+cjnsg/iq1bY5zWQ+lT2Xf+L7KPFZBk6VnKrXwf6KdlHC/P12EdrzeygB+1bYV/tEdaBMTA3Khsji+fNK1WHtwqR1PUP0pVG40B2hJE/nBGAFCaZSz7phmO3kPxJgTmKlEyZMQouCG3je5kISlZUVtePEVMNmed3vLGWKEh5IpgEQ7jdMWdJ+o3DCzEtXU+U7eYMyI08dj9B/Dgh04DH4rWzzPrFS3vu5Ac= diff --git a/concepts/diagrams/status_transitions.png b/concepts/diagrams/status_transitions.png new file mode 100644 index 0000000000000000000000000000000000000000..f9f50f05c29d3c25c4fd02ac42b6a4ca222679fe GIT binary patch literal 23639 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 QPzpyKI&f4!pJ*TWFG$ UNINITIALIZED +UNINITIALIZED -right-> INITIALIZING +INITIALIZING -left-> UNINITIALIZED +INITIALIZING -right-> initialized + +state initialized { + ONLINE -right-> OFFLINE + ONLINE --> UNKNOWN + OFFLINE -left-> ONLINE + OFFLINE --> UNKNOWN + UNKNOWN --> ONLINE + UNKNOWN --> OFFLINE +} + +initialized -left-> UNINITIALIZED + +state removal { + [*] --> REMOVING + REMOVING --> REMOVED + REMOVED --> [*] +} +@enduml \ No newline at end of file diff --git a/concepts/discovery.md b/concepts/discovery.md new file mode 100644 index 000000000..161b6df48 --- /dev/null +++ b/concepts/discovery.md @@ -0,0 +1,39 @@ +--- +layout: documentation +title: Thing Discovery +--- + +{% include base.html %} + +# Thing Discovery + +Many devices, technologies and systems can be automatically discovered on the network or browsed through some API. It therefore makes a lot of sense to use these features for a smart home solution. + +In Eclipse SmartHome bindings therefore implement _Discovery Services_ for Things, which provide _Discovery Results_. All _Discovery Results_ are regarded as suggestions to the user and are put into the _inbox_. + +### Background Discovery + +A couple of discovery services support automatic discovery in the background, while for others a scan needs to be triggered manually. +Services that support background discovery usually have it enabled by default. +It is possible to override this setting and deactivate background discovery for individual services by setting `discovery.:background=false`, where `serviceid` is usually identical to a binding id, e.g. the LIFX background discovery can be disabled through `discovery.lifx:background=false`. + +## Inbox + +The inbox holds a list of all discovered Things (`DiscoveryResult`) from all active discovery services. +A discovery result represents a discovered Thing of a specific Thing type, that could be instantiated as a Thing. +The result usually contains properties that identify the discovered Things further like IP address or a serial number. +Each discovery result also has a timestamp when it was added to or updated in the inbox and it may also contain a time to live, indicating the time after which it is be automatically removed from the inbox. + +Discovery results can either be ignored or approved, where in the latter case a Thing is created for them and they become available in the application. +If an entry is ignored, it will be hidden in the inbox without creating a Thing for it. + +Eclipse SmartHome offers a service to automatically ignore discovery results in the inbox, whenever a Thing is created manually, that represents the same Thing, as the respective discovery result would create. +This Thing would either have the same Thing UID or the value of its representation property is equal to the representation property's value in the discovery result. +This service is enabled by default but can be disabled by setting `org.eclipse.smarthome.inbox:autoIgnore=false`. + +### Auto Approve + +If the manual acceptance of discovery results by the user is not wished, it is possible to turn on the auto-approval feature of the inbox. +In this case, every new entry gets automatically approved immediately (unless it has been marked as ignored as a duplicate). + +The auto approval can be enabled by the setting `org.eclipse.smarthome.inbox:autoApprove=true`; the default is false. diff --git a/concepts/images/audio.png b/concepts/images/audio.png new file mode 100644 index 0000000000000000000000000000000000000000..dd379a4e9b5c2397c534bf7a0daea263bc0eab72 GIT binary patch literal 75724 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

+j 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�L#Fn6$`q!_C-Aw-kTtJpu6>UUL@@`#=0Zl;#z z1jgk?UY!++92~Z1qQB=k36s^u@_L8zBu6xW8`=akTeiTwrM%b?8;oXD>gu!OTZY8U!Isbv7~r&Oty!X^LdAQGoed)ICf;Yc zJkY5);*S+|U;RgJ&{7&RA-o(N5)#r)Qey3U$vs$lRhA0rhGQzdxy-6aKV7eAzre?z zzxI}+xBP2uae}JUL{e3CckSbjjY7RpH{B{xZU`-IO7%3d&B|$^z=usSmb2Ui!>B`8 z7<*Q7qe`WU48Nrs=SOC6BN()nLMqaOEzF$xoo6+nGXJ%%kGR5*4mdxBs*l7c51RsX zYsU#e2VgL|JJ-A!9wQ2Q>BXCOPpshJNR@bXb!FOvew&ik>H=ES2OqzY7l1doYS3y0 z4K8orbEE~)-T(4TE}f=rLu4;a_!WB>dl3k^kij?d6q2Q~GS%^K{duhUXzLh?1ncta zs?fzc21(e8Oo;_9H09uTa(Tn)qJLYZqiXob>Nc3buv zttFM*?Teh!q54BJX)wFK6pVIX{ufBe7kxuolMM|j5SpLMsV<(R0?&JD)M8)EuUYG6 z9~X{4gJG`wnEak!J$*_!N7`$xWj)3YuSUnvdMQzonOI0VMg)?5xv<67jHnllXH`aTpPxaWytJ zs;R5<_A`+5@`aO9$pFD|LiYPpz*OaM%KRMMhO!w``E_z8e4Z^x(LgpQ7ZGgESYNn> zVTJ*fbZkC9ifCHSVeV_a0V7>1^CmJ4|{KKkxC^#~owQDEk><|gXE<_a*VnJo8 zTRevc7$~{nQI|Nl* z3B2(F1fdy@vZ}~wzM5f$XPQx{s@WjWwxZ5V1K;&&HzXi6gL-0bqkklJD=fIKME>eJ zC)&ED!qq|^ka|D~%o6&ktGrjf_sL+rIF1v9E_boyfJtEpj(!hYT67Vk`KV&Un{BSw z;SVPg&E1c!zHbGkt8iKZGNs!I0f3YL%&J|SHI6Q}`wHV} z)IDojrPO9()hbO|r7d?yQlTlSCjzsAtMtoS?N)X;ytEcH2j zAnSDOCjsJQdH%;f_|?mqyiq8*tF>^G(fpdOIFh#{VL1a`LKzt`7~sHw42SfdtWb$I zmzI8B&yiJ%&zpcGIvK89qOP`LqA#c=8W0DEA|ok#dPC77#6SO2H~LnA9Sw#)-i&^! zGY%idj)Z4k=}b-X%SWv>!euvGd-#vaGC}yyV&rTPGMUt z=G0WYrgAR_4k;ifR?a3jQRGBn)XxmQ$|X67<<#G&t};FYGjy>ufbO^jDeHAH~teXh$@@P6tYlGMZF ztq2av6#%RHl{?#;VsyxDEoe>TY5mnTxTC63gZL*Zw$5chz0FsHF1Pu?Ob~Tl1Pg#rn)-7 z4FQR8X&A0=lLg?pfMyI(?KgK43DRD^{h>6xaH;F0moeY+-}$B91ECgLL4so1%kipk z8XDfbED2)G)aJ}saP8&d(TYX+Nw7xLpF#fQqZtD0S%n=t2XC&49kXkZ^m*X#isx=(HOx5?d2DILc`)JB0 zgcMr=%zMSISxh4akTq@+O34HS2D(m38j9$(=^?AFjv^uNnXne}y(@z^ zPsEqA>`nrN_j~!s z0i}imL62)O0(vUP7ytAUL&HBM_fSV56@;Mbu)IZU&{}(IO9+3uF&4NTzMCt}gN#F| ze<-*3VcZNCOBtQ6TuCjVwf}lmCi_^y80EqWo4X;T#nutw#?MyN!No!VU}sxdIA3ie z@`aZt^ofh+YA)+k(g~3;0U5sMgc1~~Q1#Yo5}+5XeT!jsS&Hok$bZFnNpZB{i_)g( zQ4MxeIDfR%x6ObK4uGfUr)&x?H)`{h4{DSVg?3k(`18)A`9nG*i?jb$yGH$sN?C1@ z%sT4wBA#GyrnPD=%Vxfo@KjC}@P;ysMenE5M7a^( zueJy920Etzk~*Jg!|a$!$>f=DfcFDaSZLMH z*$YPgIAQrWe$n?oWGKL|cs?N+y3ln`uzj)eDHotpJ+x7RjQIKW`5e70X?ymis4olq z=cSDKTB)_rQt1f`|H{$V;@@2GU!0pLICbRE7Hx)~AIDJMpTFd!p`1wU~QaVB&cFka`M_E?2aoTwLU_P);`V4A)CHbGDqJ8>80Nr$>Jf zX0`&wOwcVbb(ZdN+-Q3JbcBj*>L1jg#6KHk<7Lq0*c zJ@1DIG|H|THRB%unj(V}nZ}7Omz%R=q6KFH={Ntk@f*7Gxhj6lW#T+xSfI$(VWK%g zMse63`JQvZIgxM83Zr-&{alnXY94B@6RqDQog`&u6Yp1M1|!|Rpma7m*Wv`|Cl$W# zO+V%<684ik5w40OfB%X5>bVS{HRvi^XT5XWRAz)3iV8xaa7!)Zdx=&en|7@6iQSZwlo5kV+ZLoNnSa1SH^={ja~>1Dw2bh& zizHjc2u9hw5bc625UE4 zH^M`o7tD>J==RHkl0k;vOc__gLRm~pcM4}G4B-P1zoob3A0w@P&@|OUUg0aPFP!&1 zlLb6Hesitu$@dIGG#o@$|EgqyUMaqI|2De_`pO&mkR zkN3j0bfEa!TjJAS$61xZ8k(-7>7NhHz{g1m8|$4Ff$r<>Ly&G9?cRcs=ZDs%L~2S7 z#vY3tp)h(mWOz^2i-{EOY}(De?thB3fIP+befh^3M3vzi3KL|IoWofACvN5+lSDUI zm$V;GIE^!3j&4FgJ#*Vuey>ZkBASjg6WIMD;;|$Vj@n`Y?wp7U-xeR&t8KQb4ctGt z(3!eMF;`Z7*-7sd(Db}JkHN@t`w(N=vjya{hrQ}#8q2@g4?Bg7g9iwx__dYOqgV9I znqwHyR#O&cIpxH=r!{2NdaB4*HUC#*W?VAdK5T%qdaQ{o=2)2!*MP$Nzf3zm&V-$|-E?|Vyv`?#xXb%W{u{*D=1F6t<=bVqRLw#R zspWXCGHO3+ByCW3)^+4m+Tp5mqr7^6F{C~s`2DnpZ~pvYl-Or;(Zpx}XfILMVwycm zJRPtTiU2}!Zn6SuD^BNawj}?VLpvTle_hDG#cV5|s+YhMcO52>*P49l19}$#!D<5# za|WLF@!fB-k7QX=S(T_FR>icr+^Bwf*&Y0#`lO2N_TIeZZG-kKA-scPqatMv&~;T^ z?g+XHJ{jsSNGzPH`MCk1K&*hdq$53FC)*b9-%=Jkf}M6$yx~31VFC$ieDkp-HF&g* zWt4mw8y##h2j1AX07qtP(h{?ek0QPd`+4zNP}NOg)UBbWqa=Qm=v_<_CmPRFIp$hC z78U>0o%{O)5RPxLZsad8+7~rXb$$*D+m4(@S3mg*0=t4?>>SU>g9cNoz|+5FNh%_W za^H$fPE6$d8)b5?+{Zt=03YwXwSlHbu7l3+>WCJhoTek8U^VF9ip71u?7P=OB6tkc>lfS8^GKY0;$q{h3pD#|vqkj$Sh##U?}o^6oQ z8L_@#?zoh%EuJj#T4e!h%|HK;6qO6`188j|fQJYR@(w@-|K_2A?|?%FUilZ!|9ncA&@7R3bAU^P*Ce+o0pF1-%+@Jb ztIQ?cg+6rov^YQCcp#BI4Lw2}PF)=so4;nANmIa!A|oOp#p8w^m6swM`rXXW8=Q7CML{<>}Z8^i^kIh){4uKlNpUvBXAXGkgI z2#~#JN;!7-qrgF9k_M2bfE_o_e*-#1WX;5}%f53*xmZDUb*#p93+HNYyVsrr#;k0M zCmD+Wb}N+>wRN1k^Tqb{1xdIT<-{G<`}TBuz4Mwh+xyisyq5a?<1lrPd{@@lUH!|; zjo%!*ZQtST)bVAe{U6`8(z=W>fg~!FvcGhwi>g#jY2T>EuRO;ax+Yv~X49wz?^2UsVdcyAz-~kF-KHY0Ck^@NI zEv6+QFkth^`^rHip^o#2gvjHwgA4`L|Fylt?Lq9gay}?C*dz3Qgs=z+_}( zR9&(pKm`0HfGGx$nnjVDY}SF>NlCNYAgc?9}DWsRFgZtveLZF9d0b#!#NkP6D`&zF@~n)W~JD-z}m zJ6q46t^VjY7XR{Lu2SFESpMq4n0R0;?}{CjVgU#Vz(>_JF?e-7F}QyXUPdZ0StlYS z1ngjd{+mEq=R1hGHB9N8k*@XAFz^NRKQGm!>nhWB^04`^DVt@wBo9vdq`uhvVuw9B zAOkD03`OEHI4GLPM)YqVgu(%I2pEOvc=KoJ=~aGfNjNH}#~!8xX7z?F-v>{r@nW4f zx?!C{;lLOepl=P9ORq8g#stMOlq8bs>iWK?oWO2sxo`fnH?(B|W)#7vyF`T|z@}EI z-vYQiPS)#NNPw4J*iaJ0nKG!zVhe~7{kq6&2HA~-&|`l%Tuf59=rzw@?XY4iWrjzJ zN^pETxy#}wBqrTWuc#67?M=6W`~COj<#^s1_*0>qVMXY3`!)6R?Q<0K)iWBi!)dan z)7Y%$@<7}9+rIzjkc~4%-^jQ7so3v>+ok1^qr0DpA};zT{Im7i+@05%{Q@g#X^UXB zTTM~OUxuWpT}0`VjkoJ3ptetLFe`T452AsC+%_9QoYp^2Av)9~ZwrZvP?LRyPKOCW zoAs7N%_bXQ>($hE=ZU$UW-z!Nrb6+vRr8^ssFY@#&9agl>XgwDPvcQOg3m6bcr z?(5O>$Bp>=fKg%H_tY9>XS@3{uRrSUfAJ1SLPQy02tm91ITNSNt6a%H5@q}zuXASB z*JF*+X`#PA5_7TmuL%gb?q@xZ2|vHvbV%)bJJLLLe%;>}E~&4GnppMau8P6~Tiz9e zGd%oesH=ZIJ5_fa(LecxFE4o*_aQz$Jvp}MN+*O^X$$-vHE`M=6p|c$eo&R(4+Z|? z=&fV8y&xN`CdwdU;(rgnuh*f_>nfH>uI(9 zZOOWB05{(EAYN*r(VN@gp1^}8)oZde<<@!6$Bbv<7T@8@(~ zVgRyegz5C&_p8k8_*%fC zob9(a@QG(we_BI9?6Ku{t2KUbTJt|`^jNW*KI9N?d-J>PdZfSJAK&fev_9Du%fpJd zOu|qUln@}>uXkSugIzh7-OqM_I9a&(qY9WzCl@9i#?>&iA&Z^PG-R>iimRS9fbgRQ z>966k+nIfbbib+S*Ngvp@&0t%SD#tGCPj^J?Ctr)!si~MqXl)L6I@*dI^8><)b1r$ z>9m-x@;wQ)8eQ1Gy`GmwiUQXoZ#m@(3WNz36MKFRM7r;Z^%J)Rk0mwN4Q}_GUxSb3 zid%H=+t=t4=3if)hE3~zcAA#8G!nkMpD*@ZGq-m?hLi6_-K_+V?m}O($-K8v+|E~l ziM6ipZt}l+Gz0Z8nxXb{TlWQOEnHxCNYgO%w{O=yg4EJdX=VAAN%Oh_3xW8&>siN} zpWE5eKmTKsj=f-_2$1tSvQHD_Z>h)C9T3h6P3QKmoWUHAptCbOzw75~UFTVK%kq)) zbx#@ymcZ*yqGkHPs{5)$o>DE9qD;d5rJ}zqpqF8|x~@1roqG5R0dfB3d){HQ*o4u? z^3#Z9I82O!o}S)gD}v^LoM;P@VfPsaeaU&^)a@fm_~QL<_8&3Pj`K7^B0%y2k-$vu z{Udu#|Mh9j`(bBLczk8=Bh@IdbHI23iQF$0m={R-pWivOta2@`d9VAD9G{ts$f1#U z?&9e(;g?OPd%pJLUwR1Ww!1OP>FBf^f6U44C3P7Jk%_ey4XnmfuJ~oGqIXZ{L-0^-$qnv(iP~c?!M34;=M*h#6^I-=oXd5`K~a1Vp>eOGzgE=9qwq!H4~?mo6xIH_@ zz|@rqJV*eI8ME=(RfDE5h9r&`e`NS#45zx+RCC&mXv$Y2@h=Cxn5vo~^g zRC{_Ua(%y`sw3-*t*x4xn!{a*ki;jf?p-%kb@hI7zsDJ5iu;>^=-Z`lEk3-?M8vG% zM8L2F$?+Ge(5!CoW#zVAlNZXdIF-P6oQdYnw<2N!n*gQOXDfz3jxyqDz9xsQCd3Rl z8UN>p3FkGaS*32L&n*`SKz7S3ze$_dW2%o;71h-By>@Z4{r1wFo8p{XNXR|jo<0fyyA=TuFth?Sm681UQ?XS(?MMjsA29byx8hkx^Ff#+ zX5m1j<)5=_03`!fD(vXbA-N^ZDH3S-z>|Xdk24%rdOzcMqoeyR2x-QublM>6o%f%C zk#4V`+v#F(Ijyb^)Ox{G=W%&*vb#qt{NVKX-|ku5vc;PL{qVtaAAGPafrgiR%-3op zuS+8;KXj;1jSSTMW`E%@BL^#)qpZqkkWOn7fX8R17Kec&Jv~l^^!Fm5eTO_cw>GwT z&C=(`f3Jc+A^-T;N;&hq9i>*Eu{&B_E2E-MTID^J^=qoQ_WLu663^6Z5;D0mZnwb1RZ=La@0dO`1m@a8>~Ze00Rqb+$!N zv+scz4Jr9eQi5XHbx9(&dF76GBm$#3j}*i#KOVW*44m3+*PJ0wEoQmW2ip`lk;)MP z<950>)~RVw1i+{GDP`}k#Kc6j@?zZ(Gi3t<;oYYzW1*Coz}>*p)8p-3Mjakt@-^t? zWkb{MKpQf+owk*v=_l7p^8o-EbPyBfMrC9Xp&S|m+Kn3zAR|?!HIRFPAb99{;a13U z>DmIBx5wh2d-fQ0EbZ+}t`C#}yE1a%#C{*(Te3}*OR!ng;7(+00L;Lo{O$^t_H4X&*EWfxB5sPV1pbJQ=iMuRS8bY4xcp)&ZE)ydi@M zI|7ASM{M5eKby?DH?+`RoMqz{@^^tS>7&4a8EQbVyB>md8|5PaydTQ_%ky2wokClW z`8Pai>^?CuE~6~;I`JTY8oa%Y*(+37C6g*7mf-|`&0Ux%ijEja%l6g?Q9tTV+uBl~ zwvtZZs2b6t#W5GCv00B(_?-MZ44K?(=YzM!mR^ef$kv<&(8w;He4cOCUr!sdXl1#6 z%uubfuMrA3h2*UI3#XS)3s_)s>-r1c+}wBwlKFKw7F6wJj|q;@2XOW=otvVVbG7v~ zHRv(5*rfx!xAQIMO-5usBBbwMj$3B4ha1xV0t_ske}`#k$~UOWs0?U-dz`!Q2|8vc zWlJIV0HKHs7Na$r{x5Z}-}fJ7S0e7^@k>K*m!y*QW9yL2EDVDOk#ngCPhMiAk?{-Pb{W=m-IsZ*9( zl&2oOaLW2YL;?|K;Fy%8l4;s}AO9d5_^)UnP}yiBdj)e|K=BR>`dXsj6S4Pr6LUw} z^hM>ZDU&E84D46F7niR%th!d}H;&kC%fGm_n(khDUH)AC^$`UT5mAd}Ts{BU{rL9O zqkWBVkQpylQ5zkoE23|7k-af`Z9{ubAWN&wZSt1`cq>y&509V*8*Mz-#zqOwx{^Ui z+$dTZsN?V7TLlkg*{`$&K#|A$oih=NuiLEyw{0WNwVB*mQBjuH)s+L33SGBhs{Io` zpy381y@%Q);8>+oAG)Ob2pO#0r<>c9hyk1%xV-?lV4BldA}SJ)V8IV9%*?w)OsQt1whf%z#U57dfTxfSO=|u>6=R@1%Ix7LNI*&+KcQ6fzZs>zlu`#P2|#ya;< zI=Y6Ak;yXL$P&`QLAIHSEQv{OA!#sn1|u=d;C|iv2fUxp`+ncw`~05g`906e$@mYT zS4pbdu-^$$!IG9b1jSX3CAI!GOA>%Nl<=gqApVO|#p=>rTRJL0e1}l!Sa+bOh7i{# zwC4Y;_9w!m-4DG@EP}u%^g+}glx0f3@OP|quKop}?(b;b`(|(S)iP(8tmFERFvWd- zC>nlNOhA#@x_S<98w8_A7JkuKj!}7QaKk11P$oXO^k2VkZweqDVU(0po0&5L@>dkd zSiOJONjd+sP^I3>h30zx;0FPOiC&Q)@obs0Q)uaJy{R=_GF4yGp*4qTylV`Vv7ZRj z4~6>=c1ayD-WXvXA(WW4<%r` z==ba-crVx`z8TBpmahIRmU&NR=!XhCxbX{T4;lA{6}(~{&dJI7;~mR*Wh}`# z@|^@IF6b0-KVxlfU|meu=K0?S$-IynD^Al!Yr5y?C{UplQV22ER?QANQ^1XY`>4&R zJ6(>o>=d+h5P9QGaelkUyg}ZAMz4+Fc--AIW}r4sNc5`|d3uU>#13aDw$ykZ6uwp^ z0bEG|tLhrFIW;kH&dRAUOW{{KlR+AEW5mO?Ait2!O%5MFB`OL6A(xhsQBA`t>5fNF z>l=jk@0VJ6UytJt(09}*RZf;Tt3%*XYzrR_T^rI)!$Ym5@pV1(~({RG)`&XTBP0HS zfh-%^%6--PadO?LmK8u5cRh;UBSCSqcEPEGJpf4kDT;4c;(wPVjMBQenmgBICUP4( zBIrOhwybO%FP7=azAtst@y10Y*?nZ44KutWEwnd#UiJ(l_knv3q?Uh-NV&C7-PML& zEqN`w^ZbHzB{r4||LA;w2}`^AD!@ z@ZV;5%fRq@fhE`k4ZR*eV`&({1^20z(0>{VRUZTv2FbZ=$$7R<-gbXe=}@0-M(u>{ z*@j`yUXUPfJIo|5Ej35O_mG^NtW+jn>cJa`7SEJ*=Rt~pF0A2ugm{Wq1~h&W95Ynz ziB-0)m;p~GtfeS-S=DG$D-rE_@hbPmbcrj%dwOSalwJ`3k``d|J<0_yv)s6-v%_)Q z@&3gfUA%8;1hpnFM_fe%(ew)pvCL4ARCn%*?#beO)Fe9Ul~d9R;H?x(xqSd+BTO66 ztD~Zi&o6AQs5h)=GWmc-G4Br#n-pw{?upjR5ED=4e$rT?(6|;$t;;ljcJ?5BcN@Bw zu(G^ezt`;Vsadob8XD?SHr?S2qf4ivjn4C@Z_QvlD>nBGfpp>)7Kt>PL&juImneOy zynSCR5iuI4+aLOb(h%$oP=k;4cJv7gR6DslYpFaGwAiRWkVjSkt7DYndezrn%Bdcg zd+I4~J7I~oQ1xqbNNqKi3A)aB9R@MnOp(&Z<$Ub(zD8O76G0@H83`nq4!TB4Xwue> zXtwfoVCjH!^zph|dU-j2*>oG5z$F)GX=%Og@XfC-_C;sBnoB-T7%Zk($1RafesI^V z?KjU;yB|S{kMitsHni8!#RFvzb=ZwWp9sl!d`+}pjr;wqj&ALENRzIWn(7JZZh&7zOuY*Y14S8{Hz+z$!d4(6foHTmn49XL34*{Z6iWdeL%t- zE~@4|&163JxoMg?DkIu@)adcjIrQVmVG`U#j9raMu@a|(T(|qc`-9BJ>yi+^XwEB;~#sqUUKgQhp^~U zN!;2RL@SZwc4`ZXgY%NyH(TORHc>W+;UGz?fwHRd!n@A&`~&~1c>ZC2THMtc%=arb zn9u%e+86XGo_{?nw6(Xjn%iTC%N!O&LO>aVn{g}C8P&m{z(_PGXT(Its2xI)03aH<^u9*DB-s5g+?Y+e@$9jCs(7vOa#1J zPyStx)EWT2U$AlEzA9eSxg|_3kWy2%4E62>OGDvgT2FsM^?5(*r2#ytn8#O|iK2VT zTxv?`BUH(ut-OvfTuHcfBvp627r$%T7R#947ke5b5ATRZoFQyoGcSy`)P ztWI3htOoiWyg4S!2;g@RO-E1#r)@LSRF59u4-C?+H40{y>06)u(SC_1ucMC`$u={e z=Z|A%#xX{-wYcTy)3>w#LdEr{!#?QIp^Y3kZyYUZ6WKReor^zAs%3{IGvaR+@q%y; zrSs1?5JKq0MD;zd3NN8k*{$bEG-={uHwydJkQ9G0r`t8^*tQl@zaxsaVIm|XT>7_s z_Eibed`5e-Mx$2;duBL|$zAph=WEKvbm5Wt-wfz6^Qu5<(SZx9JhQAR?AJJJUkn2; z*H;oUsoT;yS6Qvwx-_YsN0Q}b28K!w=Hhs+QVl}FA?wz$9NhZHGwF}67IT*n2^Ye# z;yu^gPe6a$lb0r|QvSYtss|2b652k!cF3|A>@PauA7bes=~N%$I|@i`?`DIf`t;P} z@MFAlti%dg!zVWsBUbw4tEkO*4w%ds%>Lid+!oiW#;pLOph?nYBGFVc`1^+?lh}u@ zD^va|=->QtQ^^Z2OPk8y%e13kZP0i_pqCn$_*^!9Ml35SO4R*vlrKmYH~_FnA}E-- zbf4PsL2I(uH(|B3PlUC|A%0Bv)v>NnPs?HZBiB@b3^exk>UJDMLi9lP>FNCWW`iOZ xZ{9nn7r4E237l&s)h3<^H-d6JE@}6m_Qhk5FI{57@4@!%Lt9vzSDD>O{4Y9eMR@=K literal 0 HcmV?d00001 diff --git a/concepts/images/thing-devices-1.png b/concepts/images/thing-devices-1.png new file mode 100644 index 0000000000000000000000000000000000000000..46ff96d3895a0d2e3fc18d5d72639845ecc5cf63 GIT binary patch literal 25132 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 T`(@!9ahX(#`K>fieh*f~E< literal 0 HcmV?d00001 diff --git a/concepts/index.md b/concepts/index.md new file mode 100644 index 000000000..17800726e --- /dev/null +++ b/concepts/index.md @@ -0,0 +1,52 @@ +--- +layout: documentation +title: Concepts +--- + +{% include base.html %} + +# Concepts + +When first thinking about your home automation system, it may be helpful to bear in mind that there are two ways of thinking about or viewing your system; the physical view and the functional view. + +The physical view will be familiar to you. +This view focuses on the devices in your system, the connections between these devices (e.g. wires, Z-Wave, WiFi hardware), and other physical aspects of the system. + +The functional view might be a new concept for you. +The functional view focuses on how information about the devices, connections, and so on, is represented in user interfaces. +The functional view includes focusing on how rules affect representations of physical devices in software. + Perhaps most important to you, the functional view focuses on how an action in a user interface affects the software associated with the physical device it represents. + +It is a bit of an over-simplification, but you can think of the physical view as being a view of the 'real world', and the functional view being a view of the 'software world'. + +## Things, Channels, Bindings, Items and Links + +**Things** are entities that can be physically added to a system. +Things may provide more than one function (for example, a Z-Wave multi-sensor may provide a motion detector and also measure room temperature). +Things do not have to be physical devices; they can also represent a web service or any other manageable source of information and functionality. + +Things expose their capabilities through **Channels**. +Whether an installation takes advantage of a particular capability reflected by a Channel depends on whether it has been configured to do so. +When you configure your system, you do not necessarily have to use every capability offered by a Thing. +You can find out what Channels are available for a Thing by looking at the documentation of the Thing's Binding. + +**Bindings** can be thought of as software adapters, making Things available to your home automation system. +They are add-ons that provide a way to link Items to physical devices. +They also abstract away the specific communications requirements of that device so that it may be treated more generically by the framework. + +**Items** represent capabilities that can be used by applications, either in user interfaces or in automation logic. +Items have a **State** and they may receive commands. + +The glue between Things and Items are **Links**. +A Link is an association between exactly one Channel and one Item. +If a Channel is linked to an Item, it is "enabled", which means that the capability the Item represents is accessible through that Channel. +Channels may be linked to multiple Items and Items may be linked to multiple Channels. + +To illustrate these concepts, consider the example below of a two-channel actuator that controls two lights: + +![](images/thing-devices-1.png) + +The actuator is a Thing that might be installed in an electrical cabinet. +It has a physical address and it must be configured in order to be used (remember the physical view introduced at the beginning of this article). + +In order for the user to control the two lights, he or she access the capability of the actuator Thing (turning on and off two separate lights) through two Channels, that are Linked to two switch Items presented to the user through a user interface. diff --git a/concepts/items.md b/concepts/items.md new file mode 100644 index 000000000..a31dc10c0 --- /dev/null +++ b/concepts/items.md @@ -0,0 +1,159 @@ +--- +layout: documentation +title: Items +--- + +{% include base.html %} + +# Items + +Eclipse SmartHome has a strict separation between the physical world (the "Things", see below) and the application, which is built around the notion of "Items" (also called the virtual layer). + +Items represent functionality that is used by the application (mainly user interfaces or automation logic). +Items have a state and are used through events. + +The following Item types are currently available (alphabetical order): + +| Item Name | Description | Command Types | +|--------------------|-------------|---------------| +| Color | Color information (RGB) | OnOff, IncreaseDecrease, Percent, HSB | +| Contact | Item storing status of e.g. door/window contacts | OpenClosed | +| DateTime | Stores date and time | - | +| Dimmer | Item carrying a percentage value for dimmers | OnOff, IncreaseDecrease, Percent | +| Group | Item to nest other Items / collect them in Groups | - | +| Image | Holds the binary data of an image | - | +| Location | Stores GPS coordinates | Point | +| Number | Stores values in number format, takes an optional dimension suffix | Decimal | +| Number: | like Number, additional dimension information for unit support | Quantity | +| Player | Allows to control players (e.g. audio players) | PlayPause, NextPrevious, RewindFastforward | +| Rollershutter | Typically used for blinds | UpDown, StopMove, Percent | +| String | Stores texts | String | +| Switch | Typically used for lights (on/off) | OnOff | + +## Group Items + +Group Items collect other Items into Groups. +Group Items can themselves be members of other Group Items. +Cyclic membership is not forbidden but strongly not recommended. +User interfaces might display Group Items as single entries and provide navigation to its members. + +Example for a Group Item as a simple collection of other Items: +``` + Group groundFloor + Switch kitchenLight (groundFloor) + Switch livingroomLight (groundFloor) +``` + +### Derive Group State from Member Items + +Group Items can derive their own state from their member Items. +To derive a state the Group Item must be constructed using a base Item and a Group function. +When calculating the state, Group functions recursively traverse the Group's members and also take members of subgroups into account. +If a subgroup however defines a state on its own (having base Item & Group function set) traversal stops and the state of the subgroup member is taken. + +Available Group functions: + +| Function | Parameters | Base Item | Description | +|--------------------|-------------------------------|---------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------| +| EQUALITY | - | \ | Sets the state of the members if all have equal state. Otherwise UNDEF is set. In the Item DSL `EQUALITY` is the default and may be omitted. | +| AND, OR, NAND, NOR | , | \ (must match active & passive state) | Sets the \, if the member state \ evaluates to `true` under the boolean term. Otherwise the \ is set. | +| SUM, AVG, MIN, MAX | - | Number | Sets the state according to the arithmetic function over all member states. | +| COUNT | | Number | Sets the state to the number of members matching the given regular expression with their states. | +| LATEST, EARLIEST | - | DateTime | Sets the state to the latest/earliest date from all member states | + +Examples for derived states on Group Items when declared in the Item DSL: + +- `Group:Number:COUNT(".*")` counts all members of the Group matching the given regular expression, here any character or state (simply count all members). +- `Group:Number:AVG` calculates the average value over all member states which can be interpreted as `DecimalTypes`. +- `Group:Switch:OR(ON,OFF)` sets the Group state to `ON` if any of its members has the state `ON`, `OFF` if all are off. +- `Group:Switch:AND(ON,OFF)` sets the Group state to `ON` if all of its members have the state `ON`, `OFF` if any of the Group members has a different state than `ON`. +- `Group:DateTime:LATEST` sets the Group state to the latest date from all its members states. + +## State and Command Type Formatting + +### StringType + +`StringType` objects store a simple Java String. + +### DateTimeType + +`DateTimeType` objects are parsed using Java's `SimpleDateFormat.parse()` using the first matching pattern: + +1. `yyyy-MM-dd'T'HH:mm:ss.SSSZ` +2. `yyyy-MM-dd'T'HH:mm:ss.SSSz` +3. `yyyy-MM-dd'T'HH:mm:ss.SSSX` +4. `yyyy-MM-dd'T'HH:mm:ssz` +5. `yyyy-MM-dd'T'HH:mm:ss` + +Literal | Standard | Example +--------|----------|-------- +z | General time zone | Pacific Standard Time; PST; GMT-08:00 +Z | RFC 822 time zone | -0800 +X | ISO 8601 time zone | -08; -0800; -08:00 + +### DecimalType, PercentType + +`DecimalType` and `PercentType` objects use Java's `BigDecimal` constructor for conversion. +`PercentType` values range from 0 to 100. + +### QuantityType + +A numerical type which carries a unit in addition to its value. +The framework is capable of automatic conversion between units depending on the users locale settings. +See the concept on [Units of Measurement](units-of-measurement.html) for more details. + +### HSBType + +HSB string values consist of three comma-separated values for hue (0-360°), saturation (0-100%), and value (0-100%) respectively, e.g. `240,100,100` for blue. + +### PointType + +`PointType` strings consist of three `DecimalType`s separated by commas, indicating latitude and longitude in degrees, and altitude in meters respectively. + +### Enum Types + +| Type | Supported Values | +|-----------------------|-------------------------| +| IncreaseDecreaseType | `INCREASE`, `DECREASE` | +| NextPreviousType | `NEXT`, `PREVIOUS` | +| OnOffType | `ON`, `OFF` | +| OpenClosedType | `OPEN`, `CLOSED` | +| PlayPauseType | `PLAY`, `PAUSE` | +| RewindFastforwardType | `REWIND`, `FASTFORWARD` | +| StopMoveType | `STOP`, `MOVE` | +| UpDownType | `UP`, `DOWN` | + +## A note on Items which accept multiple state data types + +There are a number of Items which accept multiple state data types, for example `DimmerItem`, which accepts `OnOffType` and `PercentType`, `RollershutterItem`, which accepts `PercentType` and `UpDownType`, or `ColorItem`, which accepts `HSBType`, `OnOffType` and `PercentType`. +Since an Item has a SINGLE state, these multiple data types can be considered different views to this state. +The data type carrying the most information about the state is usually used to keep the internal state for the Item, and other datatypes are converted from this main data type. +This main data type is normally the first element in the list returned by `Item.getAcceptedDataTypes()`. + +Here is a short table demonstrating conversions for the examples above: + +| Item Name | Main Data Type | Additional Data Types Conversions | +|---------------|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Color | `HSBType` | • `OnOffType` - `OFF` if the brightness level in the `HSBType` equals 0, `ON` otherwise
• `PercentType` - the value for the brightness level in the `HSBType` | +| Dimmer | `PercentType` | `OnOffType` - `OFF` if the brightness level indicated by the percent type equals 0, `ON` otherwise | +| Rollershutter | `PercentType` | `UpDownType` - `UP` if the shutter level indicated by the percent type equals 0, `DOWN` if it equals 100, and `UnDefType.UNDEF` for any other value | + +## Item Metadata + +Sometimes additional information is required to be attached to Items for certain use-cases. +This could be an application which needs some hints in order to render the Items in a generic way, or an integration with voice controlled assistants, or any other services which access the Items and need to understand their "meaning". + +Such metadata can be attached to Items using disjunct namespaces so they won't conflict with each other. +Each metadata entry has a main value and optionally additional key/value pairs. +There can be metadata attached to an Item for as many namespaces as desired, like in the following example: + + Switch "My Fan" { homekit="Fan.v2", alexa="Fan" [ type="oscillating", speedSteps=3 ] } + +The metadata can be maintained via a dedicated REST endpoint and is included in the `EnrichedItemDTO` responses. + +Extensions which can infer some metadata automatically need to implement and register a `MetadataProvider` service in order to make them available to the system. +They may provision them from any source they like and also dynamically remove or add data. +They are also not restricted to a single namespace. + +The `MetadataRegistry` provides access for all extensions which need to read the Item metadata programmatically. +It is the central place where additional information about Items is kept. diff --git a/concepts/profiles.md b/concepts/profiles.md new file mode 100644 index 000000000..5fa9efda5 --- /dev/null +++ b/concepts/profiles.md @@ -0,0 +1,34 @@ +--- +layout: documentation +title: Profiles +--- + +# Profiles + +The communication between the framework and the Thing handlers is managed by the "Communication Manager", which in turn uses "Profiles" to determined what exactly needs to be done. +This provides some flexibility to influence these communication paths. + +By their nature, profiles are correlated to links between Items and Channels (i.e. `ItemChannelLinks`). So if one Channel is linked to several Items it also will have several profile instances, each handling the communication to exactly one of these Items. +The same applies for the situation where one Item is linked to multiple Channels. + +Profiles are created by ProfileFactories and are retained for the lifetime of their link. +This means that they are allowed to retain a transient state, like e.g. the timestamp of the the last event or the last state. +With this, it is possible to take into account the temporal dimension when calculating the appropriate action in any situation. + +There exist two different kinds of profiles: state and trigger profiles. + +### State Profiles + +State profiles are responsible for communication between Items and their corresponding state Channels (`ChannelKind.STATE`). +Their purpose is to forward state updates and commands to and from the Thing handlers. + +### Trigger Profiles + +Trigger Channels (`ChannelKind.TRIGGER`) by themselves do not maintain a state (as by their nature they only fire events). +With the help of trigger profiles they can be linked to Items anyway. +Hence the main purpose of a trigger profile is to calculate a state based on the fired events. +This state then is forwarded to the linked Item by sending `ItemStateEvents`. + +Trigger profiles are powerful means to implement some immediate, straight-forward logic without the need to write any rules. + +Apart from that, they do not pass any commands or state updates to and from the Thing handler as by their nature trigger Channels are not capable of handling these. diff --git a/concepts/things.md b/concepts/things.md new file mode 100644 index 000000000..d014f26ba --- /dev/null +++ b/concepts/things.md @@ -0,0 +1,126 @@ +--- +layout: documentation +title: Things +--- + +# Things + +Things are the entities that can physically be added to a system and which can potentially provide many functionalities in one. +It is important to note that Things do not have to be devices, but they can also represent a web service or any other manageable source of information and functionality. +From a user perspective, they are relevant for the setup and configuration process, but not for the operation. + +Things can have configuration properties, which can be optional or mandatory. +Such properties can be basic information like an IP address, an access token for a web service or a device specific configuration that alters its behavior. + +### Channels + +Things provide "Channels", which represent the different functions the Thing provides. +Where the Thing is the physical entity or source of information, the Channel is a concrete function from this Thing. +A physical light bulb might have a color temperature Channel and a color Channel, both providing functionality of the one light bulb Thing to the system. +For sources of information the Thing might be the local weather with information from a web service with different Channels like temperature, pressure and humidity. + +Channels are linked to Items, where such links are the glue between the virtual and the physical layer. +Once such a link is established, a Thing reacts on events sent for an item that is linked to one of its Channels. +Likewise, it actively sends out events for Items linked to its Channels. + +### Bridges + +A special type of Thing is a "bridge". +Bridges are Things that need to be added to the system in order to gain access to other Things. +A typical example of a bridge is an IP gateway for some non-IP based home automation system or a web service configuration with authentication information which every Thing from this web service might need. + +### Discovery + +As many Things can be automatically discovered, there are special mechanisms available that deal with the handling of [automatically discovered Things](discovery.html). + + +## Thing Status + +Each Thing has a status object, which helps to identify possible problems with the device or service. +The following table provides an overview of the different statuses: + +| Status | Description | +|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| UNINITIALIZED | This is the initial status of a Thing, when it is added or the framework is being started. This status is also assigned, if the initializing process failed or the binding is not available. Commands, which are sent to Channels will not be processed. | +| INITIALIZING | This state is assigned while the binding initializes the Thing. It depends on the binding how long the initializing process takes. Commands, which are sent to Channels will not be processed. | +| UNKNOWN | The handler is fully initialized but due to the nature of the represented device/service it cannot really tell yet whether the Thing is ONLINE or OFFLINE. Therefore the Thing potentially might be working correctly already and may or may not process commands. But the framework is allowed to send commands, because some radio-based devices may go ONLINE if a command is sent to them. The handler should take care to switch the Thing to ONLINE or OFFLINE as soon as possible. | +| ONLINE | The device/service represented by a Thing is assumed to be working correctly and can process commands. | +| OFFLINE | The device/service represented by a Thing is assumed to be not working correctly and may not process commands. But the framework is allowed to send commands, because some radio-based devices may go back to ONLINE, if a command is sent to them. | +| REMOVING | The device/service represented by a Thing should be removed, but the binding did not confirm the deletion yet. Some bindings need to communicate with the device to unpair it from the system. Thing is probably not working and commands can not be processed. | +| REMOVED | This status indicates that the device/service represented by a Thing was removed from the external system after the REMOVING was initiated by the framework. Usually this status is an intermediate status because the Thing gets removed from the database after this status was assigned. | + +The statuses UNINITIALIZED, INITIALIZING and REMOVING are set by the framework, where as the statuses UNKNOWN, ONLINE and OFFLINE are assigned from a binding. + +Additionally, the REMOVED state is set by the binding to indicate that the removal process has been completed, i.e. the Thing must have been in REMOVING state before. + +### Status Transitions + +The following diagram shows the allowed status transitions: + +![Status Transitions](diagrams/status_transitions.png) + +The initial state of a Thing is UNINITIALIZED. +From UNINITIALIZED the Thing goes into INITIALIZING. +If the initialization fails, the Thing goes back to UNINITIALIZED. +If the initialization succeeds, the binding sets the status of the Thing to UNKNOWN, ONLINE or OFFLINE, which all mean that the Thing handler is fully initialized. +From one of this states the Thing can go back into UNINITIALIZED, REMOVING or REMOVED. +The statuses REMOVING and REMOVED can also be reached from any of the other states. + +## Status Details + +A status is detailed further with a status detail object. +The following table lists the different status details for each status: + + + + + + + + + + + + + + + + + + + + + + +
UNINITIALIZEDNONENo further status details available.
HANDLER_MISSING_ERRORThe handler cannot be initialized, because the responsible binding is not available or started.
HANDLER_REGISTERING_ERRORThe handler failed in the service registration phase.
HANDLER_CONFIGURATION_PENDINGThe handler is registered but can not be initialized caused by missing configuration parameters.
HANDLER_INITIALIZING_ERRORThe handler failed in the initialization phase.
BRIDGE_UNINITIALIZEDThe bridge associated with this Thing is not initialized.
DISABLEDThe thing was explicitly disabled.
INITIALIZING NONENo further status details available.
UNKNOWN NONENo further status details available.
ONLINE NONENo further status details available.
CONFIGURATION_PENDINGThe Thing is waiting to transfer configuration information to a device. Some bindings need to communicate with the device to make sure the configuration is accepted.
OFFLINE NONENo further status details available.
COMMUNICATION_ERRORError in communication with the device. This may also be only a temporary error.
CONFIGURATION_ERRORAn issue with the configuration of a Thing prevents the communication with the represented device or service. This issue might be solved by reconfiguring the Thing.
BRIDGE_OFFLINEAssuming the Thing to be offline because the corresponding bridge is offline.
FIRMWARE_UPDATINGThe Thing is currently operating a firmware update.
DUTY_CYCLEThe Thing is currently in DUTY_CYCLE state, which means it is blocked for further usage.
GONEThe Thing has been removed from the bridge or the network to which it belongs and is no longer available for use. The user can now remove the Thing from the system.
REMOVING NONENo further status details available.
REMOVED NONENo further status details available.
+ +### Status Description + +To provide additional information about the current status a description is used. +The status description is to be specified by the binding. +This description can be used for debugging purposes and should not be presented to the user, as it might contain unreadable technical information (e.g. an HTTP status code, or any other protocol specific information, which helps to identify the current problem). + +### Thing Status API + +The Thing interface defines a method `getStatusInfo()` to retrieve the current status of the Thing. +The following code shows how to print the status of each Thing into the console: + +```java +Collection things = thingRegistry.getAll(); +for (Thing thing : things) { + ThingStatusInfo statusInfo = thing.getStatusInfo(); + switch (statusInfo.getStatus()) { + case ONLINE: + System.out.println("Thing is online"); + break; + case OFFLINE: + System.out.println("Thing is offline"); + break; + default: + System.out.println("Thing is in state " + statusInfo.getStatus()); + break; + } + System.out.println("Thing status detail: " + statusInfo.getStatusDetail()); + System.out.println("Thing status description: " + statusInfo.getDescription()); +} +``` diff --git a/concepts/units-of-measurement.md b/concepts/units-of-measurement.md new file mode 100644 index 000000000..15559f1ea --- /dev/null +++ b/concepts/units-of-measurement.md @@ -0,0 +1,189 @@ +--- +layout: documentation +title: Units Of Measurement +--- + +{% include base.html %} + +# Units Of Measurement + +To express measured values in a scientific correct unit the framework supports units of measurement. +By using quantified decimal values in state updates and commands, the framework is able to automatically convert values to a desired unit which may be defined by the system locale or on a per-use-basis. + +## QuantityType + +Bindings use the `QuantityType` to post updates of sensor data with a quantifying unit. +This way the framework and/or the user is able to convert the quantified value to other matching units: + +A weather binding which reads temperature values in °C would use the `QuantityType` to indicate the unit as °C. +The framework is then able to convert the values to either °F or Kelvin according to the configuration of the system. +The default conversion the framework will use is locale based: +Depended on the configured locale the framework tries to convert a `QuantityType` to the default unit of the matching measurement system. +This is the imperial system for the United States (locale US) and Liberia (language tag "en-LR"). +The metric system with SI units is used for the rest of the world. +This conversion will convert the given `QuantityType` into a default unit for the specific dimension of the type. +This is: + +| Dimension | default unit metric | default unit imperial | +|---------------|----------------------------|------------------------| +| Length | Meter (m) | Inch (in) | +| Temperature | Celsius (°C) | Fahrenheit (°F) | +| Pressure | Hectopascal (hPa) | Inch of mercury (inHg) | +| Speed | Kilometers per hour (km/h) | Miles per hour (mph) | +| Intensity | Irradiance (W/m2) | Irradiance (W/m2) | +| Dimensionless | Abstract unit one (one) | Abstract unit one (one)| +| Angle | Degree (°) | Degree (°) | + +## NumberItem linked to QuantityType Channel + +In addition to the automated conversion the `NumberItem` linked to a Channel delivering `QuantityTypes` can be configured to always have state updates converted to a specific unit. +The unit given in the state description is parsed and then used for conversion (if necessary). +The framework assumes that the unit to parse is always the last token in the state description. +If the parsing failed the locale based default conversion takes place. + + Number:Temperature temperature "Outside [%.2f °F]" { channel="...:current#temperature" } + +In the example the `NumberItem` is specified to bind to Channels which offer values from the dimension `Temperature`. +Without the dimension information the `NumberItem` only will receive updates of type `DecimalType` without a unit and any conversion. +The state description defines two decimal places for the value and the fix unit °F. +In case the state description should display the unit the binding delivers or the framework calculates through locale based conversion the pattern will look like this: + + "Outside [%.2f %unit%]" + +The special placeholder `%unit%` will then be replaced by the actual unit symbol. +In addition the placeholder `%unit%` can be placed anywhere in the state description. + +#### Defining ChannelTypes + +In order to match `NumberItems` and Channels and define a default state description with unit placeholder the Channel also has to provide an Item type which includes the dimension information: + + + + Number:Temperature + + Current temperature + + + +The state description pattern "%.1f %unit%" describes the value format as floating point with one decimal place and also the special placeholder for the unit. + +## Implementing UoM +When creating QuantityType states the framework offers some useful packages and classes: +The `org.eclipse.smarthome.core.library.unit` package contains the classes `SIUnits`, `ImperialUnits` and `SmartHomeUnits` which provide units unique to either of the measurement systems and common units used in both systems. +The `MetricPrefix` class provides prefixes like MILLI, CENTI, HECTO, etc. which are wrappers to create derived units. +The `org.eclipse.smarthome.core.library.dimension` and `javax.measure.quantity` packages provide interfaces which are used to type the generic QuantityType and units. + +## List of Units + +All units which are currently supported by default are listed in the tables below. + + +Imperial: + +| Type | Unit | Symbol | +|-------------|-----------------|--------| +| Pressure | Inch of Mercury | inHg | +| Temperature | Fahrenheit | °F | +| Speed | Miles per Hour | mph | +| Length | Inch | in | +| Length | Foot | ft | +| Length | Yard | yd | +| Length | Chain | ch | +| Length | Furlong | fur | +| Length | Mile | mi | +| Length | League | lea | + +SI: + +| Type | Unit | Symbol | +|------------------------|-------------------------|--------| +| Acceleration | Metre per square Second | m/s2 | +| AmountOfSubstance | Mole | mol | +| Angle | Radian | rad | +| Angle | Degree | ° | +| Angle | Minute Angle | ' | +| Angle | Second Angle | '' | +| Area | Square Metre | m2 | +| ArealDensity | Dobson Unit | DU | +| CatalyticActivity | Katal | kat | +| Dimensionless | Percent | % | +| Dimensionless | Parts per Million | ppm | +| Dimensionless | Decibel | dB | +| ElectricPotential | Volt | V | +| ElectricCapacitance | Farad | F | +| ElectricCharge | Coulomb | C | +| ElectricConductance | Siemens | S | +| ElectricCurrent | Ampere | A | +| ElectricInductance | Henry | H | +| ElectricResistance | Ohm | Ω | +| Energy | Joule | J | +| Energy | Watt Second | Ws | +| Energy | Watt Hour | Wh | +| Energy | KiloWatt Hour | kWh | +| Force | Newton | N | +| Frequency | Hertz | Hz | +| Illuminance | Lux | lx | +| Intensity | Irradiance | W/m² | +| Length | Metre | m | +| Length | Kilometre | km | +| LuminousFlux | Lumen | lm | +| LuminousIntensity | Candela | cd | +| MagneticFlux | Weber | Wb | +| MagneticFluxDensity | Tesla | T | +| Mass | Kilogram | kg | +| Mass | Gram | g | +| Power | Watt | W | +| Pressure | Pascal | Pa | +| Pressure | hectoPascal | hPa | +| Pressure | Millimetre of Mercury | mmHg | +| Pressure | Bar | bar | +| Pressure | milliBar | mbar | +| Radioactivity | Becquerel | Bq | +| RadiationDoseAbsorbed | Gray | Gy | +| RadiationDoseEffective | Sievert | Sv | +| SolidAngle | Steradian | sr | +| Speed | Metre per Second | m/s | +| Speed | Kilometre per Hour | km/h | +| Speed | Knot | kn | +| Temperature | Kelvin | K | +| Temperature | Celsius | °C | +| Time | Second | s | +| Time | Minute | min | +| Time | Hour | h | +| Time | Day | d | +| Time | Week | week | +| Time | Year | y | +| Volume | Cubic Metre | m3 | + +Prefixes: + +| Name | Symbol | Value | +|-------|--------|-------| +| Yotta | Y | 10²⁴ | +| Zetta | Z | 10²¹ | +| Exa | E | 10¹⁸ | +| Peta | P | 10¹⁵ | +| Tera | T | 10¹² | +| Giga | G | 10⁹ | +| Mega | M | 10⁶ | +| Kilo | k | 10³ | +| Hecto | h | 10² | +| Deca | da | 10 | +| Deci | d | 10⁻¹ | +| Centi | c | 10⁻² | +| Milli | m | 10⁻³ | +| Micro | µ | 10⁻⁶ | +| Nano | n | 10⁻⁹ | +| Pico | p | 10⁻¹² | +| Femto | f | 10⁻¹⁵ | +| Atto | a | 10⁻¹⁸ | +| Zepto | z | 10⁻²¹ | +| Yocto | y | 10⁻²⁴ | + + +To use the prefixes simply add the prefix to the unit symbol e.g. + +Examples: +-milliAmpere - `mA` +-centiMetre - `cm` +-kiloWatt - `kW`