Skip to content
SciLor edited this page May 25, 2019 · 10 revisions

Lemonbeat

The gateway connects to its devices via the Lemonbeat RF protocol. It is a fat binary "/usr/bin/lemonbeat".

Seluxit

Seluxit is the cloud solution used for the gateway. It allows the access to the gateway via app or web. There are some files on the gateway in the directory "/usr/lib/seluxit/"

-rw-r--r--    1 root     root        646383 Jan 14 16:13 8192cu.ko
-rw-r--r--    1 root     root           390 Jan  1  1970 authorized_keys
drwxr-xr-x    2 root     root             0 Jan 11 14:51 config
drwxr-xr-x    2 root     root             0 Jan  1  1970 control
drwxr-xr-x    2 root     root             0 Jan 11 14:51 logs
drwxr-xr-x    4 root     root             0 Jan 11 14:51 otau
drwxr-xr-x    7 root     root             0 Jan 11 14:51 rest_service
drwxr-xr-x    2 root     root             0 Jan 11 14:55 rm-update
drwx------    2 root     root             0 Jan 11 14:17 scripts
-rwx------    1 root     root             6 Jan 14 14:32 version
drwxr-xr-x    7 root     root             0 Jan 11 14:52 web
-rwx------    1 root     root          6921 Jan  9 13:42 xt_conntrack.ko

Shadoway

Shadoway connects the lemonbeat world with the Seluxit cloud. You will find some files in "/usr/lib/shadoway/". In earlier versions the Shadoway binary was seperate from the Lemonbeat binary. Now its combined into a single one. By changing its configuration (shadoway.conf) to a different server you may reroute the data to your own server instead of the gardena cloud.

-rw-r--r--    1 root     root          7710 Feb 11 18:09 errors.log
-rw-r--r--    1 root     root        219283 Feb 11 19:48 infos.log
-rw-r--r--    1 root     root       1000119 Feb 11 20:39 infos.log.1
-rwxr-xr-x    1 root     root          2182 Feb  6 12:39 logger.conf
drwxr-xr-x    2 root     root             0 Feb 11 15:50 lua
-rw-r--r--    1 root     root             0 Feb 11 15:54 proxy_errors.log
-rw-r--r--    1 root     root        564375 Feb 11 19:46 proxy_infos.log
-rw-r--r--    1 root     root       1046363 Feb 11 18:47 proxy_infos.log.1
-rw-r--r--    1 root     root          1241 Feb 11 18:09 proxy_warnings.log
-rwxr-xr-x    1 root     root          1568 Feb 11 15:54 shadoway.conf
-rw-r--r--    1 root     root         19871 Feb 11 19:35 warnings.log
drwxr-xr-x    5 root     root             0 Feb 11 20:04 work

Local Webinterface

The local webinterface is written in ruby with a lib called thin. Its implementation lays in "/usr/lib/seluxit/rest_service". The basic interface seems to be implemented for the local access to the gateways webinterface with just some configuration options. But there seems to be a switch to use it as webfronted like smart.gardena.com. The problem is, that the implementation is missing. So we may need to write it again... We may retrieve the xsds from Seluxit Restapi Doc.

-rw-r--r--    1 root     root          2025 Nov 16 17:55 Rakefile
-rw-r--r--    1 root     root          9047 Nov 16 17:55 backend.rb
drwxr-xr-x    3 root     root             0 Nov 16 17:55 backends
drwxr-xr-x    2 root     root             0 Jan 12 17:52 config
drwxr-xr-x    7 root     root             0 Jan 12 17:52 lib
drwxr-xr-x    2 root     root             0 Jan 17 18:55 logs
drwxr-xr-x    3 root     root             0 Jan  1  1970 xsd
 def initialize
    if Tools::gateway?
      # Setup default backend
      @lookup = Hash.new()

      @lookup['urn:seluxit:xml:bastard:gateway-1.0']     = GatewayBackend
      @lookup['urn:seluxit:xml:bastard:wifinetwork-1.0'] = WifiBackend
      @lookup['urn:seluxit:xml:bastard:session-1.0']     = SessionBackend
      @lookup['urn:seluxit:xml:bastard:timezone-1.0']    = TimezoneBackend
    else
      # Setup default backend
      @lookup = Hash.new(DocumentStore)

      @lookup['urn:seluxit:xml:bastard:session-1.0']    = SessionBackend
      @lookup['urn:seluxit:xml:bastard:register-1.0']   = RegisterBackend
      @lookup['urn:seluxit:xml:bastard:user-1.0']       = UserBackend
      @lookup['urn:seluxit:xml:bastard:acl-1.0']        = AclBackend
      @lookup['urn:seluxit:xml:bastard:permission-1.0'] = PermissionBackend

      @lookup['urn:seluxit:xml:bastard:gateway-1.0']      = GatewayBackend
      @lookup['urn:seluxit:xml:bastard:wifinetwork-1.0']  = WifinetworkBackend
      @lookup['urn:seluxit:xml:bastard:timezone-1.0']     = TimezoneBackend

      @lookup['urn:seluxit:xml:bastard:network-1.0']  = NetworkBackend
      @lookup['urn:seluxit:xml:bastard:device-1.0']   = DeviceBackend
      @lookup['urn:seluxit:xml:bastard:status-1.0']   = StatusBackend
      @lookup['urn:seluxit:xml:bastard:service-1.0']  = ServiceBackend
      @lookup['urn:seluxit:xml:bastard:value-1.0']    = ValueBackend
      @lookup['urn:seluxit:xml:bastard:log-1.0']      = LogBackend

      @lookup['urn:seluxit:xml:bastard:network-1.1']  = NetworkBackend
      @lookup['urn:seluxit:xml:bastard:device-1.1']   = DeviceBackend
      @lookup['urn:seluxit:xml:bastard:value-1.1']    = Value11Backend
      @lookup['urn:seluxit:xml:bastard:state-1.1']    = StateBackend

      @lookup['urn:seluxit:xml:bastard:configuration-1.0']   = ConfigurationBackend
      @lookup['urn:seluxit:xml:bastard:action-1.0']          = ConfigurationItemBackend
      @lookup['urn:seluxit:xml:bastard:partner-1.0']         = ConfigurationItemBackend
      @lookup['urn:seluxit:xml:bastard:calendar-1.0']        = ConfigurationItemBackend
      @lookup['urn:seluxit:xml:bastard:calculation-1.0']     = ConfigurationItemBackend
      @lookup['urn:seluxit:xml:bastard:timer-1.0']           = ConfigurationItemBackend
      @lookup['urn:seluxit:xml:bastard:statemachine-1.0']    = ConfigurationItemBackend
      @lookup['urn:seluxit:xml:bastard:virtualservice-1.0']  = ConfigurationItemBackend
      @lookup['urn:seluxit:xml:bastard:virtualvalue-1.0']    = ConfigurationItemBackend

      @lookup['urn:seluxit:xml:bastard:ifttt-1.0']         = IftttBackend
      @lookup['urn:seluxit:xml:bastard:application-1.0']   = ApplicationBackend
      @lookup['urn:seluxit:xml:bastard:file-1.0']          = FileBackend
      @lookup['urn:seluxit:xml:bastard:search-1.0']        = SearchBackend
      @lookup['urn:seluxit:xml:bastard:virtualuser-1.0']   = VirtualuserBackend

      #@lookup['urn:seluxit:xml:bastard:location-1.0'] = LocationBackend
      #@lookup['urn:seluxit:xml:bastard:location-1.0'] = MetaV2LocationBackend
      #@lookup['urn:seluxit:xml:bastard:network-1.0']  = MetaV2NetworkBackend
      #@lookup['urn:seluxit:xml:bastard:device-1.0']   = MetaV2NetworkBackend
      #@lookup['urn:seluxit:xml:bastard:service-1.0']  = MetaV2NetworkBackend
      #@lookup['urn:seluxit:xml:bastard:value-1.0']    = MetaV2NetworkBackend
    end
  end