ALTUI : Alternate App Store

From this release of AltUI: V 1.58.1763, you now have an alternative way to install and update plugins on either your Vera or openLuup systems.

Under Vera, you will need to install a plugin in order to use the AltAppStore, but that’s not (yet) available from the MiOS App Store itself, so you have to install it manually.

Attached is a Lua script which may be run in UI5 or UI7 Lua Test window which will download AltAppStore for the first time on those systems. openLuup systems do not need this since the plugin is part of the system install.

Note that following changes to Vera security around May 2018, you should use the [tt]new_altappstore_install.lua[/tt] script

Reload, and you should see the new plugin. You don’t interact directly with the plugin, it’s simply there to respond to requests from the App Store under the More > App Store menu. It displays the name of any plugin it downloads and occasionally suggests that a restart may be required to complete the update.

Acknowledgements:

Whilst a lot of thinking about this in general has been going on for a while, the final trigger was probably this discussion: An alternate Marketplace ?

Thanks to icons8 for the icon

Install script (copy, paste, and run in Lua Test Code):

-- first-time download and install ofAltAppStore files from GitHub
-- this code should be run on a Vera in the Lua Test Code window
-- 2016.11.16 @akbooer
-- 2018.02.24 upgrade SSL encryption to tls v1.2 after GitHub deprecation of v1 protocol
-- 2018.08.14 switch to /port_3480


local x = os.execute
local p = print

p "AltAppStore_install   2018.08.14   @akbooer"

local https = require "ssl.https"
local ltn12 = require "ltn12"

p "getting latest AltAppStore version tar file from GitHub..."

local _, code = https.request{
  url = "https://codeload.github.com/akbooer/AltAppStore/tar.gz/master",
  sink = ltn12.sink.file(io.open("/tmp/altappstore.tar.gz", "wb")),
  protocol = "tlsv1_2",
}

assert (code == 200, "GitHub download failed with code " .. code)
  
p "un-zipping download files..."

x "tar -xz -f /tmp/altappstore.tar.gz -C /etc/cmh-ludl/" 
x "mv /etc/cmh-ludl/AltAppStore-master/*_* /etc/cmh-ludl/"

p "creating AltAppStore plugin device"

local s,c = luup.inet.wget (table.concat {
    "http://127.0.0.1/port_3480/data_request?id=action",
    "&output_format=json",
    "&DeviceNum=0",
    "&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1",
    "&action=CreateDevice",
    "&Description=AltAppStore",
    "&UpnpDevFilename=D_AltAppStore.xml",
    "&UpnpImplFilename=I_AltAppStore.xml",
    "&RoomNum=0",
    "&Reload=1",
  })

p ("status = " .. (s or '?'))
p ("response = " .. (c or '?'))
p "done!"

-----

Publishing a Plugin in the AltAppStore

To publish a new plugin, or to edit an existing one, go to the More > App Store page and click on the Publish button at the lower left of the screen.

This takes you to a screen which starts with a Publish Application section, allowing you to create a new one, or modify an existing one after selecting a version, and below that is an extended menu of items (see attachment.) There’s a fair amount to fill in, but that’s because the UPnP structures required to define a plugin are quite complex. However, any seasoned application developer who has used the MiOS App Store to publish will be familiar with this, and hopefully find it a bit more user-friendly.

Edit Application Properties

  • App ID – a short identifier for the plugin. If this is one which is already in the MiOS App Store, it would be good to use the same numeric ID
  • App Title – the title of your plugin. It will also be used as the device name for the first plugin device created by the install process.
  • Description – slightly longer (but still short) text describing the plugin. This appears on the banner on the App Store page.
  • Instructions – fully-qualified URL pointing to a page (often GitHub) with more extensive documentation.
  • AllowMultiple – 0 or 1 flag indicating the possibility of having multiple plugin devices.
  • AutoUpdate – 0 or 1 flag. Unused at present, since there is no auto-update yet, except for AltUI itself, which checks for new versions on page refreshes.
  • Icon – HTTP reference to a xxx.png icon file
  • VersionMajor – short, often numeric, version number
  • VersionMinor – ditto

Device

  • DeviceFilename – UPnP Device D_xxx.xml file
  • DeviceType – UPnP Device type, eg. urn:schemas-upnp-org:device:altui:1
  • ImplFile – Implementation I_xxx.xml file
  • Invisible – 0 or 1 flag indicating device visibility (keep this 0)[

GitHub

  • pattern – this may be blank, but otherwise contains a Lua string pattern which matches ALL the files you want to download from your GitHub repository, which often contains lots of other things (documentation, licence, folders, …) which you don’t want to download. If you have a bit of discipline in naming your files (eg. AltUI files all contain “ALTUI”) then this is easy. If you stick to the traditional Vera naming convention for device files, then this can be “[DIJLS]_%w+%.%w+”

  • source – a string of the form “amg0/ALTUI”, being simply <your username>/<your GitHub repository for the plugin>

  • folders – this may be blank, in which case the files matching the pattern (above) are downloaded from the root folder of the repository. However, multiple folders may also be defined, the top level one being simply “”. Example: “luup_files, more_files” or even “,subfolder” for top level + subfolder

  • release – release name or GitHub tag or branch name


Vera Store

  • release – MCV version number, See the attached screen to determine the version number of your plugin version in MCV store…

showversion2

I have try to “publish” plugin from guthub (arduino gateway) and after reloading openluup it is no longer possible to see all plugins from AppStore (blank page and no plugins)
where data is stored or how to reset this to “default” ? i have already try to remove all device files and recreate it, no change.

I can try and fix that. But I think that plugin owners should be the ones to publish. Did you get hek’s permission?

It turns out that openLuup is able to load MySensors without it being in the App Store anyway. I can post those instructions when I’m back on my development system.

Hi akbooer,

I don’t see the ALTUI Appstore (blank page) since this morning. I’ve installed a basic RPI-Razberry-Openluup-ALTUI and was all ok.

tnks

donato

[quote=“d55m14, post:5, topic:192721”]Hi akbooer,

I don’t see the ALTUI Appstore (blank page) since this morning. I’ve installed a basic RPI-Razberry-Openluup-ALTUI and was all ok.

tnks

donato[/quote]

your published plugin did not have a title. it crashed the app. I removed your plugin from the store for now

[quote=“amg0, post:6, topic:192721”][quote=“d55m14, post:5, topic:192721”]Hi akbooer,

I don’t see the ALTUI Appstore (blank page) since this morning. I’ve installed a basic RPI-Razberry-Openluup-ALTUI and was all ok.

tnks

donato[/quote]

your published plugin did not have a title. it crashed the app. I removed your plugin from the store for now[/quote]

Hi amg0,

tnks

but I didn’t publish any plugin.

:slight_smile:

[quote=“d55m14, post:7, topic:192721”][quote=“amg0, post:6, topic:192721”][quote=“d55m14, post:5, topic:192721”]Hi akbooer,

I don’t see the ALTUI Appstore (blank page) since this morning. I’ve installed a basic RPI-Razberry-Openluup-ALTUI and was all ok.

tnks

donato[/quote]

your published plugin did not have a title. it crashed the app. I removed your plugin from the store for now[/quote]

Hi amg0,

tnks

but I didn’t publish any plugin.

:-)[/quote]
Ok no pb, someone did. No issue.

If you use the Release 8.5 candidate, on the development branch, that should show the MySensors plugin on the Plugins page. Simply press the adjacent Uppdate button to install the app… it won’t even do a reload, but the app should come up and running. It will, of course, need configuration.

If you need further discussion on this, we should switch to the openLuup board.

Hi akbooer,

I just tried adding the Harmony Hub Control plugin and I think I got it right but no files are getting downloaded looking at the logs.

First I tried just the Vera Store version, leaving all GitHub fields blank. Nothing happening, but maybe that only works on a Vera it self and not openLuup.

Then I added the GitHub details and it now creates an entry in the plugins list and a device gets created. However, it is not working. When I look at the log I am not seeing anything being downloaded.

The GitHub is reneboer/vera-Harmony-Hub, branch is master, and the code is in folder chm-ludl and the icons in folder icons. I left the pattern empty as all files need to get downloaded.

What am I doing wrong?

Update: i found the instruction for the sub folders is not entirely correct. You have the specify the folder names without brackets, quotes and spaces. I.e. in my case : chm-ludl,icons and not [ “chm-ludl”, “icons”]

So, Harmony lovers, you can now install on openLuup with a single click. Nice… :smiley:

Cheers Rene

Great. I love it when problems are solved by the time you first read of them!

I just installed the Alt App Store… that went fine and seems to work BUT when I try to install beta 1.99 while the button turns green and says ‘success’ - the update never installs?

So it sounds like some things work and others don’t? Can you be a bit more specific? This is on Vera or openLuup?

The download for AltUI is 2 Mbyte, or so, and can take over a minute - did you wait long enough?

The next version of the AltAppStore plugin will have some sort of progress indicator to make things clearer.

So it sounds like some things work and others don’t? Can you be a bit more specific? This is on Vera or openLuup?

The download for AltUI is 2 Mbyte, or so, and can take over a minute - did you wait long enough?

The next version of the AltAppStore plugin will have some sort of progress indicator to make things clearer.[/quote]

I’m using Vera3 UI5 and AltUI 1.60.1810

In AltUI…
‘Misc’ → ‘Check for Updates’ result is “You already have the latest version”
Alt AppStore and click the blue Alt button it responds… “u:update_pluginResponse”: { “JobID”: “1543” }

I’ve just checked this out on a UI7 system and it worked OK, upgrading build 1810 to 1812, which is the 1.99beta version.

In AltUI... 'Misc' -> 'Check for Updates' result is "You already have the latest version"

Yes, I believe that’s correct, because it doesn’t know about the beta version in the AltAppStore, it’s only checking the tagged releases in GitHub.

Alt AppStore and click the blue Alt button it responds... "u:update_pluginResponse": { "JobID": "1543" }

Yes, that’s good, it means the upload has started. The question is what happens next? It’s at this point it would be very good to check the logs, because the plugin should log every file downloaded, or any error that it encounters.

You have, of course, done a refresh of your browser and checked again.

I have Vera 3 UI5 (1.5.622) and my Atl UI plugin version is 1.37.1504

I just installed the ALT Appstore plugin 2016.06.24

In the Alt UI under Misc I don’t see a Check for Updates.

So how do I update my Alt UI plugin?

the best at this point is to update it from the VERA app store and then let it install , and then , when launching ALTUI, accept the auto upgrade

alternatively use the magic url to update it by opening this url in a browser and ignoring the output and waiting at least 2 reloads.
magic url is
/port_3480/data_request?id=action&serviceId=urn:micasaverde-com:serviceId:HomeAutomationGateway1&action=CreatePlugin&PluginNum=8246&Version=32180

The magic URL seems to have worked. Thank you

I am sorry to have to ask this, but being really new to Vera, what does “copy and upload these files in the usual way” consist of? How does one go about doing that?

Do you know how to use ssh to log in to Vera’s command line prompt?