diff --git a/.vuepress/components/AddonSearch.vue b/.vuepress/components/AddonSearch.vue deleted file mode 100644 index f7b04c01..00000000 --- a/.vuepress/components/AddonSearch.vue +++ /dev/null @@ -1,298 +0,0 @@ - - - - - diff --git a/.vuepress/components/BlogPost.vue b/.vuepress/components/BlogPost.vue deleted file mode 100644 index 46bc59e8..00000000 --- a/.vuepress/components/BlogPost.vue +++ /dev/null @@ -1,109 +0,0 @@ - - - - - diff --git a/.vuepress/components/BlogPostList.vue b/.vuepress/components/BlogPostList.vue deleted file mode 100644 index ad5477bb..00000000 --- a/.vuepress/components/BlogPostList.vue +++ /dev/null @@ -1,205 +0,0 @@ - - - - - diff --git a/.vuepress/components/CalendarIcon.vue b/.vuepress/components/CalendarIcon.vue deleted file mode 100644 index ff25fff9..00000000 --- a/.vuepress/components/CalendarIcon.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - - - diff --git a/.vuepress/components/CommunityTutorials.vue b/.vuepress/components/CommunityTutorials.vue deleted file mode 100644 index 6cbfa6e4..00000000 --- a/.vuepress/components/CommunityTutorials.vue +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - diff --git a/.vuepress/components/Event.vue b/.vuepress/components/Event.vue deleted file mode 100644 index a15a7a08..00000000 --- a/.vuepress/components/Event.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - diff --git a/.vuepress/components/HomePage.vue b/.vuepress/components/HomePage.vue deleted file mode 100644 index 5775ca83..00000000 --- a/.vuepress/components/HomePage.vue +++ /dev/null @@ -1,211 +0,0 @@ - - - - - diff --git a/.vuepress/components/InstallInstructions.vue b/.vuepress/components/InstallInstructions.vue deleted file mode 100644 index b187960b..00000000 --- a/.vuepress/components/InstallInstructions.vue +++ /dev/null @@ -1,373 +0,0 @@ - - - - - diff --git a/.vuepress/components/home/AlertBannerSection.vue b/.vuepress/components/home/AlertBannerSection.vue deleted file mode 100644 index 29defc48..00000000 --- a/.vuepress/components/home/AlertBannerSection.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - diff --git a/.vuepress/components/home/AlternativeToSection.vue b/.vuepress/components/home/AlternativeToSection.vue deleted file mode 100644 index dd75fa8f..00000000 --- a/.vuepress/components/home/AlternativeToSection.vue +++ /dev/null @@ -1,39 +0,0 @@ - - - diff --git a/.vuepress/components/home/CloudSection.vue b/.vuepress/components/home/CloudSection.vue deleted file mode 100644 index b8a90cdf..00000000 --- a/.vuepress/components/home/CloudSection.vue +++ /dev/null @@ -1,135 +0,0 @@ - - - - - diff --git a/.vuepress/components/home/CommunitySection.vue b/.vuepress/components/home/CommunitySection.vue deleted file mode 100644 index adbdb32a..00000000 --- a/.vuepress/components/home/CommunitySection.vue +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - diff --git a/.vuepress/components/home/EventsSection.vue b/.vuepress/components/home/EventsSection.vue deleted file mode 100644 index 5660b88d..00000000 --- a/.vuepress/components/home/EventsSection.vue +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - diff --git a/.vuepress/components/home/FeaturedAddons.vue b/.vuepress/components/home/FeaturedAddons.vue deleted file mode 100644 index 8638d302..00000000 --- a/.vuepress/components/home/FeaturedAddons.vue +++ /dev/null @@ -1,96 +0,0 @@ - - - - - diff --git a/.vuepress/components/home/IntegrateEverythingIcon.vue b/.vuepress/components/home/IntegrateEverythingIcon.vue deleted file mode 100644 index 4e0bb254..00000000 --- a/.vuepress/components/home/IntegrateEverythingIcon.vue +++ /dev/null @@ -1,62 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.vuepress/components/home/Jumbotron.vue b/.vuepress/components/home/Jumbotron.vue deleted file mode 100644 index b928a246..00000000 --- a/.vuepress/components/home/Jumbotron.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - diff --git a/.vuepress/components/home/OpenSourceSection.vue b/.vuepress/components/home/OpenSourceSection.vue deleted file mode 100644 index 11f998aa..00000000 --- a/.vuepress/components/home/OpenSourceSection.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - diff --git a/.vuepress/components/home/OpenhabianSection.vue b/.vuepress/components/home/OpenhabianSection.vue deleted file mode 100644 index 4e434eba..00000000 --- a/.vuepress/components/home/OpenhabianSection.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - diff --git a/.vuepress/components/home/RotatingGearsIcon.vue b/.vuepress/components/home/RotatingGearsIcon.vue deleted file mode 100644 index 46a0a175..00000000 --- a/.vuepress/components/home/RotatingGearsIcon.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/.vuepress/components/home/RunsEverywhereIcon.vue b/.vuepress/components/home/RunsEverywhereIcon.vue deleted file mode 100644 index 6e7e2992..00000000 --- a/.vuepress/components/home/RunsEverywhereIcon.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.vuepress/components/home/TweetsSection.vue b/.vuepress/components/home/TweetsSection.vue deleted file mode 100644 index 3684493a..00000000 --- a/.vuepress/components/home/TweetsSection.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - diff --git a/.vuepress/components/home/VsCodeSection.vue b/.vuepress/components/home/VsCodeSection.vue deleted file mode 100644 index c6ce225a..00000000 --- a/.vuepress/components/home/VsCodeSection.vue +++ /dev/null @@ -1,89 +0,0 @@ - - - - - diff --git a/.vuepress/components/home/WhySection.vue b/.vuepress/components/home/WhySection.vue deleted file mode 100644 index bd0d7904..00000000 --- a/.vuepress/components/home/WhySection.vue +++ /dev/null @@ -1,112 +0,0 @@ - - - - - diff --git a/.vuepress/components/home/images/alternativeTo.png b/.vuepress/components/home/images/alternativeTo.png deleted file mode 100644 index dd5e6093..00000000 Binary files a/.vuepress/components/home/images/alternativeTo.png and /dev/null differ diff --git a/.vuepress/components/home/images/cloud-bkg.png b/.vuepress/components/home/images/cloud-bkg.png deleted file mode 100644 index 552bfd36..00000000 Binary files a/.vuepress/components/home/images/cloud-bkg.png and /dev/null differ diff --git a/.vuepress/components/home/images/esh-logo.png b/.vuepress/components/home/images/esh-logo.png deleted file mode 100644 index 9e4b833a..00000000 Binary files a/.vuepress/components/home/images/esh-logo.png and /dev/null differ diff --git a/.vuepress/components/home/images/graph-bkg.png b/.vuepress/components/home/images/graph-bkg.png deleted file mode 100644 index ce9e8dc0..00000000 Binary files a/.vuepress/components/home/images/graph-bkg.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/README.md b/.vuepress/components/home/images/icons/README.md deleted file mode 100644 index 1b0c735c..00000000 --- a/.vuepress/components/home/images/icons/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Credits - -Images in the `icons` folder are based on work by https://pixabay.com/en/users/geralt-9301/ and licensed under the CC0 license. - -Images in the `lock-bkg.png` and `cloud-bkg.png` folder are based on work by https://pixabay.com/en/users/krzysztof-m-1363864/ and licensed under the CC0 license. - - -See https://pixabay.com/en/service/terms/#usage diff --git a/.vuepress/components/home/images/icons/apple.png b/.vuepress/components/home/images/icons/apple.png deleted file mode 100644 index ef89777c..00000000 Binary files a/.vuepress/components/home/images/icons/apple.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/camera.png b/.vuepress/components/home/images/icons/camera.png deleted file mode 100644 index 7fc9b88b..00000000 Binary files a/.vuepress/components/home/images/icons/camera.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/car.png b/.vuepress/components/home/images/icons/car.png deleted file mode 100644 index 89207a3a..00000000 Binary files a/.vuepress/components/home/images/icons/car.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/docker.png b/.vuepress/components/home/images/icons/docker.png deleted file mode 100644 index 9375a9eb..00000000 Binary files a/.vuepress/components/home/images/icons/docker.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/empty.png b/.vuepress/components/home/images/icons/empty.png deleted file mode 100644 index bbd1e336..00000000 Binary files a/.vuepress/components/home/images/icons/empty.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/homecinema.png b/.vuepress/components/home/images/icons/homecinema.png deleted file mode 100644 index c7c38906..00000000 Binary files a/.vuepress/components/home/images/icons/homecinema.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/key.png b/.vuepress/components/home/images/icons/key.png deleted file mode 100644 index fd0a7011..00000000 Binary files a/.vuepress/components/home/images/icons/key.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/light.png b/.vuepress/components/home/images/icons/light.png deleted file mode 100644 index fefa12eb..00000000 Binary files a/.vuepress/components/home/images/icons/light.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/linux.png b/.vuepress/components/home/images/icons/linux.png deleted file mode 100644 index 4f97fb6c..00000000 Binary files a/.vuepress/components/home/images/icons/linux.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/lock.png b/.vuepress/components/home/images/icons/lock.png deleted file mode 100644 index 625534b0..00000000 Binary files a/.vuepress/components/home/images/icons/lock.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/pi.png b/.vuepress/components/home/images/icons/pi.png deleted file mode 100644 index 32ccc29d..00000000 Binary files a/.vuepress/components/home/images/icons/pi.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/shutters.png b/.vuepress/components/home/images/icons/shutters.png deleted file mode 100644 index 3bb22510..00000000 Binary files a/.vuepress/components/home/images/icons/shutters.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/temperature.png b/.vuepress/components/home/images/icons/temperature.png deleted file mode 100644 index 3bd1143c..00000000 Binary files a/.vuepress/components/home/images/icons/temperature.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/tv.png b/.vuepress/components/home/images/icons/tv.png deleted file mode 100644 index 463d4c31..00000000 Binary files a/.vuepress/components/home/images/icons/tv.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/washingmachine.png b/.vuepress/components/home/images/icons/washingmachine.png deleted file mode 100644 index bed30e68..00000000 Binary files a/.vuepress/components/home/images/icons/washingmachine.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/wifi.png b/.vuepress/components/home/images/icons/wifi.png deleted file mode 100644 index 6d2ecd6d..00000000 Binary files a/.vuepress/components/home/images/icons/wifi.png and /dev/null differ diff --git a/.vuepress/components/home/images/icons/windows.png b/.vuepress/components/home/images/icons/windows.png deleted file mode 100644 index e870d647..00000000 Binary files a/.vuepress/components/home/images/icons/windows.png and /dev/null differ diff --git a/.vuepress/components/home/images/iot-logo.png b/.vuepress/components/home/images/iot-logo.png deleted file mode 100644 index 653a6f80..00000000 Binary files a/.vuepress/components/home/images/iot-logo.png and /dev/null differ diff --git a/.vuepress/components/home/images/lock-bkg.png b/.vuepress/components/home/images/lock-bkg.png deleted file mode 100644 index 25ce34c4..00000000 Binary files a/.vuepress/components/home/images/lock-bkg.png and /dev/null differ diff --git a/.vuepress/components/home/images/rpi.jpg b/.vuepress/components/home/images/rpi.jpg deleted file mode 100644 index 1c5d26ad..00000000 Binary files a/.vuepress/components/home/images/rpi.jpg and /dev/null differ diff --git a/.vuepress/components/home/images/shd.jpg b/.vuepress/components/home/images/shd.jpg deleted file mode 100644 index d5d51a47..00000000 Binary files a/.vuepress/components/home/images/shd.jpg and /dev/null differ diff --git a/.vuepress/components/things/things.json b/.vuepress/components/things/things.json deleted file mode 100644 index e9c32457..00000000 --- a/.vuepress/components/things/things.json +++ /dev/null @@ -1,6187 +0,0 @@ -[ - { - "id": "airquality:aqi", - "label": "Air Quality", - "bindingId": "airquality" - }, - { - "id": "allplay:speaker", - "label": "AllPlay Speaker", - "bindingId": "allplay" - }, - { - "id": "amazondashbutton:dashbutton", - "label": "@text/dashButtonLabel", - "bindingId": "amazondashbutton" - }, - { - "id": "amazonechocontrol:account", - "label": "Amazon Account", - "bindingId": "amazonechocontrol" - }, - { - "id": "amazonechocontrol:echo", - "label": "Amazon Echo", - "bindingId": "amazonechocontrol" - }, - { - "id": "amazonechocontrol:echospot", - "label": "Amazon Echo Spot", - "bindingId": "amazonechocontrol" - }, - { - "id": "amazonechocontrol:echoshow", - "label": "Amazon Echo Show", - "bindingId": "amazonechocontrol" - }, - { - "id": "amazonechocontrol:wha", - "label": "Amazon Echo Whole House Audio Control", - "bindingId": "amazonechocontrol" - }, - { - "id": "amazonechocontrol:flashbriefingprofile", - "label": "Flash Briefing Profile", - "bindingId": "amazonechocontrol" - }, - { - "id": "atlona:pro3-44m", - "label": "Atlona Pro3 4x4 HDBaseT Matrix", - "bindingId": "atlona" - }, - { - "id": "atlona:pro3-66m", - "label": "Atlona Pro3 6x6 HDBaseT Matrix", - "bindingId": "atlona" - }, - { - "id": "atlona:pro3-88m", - "label": "Atlona Pro3 8x8 HDBaseT Matrix", - "bindingId": "atlona" - }, - { - "id": "atlona:pro3-1616m", - "label": "Atlona Pro3 16x16 HDBaseT Matrix", - "bindingId": "atlona" - }, - { - "id": "autelis:poolcontrol", - "label": "Pool Controller", - "bindingId": "autelis" - }, - { - "id": "avmfritz:fritzbox", - "label": "FRITZ!Box", - "bindingId": "avmfritz" - }, - { - "id": "avmfritz:FRITZ_Powerline_546E_Solo", - "label": "FRITZ!Powerline 546E", - "bindingId": "avmfritz" - }, - { - "id": "avmfritz:Comet_DECT", - "label": "Comet DECT", - "bindingId": "avmfritz" - }, - { - "id": "avmfritz:FRITZ_DECT_301", - "label": "FRITZ!DECT 301", - "bindingId": "avmfritz" - }, - { - "id": "avmfritz:FRITZ_DECT_300", - "label": "FRITZ!DECT 300", - "bindingId": "avmfritz" - }, - { - "id": "avmfritz:FRITZ_DECT_210", - "label": "FRITZ!DECT 210", - "bindingId": "avmfritz" - }, - { - "id": "avmfritz:FRITZ_DECT_200", - "label": "FRITZ!DECT 200", - "bindingId": "avmfritz" - }, - { - "id": "avmfritz:FRITZ_Powerline_546E", - "label": "FRITZ!Powerline 546E", - "bindingId": "avmfritz" - }, - { - "id": "avmfritz:FRITZ_DECT_Repeater_100", - "label": "FRITZ!DECT Repeater 100", - "bindingId": "avmfritz" - }, - { - "id": "avmfritz:FRITZ_GROUP_HEATING", - "label": "Heating Group", - "bindingId": "avmfritz" - }, - { - "id": "avmfritz:FRITZ_GROUP_SWITCH", - "label": "Switch Group", - "bindingId": "avmfritz" - }, - { - "id": "bigassfan:fan", - "label": "BigAssFan", - "bindingId": "bigassfan" - }, - { - "id": "bigassfan:light", - "label": "Light", - "bindingId": "bigassfan" - }, - { - "id": "bigassfan:controller", - "label": "Controller", - "bindingId": "bigassfan" - }, - { - "id": "boschindego:indego", - "label": "Bosch Indego", - "bindingId": "boschindego" - }, - { - "id": "chromecast:audiogroup", - "label": "Chromecast Audio Group", - "bindingId": "chromecast" - }, - { - "id": "chromecast:audio", - "label": "Chromecast Audio", - "bindingId": "chromecast" - }, - { - "id": "chromecast:chromecast", - "label": "Chromecast", - "bindingId": "chromecast" - }, - { - "id": "cm11a:cm11a", - "label": "CM11a controller for X10 devices", - "bindingId": "cm11a" - }, - { - "id": "cm11a:dimmer", - "label": "X10 Dimmer", - "bindingId": "cm11a" - }, - { - "id": "cm11a:switch", - "label": "X10 Switch", - "bindingId": "cm11a" - }, - { - "id": "coolmasternet:controller", - "label": "CoolMasterNet Controller", - "bindingId": "coolmasternet" - }, - { - "id": "coolmasternet:hvac", - "label": "HVAC System", - "bindingId": "coolmasternet" - }, - { - "id": "denonmarantz:avr", - "label": "Denon/Marantz AVR", - "bindingId": "denonmarantz" - }, - { - "id": "dlinksmarthome:DCH-S150", - "label": "Motion Sensor", - "bindingId": "dlinksmarthome" - }, - { - "id": "dscalarm:envisalink", - "label": "EyezOn Envisalink", - "bindingId": "dscalarm" - }, - { - "id": "dscalarm:it100", - "label": "DSC IT-100", - "bindingId": "dscalarm" - }, - { - "id": "dscalarm:keypad", - "label": "DSC Alarm Keypad", - "bindingId": "dscalarm" - }, - { - "id": "dscalarm:panel", - "label": "DSC Alarm Panel", - "bindingId": "dscalarm" - }, - { - "id": "dscalarm:partition", - "label": "DSC Alarm Partition", - "bindingId": "dscalarm" - }, - { - "id": "dscalarm:tcpserver", - "label": "TCP Server", - "bindingId": "dscalarm" - }, - { - "id": "dscalarm:zone", - "label": "DSC Alarm Zone", - "bindingId": "dscalarm" - }, - { - "id": "exec:command", - "label": "Command", - "bindingId": "exec" - }, - { - "id": "feed:feed", - "label": "Feed", - "bindingId": "feed" - }, - { - "id": "feican:bulb", - "label": "Wifi RGBW Bulb", - "bindingId": "feican" - }, - { - "id": "folding:client", - "label": "Client", - "bindingId": "folding" - }, - { - "id": "folding:slot", - "label": "Slot", - "bindingId": "folding" - }, - { - "id": "freebox:server", - "label": "Freebox Revolution Server", - "bindingId": "freebox" - }, - { - "id": "freebox:phone", - "label": "Phone", - "bindingId": "freebox" - }, - { - "id": "freebox:net_device", - "label": "Network Device", - "bindingId": "freebox" - }, - { - "id": "freebox:net_interface", - "label": "Network Interface", - "bindingId": "freebox" - }, - { - "id": "freebox:airplay", - "label": "AirPlay Receiver", - "bindingId": "freebox" - }, - { - "id": "fronius:bridge", - "label": "Fronius bridge", - "bindingId": "fronius" - }, - { - "id": "fronius:powerinverter", - "label": "Fronius Symo Inverter", - "bindingId": "fronius" - }, - { - "id": "ftpupload:imagereceiver", - "label": "Image Receiver", - "bindingId": "ftpupload" - }, - { - "id": "gardena:account", - "label": "Gardena Smart Home Account", - "bindingId": "gardena" - }, - { - "id": "gardena:mower", - "label": "Gardena Smart Sileno mower", - "bindingId": "gardena" - }, - { - "id": "gardena:watering_computer", - "label": "Gardena Smart Watering Computer", - "bindingId": "gardena" - }, - { - "id": "gardena:sensor", - "label": "Gardena Smart Sensor", - "bindingId": "gardena" - }, - { - "id": "gardena:electronic_pressure_pump", - "label": "Gardena Smart Pressure Pump", - "bindingId": "gardena" - }, - { - "id": "gardena:power", - "label": "Gardena Smart Power Plug", - "bindingId": "gardena" - }, - { - "id": "globalcache:gc100_06", - "label": "GlobalCache GC-100-06", - "bindingId": "globalcache" - }, - { - "id": "globalcache:gc100_12", - "label": "GlobalCache GC-100-12", - "bindingId": "globalcache" - }, - { - "id": "globalcache:itachCC", - "label": "GlobalCache iTach CC", - "bindingId": "globalcache" - }, - { - "id": "globalcache:itachFlex", - "label": "GlobalCache iTach Flex", - "bindingId": "globalcache" - }, - { - "id": "globalcache:itachIR", - "label": "GlobalCache iTach IR", - "bindingId": "globalcache" - }, - { - "id": "globalcache:itachSL", - "label": "GlobalCache iTach SL", - "bindingId": "globalcache" - }, - { - "id": "globalcache:zmote", - "label": "Zmote IR", - "bindingId": "globalcache" - }, - { - "id": "harmonyhub:hub", - "label": "Harmony Hub", - "bindingId": "harmonyhub" - }, - { - "id": "harmonyhub:device", - "label": "Harmony Device", - "bindingId": "harmonyhub" - }, - { - "id": "hdanywhere:mhub4k431", - "label": "HDanywhere MHUB4K431 HDMI Matrix", - "bindingId": "hdanywhere" - }, - { - "id": "hdanywhere:multiroomplus", - "label": "HDanywhere Multiroom+ HDMI Matrix", - "bindingId": "hdanywhere" - }, - { - "id": "hdpowerview:hub", - "label": "PowerView Hub", - "bindingId": "hdpowerview" - }, - { - "id": "hdpowerview:shade", - "label": "PowerView Shade", - "bindingId": "hdpowerview" - }, - { - "id": "helios:ipvario221", - "label": "Helios IP Vario", - "bindingId": "helios" - }, - { - "id": "helios:ipvario27", - "label": "Helios IP Vario", - "bindingId": "helios" - }, - { - "id": "homematic:bridge", - "label": "Homematic Bridge", - "bindingId": "homematic" - }, - { - "id": "hyperion:serverV1", - "label": "Hyperion Server", - "bindingId": "hyperion" - }, - { - "id": "hyperion:serverNG", - "label": "Hyperion.ng Server", - "bindingId": "hyperion" - }, - { - "id": "icloud:account", - "label": "iCloud Account", - "bindingId": "icloud" - }, - { - "id": "icloud:device", - "label": "iCloud Device", - "bindingId": "icloud" - }, - { - "id": "innogysmarthome:AnalogMeter", - "label": "Analog Meter", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:BRC8", - "label": "Basic Remote Controller (BRC8)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:bridge", - "label": "innogy SmartHome Controller", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:GenerationMeter", - "label": "Generation Meter", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:ISC2", - "label": "In wall Smart Controller (ISC2)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:ISD2", - "label": "In wall Smart Dimmer (ISD2)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:ISR2", - "label": "In wall Smart Roller Shutter (ISR2)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:ISS2", - "label": "In wall Smart Switch (ISS2)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:PSD", - "label": "Pluggable Smart Dimmer (PSD)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:PSS", - "label": "Pluggable Smart Switch (PSS)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:PSSO", - "label": "Pluggable Smart Switch Outdoor (PSSO)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:RST", - "label": "Radiator mounted Smart Thermostat (RST)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:RST2", - "label": "Radiator mounted Smart Thermostat (RST2)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:SmartMeter", - "label": "Smart Meter", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:TwoWayMeter", - "label": "Two-Way-Meter", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:VariableActuator", - "label": "Variable Actuator", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:WDS", - "label": "Wall mounted Door/Window Sensor (WDS)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:WMD", - "label": "Wall mounted Motion Detector Indoor (WMD)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:WMDO", - "label": "Wall mounted Motion Detector Outdoor (WMDO)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:WRT", - "label": "Wall mounted Room Thermostat (WRT)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:WSC2", - "label": "Wall mounted Smart Controller (WSC2)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:WSD", - "label": "Wall mounted Smoke Detector (WSD)", - "bindingId": "innogysmarthome" - }, - { - "id": "innogysmarthome:WSD2", - "label": "Wall mounted Smoke Detector (WSD2)", - "bindingId": "innogysmarthome" - }, - { - "id": "ipp:printer", - "label": "Printer", - "bindingId": "ipp" - }, - { - "id": "irtrans:blaster", - "label": "Blaster", - "bindingId": "irtrans" - }, - { - "id": "irtrans:ethernet", - "label": "IRtrans Ethernet Bridge", - "bindingId": "irtrans" - }, - { - "id": "jeelink:jeelinkUsb", - "label": "@text/bridge-type.jeelinkUsb.label", - "bindingId": "jeelink" - }, - { - "id": "jeelink:lgwUsb", - "label": "@text/bridge-type.lgwUsb.label", - "bindingId": "jeelink" - }, - { - "id": "jeelink:jeelinkTcp", - "label": "@text/bridge-type.jeelinkTcp.label", - "bindingId": "jeelink" - }, - { - "id": "jeelink:lgwTcp", - "label": "@text/bridge-type.lgwTcp.label", - "bindingId": "jeelink" - }, - { - "id": "jeelink:lacrosse", - "label": "@text/thing-type.lacrosse.label", - "bindingId": "jeelink" - }, - { - "id": "jeelink:ec3k", - "label": "@text/thing-type.ec3k.label", - "bindingId": "jeelink" - }, - { - "id": "jeelink:pca301", - "label": "@text/thing-type.pca301.label", - "bindingId": "jeelink" - }, - { - "id": "keba:kecontact", - "label": "KeContact EV Charging Station", - "bindingId": "keba" - }, - { - "id": "knx:device", - "label": "KNX Device", - "bindingId": "knx" - }, - { - "id": "knx:ip", - "label": "KNX/IP Gateway", - "bindingId": "knx" - }, - { - "id": "knx:serial", - "label": "KNX FT1.2 Interface", - "bindingId": "knx" - }, - { - "id": "kodi:kodi", - "label": "Kodi Mediacenter", - "bindingId": "kodi" - }, - { - "id": "kostalinverter:kostalinverter", - "label": "Kostal Inverter", - "bindingId": "kostalinverter" - }, - { - "id": "lametrictime:clockApp", - "label": "LaMetric Time Clock", - "bindingId": "lametrictime" - }, - { - "id": "lametrictime:countdownApp", - "label": "LaMetric Time Timer", - "bindingId": "lametrictime" - }, - { - "id": "lametrictime:device", - "label": "LaMetric Time", - "bindingId": "lametrictime" - }, - { - "id": "lametrictime:radioApp", - "label": "LaMetric Time Radio", - "bindingId": "lametrictime" - }, - { - "id": "lametrictime:stopwatchApp", - "label": "LaMetric Time Stopwatch", - "bindingId": "lametrictime" - }, - { - "id": "lametrictime:weatherApp", - "label": "LaMetric Time Weather", - "bindingId": "lametrictime" - }, - { - "id": "lgtvserial:lgtv", - "label": "LG TV", - "bindingId": "lgtvserial" - }, - { - "id": "lgwebos:WebOSTV", - "label": "WebOS TV", - "bindingId": "lgwebos" - }, - { - "id": "logreader:reader", - "label": "LogReader", - "bindingId": "logreader" - }, - { - "id": "loxone:miniserver", - "label": "Loxone Miniserver", - "bindingId": "loxone" - }, - { - "id": "lutron:ipbridge", - "label": "Lutron IP Access Point", - "bindingId": "lutron" - }, - { - "id": "lutron:dimmer", - "label": "Maestro Dimmer", - "bindingId": "lutron" - }, - { - "id": "lutron:switch", - "label": "Maestro Switch", - "bindingId": "lutron" - }, - { - "id": "lutron:occupancysensor", - "label": "Radio Powr Savr Sensor", - "bindingId": "lutron" - }, - { - "id": "lutron:keypad", - "label": "seeTouch Keypad", - "bindingId": "lutron" - }, - { - "id": "lutron:prgbridge", - "label": "Lutron GRX-PRG or GRX-CI-PRG Bridge", - "bindingId": "lutron" - }, - { - "id": "lutron:grafikeye", - "label": "Grafik Eye", - "bindingId": "lutron" - }, - { - "id": "lutron:ra-rs232", - "label": "Lutron RadioRA RS232", - "bindingId": "lutron" - }, - { - "id": "lutron:ra-dimmer", - "label": "RadioRA Dimmer", - "bindingId": "lutron" - }, - { - "id": "lutron:ra-switch", - "label": "RadioRA Switch", - "bindingId": "lutron" - }, - { - "id": "lutron:ra-phantomButton", - "label": "RadioRA Phantom Button", - "bindingId": "lutron" - }, - { - "id": "max:bridge", - "label": "MAX! Cube LAN Gateway", - "bindingId": "max" - }, - { - "id": "max:thermostat", - "label": "MAX! HeatingThermostat", - "bindingId": "max" - }, - { - "id": "max:thermostatplus", - "label": "MAX! HeatingThermostat+", - "bindingId": "max" - }, - { - "id": "max:wallthermostat", - "label": "MAX! WallThermostat+", - "bindingId": "max" - }, - { - "id": "max:ecoswitch", - "label": "MAX! Ecoswitch", - "bindingId": "max" - }, - { - "id": "max:shuttercontact", - "label": "MAX! Shutter Contact", - "bindingId": "max" - }, - { - "id": "mcp23017:mcp23017", - "label": "mcp23017", - "bindingId": "mcp23017" - }, - { - "id": "meteostick:meteostick_bridge", - "label": "Meteostick USB Receiver", - "bindingId": "meteostick" - }, - { - "id": "meteostick:meteostick_davis_iss", - "label": "Davis Vantage Vue ISS", - "bindingId": "meteostick" - }, - { - "id": "miele:dishwasher", - "label": "Dishwasher", - "bindingId": "miele" - }, - { - "id": "miele:fridge", - "label": "Fridge", - "bindingId": "miele" - }, - { - "id": "miele:fridgefreezer", - "label": "Fridge Freezer", - "bindingId": "miele" - }, - { - "id": "miele:hob", - "label": "Hob", - "bindingId": "miele" - }, - { - "id": "miele:hood", - "label": "Hood", - "bindingId": "miele" - }, - { - "id": "miele:oven", - "label": "Oven", - "bindingId": "miele" - }, - { - "id": "miele:tumbledryer", - "label": "Tumbledryer", - "bindingId": "miele" - }, - { - "id": "miele:washingmachine", - "label": "Washing Machine", - "bindingId": "miele" - }, - { - "id": "miele:xgw3000", - "label": "Miele XGW3000", - "bindingId": "miele" - }, - { - "id": "mihome:86sw1", - "label": "Xiaomi Aqara 1 Channel Smart Light Control", - "bindingId": "mihome" - }, - { - "id": "mihome:86sw2", - "label": "Xiaomi Aqara 2 Channel Smart Light Control", - "bindingId": "mihome" - }, - { - "id": "mihome:ctrl_ln1", - "label": "Xiaomi \"zero-fire\" 1 Channel Wall Switch", - "bindingId": "mihome" - }, - { - "id": "mihome:ctrl_ln2", - "label": "Xiaomi \"zero-fire\" 2 Channel Wall Switch", - "bindingId": "mihome" - }, - { - "id": "mihome:ctrl_neutral1", - "label": "Xiaomi Aqara 1 Channel Wall Switch", - "bindingId": "mihome" - }, - { - "id": "mihome:ctrl_neutral2", - "label": "Xiaomi Aqara 2 Channel Wall Switch", - "bindingId": "mihome" - }, - { - "id": "mihome:bridge", - "label": "Xiaomi Mi Smart Home Bridge", - "bindingId": "mihome" - }, - { - "id": "mihome:curtain", - "label": "Xiaomi Aqara Intelligent Curtain Motor", - "bindingId": "mihome" - }, - { - "id": "mihome:gateway", - "label": "Xiaomi Mi Smart Home Gateway", - "bindingId": "mihome" - }, - { - "id": "mihome:sensor_cube", - "label": "Xiaomi Mi Smart Cube", - "bindingId": "mihome" - }, - { - "id": "mihome:natgas", - "label": "Xiaomi Gas Sensor", - "bindingId": "mihome" - }, - { - "id": "mihome:sensor_ht", - "label": "Xiaomi Mi Temperature & Humidity Sensor", - "bindingId": "mihome" - }, - { - "id": "mihome:sensor_magnet", - "label": "Xiaomi Door/Window Sensor", - "bindingId": "mihome" - }, - { - "id": "mihome:sensor_magnet_aq2", - "label": "Xiaomi Aqara Door/Window Sensor", - "bindingId": "mihome" - }, - { - "id": "mihome:sensor_motion", - "label": "Xiaomi Mi Motion Sensor", - "bindingId": "mihome" - }, - { - "id": "mihome:sensor_motion_aq2", - "label": "Xiaomi Aqara Motion Sensor", - "bindingId": "mihome" - }, - { - "id": "mihome:sensor_plug", - "label": "Xiaomi Mi Smart Socket Plug", - "bindingId": "mihome" - }, - { - "id": "mihome:smoke", - "label": "Xiaomi Smoke Sensor", - "bindingId": "mihome" - }, - { - "id": "mihome:sensor_switch", - "label": "Xiaomi Mi Wireless Switch", - "bindingId": "mihome" - }, - { - "id": "mihome:sensor_switch_aq2", - "label": "Xiaomi Aqara Wireless Switch", - "bindingId": "mihome" - }, - { - "id": "mihome:sensor_weather_v1", - "label": "Xiaomi Aqara Temperature, Humidity & Pressure Sensor", - "bindingId": "mihome" - }, - { - "id": "mihome:sensor_wleak_aq1", - "label": "Xiaomi Water Leak Sensor", - "bindingId": "mihome" - }, - { - "id": "milight:bridgeV3", - "label": "Milight/Easybulb Bridge", - "bindingId": "milight" - }, - { - "id": "milight:bridgeV6", - "label": "iBox/iBox2", - "bindingId": "milight" - }, - { - "id": "milight:rgbv2Led", - "label": "RGB Led", - "bindingId": "milight" - }, - { - "id": "milight:rgbLed", - "label": "RGB Led", - "bindingId": "milight" - }, - { - "id": "milight:rgbiboxLed", - "label": "IBox integrated Led", - "bindingId": "milight" - }, - { - "id": "milight:rgbwLed", - "label": "RGBW Led", - "bindingId": "milight" - }, - { - "id": "milight:rgbwwLed", - "label": "RGBWW/White Led", - "bindingId": "milight" - }, - { - "id": "milight:whiteLed", - "label": "White Led", - "bindingId": "milight" - }, - { - "id": "minecraft:server", - "label": "Minecraft Bukkit Server", - "bindingId": "minecraft" - }, - { - "id": "minecraft:player", - "label": "Player", - "bindingId": "minecraft" - }, - { - "id": "minecraft:redstoneSign", - "label": "Sign", - "bindingId": "minecraft" - }, - { - "id": "nest:account", - "label": "Nest Account", - "bindingId": "nest" - }, - { - "id": "nest:camera", - "label": "Nest Cam", - "bindingId": "nest" - }, - { - "id": "nest:smoke_detector", - "label": "Nest Protect", - "bindingId": "nest" - }, - { - "id": "nest:structure", - "label": "Nest Structure", - "bindingId": "nest" - }, - { - "id": "nest:thermostat", - "label": "Nest Thermostat", - "bindingId": "nest" - }, - { - "id": "netatmo:netatmoapi", - "label": "Netatmo API", - "bindingId": "netatmo" - }, - { - "id": "netatmo:NHC", - "label": "Healthy Home Coach", - "bindingId": "netatmo" - }, - { - "id": "netatmo:NAMain", - "label": "Main indoor station", - "bindingId": "netatmo" - }, - { - "id": "netatmo:NAModule1", - "label": "Outdoor module", - "bindingId": "netatmo" - }, - { - "id": "netatmo:NAModule2", - "label": "Wind gauge module", - "bindingId": "netatmo" - }, - { - "id": "netatmo:NAModule3", - "label": "Rain Gauge", - "bindingId": "netatmo" - }, - { - "id": "netatmo:NAModule4", - "label": "Additional module", - "bindingId": "netatmo" - }, - { - "id": "netatmo:NAPlug", - "label": "Thermostat relay/plug", - "bindingId": "netatmo" - }, - { - "id": "netatmo:NATherm1", - "label": "Thermostat module", - "bindingId": "netatmo" - }, - { - "id": "netatmo:NACamera", - "label": "Welcome Camera", - "bindingId": "netatmo" - }, - { - "id": "netatmo:NAWelcomeHome", - "label": "Welcome Home", - "bindingId": "netatmo" - }, - { - "id": "netatmo:NAWelcomePerson", - "label": "Welcome Person", - "bindingId": "netatmo" - }, - { - "id": "network:pingdevice", - "label": "Pingable network device", - "bindingId": "network" - }, - { - "id": "network:servicedevice", - "label": "Network device with running service", - "bindingId": "network" - }, - { - "id": "nibeheatpump:f1x45-udp", - "label": "UDP connected Nibe F1145 and F1245 Heat Pumps", - "bindingId": "nibeheatpump" - }, - { - "id": "nibeheatpump:f1x45-serial", - "label": "Serial port connected F1145 and F1245 Heat Pumps", - "bindingId": "nibeheatpump" - }, - { - "id": "nibeheatpump:f1x45-simulator", - "label": "Simulator for Nibe F1145 and F1245 Heat Pumps", - "bindingId": "nibeheatpump" - }, - { - "id": "nikohomecontrol:bridge", - "label": "Niko Home Control Bridge", - "bindingId": "nikohomecontrol" - }, - { - "id": "nikohomecontrol:onOff", - "label": "Switch", - "bindingId": "nikohomecontrol" - }, - { - "id": "nikohomecontrol:dimmer", - "label": "Dimmer", - "bindingId": "nikohomecontrol" - }, - { - "id": "nikohomecontrol:blind", - "label": "Shutter", - "bindingId": "nikohomecontrol" - }, - { - "id": "oceanic:network", - "label": "Oceanic Water Softener", - "bindingId": "oceanic" - }, - { - "id": "oceanic:serial", - "label": "Oceanic Water Softener", - "bindingId": "oceanic" - }, - { - "id": "onebusaway:api", - "label": "OneBusAway Service", - "bindingId": "onebusaway" - }, - { - "id": "onebusaway:route", - "label": "Route", - "bindingId": "onebusaway" - }, - { - "id": "onebusaway:stop", - "label": "Stop", - "bindingId": "onebusaway" - }, - { - "id": "onewiregpio:sensor", - "label": "Temperature Sensor", - "bindingId": "onewiregpio" - }, - { - "id": "onkyo:onkyoAVR", - "label": "Onkyo AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:onkyoUnsupported", - "label": "Unsupported Onkyo AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR414", - "label": "Onkyo TX-NR414 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR509", - "label": "Onkyo TX-NR509 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR515", - "label": "Onkyo TX-NR515 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR525", - "label": "Onkyo TX-NR525 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR535", - "label": "Onkyo TX-NR535 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR555", - "label": "Onkyo TX-NR555 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR616", - "label": "Onkyo TX-NR616 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR626", - "label": "Onkyo TX-NR626 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR646", - "label": "Onkyo TX-NR646 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR656", - "label": "Onkyo TX-NR656 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR717", - "label": "Onkyo TX-NR717 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR727", - "label": "Onkyo TX-NR727 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR737", - "label": "Onkyo TX-NR737 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR747", - "label": "Onkyo TX-NR747 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR818", - "label": "Onkyo TX-NR818 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR828", - "label": "Onkyo TX-NR828 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "onkyo:TX-NR838", - "label": "Onkyo TX-NR838 AV Receiver", - "bindingId": "onkyo" - }, - { - "id": "opensprinkler:http", - "label": "OpenSprinkler", - "bindingId": "opensprinkler" - }, - { - "id": "opensprinkler:pi", - "label": "OpenSprinkler Pi", - "bindingId": "opensprinkler" - }, - { - "id": "orvibo:s20", - "label": "Orvibo S20 Smart Wifi Socket", - "bindingId": "orvibo" - }, - { - "id": "pentair:easytouch", - "label": "EasyTouch Controller", - "bindingId": "pentair" - }, - { - "id": "pentair:intellichlor", - "label": "Intellichlor IC40", - "bindingId": "pentair" - }, - { - "id": "pentair:intelliflo", - "label": "Intelliflo Pump", - "bindingId": "pentair" - }, - { - "id": "pentair:ip_bridge", - "label": "IP Bridge", - "bindingId": "pentair" - }, - { - "id": "pentair:pentair_serial_bridge", - "label": "Serial Bridge", - "bindingId": "pentair" - }, - { - "id": "phc:bridge", - "label": "PHC Bridge", - "bindingId": "phc" - }, - { - "id": "phc:AM", - "label": "PHC AM", - "bindingId": "phc" - }, - { - "id": "phc:EM", - "label": "PHC EM", - "bindingId": "phc" - }, - { - "id": "phc:JRM", - "label": "PHC JRM", - "bindingId": "phc" - }, - { - "id": "pioneeravr:ipAvr", - "label": "Pioneer Classic AVR over IP", - "bindingId": "pioneeravr" - }, - { - "id": "pioneeravr:ipAvr2014", - "label": "Pioneer AVR over IP 2014", - "bindingId": "pioneeravr" - }, - { - "id": "pioneeravr:ipAvr2015", - "label": "Pioneer AVR over IP 2015", - "bindingId": "pioneeravr" - }, - { - "id": "pioneeravr:ipAvr2016", - "label": "Pioneer AVR over IP 2016", - "bindingId": "pioneeravr" - }, - { - "id": "pioneeravr:ipAvrUnsupported", - "label": "Pioneer AVR over IP (unsupported)", - "bindingId": "pioneeravr" - }, - { - "id": "pioneeravr:serialAvr", - "label": "Pioneer AVR over Serial", - "bindingId": "pioneeravr" - }, - { - "id": "plugwise:circle", - "label": "Plugwise Circle", - "bindingId": "plugwise" - }, - { - "id": "plugwise:circleplus", - "label": "Plugwise Circle+", - "bindingId": "plugwise" - }, - { - "id": "plugwise:scan", - "label": "Plugwise Scan", - "bindingId": "plugwise" - }, - { - "id": "plugwise:sense", - "label": "Plugwise Sense", - "bindingId": "plugwise" - }, - { - "id": "plugwise:stealth", - "label": "Plugwise Stealth", - "bindingId": "plugwise" - }, - { - "id": "plugwise:stick", - "label": "Plugwise Stick", - "bindingId": "plugwise" - }, - { - "id": "plugwise:switch", - "label": "Plugwise Switch", - "bindingId": "plugwise" - }, - { - "id": "pulseaudio:bridge", - "label": "Pulseaudio server", - "bindingId": "pulseaudio" - }, - { - "id": "pulseaudio:combinedSink", - "label": "A Pulseaudio Combined Sink", - "bindingId": "pulseaudio" - }, - { - "id": "pulseaudio:sinkInput", - "label": "A Pulseaudio sink-input", - "bindingId": "pulseaudio" - }, - { - "id": "pulseaudio:sink", - "label": "A Pulseaudio sink", - "bindingId": "pulseaudio" - }, - { - "id": "pulseaudio:sourceOutput", - "label": "A Pulseaudio source output", - "bindingId": "pulseaudio" - }, - { - "id": "pulseaudio:source", - "label": "A Pulseaudio source", - "bindingId": "pulseaudio" - }, - { - "id": "regoheatpump:ipRego6xx", - "label": "Heat Pump", - "bindingId": "regoheatpump" - }, - { - "id": "regoheatpump:serialRego6xx", - "label": "Heat Pump", - "bindingId": "regoheatpump" - }, - { - "id": "regoheatpump:ipHusdata", - "label": "Husdata interface", - "bindingId": "regoheatpump" - }, - { - "id": "regoheatpump:serialHusdata", - "label": "Husdata interface", - "bindingId": "regoheatpump" - }, - { - "id": "rfxcom:bbqtemperature", - "label": "RFXCOM BBQ Temperature Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:blinds1", - "label": "RFXCOM Blinds1 Actuator", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:bridge", - "label": "RFXCOM USB Transceiver", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:chime", - "label": "RFXCOM Chime", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:current", - "label": "RFXCOM Current Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:currentenergy", - "label": "RFXCOM CurrentEnergy Actuator", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:curtain1", - "label": "RFXCOM Curtain1 Actuator", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:datetime", - "label": "RFXCOM Date/time sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:energy", - "label": "RFXCOM Energy Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:homeconfort", - "label": "RFXCOM Home Confort Remote", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:humidity", - "label": "RFXCOM Humidity Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:lighting1", - "label": "RFXCOM Lighting1 Actuator", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:lighting2", - "label": "RFXCOM Lighting2 Actuator", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:lighting4", - "label": "RFXCOM Lighting4 Actuator", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:lighting5", - "label": "RFXCOM Lighting5 Actuator", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:lighting6", - "label": "RFXCOM Lighting6 Actuator", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:rain", - "label": "RFXCOM Rain Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:RFXrec433", - "label": "RFXrec433 USB 433.92MHz Receiver", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:RFXtrx315", - "label": "RFXtrx315 USB 315MHz Transceiver", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:RFXtrx433", - "label": "RFXtrx433E USB 433.92MHz Transceiver", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:rfy", - "label": "RFXCOM Rfy Actuator", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:security1", - "label": "RFXCOM Security1 Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:security2", - "label": "RFXCOM Security2 Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:tcpbridge", - "label": "RFXCOM USB Transceiver over TCP/IP", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:temperature", - "label": "RFXCOM Temperature Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:temperaturehumidity", - "label": "RFXCOM Temperature-Humidity Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:temperaturehumiditybarometric", - "label": "RFXCOM Temperature-Humidity-Barometric Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:temperaturerain", - "label": "RFXCOM Temperature-Rain Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:thermostat1", - "label": "RFXCOM Thermostat1 Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:thermostat3", - "label": "RFXCOM Thermostat3 Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:undecoded", - "label": "RFXCOM Undecoded RF Messages", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:uv", - "label": "RFXCOM UV/Temperature Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rfxcom:wind", - "label": "RFXCOM Wind Sensor", - "bindingId": "rfxcom" - }, - { - "id": "rme:manager", - "label": "RME Rain Manager", - "bindingId": "rme" - }, - { - "id": "robonect:mower", - "label": "Mower", - "bindingId": "robonect" - }, - { - "id": "rotelra1x:amp", - "label": "Rotel Amplifier", - "bindingId": "rotelra1x" - }, - { - "id": "russound:rio", - "label": "Russound RIO Device", - "bindingId": "russound" - }, - { - "id": "russound:controller", - "label": "Russound Controller", - "bindingId": "russound" - }, - { - "id": "russound:zone", - "label": "Russound Zone", - "bindingId": "russound" - }, - { - "id": "russound:source", - "label": "Russound Source", - "bindingId": "russound" - }, - { - "id": "samsungtv:tv", - "label": "Samsung TV", - "bindingId": "samsungtv" - }, - { - "id": "satel:ethm-1", - "label": "ETHM-1", - "bindingId": "satel" - }, - { - "id": "satel:int-rs", - "label": "INT-RS", - "bindingId": "satel" - }, - { - "id": "satel:output", - "label": "Output", - "bindingId": "satel" - }, - { - "id": "satel:partition", - "label": "Partition", - "bindingId": "satel" - }, - { - "id": "satel:shutter", - "label": "Roller shutter", - "bindingId": "satel" - }, - { - "id": "satel:system", - "label": "Alarm system", - "bindingId": "satel" - }, - { - "id": "satel:zone", - "label": "Zone", - "bindingId": "satel" - }, - { - "id": "seneye:monitor", - "label": "Seneye Monitor", - "bindingId": "seneye" - }, - { - "id": "sensebox:box", - "label": "Sensebox", - "bindingId": "sensebox" - }, - { - "id": "silvercrestwifisocket:wifiSocket", - "label": "Silvercrest Wifi Socket", - "bindingId": "silvercrestwifisocket" - }, - { - "id": "sleepiq:cloud", - "label": "SleepIQ Cloud", - "bindingId": "sleepiq" - }, - { - "id": "sleepiq:dualBed", - "label": "Dual Chamber Bed", - "bindingId": "sleepiq" - }, - { - "id": "smaenergymeter:energymeter", - "label": "SMA Energy Meter", - "bindingId": "smaenergymeter" - }, - { - "id": "solarlog:meter", - "label": "Solar-Log Meter", - "bindingId": "solarlog" - }, - { - "id": "squeezebox:squeezeboxserver", - "label": "SqueezeBox Server", - "bindingId": "squeezebox" - }, - { - "id": "squeezebox:squeezeboxplayer", - "label": "SqueezeBox Player", - "bindingId": "squeezebox" - }, - { - "id": "synopanalyzer:synopanalyzer", - "label": "Synop Message", - "bindingId": "synopanalyzer" - }, - { - "id": "systeminfo:computer", - "label": "Systeminfo", - "bindingId": "systeminfo" - }, - { - "id": "tado:home", - "label": "Tado Home", - "bindingId": "tado" - }, - { - "id": "tado:zone", - "label": "Zone", - "bindingId": "tado" - }, - { - "id": "tado:mobiledevice", - "label": "Mobile Device", - "bindingId": "tado" - }, - { - "id": "tankerkoenig:station", - "label": "Gas-Station", - "bindingId": "tankerkoenig" - }, - { - "id": "tankerkoenig:webservice", - "label": "Tankerkönig Webservice", - "bindingId": "tankerkoenig" - }, - { - "id": "tellstick:telldus-core", - "label": "Telldus Core gateway", - "bindingId": "tellstick" - }, - { - "id": "tellstick:telldus-live", - "label": "Telldus Live gateway", - "bindingId": "tellstick" - }, - { - "id": "tellstick:dimmer", - "label": "Dimmable Device", - "bindingId": "tellstick" - }, - { - "id": "tellstick:switch", - "label": "On/Off device", - "bindingId": "tellstick" - }, - { - "id": "tellstick:sensor", - "label": "Sensor", - "bindingId": "tellstick" - }, - { - "id": "tellstick:rainsensor", - "label": "RainSensor", - "bindingId": "tellstick" - }, - { - "id": "tellstick:windsensor", - "label": "RainSensor", - "bindingId": "tellstick" - }, - { - "id": "tesla:models", - "label": "Tesla Model S", - "bindingId": "tesla" - }, - { - "id": "toon:toonapi", - "label": "Toon Webaccount", - "bindingId": "toon" - }, - { - "id": "toon:main", - "label": "Toon display unit", - "bindingId": "toon" - }, - { - "id": "toon:plug", - "label": "Toon plug", - "bindingId": "toon" - }, - { - "id": "tplinksmarthome:hs100", - "label": "HS100", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:hs105", - "label": "HS105", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:hs110", - "label": "HS110", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:hs200", - "label": "HS200", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:kb100", - "label": "KB100", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:kb130", - "label": "KB130", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:kp100", - "label": "KP100", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:lb100", - "label": "LB100", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:lb110", - "label": "LB110", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:lb120", - "label": "LB120", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:lb130", - "label": "LB130", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:lb200", - "label": "LB200", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:lb230", - "label": "LB230", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:re270", - "label": "RE270K", - "bindingId": "tplinksmarthome" - }, - { - "id": "tplinksmarthome:re370", - "label": "RE370K", - "bindingId": "tplinksmarthome" - }, - { - "id": "urtsi:urtsidevice", - "label": "@text/urtsiDeviceLabel", - "bindingId": "urtsi" - }, - { - "id": "urtsi:rtsdevice", - "label": "@text/rtsDeviceLabel", - "bindingId": "urtsi" - }, - { - "id": "velbus:bridge", - "label": "Velbus Bridge", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb1bls", - "label": "VMB1BLS", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb1dm", - "label": "VMB1DM", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb1led", - "label": "VMB1LED", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb1ry", - "label": "VMB1RY", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb1ryno", - "label": "VMB1RYNO", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb1rynos", - "label": "VMB1RYNOS", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb2ble", - "label": "VMB2BLE", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb2pbn", - "label": "VMB2PBN", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb4dc", - "label": "VMB4DC", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb4ry", - "label": "VMB4RY", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb4ryld", - "label": "VMB4RYLD", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb4ryno", - "label": "VMB4RYNO", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb6in", - "label": "VMB6IN", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb6pbn", - "label": "VMB6PBN", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb7in", - "label": "VMB7IN", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb8ir", - "label": "VMB8IR", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb8pb", - "label": "VMB8PB", - "bindingId": "velbus" - }, - { - "id": "velbus:vmb8pbu", - "label": "VMB8PBU", - "bindingId": "velbus" - }, - { - "id": "velbus:vmbdme", - "label": "VMBDME", - "bindingId": "velbus" - }, - { - "id": "velbus:vmbdmi", - "label": "VMBDMI", - "bindingId": "velbus" - }, - { - "id": "velbus:vmbdmir", - "label": "VMBDMI-R", - "bindingId": "velbus" - }, - { - "id": "velbus:vmbgp1", - "label": "VMBGP1", - "bindingId": "velbus" - }, - { - "id": "velbus:vmbgp2", - "label": "VMBGP2", - "bindingId": "velbus" - }, - { - "id": "velbus:vmbgp4", - "label": "VMBGP4", - "bindingId": "velbus" - }, - { - "id": "velbus:vmbgp4pir", - "label": "VMBGP4PIR", - "bindingId": "velbus" - }, - { - "id": "velbus:vmbgpo", - "label": "VMBGPO", - "bindingId": "velbus" - }, - { - "id": "velbus:vmbgpod", - "label": "VMBGPOD", - "bindingId": "velbus" - }, - { - "id": "velbus:vmbpirc", - "label": "VMBPIRC", - "bindingId": "velbus" - }, - { - "id": "velbus:vmbpirm", - "label": "VMBPIRM", - "bindingId": "velbus" - }, - { - "id": "velbus:vmbpiro", - "label": "VMBPIRO", - "bindingId": "velbus" - }, - { - "id": "vitotronic:bridge", - "label": "Bridge Vitotronic Optolink adapter", - "bindingId": "vitotronic" - }, - { - "id": "vitotronic:heating", - "label": "Vitotronic", - "bindingId": "vitotronic" - }, - { - "id": "vitotronic:pelletburner", - "label": "Pellet Burner", - "bindingId": "vitotronic" - }, - { - "id": "vitotronic:oilburner", - "label": "Oil Burner", - "bindingId": "vitotronic" - }, - { - "id": "vitotronic:storagetank", - "label": "Storage Tank", - "bindingId": "vitotronic" - }, - { - "id": "vitotronic:circuit", - "label": "Circuit", - "bindingId": "vitotronic" - }, - { - "id": "vitotronic:solar", - "label": "Solar Heating ", - "bindingId": "vitotronic" - }, - { - "id": "vitotronic:temperaturesensor", - "label": "Temperature Sensor", - "bindingId": "vitotronic" - }, - { - "id": "vitotronic:pump", - "label": "Pump", - "bindingId": "vitotronic" - }, - { - "id": "vitotronic:valve", - "label": "Valve", - "bindingId": "vitotronic" - }, - { - "id": "wifiled:wifiled", - "label": "WiFi LED", - "bindingId": "wifiled" - }, - { - "id": "windcentrale:mill", - "label": "Windcentrale windmill", - "bindingId": "windcentrale" - }, - { - "id": "yamahareceiver:yamahaAV", - "label": "Yamaha Receiver", - "bindingId": "yamahareceiver" - }, - { - "id": "yamahareceiver:zone", - "label": "Yamaha Receiver Zone", - "bindingId": "yamahareceiver" - }, - { - "id": "zoneminder:monitor", - "label": "ZoneMinder Monitor", - "bindingId": "zoneminder" - }, - { - "id": "zoneminder:server", - "label": "ZoneMinder Server", - "bindingId": "zoneminder" - }, - { - "id": "zway:zwayServer", - "label": "Z-Way Server", - "bindingId": "zway" - }, - { - "id": "zway:zwayDevice", - "label": "Z-Wave Device", - "bindingId": "zway" - }, - { - "id": "zway:zwayVirtualDevice", - "label": "Z-Way Virtual Device", - "bindingId": "zway" - }, - { - "id": "zigbee:coordinator_cc2531", - "label": "CC2531EMK Coordinator", - "bindingId": "zigbee" - }, - { - "id": "zigbee:coordinator_ember", - "label": "Ember EM35x Coordinator", - "bindingId": "zigbee" - }, - { - "id": "zigbee:coordinator_telegesis", - "label": "Telegesis Coordinator", - "bindingId": "zigbee" - }, - { - "id": "zigbee:coordinator_xbee", - "label": "XBee Coordinator", - "bindingId": "zigbee" - }, - { - "id": "zwave:act_45602_00_000", - "label": "45602 Lamp Module with Dimmer Control", - "bindingId": "zwave" - }, - { - "id": "zwave:act_zdm230_00_000", - "label": "ZDM230 HomePro Wall Dimmer ZDM230", - "bindingId": "zwave" - }, - { - "id": "zwave:act_zdp200_00_000", - "label": "ZDP200 HomePro ZDP200 Wall Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:act_zdw103_00_000", - "label": "ZDW103 Wall Mounted 3-Way Dimmer Receiver", - "bindingId": "zwave" - }, - { - "id": "zwave:act_zdw120_00_000", - "label": "ZDW120 Two Wire Wall Dimer", - "bindingId": "zwave" - }, - { - "id": "zwave:act_zir010_00_000", - "label": "ZIR010 PIR Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:act_zrm230_00_000", - "label": "ZRM230 Wall Switch/Transmitter (2-gang)", - "bindingId": "zwave" - }, - { - "id": "zwave:act_zrp200_00_000", - "label": "ZRP200 HomePro Applicance Module ZRP200", - "bindingId": "zwave" - }, - { - "id": "zwave:act_zrw230_00_000", - "label": "ZRW230 Wall Mounted 3-Way Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:act_ztm230_00_000", - "label": "ZTM230 Dual paddle wall mounted transmitter", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsa03202_00_000", - "label": "DSA03202 Minimote 4 button remote control", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsa38_00_000", - "label": "DSA38 Panic Button Key Fob", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsb05_00_000", - "label": "DSB05 4 in One MultiSensor", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsb09_00_000", - "label": "DSB09 Home Energy Meter", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsb28_00_000", - "label": "DSB28 Home Energy Meter G2", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsb29_00_000", - "label": "DSB29 Door/Window sensor Gen2", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsb45_00_000", - "label": "DSB45 Water Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsb54_00_000", - "label": "DSB54 Recessed Door/Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc06_00_000", - "label": "DSC06 Smart Energy Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc08_00_000", - "label": "DSC08 Smart Energy Illuminator", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc10_00_000", - "label": "DSC10 Heavy Duty Smart Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc11_00_000", - "label": "DSC11 Smart Strip", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc12_00_000", - "label": "DSC12 Micro Smart Energy Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc13_00_000", - "label": "DSC13 Micro Smart Energy Illuminator", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc14_00_000", - "label": "DSC14 Micro Motor Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc17_00_000", - "label": "DSC17 Micro Double Smart Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc18_00_000", - "label": "DSC18 Micro Smart Energy Switch G2", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc19_00_000", - "label": "DSC19 Micro Smart Energy Illuminator G2", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc24_00_000", - "label": "DSC24 Smart Energy Switch G2", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc25_00_000", - "label": "DSC25 Smart Energy Illuminator G2", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc26_00_000", - "label": "DSC26 Micro Switch G2", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc27_00_000", - "label": "DSC27 Micro Illuminator G2", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsc35_00_000", - "label": "DSC35 Micro Double Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsd31_00_000", - "label": "DSD31 Outlet Plugable Siren", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_dsd37_00_000", - "label": "DSD37 Range Extender", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw056_00_000", - "label": "ZW056 Doorbell", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw062_00_000", - "label": "ZW062 Aeon Labs Garage Door Controller Gen5", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw074_00_000", - "label": "ZW074 4 in One MultiSensor (G5)", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw075_00_000", - "label": "ZW075 Smart Energy Switch 3rd Edition", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw078_00_000", - "label": "ZW078 Heavy Duty Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw080_00_000", - "label": "ZW080 Siren Gen5", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw088_01_000", - "label": "ZW088 4 button keyfob - Gen 5", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw089_00_000", - "label": "ZW089 Recessed Door Sensor Gen5", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw090_00_000", - "label": "ZW090 Z‐Stick Gen5 USB Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw095_00_000", - "label": "ZW095 Home Energy Meter - Gen 5", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw096_00_000", - "label": "ZW096 Smart Switch 6", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw097_00_000", - "label": "ZW097 Dry Contact Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw098_00_000", - "label": "ZW098 LED Bulb", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw099_00_000", - "label": "ZW099 Smart Dimmer 6", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw100_00_000", - "label": "ZW100 MultiSensor 6", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw100_01_010", - "label": "ZW100 Multisensor 6", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw100_01_007", - "label": "ZW100 MultiSensor 6", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw100_01_008", - "label": "ZW100 MultiSensor 6", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw111_00_000", - "label": "ZW111 Nano Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw112_00_000", - "label": "ZW112 Door/Window Sensor 6", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw116_00_000", - "label": "ZW116 Aeotec Nano Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw117_00_000", - "label": "ZW117 Range Extender 6", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw120_00_000", - "label": "ZW120 Door/Window sensor Gen5", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw121_00_000", - "label": "ZW121 Aeotec LED Strip", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw122_00_000", - "label": "ZW122 Water Sensor 6", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw129_00_000", - "label": "ZW129 Dual Wallmote", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw130_00_000", - "label": "ZW130 WallMote Quad", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw132_00_000", - "label": "ZW132 Dual Nano Switch with Energy Metering", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw139_00_000", - "label": "ZW139 Nano Switch Gen5 (without meter)", - "bindingId": "zwave" - }, - { - "id": "zwave:aeon_zw140_00_000", - "label": "ZW140 Dual Nano Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:amc_zdsud10_00_000", - "label": "ZDS-UD10 Dimming Switch Module", - "bindingId": "zwave" - }, - { - "id": "zwave:august_asl03_00_000", - "label": "ASL-03 August Smart Lock Pro 3rd Gen", - "bindingId": "zwave" - }, - { - "id": "zwave:benetek_bsl01_00_000", - "label": "BSL01", - "bindingId": "zwave" - }, - { - "id": "zwave:benext_alarmsound_00_000", - "label": "Alarm Sound Alarm sound", - "bindingId": "zwave" - }, - { - "id": "zwave:benext_builtindimmer_00_000", - "label": "builtInDimmer Built-in Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:benext_doorsensor_00_000", - "label": "doorSensor Door Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:benext_energyswitch_00_000", - "label": "Energy Switch + Energy Switch +", - "bindingId": "zwave" - }, - { - "id": "zwave:benext_heatingcontrol_00_000", - "label": "Heating Control Thermostat for controlling the opentherm protocol", - "bindingId": "zwave" - }, - { - "id": "zwave:benext_molite_00_000", - "label": "Molite Movement sensor with temperature and light sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:benext_p1dongle_00_000", - "label": "P1-dongle P1-dongle", - "bindingId": "zwave" - }, - { - "id": "zwave:benext_plugindimmer_00_000", - "label": "plugInDimmer Plug-in Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:benext_powerswitch_00_000", - "label": "powerSwitch Power Switch EU", - "bindingId": "zwave" - }, - { - "id": "zwave:benext_tagreader_00_000", - "label": "Tag Reader Tag Reader", - "bindingId": "zwave" - }, - { - "id": "zwave:bonig_pope005206_00_000", - "label": "POPE005206 Z Weather", - "bindingId": "zwave" - }, - { - "id": "zwave:brk_zcombo_00_000", - "label": "ZCOMBO Smoke and Carbon Monoxide Alarm", - "bindingId": "zwave" - }, - { - "id": "zwave:brk_zsmoke_00_000", - "label": "ZSMOKE Smoke Alarm", - "bindingId": "zwave" - }, - { - "id": "zwave:cbcc_swzcs1_00_000", - "label": "SW-ZCS-1 Cord Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:chromagic_hsm02_00_000", - "label": "HSM02 Door Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:chromagic_sm103_00_000", - "label": "SM103 Door/Window Contact", - "bindingId": "zwave" - }, - { - "id": "zwave:cloud_a803n_00_000", - "label": "A803N Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:connecthome_ch201_00_000", - "label": "CH-201 CH-201 Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:cooper_rf9500_00_000", - "label": "RF9500 Battery Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:cooper_rf9501_00_000", - "label": "RF9501 15A Light Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:cooper_rf9517_00_000", - "label": "RF9517 Accessory Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:cooper_rf9534_00_000", - "label": "RF9534 Smart Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:cooper_rf9536n_00_000", - "label": "RF9536-N 1000W Dimmer Light Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:cooper_rf9540n_00_000", - "label": "RF9540-N All Load Dimmer Light Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:cooper_rf9542_00_000", - "label": "RF9542 Dimmer Accessory Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:cooper_rftr9505_00_000", - "label": "RFTR9505 Duplex receptical", - "bindingId": "zwave" - }, - { - "id": "zwave:cooper_rfwc5_00_000", - "label": "RFWC5 5-Scene Keypad", - "bindingId": "zwave" - }, - { - "id": "zwave:coqon_psmz0001_00_000", - "label": "PSMZ0001 Plug module", - "bindingId": "zwave" - }, - { - "id": "zwave:danfoss_010101_00_000", - "label": "010101 Popp Wireless Thermostatic Valve TRV", - "bindingId": "zwave" - }, - { - "id": "zwave:danfoss_014g0160_00_000", - "label": "014G0160 Z-Wave room sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:danfoss_dthermz5_00_000", - "label": "DTHERMZ5 Z-Wave room sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:danfoss_dthermz6_00_000", - "label": "DTHERMZ6 Living Connect Z Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:danfoss_hrvccm_00_000", - "label": "HRVCCM Air CCM", - "bindingId": "zwave" - }, - { - "id": "zwave:danfoss_lc13_00_000", - "label": "LC-13 Living Connect Z Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:danfoss_lcz251_00_000", - "label": "LCZ251 Living Connect Z Thermostat 2.51", - "bindingId": "zwave" - }, - { - "id": "zwave:danfoss_mt02650_00_000", - "label": "MT02650 Devolo Thermostat (09356)", - "bindingId": "zwave" - }, - { - "id": "zwave:defaro_dad101_00_000", - "label": "DAD-101 Dimmer DAD-101 Dimmer with sensors support", - "bindingId": "zwave" - }, - { - "id": "zwave:defaro_das102_00_000", - "label": "DAS-102 Double relay Switch 2x1.7kW", - "bindingId": "zwave" - }, - { - "id": "zwave:defaro_dsi101_00_000", - "label": "DSI-101 binary switch DSI-101 binary switch", - "bindingId": "zwave" - }, - { - "id": "zwave:devolo_09813_00_000", - "label": "09813 Home Control Smoke Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:devolo_mt02646_00_000", - "label": "MT02646 Home Control Metering Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:devolo_mt02647_00_000", - "label": "MT02647 Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:devolo_mt02648_00_000", - "label": "MT02648 Door/Window Contact", - "bindingId": "zwave" - }, - { - "id": "zwave:devolo_mt2652_00_000", - "label": "MT2652 Scene Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:devolo_mt2653_00_000", - "label": "MT2653 Keyfob", - "bindingId": "zwave" - }, - { - "id": "zwave:devolo_mt2755_00_000", - "label": "MT02755 Humidity Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:devolo_mt2756_00_000", - "label": "MT2756 MT2756 Flood Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:devolo_mt2792_00_000", - "label": "MT02792 Home Control Metering Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:devolo_pan11_00_000", - "label": "PAN11 Smart Energy Plug-in Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:devolo_phpse02_00_000", - "label": "ph-pse02 Multisound indoor siren (Zipato/Devolo)", - "bindingId": "zwave" - }, - { - "id": "zwave:devolo_pst021b_00_000", - "label": "PST02-1B Multisensor", - "bindingId": "zwave" - }, - { - "id": "zwave:diehl_sesfszw_00_000", - "label": "SES FS-ZW Plug Actuator", - "bindingId": "zwave" - }, - { - "id": "zwave:dlink_dchz110_00_000", - "label": "DCH-Z110 Door & Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:dlink_dchz120_00_000", - "label": "DCH-Z120 Battery Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:dlink_dchz310_00_000", - "label": "DCH-Z310 Smoke Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:dlink_dchz510_00_000", - "label": "DCH-Z510 Siren", - "bindingId": "zwave" - }, - { - "id": "zwave:domitech_ze27_00_000", - "label": "DTA19 Smart LED Light", - "bindingId": "zwave" - }, - { - "id": "zwave:dragontech_pa100_00_000", - "label": "PA-100 Plug-in On/Off Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:dragontech_wd100_00_000", - "label": "WD-100 Wall Dimmer Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:dragontech_ws100_00_000", - "label": "WS-100 Wall On/Off Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ebv_heatappfloor_00_000", - "label": "heatapp! floor heatapp! floor is a controller for thermal actuators in underfloor heating installations and is part of the heatapp! system, providing individual circ", - "bindingId": "zwave" - }, - { - "id": "zwave:econet_ebv105_00_000", - "label": "EBV-105 Wireless Water Shutoff Valve", - "bindingId": "zwave" - }, - { - "id": "zwave:econet_ev100_00_000", - "label": "EV100 Z-Vent ZWave Controlled HVAC Air Register", - "bindingId": "zwave" - }, - { - "id": "zwave:econet_gr105n_00_000", - "label": "GR-105N Z-Wave Motor for water/gas ball valves", - "bindingId": "zwave" - }, - { - "id": "zwave:eco_dwzwave2_00_000", - "label": "DWZWAVE2 Z-Wave Door/Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:eco_ecolinkpirv25_00_000", - "label": "Ecolink PIR v2.5 Z-Wave PIR Motion Sensor v2.5", - "bindingId": "zwave" - }, - { - "id": "zwave:eco_flfzwave5r1_00_000", - "label": "FLF-ZWAVE5 R1 Z-Wave Wireless Flood/Freeze Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:eco_pir1_00_000", - "label": "PIR Z-Wave PIR Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:eco_tiltzwave25eco_00_000", - "label": "TILT-ZWAVE2.5-ECO Z-wave Plus Gold Plated Reliability Garage Door Tilt Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:eco_tiltzwave2_00_000", - "label": "TILTZWAVE2 Z-Wave Garage Door Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:elexa_dmms1_00_000", - "label": "DMMS1 Dome Z-Wave Plus Motion Detector with Light Sensor and Flexible Magnetic Mount (DMMS1)", - "bindingId": "zwave" - }, - { - "id": "zwave:elexa_dmmz1_00_000", - "label": "DMMZ1 Dome Battery powered Z-Wave Plus enabled mousetrap", - "bindingId": "zwave" - }, - { - "id": "zwave:elexa_dmof1_00_000", - "label": "DMOF1 Dome On/Off zwave wall plug for controlling small appliances and lights.", - "bindingId": "zwave" - }, - { - "id": "zwave:elexa_dms01_00_000", - "label": "DMS01 Dome Wireless Siren", - "bindingId": "zwave" - }, - { - "id": "zwave:elexa_dmwd1_00_000", - "label": "DMWD1 Dome door & window sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:elexa_dmws1_00_000", - "label": "DMWS1 Dome Leak Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:elexa_dmwv1_00_000", - "label": "DMWV1 Dome Water Main Shut Off", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zw15r_00_000", - "label": "ZW15R Duplex receptacle", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zw15sm_00_000", - "label": "ZW15SM Binary Switch + Meter", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zw15s_00_000", - "label": "ZW15S Binary Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zw20rm_00_000", - "label": "ZW20RM In-wall Smart Meter Duplex Receptacle", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zw20r_00_000", - "label": "ZW20R 20A Tamper Resistant Duplex Receptacle", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zw500dm_00_000", - "label": "ZW500DM In-wall Smart Meter Dimmer Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zw500d_00_000", - "label": "ZW500D Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zwn323m_00_000", - "label": "Plug-In Smart Meter Dimmer Switch ZWN323M", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zwn333_00_000", - "label": "ZWN-333 Plug-in Appliance Module", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zwnbds_00_000", - "label": "ZWN-BDS Magnetic Door/Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zwnbpc_00_000", - "label": "ZWN-BPC PIR Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zwnbpc_05_010", - "label": "ZWN-BPC-PLUS PIR Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zwnrsm1plus_00_000", - "label": "ZWN-RSM1-PLUS Smart Relay Switch Module", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zwnrsm2_00_000", - "label": "ZWN-RSM2 Smart Dual Relay Switch Module", - "bindingId": "zwave" - }, - { - "id": "zwave:enerwave_zwnsc7_00_000", - "label": "ZWN-SC7 Scene Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:erone_hmdw001_00_000", - "label": "HM-DW001 Door/Window Contact", - "bindingId": "zwave" - }, - { - "id": "zwave:eurotronic_cometz_00_000", - "label": "CometZ Thermostatic Valve", - "bindingId": "zwave" - }, - { - "id": "zwave:eurotronic_spirit_00_000", - "label": "Spirit Thermostatic Valve", - "bindingId": "zwave" - }, - { - "id": "zwave:eurotronic_stellaz_00_000", - "label": "StellaZ Thermostatic Valve", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_ad130_00_000", - "label": "AD130 Dimmer Plugin", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_ad142_00_000", - "label": "AD142 Indoor Dimmer Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_ad146_00_000", - "label": "AD146 In-Wall Dimmer Module", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_ad147_00_000", - "label": "AD147 Z-Wave Dimmer Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_an157_00_000", - "label": "AN157 Switch Plugin", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_an158_00_000", - "label": "AN158 Switch Meter Plugin", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_an163_00_000", - "label": "AN163 Metering Power Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_an179_00_000", - "label": "AN179 In-Wall Switch Module", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_an180_00_000", - "label": "AN180 Switch without metering", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_an181_00_000", - "label": "AN181 Mini Plug Switch with Metering (Gen5)", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_hac01_00_000", - "label": "HAC01 In-Wall Remote Insert", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_hsm02_00_000", - "label": "HSM02 Door/Window Contact", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_hsp02_00_000", - "label": "HSP02 Motion Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_se812_00_000", - "label": "SE812 Siren", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_sf812_00_000", - "label": "SF812 Smoke Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_sm103_00_000", - "label": "SM103 Door/Window Contact", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_sp103_00_000", - "label": "SP103 Motion Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_sp814_00_000", - "label": "SP814 Motion Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_st812_00_000", - "label": "ST812 Flood Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_st814_00_000", - "label": "ST814 Temperature and Humidity Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_st815_00_000", - "label": "ST815 Illumination Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:everspring_tse03_00_000", - "label": "TSE03 Door Bell", - "bindingId": "zwave" - }, - { - "id": "zwave:everyoo_erc307_00_000", - "label": "ERC307 Z-Wave Plus Wireless Receiving Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:evolve_ldm15w_00_000", - "label": "LDM-15W Lamp Module", - "bindingId": "zwave" - }, - { - "id": "zwave:evolve_lfm20_00_000", - "label": "LFM-20", - "bindingId": "zwave" - }, - { - "id": "zwave:evolve_lom15_00_000", - "label": "LOM15 Duplex Receptacle", - "bindingId": "zwave" - }, - { - "id": "zwave:evolve_lpm15_00_000", - "label": "LPM-15 Appliance module", - "bindingId": "zwave" - }, - { - "id": "zwave:evolve_lrmas_00_000", - "label": "LRM-AS Wall Mounted Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:evolve_lsm15_00_000", - "label": "LSM-15 Wall Mounted Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:evolve_ltm5_00_000", - "label": "LTM-5 Wall Mount Accessory Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:evolve_t100_00_000", - "label": "T100 Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:fakro_amz_00_000", - "label": "AMZ Awning Blinds Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:fakro_arf_00_000", - "label": "ARF Roller blind module", - "bindingId": "zwave" - }, - { - "id": "zwave:fakro_arz_00_000", - "label": "ARZ Roller Shutter Module", - "bindingId": "zwave" - }, - { - "id": "zwave:fakro_vmzsolarplus_00_000", - "label": "VMZ Solar z-wave plus Awning Blind z-wave plus version", - "bindingId": "zwave" - }, - { - "id": "zwave:fakro_vmzsolar_00_000", - "label": "VMZ Solar Awning Blind", - "bindingId": "zwave" - }, - { - "id": "zwave:fakro_zws12n_00_000", - "label": "ZWS12n Chain actuator - window opener", - "bindingId": "zwave" - }, - { - "id": "zwave:fakro_zws12_00_000", - "label": "ZWS12 Chain Actuator", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgbs001_00_000", - "label": "FGBS001 Universal Binary Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgcd001_00_000", - "label": "FGCD001 Carbon Monoxide Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgd211_00_000", - "label": "FGD211 Universal Dimmer 500W", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgd211_01_009", - "label": "FGD211 Universal Dimmer 500W", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgd211_02_001", - "label": "FGD211 Universal Dimmer 500W", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgd212_00_000", - "label": "FGD212 Dimmer 2", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgd212_03_005", - "label": "FGD212 Dimmer 2", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgdw002_00_000", - "label": "FGDW002 Fibaro Door Window Sensor 2", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgfs101_00_000", - "label": "FGFS101 Flood Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgfs101_23_023", - "label": "FGFS101 Flood Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgfs101_03_002", - "label": "FGFS101 Flood Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fggc001_00_000", - "label": "FGGC001 Fibaro Swipe Scene Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgk101_00_000", - "label": "FGK101 Door Opening Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgk101_02_005", - "label": "FGK101 Door/Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgk101_03_002", - "label": "FGK101 Door Opening Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgkf601_00_000", - "label": "FGKF601 Keyfob", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgms001_00_000", - "label": "FGMS001 Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgms001_03_002", - "label": "FGMS001 Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgpb101_00_000", - "label": "FGPB101 A real push button (switch) available in several colors.", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgr221_00_000", - "label": "FGR221 Roller Shutter Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgr222_24_024", - "label": "FGR222 Roller Shutter 2", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgrgbw_00_000", - "label": "FGRGBW RGBW Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgrm222_00_000", - "label": "FGRM222 Roller Shutter", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgs211_00_000", - "label": "FGS211 Relay Switch 1x3kW", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgs212_00_000", - "label": "FGS212 Relay Switch 1x2.5kW", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgs213_00_000", - "label": "FGS213 Single Switch 2", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgs221_01_004", - "label": "FGS221 Double Relay Switch 2x1.5kW", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgs221_01_009", - "label": "FGS221 Double Relay Switch 2x1.5kW", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgs221_02_001", - "label": "FGS221 Double Relay Switch 2x1.5kW", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgs222_00_000", - "label": "FGS222 Double Relay Switch 2x1.5kW", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgs223_00_000", - "label": "FGS223 Double Switch 2", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgsd002_00_000", - "label": "FGSD002 Smoke Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgss001_00_000", - "label": "FGSS001 Smoke Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgt001_00_000", - "label": "FGT-001 Thermostatic Valve", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgwp101_00_000", - "label": "FGWP101 Metered Wall Plug Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgwp102_02_001", - "label": "FGWP102 Metered Wall Plug Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgwp102_03_002", - "label": "FGWP102 Metered Wall Plug Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:fibaro_fgwpb121_00_000", - "label": "FGWPB-121 Fibaro Wall Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:fireangle_zst630_00_000", - "label": "ZST-630 Thermoptek Smoke Alarm/Smoke Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:forest_forestshuttlesl_00_000", - "label": "Forest Shuttle S/L, Forest Group NL Drapery hardware", - "bindingId": "zwave" - }, - { - "id": "zwave:fortrezz_mimo2_00_000", - "label": "MIMO2+ Dual Digital or Analog Voltage input and Dual Contact Relay", - "bindingId": "zwave" - }, - { - "id": "zwave:fortrezz_mimolite_00_000", - "label": "MIMOlite Digital or Analog Voltage input and/or Dry Contact Relay", - "bindingId": "zwave" - }, - { - "id": "zwave:fortrezz_ssa1_00_000", - "label": "SSA1/SSA2 Siren and Strobe Alarm", - "bindingId": "zwave" - }, - { - "id": "zwave:fortrezz_wv01_00_000", - "label": "WV-01 Wireless Z-Wave Water Valve", - "bindingId": "zwave" - }, - { - "id": "zwave:fortrezz_wwa02_00_000", - "label": "WWA-01 / WWA-02 Wireless Water and Temperature Alarm", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_12718_00_000", - "label": "12718 Smart Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_12727_00_000", - "label": "12727 GE 12727 Z-Wave Wireless Lighting Control Smart Toggle Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_12729_00_000", - "label": "12729 In-Wall Smart Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_14280_00_000", - "label": "GE/Jasco 14280 GE/Jasco Z-Wave Plus Plug-In Dimmer Module", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_14288_00_000", - "label": "14288 In-Wall Outlet", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_14318_00_000", - "label": "Jasco 14318 Jasco 3-way Light Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_26933_00_000", - "label": "26933/ZW3008 In-Wall Smart Motion Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_28177_00_000", - "label": "28177 GE Z-Wave Plus Wireless Smart Lighting Control Appliance Module", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_35931_00_000", - "label": "35931 Enbrighten 60W Dimmable Light Bulb", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_45603_00_000", - "label": "45603 Fluorescent Light & Appliance Module", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_45604_00_000", - "label": "45604 Outdoor Lighting Control Module", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_45605_00_000", - "label": "45605 Duplex receptacle", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_45606_00_000", - "label": "45606 2-Way Dimmer Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_45607_00_000", - "label": "45607 2-Way Dimmer Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_45609_00_000", - "label": "45609 On/Off Relay Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_ge12725_00_000", - "label": "GE 12725 In-Wall Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_ge14291_00_000", - "label": "GE 14291 (ZW4005) In-Wall Paddle Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_ge14292_00_000", - "label": "GE 14292 In-Wall Toggle Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_ge14294_00_000", - "label": "GE 14294 (ZW3005) In-Wall Dimmer Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_ge14295_00_000", - "label": "GE 14295 In-Wall Dimmer Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_ge14321_00_000", - "label": "GE/Jasco 14321 In-Wall Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_ge28167zw3104_00_000", - "label": "GE 28167 (ZW3104) Plug-In Smart Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_ge28169_00_000", - "label": "GE 28169 Plug in Smart Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_gepluginsmartswitch_00_000", - "label": "GE Plug in Smart Switch GE Plug in Smart Switch Zwave Plus", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_gezw4004_00_000", - "label": "GE ZW4004 GE Z-Wave Wireless Smart Lighting and Appliance Control - 40 Amp", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_outdoorswitch_00_000", - "label": "GE Outdoor Switch Weather Resistant Outdoor Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_smartdoorsensor_00_000", - "label": "32563 Smart Door Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_zw1001_00_000", - "label": "ZW1001 Smart Outlet", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_zw3003_00_000", - "label": "ZW3003, GE 12724 In-Wall Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_zw3101_00_000", - "label": "ZW3101 Lamp Module", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_zw3102_00_000", - "label": "ZW3102 Jasco Energy Monitoring Lamp Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_zw3106_05_023", - "label": "GE 28175 (ZW3106) Plug-In Dual Smart Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_zw4002_00_000", - "label": "ZW4002 In-Wall Smart Fan Control", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_zw4005_00_000", - "label": "ZW4005, 12722 On/Off Relay Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_zw4006_00_000", - "label": "26931/ZW4006 In-Wall Smart Motion Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_zw4101_00_000", - "label": "ZW4101 Fluorescent Light & Appliance Module", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_zw4102_00_000", - "label": "ZW4102 Energy Monitoring Appliance Module", - "bindingId": "zwave" - }, - { - "id": "zwave:ge_zw6302_00_000", - "label": "ZW6302 Portable Smart Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:goodway_78008_00_000", - "label": "78008 Door/Window Sensor with Magnet", - "bindingId": "zwave" - }, - { - "id": "zwave:goodway_td1311_00_000", - "label": "TD1311 In wall Power Monitor Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:graber_csz1_00_000", - "label": "CSZ1 Cellular Shade Radio Z-Wave", - "bindingId": "zwave" - }, - { - "id": "zwave:graber_rsz1_00_000", - "label": "RSZ1 Somfy Motorized Shade", - "bindingId": "zwave" - }, - { - "id": "zwave:greenwave_gwpn1_03_000", - "label": "GWPN1 Single-socket PowerNode", - "bindingId": "zwave" - }, - { - "id": "zwave:greenwave_gwpn5_00_000", - "label": "GWPN5 Multi-socket PowerNode (5-plug)", - "bindingId": "zwave" - }, - { - "id": "zwave:greenwave_gwpn6_00_000", - "label": "GWPN6 Multi-socket PowerNode (6-plug)", - "bindingId": "zwave" - }, - { - "id": "zwave:hank_dws01_00_000", - "label": "DWS01 Door and Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:hank_hkzwfld01_00_000", - "label": "HKZW_FLD01 Flood Sensor FLD01", - "bindingId": "zwave" - }, - { - "id": "zwave:hank_hkzwms01_00_000", - "label": "HKZW_MS01 Multisensor", - "bindingId": "zwave" - }, - { - "id": "zwave:hank_hkzwms02_00_000", - "label": "HKZW_MS02 Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:hank_hkzws001_00_000", - "label": "HKZW-SO01 Smart Plug with two USB ports", - "bindingId": "zwave" - }, - { - "id": "zwave:hank_hkzwso03_00_000", - "label": "HKZW_SO03 Smart Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:hank_rgbbulb_00_000", - "label": "RGB bulb HKZW-RGB01-V1.0", - "bindingId": "zwave" - }, - { - "id": "zwave:hank_scn01_00_000", - "label": "SCN01 One-key Scene Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:hank_scn04_00_000", - "label": "SCN04 Four-key Scene Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:hank_smpz710u_00_000", - "label": "SM_PZ710U Power Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:hank_so05_00_000", - "label": "HKZW-SO05 Smart Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:hank_swes01_00_000", - "label": "SW es01 Siterwell eyesonsor", - "bindingId": "zwave" - }, - { - "id": "zwave:heiman_dx1cgz_00_000", - "label": "DX1CG-Z CH4 Gas Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:heiman_hs1caz_00_000", - "label": "HS1CA-Z CO Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:heiman_hs1dsz_00_000", - "label": "HS1DS-Z Smart Door Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:heiman_hs1htz_00_000", - "label": "HS1HT-Z Temperature/Humidity Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:heiman_hs1msz_00_000", - "label": "HS1MS-Z Smart Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:heiman_hs1sa_00_000", - "label": "HS1SA-Z Smart Smoke Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:heiman_hs2skz_00_000", - "label": "HS2SK-Z Smart Metering Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:heiman_hs2wdz_00_000", - "label": "HS2WD-Z Smart Siren", - "bindingId": "zwave" - }, - { - "id": "zwave:heiman_m4172_00_000", - "label": "M417-2 Smart Water Leakage Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:hogar_htp4s1fb_02_002", - "label": "HTP-4S1-FB Four Touch Panel and Power Socket", - "bindingId": "zwave" - }, - { - "id": "zwave:hogar_htp850xx_00_000", - "label": "HTP-8S0-XX 8 way touch light switch", - "bindingId": "zwave" - }, - { - "id": "zwave:homeseer_ezmotionexpress_00_000", - "label": "EZMotion Express Wireless 3-in-1 Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:homeseer_ezmultipli_00_000", - "label": "EZMultiPli Multi Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:homeseer_hsds100_00_000", - "label": "HS-DS100+ Homeseer Z-Wave Door/Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:homeseer_hsls100_00_000", - "label": "HS-LS100+ HomeSeer Z-Wave Plus Leak Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:homeseer_hsms100_00_000", - "label": "HS-MS100+ HomeSeer Z-Wave Plus Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:homeseer_hspa100_00_000", - "label": "HS-PA100+ Appliance Module", - "bindingId": "zwave" - }, - { - "id": "zwave:homeseer_hswd100_00_000", - "label": "HS-WD100+ Scene Capable Wall Dimmer Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:homeseer_hswd200_00_000", - "label": "HS-WD200+ Scene Capable Wall Dimmer Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:homeseer_hsws100_00_000", - "label": "HS-WS100+ Scene Capable Wall Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:homeseer_hsws200_00_000", - "label": "HS-WS200+ Scene Capable Wall Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:honeywell_th6320zw_00_000", - "label": "TH6320ZW T6 Pro Z-Wave Programmable Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:honeywell_th8320zw_00_000", - "label": "TH8320ZW VisionPRO Z-Wave Touchscreen Programmable Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:horstmann_asrzw_00_000", - "label": "ASR-ZW Thermostat Receiver", - "bindingId": "zwave" - }, - { - "id": "zwave:horstmann_c17zw_00_000", - "label": "C17-ZW Timeswitch", - "bindingId": "zwave" - }, - { - "id": "zwave:horstmann_hrt4zw_00_000", - "label": "HRT4-ZW Battery Powered Wall Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:horstmann_scsc17_00_000", - "label": "SCSC-17 7 Day Room Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:horstmann_ses302_00_000", - "label": "SES 302 Temperature sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:horstmann_ses303_00_000", - "label": "SES 303 Temperature and humidity sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:horstmann_sir321_00_000", - "label": "SIR-321 RF Countdown Timer", - "bindingId": "zwave" - }, - { - "id": "zwave:horstmann_srt323_00_000", - "label": "SRT323 Secure Z-Wave Room Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:horstmann_ssr302_00_000", - "label": "SSR-302 Two Channel Boiler Actuator", - "bindingId": "zwave" - }, - { - "id": "zwave:horstmann_swm301_00_000", - "label": "SWM301 Z-Wave Module for Water Meter", - "bindingId": "zwave" - }, - { - "id": "zwave:idlock_idl101_00_000", - "label": "IDL-101 Z-Wave Lock", - "bindingId": "zwave" - }, - { - "id": "zwave:ingersollecolink_dwzwave1_00_000", - "label": "DWZWAVE1 Z-Wave Door/Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:ingersollecolink_rs200_00_000", - "label": "RS200 Schlage PIR Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:innovus_00110001_01_000", - "label": "SmartDimmer RAone SmartDimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:innovus_smartpower_00_000", - "label": "SmartPower RAone SmartPower", - "bindingId": "zwave" - }, - { - "id": "zwave:innovus_smoothremote_00_000", - "label": "SmoothRemote SmoothRemote", - "bindingId": "zwave" - }, - { - "id": "zwave:inovelli_dimmer_00_000", - "label": "NZW31 In-wall Dimming Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:inovelli_inzw36_00_000", - "label": "NZW36 Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:inovelli_nzw30_00_000", - "label": "NZW30 In-Wall Switch (On/Off)", - "bindingId": "zwave" - }, - { - "id": "zwave:inovelli_nzw36_00_000", - "label": "NZW36 On/Off Smart Plug + Signal Repeater (Z-Wave Plus)", - "bindingId": "zwave" - }, - { - "id": "zwave:inovelli_nzw37_00_000", - "label": "NZW37 2-Channel Dual Smart Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:inovelli_nzw39_00_000", - "label": "NZW39 Dimmable Smart Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:inovelli_nzw96_00_000", - "label": "NZW96 Outdoor Z-Wave Plug-In Module (1-Channel)", - "bindingId": "zwave" - }, - { - "id": "zwave:inovelli_zw37_00_000", - "label": "ZW37 Show Home, 2 channel smart plug, ZWave Plus", - "bindingId": "zwave" - }, - { - "id": "zwave:intermatic_ca3500_00_000", - "label": "CA3500 15 Amp Split-Duplex Receptacle", - "bindingId": "zwave" - }, - { - "id": "zwave:intermatic_ca3750_00_000", - "label": "CA3750 Contactor/Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:intermatic_ca600_00_000", - "label": "CA600 Dimmer Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:intermatic_ca8900_00_000", - "label": "CA8900 Z-Wave Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:intermatic_ha01c_00_000", - "label": "HA-01C In-Wall Dual Receptacle", - "bindingId": "zwave" - }, - { - "id": "zwave:intermatic_ha02_00_000", - "label": "HA02 Appliance Module", - "bindingId": "zwave" - }, - { - "id": "zwave:intermatic_ha03_00_000", - "label": "HA03 Lamp Module", - "bindingId": "zwave" - }, - { - "id": "zwave:intermatic_ha04_00_000", - "label": "HA04 Outdoor Module", - "bindingId": "zwave" - }, - { - "id": "zwave:intermatic_ha05_00_000", - "label": "HA05 Screw in lamp module", - "bindingId": "zwave" - }, - { - "id": "zwave:intermatic_ha14wd_00_000", - "label": "HA14WD Dimmer Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:intermatic_ha20_00_000", - "label": "HA-20 Dimmer Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:intermatic_intermaticca3000_00_000", - "label": "CA3000 Wall Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:isurpass_dl9101v_00_000", - "label": "DL9101V Door Lock with Handle", - "bindingId": "zwave" - }, - { - "id": "zwave:isurpass_dx1wl_00_000", - "label": "DX1WL-Z Domux Water Leakage Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:isurpass_smokedetector_00_000", - "label": "Smoke Detector Carbon monoxide detector, smoke detector", - "bindingId": "zwave" - }, - { - "id": "zwave:jintaobao_curtainmotor_00_000", - "label": "Curtain Motor Curtain motor", - "bindingId": "zwave" - }, - { - "id": "zwave:kaipule_doorwindowsensor_00_000", - "label": "TP-802ZD Door/Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:kaipule_es61_00_000", - "label": "ES-61 Smoke Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:kaipule_im20_00_000", - "label": "IM-20 Door Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:kaipule_ix32_06_000", - "label": "DP-32 / IX-30 / IX-32 PIR Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:kichler_12387_00_000", - "label": "12387 Design Pro LED Z Wave Dimmer Module", - "bindingId": "zwave" - }, - { - "id": "zwave:kichler_15dc200_00_000", - "label": "15DC200 200W Design Pro LED Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:kwikset_914trl_00_000", - "label": "914TRL Touchpad Electronic Deadbolt", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_dz15s_00_000", - "label": "DZ15S Scene Capable Push On/Off", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_dz1kd_00_000", - "label": "DZ1KD 1000W Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_dz6hd_00_000", - "label": "DZ6HD 600W Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_dzmx1_00_000", - "label": "DZMX1 Scene Capable Push On/Off", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_dzpa1_00_000", - "label": "DZPA1 Plug-in Appliance Module", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_dzpd32_00_000", - "label": "DZPD3-2 Plug-In Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_dzpd3_00_000", - "label": "DZPD3 Lamp Module", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_dzr15_00_000", - "label": "DZR15 Scene Capable Receptacle", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_dzs15_00_000", - "label": "DZS15 Scene Capable Push On/Off", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_rzp03_00_000", - "label": "RZP03 Scene Capable Plug-In Lamp Dimming Module", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_vrcs2mrx1_00_000", - "label": "VRCS2-MRX Vizia RF + 2-Button Scene Controller with Switches", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_vre06_00_000", - "label": "VRE06 Electronic Low Voltage Scene Capable Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_vrf01_00_000", - "label": "VRF01 Scene Capable Quiet Fan Speed Control", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_vri06_00_000", - "label": "VRI06 Incandescent Scene Capable Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_vrmx11lz_00_000", - "label": "VRMX1 Scene Capable Push On/Off Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_vrp03_00_000", - "label": "VRP03 300W Scene Capable Plug-In Lamp Dimming Module", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_vrpa1_00_000", - "label": "VRPA1 Vizia RF + Scene Capable Plug-in Module", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_vrpd3_00_000", - "label": "VRPD3 Scene Capable Plug-in Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_vrr151lz_00_000", - "label": "VRR15-1LZ Receptacle", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_vrs05_00_000", - "label": "VRS05 Scene Capable Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:leviton_vrs15_00_000", - "label": "VRS15 Scene Capable Push On/Off", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_fs20z_00_000", - "label": "FS20Z Isolated Contact Fixture Module", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_gb00z_00_000", - "label": "GB00Z Glass Break Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_gctbz48_00_000", - "label": "GoControl GC-TBZ48 Z-Wave Plus Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_lb60z1_00_000", - "label": "LB60Z-1 Dimmable LED Light Bulb", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_ngd00z4_00_000", - "label": "NGD00Z-4 Garage Door Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_pd300z2_00_000", - "label": "PD300Z-2 Plug-in Wall Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_ps15emz51_00_000", - "label": "PS15EMZ51 Appliance Module", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_ps15z_00_000", - "label": "PS15Z Plug-In Appliance Module", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_tbz48_00_000", - "label": "TBZ48 Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_wa00z1_00_000", - "label": "WA00Z-1 Wall Mounted Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_wa105dbz_00_000", - "label": "Siren & Strobe Alarm Siren", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_wadwaz1_00_000", - "label": "WADWAZ-1 Door/Windows Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_wapirz_00_000", - "label": "WAPIRZ-1 PIR Motion Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_wd500z_00_000", - "label": "WD500Z-1 Wall Dimmer Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_wo15z_00_000", - "label": "WO15Z Single Wall Outlet", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_ws15z_00_000", - "label": "WS15Z-1 Wall Mounted Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:linear_wt00z1_00_000", - "label": "WT00Z-1 3-Way Wall Accessory Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:locstar_ls8015zw_00_000", - "label": "LS-8015-ZW KAS-600 Z-Wave Electronic Lock", - "bindingId": "zwave" - }, - { - "id": "zwave:logic_lhc5020_00_000", - "label": "LHC5020 DIN-rail module with 10 digital ouputs and 4 digital inputs", - "bindingId": "zwave" - }, - { - "id": "zwave:logic_lhc5031_00_062", - "label": "LHC5031 DIN Mount Multiple Actuator Controller for Floor Heating", - "bindingId": "zwave" - }, - { - "id": "zwave:logic_zhc5010_00_000", - "label": "ZHC5010 FUGA Wall 4-way Switch with LED + Relay", - "bindingId": "zwave" - }, - { - "id": "zwave:logic_zhc5010_02_000", - "label": "ZHC5010 FUGA Wall 4-way Switch with LED + Relay", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mh10pm25wa_00_000", - "label": "MH10-PM2.5-WA PM2.5 Monitor", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mh10pm25_00_000", - "label": "MH10 PM2.5 WA PM2.5 Monitor", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mh6hp_00_000", - "label": "MH6-HP Programmable Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mh7h_00_000", - "label": "MH7H Water / Electrical Heating Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mh7_00_000", - "label": "MH7 Water/Electrical Heating Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mh8fc_00_000", - "label": "MH8-FC Fan Coil Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mh9co2wd_00_000", - "label": "MH9-CO2-WD CO2 Monitor Air quality detector", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mhp220_00_000", - "label": "MH-P220 Micro Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mhs212_00_000", - "label": "MH-S212 Mini Combo Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mhs311_00_000", - "label": "MH-S311H Touch Panel Switch (Single) High inrush current", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mhs312_00_000", - "label": "MH-S312 Two Way Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mhs314_00_000", - "label": "MH-S314 Four Way Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mhs411_00_000", - "label": "MH-S411 Touch Panel Switch (Single)", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mhs412_00_000", - "label": "MH-S412 Touch Panel Switch (Dual)", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mhs511il_00_000", - "label": "MH-S511-IL MCOHome touch switch Relay", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mhs512il_00_000", - "label": "MH-S512-IL MCOHome Touch Dual Switch Relay", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_mhs521_00_000", - "label": "MH-S521 Shutter Panel", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_tps411_00_000", - "label": "TPS411 Touch Panel Switch 1 Button", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome_tps412_00_000", - "label": "TPS412 Touch Panel Switch 2 Channel", - "bindingId": "zwave" - }, - { - "id": "zwave:mcohome__00_000", - "label": "MH3700-HP Programmable Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:merten_506219_00_000", - "label": "506219 Battery Powered Wall Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:merten_507001_00_000", - "label": "507001 Switch Wall Insert 1 Gang", - "bindingId": "zwave" - }, - { - "id": "zwave:merten_507502_00_000", - "label": "507502 Flush-mounted switch", - "bindingId": "zwave" - }, - { - "id": "zwave:merten_507601_00_000", - "label": "507601 Dual Pole Wall Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:merten_507801_00_000", - "label": "507801 CONNECT radio flush-mounted receiver, Roller shutter", - "bindingId": "zwave" - }, - { - "id": "zwave:merten_507900_00_000", - "label": "507900 Wall Dimmer Module - Flush Mounted", - "bindingId": "zwave" - }, - { - "id": "zwave:merten_5082xx_00_000", - "label": "5082xx Battery Powered Wall Controller MOVE", - "bindingId": "zwave" - }, - { - "id": "zwave:merten_508519_00_000", - "label": "508519 Switch Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:merten_509519_00_000", - "label": "509519 Argus 220 Connect Movement Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:merten_50x5xx_00_000", - "label": "50x5xx Roller shutter push-button", - "bindingId": "zwave" - }, - { - "id": "zwave:monoprice_10795_00_000", - "label": "10795 Door Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:nexia_db100z_00_000", - "label": "DB100Z Doorbell", - "bindingId": "zwave" - }, - { - "id": "zwave:nodon_asp31_00_000", - "label": "ASP-3-1 Smart Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:nodon_crc3100_00_000", - "label": "CRC-3100 Octan Remote Control", - "bindingId": "zwave" - }, - { - "id": "zwave:nodon_cws3101_00_000", - "label": "CWS-3101 Wall Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:nodon_msp31x1_00_000", - "label": "MSP-3-1-X1 Z-Wave Plus Micro Smart Plug ON/OFF", - "bindingId": "zwave" - }, - { - "id": "zwave:nodon_softremote_00_000", - "label": "Soft Remote Remote Control", - "bindingId": "zwave" - }, - { - "id": "zwave:northq_nq9021_00_000", - "label": "NQ-9021 Electrical Meter", - "bindingId": "zwave" - }, - { - "id": "zwave:northq_nq9022_00_000", - "label": "NQ-9022 Electrical Meter", - "bindingId": "zwave" - }, - { - "id": "zwave:northq_nq9121_03_000", - "label": "NQ-9121 NorthQ Q-Gas 9121 (Firmware v3, 2016)", - "bindingId": "zwave" - }, - { - "id": "zwave:oomi_colorstrip_00_000", - "label": "OOMI ColorStrip LED RGBWW Strip", - "bindingId": "zwave" - }, - { - "id": "zwave:oomi_ft098c55_04_000", - "label": "Oomi Bulb 9W Light bulb supporting 16M colours", - "bindingId": "zwave" - }, - { - "id": "zwave:oomi_oomiplug_00_000", - "label": "Oomi Plug Oomi Plug is a low-cost Z-Wave Switch plug-in module specifically used to enable Z-Wave command and control (on/off) of any plug-in tool.", - "bindingId": "zwave" - }, - { - "id": "zwave:permundo_psc132zw_00_000", - "label": "PSC132ZW Metering Relay Switch, 16A", - "bindingId": "zwave" - }, - { - "id": "zwave:permundo_psc152zw_00_000", - "label": "PSC152ZW EINBAU JAL|ROLL Z-WAVE", - "bindingId": "zwave" - }, - { - "id": "zwave:permundo_psc234zw_00_000", - "label": "PSC234ZW Metering Plug switching 16A", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pab01_00_000", - "label": "ZIP-PAB01 Zipato Micromodule Energy Meter", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pad02_00_000", - "label": "PAD02 Dimmer Socket", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pan03_00_000", - "label": "PAN03 In Wall Micromodule Single Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pan04_00_000", - "label": "PAN04 In Wall Dual Relay(1 Way) Switch Module 2x 1.5kW with power meter", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pan05_00_000", - "label": "PAN05-1B Single relay in-wall switch module", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pan06_00_000", - "label": "PAN06 In Wall Dual Relay(1 Way) Switch Module 2x 1.5kW", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pan071a_00_000", - "label": "Philio PAN07-1A TWO SPDT Switch module with meter", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pan081a_00_000", - "label": "PAN08-1a Roller shutter controller", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pan08_00_000", - "label": "PAN08 Relay Insert for Blind Control", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pan11_00_000", - "label": "PAN11 Smart Energy Plug In Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pan16_01_002", - "label": "PAN16 Smart Energy Plug In Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pat02a_00_000", - "label": "PAT02-A Flood Multisensor (incl. humidty and temperature)", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pat02b_00_000", - "label": "PAT02-B Z-Wave room sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pat02c_00_000", - "label": "PAT02-C Flood Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pse02_00_000", - "label": "PSE02 Siren", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_psm02_00_000", - "label": "PSM02 Slim Multi-Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_psp05_00_000", - "label": "PSP05 Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_psr04_00_000", - "label": "PSR04 Smart Color Button", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pst02a_00_000", - "label": "PST02A Slim Multi-Sensor (PIR/Door/Temperature/Illumination)", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pst02b_00_000", - "label": "PST02B Slim Multi-Sensor (PIR/Temperature/Illumination)", - "bindingId": "zwave" - }, - { - "id": "zwave:philio_pst02c_00_000", - "label": "PST02C Slim Multi-Sensor (Door/Temperature/Illumination)", - "bindingId": "zwave" - }, - { - "id": "zwave:polycontrol_btze_00_000", - "label": "Danalock V3-BTZE Z-Wave controlled door lock with Bluetooth Smart", - "bindingId": "zwave" - }, - { - "id": "zwave:polycontrol_btzu125_00_000", - "label": "BTZW125 Danalock v2 circle", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_004001_00_000", - "label": "004001 Smoke Detector and Siren", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_004407_01_000", - "label": "004407 CO Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_005107_01_001", - "label": "005107 Solar Powered Outdoor Siren", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_005206_00_000", - "label": "005206 Z-Weather", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_009204_00_000", - "label": "009204 KFOB-C Remote-Control", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_009303_00_000", - "label": "009303 Wall Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_009402_00_000", - "label": "009402 10 Year Smoke Detector with Siren Function", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_009402_01_014", - "label": "009402 10 Year Smoke Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_009501_01_002", - "label": "009501 Popp 09501 Flow Stop", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_012501_00_000", - "label": "012501 Electric Strike Lock Control", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_05438_00_000", - "label": "05438 Indoor/Outdoor Wall Plug Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_123580_00_000", - "label": "123580 Wall Plug Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_123610_00_000", - "label": "123610 Wall Plug Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_123665_00_000", - "label": "123665 Wall Plug Meter Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_pope700052_00_000", - "label": "POPE700052 Water Leakage Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:popp_pope700168_00_000", - "label": "POPE700168 POPP Rain-Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:prodrive_ed20_00_000", - "label": "ED2.0 Eneco Meter Adapter", - "bindingId": "zwave" - }, - { - "id": "zwave:qees_p313a_00_000", - "label": "P313A Plug-in Socket Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:qees_qeeswall_00_000", - "label": "Qees Wall Wall mountable mini 4 button remote", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_smartplug_00_000", - "label": "Smart Plug 16A Smart Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhaa_00_000", - "label": "ZMNHAA Flush 1 relay", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhad_00_000", - "label": "ZMNHAD Flush 1 relay", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhba_00_000", - "label": "ZMNHBA Flush 2 relays", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhbd_00_000", - "label": "ZMNHBD Flush 2 relays", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhca_00_000", - "label": "ZMNHCA Flush Shutter", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhcd_00_000", - "label": "ZMNHCD Flush Shutter", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhcd_04_001", - "label": "ZMNHCD Flush Shutter", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhda_00_000", - "label": "ZMNHDA Flush dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhdd_00_000", - "label": "ZMNHDD Flush Dimmer Plus", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhia_00_000", - "label": "ZMNHIA Flush on/off thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhid_00_000", - "label": "ZMNHID Flush on/off thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhja_00_000", - "label": "ZMNHJA Flush Pilot", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhjd_00_000", - "label": "ZMNHJD Flush Pilot", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhkd_00_000", - "label": "ZMNHKD Flush Heat & Cool Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhla_00_000", - "label": "ZMNHLA Flush PWM thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhld_00_000", - "label": "ZMNHLD Flush PWM Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhnd_00_000", - "label": "ZMNHND Flush 1D relay", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhod_00_000", - "label": "ZMNHOD Flush Shutter DC", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhsd_00_000", - "label": "ZMNHSD DIN Rail Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhtd_00_000", - "label": "ZMNHTD Smart Meter", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhud_00_000", - "label": "ZMNHUD Flush pilot (DIN version)", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhvd_00_000", - "label": "ZMNHVD Flush Dimmer 0-10V", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhwd_00_000", - "label": "ZMNHWD Qubino Flush RGBW Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:qubino_zmnhzd_00_000", - "label": "ZMNHZD Multifunctional Weather Station", - "bindingId": "zwave" - }, - { - "id": "zwave:rcs_tbz48_00_000", - "label": "TBZ48 Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:rcs_tz43_00_000", - "label": "TZ43 Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:rcs_tz45_00_000", - "label": "TZ45 Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:reitz_05431_00_000", - "label": "Reitz 05431 Duewi ZW BJ ES 1000 / Reitz 05431 / ZWave.me 05457 Single button wall switch", - "bindingId": "zwave" - }, - { - "id": "zwave:reitz_05433_00_000", - "label": "05433 One Paddle Wall Dimmer Insert", - "bindingId": "zwave" - }, - { - "id": "zwave:reitz_05443_00_000", - "label": "Duwi ZW WS - 05443 Battery powered One paddle wall controller", - "bindingId": "zwave" - }, - { - "id": "zwave:reitz_064394_00_000", - "label": "064394 Schuko Plug Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:reitz_duw064374_00_000", - "label": "Duewi ZW-ZS-3500 Schuko Plug Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:reitz_duw064381_00_000", - "label": "Duwi Z-Wave Plugin Switch Indoor/Outdoor Wall Plug Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:reitz_duwrpt_00_000", - "label": "DUW_RPT Düwi Repeater", - "bindingId": "zwave" - }, - { - "id": "zwave:reitz_swiidplug_00_000", - "label": "swiidplug SwiidPlug", - "bindingId": "zwave" - }, - { - "id": "zwave:reitz_zme05431_00_000", - "label": "ZME_05431 Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:reitz_zwesj300_00_000", - "label": "ZW ESJ 300 Duwi ZW ESJ 300 Blind Control", - "bindingId": "zwave" - }, - { - "id": "zwave:remotec_adt8020_00_000", - "label": "ZRM-80 Wall plug switch", - "bindingId": "zwave" - }, - { - "id": "zwave:remotec_adt8021_00_000", - "label": "ZDM-80 Wall plug dimmer switch", - "bindingId": "zwave" - }, - { - "id": "zwave:remotec_zfm80_00_000", - "label": "ZFM-80 Fixture Switch Module", - "bindingId": "zwave" - }, - { - "id": "zwave:remotec_zrc100_00_000", - "label": "ZRC-100 Remote Control", - "bindingId": "zwave" - }, - { - "id": "zwave:remotec_zrc90_00_000", - "label": "ZRC-90 Scene master 8 button remote", - "bindingId": "zwave" - }, - { - "id": "zwave:remotec_zts110_00_000", - "label": "ZTS-110 ZTS-110 Z Wave Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:remotec_zxt120_00_000", - "label": "ZXT-120 AC IR Remote", - "bindingId": "zwave" - }, - { - "id": "zwave:rimport_zmeeraz2_00_000", - "label": "ZMEERAZ2 RaZberry2", - "bindingId": "zwave" - }, - { - "id": "zwave:rtc_ct100plus_00_000", - "label": "CT100 Plus Z-Wave Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:rtc_ct100_00_000", - "label": "CT100 Z-Wave Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:rtc_ct101_00_000", - "label": "CT101 Z-Wave Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:rtc_ct110_00_000", - "label": "CT110 Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:rtc_ct200_00_000", - "label": "CT200 Vivint Element Thermostat w/ other sensors", - "bindingId": "zwave" - }, - { - "id": "zwave:rtc_ct30_00_000", - "label": "CT30 Z-Wave Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:rtc_ct32_00_000", - "label": "CT32 Z-Wave Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:rtc_ct80_00_000", - "label": "CT80 Z-Wave Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:samsungsds_hmdm100_00_000", - "label": "hmdm100 Doorlock Control Module for Samsung Locks", - "bindingId": "zwave" - }, - { - "id": "zwave:schlage_be369_00_000", - "label": "BE369 Keypad Deadbolt", - "bindingId": "zwave" - }, - { - "id": "zwave:schlage_be468_00_000", - "label": "BE468 Touchscreen Deadbolt", - "bindingId": "zwave" - }, - { - "id": "zwave:schlage_be469_00_000", - "label": "BE469 Touchscreen Deadbolt", - "bindingId": "zwave" - }, - { - "id": "zwave:schlage_fe599nx_00_000", - "label": "FE599NX Connected Keypad with Lever", - "bindingId": "zwave" - }, - { - "id": "zwave:seco_clamp_00_000", - "label": "Zwave Clamp Clamp Energy Meter", - "bindingId": "zwave" - }, - { - "id": "zwave:sensative_1101011_00_000", - "label": "11-01-011 Strips-MaZw", - "bindingId": "zwave" - }, - { - "id": "zwave:sensative_1102011_00_000", - "label": "11 02 011 Strips Comfort/Drips Multisensor", - "bindingId": "zwave" - }, - { - "id": "zwave:shenzhen_doorsensorin_00_000", - "label": "Door Sensor IN Door Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:shenzhen_doorwindowsensor_00_000", - "label": "Door/Window Sensor Door/Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:shenzhen_eu1_00_000", - "label": "EU-1 Light Switch 1 Channel", - "bindingId": "zwave" - }, - { - "id": "zwave:shenzhen_eu2_00_000", - "label": "EU-2 Light Switch 2 Channel", - "bindingId": "zwave" - }, - { - "id": "zwave:shenzhen_floodsensor_00_000", - "label": "Flood sensor Flood/water sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:shenzhen_motionsensorin_00_000", - "label": "Motion Sensor IN Motion Sensor IN", - "bindingId": "zwave" - }, - { - "id": "zwave:shenzhen_motionsensor_00_000", - "label": "Motion Sensor PIR Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:shenzhen_nasds01z_00_000", - "label": "NAS-DS01Z Cyrus Door Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:shenzhen_powerplug_00_000", - "label": "NAS-WR01ZE Metered Wall Plug Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:shenzhen_sirenalarm_00_000", - "label": "Siren Alarm Siren Alarm", - "bindingId": "zwave" - }, - { - "id": "zwave:shenzhen_sosremotecontrol_00_000", - "label": "SOS/Remote Control Z-Wave Remote for Scene selection and SOS button", - "bindingId": "zwave" - }, - { - "id": "zwave:siegeniaaubi_sensoair_00_000", - "label": "Sensoair Air quality sensor for indoor use", - "bindingId": "zwave" - }, - { - "id": "zwave:sigma_m4179e_00_000", - "label": "M417_9E Smart Temperature & Humidity Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:sigma_smpz701u_00_000", - "label": "SM-PZ701U Z-Wave power plug", - "bindingId": "zwave" - }, - { - "id": "zwave:sigma_zwck8_00_000", - "label": "K8 Z-Wave Battery Wall Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:somfy_1870171_00_000", - "label": "1870171 ILT Z-Wave Interfaces", - "bindingId": "zwave" - }, - { - "id": "zwave:somfy_zrtsivnode_00_000", - "label": "ZRTSI-VNODE Z-Wave to RTS Interface Virtual Node", - "bindingId": "zwave" - }, - { - "id": "zwave:somfy_zrtsi_00_000", - "label": "ZRTSI Z-Wave to RTS Interface Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:steinel_is1402_00_000", - "label": "IS140-2 PIR sensor with relay", - "bindingId": "zwave" - }, - { - "id": "zwave:steinel_l810ledihf_00_000", - "label": "L 810 LED iHF Sensor-switched outdoor up and downlighting", - "bindingId": "zwave" - }, - { - "id": "zwave:steinel_rsledd2_00_000", - "label": "RS LED D2 Z-Wave Indoor LED-light with motion sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:steinel_xledhome2_00_000", - "label": "XLED Home 2 PIR sensor with relay and light", - "bindingId": "zwave" - }, - { - "id": "zwave:stelpro_stzw402_00_000", - "label": "STZW402 4000W Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:sunricher_zv9001k8dim_00_000", - "label": "ZV9001K8-DIM 4 group single color wall mounted remote", - "bindingId": "zwave" - }, - { - "id": "zwave:sunricher_zv9001t4dim_00_000", - "label": "ZV9001T4-DIM 4 group single colour touch panel secondary controller", - "bindingId": "zwave" - }, - { - "id": "zwave:sunricher_zv9102facct_00_000", - "label": "ZV9102FA-CCT Z-wave CCT LED controller", - "bindingId": "zwave" - }, - { - "id": "zwave:systemair_29990_00_000", - "label": "29990 Remotely Controlled Ventilation", - "bindingId": "zwave" - }, - { - "id": "zwave:telldus_tzdw100_00_000", - "label": "TZDW-100 Door/window sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:telldus_tzwp100_00_000", - "label": "TZWP-100 Wall Plug Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:thermofloor_tf016_00_000", - "label": "TF016 ZWave Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:thermofloor_tf016_01_008", - "label": "TF016 ZWave Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_gr308_00_000", - "label": "GR308 Lifting Controller (Blinds Controller)", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tsm02_00_000", - "label": "TSM02 Slim Multi-Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz04_00_000", - "label": "TZ04 In Wall Dual Relay Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz06_00_000", - "label": "TZ06 In Wall Dual Relay(1 Way) Switch Module 2x 1.5kW", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz08_00_000", - "label": "TZ08 Rollershutter Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz10_00_000", - "label": "TZ 10 Thermostat with LCD Screen", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz35s_00_000", - "label": "TZ35S Single Paddle Wall Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz36d_02_001", - "label": "TZ36D Dual Paddle Wall Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz37_00_000", - "label": "TZ37 Z-Wave TKB Double Relay Wall Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz55d_00_000", - "label": "TZ55D Dual Paddle Wall Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz65d_00_000", - "label": "TZ65D Dual Paddle Wall Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz66d_00_000", - "label": "TZ66D Dual Paddle Wall Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz67_00_000", - "label": "TZ67 Wall Plug Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz68_00_000", - "label": "TZ68 Wall Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz69_00_000", - "label": "TZ69 Smart meter switch", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz74_00_000", - "label": "TZ74 Insert two channel switch module", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz75_00_000", - "label": "TZ75 Rollershutter Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz77_00_000", - "label": "TZ77 RGB dimmer switch", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz78_00_000", - "label": "TZ78 In Wall Micro Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz79_00_000", - "label": "TZ79 Insert switch module", - "bindingId": "zwave" - }, - { - "id": "zwave:tkb_tz88_00_000", - "label": "TZ88 Energy Monitoring Wall Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:trane_azemt500bb32ma_00_000", - "label": "AZEMT500BB32MA American Standard Z-Wave Programmable Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:trane_le130_00_000", - "label": "Schlage LE130", - "bindingId": "zwave" - }, - { - "id": "zwave:trane_tzemt400bb32maa_00_000", - "label": "TZEMT400BB32MAA Trane Z-Wave Programmable Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:trane_xl624_00_000", - "label": "XL624 Touchscreen Comfort Control Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:trane_xr524_00_000", - "label": "Trane XR524 Touchscreen Comfort Control Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:uei_45601_00_000", - "label": "45601 Advanced Remote Wireless Lighting Control", - "bindingId": "zwave" - }, - { - "id": "zwave:ufairy_gr105_00_000", - "label": "GR-105 Water Shutoff Valve", - "bindingId": "zwave" - }, - { - "id": "zwave:ufairy_grb33_00_000", - "label": "GR-B3-3 3 Gang In-wall Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ufairy_grm202n2_00_000", - "label": "GR-M-202N-2 Inwall dual switch", - "bindingId": "zwave" - }, - { - "id": "zwave:ufairy_tp807zg_00_000", - "label": "TP-807ZG Smoke + Carbon Monoxide + Natural Liquefied Gas Leak Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:ufairy_zse02_00_000", - "label": "ZSE02 Zooz Z‑Wave Plus Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:vda_dimmer3_00_000", - "label": "Vitrum III EU Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:vda_euboiler_00_000", - "label": "Vitrum I EU Boiler Vitrum touch timer switch Dual Relay", - "bindingId": "zwave" - }, - { - "id": "zwave:vda_satelliteiv_00_000", - "label": "Vitrum Satellite IV Vitrum touch switch satellite 4 buttons", - "bindingId": "zwave" - }, - { - "id": "zwave:vda_satellitevi_00_000", - "label": "Vitrum Satellite VI Vitrum touch switch satellite 6 buttons", - "bindingId": "zwave" - }, - { - "id": "zwave:vemmio_ds100_00_000", - "label": "DS100 Double Switch in a dual relay in-wall module.", - "bindingId": "zwave" - }, - { - "id": "zwave:vemmio_mt100_00_000", - "label": "MT-100 Motion and Light Mini Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_pid11994_00_000", - "label": "PID11994 Monoprice ZWave Dimmer Plugin", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_pid11995_00_000", - "label": "PID11995 Monoprice ZWave On/Off Plugin", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_pid15903_00_000", - "label": "PID15903 Plug In Power Monitor", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zd2102plus_00_000", - "label": "ZD2102-5 Door Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zd2102_00_000", - "label": "ZD2102 Door Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zd2105_00_000", - "label": "ZD2105 Recessed Door Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zd2201_00_000", - "label": "ZD2201 Multisensor 4in1", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zg8101_00_000", - "label": "ZG8101 Garage Door Tilt Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zl7101_00_000", - "label": "ZL7101 Lamp Dimmer Module", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zl7431_00_000", - "label": "ZL7431 In Wall Relay Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zl7432_00_000", - "label": "ZL7432 In Wall Dual Relay Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zm1601_00_000", - "label": "ZM1601 Battery Operated Siren", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zm1602_00_000", - "label": "ZM1602 AC/DC Siren", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zm1602_15_000", - "label": "ZM1602 AC/DC Siren", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zm1701_00_000", - "label": "ZM1701 Monoprice keypad door lock", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zm1702_00_000", - "label": "ZM1702 Door Lock with Handle", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zp3102_00_000", - "label": "ZP3102 Motion Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zp3102_08_000", - "label": "ZP3102 Motion/Temperature Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zp3103_00_000", - "label": "ZP3103 Shock Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zs5101_00_000", - "label": "ZS5101 Shock Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zs6101_00_000", - "label": "ZS6101 Smoke Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zs6301_00_000", - "label": "ZS6301 CO Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zse40_00_000", - "label": "ZSE40 Zooz 4-in-one motion/temperature/humidity/luminance sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:vision_zw4101_00_000", - "label": "ZW4101 Drapery controller (up/stop/down)", - "bindingId": "zwave" - }, - { - "id": "zwave:widom_ubs_01_000", - "label": "WiDom Universal Relay Switch WiDom Universal Relay Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:widom_wds_00_000", - "label": "WDS Universal Double Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:widom_wps104_00_000", - "label": "WPS104 Energy Driven Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_nzw30t_00_000", - "label": "NZW30T Inovelli In-Wall Switch (On/Off) Scene Enabled", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_nzw30_00_000", - "label": "NZW30 In-Wall Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_nzw31_00_000", - "label": "NZW31 In-wall Dimming Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_nzw36_01_000", - "label": "NZW36 Show home, Inovelli 1 channel smart plug, ZWave Plus", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_nzw37_00_000", - "label": "NZW37 Inovelli Smart Plug (2 Channel with Scene Control)", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_nzw39_00_000", - "label": "NZW39 Dimming Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_nzw96_00_000", - "label": "NZW96 Outdoor Plug-in Module (1-Channel)", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_nzw97_00_000", - "label": "NZW97 Inovelli Outdoor Smart Plug (2 Channel)", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_zen20_00_000", - "label": "ZEN20 Smart Energy Power Strip", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_zen21_00_000", - "label": "ZEN21 Zooz Z-Wave On / Off Light Switch ZEN21", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_zen22_00_000", - "label": "ZEN22 Zooz Z-Wave Dimmable Light Switch ZEN22", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_zen23_00_000", - "label": "ZEN23 Wall mounted switch", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_zen24_00_000", - "label": "Zen24 Toggle Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_zw37_00_000", - "label": "ZW37 Inovelli 2 channel smart plug", - "bindingId": "zwave" - }, - { - "id": "zwave:willis_zw691_00_000", - "label": "ZW691 Show Home, In-Wall-Smart-Outlet BSI", - "bindingId": "zwave" - }, - { - "id": "zwave:wintop_1122r_01_004", - "label": "iModuleDouble Dual In-wall Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:wintop_dhsitswpdhs_00_000", - "label": "PlugInSwitch PlugIn Switch with power monitoring", - "bindingId": "zwave" - }, - { - "id": "zwave:wintop_dhszwdmiw01_00_000", - "label": "DHSZWDMIW01 DHS Z-Wave Micro Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:wintop_digitalhomesystems_00_000", - "label": "Digital Home Systems In Wall Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:wintop_easyplug_00_000", - "label": "EasyPlug Wall Plug", - "bindingId": "zwave" - }, - { - "id": "zwave:wintop_iplugdim_00_000", - "label": "iPlugDim Wall Plug with dimming function", - "bindingId": "zwave" - }, - { - "id": "zwave:wintop_ishutter_00_000", - "label": "iShutter iShutter", - "bindingId": "zwave" - }, - { - "id": "zwave:wintop_itemp_00_000", - "label": "ITEMP Contact and temperature sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:wintop_le120_00_000", - "label": "LE120 Appliance Module", - "bindingId": "zwave" - }, - { - "id": "zwave:wintop_multisensor_00_000", - "label": "Multisensor Multi-sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:wintop_wtrfid_00_000", - "label": "WTRFID Mini Keypad RFID/Z-Wave", - "bindingId": "zwave" - }, - { - "id": "zwave:yale_ycl1_00_000", - "label": "SD-L1000-CH Yale Conexis L1", - "bindingId": "zwave" - }, - { - "id": "zwave:yale_ykfcon_00_000", - "label": "YKFCON Smart Living Keyfree Smart Lock", - "bindingId": "zwave" - }, - { - "id": "zwave:yale_yrd110_00_000", - "label": "YRD110 Yale button deadbolt without keyway", - "bindingId": "zwave" - }, - { - "id": "zwave:yale_yrd120_00_000", - "label": "YRD120 Touchscreen deadbolt without key", - "bindingId": "zwave" - }, - { - "id": "zwave:yale_yrd210_00_000", - "label": "YRD210 Push Button Deadbolt", - "bindingId": "zwave" - }, - { - "id": "zwave:yale_yrd220_00_000", - "label": "YRD220 Yale Real Living Touchscreen Deadbolt", - "bindingId": "zwave" - }, - { - "id": "zwave:yale_yrd246_00_000", - "label": "YRD246 Touchscreen deadbolt without keyway", - "bindingId": "zwave" - }, - { - "id": "zwave:yale_yrd446_00_000", - "label": "YRD446 Yale Real Living Key Free Touchscreen Assure Lock with Z-Wave and Bluetooth", - "bindingId": "zwave" - }, - { - "id": "zwave:yale_yrl220_00_000", - "label": "YRL220 Yale Real Living Touchscreen Lever Lock", - "bindingId": "zwave" - }, - { - "id": "zwave:yale_zwavemodule_00_000", - "label": "Yale Smart Door Lock Z-Wave Module The Yale Smart Door Lock Z-Wave module allows you to control your Yale Connected Smart Door Lock from anywhere in the world when linked to a leading Z", - "bindingId": "zwave" - }, - { - "id": "zwave:zipato_bulb2rgbw_00_000", - "label": "RGBWE2 RGBW Bulb V2", - "bindingId": "zwave" - }, - { - "id": "zwave:zipato_hmhs1ca_00_000", - "label": "HM-HS1CA CO Sensor with acoustic alarm", - "bindingId": "zwave" - }, - { - "id": "zwave:zipato_hmhs1wlz_00_000", - "label": "HM-HS1WL-Z Smart Water Leakage Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:zipato_hs1sa_00_000", - "label": "HS1SA Smoke Detector", - "bindingId": "zwave" - }, - { - "id": "zwave:zipato_nenaspd01z_00_000", - "label": "NE-NAS-PD01Z PIR motion sensor and light measurement", - "bindingId": "zwave" - }, - { - "id": "zwave:zipato_rgbwe27zw_00_000", - "label": "RGBWE27ZW RGBW bulb", - "bindingId": "zwave" - }, - { - "id": "zwave:zipato_zd2102plus_00_000", - "label": "ZD2102-5 Door Window Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:zipato_zp3102_00_000", - "label": "ZP3102 Multi Sensor Dual: motion and temperature sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:zooz_zen06_00_000", - "label": "ZEN06 Smart Plug with 2 USB ports", - "bindingId": "zwave" - }, - { - "id": "zwave:zooz_zen07_00_000", - "label": "ZEN07 Mini Plug On / Off Module ZEN07", - "bindingId": "zwave" - }, - { - "id": "zwave:zooz_zen15_00_000", - "label": "ZEN15 Power Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:zooz_zen21_00_000", - "label": "ZEN21 Light Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:zooz_zen22_00_000", - "label": "ZEN22 Z-Wave Plus Dimmer Light Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:zooz_zen23_00_000", - "label": "ZEN23 Z-Wave Plus On/Off Toggle Switch V1", - "bindingId": "zwave" - }, - { - "id": "zwave:zooz_zen24_00_000", - "label": "ZEN24 Z-Wave Plus Toggle Dimmer Light Switch Ver 2.0", - "bindingId": "zwave" - }, - { - "id": "zwave:zooz_zse08_00_000", - "label": "ZSE08 Z-Wave Plus Contact Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:zooz_zse09_00_000", - "label": "ZSE09 Motion and Light Mini Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:zooz_zse30_00_000", - "label": "ZSE30 Water Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:zooz_zse33_00_000", - "label": "ZSE33 Smart Chime/Alarm", - "bindingId": "zwave" - }, - { - "id": "zwave:zooz_zse40_00_000", - "label": "ZSE40 4-in-1 Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_06436_00_000", - "label": "06436 Insert blind control", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_hs1ds_00_000", - "label": "HS1DS Window / Door Sensor", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_kfob_00_000", - "label": "KFOB 4 button keyfob", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_wallcs_00_000", - "label": "WALLC-S Wall Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_wcd2_00_000", - "label": "WCD2 Double Paddle Wall Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_zme05431_00_000", - "label": "ZME_05431 Flush mountable switch", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_zme05433_00_000", - "label": "ZME_05433 Zwave.Me Dimmer Set Everlux", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_zme05459_00_000", - "label": "ZME_05459 Blinds controller", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_zme05461_00_000", - "label": "ZME_05461 Double switch", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_zme06437_00_000", - "label": "ZME_06437 Wall Plug Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_zme06443_00_000", - "label": "ZME_06443 Single Paddle Wall Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_zmeft_00_000", - "label": "ZME_FT Floor Thermostat", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_zmekfobs_00_000", - "label": "ZME_KFOB-S Secure 4 Button Key Chain Controller", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_zmerc2_00_000", - "label": "ZME_RC2 Z-Wave Remote Control+", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveme_zweather_00_000", - "label": "Z-Weather Z-Wave weather interface", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveproducts_wd100_00_000", - "label": "WD-100 In-Wall Dimmer", - "bindingId": "zwave" - }, - { - "id": "zwave:zwaveproducts_ws100_00_000", - "label": "WS-100 Switch", - "bindingId": "zwave" - }, - { - "id": "zwave:zyxel_st812_00_000", - "label": "ST812 Flood sensor", - "bindingId": "zwave" - }, - { - "id": "astro:moon", - "label": "Astro moon data", - "bindingId": "astro" - }, - { - "id": "astro:sun", - "label": "Astro sun data", - "bindingId": "astro" - }, - { - "id": "bluetooth:beacon", - "label": "Bluetooth Device", - "bindingId": "bluetooth" - }, - { - "id": "bluetooth:connected", - "label": "Connected Bluetooth Device", - "bindingId": "bluetooth" - }, - { - "id": "bluetooth:bluez", - "label": "Bluetooth BlueZ Adapter", - "bindingId": "bluetooth" - }, - { - "id": "bluetooth:blukii_beacon", - "label": "Blukii SmartBeacon", - "bindingId": "bluetooth" - }, - { - "id": "bosesoundtouch:10", - "label": "Bose SoundTouch 10", - "bindingId": "bosesoundtouch" - }, - { - "id": "bosesoundtouch:20", - "label": "Bose SoundTouch 20", - "bindingId": "bosesoundtouch" - }, - { - "id": "bosesoundtouch:30", - "label": "Bose SoundTouch 30", - "bindingId": "bosesoundtouch" - }, - { - "id": "bosesoundtouch:300", - "label": "Bose SoundTouch 300", - "bindingId": "bosesoundtouch" - }, - { - "id": "bosesoundtouch:sa5Amplifier", - "label": "Bose SoundTouch SA-5 Amplifier", - "bindingId": "bosesoundtouch" - }, - { - "id": "bosesoundtouch:wirelessLinkAdapter", - "label": "Bose SoundTouch Wireless Link Adapter", - "bindingId": "bosesoundtouch" - }, - { - "id": "bosesoundtouch:device", - "label": "Bose SoundTouch Device", - "bindingId": "bosesoundtouch" - }, - { - "id": "bosesoundtouch:waveSoundTouchMusicSystemIV", - "label": "Bose Wave SoundTouch Music System IV", - "bindingId": "bosesoundtouch" - }, - { - "id": "digitalstrom:appScene", - "label": "@text/app_scene_label", - "bindingId": "digitalstrom" - }, - { - "id": "digitalstrom:dssBridge", - "label": "@text/dSS_label", - "bindingId": "digitalstrom" - }, - { - "id": "digitalstrom:groupScene", - "label": "@text/group_scene_label", - "bindingId": "digitalstrom" - }, - { - "id": "digitalstrom:namedScene", - "label": "@text/named_scene_label", - "bindingId": "digitalstrom" - }, - { - "id": "digitalstrom:zoneScene", - "label": "@text/zone_scene_label", - "bindingId": "digitalstrom" - }, - { - "id": "digitalstrom:zoneTemperatureControl", - "label": "@text/zoneTemperatureControl_label", - "bindingId": "digitalstrom" - }, - { - "id": "dmx:artnet-bridge", - "label": "ArtNet Bridge", - "bindingId": "dmx" - }, - { - "id": "dmx:chaser", - "label": "DMX Chaser", - "bindingId": "dmx" - }, - { - "id": "dmx:color", - "label": "DMX Color (RGB) Dimmer", - "bindingId": "dmx" - }, - { - "id": "dmx:dimmer", - "label": "DMX Dimmer", - "bindingId": "dmx" - }, - { - "id": "dmx:lib485-bridge", - "label": "Lib485 Bridge", - "bindingId": "dmx" - }, - { - "id": "dmx:sacn-bridge", - "label": "sACN/E1.31 Bridge", - "bindingId": "dmx" - }, - { - "id": "dmx:tunablewhite", - "label": "DMX Tunable White Dimmer", - "bindingId": "dmx" - }, - { - "id": "fsinternetradio:radio", - "label": "Internet Radio", - "bindingId": "fsinternetradio" - }, - { - "id": "hue:bridge", - "label": "Hue Bridge", - "bindingId": "hue" - }, - { - "id": "hue:0200", - "label": "Color Light", - "bindingId": "hue" - }, - { - "id": "hue:0220", - "label": "Color Temperature Light", - "bindingId": "hue" - }, - { - "id": "hue:0100", - "label": "Dimmable Light", - "bindingId": "hue" - }, - { - "id": "hue:0110", - "label": "Dimmable Plug-in Unit", - "bindingId": "hue" - }, - { - "id": "hue:0210", - "label": "Extended Color Light", - "bindingId": "hue" - }, - { - "id": "hue:0000", - "label": "On/Off Light", - "bindingId": "hue" - }, - { - "id": "hue:0010", - "label": "On/Off Plug-in Unit", - "bindingId": "hue" - }, - { - "id": "lifx:colorirlight", - "label": "LIFX Color IR Light", - "bindingId": "lifx" - }, - { - "id": "lifx:colorlight", - "label": "LIFX Color Light", - "bindingId": "lifx" - }, - { - "id": "lifx:colormzlight", - "label": "LIFX Color MultiZone Light", - "bindingId": "lifx" - }, - { - "id": "lifx:whitelight", - "label": "LIFX White Light", - "bindingId": "lifx" - }, - { - "id": "lirc:bridge", - "label": "LIRC Server", - "bindingId": "lirc" - }, - { - "id": "lirc:remote", - "label": "Remote Control", - "bindingId": "lirc" - }, - { - "id": "mqtt:broker", - "label": "MQTT Broker", - "bindingId": "mqtt" - }, - { - "id": "mqtt:systemBroker", - "label": "System MQTT Broker", - "bindingId": "mqtt" - }, - { - "id": "ntp:ntp", - "label": "NTP Server", - "bindingId": "ntp" - }, - { - "id": "serialbutton:button", - "label": "Push Button", - "bindingId": "serialbutton" - }, - { - "id": "sonos:CONNECT", - "label": "CONNECT", - "bindingId": "sonos" - }, - { - "id": "sonos:CONNECTAMP", - "label": "CONNECT AMP", - "bindingId": "sonos" - }, - { - "id": "sonos:One", - "label": "One", - "bindingId": "sonos" - }, - { - "id": "sonos:PLAY1", - "label": "PLAY 1", - "bindingId": "sonos" - }, - { - "id": "sonos:PLAY3", - "label": "PLAY 3", - "bindingId": "sonos" - }, - { - "id": "sonos:PLAY5", - "label": "PLAY 5", - "bindingId": "sonos" - }, - { - "id": "sonos:PLAYBAR", - "label": "PLAYBAR", - "bindingId": "sonos" - }, - { - "id": "sonos:zoneplayer", - "label": "Zone Player", - "bindingId": "sonos" - }, - { - "id": "tradfri:gateway", - "label": "TRÅDFRI Gateway", - "bindingId": "tradfri" - }, - { - "id": "tradfri:0100", - "label": "Dimmable Light", - "bindingId": "tradfri" - }, - { - "id": "tradfri:0220", - "label": "Color Temperature Light", - "bindingId": "tradfri" - }, - { - "id": "tradfri:0210", - "label": "Color Light", - "bindingId": "tradfri" - }, - { - "id": "tradfri:0107", - "label": "Occupancy Sensor", - "bindingId": "tradfri" - }, - { - "id": "tradfri:0820", - "label": "Non-Colour Controller", - "bindingId": "tradfri" - }, - { - "id": "tradfri:0830", - "label": "Non-Colour Scene Controller", - "bindingId": "tradfri" - }, - { - "id": "weatherunderground:weather", - "label": "Weather Information", - "bindingId": "weatherunderground" - }, - { - "id": "wemo:bridge", - "label": "WeMo Link", - "bindingId": "wemo" - }, - { - "id": "wemo:socket", - "label": "WeMo Switch", - "bindingId": "wemo" - }, - { - "id": "wemo:insight", - "label": "WeMo Insight Switch", - "bindingId": "wemo" - }, - { - "id": "wemo:lightswitch", - "label": "WeMo Light Switch", - "bindingId": "wemo" - }, - { - "id": "wemo:motion", - "label": "WeMo Motion", - "bindingId": "wemo" - }, - { - "id": "wemo:MZ100", - "label": "WeMo LED Light", - "bindingId": "wemo" - }, - { - "id": "wemo:Maker", - "label": "WeMo Maker", - "bindingId": "wemo" - }, - { - "id": "wemo:CoffeeMaker", - "label": "Mr. Coffee WeMo Enabled Coffeemaker", - "bindingId": "wemo" - }, - { - "id": "yahooweather:weather", - "label": "Weather Information", - "bindingId": "yahooweather" - }, - { - "id": "${bindingId}:sample", - "label": "${bindingIdCamelCase} Binding Thing", - "bindingId": "${bindingId}" - } -] \ No newline at end of file diff --git a/.vuepress/public/admin/config.yml b/.vuepress/public/admin/config.yml deleted file mode 100644 index b1625bd1..00000000 --- a/.vuepress/public/admin/config.yml +++ /dev/null @@ -1,62 +0,0 @@ -backend: - name: git-gateway - branch: master - accept_roles: #optional - accepts all users if left out - - admin - - editors - -publish_mode: editorial_workflow # optional, enables publishing workflow - -display_url: https://www.openhab.org -media_folder: ".vuepress/public/uploads" -public_folder: "/uploads" - -collections: # A list of collections the CMS should be able to edit - - name: "posts" # Used in routes, ie.: /admin/collections/:slug/edit - label: "Blog Posts" # Used in the UI - label_singular: "Blog Post" # Used in the UI, ie: "New Post" - description: > - A blog post for the openHAB Blog - folder: "blog" - slug: "{{year}}-{{month}}-{{day}}-{{slug}}" - format: yaml-frontmatter - extension: md - create: true # Allow users to create new documents in this collection - filter: {field: "layout", value: "BlogPost"} - fields: # The fields each document in this collection have - - {label: "Layout", name: "layout", widget: "hidden", default: "BlogPost"} - - {label: "Category", name: "category", widget: "hidden", default: "blog"} - - {label: "Title", name: "title", widget: "string", tagname: "h1", required: true} - - {label: "Author", name: "author", widget: "string", required: true} - - {label: "Publish Date", name: "date", widget: "datetime", required: true} - - {label: "Cover Image", name: "previewimage", widget: "image", required: true, tagname: ""} - - {label: "Tags", name: "tags", widget: "list", default: ["news"]} - - {label: "Excerpt", name: "excerpt", widget: "string", required: true} - - {label: "Body", name: "body", widget: "markdown"} - meta: - - {label: "SEO Description", name: "description", widget: "text"} - - name: "events" # Used in routes, ie.: /admin/collections/:slug/edit - label: "Events" # Used in the UI - label_singular: "Event" # Used in the UI, ie: "New Post" - description: > - An event - folder: "about/events" - slug: "{{year}}-{{month}}-{{day}}-{{slug}}" - format: yaml-frontmatter - extension: md - create: true # Allow users to create new documents in this collection - fields: # The fields each document in this collection have - - {label: "Layout", name: "layout", widget: "hidden", default: "Event"} - - {label: "Category", name: "category", widget: "hidden", default: "event"} - - {label: "Title", name: "title", widget: "string", tagname: "h1", required: true} - - {label: "Organizer", name: "organizer", widget: "string", required: true} - - {label: "Link", name: "link", widget: "string", required: false} - - {label: "Event Start Date", name: "date", widget: "datetime", required: true} - - {label: "Event End Date", name: "end_date", widget: "datetime", required: false} - - {label: "Location", name: "location", widget: "string", required: true} - - {label: "Cover Image", name: "event_image", widget: "image", required: false, tagname: ""} - - {label: "Abstract", name: "abstract", widget: "string", required: false} - - {label: "Tags", name: "tags", widget: "list"} - - {label: "Body", name: "body", widget: "markdown"} - meta: - - {label: "SEO Description", name: "description", widget: "text"} diff --git a/.vuepress/public/admin/index.html b/.vuepress/public/admin/index.html deleted file mode 100644 index ce8154b3..00000000 --- a/.vuepress/public/admin/index.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - openHAB Website CMS - - - - - - - - - - diff --git a/.vuepress/public/all.json b/.vuepress/public/all.json deleted file mode 100644 index 1b96eeb3..00000000 --- a/.vuepress/public/all.json +++ /dev/null @@ -1 +0,0 @@ -{"users":[{"id":3939,"username":"ThomDietrich","avatar_template":"/user_avatar/community.openhab.org/thomdietrich/{size}/4083_1.png"},{"id":3774,"username":"opus","avatar_template":"/user_avatar/community.openhab.org/opus/{size}/2246_1.png"},{"id":324,"username":"rlkoshak","avatar_template":"/user_avatar/community.openhab.org/rlkoshak/{size}/8777_1.png"},{"id":6821,"username":"Dim","avatar_template":"/user_avatar/community.openhab.org/dim/{size}/4568_1.png"},{"id":21685,"username":"fmrenan","avatar_template":"/letter_avatar_proxy/v2/letter/f/7c8e57/{size}.png"},{"id":14009,"username":"pmpkk","avatar_template":"/user_avatar/community.openhab.org/pmpkk/{size}/11485_1.png"},{"id":3945,"username":"Dominic_Bialas","avatar_template":"/letter_avatar_proxy/v2/letter/d/e95f7d/{size}.png"},{"id":15138,"username":"aletor","avatar_template":"/user_avatar/community.openhab.org/aletor/{size}/11693_1.png"},{"id":13864,"username":"Michael_Stjerna","avatar_template":"/letter_avatar_proxy/v2/letter/m/df788c/{size}.png"},{"id":23188,"username":"tw1nh3ad","avatar_template":"/letter_avatar_proxy/v2/letter/t/54ee81/{size}.png"},{"id":11446,"username":"aksnet","avatar_template":"/letter_avatar_proxy/v2/letter/a/c6cbf5/{size}.png"},{"id":1365,"username":"Udo_Hartmann","avatar_template":"/user_avatar/community.openhab.org/udo_hartmann/{size}/489_1.png"},{"id":1987,"username":"Nicholas_Waterton","avatar_template":"/user_avatar/community.openhab.org/nicholas_waterton/{size}/1498_1.png"},{"id":21411,"username":"Kapil","avatar_template":"/letter_avatar_proxy/v2/letter/k/b9bd4f/{size}.png"},{"id":6209,"username":"ysc","avatar_template":"/letter_avatar_proxy/v2/letter/y/e480ec/{size}.png"},{"id":4799,"username":"Simson","avatar_template":"/letter_avatar_proxy/v2/letter/s/dec6dc/{size}.png"},{"id":7584,"username":"Pirx","avatar_template":"/user_avatar/community.openhab.org/pirx/{size}/19137_1.png"},{"id":7549,"username":"Dome","avatar_template":"/letter_avatar_proxy/v2/letter/d/85f322/{size}.png"},{"id":18509,"username":"Chrishab","avatar_template":"/letter_avatar_proxy/v2/letter/c/b487fb/{size}.png"},{"id":8988,"username":"cweitkamp","avatar_template":"/user_avatar/community.openhab.org/cweitkamp/{size}/8413_1.png"},{"id":936,"username":"Dibbler42","avatar_template":"/user_avatar/community.openhab.org/dibbler42/{size}/850_1.png"},{"id":4013,"username":"binderth","avatar_template":"/user_avatar/community.openhab.org/binderth/{size}/2233_1.png"},{"id":3897,"username":"AndrewZ","avatar_template":"/user_avatar/community.openhab.org/andrewz/{size}/7515_1.png"},{"id":1514,"username":"sihui","avatar_template":"/user_avatar/community.openhab.org/sihui/{size}/6453_1.png"},{"id":19221,"username":"NDR008","avatar_template":"/user_avatar/community.openhab.org/ndr008/{size}/15725_1.png"},{"id":5919,"username":"vzorglub","avatar_template":"/user_avatar/community.openhab.org/vzorglub/{size}/17166_1.png"},{"id":5170,"username":"rgerrans","avatar_template":"/letter_avatar_proxy/v2/letter/r/2bfe46/{size}.png"},{"id":8205,"username":"BrutalBirdie","avatar_template":"/user_avatar/community.openhab.org/brutalbirdie/{size}/18507_1.png"},{"id":12892,"username":"dakipro","avatar_template":"/letter_avatar_proxy/v2/letter/d/df705f/{size}.png"},{"id":6247,"username":"deltabert","avatar_template":"/user_avatar/community.openhab.org/deltabert/{size}/17611_1.png"},{"id":11160,"username":"BAR","avatar_template":"/letter_avatar_proxy/v2/letter/b/b77776/{size}.png"},{"id":8833,"username":"Saracen","avatar_template":"/letter_avatar_proxy/v2/letter/s/90db22/{size}.png"},{"id":2793,"username":"jsable","avatar_template":"/user_avatar/community.openhab.org/jsable/{size}/3507_1.png"},{"id":3678,"username":"sjef86","avatar_template":"/letter_avatar_proxy/v2/letter/s/c5a1d2/{size}.png"},{"id":16647,"username":"KurtS","avatar_template":"/user_avatar/community.openhab.org/kurts/{size}/19027_1.png"},{"id":1775,"username":"rtvb","avatar_template":"/user_avatar/community.openhab.org/rtvb/{size}/3616_1.png"},{"id":5529,"username":"Max_G","avatar_template":"/user_avatar/community.openhab.org/max_g/{size}/3501_1.png"},{"id":4493,"username":"trumee","avatar_template":"/letter_avatar_proxy/v2/letter/t/848f3c/{size}.png"},{"id":3156,"username":"MikeH","avatar_template":"/letter_avatar_proxy/v2/letter/m/258eb7/{size}.png"},{"id":259,"username":"scooter_seh","avatar_template":"/user_avatar/community.openhab.org/scooter_seh/{size}/8190_1.png"},{"id":1413,"username":"TommySharp","avatar_template":"/user_avatar/community.openhab.org/tommysharp/{size}/2171_1.png"},{"id":3510,"username":"michaeljoos","avatar_template":"/user_avatar/community.openhab.org/michaeljoos/{size}/4146_1.png"},{"id":521,"username":"lipp_markus","avatar_template":"/user_avatar/community.openhab.org/lipp_markus/{size}/3999_1.png"},{"id":20993,"username":"alphie","avatar_template":"/letter_avatar_proxy/v2/letter/a/13edae/{size}.png"},{"id":1304,"username":"patrik_gfeller","avatar_template":"/user_avatar/community.openhab.org/patrik_gfeller/{size}/1366_1.png"},{"id":10081,"username":"Philipp","avatar_template":"/user_avatar/community.openhab.org/philipp/{size}/7473_1.png"},{"id":13010,"username":"idkpmiller","avatar_template":"/user_avatar/community.openhab.org/idkpmiller/{size}/10063_1.png"},{"id":23246,"username":"Jonathan_Davenport","avatar_template":"/letter_avatar_proxy/v2/letter/j/34f0e0/{size}.png"},{"id":15735,"username":"gene","avatar_template":"/letter_avatar_proxy/v2/letter/g/43a26b/{size}.png"},{"id":20095,"username":"cyanide_4c","avatar_template":"/letter_avatar_proxy/v2/letter/c/f1d935/{size}.png"},{"id":23126,"username":"trollmar1","avatar_template":"/letter_avatar_proxy/v2/letter/t/848f3c/{size}.png"},{"id":10,"username":"watou","avatar_template":"/user_avatar/community.openhab.org/watou/{size}/12_1.png"},{"id":19839,"username":"MarsLoucetios","avatar_template":"/letter_avatar_proxy/v2/letter/m/7cd45c/{size}.png"},{"id":1867,"username":"mstormi","avatar_template":"/user_avatar/community.openhab.org/mstormi/{size}/13419_1.png"},{"id":822,"username":"Marty56","avatar_template":"/letter_avatar_proxy/v2/letter/m/b5a626/{size}.png"},{"id":20385,"username":"RayJay","avatar_template":"/letter_avatar_proxy/v2/letter/r/aca169/{size}.png"},{"id":12610,"username":"pacive","avatar_template":"/letter_avatar_proxy/v2/letter/p/848f3c/{size}.png"},{"id":1542,"username":"will_stewart1a","avatar_template":"/user_avatar/community.openhab.org/will_stewart1a/{size}/17110_1.png"},{"id":5854,"username":"chriscolden","avatar_template":"/user_avatar/community.openhab.org/chriscolden/{size}/3744_1.png"},{"id":12908,"username":"realrob","avatar_template":"/user_avatar/community.openhab.org/realrob/{size}/17573_1.png"},{"id":23576,"username":"EBF","avatar_template":"/letter_avatar_proxy/v2/letter/e/838e76/{size}.png"},{"id":10624,"username":"ryandetzel","avatar_template":"/user_avatar/community.openhab.org/ryandetzel/{size}/7872_1.png"},{"id":6166,"username":"Joe_Lawrence","avatar_template":"/letter_avatar_proxy/v2/letter/j/57b2e6/{size}.png"},{"id":5784,"username":"Flavio_Costa","avatar_template":"/user_avatar/community.openhab.org/flavio_costa/{size}/16504_1.png"},{"id":7448,"username":"hww3","avatar_template":"/letter_avatar_proxy/v2/letter/h/a5b964/{size}.png"},{"id":23136,"username":"dastrix80","avatar_template":"/user_avatar/community.openhab.org/dastrix80/{size}/19143_1.png"},{"id":1277,"username":"xsnrg","avatar_template":"/user_avatar/community.openhab.org/xsnrg/{size}/461_1.png"},{"id":386,"username":"rm65453","avatar_template":"/letter_avatar_proxy/v2/letter/r/97f17d/{size}.png"},{"id":1335,"username":"naturalblaze","avatar_template":"/user_avatar/community.openhab.org/naturalblaze/{size}/569_1.png"},{"id":645,"username":"wolf_from_the_north","avatar_template":"/letter_avatar_proxy/v2/letter/w/e9bcb4/{size}.png"},{"id":1701,"username":"dan12345","avatar_template":"/letter_avatar_proxy/v2/letter/d/c0e974/{size}.png"},{"id":1580,"username":"nothingman","avatar_template":"/user_avatar/community.openhab.org/nothingman/{size}/561_1.png"},{"id":1192,"username":"james_2_roberts","avatar_template":"/letter_avatar_proxy/v2/letter/j/2acd7d/{size}.png"},{"id":4349,"username":"LeoVe","avatar_template":"/letter_avatar_proxy/v2/letter/l/b782af/{size}.png"},{"id":6548,"username":"snoekieboe","avatar_template":"/letter_avatar_proxy/v2/letter/s/278dde/{size}.png"},{"id":529,"username":"mashborn","avatar_template":"/user_avatar/community.openhab.org/mashborn/{size}/237_1.png"},{"id":10882,"username":"Matt77","avatar_template":"/letter_avatar_proxy/v2/letter/m/bbce88/{size}.png"},{"id":958,"username":"smar","avatar_template":"/letter_avatar_proxy/v2/letter/s/e36b37/{size}.png"},{"id":3214,"username":"bgilmer","avatar_template":"/letter_avatar_proxy/v2/letter/b/9de0a6/{size}.png"},{"id":8424,"username":"andirs","avatar_template":"/letter_avatar_proxy/v2/letter/a/ebca7d/{size}.png"},{"id":8400,"username":"HolgerL","avatar_template":"/letter_avatar_proxy/v2/letter/h/779978/{size}.png"},{"id":2531,"username":"DocFraggle","avatar_template":"/user_avatar/community.openhab.org/docfraggle/{size}/6413_1.png"},{"id":22147,"username":"djkswiss","avatar_template":"/letter_avatar_proxy/v2/letter/d/bbe5ce/{size}.png"},{"id":1072,"username":"hakan","avatar_template":"/user_avatar/community.openhab.org/hakan/{size}/396_1.png"},{"id":12873,"username":"Kees_van_Gelder","avatar_template":"/user_avatar/community.openhab.org/kees_van_gelder/{size}/17497_1.png"},{"id":16009,"username":"Yoinkz","avatar_template":"/letter_avatar_proxy/v2/letter/y/958977/{size}.png"},{"id":244,"username":"glufonec","avatar_template":"/letter_avatar_proxy/v2/letter/g/958977/{size}.png"},{"id":177,"username":"bartus","avatar_template":"/user_avatar/community.openhab.org/bartus/{size}/18399_1.png"},{"id":16456,"username":"Tony_Jobson","avatar_template":"/letter_avatar_proxy/v2/letter/t/bcef8e/{size}.png"},{"id":10408,"username":"QuagmireMan","avatar_template":"/letter_avatar_proxy/v2/letter/q/b9e5f3/{size}.png"},{"id":11005,"username":"waspie","avatar_template":"/letter_avatar_proxy/v2/letter/w/b19c9b/{size}.png"},{"id":6928,"username":"bulletprooffool","avatar_template":"/letter_avatar_proxy/v2/letter/b/d78d45/{size}.png"},{"id":21676,"username":"oneofayykind","avatar_template":"/user_avatar/community.openhab.org/oneofayykind/{size}/17380_1.png"},{"id":15409,"username":"Jonas88","avatar_template":"/letter_avatar_proxy/v2/letter/j/6de8d8/{size}.png"},{"id":2051,"username":"skatun","avatar_template":"/user_avatar/community.openhab.org/skatun/{size}/17185_1.png"},{"id":21752,"username":"reissp","avatar_template":"/letter_avatar_proxy/v2/letter/r/53a042/{size}.png"},{"id":1747,"username":"Artyom_Syomushkin","avatar_template":"/letter_avatar_proxy/v2/letter/a/9de0a6/{size}.png"},{"id":6516,"username":"fohdeesha","avatar_template":"/user_avatar/community.openhab.org/fohdeesha/{size}/13449_1.png"},{"id":10107,"username":"Peter_De_Mangelaere","avatar_template":"/letter_avatar_proxy/v2/letter/p/bbe5ce/{size}.png"},{"id":823,"username":"krismaussen","avatar_template":"/user_avatar/community.openhab.org/krismaussen/{size}/321_1.png"},{"id":70,"username":"ben_jones12","avatar_template":"/user_avatar/community.openhab.org/ben_jones12/{size}/52_1.png"},{"id":10680,"username":"Dries","avatar_template":"/user_avatar/community.openhab.org/dries/{size}/8797_1.png"},{"id":11331,"username":"LukeCorkill","avatar_template":"/letter_avatar_proxy/v2/letter/l/43a26b/{size}.png"},{"id":4501,"username":"rzylius","avatar_template":"/letter_avatar_proxy/v2/letter/r/e9c0ed/{size}.png"},{"id":1818,"username":"Andrew_Pawelski","avatar_template":"/user_avatar/community.openhab.org/andrew_pawelski/{size}/12491_1.png"},{"id":21769,"username":"gman","avatar_template":"/user_avatar/community.openhab.org/gman/{size}/17807_1.png"},{"id":17691,"username":"salexes","avatar_template":"/letter_avatar_proxy/v2/letter/s/aeb1de/{size}.png"},{"id":76,"username":"pahansen","avatar_template":"/user_avatar/community.openhab.org/pahansen/{size}/4938_1.png"},{"id":1529,"username":"dbadia","avatar_template":"/user_avatar/community.openhab.org/dbadia/{size}/15036_1.png"},{"id":5601,"username":"Seaside","avatar_template":"/user_avatar/community.openhab.org/seaside/{size}/6012_1.png"},{"id":2870,"username":"halloween","avatar_template":"/user_avatar/community.openhab.org/halloween/{size}/7493_1.png"},{"id":2738,"username":"ramsaymike","avatar_template":"/letter_avatar_proxy/v2/letter/r/3be4f8/{size}.png"},{"id":13382,"username":"Felix_Raetz","avatar_template":"/letter_avatar_proxy/v2/letter/f/ea5d25/{size}.png"},{"id":12647,"username":"Nduzi","avatar_template":"/letter_avatar_proxy/v2/letter/n/eb8c5e/{size}.png"},{"id":18541,"username":"cteague","avatar_template":"/letter_avatar_proxy/v2/letter/c/96bed5/{size}.png"},{"id":16654,"username":"erickk","avatar_template":"/letter_avatar_proxy/v2/letter/e/b9e5f3/{size}.png"},{"id":15965,"username":"Puybaret","avatar_template":"/letter_avatar_proxy/v2/letter/p/47e85d/{size}.png"},{"id":1012,"username":"jussi_railakari","avatar_template":"/letter_avatar_proxy/v2/letter/j/958977/{size}.png"},{"id":6335,"username":"viktor_Sc","avatar_template":"/letter_avatar_proxy/v2/letter/v/a698b9/{size}.png"},{"id":6845,"username":"anfaenger","avatar_template":"/letter_avatar_proxy/v2/letter/a/a9a28c/{size}.png"},{"id":9356,"username":"Multisaft7","avatar_template":"/user_avatar/community.openhab.org/multisaft7/{size}/6952_1.png"},{"id":23040,"username":"Klimbim","avatar_template":"/letter_avatar_proxy/v2/letter/k/a88e4f/{size}.png"},{"id":7380,"username":"Christian_V","avatar_template":"/letter_avatar_proxy/v2/letter/c/f475e1/{size}.png"},{"id":7183,"username":"gerrit","avatar_template":"/letter_avatar_proxy/v2/letter/g/b9bd4f/{size}.png"},{"id":2083,"username":"NCO","avatar_template":"/user_avatar/community.openhab.org/nco/{size}/915_1.png"},{"id":1197,"username":"steve1","avatar_template":"/letter_avatar_proxy/v2/letter/s/3da27b/{size}.png"},{"id":9,"username":"Bernd_Pfrommer","avatar_template":"/letter_avatar_proxy/v2/letter/b/91b2a8/{size}.png"},{"id":183,"username":"jonnydev13","avatar_template":"/letter_avatar_proxy/v2/letter/j/c67d28/{size}.png"},{"id":9696,"username":"dikkedimi","avatar_template":"/user_avatar/community.openhab.org/dikkedimi/{size}/17709_1.png"},{"id":13628,"username":"jdeka1","avatar_template":"/letter_avatar_proxy/v2/letter/j/c57346/{size}.png"},{"id":23381,"username":"sijah.ak","avatar_template":"/letter_avatar_proxy/v2/letter/s/65b543/{size}.png"},{"id":9654,"username":"BigMountainSki","avatar_template":"/user_avatar/community.openhab.org/bigmountainski/{size}/9595_1.png"},{"id":20112,"username":"baudfather","avatar_template":"/letter_avatar_proxy/v2/letter/b/58956e/{size}.png"},{"id":12042,"username":"mcqwerty","avatar_template":"/user_avatar/community.openhab.org/mcqwerty/{size}/8962_1.png"},{"id":2941,"username":"Mpower","avatar_template":"/letter_avatar_proxy/v2/letter/m/5daacb/{size}.png"},{"id":14671,"username":"Westender","avatar_template":"/letter_avatar_proxy/v2/letter/w/df705f/{size}.png"},{"id":9393,"username":"luckymallari","avatar_template":"/user_avatar/community.openhab.org/luckymallari/{size}/15259_1.png"},{"id":19109,"username":"dascrip","avatar_template":"/letter_avatar_proxy/v2/letter/d/278dde/{size}.png"},{"id":19358,"username":"FrankCZ","avatar_template":"/user_avatar/community.openhab.org/frankcz/{size}/15222_1.png"},{"id":3976,"username":"5iver","avatar_template":"/letter_avatar_proxy/v2/letter/5/cdc98d/{size}.png"},{"id":5175,"username":"Michael_Dot_Woodrum","avatar_template":"/letter_avatar_proxy/v2/letter/m/8dc957/{size}.png"},{"id":5764,"username":"KidSquid","avatar_template":"/user_avatar/community.openhab.org/kidsquid/{size}/3985_1.png"},{"id":13364,"username":"momo2000","avatar_template":"/letter_avatar_proxy/v2/letter/m/f08c70/{size}.png"},{"id":49,"username":"digitaldan","avatar_template":"/user_avatar/community.openhab.org/digitaldan/{size}/19448_1.png"},{"id":8,"username":"chris","avatar_template":"/letter_avatar_proxy/v2/letter/c/958977/{size}.png"},{"id":20560,"username":"JWilson2835","avatar_template":"/user_avatar/community.openhab.org/jwilson2835/{size}/10714_1.png"},{"id":3335,"username":"Benjy","avatar_template":"/user_avatar/community.openhab.org/benjy/{size}/2381_1.png"},{"id":11778,"username":"nlmarco","avatar_template":"/user_avatar/community.openhab.org/nlmarco/{size}/19388_1.png"},{"id":5718,"username":"ikkeT","avatar_template":"/user_avatar/community.openhab.org/ikket/{size}/8253_1.png"},{"id":2369,"username":"mikyh","avatar_template":"/letter_avatar_proxy/v2/letter/m/a3d4f5/{size}.png"},{"id":2358,"username":"roberto.pierpaoli","avatar_template":"/letter_avatar_proxy/v2/letter/r/58956e/{size}.png"},{"id":18648,"username":"disiron","avatar_template":"/user_avatar/community.openhab.org/disiron/{size}/14603_1.png"},{"id":564,"username":"bernd_boehm","avatar_template":"/letter_avatar_proxy/v2/letter/b/ac8455/{size}.png"},{"id":17158,"username":"Icarus","avatar_template":"/letter_avatar_proxy/v2/letter/i/e19b73/{size}.png"},{"id":19482,"username":"StefanH","avatar_template":"/letter_avatar_proxy/v2/letter/s/58956e/{size}.png"},{"id":5011,"username":"Maurits28","avatar_template":"/user_avatar/community.openhab.org/maurits28/{size}/5925_1.png"},{"id":4074,"username":"smhgit","avatar_template":"/letter_avatar_proxy/v2/letter/s/3d9bf3/{size}.png"},{"id":8948,"username":"David_Graeff","avatar_template":"/user_avatar/community.openhab.org/david_graeff/{size}/6410_1.png"},{"id":20348,"username":"Victor3D","avatar_template":"/letter_avatar_proxy/v2/letter/v/0ea827/{size}.png"},{"id":7396,"username":"Stefanseiner","avatar_template":"/user_avatar/community.openhab.org/stefanseiner/{size}/5074_1.png"},{"id":9270,"username":"hamwong","avatar_template":"/user_avatar/community.openhab.org/hamwong/{size}/6725_1.png"},{"id":14346,"username":"lifedown710","avatar_template":"/user_avatar/community.openhab.org/lifedown710/{size}/12585_1.png"},{"id":21090,"username":"boris03","avatar_template":"/letter_avatar_proxy/v2/letter/b/5daacb/{size}.png"},{"id":10999,"username":"alkaline","avatar_template":"/letter_avatar_proxy/v2/letter/a/ecd19e/{size}.png"},{"id":6921,"username":"sir_luddite","avatar_template":"/user_avatar/community.openhab.org/sir_luddite/{size}/4638_1.png"},{"id":445,"username":"shawnmix","avatar_template":"/letter_avatar_proxy/v2/letter/s/ed655f/{size}.png"},{"id":16630,"username":"ohb1138","avatar_template":"/letter_avatar_proxy/v2/letter/o/9f8e36/{size}.png"},{"id":13257,"username":"marco_hoefle","avatar_template":"/user_avatar/community.openhab.org/marco_hoefle/{size}/10359_1.png"}],"primary_groups":[{"id":42,"name":"maintainers","flair_url":"fa-star","flair_bg_color":null,"flair_color":"FF6600"},{"id":45,"name":"sustainingmembers","flair_url":"fa-smile-o","flair_bg_color":null,"flair_color":"FFAA00"},{"id":43,"name":"foundationmembers","flair_url":"fa-smile-o","flair_bg_color":null,"flair_color":"00DD22"}],"topic_list":{"can_create_topic":false,"draft":null,"draft_key":"new_topic","draft_sequence":null,"for_period":"all","per_page":30,"top_tags":["openhab2","rules","mqtt","zwave","designpattern","tutorial","binding","presence","beginners","items","examples","installation","logging","hue","raspberry","weather","astro","esp8266","habpanel","heating","node-red","alarm","alexa","arduino","basicui","exec","groups","iphone","modbus","persistence","rfxcom","security","configuration","dimmer","docker","enocean","googlehome","homekit","influxdb","karaf","kodi","linux","openhab","owntracks","power","python","restapi","rrd4j","sitemap","sonoff","sonos","squeezebox","thermostat","voicecontrol","blinds","camera","charts","color","dht22","dscalarm","execbinding","gpio","graphs","hardware","homematic","motiondetection","mqtt-binding","netatmo","network","notifications","oh2","rgbw","scene","scripts","sensor","setup","skin","snmp","tasker","theme","widget","xiaomi","433mhz","apache2.4","backup","bluetooth","calendar","colortemperature","css","debugging","dht11","diy","door","editor","energy","floorplan","fritzbox","grafana","harmonyhub","hsb","http","httpbinding","humidity","json","knx","lambda","landroid","lucky","miflora","milight","motionsensor","myopenhaborg","mysql","nest","oh2bindings","openhabian","openwrt","particle","pwm","regex","remote","rest","reverse_proxy","rollershutter","skatun","solution","solved","ssh","stylesheet","temperature","things","time","timer","webview","wifi","windows","workflow","1-wire","3d","ac","action","advanced","aeonzwavestick","aiportexpress","airly","airquality","aiy","amazon","amazondash","androidapp","apc","api","argos","article","australia","authentication","automatic","azimuth","basement","bash","binarydata","bindingnest","ble","blog","bme280","book","boot","caldav","caldavbinding","cc2650","checklist","chef","chromecast","chromecastbinding","cometvisu","cul","curl","database","datatypes","debug","dehumidification","development","dewpoint","dht","diskstation","documentation","doorbell","dooya","dsc","duofern","dyson","echo","elapsed-time","entertain","espeasy","evl","expect","fan","fhem","fht"],"topics":[{"id":13761,"title":"InfluxDB+Grafana persistence and graphing","fancy_title":"InfluxDB+Grafana persistence and graphing","slug":"influxdb-grafana-persistence-and-graphing","posts_count":501,"reply_count":335,"highest_post_number":508,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/3/35b831f9a4b6fc345eda75c3958ed92d8ce52299_1_678x500.png","created_at":"2016-09-01T17:56:35.432Z","last_posted_at":"2018-05-31T22:38:52.181Z","bumped":true,"bumped_at":"2018-05-31T23:52:19.481Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["influxdb","grafana","graphs"],"views":128473,"like_count":248,"has_summary":true,"archetype":"regular","last_poster_username":"fmrenan","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3774,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":6821,"primary_group_id":43},{"extras":"latest","description":"Most Recent Poster","user_id":21685,"primary_group_id":null}]},{"id":31100,"title":"Matrix Theme for HABPanel","fancy_title":"Matrix Theme for HABPanel","slug":"matrix-theme-for-habpanel","posts_count":384,"reply_count":285,"highest_post_number":387,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/8/8ef56645fb6032449f2d7bdda93ab06fb6cb9c80_1_689x366.png","created_at":"2017-07-05T19:42:56.941Z","last_posted_at":"2018-05-30T14:05:41.281Z","bumped":true,"bumped_at":"2018-05-30T14:05:41.281Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["skin","theme","stylesheet"],"views":43396,"like_count":173,"has_summary":true,"archetype":"regular","last_poster_username":"tw1nh3ad","category_id":51,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":14009,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3945,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":15138,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":13864,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":23188,"primary_group_id":null}]},{"id":20512,"title":"Design Pattern: Working with Groups in Rules","fancy_title":"Design Pattern: Working with Groups in Rules","slug":"design-pattern-working-with-groups-in-rules","posts_count":69,"reply_count":47,"highest_post_number":69,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/original/3X/5/8/5873e334172abe686e8e381f4abf23ff225bbc35.png","created_at":"2017-01-17T19:26:46.688Z","last_posted_at":"2018-04-24T14:30:58.978Z","bumped":true,"bumped_at":"2018-04-24T14:30:58.978Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["groups","designpattern"],"views":18782,"like_count":72,"has_summary":true,"archetype":"regular","last_poster_username":"rlkoshak","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":11446,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1365,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1987,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":21411,"primary_group_id":null}]},{"id":38441,"title":"Design your SVG floorplan or dashboard for HABPanel with Inkscape","fancy_title":"Design your SVG floorplan or dashboard for HABPanel with Inkscape","slug":"design-your-svg-floorplan-or-dashboard-for-habpanel-with-inkscape","posts_count":61,"reply_count":38,"highest_post_number":63,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/7/71c3e5aca34a06e8414e3b292ce8e1424e147f0c_1_690x489.gif","created_at":"2018-01-08T00:54:09.994Z","last_posted_at":"2018-05-09T19:27:57.456Z","bumped":true,"bumped_at":"2018-05-09T19:27:57.456Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["floorplan","svg","inkscape"],"views":9100,"like_count":73,"has_summary":true,"archetype":"regular","last_poster_username":"Chrishab","category_id":51,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":6209,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":4799,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":7584,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":7549,"primary_group_id":45},{"extras":"latest","description":"Most Recent Poster","user_id":18509,"primary_group_id":null}]},{"id":15587,"title":"Washing Machine State Machine","fancy_title":"Washing Machine State Machine","slug":"washing-machine-state-machine","posts_count":139,"reply_count":97,"highest_post_number":140,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/original/2X/f/f817d3083b390f1cebcef386b065396d3e9ed27b.png","created_at":"2016-10-22T17:08:32.502Z","last_posted_at":"2018-05-30T05:47:50.973Z","bumped":true,"bumped_at":"2018-05-30T05:47:50.973Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["power"],"views":40254,"like_count":74,"has_summary":true,"archetype":"regular","last_poster_username":"binderth","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":8988,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":936,"primary_group_id":43},{"extras":"latest","description":"Most Recent Poster","user_id":4013,"primary_group_id":null}]},{"id":15024,"title":"ITEAD Sonoff switches and sockets - cheap ESP8266 Wifi+MQTT hardware","fancy_title":"ITEAD Sonoff switches and sockets - cheap ESP8266 Wifi+MQTT hardware","slug":"itead-sonoff-switches-and-sockets-cheap-esp8266-wifi-mqtt-hardware","posts_count":549,"reply_count":372,"highest_post_number":556,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/original/2X/8/86850f4355d7e8e7e99f5c30bb2fdc46dfcb8a79.jpg","created_at":"2016-10-09T12:19:41.867Z","last_posted_at":"2018-05-23T08:46:37.611Z","bumped":true,"bumped_at":"2018-05-23T08:46:37.611Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["wifi","mqtt","sonoff"],"views":88557,"like_count":218,"has_summary":true,"archetype":"regular","last_poster_username":"vzorglub","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3897,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1514,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":19221,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":5919,"primary_group_id":null}]},{"id":29509,"title":"Node-RED as Alternative Rule Engine","fancy_title":"Node-RED as Alternative Rule Engine","slug":"node-red-as-alternative-rule-engine","posts_count":111,"reply_count":72,"highest_post_number":112,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/original/2X/b/b6b16fc0daa379111842005ee364ca5b2500597e.png","created_at":"2017-06-05T16:48:54.957Z","last_posted_at":"2018-05-09T19:42:50.647Z","bumped":true,"bumped_at":"2018-05-09T19:42:50.647Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["node-red","rules"],"views":25065,"like_count":50,"has_summary":true,"archetype":"regular","last_poster_username":"BAR","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":5170,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":8205,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":12892,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":6247,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":11160,"primary_group_id":null}]},{"id":34764,"title":"Show Current Sun Position and Shadow of House (Generate SVG)","fancy_title":"Show Current Sun Position and Shadow of House (Generate SVG)","slug":"show-current-sun-position-and-shadow-of-house-generate-svg","posts_count":121,"reply_count":74,"highest_post_number":125,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/7/7239306607bac4794f805c01f9021ab3ea797882_1_690x415.png","created_at":"2017-10-03T10:54:00.715Z","last_posted_at":"2018-05-02T12:17:39.147Z","bumped":true,"bumped_at":"2018-05-02T12:17:39.147Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"views":8058,"like_count":56,"has_summary":true,"archetype":"regular","last_poster_username":"KurtS","category_id":51,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":14009,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":8833,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2793,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3678,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":16647,"primary_group_id":null}]},{"id":15407,"title":"Design Pattern: Time Of Day","fancy_title":"Design Pattern: Time Of Day","slug":"design-pattern-time-of-day","posts_count":147,"reply_count":109,"highest_post_number":148,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/original/3X/4/8/48f1b01cb1f5c938dea503e58d6746e5dce90ff9.jpg","created_at":"2016-10-17T21:09:34.648Z","last_posted_at":"2018-04-29T15:04:25.452Z","bumped":true,"bumped_at":"2018-04-29T15:04:25.452Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["jodatime","designpattern","time"],"views":22407,"like_count":72,"has_summary":true,"archetype":"regular","last_poster_username":"rlkoshak","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":1775,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":5529,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":4493,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3156,"primary_group_id":null}]},{"id":7611,"title":"Speedtest-cli Internet Up-/Downlink Measurement Integration","fancy_title":"Speedtest-cli Internet Up-/Downlink Measurement Integration","slug":"speedtest-cli-internet-up-downlink-measurement-integration","posts_count":133,"reply_count":85,"highest_post_number":135,"image_url":"https://community-openhab-org.s3-eu-central-1.amazonaws.com/original/2X/2/2b3ee536c3026d68191802329246b3bca6a7dd3f.png","created_at":"2016-02-16T02:25:15.437Z","last_posted_at":"2018-02-16T05:47:06.892Z","bumped":true,"bumped_at":"2018-02-16T05:47:06.892Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"views":23121,"like_count":51,"has_summary":true,"archetype":"regular","last_poster_username":"michaeljoos","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":259,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1413,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":324,"primary_group_id":43},{"extras":"latest","description":"Most Recent Poster","user_id":3510,"primary_group_id":null}]},{"id":32684,"title":"Type Conversions","fancy_title":"Type Conversions","slug":"type-conversions","posts_count":44,"reply_count":30,"highest_post_number":44,"image_url":null,"created_at":"2017-08-03T16:16:26.812Z","last_posted_at":"2018-05-05T20:26:37.632Z","bumped":true,"bumped_at":"2018-05-05T20:26:37.632Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["datatypes","rules"],"views":10663,"like_count":37,"has_summary":false,"archetype":"regular","last_poster_username":"alphie","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":521,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":1987,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":20993,"primary_group_id":null}]},{"id":32329,"title":"iCloud device data integration in openHAB","fancy_title":"iCloud device data integration in openHAB","slug":"icloud-device-data-integration-in-openhab","posts_count":402,"reply_count":311,"highest_post_number":407,"image_url":null,"created_at":"2017-07-27T17:23:41.410Z","last_posted_at":"2018-04-16T16:46:41.829Z","bumped":true,"bumped_at":"2018-04-16T16:46:41.829Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["location","iphone","rules"],"views":16176,"like_count":134,"has_summary":true,"archetype":"regular","last_poster_username":"Jonathan_Davenport","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":1304,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":10081,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":13010,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3939,"primary_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":23246,"primary_group_id":null}]},{"id":31307,"title":"Overall \"skin\" based on the Orange Tree theme with custom widgets and styles","fancy_title":"Overall “skin” based on the Orange Tree theme with custom widgets and styles","slug":"overall-skin-based-on-the-orange-tree-theme-with-custom-widgets-and-styles","posts_count":22,"reply_count":7,"highest_post_number":22,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/f/f066c7b263adf9ebf47b0890d94dd01168032a63_1_690x431.png","created_at":"2017-07-09T16:56:22.855Z","last_posted_at":"2018-04-11T20:22:08.671Z","bumped":true,"bumped_at":"2018-04-11T20:22:08.671Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["skin","theme","stylesheet"],"views":6301,"like_count":27,"has_summary":false,"archetype":"regular","last_poster_username":"trollmar1","category_id":51,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":6209,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":15735,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3945,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":20095,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":23126,"primary_group_id":null}]},{"id":15940,"title":"HowTo: Manage OpenHab 2 configurations","fancy_title":"HowTo: Manage OpenHab 2 configurations","slug":"howto-manage-openhab-2-configurations","posts_count":14,"reply_count":5,"highest_post_number":14,"image_url":null,"created_at":"2016-10-30T10:19:15.198Z","last_posted_at":"2018-02-08T17:03:53.189Z","bumped":true,"bumped_at":"2018-02-08T17:03:53.189Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["karaf","configuration","openhab2"],"views":33975,"like_count":24,"has_summary":false,"archetype":"regular","last_poster_username":"rlkoshak","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":6821,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":10,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":19839,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1867,"primary_group_id":45},{"extras":"latest","description":"Most Recent Poster","user_id":324,"primary_group_id":43}]},{"id":17878,"title":"Generic Presence Detection","fancy_title":"Generic Presence Detection","slug":"generic-presence-detection","posts_count":46,"reply_count":34,"highest_post_number":46,"image_url":null,"created_at":"2016-12-07T23:14:44.473Z","last_posted_at":"2018-03-11T19:38:17.455Z","bumped":true,"bumped_at":"2018-03-11T19:38:17.455Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["presence"],"views":13242,"like_count":41,"has_summary":false,"archetype":"regular","last_poster_username":"RayJay","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":822,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":5529,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":20385,"primary_group_id":null}]},{"id":15098,"title":"Design Pattern: Group Based Persistence","fancy_title":"Design Pattern: Group Based Persistence","slug":"design-pattern-group-based-persistence","posts_count":13,"reply_count":6,"highest_post_number":13,"image_url":null,"created_at":"2016-10-10T20:52:38.341Z","last_posted_at":"2018-02-13T16:44:08.969Z","bumped":true,"bumped_at":"2018-02-13T16:44:08.969Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["designpattern","persistence"],"views":8399,"like_count":28,"has_summary":false,"archetype":"regular","last_poster_username":"chriscolden","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":12610,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":7549,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":1542,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":5854,"primary_group_id":null}]},{"id":33958,"title":"MQTT Binding (v1.11) Getting Started 101","fancy_title":"MQTT Binding (v1.11) Getting Started 101","slug":"mqtt-binding-v1-11-getting-started-101","posts_count":42,"reply_count":23,"highest_post_number":43,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/original/2X/1/167cd8dc88d35fe209aeb1f580c3a3342fadb242.png","created_at":"2017-09-05T20:09:34.577Z","last_posted_at":"2018-06-01T17:15:24.947Z","bumped":true,"bumped_at":"2018-06-01T17:15:24.947Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["mqtt"],"views":19891,"like_count":38,"has_summary":false,"archetype":"regular","last_poster_username":"rlkoshak","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":12908,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":5919,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":23576,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":324,"primary_group_id":43}]},{"id":24716,"title":"Setup your own openhab-cloud (myopenhab) server/instance","fancy_title":"Setup your own openhab-cloud (myopenhab) server/instance","slug":"setup-your-own-openhab-cloud-myopenhab-server-instance","posts_count":101,"reply_count":66,"highest_post_number":102,"image_url":"https://community-cdn-digitalocean-com.global.ssl.fastly.net/assets/tutorials/images/large/Let's_Encrypt_nginx_tw_mostov.jpg?1468611867","created_at":"2017-03-09T16:54:41.677Z","last_posted_at":"2018-05-28T07:44:24.254Z","bumped":true,"bumped_at":"2018-05-28T07:44:24.254Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["myopenhab","myopenhaborg","openhab-cloud"],"views":13865,"like_count":33,"has_summary":true,"archetype":"regular","last_poster_username":"dastrix80","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":10624,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":6166,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":5784,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":7448,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":23136,"primary_group_id":null}]},{"id":1407,"title":"Collection of working z-wave configs","fancy_title":"Collection of working z-wave configs","slug":"collection-of-working-z-wave-configs","posts_count":54,"reply_count":36,"highest_post_number":55,"image_url":null,"created_at":"2015-08-13T16:29:59.226Z","last_posted_at":"2016-08-06T07:12:33.988Z","bumped":true,"bumped_at":"2016-08-06T07:12:33.988Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["zwave"],"views":33504,"like_count":42,"has_summary":true,"archetype":"regular","last_poster_username":"dan12345","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":1277,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":386,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1335,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":645,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1701,"primary_group_id":null}]},{"id":13947,"title":"Migration from OH 1.x to OH 2 Tutorial","fancy_title":"Migration from OH 1.x to OH 2 Tutorial","slug":"migration-from-oh-1-x-to-oh-2-tutorial","posts_count":74,"reply_count":49,"highest_post_number":76,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/7/76aaf65ed191443df4c56db917ba33ac60adab8e_1_690x124.png","created_at":"2016-09-08T15:57:53.034Z","last_posted_at":"2018-01-17T17:28:34.455Z","bumped":true,"bumped_at":"2018-01-17T17:28:34.455Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["installation"],"views":16003,"like_count":25,"has_summary":true,"archetype":"regular","last_poster_username":"rlkoshak","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":1580,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1192,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1514,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":4349,"primary_group_id":null}]},{"id":34895,"title":"Share Z-wave dongle over IP (USB over IP using ser2net / socat ) guide","fancy_title":"Share Z-wave dongle over IP (USB over IP using ser2net / socat ) guide","slug":"share-z-wave-dongle-over-ip-usb-over-ip-using-ser2net-socat-guide","posts_count":53,"reply_count":36,"highest_post_number":53,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/original/2X/b/b93aaee8a80283c48cbe3753f24458e4a44a4b6f.png","created_at":"2017-10-07T18:17:33.844Z","last_posted_at":"2018-05-24T01:50:51.717Z","bumped":true,"bumped_at":"2018-05-24T01:50:51.717Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"views":4348,"like_count":32,"has_summary":true,"archetype":"regular","last_poster_username":"smar","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":6548,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":529,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":10882,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1365,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":958,"primary_group_id":null}]},{"id":13976,"title":"Taming openHAB 2 Logging","fancy_title":"Taming openHAB 2 Logging","slug":"taming-openhab-2-logging","posts_count":72,"reply_count":45,"highest_post_number":72,"image_url":null,"created_at":"2016-09-09T20:53:37.826Z","last_posted_at":"2018-01-25T18:01:26.847Z","bumped":true,"bumped_at":"2018-01-25T18:01:26.847Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["logging","configuration"],"views":10961,"like_count":50,"has_summary":true,"archetype":"regular","last_poster_username":"HolgerL","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":3214,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":8424,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1514,"primary_group_id":45},{"extras":"latest","description":"Most Recent Poster","user_id":8400,"primary_group_id":null}]},{"id":20080,"title":"Setting up openHAB2 from scratch","fancy_title":"Setting up openHAB2 from scratch","slug":"setting-up-openhab2-from-scratch","posts_count":32,"reply_count":19,"highest_post_number":32,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/8/89b771c41ff74738f97b276dfb5d2c1fdd325351_1_690x491.JPG","created_at":"2017-01-11T22:20:14.866Z","last_posted_at":"2018-03-07T20:34:39.334Z","bumped":true,"bumped_at":"2018-03-07T20:34:39.334Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["setup","tutorial","openhab2"],"views":23006,"like_count":22,"has_summary":false,"archetype":"regular","last_poster_username":"djkswiss","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2531,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":1413,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":3939,"primary_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":22147,"primary_group_id":null}]},{"id":21155,"title":"Astro Items+Sitemap+Map+♈ Binding Example","fancy_title":"Astro Items+Sitemap+Map+:aries: Binding Example","slug":"astro-items-sitemap-map-binding-example","posts_count":73,"reply_count":61,"highest_post_number":82,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/1/1eeccd4f8655b6ac53cfe68fc2a462cdac7ea11c_1_690x225.png","created_at":"2017-01-25T16:43:12.369Z","last_posted_at":"2018-04-18T20:09:01.403Z","bumped":true,"bumped_at":"2018-05-06T12:04:20.905Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["examples","astro"],"views":15084,"like_count":40,"has_summary":true,"archetype":"regular","last_poster_username":"glufonec","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":1072,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":12873,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":16009,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":244,"primary_group_id":null}]},{"id":34509,"title":"NodeMCU based MQTT multi-sensor with OLED display","fancy_title":"NodeMCU based MQTT multi-sensor with OLED display","slug":"nodemcu-based-mqtt-multi-sensor-with-oled-display","posts_count":28,"reply_count":17,"highest_post_number":28,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/b/bd101e68f37778792520af30b1ef8f52cefd2293_1_190x250.JPG","created_at":"2017-09-26T02:16:47.989Z","last_posted_at":"2018-04-21T03:26:37.665Z","bumped":true,"bumped_at":"2018-04-21T03:28:52.377Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["sensor","mqtt","dht22"],"views":4255,"like_count":23,"has_summary":false,"archetype":"regular","last_poster_username":"waspie","category_id":50,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":177,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":16456,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":12873,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":10408,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":11005,"primary_group_id":null}]},{"id":31610,"title":"openHAB integration to Spotify Web Connect API (player)","fancy_title":"openHAB integration to Spotify Web Connect API (player)","slug":"openhab-integration-to-spotify-web-connect-api-player","posts_count":238,"reply_count":165,"highest_post_number":244,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/6/61ff37d476744ff0400d2f4bae131123639548f9_1_690x239.jpg","created_at":"2017-07-14T19:25:25.565Z","last_posted_at":"2018-06-01T05:34:47.217Z","bumped":true,"bumped_at":"2018-06-01T05:57:40.292Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"views":17199,"like_count":27,"has_summary":true,"archetype":"regular","last_poster_username":"dastrix80","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":14009,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":6928,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":21676,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":15409,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":23136,"primary_group_id":null}]},{"id":34843,"title":"Heating Boilerplate - A Universal Temperature Control Solution with Modes","fancy_title":"Heating Boilerplate - A Universal Temperature Control Solution with Modes","slug":"heating-boilerplate-a-universal-temperature-control-solution-with-modes","posts_count":43,"reply_count":27,"highest_post_number":43,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/original/2X/a/a1d198f5ffef932c013cf73f5bffe8f2d803ea88.png","created_at":"2017-10-05T23:50:57.413Z","last_posted_at":"2018-03-23T07:45:22.750Z","bumped":true,"bumped_at":"2018-03-23T07:45:22.750Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["heating","temperature","beginners"],"views":6016,"like_count":35,"has_summary":false,"archetype":"regular","last_poster_username":"reissp","category_id":50,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":1867,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":2051,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":324,"primary_group_id":43},{"extras":"latest","description":"Most Recent Poster","user_id":21752,"primary_group_id":null}]},{"id":30755,"title":"HABPanel Development & Advanced Features: Start Here!","fancy_title":"HABPanel Development & Advanced Features: Start Here!","slug":"habpanel-development-advanced-features-start-here","posts_count":4,"reply_count":6,"highest_post_number":11,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/original/2X/4/41f2475889a0498d15f45a210cb6edcb6c1aa738.png","created_at":"2017-06-29T18:25:28.335Z","last_posted_at":"2017-08-20T21:59:13.314Z","bumped":true,"bumped_at":"2017-08-20T14:45:58.895Z","unseen":false,"pinned":true,"unpinned":null,"excerpt":"This Wiki post aims to be a centralized resource to help new users (and experienced users alike!) with the advanced features in HABPanel. It will contain relevant examples and links to help you with common issues and get…","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"tags":["development","habpanel","reference"],"views":14377,"like_count":36,"has_summary":false,"archetype":"regular","last_poster_username":"ThomDietrich","category_id":51,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":6209,"primary_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":3939,"primary_group_id":42}]},{"id":14914,"title":"Node-RED as a rule/script engine for OpenHAB","fancy_title":"Node-RED as a rule/script engine for OpenHAB","slug":"node-red-as-a-rule-script-engine-for-openhab","posts_count":183,"reply_count":137,"highest_post_number":183,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/e/e92695de73a2f00834af322039d58b29817e7586_1_690x267.png","created_at":"2016-10-06T20:20:57.832Z","last_posted_at":"2018-05-28T05:17:31.967Z","bumped":true,"bumped_at":"2018-05-28T05:17:31.967Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["node-red","rules"],"views":24185,"like_count":50,"has_summary":true,"archetype":"regular","last_poster_username":"krismaussen","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":1747,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":5170,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":6516,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":10107,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":823,"primary_group_id":null}]},{"id":15790,"title":"Design Pattern: Associated Items","fancy_title":"Design Pattern: Associated Items","slug":"design-pattern-associated-items","posts_count":23,"reply_count":15,"highest_post_number":23,"image_url":null,"created_at":"2016-10-26T16:49:24.207Z","last_posted_at":"2017-11-14T15:35:37.998Z","bumped":true,"bumped_at":"2017-11-14T15:35:37.998Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["groups"],"views":5770,"like_count":21,"has_summary":false,"archetype":"regular","last_poster_username":"rlkoshak","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":70,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":10680,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":11331,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":4501,"primary_group_id":null}]},{"id":15557,"title":"Examples of HABPanel Solutions","fancy_title":"Examples of HABPanel Solutions","slug":"examples-of-habpanel-solutions","posts_count":342,"reply_count":255,"highest_post_number":353,"image_url":null,"created_at":"2016-10-21T23:49:08.216Z","last_posted_at":"2018-05-15T15:40:13.236Z","bumped":true,"bumped_at":"2018-05-15T15:40:13.236Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"views":78511,"like_count":291,"has_summary":true,"archetype":"regular","last_poster_username":"salexes","category_id":51,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":1413,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":6209,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":1818,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":21769,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":17691,"primary_group_id":null}]},{"id":15157,"title":"Design Pattern: Sensor Aggregation","fancy_title":"Design Pattern: Sensor Aggregation","slug":"design-pattern-sensor-aggregation","posts_count":12,"reply_count":7,"highest_post_number":12,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/original/3X/0/e/0e1486c9677eba58a01f5fefdbbcee3e55466192.png","created_at":"2016-10-11T20:47:47.158Z","last_posted_at":"2018-03-14T13:53:00.216Z","bumped":true,"bumped_at":"2018-03-14T13:53:00.216Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["presence","designpattern"],"views":4046,"like_count":17,"has_summary":false,"archetype":"regular","last_poster_username":"rlkoshak","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":76,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2051,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1529,"primary_group_id":null}]},{"id":15642,"title":"Imitating the Power Consumption of Lights (and others)","fancy_title":"Imitating the Power Consumption of Lights (and others)","slug":"imitating-the-power-consumption-of-lights-and-others","posts_count":26,"reply_count":20,"highest_post_number":26,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/4/4e3827d3640c8d7b45b07a03141ece3155e29b77_1_300x300.jpeg","created_at":"2016-10-23T19:12:59.719Z","last_posted_at":"2017-02-27T23:45:50.540Z","bumped":true,"bumped_at":"2017-02-27T23:45:50.540Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["power","light"],"views":17598,"like_count":17,"has_summary":false,"archetype":"regular","last_poster_username":"ramsaymike","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":5601,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":2870,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2738,"primary_group_id":null}]},{"id":43883,"title":"HABPanel RELOADED - Modern THEME / SKIN + Custom Widgets","fancy_title":"HABPanel RELOADED - Modern THEME / SKIN + Custom Widgets","slug":"habpanel-reloaded-modern-theme-skin-custom-widgets","posts_count":40,"reply_count":20,"highest_post_number":40,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/3X/4/e/4ee23d614a4e6a9606bc4016c6fb74a98df56e01_1_690x388.png","created_at":"2018-04-19T19:52:26.583Z","last_posted_at":"2018-06-02T23:19:37.480Z","bumped":true,"bumped_at":"2018-06-02T23:19:37.480Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["css","skin","theme"],"views":2580,"like_count":22,"has_summary":false,"archetype":"regular","last_poster_username":"erickk","category_id":51,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":21769,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":13382,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":12647,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":18541,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":16654,"primary_group_id":null}]},{"id":32995,"title":"(Proof-of-concept) Interactive WebGL view with HABPanel & Sweet Home 3D!","fancy_title":"(Proof-of-concept) Interactive WebGL view with HABPanel & Sweet Home 3D!","slug":"proof-of-concept-interactive-webgl-view-with-habpanel-sweet-home-3d","posts_count":10,"reply_count":4,"highest_post_number":10,"image_url":"http://i.imgur.com/ozVRcSF.gif","created_at":"2017-08-08T17:18:59.388Z","last_posted_at":"2018-03-29T20:45:31.912Z","bumped":true,"bumped_at":"2018-03-29T20:45:31.912Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["habpanel","visualisation","3d"],"views":5085,"like_count":20,"has_summary":false,"archetype":"regular","last_poster_username":"viktor_Sc","category_id":51,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":6209,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":1514,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":15965,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1012,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":6335,"primary_group_id":45}]},{"id":33119,"title":"Xiaomi Mi Flora Plant Sensor MQTT Client/Daemon","fancy_title":"Xiaomi Mi Flora Plant Sensor MQTT Client/Daemon","slug":"xiaomi-mi-flora-plant-sensor-mqtt-client-daemon","posts_count":99,"reply_count":77,"highest_post_number":99,"image_url":"https://camo.githubusercontent.com/a1ae4f445a0bc4c28904fadcc05d86b58099abcd/68747470733a2f2f7869616f6d692d6d692e636f6d2f75706c6f6164732f636b2f7869616f6d692d666c6f7765722d6d6f6e69746f722d3030312e6a7067","created_at":"2017-08-10T18:02:57.862Z","last_posted_at":"2018-06-01T19:23:39.542Z","bumped":true,"bumped_at":"2018-06-01T22:38:49.194Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["mqtt","xiaomi","miflora"],"views":8204,"like_count":37,"has_summary":true,"archetype":"regular","last_poster_username":"Klimbim","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":6845,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":9356,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":936,"primary_group_id":43},{"extras":"latest","description":"Most Recent Poster","user_id":23040,"primary_group_id":null}]},{"id":15829,"title":"openHAB2 & MySQL persistence setup","fancy_title":"openHAB2 & MySQL persistence setup","slug":"openhab2-mysql-persistence-setup","posts_count":63,"reply_count":37,"highest_post_number":63,"image_url":null,"created_at":"2016-10-27T15:51:19.314Z","last_posted_at":"2018-05-23T11:26:49.566Z","bumped":true,"bumped_at":"2018-05-23T11:26:49.566Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"views":28636,"like_count":15,"has_summary":true,"archetype":"regular","last_poster_username":"Udo_Hartmann","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":7380,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":7183,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2083,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":9356,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1365,"primary_group_id":null}]},{"id":3417,"title":"Tutorial: Beyond XText, supercharged rules using Jython (openHAB 1)","fancy_title":"Tutorial: Beyond XText, supercharged rules using Jython (openHAB 1)","slug":"tutorial-beyond-xtext-supercharged-rules-using-jython-openhab-1","posts_count":12,"reply_count":5,"highest_post_number":12,"image_url":"https://assets-cdn.github.com/favicon.ico","created_at":"2015-10-17T13:25:59.721Z","last_posted_at":"2017-07-22T01:30:41.231Z","bumped":true,"bumped_at":"2017-07-22T01:30:41.231Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"views":3101,"like_count":14,"has_summary":false,"archetype":"regular","last_poster_username":"rlkoshak","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":1197,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":9,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":183,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1072,"primary_group_id":45},{"extras":"latest","description":"Most Recent Poster","user_id":324,"primary_group_id":43}]},{"id":18127,"title":"[OH2] Control ESP8266 Relay using MQTT Eventbus","fancy_title":"[OH2] Control ESP8266 Relay using MQTT Eventbus","slug":"oh2-control-esp8266-relay-using-mqtt-eventbus","posts_count":24,"reply_count":15,"highest_post_number":24,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/8/8a58fa5e65ecde96cedfd4fbcd2a444831bc32ca_1_253x500.jpg","created_at":"2016-12-12T22:24:41.016Z","last_posted_at":"2018-04-23T10:44:26.053Z","bumped":true,"bumped_at":"2018-04-23T10:44:26.053Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["arduino","esp8266","mqtt"],"views":19158,"like_count":19,"has_summary":false,"archetype":"regular","last_poster_username":"sijah.ak","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":6821,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":9696,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":13628,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":324,"primary_group_id":43},{"extras":"latest","description":"Most Recent Poster","user_id":23381,"primary_group_id":null}]},{"id":35799,"title":"FIND (personalized indoor localization)","fancy_title":"FIND (personalized indoor localization)","slug":"find-personalized-indoor-localization","posts_count":34,"reply_count":20,"highest_post_number":36,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/b/b1e6d65400d29c31ab45acae837382fcbd6bdb3d_1_617x199.JPG","created_at":"2017-11-03T17:27:43.754Z","last_posted_at":"2018-04-29T19:32:17.271Z","bumped":true,"bumped_at":"2018-04-29T19:32:17.271Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["wifi","find"],"views":4362,"like_count":20,"has_summary":false,"archetype":"regular","last_poster_username":"mcqwerty","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":1867,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":11005,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":9654,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":20112,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":12042,"primary_group_id":null}]},{"id":22129,"title":"Anti burglary presence simulation","fancy_title":"Anti burglary presence simulation","slug":"anti-burglary-presence-simulation","posts_count":17,"reply_count":7,"highest_post_number":17,"image_url":null,"created_at":"2017-02-05T17:05:54.872Z","last_posted_at":"2018-05-02T07:22:38.792Z","bumped":true,"bumped_at":"2018-05-02T07:22:38.792Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"views":1912,"like_count":15,"has_summary":false,"archetype":"regular","last_poster_username":"dascrip","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2941,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":14671,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":9393,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":5919,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":19109,"primary_group_id":null}]},{"id":38400,"title":"Nice graphic alarm (Pir sensors) visualization in HABPanel","fancy_title":"Nice graphic alarm (Pir sensors) visualization in HABPanel","slug":"nice-graphic-alarm-pir-sensors-visualization-in-habpanel","posts_count":17,"reply_count":9,"highest_post_number":17,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/c/cf49b6b69d134c94b20d44100e79727e306edc7b_1_527x500.jpg","created_at":"2018-01-07T14:51:52.466Z","last_posted_at":"2018-05-07T16:59:37.025Z","bumped":true,"bumped_at":"2018-05-07T16:59:37.025Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"views":2982,"like_count":24,"has_summary":false,"archetype":"regular","last_poster_username":"Michael_Dot_Woodrum","category_id":51,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":19358,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":3976,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":6209,"primary_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":5175,"primary_group_id":null}]},{"id":29107,"title":"Less than 2 Hours + Less than $200.00 = 2 Garage Doors and 1 Gate Automated + plus one very happy family who can use Alexa to operate","fancy_title":"Less than 2 Hours + Less than $200.00 = 2 Garage Doors and 1 Gate Automated + plus one very happy family who can use Alexa to operate","slug":"less-than-2-hours-less-than-200-00-2-garage-doors-and-1-gate-automated-plus-one-very-happy-family-who-can-use-alexa-to-operate","posts_count":21,"reply_count":13,"highest_post_number":21,"image_url":"https://images-na.ssl-images-amazon.com/images/I/31WTIqBdTIL._SY400_.jpg","created_at":"2017-05-28T17:28:05.803Z","last_posted_at":"2018-02-23T03:31:00.767Z","bumped":true,"bumped_at":"2018-02-23T03:31:00.767Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["tutorial","zwave","beginners"],"views":2100,"like_count":18,"has_summary":false,"archetype":"regular","last_poster_username":"JWilson2835","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":5764,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":13364,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":49,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":8,"primary_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":20560,"primary_group_id":null}]},{"id":14542,"title":"Using NGINX Reverse Proxy (Authentication and HTTPS)","fancy_title":"Using NGINX Reverse Proxy (Authentication and HTTPS)","slug":"using-nginx-reverse-proxy-authentication-and-https","posts_count":54,"reply_count":27,"highest_post_number":54,"image_url":null,"created_at":"2016-09-27T13:40:22.180Z","last_posted_at":"2018-05-27T17:58:00.981Z","bumped":true,"bumped_at":"2018-05-27T17:58:00.981Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["authentication","nginx","openhab2"],"views":36951,"like_count":24,"has_summary":true,"archetype":"regular","last_poster_username":"ikkeT","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":3335,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":11778,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":324,"primary_group_id":43},{"extras":"latest","description":"Most Recent Poster","user_id":5718,"primary_group_id":null}]},{"id":22589,"title":"HowTo: Install Zulu Embedded Java on Raspberry Pi 3","fancy_title":"HowTo: Install Zulu Embedded Java on Raspberry Pi 3","slug":"howto-install-zulu-embedded-java-on-raspberry-pi-3","posts_count":24,"reply_count":15,"highest_post_number":25,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/2X/0/0bf67c0f143039c8425a96d3149cdc8496f66a78_1_690x238.jpg","created_at":"2017-02-10T14:31:34.580Z","last_posted_at":"2018-01-20T14:01:40.272Z","bumped":true,"bumped_at":"2018-01-20T14:13:24.064Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["installation","java","zulu"],"views":12243,"like_count":18,"has_summary":false,"archetype":"regular","last_poster_username":"Benjy","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":6821,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":2369,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":2358,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3939,"primary_group_id":42},{"extras":"latest","description":"Most Recent Poster","user_id":3335,"primary_group_id":42}]},{"id":40822,"title":"Google Home & openHAB connection How-To","fancy_title":"Google Home & openHAB connection How-To","slug":"google-home-openhab-connection-how-to","posts_count":12,"reply_count":8,"highest_post_number":12,"image_url":null,"created_at":"2018-02-27T03:07:17.125Z","last_posted_at":"2018-04-04T18:21:20.938Z","bumped":true,"bumped_at":"2018-04-04T18:52:10.256Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"views":1714,"like_count":13,"has_summary":false,"archetype":"regular","last_poster_username":"StefanH","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":177,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":18648,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":564,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":17158,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":19482,"primary_group_id":null}]},{"id":18171,"title":"iPhone Presence Detection with hping3 and ARP","fancy_title":"iPhone Presence Detection with hping3 and ARP","slug":"iphone-presence-detection-with-hping3-and-arp","posts_count":155,"reply_count":112,"highest_post_number":155,"image_url":null,"created_at":"2016-12-13T20:12:33.651Z","last_posted_at":"2018-01-23T17:23:09.720Z","bumped":true,"bumped_at":"2018-01-23T17:23:09.720Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["iphone","tutorial","exec"],"views":26565,"like_count":37,"has_summary":true,"archetype":"regular","last_poster_username":"Victor3D","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":5011,"primary_group_id":45},{"extras":null,"description":"Frequent Poster","user_id":3939,"primary_group_id":42},{"extras":null,"description":"Frequent Poster","user_id":4074,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":8948,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":20348,"primary_group_id":null}]},{"id":14954,"title":"Design Pattern: Motion Sensor Timer","fancy_title":"Design Pattern: Motion Sensor Timer","slug":"design-pattern-motion-sensor-timer","posts_count":70,"reply_count":52,"highest_post_number":71,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/optimized/3X/2/c/2c1dae4723557cd6e708c83c5b49217ba91c1821_1_666x500.jpg","created_at":"2016-10-07T17:27:17.704Z","last_posted_at":"2018-05-16T01:27:07.047Z","bumped":true,"bumped_at":"2018-05-16T01:27:07.047Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["motiondetection","designpattern","motionsensor"],"views":12318,"like_count":17,"has_summary":true,"archetype":"regular","last_poster_username":"rlkoshak","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":7396,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":9270,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":14346,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":21090,"primary_group_id":null}]},{"id":33267,"title":"Comprehensive Wunderground using HTTP Binding Example","fancy_title":"Comprehensive Wunderground using HTTP Binding Example","slug":"comprehensive-wunderground-using-http-binding-example","posts_count":24,"reply_count":16,"highest_post_number":25,"image_url":"//community-openhab-org.s3-eu-central-1.amazonaws.com/original/2X/f/f4ecb1c72b299e1fe063ab693fd0c5039255ca48.png","created_at":"2017-08-14T18:10:57.564Z","last_posted_at":"2017-11-28T20:57:41.908Z","bumped":true,"bumped_at":"2017-11-28T20:57:41.908Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["weather"],"views":5324,"like_count":23,"has_summary":false,"archetype":"regular","last_poster_username":"Udo_Hartmann","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":null,"description":"Original Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":10999,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":3976,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":12873,"primary_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1365,"primary_group_id":null}]},{"id":14267,"title":"Running openHAB 2 in Docker","fancy_title":"Running openHAB 2 in Docker","slug":"running-openhab-2-in-docker","posts_count":91,"reply_count":62,"highest_post_number":92,"image_url":null,"created_at":"2016-09-19T17:27:12.258Z","last_posted_at":"2018-05-07T01:50:43.737Z","bumped":true,"bumped_at":"2018-05-07T01:50:43.737Z","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":["docker","openhab2"],"views":15227,"like_count":23,"has_summary":true,"archetype":"regular","last_poster_username":"rlkoshak","category_id":10,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":324,"primary_group_id":43},{"extras":null,"description":"Frequent Poster","user_id":6921,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":445,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":16630,"primary_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":13257,"primary_group_id":null}]}]}} \ No newline at end of file diff --git a/.vuepress/public/apple-icon.png b/.vuepress/public/apple-icon.png deleted file mode 100644 index fa6583b6..00000000 Binary files a/.vuepress/public/apple-icon.png and /dev/null differ diff --git a/.vuepress/public/hero.jpg b/.vuepress/public/hero.jpg deleted file mode 100644 index 4569fd65..00000000 Binary files a/.vuepress/public/hero.jpg and /dev/null differ diff --git a/.vuepress/public/hero.png b/.vuepress/public/hero.png deleted file mode 100644 index fd8e10ca..00000000 Binary files a/.vuepress/public/hero.png and /dev/null differ diff --git a/.vuepress/public/keys/public-key-snapshots.asc b/.vuepress/public/keys/public-key-snapshots.asc deleted file mode 100644 index d49a4c74..00000000 --- a/.vuepress/public/keys/public-key-snapshots.asc +++ /dev/null @@ -1,52 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- -Comment: GPGTools - https://gpgtools.org - -mQINBFfYU/IBEAC+gmexEdqVtXsYfD0RvvAZtiGZ6hvq+T0CyxL4eKsDQbwp2HHC -+daNdvfunVMRRxe4ZLyohIpQbdYG3dPuEvQ4WG74Oqiz3nOsd8r/A8DcLeQpAnPO -w7B281p4CIIxOkr9GxIXVHqM/7IbYmp0aMEr0N3ziFrw2EBs7dhEc/koNtzo70SV -tCFQDrGDfu3tz8fM4efEp490VnSzI0iwLzKoYLCOAL0ifPYFajZ5cZfDLBMFpZMN -moGf0gZQv3aVKy+cZ/hZvGI6tXuFkDW1XlZgDV9wPN+bALc7nZXg44Z/PGmxpFUM -2Se0CTroX/pQjdyVxEi7kYqd27UpR+PD9dMuMbJLRNEeU/L3xpNV6YbmEUu1OBP+ -3ecjqRSRHOyXuralQwdBRBEtHl475MsCVKfPriFaSJr3MqVw72JyxF7KBiaA6msE -QdF+ZXJUfH6WDKwtnJoRC6L6ostmtIDurB3GnEOVCydRceJIEecjlTMvOrX3whR0 -1LyZhsJYcaNHsyVtoB7JTtS3pwRiCG1aXr11Plz0QdqDoNklXrsZbiBbpms1TXSY -kQ6EhFhe2VoiHgUodlh6W2A599mQKLsG7E1C72I2qxbZVw3EI2fQLvZDcQM/5smO -emLXqUZNJ1FHwh488tTp3xL7C+m8WsMKZ27oDCEifMXCDiQf48/t4aFUlwARAQAB -tDFvcGVuSEFCIFNuYXBzaG90IFJlcG9zaXRvcmllcyA8b3duZXJAb3BlbmhhYi5v -cmc+iQI9BBMBCgAnBQJX2FPyAhsDBQkHhh+ABQsJCAcDBRUKCQgLBRYCAwEAAh4B -AheAAAoJEPg0/k7qwRg6xoQQAKnPZmgj49Bh3wgpafS9Hb2yOSIAumVI6FKmSVMl -SvKvYLW62PrVQLEWkyyDx2RiGSjlbfpkMg9kBd9NV8H8s48rBnPb7BdwXnpVqxLq -Dwdf7DXgxzKeTfu4khXYPDOQ73Zmxy61bgwRbG7+PSvOwJM7lxma1Inka3O0OXaO -Uxr1KD73Dvta7G7cp+2kE21i2G34Zi8kCzC81OCR2XeHc+s16WyEBHqxxpliLW2h -PFz/jv5QQeqiU+1889THBMRv4Bf9Crhv1wYiyFBLj4FK4eLiaDsGKuxrd6sDR+iJ -eilU202aN5NnbaqqRBHS1DrvN5p103yyscGtsUQEpL6Px7brOyNFHRPvKhLS3Dya -Rmq76E664yX9pTUSBM7n6k9+Z8u4lmum6NVmfmrLkfeiTYsUTLqCksVN0kvvb+TT -UnJA5T3hPex+DkNSt2vpkURD8uEol+scOwXuCC7FBlgVRcqDVyqdgGYo3Nr2Z3/B -d4Bd+GILVfwMlw1l1W/HXUx0uHywm9UHeKWY1P3FQ+CPkV9xBw6wUhMZLrgNKZc2 -cXZzdo7quD7ElKJxPtZDdfC0Z7JGRmV0wBkZicUabqtNTvofe1VKqkMYp7yTUSBC -o0WDLG3NkiOjVFV5jkLZYugKAGNu2uTMDcw1mh6KAq/kBGTSf6wiEFjPf1hd4Lth -JGu4uQINBFfYU/IBEADJ0/xzSxAn5F3QKo0cCRE6OkU8RymsZetxXFfb+Lfcib4x -tWlKKCK/ZNFyqheNMEYYB1qPVlgas0fKAdIsWjOB5r0MqCiGqTFukfSX4OS5C7d8 -C4DxxVI2N5JC0xzNGpCTsQFZX+johuvaf+FNrxrHD4OXCzIOTNa9XWHAH3dp5+ej -bGHW19afyZnCsO5rn42iDKGkkRX7TmPxq06BwV/mckUm4L72OfK8dJypwK9lrHaN -mYf82FB+YE2N/OC1dhqU/38MT63waSIvBJ37U6si9Nb2oxuUvdLaYeUNyx3kz79e -Rqgsu5ax+3h+YmXp4dbsl9JyJ7sl7Oe4/gKvM/LUcdEsYZTeyBiJe7MTdySHleHT -+RR+917IJF5FTIlCEsLMhfxgMVtAg0/Yo8apG9Op8bsyMsT0QsSbRFIkvrtGJRfa -YUxYloA5RM9xGXfoZBqNVbQ4z4UeiwD/8vNmw1EbIj+7i9ZnMWfiU6qMfkFhh++Y -cYesECdTUODo/7FU89M02XLH5Udw3OLGfSEkJA1Mc9kB2lI6AeyPwcofvvtySk+N -hRStXyDswOsQ0dTi8U9BYmQDf50SUTnJTADwL+a6uM976WPSDGd+m799vn6gtL3b -180b7STy7w+GGMUShZqK8T3NgtlcSQ316psVjPSnjyWKDGCbnnVT016b6RdzXQAR -AQABiQIlBBgBCgAPBQJX2FPyAhsMBQkHhh+AAAoJEPg0/k7qwRg6JJkP/3MsgUwZ -genNvqByS80ZPntv5MVBYg7lvh1Ua1ZgYfo42sguT1FhFKP7caqa8nL63Sg5R0Gl -4ByRTAGrhe16L+aL1fSj0N8QYcsgJ3xAT5Cxd2Avj7tVEtIchO4Bx3AChQZUt8Ic -IvRyo60KZsjOJSOrm5U6hasNnMerpl/yWRboU5UKXlzO35sbsrZmq/1bV9laOznN -W6N60iSfveMmpkJLQ2sIHdb+XerzgsdjYfoP0IjyVD5kO/3GRVka+ppfLG8UcsXk -Rwoc96jwD6WWV4ObMVnLs7Q4sbjJrX3SgjEXKfxUIK5qRJZYqlcgTk5s7AFZwOGj -Ws3VfTUvGwc67zXaqa1R6S+QWeeYIxEwXP31Pl32LwgosS6R7J6vL/rbKvx/COV3 -1ee7JYteHI4XoJq6NHu7NtvMv24hdWchvLxWnhI3fmuu7Lm47BnZuBg1bPpSZpIN -yDnflIcUuxeuQUePqiZlaRuMpv+ijR+fggbH3HIQGjIp+FE7RsOOVv2qpDWSUT5t -lpGuitV6CKgsptlRAS6Qge7Uz57tbsU4NkDbL/KXJ6ChdbBJSbMbFa6zxlql3odf -dU3huM+1GaVjtOz1/4D5lygm51F0jrmVsihDyQ6MDsFVLYLtnZpWZSSoy0JpMcHk -PI1hRSRua4q1RpCwWJZnAoqBpfvLw8CSv23x -=Ncnw ------END PGP PUBLIC KEY BLOCK----- diff --git a/.vuepress/public/oauth/innogy/css/styles.css b/.vuepress/public/oauth/innogy/css/styles.css deleted file mode 100644 index 7198b547..00000000 --- a/.vuepress/public/oauth/innogy/css/styles.css +++ /dev/null @@ -1,44 +0,0 @@ -body { - background-color: #FAFAFA; - padding-top: 25px; -} - -h1 { - color: #ff6600; -} - -#logo { - width: 150px; - margin: 10px; -} - -.container { - text-align: center; -} - -form { - margin: 30px auto 0px; - max-width: 500px; -} - -form h3 { - margin-top: 30px; -} - -.btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary, .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled:active, .btn-primary[disabled]:active, fieldset[disabled] .btn-primary:active, .btn-primary.disabled.active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary.active { - background-color: #ff6600; - border-color: #AB4500; -} - -footer { - position: fixed; - bottom: 0px; - text-align: center; -} - -.image { - display: block; - margin-left: auto; - margin-right: auto; - padding-top: 20px; -} \ No newline at end of file diff --git a/.vuepress/public/oauth/innogy/fonts/glyphicons-halflings-regular.eot b/.vuepress/public/oauth/innogy/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index 4a4ca865..00000000 Binary files a/.vuepress/public/oauth/innogy/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/.vuepress/public/oauth/innogy/fonts/glyphicons-halflings-regular.svg b/.vuepress/public/oauth/innogy/fonts/glyphicons-halflings-regular.svg deleted file mode 100644 index e3e2dc73..00000000 --- a/.vuepress/public/oauth/innogy/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.vuepress/public/oauth/innogy/fonts/glyphicons-halflings-regular.ttf b/.vuepress/public/oauth/innogy/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 67fa00bf..00000000 Binary files a/.vuepress/public/oauth/innogy/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/.vuepress/public/oauth/innogy/fonts/glyphicons-halflings-regular.woff b/.vuepress/public/oauth/innogy/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 8c54182a..00000000 Binary files a/.vuepress/public/oauth/innogy/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/.vuepress/public/oauth/innogy/img/favicon.ico b/.vuepress/public/oauth/innogy/img/favicon.ico deleted file mode 100644 index 070fbb11..00000000 Binary files a/.vuepress/public/oauth/innogy/img/favicon.ico and /dev/null differ diff --git a/.vuepress/public/oauth/innogy/img/openhab-logo.png b/.vuepress/public/oauth/innogy/img/openhab-logo.png deleted file mode 100644 index 034d76f7..00000000 Binary files a/.vuepress/public/oauth/innogy/img/openhab-logo.png and /dev/null differ diff --git a/.vuepress/public/oauth/innogy/img/shc-config-innogy-smarthome.png b/.vuepress/public/oauth/innogy/img/shc-config-innogy-smarthome.png deleted file mode 100644 index 9150f5fe..00000000 Binary files a/.vuepress/public/oauth/innogy/img/shc-config-innogy-smarthome.png and /dev/null differ diff --git a/.vuepress/public/oauth/innogy/img/shc-config-smarthome-austria.png b/.vuepress/public/oauth/innogy/img/shc-config-smarthome-austria.png deleted file mode 100644 index c8ebff07..00000000 Binary files a/.vuepress/public/oauth/innogy/img/shc-config-smarthome-austria.png and /dev/null differ diff --git a/.vuepress/public/oauth/innogy/img/shc-config-start-smarthome.png b/.vuepress/public/oauth/innogy/img/shc-config-start-smarthome.png deleted file mode 100644 index aa34d5e9..00000000 Binary files a/.vuepress/public/oauth/innogy/img/shc-config-start-smarthome.png and /dev/null differ diff --git a/.vuepress/public/oauth/innogy/innogy-smarthome.html b/.vuepress/public/oauth/innogy/innogy-smarthome.html deleted file mode 100644 index e322dcfa..00000000 --- a/.vuepress/public/oauth/innogy/innogy-smarthome.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - openHAB innogy SmartHome Binding - - - - - - - - - - - - - - - - -
- -

openHAB innogy SmartHome Binding

-
-

Authenticated successfully. innogy SmartHome OAuth service returned the following authcode:

-
-
-

Authorization failed or skipped.

-

Authorization failed. Please try to execute the authorization process again.

-

More information can be found at https://www.openhab.org/addons/bindings/innogysmarthome/

-
- -
-
- - -
-

Please copy the authcode into the Thing configuration of your SmartHome Controller.

-

Remember to set the brand to "innogy SmartHome".

- - -
- -



innogy SmartHome Binding

-
- - \ No newline at end of file diff --git a/.vuepress/public/oauth/innogy/js/script.js b/.vuepress/public/oauth/innogy/js/script.js deleted file mode 100644 index 68cc7080..00000000 --- a/.vuepress/public/oauth/innogy/js/script.js +++ /dev/null @@ -1,40 +0,0 @@ -$.extend({ - getUrlVars: function(){ - var vars = [], hash; - var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); - for(var i = 0; i < hashes.length; i++) - { - hash = hashes[i].split('='); - vars.push(hash[0]); - vars[hash[0]] = hash[1]; - } - return vars; - }, - getUrlVar: function(name){ - return $.getUrlVars()[name]; - } -}); - -$(function() { - var code = $.getUrlVar('code'); - - if(code) { - onAuthenticationSuccessful(code); - } else { - onAuthenticationFailed(); - } -}); - -function onAuthenticationSuccessful(code) { - $('#error-text').hide(); - - $('#code').val(code); - - $('#code').select(); -} - -function onAuthenticationFailed() { - $('#success-text').hide(); - $('form').hide(); - $('#screenshot').hide(); -} \ No newline at end of file diff --git a/.vuepress/public/oauth/innogy/smarthome-austria.html b/.vuepress/public/oauth/innogy/smarthome-austria.html deleted file mode 100644 index 12f3aac3..00000000 --- a/.vuepress/public/oauth/innogy/smarthome-austria.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - openHAB innogy SmartHome Binding - - - - - - - - - - - - - - - - -
- -

openHAB innogy SmartHome Binding

-

(for SmartHome Austria brand)

-
-

Authenticated successfully. SmartHome Austria OAuth service returned the following authcode:

-
-
-

Authorization failed or skipped.

-

Authorization failed. Please try to execute the authorization process again.

-

More information can be found at https://www.openhab.org/addons/bindings/innogysmarthome/

-
- -
-
- - -
-

Please copy the authcode into the Thing configuration of your SmartHome Controller.

-

Remember to set the brand to "SmartHome Austria".

- - -
- -



innogy SmartHome Binding

-
- - \ No newline at end of file diff --git a/.vuepress/public/oauth/innogy/start-smarthome.html b/.vuepress/public/oauth/innogy/start-smarthome.html deleted file mode 100644 index 64e5b80c..00000000 --- a/.vuepress/public/oauth/innogy/start-smarthome.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - openHAB innogy SmartHome Binding - - - - - - - - - - - - - - - - -
- -

openHAB innogy SmartHome Binding

-

(for Start SmartHome brand)

-
-

Authenticated successfully. Start SmartHome OAuth service returned the following authcode:

-
-
-

Authorization failed or skipped.

-

Authorization failed. Please try to execute the authorization process again.

-

More information can be found at https://www.openhab.org/addons/bindings/innogysmarthome/

-
- -
-
- - -
-

Please copy the authcode into the Thing configuration of your SmartHome Controller.

-

Remember to set the brand to "Start SmartHome".

- - -
- -



innogy SmartHome Binding

-
- - \ No newline at end of file diff --git a/.vuepress/public/oauth/withings/css/styles.css b/.vuepress/public/oauth/withings/css/styles.css deleted file mode 100644 index 6c12509e..00000000 --- a/.vuepress/public/oauth/withings/css/styles.css +++ /dev/null @@ -1,37 +0,0 @@ -body { - background-color: #FAFAFA; - padding-top: 25px; -} - -h1 { - color: #ff6600; -} - -#logo { - width: 150px; - margin: 10px; -} - -.container { - text-align: center; -} - -form { - margin: 30px auto 0px; - max-width: 500px; -} - -form h3 { - margin-top: 30px; -} - -.btn-primary.disabled, .btn-primary[disabled], fieldset[disabled] .btn-primary, .btn-primary.disabled:hover, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary:hover, .btn-primary.disabled:focus, .btn-primary[disabled]:focus, fieldset[disabled] .btn-primary:focus, .btn-primary.disabled:active, .btn-primary[disabled]:active, fieldset[disabled] .btn-primary:active, .btn-primary.disabled.active, .btn-primary[disabled].active, fieldset[disabled] .btn-primary.active { - background-color: #ff6600; - border-color: #AB4500; -} - -footer { - position: fixed; - bottom: 0px; - text-align: center; -} \ No newline at end of file diff --git a/.vuepress/public/oauth/withings/fonts/glyphicons-halflings-regular.eot b/.vuepress/public/oauth/withings/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index 4a4ca865..00000000 Binary files a/.vuepress/public/oauth/withings/fonts/glyphicons-halflings-regular.eot and /dev/null differ diff --git a/.vuepress/public/oauth/withings/fonts/glyphicons-halflings-regular.svg b/.vuepress/public/oauth/withings/fonts/glyphicons-halflings-regular.svg deleted file mode 100644 index e3e2dc73..00000000 --- a/.vuepress/public/oauth/withings/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.vuepress/public/oauth/withings/fonts/glyphicons-halflings-regular.ttf b/.vuepress/public/oauth/withings/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 67fa00bf..00000000 Binary files a/.vuepress/public/oauth/withings/fonts/glyphicons-halflings-regular.ttf and /dev/null differ diff --git a/.vuepress/public/oauth/withings/fonts/glyphicons-halflings-regular.woff b/.vuepress/public/oauth/withings/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 8c54182a..00000000 Binary files a/.vuepress/public/oauth/withings/fonts/glyphicons-halflings-regular.woff and /dev/null differ diff --git a/.vuepress/public/oauth/withings/img/favicon.ico b/.vuepress/public/oauth/withings/img/favicon.ico deleted file mode 100644 index 070fbb11..00000000 Binary files a/.vuepress/public/oauth/withings/img/favicon.ico and /dev/null differ diff --git a/.vuepress/public/oauth/withings/img/openhab-logo.png b/.vuepress/public/oauth/withings/img/openhab-logo.png deleted file mode 100644 index 034d76f7..00000000 Binary files a/.vuepress/public/oauth/withings/img/openhab-logo.png and /dev/null differ diff --git a/.vuepress/public/oauth/withings/index.html b/.vuepress/public/oauth/withings/index.html deleted file mode 100644 index 0d93520c..00000000 --- a/.vuepress/public/oauth/withings/index.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - openHAB Withings Binding - - - - - - - - - - - - - - - - -
- -

openHAB Withings Binding

-
-

Authenticated successfully. Withings OAuth Service returned the following parameters:

-
-
-

Authorization failed or skipped.

-

Authorization failed. Please try to execute the authorization process again.

-

More information can be found at https://www.openhab.org/addons/bindings/withings1/

-
- -
-
- - -
-
- - -
-

Please copy the following line into your openHAB console:

-
- -
- - -



Withings Binding

-
- - \ No newline at end of file diff --git a/.vuepress/public/oauth/withings/js/script.js b/.vuepress/public/oauth/withings/js/script.js deleted file mode 100644 index c2f2f245..00000000 --- a/.vuepress/public/oauth/withings/js/script.js +++ /dev/null @@ -1,42 +0,0 @@ -$.extend({ - getUrlVars: function(){ - var vars = [], hash; - var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); - for(var i = 0; i < hashes.length; i++) - { - hash = hashes[i].split('='); - vars.push(hash[0]); - vars[hash[0]] = hash[1]; - } - return vars; - }, - getUrlVar: function(name){ - return $.getUrlVars()[name]; - } -}); - -$(function() { - var oAuthVerifier = $.getUrlVar('oauth_verifier'); - var userId = $.getUrlVar('userid'); - - if(oAuthVerifier && userId) { - onAuthenticationSuccessful(oAuthVerifier, userId); - } else { - onAuthenticationFailed(); - } -}); - -function onAuthenticationSuccessful(oAuthVerifier, userId) { - $('#error-text').hide(); - - $('#oauth-verifier').val(oAuthVerifier); - $('#user-id').val(userId); - - $('#console-command').val('withings:finishAuthentication "'+oAuthVerifier+'" "'+userId+'"'); - $('#console-command').select(); -} - -function onAuthenticationFailed() { - $('#success-text').hide(); - $('form').hide(); -} \ No newline at end of file diff --git a/.vuepress/public/openhab-pebble/LICENSE b/.vuepress/public/openhab-pebble/LICENSE deleted file mode 100644 index 8f71f43f..00000000 --- a/.vuepress/public/openhab-pebble/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/.vuepress/public/openhab-pebble/README.md b/.vuepress/public/openhab-pebble/README.md deleted file mode 100644 index 414a62fa..00000000 --- a/.vuepress/public/openhab-pebble/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# openHAB -Configuration page for Pebble openHAB client diff --git a/.vuepress/public/openhab-pebble/index.html b/.vuepress/public/openhab-pebble/index.html deleted file mode 100644 index 1034cf25..00000000 --- a/.vuepress/public/openhab-pebble/index.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - openHAB - - - - - - - -
-
-

openHAB

-
- -
- -

URL (e.g. http://openhab.example.org:8080)

-
-
- - -
- -
- - -
-

Local URL is for use within the home network. Remote URL is optional for use over the Internet when away from home.

-
- -

Authentication (if required)

-
-
- - -
- -
- - -
-
- -
- - - -

If you don't choose a Pebble specific sitemap, and more than one exists for your server, the sitemap selection menu will be displayed. To bring up the sitemap selection menu on Pebble from any menu screen, long press the SELECT button.

-
- -
- - - -

If enabled, voice commands will show a confirmation screen on the watch before being sent to openHAB.

-
- -
- - - -

Copy this token to use it with the Pebble action in openHAB. Field is read only.

-
- -
-
-
-
-
-
-

openHAB Pebble application by Richard Lee and others (see https://github.com/openhab/openhab.pebble/blob/master/AUTHORS for full list)

-

PebbleKit JS Configuration Utility by Cherie Williams, et al http://github.com/pebble-hacks

-

Thanks to Alex Bartis for inspiration http://www.alexbartis.com

-
-
-
- - - diff --git a/.vuepress/public/os/alpine.svg b/.vuepress/public/os/alpine.svg deleted file mode 100644 index 0aa818ad..00000000 --- a/.vuepress/public/os/alpine.svg +++ /dev/null @@ -1,35 +0,0 @@ - -image/svg+xml \ No newline at end of file diff --git a/.vuepress/public/os/aosc.svg b/.vuepress/public/os/aosc.svg deleted file mode 100644 index 4fb4bfee..00000000 --- a/.vuepress/public/os/aosc.svg +++ /dev/null @@ -1,67 +0,0 @@ - - - Logo of Anthon OS4 Project - - - - - image/svg+xml - - Logo of Anthon OS4 Project - - - Junde Yi - - - - - - - Jeff Bai, Icenowy Zheng, Junde Yi - - - - - Anthon Open Source Community - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/apple.svg b/.vuepress/public/os/apple.svg deleted file mode 100644 index b0752d8c..00000000 --- a/.vuepress/public/os/apple.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - diff --git a/.vuepress/public/os/archlinux.svg b/.vuepress/public/os/archlinux.svg deleted file mode 100644 index 8b89280d..00000000 --- a/.vuepress/public/os/archlinux.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/centos.svg b/.vuepress/public/os/centos.svg deleted file mode 100644 index f3dfc632..00000000 --- a/.vuepress/public/os/centos.svg +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/coreos.svg b/.vuepress/public/os/coreos.svg deleted file mode 100644 index 228040df..00000000 --- a/.vuepress/public/os/coreos.svg +++ /dev/null @@ -1,24 +0,0 @@ - -image/svg+xml \ No newline at end of file diff --git a/.vuepress/public/os/debian.svg b/.vuepress/public/os/debian.svg deleted file mode 100644 index d9ce5b4c..00000000 --- a/.vuepress/public/os/debian.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - diff --git a/.vuepress/public/os/docker.svg b/.vuepress/public/os/docker.svg deleted file mode 100644 index 6254e27c..00000000 --- a/.vuepress/public/os/docker.svg +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/elementary.svg b/.vuepress/public/os/elementary.svg deleted file mode 100644 index 7ff2b804..00000000 --- a/.vuepress/public/os/elementary.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - Gentoo Logo Dark v1.0 - - - - - image/svg+xml - - Gentoo Logo Dark v1.0 - 2011-06-03 - - - Sebastian Pipping <sping@gentoo.org> - - - - - Lennart Andre Rolland, Gentoo Foundation Inc. - - - - - Gentoo Foundation Inc. - - - - - Lennart Andre Rolland for original vector version, idea for dark version and specific RGB value by unknown person - - - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/fedora-inverse.svg b/.vuepress/public/os/fedora-inverse.svg deleted file mode 100644 index 568a0acf..00000000 --- a/.vuepress/public/os/fedora-inverse.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/fedora.svg b/.vuepress/public/os/fedora.svg deleted file mode 100644 index 1aa2bfa8..00000000 --- a/.vuepress/public/os/fedora.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/freebsd.svg b/.vuepress/public/os/freebsd.svg deleted file mode 100644 index 96bd0c09..00000000 --- a/.vuepress/public/os/freebsd.svg +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/.vuepress/public/os/gentoo.svg b/.vuepress/public/os/gentoo.svg deleted file mode 100644 index 5c0a7e92..00000000 --- a/.vuepress/public/os/gentoo.svg +++ /dev/null @@ -1,76 +0,0 @@ - - - Gentoo Logo Dark v1.0 - - - - - image/svg+xml - - Gentoo Logo Dark v1.0 - 2011-06-03 - - - Sebastian Pipping <sping@gentoo.org> - - - - - Lennart Andre Rolland, Gentoo Foundation Inc. - - - - - Gentoo Foundation Inc. - - - - - Lennart Andre Rolland for original vector version, idea for dark version and specific RGB value by unknown person - - - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/linuxmint-inverse.svg b/.vuepress/public/os/linuxmint-inverse.svg deleted file mode 100644 index e6e232ee..00000000 --- a/.vuepress/public/os/linuxmint-inverse.svg +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/linuxmint.svg b/.vuepress/public/os/linuxmint.svg deleted file mode 100644 index a0a9e2d4..00000000 --- a/.vuepress/public/os/linuxmint.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/mageia.svg b/.vuepress/public/os/mageia.svg deleted file mode 100644 index 2d393c83..00000000 --- a/.vuepress/public/os/mageia.svg +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/mandriva.svg b/.vuepress/public/os/mandriva.svg deleted file mode 100644 index 157ce972..00000000 --- a/.vuepress/public/os/mandriva.svg +++ /dev/null @@ -1,300 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/manjaro.svg b/.vuepress/public/os/manjaro.svg deleted file mode 100644 index 358cab13..00000000 --- a/.vuepress/public/os/manjaro.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/.vuepress/public/os/nixos.svg b/.vuepress/public/os/nixos.svg deleted file mode 100644 index e4a59d60..00000000 --- a/.vuepress/public/os/nixos.svg +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/opensuse.svg b/.vuepress/public/os/opensuse.svg deleted file mode 100644 index 9576fa6e..00000000 --- a/.vuepress/public/os/opensuse.svg +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/pine64.png b/.vuepress/public/os/pine64.png deleted file mode 100644 index 34177b08..00000000 Binary files a/.vuepress/public/os/pine64.png and /dev/null differ diff --git a/.vuepress/public/os/raspberry-pi.svg b/.vuepress/public/os/raspberry-pi.svg deleted file mode 100644 index 68f4b3cc..00000000 --- a/.vuepress/public/os/raspberry-pi.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - diff --git a/.vuepress/public/os/redhat.svg b/.vuepress/public/os/redhat.svg deleted file mode 100644 index 154f5023..00000000 --- a/.vuepress/public/os/redhat.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/.vuepress/public/os/sabayon.svg b/.vuepress/public/os/sabayon.svg deleted file mode 100644 index 89e14261..00000000 --- a/.vuepress/public/os/sabayon.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - diff --git a/.vuepress/public/os/slackware-inverse.svg b/.vuepress/public/os/slackware-inverse.svg deleted file mode 100644 index 019ca166..00000000 --- a/.vuepress/public/os/slackware-inverse.svg +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/.vuepress/public/os/slackware.svg b/.vuepress/public/os/slackware.svg deleted file mode 100644 index 8a65ad17..00000000 --- a/.vuepress/public/os/slackware.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - diff --git a/.vuepress/public/os/tux.svg b/.vuepress/public/os/tux.svg deleted file mode 100644 index fde190c9..00000000 --- a/.vuepress/public/os/tux.svg +++ /dev/null @@ -1,182 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.vuepress/public/os/ubuntu-inverse.svg b/.vuepress/public/os/ubuntu-inverse.svg deleted file mode 100644 index 34471adb..00000000 --- a/.vuepress/public/os/ubuntu-inverse.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/.vuepress/public/os/ubuntu.svg b/.vuepress/public/os/ubuntu.svg deleted file mode 100644 index aa68274c..00000000 --- a/.vuepress/public/os/ubuntu.svg +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - image/svg+xml - - - - - - - - - - - diff --git a/.vuepress/public/os/win10.svg b/.vuepress/public/os/win10.svg deleted file mode 100644 index 00c2baf8..00000000 --- a/.vuepress/public/os/win10.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/.vuepress/public/uploads/.gitkeep b/.vuepress/public/uploads/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/.vuepress/public/uploads/2016-05_building.jpg b/.vuepress/public/uploads/2016-05_building.jpg deleted file mode 100644 index 9795b0bd..00000000 Binary files a/.vuepress/public/uploads/2016-05_building.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2016-05_ds.jpg b/.vuepress/public/uploads/2016-05_ds.jpg deleted file mode 100644 index c68e9d41..00000000 Binary files a/.vuepress/public/uploads/2016-05_ds.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2016-05_echo.jpg b/.vuepress/public/uploads/2016-05_echo.jpg deleted file mode 100644 index b4d1379b..00000000 Binary files a/.vuepress/public/uploads/2016-05_echo.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2016-05_esh-stats.png b/.vuepress/public/uploads/2016-05_esh-stats.png deleted file mode 100644 index 5347c2d8..00000000 Binary files a/.vuepress/public/uploads/2016-05_esh-stats.png and /dev/null differ diff --git a/.vuepress/public/uploads/2016-05_paperui.png b/.vuepress/public/uploads/2016-05_paperui.png deleted file mode 100644 index 1dc4bbc2..00000000 Binary files a/.vuepress/public/uploads/2016-05_paperui.png and /dev/null differ diff --git a/.vuepress/public/uploads/2016-12_appstore.jpg b/.vuepress/public/uploads/2016-12_appstore.jpg deleted file mode 100644 index e97fb54d..00000000 Binary files a/.vuepress/public/uploads/2016-12_appstore.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2016-12_bintray.png b/.vuepress/public/uploads/2016-12_bintray.png deleted file mode 100644 index 34ba523f..00000000 Binary files a/.vuepress/public/uploads/2016-12_bintray.png and /dev/null differ diff --git a/.vuepress/public/uploads/2016-12_demo.png b/.vuepress/public/uploads/2016-12_demo.png deleted file mode 100644 index b6d018b7..00000000 Binary files a/.vuepress/public/uploads/2016-12_demo.png and /dev/null differ diff --git a/.vuepress/public/uploads/2016-12_forum.png b/.vuepress/public/uploads/2016-12_forum.png deleted file mode 100644 index f1bae977..00000000 Binary files a/.vuepress/public/uploads/2016-12_forum.png and /dev/null differ diff --git a/.vuepress/public/uploads/2016-12_jenkins.png b/.vuepress/public/uploads/2016-12_jenkins.png deleted file mode 100644 index 26d229c4..00000000 Binary files a/.vuepress/public/uploads/2016-12_jenkins.png and /dev/null differ diff --git a/.vuepress/public/uploads/2016-12_myopenhab.png b/.vuepress/public/uploads/2016-12_myopenhab.png deleted file mode 100644 index 04125a76..00000000 Binary files a/.vuepress/public/uploads/2016-12_myopenhab.png and /dev/null differ diff --git a/.vuepress/public/uploads/2016-12_pebblestore.jpg b/.vuepress/public/uploads/2016-12_pebblestore.jpg deleted file mode 100644 index d9caaab7..00000000 Binary files a/.vuepress/public/uploads/2016-12_pebblestore.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2016-12_playstore.jpg b/.vuepress/public/uploads/2016-12_playstore.jpg deleted file mode 100644 index 03b124f0..00000000 Binary files a/.vuepress/public/uploads/2016-12_playstore.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2016-12_takeoff.jpg b/.vuepress/public/uploads/2016-12_takeoff.jpg deleted file mode 100644 index 4e4c9f0d..00000000 Binary files a/.vuepress/public/uploads/2016-12_takeoff.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2016_01_preview.jpg b/.vuepress/public/uploads/2016_01_preview.jpg deleted file mode 100644 index 8acb8dd7..00000000 Binary files a/.vuepress/public/uploads/2016_01_preview.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-01_hardware.jpg b/.vuepress/public/uploads/2017-01_hardware.jpg deleted file mode 100644 index 03c547e3..00000000 Binary files a/.vuepress/public/uploads/2017-01_hardware.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-01_openhab2.jpg b/.vuepress/public/uploads/2017-01_openhab2.jpg deleted file mode 100644 index 24dcec1f..00000000 Binary files a/.vuepress/public/uploads/2017-01_openhab2.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-01_tech.png b/.vuepress/public/uploads/2017-01_tech.png deleted file mode 100644 index c289e249..00000000 Binary files a/.vuepress/public/uploads/2017-01_tech.png and /dev/null differ diff --git a/.vuepress/public/uploads/2017-01_uis.jpg b/.vuepress/public/uploads/2017-01_uis.jpg deleted file mode 100644 index e290e4a7..00000000 Binary files a/.vuepress/public/uploads/2017-01_uis.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-01_uis2.jpg b/.vuepress/public/uploads/2017-01_uis2.jpg deleted file mode 100644 index 19a2fb04..00000000 Binary files a/.vuepress/public/uploads/2017-01_uis2.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-05_googlephotos.jpg b/.vuepress/public/uploads/2017-05_googlephotos.jpg deleted file mode 100644 index 61207bfe..00000000 Binary files a/.vuepress/public/uploads/2017-05_googlephotos.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-05_hda.jpg b/.vuepress/public/uploads/2017-05_hda.jpg deleted file mode 100644 index ef0f0eb8..00000000 Binary files a/.vuepress/public/uploads/2017-05_hda.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-05_members.jpg b/.vuepress/public/uploads/2017-05_members.jpg deleted file mode 100644 index f91c9874..00000000 Binary files a/.vuepress/public/uploads/2017-05_members.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-05_smarthomeday.jpg b/.vuepress/public/uploads/2017-05_smarthomeday.jpg deleted file mode 100644 index 0ba6be9c..00000000 Binary files a/.vuepress/public/uploads/2017-05_smarthomeday.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-10_googlephotos.jpg b/.vuepress/public/uploads/2017-10_googlephotos.jpg deleted file mode 100644 index fd8f97e4..00000000 Binary files a/.vuepress/public/uploads/2017-10_googlephotos.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-10_shd_overview.jpg b/.vuepress/public/uploads/2017-10_shd_overview.jpg deleted file mode 100644 index 5cc4b1f4..00000000 Binary files a/.vuepress/public/uploads/2017-10_shd_overview.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-10_smarthomeday.jpg b/.vuepress/public/uploads/2017-10_smarthomeday.jpg deleted file mode 100644 index 6cc01b98..00000000 Binary files a/.vuepress/public/uploads/2017-10_smarthomeday.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-12_homebuilder.png b/.vuepress/public/uploads/2017-12_homebuilder.png deleted file mode 100644 index 4a4a4639..00000000 Binary files a/.vuepress/public/uploads/2017-12_homebuilder.png and /dev/null differ diff --git a/.vuepress/public/uploads/2017-12_icloud.png b/.vuepress/public/uploads/2017-12_icloud.png deleted file mode 100644 index 319030a7..00000000 Binary files a/.vuepress/public/uploads/2017-12_icloud.png and /dev/null differ diff --git a/.vuepress/public/uploads/2017-12_logo.jpg b/.vuepress/public/uploads/2017-12_logo.jpg deleted file mode 100644 index 0a2e92a1..00000000 Binary files a/.vuepress/public/uploads/2017-12_logo.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/2017-12_openhabian.png b/.vuepress/public/uploads/2017-12_openhabian.png deleted file mode 100644 index 7fabe044..00000000 Binary files a/.vuepress/public/uploads/2017-12_openhabian.png and /dev/null differ diff --git a/.vuepress/public/uploads/2017-12_vscodeext.gif b/.vuepress/public/uploads/2017-12_vscodeext.gif deleted file mode 100644 index b6fb7d3b..00000000 Binary files a/.vuepress/public/uploads/2017-12_vscodeext.gif and /dev/null differ diff --git a/.vuepress/public/uploads/2017-12_xmas.jpg b/.vuepress/public/uploads/2017-12_xmas.jpg deleted file mode 100644 index cc9fdc17..00000000 Binary files a/.vuepress/public/uploads/2017-12_xmas.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/buildingiot2018.png b/.vuepress/public/uploads/buildingiot2018.png deleted file mode 100644 index 976dbfc2..00000000 Binary files a/.vuepress/public/uploads/buildingiot2018.png and /dev/null differ diff --git a/.vuepress/public/uploads/democamp.png b/.vuepress/public/uploads/democamp.png deleted file mode 100644 index 398c99aa..00000000 Binary files a/.vuepress/public/uploads/democamp.png and /dev/null differ diff --git a/.vuepress/public/uploads/froscon_logo.png b/.vuepress/public/uploads/froscon_logo.png deleted file mode 100644 index e2ec21a2..00000000 Binary files a/.vuepress/public/uploads/froscon_logo.png and /dev/null differ diff --git a/.vuepress/public/uploads/homepage.jpg b/.vuepress/public/uploads/homepage.jpg deleted file mode 100644 index 877410ad..00000000 Binary files a/.vuepress/public/uploads/homepage.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/ifkom.png b/.vuepress/public/uploads/ifkom.png deleted file mode 100644 index 77f4c6d4..00000000 Binary files a/.vuepress/public/uploads/ifkom.png and /dev/null differ diff --git a/.vuepress/public/uploads/k8sopenshift.png b/.vuepress/public/uploads/k8sopenshift.png deleted file mode 100644 index cec987e1..00000000 Binary files a/.vuepress/public/uploads/k8sopenshift.png and /dev/null differ diff --git a/.vuepress/public/uploads/lametric.jpg b/.vuepress/public/uploads/lametric.jpg deleted file mode 100644 index 32da45c0..00000000 Binary files a/.vuepress/public/uploads/lametric.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/logo_javaland.png b/.vuepress/public/uploads/logo_javaland.png deleted file mode 100644 index 81689af5..00000000 Binary files a/.vuepress/public/uploads/logo_javaland.png and /dev/null differ diff --git a/.vuepress/public/uploads/openhab-netlify2.png b/.vuepress/public/uploads/openhab-netlify2.png deleted file mode 100644 index 00f798d9..00000000 Binary files a/.vuepress/public/uploads/openhab-netlify2.png and /dev/null differ diff --git a/.vuepress/public/uploads/openhab-waterfall2.png b/.vuepress/public/uploads/openhab-waterfall2.png deleted file mode 100644 index 405f4ce7..00000000 Binary files a/.vuepress/public/uploads/openhab-waterfall2.png and /dev/null differ diff --git a/.vuepress/public/uploads/openhab-waterfall3.png b/.vuepress/public/uploads/openhab-waterfall3.png deleted file mode 100644 index e1fea09a..00000000 Binary files a/.vuepress/public/uploads/openhab-waterfall3.png and /dev/null differ diff --git a/.vuepress/public/uploads/shd2018.png b/.vuepress/public/uploads/shd2018.png deleted file mode 100644 index 5094e4ed..00000000 Binary files a/.vuepress/public/uploads/shd2018.png and /dev/null differ diff --git a/.vuepress/public/uploads/sinteg.jpg b/.vuepress/public/uploads/sinteg.jpg deleted file mode 100644 index 9e7a24a0..00000000 Binary files a/.vuepress/public/uploads/sinteg.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/sisax2018.jpg b/.vuepress/public/uploads/sisax2018.jpg deleted file mode 100644 index 39fbfa88..00000000 Binary files a/.vuepress/public/uploads/sisax2018.jpg and /dev/null differ diff --git a/.vuepress/public/uploads/translations.png b/.vuepress/public/uploads/translations.png deleted file mode 100644 index 7b221cc6..00000000 Binary files a/.vuepress/public/uploads/translations.png and /dev/null differ diff --git a/.vuepress/public/uploads/uom.png b/.vuepress/public/uploads/uom.png deleted file mode 100644 index bb7012d0..00000000 Binary files a/.vuepress/public/uploads/uom.png and /dev/null differ diff --git a/.vuepress/public/uploads/vlcsnap-2016-11-20-17h33m00s296.png b/.vuepress/public/uploads/vlcsnap-2016-11-20-17h33m00s296.png deleted file mode 100644 index fdcb72de..00000000 Binary files a/.vuepress/public/uploads/vlcsnap-2016-11-20-17h33m00s296.png and /dev/null differ diff --git a/.vuepress/public/uploads/vue-devtools.png b/.vuepress/public/uploads/vue-devtools.png deleted file mode 100644 index 7f6bae0c..00000000 Binary files a/.vuepress/public/uploads/vue-devtools.png and /dev/null differ diff --git a/.vuepress/public/uploads/vuepress-idea.png b/.vuepress/public/uploads/vuepress-idea.png deleted file mode 100644 index e19238a1..00000000 Binary files a/.vuepress/public/uploads/vuepress-idea.png and /dev/null differ diff --git a/.vuepress/public/uploads/website-build.jpg b/.vuepress/public/uploads/website-build.jpg deleted file mode 100644 index 0c11956e..00000000 Binary files a/.vuepress/public/uploads/website-build.jpg and /dev/null differ diff --git a/.vuepress/public/vscode.png b/.vuepress/public/vscode.png deleted file mode 100644 index e4c0fdc0..00000000 Binary files a/.vuepress/public/vscode.png and /dev/null differ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 2852ba6b..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,28 +0,0 @@ -# Contributing to the openHAB website - -This website is made with [VuePress](https://vuepress.vuejs.org/), therefore you must install it globally first (with `npm i -g vuepress`). - - -## Running in development mode - -To run the website on your local machine on a development server with live reload: - -1. Migrate the documentation from https://github.com/openhab/openhab-docs for the website, by running `ruby prepare-docs.rb` -2. Run `vuepress dev` - -The compilation can take a few minutes due to the size of the docs, wait for the "VuePress dev server listening at http://localhost:8080 (or another available port)" message. - -You can alter layouts and components in `.vuepress/components`, or the navigation in `.vuepress/config.js` - check the VuePress docs for more details. Note: if you add a new component and reference it in a (Markdown) page with its custom tag, it might not work until you restart the dev server. - -## Building the final website - -This step is normally done by a CI service (e.g. Netlify). -You can however build it manually with the command: `npm run build`. - -This will: - -1. Run `ruby prepare-docs.rb` as above. -2. Run `vuepress build` which will output the final static files in `vuepress`. -3. Run `ruby postbuild.rb` which removes all prefetch directives inserted by VuePress from `index.html`, which optimizes the initial load performance. - -The complete build will take between 2 and 5 minutes. diff --git a/README.md b/README.md index 08dacadd..fe174475 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,9 @@ --- -layout: HomePage -# Comment or remove the alert below when it's not needed anymore -alert: "openHAB 2.3 Released!" -meta: - - name: og:title - content: openHAB - - name: og:description - content: a vendor and technology agnostic open source automation software for your home +layout: RedirectLayout +redirect_to: https://www.openhab.org/ --- -This is the openHAB website. +You're on a archived version of the website. +Taking you back to the main site. -Please see [CONTRIBUTING.md](CONTRIBUTING.md) to learn how to contribute to the site. +Please Wait... \ No newline at end of file diff --git a/about/contributing.md b/about/contributing.md index 8687810c..62d5591b 100644 --- a/about/contributing.md +++ b/about/contributing.md @@ -1,114 +1,6 @@ --- -sidebar: false -layout: AboutPage -title: Contribute -meta: - - name: og:title - content: Contribute to openHAB - - name: og:description - content: a vendor and technology agnostic open source automation software for your home +layout: RedirectLayout +redirect_to: https://www.openhab.org/about/contributing.html --- - - - -

Make openHAB Better!

- - - - - -openHAB is a community effort and everyone can take part in that. -Be it by being an active developer, a bug reporter, a writer or translator, or making monetary contributions, here's an overview on how you can get involved! - - -### Help Others - -openHAB can be intimidating to new users, and even experienced ones might encounter a problem you can solve. If you are knowledgeable in openHAB or one of its related technologies, you are very much encouraged to share your insights in the [community forum](https://community.openhab.org). - - - -### Contribute Code - -You might want to fix a bug, add a feature, or write a new add-on. That's awesome! - -The [Developer Guide](/docs/developer) has everything to get you started. - - - -### Report Issues - -Before reporting an issue, please check the [community forum](https://community.openhab.org) for solutions and help. -More people will see your issue when it is posted in the forum and community members may be able to help you find known solutions/workarounds. - -When no solution was found, use the table below to determine where your issue should be reported: - -Issue | Where to report -------|---------------- -Problems and feature requests for openHAB 2 add-ons | [openHAB2-Addons](https://github.com/openhab/openhab2-addons/issues) -Problems and feature requests for openHAB 1 add-ons | [openHAB1-Addons](https://github.com/openhab/openhab1-addons/issues) -Issues related to the runtime environment, IDE and packaging | [openHAB-Distro](https://github.com/openhab/openhab-distro/issues) -Issues related to the core openHAB bundles that are not from Eclipse SmartHome | [openHAB-Core](https://github.com/openhab/openhab-core/issues) -Issues related to Eclipse SmartHome add-ons and core runtime | [Eclipse SmartHome](https://github.com/eclipse/smarthome/issues) - -But do not worry - if you are not clear, which category your issue belongs to - we will redirect you, if necessary. - -Please pay attention to the respective `CONTRIBUTING.md` file in all of these repositories. -They include further details on how to report an issue or file a pull request. - - - -### Translate - -openHAB has several projects on [Crowdin](https://crowdin.com/profile/openhab-bot) - if you are native or fluent in another language, you can help! - - - -### Write Documentation - -Our docs are always getting better, but we use all the help we can. Whether it's fixing a typo or writing new articles, our [documentation repository](https://github.com/openhab/openhab-docs) is ready to welcome your contributions! - - - -### Sponsor Development - -If you have money to spare and want a certain issue fixed or or feature added, openHAB has a team on [BountySource](https://www.bountysource.com/teams/openhab) where you can fund development by posting bounties. - - - -### Become a Member of the openHAB Foundation - -If you're involved in openHAB and recognize all the ways it helps you on a daily basis, the best way to show your continued support is to become a member of the **openHAB Foundation** which promotes the values of the community and funds the services you're enjoying for free. Visit [openhabfoundation.org](http://openhabfoundation.org) and become a member today! - - - -### Donate - -The openHAB Foundation also accepts one-time donations via PayPal. Thanks for your support! - - - - - - - +Please Wait... \ No newline at end of file diff --git a/about/donate.md b/about/donate.md index ee0eb990..f597672a 100644 --- a/about/donate.md +++ b/about/donate.md @@ -1,84 +1,6 @@ --- -sidebar: false -layout: AboutPage -title: Donate -meta: - - name: og:title - content: Donate to openHAB - - name: og:description - content: a vendor and technology agnostic open source automation software for your home +layout: RedirectLayout +redirect_to: https://www.openhab.org/about/donate.html --- - - - -

Thank you for supporting openHAB!

- -Since 2016, the [openHAB Foundation e.V.](https://www.openhabfoundation.org) is a non-profit organisation that -promotes the project and the use of open, vendor-agnostic solutions to empower your smart home in all possible ways: - -- Organizing events such as the [Smart Home Day](/blog/2017-10-22-smarthomeday-ece.html); -- Running this website on behalf of the project and dealing with marketing and media; -- Maintaining the [build server](https://openhab.ci.cloudbees.com/) and the repositories of [release binaries](https://bintray.com/openhab); -- Hosting a [demo server](http://demo.openhab.org:8080/start/index) for new users to try openHAB; -- Keeping the [community forum](https://community.openhab.org/) server up and running; -- Running the free-of-charge [myopenHAB](https://community.openhab.org/) service, an openHAB Cloud instance - allowing 20000+ registered users to easily and securely access their smart home remotely, and connect them to the cloud; -- Taking care of the publication of the apps in [Google Play](https://play.google.com/store/apps/details?id=org.openhab.habdroid), - the [Apple App Store](https://itunes.apple.com/us/app/openhab/id492054521?mt=8) and the - [Windows Store](https://www.microsoft.com/en-us/store/p/openhab/9nmq39ctwxgt); -- Making sure openHAB has a presence on various external platforms such as [IFTTT](https://ifttt.com/openhab) - and [Amazon Alexa](https://www.amazon.com/openHAB-Foundation/dp/B01MTY7Z5L); -- and [more](/blog/2016-12-15-openhabfdn-takeoff.html)! - -Everything has a cost, and while you're enjoying these services for free, running them with no commercial intent is not. Your donations help -a lot and are used solely for extending the goals of the Foundation. If you find these efforts useful, please consider donating what -you think they are worth. - -You can make a donation via PayPal by clicking the link below: - - -
- - - - -
- -

Join the Foundation

- -While one-time donations are very much appreciated, if you share our vision and would like to support the activities of the Foundation actively, please also consider becoming a member. - -Membership perks include: - -- a special badge on the community forum to show our appreciation; -- access to special forums and other communication channels reserved for members; -- for full members, the ability to attend general assemblies and vote to shape the future of the Foundation. - -Membership fees start as low as 2 € per month. Visit the [membership page](http://www.openhabfoundation.org/members/membership) on openhabfoundation.org to learn more. - -::: tip - -As an _“anerkannter gemeinnütziger Verein”_, all membership fees and donations to the openHAB Foundation e.V. are tax-deductible for German residents. - -::: +Please Wait... \ No newline at end of file diff --git a/about/events.md b/about/events.md index 8aa3467e..b2a184e0 100644 --- a/about/events.md +++ b/about/events.md @@ -1,85 +1,6 @@ --- -sidebar: false -layout: AboutPage -title: Events -meta: - - name: og:title - content: openHAB Events - - name: og:description - content: a vendor and technology agnostic open source automation software for your home +layout: RedirectLayout +redirect_to: https://www.openhab.org/about/events.html --- -If you are organizing an event around openHAB, please let us know in the [Events category](https://community.openhab.org/c/organisation/events) of the community forum. We will work with you to add it on this page. - - -
-

Upcoming events

- - -
- - -
-

Past events

- -
-

{{year}}

- -
-
- - \ No newline at end of file +Please Wait... \ No newline at end of file diff --git a/about/events/2018-05-13-building-iot.md b/about/events/2018-05-13-building-iot.md deleted file mode 100644 index 6f278586..00000000 --- a/about/events/2018-05-13-building-iot.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: Event -category: event -title: building IoT 2018 -organizer: dpunkt.verlag GmbH -link: 'https://www.buildingiot.de/' -date: '2018-06-04T23:49:15+02:00' -end_date: '2018-06-06T18:00:00+02:00' -location: 'Köln, Germany' -event_image: /uploads/buildingiot2018.png -abstract: The building IoT conference is renowned for deep technical insights into the software engineering aspects of the Internet of Things. Kai is a member of the program committee and he also presents openHAB in his talk about smart home interoperability. ---- -The building IoT conference is renowned for deep technical insights into the software engineering aspects of the Internet of Things. Kai is a member of the program committee and he also presents openHAB in [his talk about smart home interoperability](https://www.buildingiot.de/veranstaltung-6812-interoperabilit%C3%A4t-im-smart-home-mit-openhab.html?id=6812). - - diff --git a/about/events/2018-05-13-silicon-saxony-day-2018.md b/about/events/2018-05-13-silicon-saxony-day-2018.md deleted file mode 100644 index b9041ee0..00000000 --- a/about/events/2018-05-13-silicon-saxony-day-2018.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: Event -category: event -title: Silicon Saxony Day 2018 -organizer: Silicon Saxony e.V. -link: 'https://www.silicon-saxony.de/silicon-saxony-day/' -date: '2018-05-29T23:33:16+02:00' -location: 'Dresden, Germany' -event_image: /uploads/sisax2018.jpg -abstract: Kai participates in the expert sessions and talks about interoperability in the IoT in the presentation "Mastering the diversity in smart buildings - A practical approach with openHAB" ---- -Kai participates in the expert sessions and talks about interoperability in the IoT in the presentation ["Mastering the diversity in smart buildings - A practical approach with openHAB"](https://www.silicon-saxony.de/silicon-saxony-day/conference/expert-sessions/interoperability-for-industrial-internet-of-things/kai-kreuzer/). - - diff --git a/about/events/2018-05-14-javaland-2018.md b/about/events/2018-05-14-javaland-2018.md deleted file mode 100644 index 8484f61f..00000000 --- a/about/events/2018-05-14-javaland-2018.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: Event -category: event -title: JavaLand 2018 -organizer: JavaLand GmbH -link: 'https://www.javaland.eu/de/javaland-2018/' -date: '2018-03-13T08:33:41+01:00' -end_date: '2018-03-15T08:33:41+01:00' -location: 'Phantasialand in Brühl, Germany' -event_image: /uploads/logo_javaland.png -abstract: Philipp Hertweck gives an introduction to openHAB and shows how to easily integrate DIY components like Arduinos in the newcomer session "Erweiterbares, bastlerfreundliches Smart Home mit openHAB". ---- -Philipp Hertweck gives an introduction to openHAB and shows how to easily integrate DIY components like Arduinos in the newcomer session "[Erweiterbares, bastlerfreundliches Smart Home mit openHAB](https://programm.javaland.eu/2018/#/scheduledEvent/549153)". - - diff --git a/about/events/2018-05-17-sinteg-jahreskonferenz-2018.md b/about/events/2018-05-17-sinteg-jahreskonferenz-2018.md deleted file mode 100644 index 08d0db16..00000000 --- a/about/events/2018-05-17-sinteg-jahreskonferenz-2018.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: Event -category: event -title: SINTEG-Jahreskonferenz 2018 -organizer: ' Bundesministeriums für Wirtschaft und Energie' -link: >- - https://www.sinteg.de/termine/aktuelle-termine/detailseite/sinteg-jahreskonferenz-2018/ -date: '2018-06-05T12:49:11+02:00' -end_date: '2018-06-06T18:00:11+02:00' -location: 'Berlin, Germany' -event_image: /uploads/sinteg.jpg -abstract: >- - openHAB is presented as an example for "Digitalisierung von Haushalten durch - Smart Home Technologie" by Kai on June 6. -tags: - - conference ---- -Im Förderprogramm "Schaufenster intelligente Energie - Digitale Agenda für die Energiewende" (SINTEG) werden in großflächigen "Schaufensterregionen" übertragbare Musterlösungen für eine sichere, wirtschaftliche und umweltverträgliche Energieversorgung bei zeitweise 100% Stromerzeugung aus erneuerbaren Energien entwickelt und demonstriert. diff --git a/about/events/2018-05-25-eclipse-democamp-2018.md b/about/events/2018-05-25-eclipse-democamp-2018.md deleted file mode 100644 index a49aaa4b..00000000 --- a/about/events/2018-05-25-eclipse-democamp-2018.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -layout: Event -category: event -title: Eclipse DemoCamp 2018 -organizer: Deutsche Telekom AG -link: 'https://wiki.eclipse.org/Eclipse_DemoCamps_2018/Darmstadt' -date: '2018-06-20T17:38:29+02:00' -location: 'Darmstadt, Germany' -event_image: /uploads/democamp.png -abstract: >- - Kai will do a demo with openHAB at this demo camp. Good opportunity to meet - Eclipse SmartHome core developers! -tags: - - eclipse ---- -Eclipse DemoCamps are an opportunity to showcase all of the cool technology being built by the Eclipse community. - -Attendance is free, all you need to do is to register! diff --git a/about/events/2018-05-27-froscon-2018.md b/about/events/2018-05-27-froscon-2018.md deleted file mode 100644 index 7748fd1f..00000000 --- a/about/events/2018-05-27-froscon-2018.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: Event -category: event -title: FrOSCon 2018 -organizer: University of Applied Sciences Bonn-Rhein-Sieg -link: 'https://www.froscon.de/en/' -date: '2018-08-25T17:24:40+02:00' -end_date: '2018-08-26T17:24:40+02:00' -location: 'Sankt Augustin, Germany' -event_image: /uploads/froscon_logo.png -abstract: >- - The openHAB Foundation will be present with a demo booth at FrOSCon and Kai - additionally does a talk "Building a Cloudless Smart Home with openHAB"! -tags: - - Open Source ---- -Free Software and Open Source - these are the topics of FrOSCon (Free and Open Source Software Conference). Every year in August the computer science department of the University of Applied Sciences Bonn-Rhein-Sieg, supported by FrOSCon e.V., will organize an exciting program with talks and workshops for visitors of all ages. The event is topped off with a fair of booths from FLOSS projects and companies. The social event, celebrated at Saturday night, offers the opportunity to exchange opinions with other visitors, speakers or volunteers. diff --git a/about/events/2018-05-27-smart-home-day-2018.md b/about/events/2018-05-27-smart-home-day-2018.md deleted file mode 100644 index 93757c64..00000000 --- a/about/events/2018-05-27-smart-home-day-2018.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -layout: Event -category: event -title: Smart Home Day 2018 -organizer: openHAB Foundation e.V. -date: '2018-10-21T17:26:50+02:00' -location: 'Ludwigsburg, Germany' -event_image: /uploads/shd2018.png -abstract: >- - The openHAB Foundation plans another Smart Home Day co-located with EclipseCon - Europe - save the date! -tags: - - Smart Home Day - - EclipseCon Europe ---- -Just like in 2017, the openHAB Foundation plans a joint event around Smart Home together with the Eclipse Foundation - this is not yet confirmed, but you should save the date in your calendar, if you are interested to join! diff --git a/about/events/2018-06-05-ingenieurtag-2018.md b/about/events/2018-06-05-ingenieurtag-2018.md deleted file mode 100644 index 695dc51b..00000000 --- a/about/events/2018-06-05-ingenieurtag-2018.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -layout: Event -category: event -title: ' Ingenieurtag 2018' -organizer: 'IfKom - Ingenieure für Kommunikation e.V., Landesverband Hessen' -link: /about/events.html -date: '2018-06-08T15:00:00+02:00' -end_date: '2018-06-08T16:30:00+02:00' -location: 'Darmstadt, Germany' -event_image: /uploads/ifkom.png -abstract: >- - Kai talks about „Interoperabilität im Smart Home“ at this event. Attendance is - free and open to the public. Start is at 3pm in the Best Western Hotel - Darmstadt, Grafenstraße 31. -tags: - - interoperability - - ifkom ---- -**Vortragender:** Dipl.-Math. Kai Kreuzer, Präsident der openHAB Foundation e.V. - -**Ort:** Best Western Hotel Darmstadt, Grafenstraße 31, Darmstadt - -**Zeit:** 15 Uhr, Eintritt frei - - - -**„Interoperabilität im Smart Home“** - -Smart Home ist in aller Munde. Dieser neue Markt bringt allerdings auch eine unüberschaubare Fülle von Anbietern, Technologien und untereinander inkompatibler Protokollen mit sich, in welcher sich der Interessent kaum zurechtfinden kann. Gerade Interoperabilität ist aber nötig, damit sich Smart-Home-Technologie als Massenprodukt etablieren kann. - -Dieser Vortrag versucht eine Einordnung der Begriffe, gibt einen Überblick über die relevanten Entwicklungen, Technologien und Protokolle und zeigt wie insbesondere Open-Source-Projekte bei der Schaffung von Transparenz und Interoperabilität helfen. - -anschließend Aussprache und Diskussion zum Vortrag - -Ende gegen 16.30 Uhr diff --git a/about/events/2018-06-17-berlin-openhab-meetup.md b/about/events/2018-06-17-berlin-openhab-meetup.md deleted file mode 100644 index 04a5f459..00000000 --- a/about/events/2018-06-17-berlin-openhab-meetup.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -layout: Event -category: event -title: Berlin openHAB meetup -organizer: Simon Tennant -link: 'https://www.eventbrite.com/e/openhab-berlin-meetup-tickets-46524204147' -date: '2018-06-17T23:33:16+02:00' -location: 'Berlin, Germany' -abstract: A meetup of openHAB enthusiasts in Berlin to talk about their use of openHAB, hacks, rules, bindings and implementations. ---- -A meetup of openHAB enthusiasts in Berlin to talk about their use of openHAB, hacks, rules, bindings and implementations. diff --git a/about/images/group-3354366_1920.png b/about/images/group-3354366_1920.png deleted file mode 100644 index 444a8631..00000000 Binary files a/about/images/group-3354366_1920.png and /dev/null differ diff --git a/about/images/smart-home-2769239_1920.jpg b/about/images/smart-home-2769239_1920.jpg deleted file mode 100644 index 06f3e8de..00000000 Binary files a/about/images/smart-home-2769239_1920.jpg and /dev/null differ diff --git a/about/images/teamwork-2198961_1920.png b/about/images/teamwork-2198961_1920.png deleted file mode 100644 index 8c33c517..00000000 Binary files a/about/images/teamwork-2198961_1920.png and /dev/null differ diff --git a/about/images/volunteer-2055015_1920.png b/about/images/volunteer-2055015_1920.png deleted file mode 100644 index c9c97e4e..00000000 Binary files a/about/images/volunteer-2055015_1920.png and /dev/null differ diff --git a/about/logos.md b/about/logos.md index 6665ce4e..b01fc8dd 100644 --- a/about/logos.md +++ b/about/logos.md @@ -1,12 +1,6 @@ --- -sidebar: false -layout: AboutPage -title: Logo Re-use -meta: - - name: og:title - content: openHAB Logos Re-use - - name: og:description - content: a vendor and technology agnostic open source automation software for your home +layout: RedirectLayout +redirect_to: https://www.openhab.org/about/logos.html --- -tbd +Please Wait... \ No newline at end of file diff --git a/about/showcase.md b/about/showcase.md index 8af2d5bc..07097e7b 100644 --- a/about/showcase.md +++ b/about/showcase.md @@ -1,35 +1,6 @@ --- -sidebar: false -layout: AboutPage -title: Showcase & How-tos -meta: - - name: og:title - content: openHAB Showcase & How-tos - - name: og:description - content: a vendor and technology agnostic open source automation software for your home +layout: RedirectLayout +redirect_to: https://www.openhab.org/about/showcase.html --- - - - - -This is a selection of top topics in the [Tutorials & Examples](https://community.openhab.org/c/tutorials-examples) category of the community forum, join us there and share your story! - - +Please Wait... \ No newline at end of file diff --git a/about/who-we-are.md b/about/who-we-are.md index 2cced94e..e5d907de 100644 --- a/about/who-we-are.md +++ b/about/who-we-are.md @@ -1,106 +1,6 @@ --- -sidebar: false -layout: AboutPage -title: Who We Are -meta: - - name: og:title - content: openHAB - Who We Are - - name: og:description - content: a vendor and technology agnostic open source automation software for your home +layout: RedirectLayout +redirect_to: https://www.openhab.org/about/who-we-are.html --- - - -

Our Vision and Philosophy

- - - - -There are many home automation solutions and Internet-of-Things (IoT) gadgets on the market, which are all useful on their own. They come with their own way on how to setup and configure devices and are perfect for their intended use cases. - -The problem with all of these systems and devices is that these use cases are defined by the manufacturer - but as a user, you will quickly come up with wishes that are not supported out of the box or which require interaction between the different systems. openHAB fills this gap: It puts the user in the focus and allows him to do what he wants to do. It thus serves as an integration point for all your home automation needs and lets systems talk to each other across any vendor or protocol boundaries. - -From our point of view, a commercial product can never stay up to date with all interesting things that can be integrated. So the only way to be sure that you do not bet on a dead horse is by using an open source solution that is maintained by a big community and which does not depend on the fate of a single company. openHAB is hence the best choice for a future-proof Smart Home setup. - -Considering the user perspective also means caring for data privacy. With openHAB, all data (like sensor data or actuator commands) belongs to the user and it is up to him to decide, what data should potentially leave his house and where it is sent. Furthermore, there is no remote access possible, if it is not desired - everything works nicely within the intranet and does not even require an Internet connection. We therefore also like to call it the "Intranet of Things". - - - -### Some Hacking Skills Required - -openHAB is highly flexible and customizable, but this comes at a cost. You have to invest some time for learning its concepts and to set up an individual system tailored to your needs. Many parts of the setup require textual configuration, potentially accessing log files for debugging, etc. Therefore setting up openHAB is mainly a job for tech-savvy people - it is not a commercial off-the-shelf product that you plug in and that is ready to go. - -Nonetheless, this only applies to the setup and configuration of the system, which is usually done by a single person in the household, while all other family members are merely using the system. And here is where openHAB shines: It is very stable, has apps for all different end devices, allows voice interaction, etc. - - - -### Architectural Principles - -openHAB does not try to replace existing solutions, but rather wants to enhance them - it can thus be considered as a system of systems. It therefore assumes that the sub-systems are setup and configured independently of openHAB as this is often a very specific and complex matter (including "pairing" processes, direct device links etc.). Instead, openHAB focuses on the "daily use" side of things and abstracts from the devices themselves. - -A core concept for openHAB is the notion of an "item". An item is a data-centric functional atomic building block - you can think of it as an "capability". openHAB does not care whether an item (e.g. a temperature value) is related to a physical device or some "virtual" source like a web service or an calculation result. All features offered by openHAB are using this "item" abstraction, which means that you will not find any reference to device specific things (like IP addresses, IDs etc.) in automation rules, UI definitions and so on. This makes it perfectly easy to replace one technology by another without doing any changes to rules and UIs. - -A very important aspect of openHAB's architecture is its modular design. It is very easy to add new features (like the integration with yet another system through a "binding") and you can add and remove such features at runtime. This modular approach has been a huge enabler for the active community around openHAB with many engaged contributors. - - - -### Further Reading - -Please see our [documentation](/docs/concepts/index.html) for further details about the concepts of openHAB, its features and possibilities. - - -


- -

Community Guidelines

- - - - - -We want to keep the openHAB community awesome, growing and collaborative. -We need your help to keep it that way. -To help with this we've come up with some general guidelines for the community as a whole: - -* **Be nice:** Be courteous, respectful and polite to fellow community members: no - regional, racial, gender, or other abuse will be tolerated. We like nice people - way better than mean ones! - -* **Encourage diversity and participation:** Make everyone in our community - feel welcome, regardless of their background and the extent of their - contributions, and do everything possible to encourage participation in - our community. - -* **Keep it legal:** Basically, don't get us in trouble. Share only content that - you own, do not share private or sensitive information, and don't break the - law. - -* **Stay on topic:** Make sure that you are posting to the correct channel - and avoid off-topic discussions. Remember when you update an issue or - respond to an email you are potentially sending to a large number of - people. Please consider this before you update. Also remember that - nobody likes spam. - - +Please Wait... \ No newline at end of file diff --git a/addons/README.md b/addons/README.md index 9a6edf24..7e2bf1c0 100644 --- a/addons/README.md +++ b/addons/README.md @@ -1,50 +1,6 @@ --- -title: "Add-ons" -initial_gallery: - binding: - title: "Bindings" - description: "Bindings integrate physical hardware, external systems and web services in openHAB." - featured: ["astro", "bluetooth", "hue", "knx", "kodi", "mqtt", "nest", "mihome", "rfxcom", "sonos", "tradfri", "yahooweather", "zigbee", "zwave"] - io: - title: "System Integrations" - description: "System integrations expose openHAB to external systems." - featured: ["dropbox", "gcal", "homekit", "openhabcloud"] - action: - title: "Actions" - description: "Actions are predefined methods for openHAB rules and scripts." - featured: ["mqtt", "pushbullet", "telegram", "twitter", "xbmc", "xmpp"] - persistence: - title: "Data Persistence" - description: "Persistence services allow openHAB to store time series data for history-based actions or statistics." - featured: ["rrd4j", "influxdb", "jdbc", "mysql", "mongodb"] - transform: - title: "Data Transformation" - description: "Transformations are used to translate between technical and human-readable values for items." - featured: ["exec", "javascript", "map", "xpath"] - voice: - title: "Voice" - description: "These add-ons provide voice enabling features, such as text-to-speech, speech-to-text etc." - featured: ["mactts", "marytts", "voicerss"] - all: true -meta: - - name: og:title - content: openHAB Add-ons - - name: og:description - content: a vendor and technology agnostic open source automation software for your home +layout: RedirectLayout +redirect_to: https://www.openhab.org/addons/ --- -

Add-on Reference

- - - -All add-ons for openHAB 2 are part of the distribution. -This includes all new 2.0 bindings as well as all 1.x add-ons that were reported to be compatible. -Add-ons can be easily installed through the Paper UI (menu entry "Add-ons"). - - +Please Wait... diff --git a/blog/2016-05-23-openhab-releases.md b/blog/2016-05-23-openhab-releases.md deleted file mode 100644 index be780d3c..00000000 --- a/blog/2016-05-23-openhab-releases.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -layout: BlogPost -category: blog -title: openHAB 2.0 beta3 Release -date: '2016-05-23T00:00:00.001+02:00' -author: Kai Kreuzer -tags: -- openhab -- eclipse -- pine64 -modified_time: '2016-05-23T00:00:00.001+02:00' -excerpt_separator: -previewimage : /uploads/2016-05_building.jpg ---- - -Some time has passed since the openHAB 2.0 beta2 release and a lot development efforts were done - so it was clearly time to [release openHAB 2.0 beta3](https://github.com/openhab/openhab-distro/releases/tag/2.0.0.b3). I see that many openHAB contributors and users are moving over from 1.x by looking at the activity in our forum and there has been very positive feedback regarding the stability. - - - -This is also clearly indicated by the heavily increased number of [1.x add-ons that were successfully tested](http://docs.openhab.org/features/bindings.html#compatible-1x-add-ons) and thus included in the openHAB 2 distribution - we have reached 80 add-ons now, complementing about 40 add-ons that were built for openHAB 2 right from the start. We are therefore getting much closer to having the openHAB 2 runtime as a full replacement for the openHAB 1 runtime for all existing users. When using textual configuration, it is fairly similar to setup and use. - -Two missing parts are being heavily worked on: - -- A [new openHAB 2 Documentation website](http://docs.openhab.org/) has been created with some initial content, which will grow heavily in the coming weeks to make it easier for newcomers to get into openHAB 2. -- The [Debian packages](https://github.com/openhab/openhab-distro/issues/66) are now produced by the build and it will soon be possible to install openHAB 2 through a simple "apt-get" on Linux. - -Besides offering the comfort that people are used to in openHAB 1.x, there was of course also a lot of activity on the core framework (i.e. Eclipse SmartHome). This has specifically gained momentum since the end of last year, which can be nicely seen in the Github statistics. - - - -Commit activity on Eclipse SmartHome - -This activity resulted in [337 merged pull requests](https://github.com/eclipse/smarthome/issues?q=milestone%3A0.8.0.b5) since the beta2 in January, which makes Eclipse SmartHome one of the most active projects in the [Eclipse IoT](http://iot.eclipse.org/) space. - -Besides many small improvements and evolution of the binding APIs, a lot of work went into the Paper UI through which it is now possible to configure bindings and services as an alternative to the textual configuration files. - - - -System configuration through the Paper UI - -Other features are a fully re-implemented [LIFX binding](http://docs.openhab.org/features/bindings/lifx/readme.html), which now requires less system resources, an update Philips hue binding, which now also supports alarm and color cycle options as well as a greatly enhanced [Sonos binding](http://docs.openhab.org/features/bindings/sonos/readme.html), which can now handle speaker groups, play notifications and many more things. - -Two bindings that have by far the largest user base have been ported to openHAB 2 and now fully support discovery of devices, which is very useful in both cases, which are Z-Wave ad Homematic. Z-Wave supports a huge list of devices already and Chris is doing a phantastic job to maintain them in a dedicated [device database](http://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list). For Homematic, this is not even necessary since the binding directly queries the Homematic CCU2 for the device meta-data and builds the openHAB-internal representation dynamically at runtime. - -Last but not least, I would like to mention the [digitalSTROM binding](http://docs.openhab.org/features/bindings/digitalstrom/readme.html) - this has been developed by the [FH Köln](http://www.software-quality.fh-koeln.de/iemwiki/index.php/Hauptseite) and is by far the largest contribution in terms of lines of code and complexity of the integrated system. - - - -digitalSTROM actuators - -My favorite new additions are no bindings though - they are the native [integration with HomeKit](http://docs.openhab.org/features/io/homekit/readme.html) as well as with [Amazon Echo by emulating a hue bridge](http://docs.openhab.org/features/io/hueemulation/readme.html). In the past people were using additional software like the ha-bridge or the openhab-homekit-bridge. Now this is fully integrated into openHAB and you can easily use Siri or Alexa for accessing anything that is connected to your openHAB installation. - - - -Amazon Echo now works with openHAB - -The last good news about the beta3 release is that it is included in the SD card image that I have prepared for the [PINE64](http://www.pine64.com/). The PINE64 IoT package will be sent out to the backers starting later this week and it will directly ship with openHAB 2.0 pre-installed. For all other PINE64 users, who just ordered the board (most have already received it), the image will also be made available for download, so that you can flash yourself an SD card - it has never been easier to start with openHAB! diff --git a/blog/2016-12-15-openhabfdn-takeoff.md b/blog/2016-12-15-openhabfdn-takeoff.md deleted file mode 100644 index 89d79ead..00000000 --- a/blog/2016-12-15-openhabfdn-takeoff.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -layout: BlogPost -category: blog -title: The openHAB Foundation is Ready for Takeoff! -date: '2016-12-15T12:00:00.001+02:00' -author: Kai Kreuzer -tags: -- openhab -modified_time: '2016-12-15T12:00:00.001+02:00' -excerpt_separator: -previewimage : /uploads/2016-12_takeoff.jpg ---- - -Since the inception of the idea to start a nonprofit organization around openHAB, some time has passed and we have been working intensively on making it happen! - -Today, I am very proud to be able to announce that the openHAB Foundation e.V. is up and running and has successfully taken over all sorts of supportive operation for the community. - - - -Here's a brief overview of what the foundation does for you: - -## From Source to Binary - -Ever had to build applications from source code yourself? We are making sure that binaries are built for the latest sources as well as for releases and that they are easily accessible for everyone. -For this, we maintain and monitor the build infrastructure. And to give you an idea of how openHAB looks and feels like before you even get started, we are hosting a public demo instance. - -
-
- - - -

- Build Server -

-

The builds are executed on a Jenkins instance on Cloudbees. We have monitoring setup to be immediately informed about broken builds through a slack channel.

-
-
- - - -

- Release Downloads -

-

We use the services of Bintray to host our binaries for download. This not only comprises the final distribution zips, but also the Debian packages and dependencies required during the build.

-
-
- - - -

- Demo Server -

-

This is a real openHAB instance with the demo package deployed on it. Great for testing the user interfaces and the REST API online, but obviously no real devices are connected to it.

-
-
- -We are also publishing the openHAB apps in the official stores. So far, we have apps for Android, iOS and Pebble, which will soon be complimented by apps in the Windows Store and for Ubuntu Core. - -
-
- - - -

- Google Play Store -

-

The Android app (aka "HABDroid) for openHAB

-
-
- - - -

- iOS App Store -

-

The iOS app for openHAB

-
-
- - - -

- Pebble App Store -

-

The Pebble app for openHAB

-
-
- -## Discussion Forum and myopenHAB - -Probably the most valuable service, which many users regularly use is [our discussion forum](https://community.openhab.org/). We are not only hosting the software and making sure it runs smoothly, but we also moderate discussions, answer questions and offer help. - -All of this has been set up over the past months since the openHAB Foundation was established. - -But the biggest news of today is that we have now also setup a hosted version of the openHAB Cloud! - -You have never heard of the openHAB Cloud before? Well, you might have heard of my.openHAB, which is operated by the (now closing) openHAB UG. The contributors have recently [open-sourced its code base](https://github.com/openhab/openhab-cloud#openhab-cloud) and called it the "openHAB Cloud". This now makes it possible to have a private cloud set up, which can be used for integrations that require cloud connections through OAuth2 like e.g. IFTTT, Alexa skills etc. Many people were asking for this and I look forward to community contributions for its further evolution! - -Although it is all nicely documented, setting up an openHAB Cloud instance is not what a regular user will be able or willing to do. To show the possibilities and have it easily available to everybody, the openHAB Foundation hosts a public instance where everybody is free to register - it is callen myopenHAB (note the missing dot) and is available at [www.myopenhab.org](http://www.myopenhab.org). This instance comes with support for IFTTT integration as well as with the new openHAB Alexa Smart Home skill (which is also [available as open-source](https://github.com/openhab/openhab-alexa#amazon-alexa-smart-home-skill-for-openhab-2)) and although it is meant as a show case and we cannot offer any SLAs, we are confident to provide a better availability than what the "old" my.openHAB had to offer. We therefore strongly recommend all existing users to move over to the new [foundation-hosted myopenHAB](http://www.myopenhab.org)! - -
-
- - - -

- Discussion Forum -

-

The forum is the central place to get support, help others, get in touch with the community, share ideas and be notified about relevant news around openHAB.

-
-
- - - -

- myopenHAB Cloud Service -

-

myopenHAB is a publicly available instance of the new openHAB Cloud. It provides remote access, smartphone notifications, IFTTT integration and an Amazon Echo skill.

-
-
- -None of all this would be possible without our members. Starting off with [7 founding members](http://www.kaikreuzer.de/2016/05/21/openhab-foundation/), we have reached 40 by now. I am especially happy for the support of our [5 corporate members](/members/memberlist.html), which each has a different background, like being a [smart home startup](/2016/home-ix), a [professional services provider](/2016/lewic), a [hardware manufacturer](/2016/pine64), an [IT consultancy company](/2016/qaware) or an [Ambient Assisted Living (AAL) specialist](/2016/vss). - -If you like our ideals and the value that we bring to the community, please [consider becoming a member](/members/membership.html) as well - we are ready to accept your application any time! I would like to specifically encourage all the people to join the foundation that have always wondered how they can give something back to the community while not being coders - this is now the opportunity for all of you! You can either decide to be a passive member and support us financially or to take an active role and help driving the foundation forward! diff --git a/blog/2017-01-22-openhab2.md b/blog/2017-01-22-openhab2.md deleted file mode 100644 index 7d7200ef..00000000 --- a/blog/2017-01-22-openhab2.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -layout: BlogPost -title: openHAB 2 has arrived! -date: '2017-01-23T00:00:00.001+00:00' -author: Kai Kreuzer -tags: -- openhab -- eclipse -modified_time: '2017-01-23T00:00:00.001+00:00' -previewimage : /uploads/2017-01_openhab2.jpg -excerpt_separator: ---- - -Three years [after initiating the Eclipse SmartHome project](/2014/06/16/openhab-20-and-eclipse-smarthome#esh), I am proud to finally announce the general availability of openHAB 2.0, the first openHAB release that is based on [Eclipse SmartHome](https://www.eclipse.org/smarthome/)! - -This release replaces openHAB 1.8 as the officially recommended runtime, only the openHAB 1 compatible add-ons will be further maintained. They are now [available in version 1.9.0](https://github.com/openhab/openhab1-addons/releases/tag/v1.9.0) and can be used on existing openHAB 1.8 installations. We have reached far more than 200 add-ons in this package by now and most of them can also be used in conjunction with openHAB 2 (see below). - - - -Back in 2014, [our goals for openHAB 2](/2014/06/16/openhab-20-and-eclipse-smarthome#1vs2) were the following: - - 1. Better support for low-end embedded hardware - 2. Simpler setup and configuration possibilities for "regular" i.e. not tech-savvy users - -So what have we achieved? - -### Embedded Use - -With respect to embedded systems, the evolution of hardware was quicker than us, which made our goal almost obsolete. While in 2014 many users were using a Raspberry Pi 1 which was not ideal for openHAB regarding system performance. Now in 2017 almost everyone has upgraded to more powerful boards like the Raspberry Pi 2/3 or the PINE64, where CPU power is no longer a problem. As a matter of fact, openHAB 2 runs very decently on such boards, even for large installations. - - - -Powerful hardware options for openHAB - -Constrained hardware resources are therefore merely still an issue for commercial platforms. Besides the free openHAB, there are other solutions being built on Eclipse SmartHome, like e.g. [QIVICON](https://www.qivicon.com/en/) of Deutsche Telekom. The shrinked core framework of Eclipse SmartHome proves its worth on such solutions. As a demonstrator, there is a [sample solution packaging](https://github.com/eclipse/smarthome-packaging-sample) available, which uses [Eclipse Concierge](https://www.eclipse.org/concierge/) as a low-footprint OSGi framework and only has an overall size of only 20MB and which requires less then 128MB Java heap. - -### Usability Improvements - -Usability has been addressed on many different levels and version 2.0 only marks the beginning of these efforts, upcoming versions 2.x will continue on this path. - -#### Setup Through a User Interface - -All newly introduced APIs and features are designed in a way that they enable setup and configuration through user interfaces. - - - After a first start, the user can choose an initial installation package to start with. These packages define common sets of functionality for different user types. Additional add-ons can be installed at any time through the UI by a single click. - - A major feature of all newly introduced bindings is the device discovery, i.e. the bindings will scan themselves the network/system for supported devices and offer them to the user. This heavily simplifies the integration of devices in openHAB. - - A new rule engine has been created, which allows building simple rules through a UI, similar to IFTTT, but with the big difference that no cloud connection is required as everything is executed locally. - - A [new UI called HABPanel](http://docs.openhab.org/addons/uis/habpanel/readme.html) has been introduced, which provides flexible dashboards for tablets, which can be created and modified fully UI-driven. HABPanel is specifically well-suited for wall-mounted displays. - - - -Usability Improvements: Initial Setup - Discovery - Rule Editor - HABPanel - -These features together allow for the first time [a purely UI-driven setup of openHAB](https://youtu.be/T0kzK2voy94?list=PLGlxCdrGUagyDLSdoOUAmwsf4RD7URP4u) - but it must be said that this only covers a small fraction of the capabilities of openHAB. A core strength of openHAB is its flexibility and the possibility to cover all kinds of special - sometimes really weird - individual use cases. To do so, the textual configuration, as known from openHAB 1, is still required and recommended. - -#### 1.x Compatibility - -While these new features for beginners have been introduced, a focus has also been to have as little disruption for existing openHAB users as possible and to keep and even extend the textual configuration options. No one is forced to use UIs in future, they should be merely seen as an optional alternative. Most functionality of openHAB 1 has therefore be retained and only minor changes need to be done to the personal configurations and rules. Specifically, most openHAB 1.9 add-ons can be used as openHAB 2 as it has a built-in compatibility layer. - -#### Installation - -A major obstacle in the past for many users was also the required setup around openHAB, e.g. installing Linux on the Raspberry Pi, configuring users, shares, ssh, etc. -This is all much simpler now through [openHABian](http://docs.openhab.org/installation/openhabian.html) - a self-configuring Raspberry Pi setup, which starts off from a minimal SD card image. It automatically installs Java, openHAB, Samba and more and optionally even KNXd, Homegear, Mosquitto and others. This is definitely the best choice for Raspberry Pi users! - -## Feature Overview - -So what is new in general in openHAB 2? Let me give you a rough overview: - -#### Bindings - -openHAB 2 comes with 130 bindings for different devices, technologies or protocols. 57 of them are using the new 2.0 APIs, so that they support discovery and graphical configuration. The rest are bindings from openHAB 1, which are included in the 2.0 distribution. - -Many of these bindings support technologies, which are not supported by openHAB 1. There are e.g. bindings for [AllPlay](http://docs.openhab.org/addons/bindings/allplay/readme.html), [Miele@home](http://docs.openhab.org/addons/bindings/miele/readme.html), [Minecraft](http://docs.openhab.org/addons/bindings/minecraft/readme.html), [Russound](http://docs.openhab.org/addons/bindings/russound/readme.html), [Z-Way](http://docs.openhab.org/addons/bindings/zway/readme.html) and even [Tesla](http://docs.openhab.org/addons/bindings/tesla/readme.html), just to name a few. - - - -Some sample products & technologies that are supported by openHAB 2 - -Many other are currently under development or queued for review, so we can expect to reach 200 bindings by the end of this year. - -#### User Interfaces - - - The visually outdated [Classic UI](http://docs.openhab.org/addons/uis/classic/readme.html) (which is still available as an option) has been replaced by the much more modern [Basic UI](http://docs.openhab.org/addons/uis/basic/readme.html). - - While being an external project for openHAB 1, [HABmin](http://docs.openhab.org/addons/uis/habmin/readme.html) has meanwhile become an official part of the project and is a very powerful administration tool, especially suited for Z-Wave users. - - The new [Paper UI](http://docs.openhab.org/addons/uis/paper/readme.html) is the main interface for doing UI-driven setup and configuration. - - [HABPanel](http://docs.openhab.org/addons/uis/habpanel/readme.html) is another new web UI, which specifically focuses on nifty dashboards on tablets. - - Besides Android and iOS, there is now a [native client for Windows 10 (Mobile)](https://youtu.be/IrUPL33b_jc?list=PLGlxCdrGUagyDLSdoOUAmwsf4RD7URP4u) available in the [official Microsoft App Store](https://www.microsoft.com/en-us/store/p/openhab/9nmq39ctwxgt). - - - -New UIs: Basic UI - HABPanel - HABmin - Windows 10 App - -### Further Integrations - -Besides the bindings, which integrate external system in openHAB, the opposite is possible as well: To include openHAB in an external system: - - - A very simple integration in Amazon Echo is possible through the [Hue emulation add-on](http://docs.openhab.org/addons/io/hueemulation/readme.html). This mimics a Philips Hue bridge and can also fool some other 3rd party apps that exist for Philips Hue. - - The [HomeKit add-on](http://docs.openhab.org/addons/io/homekit/readme.html) makes openHAB appear in iOS as a not-certified device that, once added, allow the use of any hardware from within HomeKit/iOS. - - IFTTT integration is now offered through the new [myopenHAB](http://www.myopenhab.org/) service that is operated by the [openHAB Foundation](http://www.openhabfoundation.org/). - - [Text-to-Speech and other audio playback](http://docs.openhab.org/concepts/audio.html) can now be directed to remote devices (such as connected speakers). Already supported are e.g. Sonos speakers, Onkyo receivers, Chromecast and the Kodi media center. - -### Distribution Packages - -Besides the classic zip archives as well as the APT packages for Linux, there are by now many further alternatives how to get hold of openHAB. (Please note that only openHABian is available from today on, the other types of packaging of the final 2.0 version will follow in the next days): - - - [openHABian](http://docs.openhab.org/installation/openhabian.html): A hassle-free setup for the Raspberry Pi, starting off a minimal SD card image. - - [PINE64 image](http://wiki.pine64.org/index.php/Pine_A64_openHAB_Release): A pre-installed openHAB setup as an SD card image. - - [Docker](http://docs.openhab.org/installation/docker.html): A Docker container, available for both x86 and ARM architectures. - - [Synology-NAS](http://docs.openhab.org/installation/synology.html): Packages for the popular Synology Diskstations - - [QNAP-NAS](http://docs.openhab.org/installation/qnap.html): Likewise, there are installation packages available for QNAP. - - [Ubuntu Core Snap](https://github.com/openhab/openhab-snap/blob/master/README.md): Snaps for the new Ubuntu Core - -Overall, openHAB 2.0 is a huge step forward and I would like to thank all the new contributors and maintainers that have joined the project recently, as without them none of this would have been possible. Todays release 2.0 is just a first step and many more things are to be introduced with upcoming 2.x releases - so stay tuned! \ No newline at end of file diff --git a/blog/2017-05-28-smarthomeday.md b/blog/2017-05-28-smarthomeday.md deleted file mode 100644 index 819907f1..00000000 --- a/blog/2017-05-28-smarthomeday.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: BlogPost -title: Smart Home Day 2017 -date: '2017-05-28T00:00:00.001+00:00' -author: Kai Kreuzer -tags: -- openhab -- smarthome -modified_time: '2017-05-28T00:00:00.001+00:00' -previewimage : /uploads/2017-05_smarthomeday.jpg -excerpt_separator: ---- - -On May 20, 2017, the openHAB Foundation organised its first own event, the [Smart Home Day](https://www.eventbrite.com/e/smart-home-day-registrierung-33411227882) in Darmstadt at the local [University of Applied Sciences](https://www.h-da.com/), which was co-located with the first annual assembly of the openHAB Foundation members. - -The Smart Home Day was a great get-together of around 50 smart home enthusiasts. For many it was the first time to meet people in person after having known their Github identities for years already and to engage in interesting discussions around open source and smart homes. - - - -A special thanks to [Christoph Engelbert](https://twitter.com/noctarius) who led through the program as a moderator. - - - -Prof. Dr. Zahout-Heil and Prof. Dr. Jeromin of the University of Applied Sciences Darmstadt - -The day started with a warm welcome by the prodekan [Prof. Dr. Carsten Zahout-Heil](https://eit.h-da.de/fachbereich/personen/lehrende/professoren/carsten-zahout-heil/), followed by an inspiring talk from Prof. Dr. Ingo Jeromin about the challenging future of energy supply. -I followed up on this with my very personal experience about the smart meter rollout in Germany and showed the potentials of openHAB for energy-related use cases. - -The afternoon was all around the benefits of open source engagement. While I outlined the general opportunities for companies when investing in open source software, we had several member companies talking about their own motivation for supporting the foundation and contributing to openHAB. -Even to me this was quite impressive to see how heterogeneous the projects and activities are and it gave valuable insights into the possibilities of openHAB. - - - -Presentations by openHAB Foundation members - -You can get some impressions of the event through the following links: - -- Article in the [Darmstädter Echo](http://www.echo-online.de/wirtschaft/wirtschaft-suedhessen/sensoren-fuers-smarte-zuhause_17910815.htm) (local newspaper) -- Slides of the [Welcome and Introduction](https://speakerdeck.com/kaikreuzer/smart-home-day-2017-welcome) -- Slides about [the Future of Energy Supply](./documents/2017-05_Die_Zukunft_der_Energieversorgung.pdf) -- Slides of the talk about [Energy & openHAB](https://speakerdeck.com/kaikreuzer/smart-home-day-2017-energy-and-openhab) -- Slides on [Why Open Source Matters](https://speakerdeck.com/kaikreuzer/smart-home-day-2017-why-open-source-matters) -- Slides of the [presentation from QAware](./documents/2017-05_QAware.pdf) -- Slides of the [presentation from Musala Soft](./documents/2017-05_Musala_Soft.pdf) -- Slides of the [presentation from Venture Services Seeheim](./documents/2017-05_vss.pdf) - -Thanks to everyone who has attended. After all the positive feedback, I am sure that we will do a similar event next year again! - - - -Pictures of the event are available on Google Photos diff --git a/blog/2017-10-22-smarthomeday-ece.md b/blog/2017-10-22-smarthomeday-ece.md deleted file mode 100644 index 783d1189..00000000 --- a/blog/2017-10-22-smarthomeday-ece.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -layout: BlogPost -title: Smart Home Day @ EclipseCon Europe 2017 -date: '2017-10-31T00:00:00.001+00:00' -author: Kai Kreuzer -tags: -- openhab -- smarthome -- eclipsecon -- smarthomeday -modified_time: '2017-10-31T00:00:00.001+00:00' -previewimage : /uploads/2017-10_smarthomeday.jpg -excerpt_separator: ---- - -Similar to every year since 2006, [EclipseCon Europe 2017](https://www.eclipsecon.org/europe2017/) took place at the end of October in Ludwigsburg, Germany, and it was packed with great talks and content all around the Eclipse universe. - -For the first time, there was also a [Smart Home Day](https://www.eclipsecon.org/europe2017/smarthome) colocated on the Sunday before EclipseCon started. -The Smart Home Day was hosted by the [openHAB Foundation](https://www.openhabfoundation.org/) with [QIVICON by Deutsche Telekom](https://www.qivicon.com/en/) as a sponsor. - - - -The day was all about [Eclipse SmartHome](https://www.eclipse.org/smarthome/), its solutions and especially its community. -There were twelve great presentations over the day and a huge number of core community members attended the day. -Additionally, live demos and posters about openHAB-related research projects at universities were shown. - -The agenda proved to be very attractive: More than a week before the date the event was already fully booked. With more than 90 attendees it was beyond any expectation and the venue had reached its maximum capacity. - - - - -#### The Morning - -The day started with presentations around Open Source in general, a technical look into the QIVICON platform and the latest updates from the Eclipse SmartHome framework developments. All presentations were recorded (thanks to Markus Storm) and can be viewed by clicking the image (while the talk titles link to the slides): - -| Presentation | Video | -|-|-| -| [Welcome and Introduction](./documents/2017-10_Kai_Kreuzer_Welcome.pdf)
Kai Kreuzer, President openHAB Foundation | [![Welcome and Introduction](https://img.youtube.com/vi/h8Jn8k1IDdY/1.jpg)](https://www.youtube.com/watch?v=h8Jn8k1IDdY) | -| [Why Open Source Foundations Matter](./documents/2017-10_Ian_Skerrett_Why_Open_Source_Foundations.pdf)
Ian Skerrett, VP Marketing Eclipse Foundation | [![Why Open Source Foundations Matter](https://img.youtube.com/vi/gR1Kidk04D8/1.jpg)](https://www.youtube.com/watch?v=gR1Kidk04D8) | -| [How Deutsche Telekom Delivers a Mass Market Product based on Eclipse SmartHome](./documents/2017-10_Jochen_Hiller_QIVICON.pdf)
Jochen Hiller, Product Owner QIVICON Runtime | [![How Deutsche Telekom Delivers a Mass Market Product based on Eclipse SmartHome](https://img.youtube.com/vi/TVNmorY9Y3M/1.jpg)](https://www.youtube.com/watch?v=TVNmorY9Y3M) | -| [About the Importance of UX in Open Source Projects](./documents/2017-10_Thomas_Dietrich_UX.pdf)
Thomas Dietrich, openHAB Documentation Lead and openHABian Maintainer | [![About the Importance of UX in Open Source Projects](https://img.youtube.com/vi/EgzARcG3_1I/1.jpg)](https://www.youtube.com/watch?v=EgzARcG3_1I) | -| [Eclipse SmartHome turned Inside Out - Updates from the Core Framework](./documents/2017-10_Simon_Kaufmann_ESH_Updates.pdf)
Simon Kaufmann, Eclipse SmartHome Committer | [![Eclipse SmartHome turned Inside Out - Updates from the Core Framework](https://img.youtube.com/vi/RoG4L9gATd8/1.jpg)](https://www.youtube.com/watch?v=RoG4L9gATd8) | - -#### The Early Afternoon - -Right after lunch the day continued with some deeper technical insights - the VS Code Extension was shown as a replacement for the Eclipse SmartHome Designer, people learned about the Z-Wave protocol and how it is integrated in openHAB and the internals of the openHAB Cloud were discussed. - -| Presentation | Video | -|-|-| -| [Using VS Code as a Powerful Editor for Textual Configurations](./documents/2017-10_Kuba_Wolanin_Visual_Studio_Code.pdf)
Kuba Wolanin, VS Code Extension Maintainer | [![Using VS Code as a Powerful Editor for Textual Configurations](https://img.youtube.com/vi/3X_5JUf5vY4/1.jpg)](https://www.youtube.com/watch?v=3X_5JUf5vY4) | -| [A Deep Dive into the Z-Wave Binding ](./documents/2017-10_Chris_Jackson_A_Deep_Dive_into_Z-Wave.pdf)
Chris Jackson, Z-Wave & ZigBee Binding and HABmin Maintainer | [![A Deep Dive into the Z-Wave Binding](https://img.youtube.com/vi/yldzfQjnTtY/1.jpg)](https://www.youtube.com/watch?v=yldzfQjnTtY) | -| openHAB Cloud: From IFTTT, Alexa & Google Home Integration to a Scalable Multi-Cloud Microservices Architecture
Mehmet Arziman, openHAB Cloud Maintainer | [![openHAB Cloud: From IFTTT, Alexa & Google Home Integration to a Scalable Multi-Cloud Microservices Architecture](https://img.youtube.com/vi/AxLZgtlKo5Y/1.jpg)](https://www.youtube.com/watch?v=AxLZgtlKo5Y) | - -#### The Late Afternoon - -After a coffee break, which was extensively used for networking and discussions, a sequence of short inspirational talks concluded the day. - -Besides a brief intro to the oneM2M standard and its prototyped integration with Eclipse SmartHome and a praise of the virtues of code reviews, community members presented what they have realized with Eclipse SmartHome resp. openHAB: - -It was extremely impressive with what little latency a local voice recognition can score and how well it works if there is a restricted vocabulary. -The setup of a whole office proved convincingly that openHAB can easily scale to be the brain of whole buildings and not just private homes - and that it is running smoothly since 18 months without a single reboot. And Markus Storm gave a glimpse into some of his personal, more advanced use cases that help him to deal with automatic mowers, robot cleaners, kids and mothers-in-law alike. - -| Presentation | Video | -|-|-| -| Connecting Domains: Interworking of Eclipse SmartHome with oneM2M
Andreas Kraft, Telekom Innovation Laboratories | [![Connecting Domains: Interworking of Eclipse SmartHome with oneM2M](https://img.youtube.com/vi/xAsNeWRggqo/1.jpg)](https://www.youtube.com/watch?v=xAsNeWRggqo) | -| [About the Why and How of Code Reviews](./documents/2017-10_Martin_van_Wingerden_Code_reviews.pdf)
Martin van Wingerden, openHAB Add-ons Maintainer | [![About the Why and How of Code Reviews](https://img.youtube.com/vi/IrbdME7gECM/1.jpg)](https://www.youtube.com/watch?v=IrbdME7gECM) | -| Experiences with Offline Voice Interaction in openHAB
Yannick Schaus, HABPanel Maintainer | [![Experiences with Offline Voice Interaction in openHAB ](https://img.youtube.com/vi/E90HCCoaMac/1.jpg)](https://www.youtube.com/watch?v=E90HCCoaMac) | -| [An Enterprise Grade Project with openHAB](./documents/2017-10_George_Erhan_An_enterprise_grade_project_with_openHAB.pdf)
George Erhan, openHAB Community Member | [![An Enterprise Grade Project with openHAB](https://img.youtube.com/vi/LJiw5INmwmc/1.jpg)](https://www.youtube.com/watch?v=LJiw5INmwmc) | -| [Presence Detection and Other Cool Applications](./documents/2017-10_.Markus_Storm_Presence_detection_and_some_cool_applications.pdf)
Markus Storm, openHAB Community Member
Videos shown during the talk: [Landroid](https://www.youtube.com/watch?v=jcTe5dsTQfw), [Hombot](https://www.youtube.com/watch?v=PvvddCRmCmk), [TV](https://www.youtube.com/watch?v=xwRHkXialGE) | [![Presence Detection and Other Cool Applications](https://img.youtube.com/vi/AG48Amt1afM/1.jpg)](https://www.youtube.com/watch?v=AG48Amt1afM) | - -A big thanks to everyone who has attended the event and also thanks for all the positive feedback about it! -It is tentatively planned to repeat a similar event next year at EclipseCon Europe - so please make sure to save October 21, 2018 in your calendar! - -You can find pictures of the Smart Home Day on Google Photos: - - - diff --git a/blog/2017-12-18-openhab22.md b/blog/2017-12-18-openhab22.md deleted file mode 100644 index 07b5030b..00000000 --- a/blog/2017-12-18-openhab22.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -layout: BlogPost -title: openHAB 2.2 Release -date: '2017-12-18T00:00:00.001+00:00' -author: Kai Kreuzer -excerpt: "Half a year has passed since openHAB 2.1 and I am very happy that we still made it before Christmas, so that you have something nice to play with during the holiday season: openHAB 2.2 is out!" -tags: -- openhab -- eclipse -modified_time: '2017-12-18T00:00:00.001+00:00' -previewimage: /uploads/2017-12_logo.jpg -excerpt_separator: ---- - -Half a year has passed since openHAB 2.1 and I am very happy that we still made it before Christmas, so that you have something nice to play with during the holiday season: [openHAB 2.2 is out](https://github.com/openhab/openhab-distro/releases/tag/2.2.0)! - -The most obvious change that you will immediately notice is the rollout of our [new openHAB logo](https://community.openhab.org/t/new-logo-for-openhab/35140), which you will now find in all our apps, UIs and websites. - -But the functional evolution is of course of much more importance, and a lot has happened in the past months. - -While you can find all the details in the [official Release Notes](https://github.com/openhab/openhab-distro/releases/tag/2.2.0), let me highlight a few of those features. - - - -### New Features for Setup & Configuration - -Huge effort went into the user experience when setting up and configuring openHAB: - -#### Language Server Protocol (LSP) Support and VS Code Extension - -One major step forward is the introduction of [Language Server Protocol (LSP)](https://langserver.org/) support in the core runtime. This allows text editors to remotely connect and do syntax validation and content assist on our configuration files, which is specifically useful when writing rules. Since these were the main features of the former Eclipse RCP-based "openHAB Designer", this tool has been discontinued and the [VS Code Extension](https://marketplace.visualstudio.com/items?itemName=openhab.openhab) becomes its official successor. - - - -Visual Studio Code Extension for openHAB - -Besides the "usual" features like code highlighting, syntax validation and content assist, the openHAB VS Code Extension uses the connection to the openHAB server to provide many more great features like browsing through the available items & things, showing live previews of sitemaps and many more - you should definitely check it out! - -#### Home Builder - -Another new tool for getting started is the [Home Builder](http://docs.openhab.org/configuration/homebuilder.html), which let's you easily define the whole structure of your home (floors, rooms, objects) and then creates the according item and sitemap files by the click of a button. No tedious typing or copying&pasting necessary anymore - and the risk of typos is gone! The Home Builder is automatically installed when the "Standard" installation package is chosen, all others can install it as an optional add-on. - - - -The new Home Builder generates configuration files to start from - -#### openHABian - -Talking about an easy start with openHAB, I clearly have to mention [openHABian](http://docs.openhab.org/installation/openhabian.html), which has just been released in parallel: [openHABian 1.4](https://community.openhab.org/t/openhabian-v1-4-released/37398) is available for all Raspberry Pi models from 0W to 3 as well as for the [PINE A64](https://www.pine64.org/?page_id=1194). Its setup is smoother than ever and it by now includes an abundance of options to install next to openHAB, like Node-RED, KNXd, Grafana and FIND, just to name a few. It now also includes those directly in the openHAB dashboard, so that all of them are easily accessible from a single place. - - - -Populated dashboard in openHABian - -### New Device Integrations - -Of course there are again [news on the binding side](https://github.com/openhab/openhab-distro/releases/tag/2.2.0#addons) as well. Some bindings like [DMX](http://docs.openhab.org/addons/bindings/dmx/readme.html), [Nest](http://docs.openhab.org/addons/bindings/nest/readme.html) and [Plugwise](http://docs.openhab.org/addons/bindings/plugwise/readme.html) existed before, but they are now fully rewritten and support openHAB 2 features like discovery and UI-driven configuration. -Other bindings are completely new like e.g. the (specifically in Austria) very popular [Loxone](http://docs.openhab.org/addons/bindings/loxone/readme.html) system or the [webOS-based LG TV](http://docs.openhab.org/addons/bindings/lgwebos/readme.html) support. All Apple users might find the new [iCloud binding](http://docs.openhab.org/addons/bindings/icloud/readme.html) very useful as it provides a very simple way to do location tracking of people (or rather their devices) and through which you can also trigger "find my iPhone" in case you forgot where you have put your mobile. - - - -Location tracking through the iCloud Binding - -The release notes furthermore contain a [detailed list of all noteworthy enhancements and fixes](https://github.com/openhab/openhab-distro/releases/tag/2.2.0#addons) that have been done on the existing add-ons. - -### ... and more - -Last but not least I should mention that we also have updates for the [iOS app](https://itunes.apple.com/us/app/openhab/id492054521?mt=8) and the [Android app](https://play.google.com/store/apps/details?id=org.openhab.habdroid) available in the app stores - especially the Android app has evolved a lot and it is awesome to see many new contributors being involved in it - check out all the new features and fixes in [its release notes](https://github.com/openhab/openhab.android/releases/tag/2.0.0). - -For the 2.2 release, we plan to come up with 2.2.x updates, which can potentially fix critical issues that are found, but which will more importantly add further bindings that are going to be merged during the next weeks. Our aim is to make the time that it takes for a new binding to become available to our release users much shorter than it is today. So stay tuned for further news on this! - -I hope that you like all those updates and I really think that openHAB becomes much better with every release. This wouldn't be possible without its great community. So let me end my annoucement by thanking all contributors that drive the project forward - be it through code contributions, work on the documentation or simply by reporting bugs and involving themselves in discussions. Merry christmas to all of you! - - - diff --git a/blog/2018-05-27-openhab-2-3-release.md b/blog/2018-05-27-openhab-2-3-release.md deleted file mode 100644 index 72b3c8e1..00000000 --- a/blog/2018-05-27-openhab-2-3-release.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -layout: BlogPost -category: blog -title: openHAB 2.3 Release -author: Kai Kreuzer -date: '2018-05-28T13:24:00+02:00' -excerpt: "Time flies! The last openHAB release is already more than 5 months old and much has happened since then. It is therefore clearly time to pack and ship all the nice new updates as a stable release: Here comes openHAB 2.3!" -previewimage: /uploads/homepage.jpg -tags: - - news - - release ---- -Time flies! The last openHAB release is already more than 5 months old and much has happened since then. It is therefore clearly time to pack and ship all the nice new updates as a stable release: Here comes [openHAB 2.3](/download/)! - - - -All details about the included features and fixes are listed in the [official Release Notes](https://github.com/openhab/openhab-distro/releases/tag/2.3.0), but please allow me to point you to some of my personal highlights: - -## Localisation - -A lot of effort went into translation work during the past months: Not only the openHAB dashboard, but also HABPanel and the Android app have been translated into many languages by community members all over the world. We are using the [Crowdin service](https://crowdin.com/projects?q=openhab) for this, which makes it really easy for people to contribute - it is a perfect start for actively participating in the community! - - - -Languages covered by HABPanel - -## Units of Measurement - -Another great feature that makes it much easier to use openHAB all over the world is the new support for units on numbers. This make it now possible to e.g. use imperial units even if your sensors deliver values in the metric system. You can thus have all your temperatures shown as `°F`, completely independently from the hardware you are using - the conversion is automatically done by the framework. This not only works for simple conversions like `°C` to `°F`, but also for `hPa` to `inHg` or similar things. Likewise, you can even decide to have different representations within your own measurement system. So while your sensor might deliver data in `m/s`, you can simply define that this is shown as `km/h` in your user interface. - - - - -The real power of the unit support can be seen when being used within rules: Calculations can now be done unit-safe, thus [unit disasters](http://mentalfloss.com/article/25845/quick-6-six-unit-conversion-disasters) can be avoided. Even if you add `23|°F + 82|°F + 302|K` or `5|m + 30|cm + 0.01|mi` within a rule (note that the `|` is used as a delimiter between the value and its unit in rules), the result is always correctly calculated. You can find more technical background information about this feature in the [Eclipse SmartHome blog](https://www.eclipse.org/smarthome/blog/2018/02/22/units-of-measurement.html). - -## New Integrations - -We have a new record for the number of new add-ons for a release: openHAB 2.3 brings 25 new add-ons to the existing pool! This roughly makes one new add-on per week - despite this success, there are still plenty further add-ons in the review queue, so future releases are not likely to slow down much. - -Worth to mention are the integrations with two quite widely used systems (at least in Germany): [innogy](/addons/bindings/innogysmarthome/) with a broad portfolio and [tado°](/addons/bindings/tado/) with climate and heating devices. Unfortunately, both of them do not offer any local integration, so that offline situations can not be covered. - -A more geeky device that is great for notifications is [LaMetric Time](/addons/bindings/lametrictime/): With its huge dot matrix display, it is perfect as a feedback channel to the users. - - - - -Another cool addition is the [Amazon Echo Control binding](/addons/bindings/amazonechocontrol/), which gives full control over Amazon Echo devices, so that you can control the media playback, use it as a text-to-speech service or trigger reports like the daily briefing or the weather forecast. - -Last but not least: The very first binding that was written in 2010 for openHAB has finally been migrated to a [fully 2.x compatible implementation: KNX](/addons/bindings/knx/)! This new implementation not only makes it possible to also configure the KNX integration through the Paper UI, it furthermore supports reading information from physical KNX addresses, such as manufacturer and firmware ids and it can also ping those addresses in order to determine whether the devices are still available on the bus. - -## Ecosystem News - -Besides the distribution of the runtime, you should also be aware of some news from other components within the openHAB ecosystem: - -### Google Assistant Integration - -openHAB has an officially certified [openHAB Google Assistant Smart Home Action](/docs/ecosystem/google-assistant/). The openHAB Action is one of the first open source smart home integrations in the Google Assistant ecosystem and allows users to connect their openHAB instances through the [myopenHAB service](https://www.myopenhab.org) to Google Assistant and easily manage and control their homes by voice. There is a step by step [guide](https://github.com/openhab/openhab-google-assistant/blob/master/USAGE.md) on how to use the openHAB Google Assistant Smart Home Action. The Action supports lights, plugs, switches and thermostats. It comes with multiple supported languages like English, German and French. - -Besides [Alexa](/docs/ecosystem/alexa/) and [MyCroft](/docs/ecosystem/mycroft/), this is the third voice assistant that can be used with openHAB. - -### openHAB Cloud runs from Docker to Kubernetes - -[openHAB Cloud](https://github.com/openhab/openhab-cloud/blob/master/README.md#openhab-cloud) now supports a cloud native architecture, powered by the open source [Kubernetes](https://kubernetes.io/) system to enable more scalable openHAB Cloud platform setups and deployments. openHAB Cloud comes with easy to use [deployment scripts](https://github.com/openhab/openhab-cloud/blob/master/deployment/kubernetes/kubernetes-deploy.sh) for Kubernetes and OpenShift. The Kubernetes feature relies on containers, distributed management and orchestration, and openHAB Cloud will soon completely shift into the use of microservices designed for cloud environments. More detailed information on how to deploy openHAB Cloud using Docker, Kubernetes or OpenShift can be found [here](https://github.com/openhab/openhab-cloud/tree/master/deployment). - - - -### openHAB Android App - -The [openHAB Android app](https://play.google.com/store/apps/details?id=org.openhab.habdroid) is very actively maintained and there were many bigger and smaller improvements over the last months, like the improved voice integration, the support for locations and maps, refresh on swipe, etc. Besides the version in the Play Store, there is also a Google-free, pure open-source version of the [app available on F-Droid](https://f-droid.org/packages/org.openhab.habdroid/). - -### Project Website - -We have launched our completely re-designed website this weekend - besides being more modern and faster, it now seamlessly includes this blog, has a great [showcase section](/about/showcase.html) and an excellent [search for supported devices](/addons/) (including a [complete list of all Z-Wave devices](/addons/bindings/zwave/doc/things.html)). - -For those who are interested in "offline information", don't miss to check out the new list of [upcoming events](/about/events.html)! - -### Community - -As always, I would very much like to thank all our community members that contributed to all those efforts - such a progress is only possible through the immense dedication of many different people and it is a great honor to serve this community as a project lead - keep up the awesome work! diff --git a/blog/2018-06-02-building-the-new-openhab-website.md b/blog/2018-06-02-building-the-new-openhab-website.md deleted file mode 100644 index 0e4021a2..00000000 --- a/blog/2018-06-02-building-the-new-openhab-website.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -layout: BlogPost -category: blog -title: Building the New openHAB Website -author: Yannick Schaus -date: '2018-06-02T12:57:38+02:00' -previewimage: /uploads/website-build.jpg -tags: - - website - - documentation - - docs - - vuepress - - netlify -excerpt: >- - How the openHAB website and its 450 pages of docs was rebuilt from the ground - up in a month with VuePress and Netlify ---- -Let me start by saying a word about this new blog: this post is going to break away from announcements invariably made by Kai :smile: - in fact, it's not even about home automation at all... and that's fine! This space is also for you, the community, and is aimed at providing a new front-and-center communication tool besides community.openhab.org for anything openHAB-related which might be worthwhile or interesting to share. There is an easy-to-use editor to help guests write content even if they don't have a GitHub account or aren't familiar with Git; so if you want to contribute a post, just get in touch and we'll make it happen! - -I'm thrilled to kickstart this new influx of content by giving you an overview of this new website, how it's done (I'll try to keep it interesting if you're not into web development!) and how it came to be. - - - -## Choosing the right tool - -The discussion started in February among the openHAB Foundation members and was originally about a website redesign for the main home page, to give openHAB a fresh and modern appeal to newcomers. It quickly evolved into a debate about which kinds of web technologies to use - there are indeed many possible approaches these days: - -- Pages rendered by a server using technologies like PHP or servlets (openHAB's [Basic UI](/docs/configuration/ui/basic/) or traditional CMS like WordPress or Joomla are examples of this architecture). Having dynamic client-side features are possible with this approach but need to be added on top with another JavaScript framework and/or plugins; -- A _Single Page Application_ or SPA where most or all of the rendering is done in the browser using a modern web application framework like Angular, React or Vue.js - for example, GMail, [Paper UI](/docs/configuration/paperui.html) and [HABPanel](/docs/configuration/habpanel.html) are SPAs. These feel usually very snappy and "app-like", not requiring page reloads, and allow more dynamic and interactive features... but they're not optimal for websites because they doesn't play well with search engines, since the initial page is an empty shell until the JavaScript app is fully loaded (Google and others can interpret JavaScript when indexing now, but it's still kind of hit-and-miss); -- To solve the above problem, modern web frameworks now all offer _isomorphic_ or _server-side rendering_ (SSR), allowing the initial page load to be rendered on a backend Node.js server and also boot the JavaScript app (often a SPA) client-side, by the same framework, using the same shared code. The drawback is that it requires that backend server to keep running in order to serve the pages dynamically; -- A static site generator like [Hugo](https://gohugo.io/), [Hexo](https://hexo.io/) or [Jekyll](https://jekyllrb.com/), the latter being used in GitHub Pages powering the venerable docs.openhab.org and the former website, prebuilds all pages from markup and templates; these are great for content-centric websites like documentation, load fast since nothing is dynamically-rendered, and don't require any kind of backend application server so they can be hosted on a content delivery network (CDN); -- A relatively new trend is to combine both advantages of a server-less static site generators and isomorphic rendering by prerendering all pages as static files with the initial content at build time with the SSR capability of a web framework, and load the same web framework on the client to take over once the page is loaded to allow dynamic web app components and single-page navigation. This is implemented by [Next.js](https://nextjs.org/), [Nuxt.js](https://nuxtjs.org/) or [Gatsby](https://www.gatsbyjs.org/), among others. - -Then, about one month and a half ago, as we were discussing Nuxt, I learned about [VuePress](https://vuepress.vuejs.org/) and suggested considering it as well. - - - -VuePress was started just a few weeks before by Evan You, the Vue.js project founder, with the intent to create a simple new generator for their own subprojects' documentation. Despite being literally days old, it was already gaining traction and popularity very quickly, and rightly so: it has a great responsive default theme for technical documentation - you might recognize it here since only minor modifications were made - as well as a good feature set with convincing [advantages](https://vuepress.vuejs.org/guide/#why-not) over the abovementioned alternatives. Most interestingly, it seemed it could easily allow killing two birds with one stone: being able to give openHAB a modern new "marketing" front, and easily giving the documentation pages' a fresh look in the process too, improving the navigation and giving them the new coat of paint they needed - all with the same tool. - -I was immediately convinced and hacked together a proof-of-concept in a few hours to check whether it could handle the 400+ pages of the sizeable openHAB documentation... and it actually went very well. The go-ahead came shortly after: the new website was going to be built with VuePress. - -## Migrating (or not) the documentation - -The openHAB documentation has its own [repository](https://github.com/openhab/openhab-docs/), with a carefully crafted process to gather them from about half a dozen other repositories - Eclipse SmartHome, openHAB 1 & 2 addons, and repositories for specific add-ons or integrations like the Z-Wave binding or the Alexa skill - to be combined into a single site, which is far from trivial and no small feat. It was out of the question to disrupt this process (while it's not perfect, it works, and [will be made better](https://github.com/openhab/openhab-docs/issues/665)) to accomodate the new website. Instead, my approach was to take the content out of the openhab-docs repository as is, keeping the documentation workflow oblivious of the website, and manipulate it to include it in VuePress as a separate subsequent step - improvements and streamlining of this resulting 2-step process would be made afterwards. - -This is the purpose of the [prepare-docs](https://github.com/openhab/website/blob/master/prepare-docs.rb) script, run as part of every build before the actual compile phase generating the web app and static files: this script clones the docs repository in a temporary location, moves the content into the final structure, removes Jekyll-specific things, fixes some links & content, and takes care of incompatibilities between Jekyll's and VuePress' Markdown renderers; it also determines the original location of the documents (for valid _Edit on GitHub_ links to the source), and adds logos & deprecation warnings to pages, among other things. Finally, it enumerates the add-on pages by type, creating files included by the main config file in order to build the sidebar navigation. - -All this migrated and generated content is not checked in the website's repository (using directives in `.gitignore` files) to avoid duplicates and outdated content. This is why the documentation is not actually being migrated: it continues to be maintained separately in its own repository, keeping its own existing issues and pull requests trackers, and is simply prepared and included into the website during the build. Over time, some of the more specific find & replaces in the _prepare-docs_ script tackling a specific problem with some page will be eventually fixed at the source and removed. - -## Combining Markdown rendering & Vue.js components - -One of the great strengths of VuePress is that it allows leveraging Vue.js by either taking over the whole layout of a page, like the home page or the blog, or rather embedding components inside Markdown content, giving pages some dynamic features where needed, like on the [Download](/download/) and [Add-ons](/addons/) pages. - -Vue.js is certainly one of the most trending web app frameworks today, and like its competitors it includes a component system where pages are a composition of increasingly specialized, self-contained [components](https://github.com/openhab/website/blob/master/.vuepress/components/). For example, the source of the [home page](https://github.com/openhab/website/blob/master/.vuepress/components/HomePage.vue) is basically a stack of sub-components, one for each section - making it trivial to move them around or inserting a new one -, and those sections may also in turn include other components (like the animated icons in the "Why openHAB" section or the Twitter timeline). - -I have only months of experience with Vue, but what I like the most about it is the ability to combine the markup template, styling and scripting of a component inside a single _.vue_ file, while keeping the three aspects separate - each _Component.vue_ file has a distinct `