Announcement

Collapse
No announcement yet.

HS4 Alpha Plugin Development Release

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #46
    That is coming back to me now. When we talked about this before I had limited staff to do anything with it. I have a much larger staff as you can probably see by how much work has been put into the HS4 API including much documentation, coming soon. So I am willing to discuss this some more and come up with a solution that works for your type of application.

    The new UI displays on the web and in HomeSeer Mobile. It is not for use with HSTouch. HST is not going away and will get some attention, probably after HS4 is finalized.

    Originally posted by dcorsus View Post



    Actually what some of us were asking for was an "enhanced" listbox "device". A device that could be dropped on an HST screen but content could be populated dynamically by a PI, irrespective whether the content represents music tracks, or email titles, or do-to action items. So no shoe-horning of a navigation flow from artist, to album to tracks or whatever was baked into the MediaAPI. I believe there was a listbox you could drop onto an HST screen, it was very rudimentary and linked to an HS device, nothing dynamic and it required changes. PCP actually wrote a very clear spec for it but also that didn't go anywhere. Actually the jqListBoxEx functions that was made available to drop onto our own GUI config screens, was perfect for me. The webpage I provided through the PI had 2 of these, one showing a navigation tree, where you could navigate in or out of any type of linked content, whereas the other one was used to show a queue of selected items. Unfortunately, the only way to get that into HST screens was through iFrames and a lot of in-depth HTML knowledge. As far as I can tell, only one or two experts attempted to embedded it into their HST control screens.

    Am I correct to assume that the new GUI I now see, is going to be the same for mobile devices (or HST enabled devices)? Is HST over time going to wither away on the vine?

    All I need is a "dynamic" listbox that queries the PI directly instead of retrieving info from the HS Database and events (click, double click, selection, load....) are conveyed to the PI allowing the PI to update the content and we come full circle with HS updating the listbox on the attached control devices.

    Dirk
    💁‍♂️ Support & Customer Service 🙋‍♂️ Sales Questions 🛒 Shop HomeSeer Products

    Comment


      #47
      Originally posted by rjh View Post
      That is coming back to me now. When we talked about this before I had limited staff to do anything with it. I have a much larger staff as you can probably see by how much work has been put into the HS4 API including much documentation, coming soon. So I am willing to discuss this some more and come up with a solution that works for your type of application.
      Excellent !!!

      I'll dig up PCPs email .... or .... it might actually all be captured in Bugzilla or the HS3 developer thread(s). Are we still using Bugzilla?

      Comment


        #48
        Originally posted by rjh View Post
        The entire HS3 API is still there, the HS4 SDK simply wraps a new API over it. So your HS3 plugins will work the same in HS4 as they did in HS3. We have hidden many HS3 API's that we felt were either not used by anyone (hard to tell on this!), or maybe just did not work properly. But they are still there. As plugins get developed we will note any API's that are missing that you might need and see if it's worth adding them to the new HS4 API.


        Thanks but I guess I meant more the users databases that will contain devices/events - are those going to work from HS3 to HS4? Ive tried to restore a HS3 DB but it's not yet supported it seems. I think from what you are saying then it should as the HS3 API is the same? It's just all the trigger data for my plugins are in there.

        Comment


          #49
          The DB has not changed. I loaded my HS3 DB under HS4 and it loaded fine. Just copy your HS3 DB to the data folder and edit the settings.ini to point to this DB. I think setup does allow you to pick a DB, but not all functionality it working there (like renaming, etc.)

          Originally posted by mrhappy View Post

          Thanks but I guess I meant more the users databases that will contain devices/events - are those going to work from HS3 to HS4? Ive tried to restore a HS3 DB but it's not yet supported it seems. I think from what you are saying then it should as the HS3 API is the same? It's just all the trigger data for my plugins are in there.
          💁‍♂️ Support & Customer Service 🙋‍♂️ Sales Questions 🛒 Shop HomeSeer Products

          Comment


            #50
            I don't think it was in bugzilla, but there was an email thread which I probably have. I will discuss internally and see what ideas we can come up with.

            Originally posted by dcorsus View Post

            Excellent !!!

            I'll dig up PCPs email .... or .... it might actually all be captured in Bugzilla or the HS3 developer thread(s). Are we still using Bugzilla?
            💁‍♂️ Support & Customer Service 🙋‍♂️ Sales Questions 🛒 Shop HomeSeer Products

            Comment


              #51
              Originally posted by rjh View Post
              I don't think it was in bugzilla, but there was an email thread which I probably have. I will discuss internally and see what ideas we can come up with.


              From: Richard Helmke <rjh@homeseer.com>
              Sent: Friday, February 20, 2015 7:46 AM
              To: Dirk Corsus <dirk@famcorsus.com>
              Cc: Wade Benjamin <wade@homeseer.com>
              Subject: Re: MediaAPI support

              I think I see what you are asking for, you want more of a generic UI so a PI can present information any way they want. That is a UI issue we can visit. How about the API in the plugin itself, are you proposing a different API there? I know Wade has made some changes to that to reduce the function count. Does the current function calls not fit for streaming? I know there could be an issue if you want to get a large number of items, like genre rock, that could return a lot of artists or albums. An extension to that could be to get items in chunks, this would help HSTouch also so its not churning on a ton of data. There may be some limitations also, I bet Spotify will not give you ALL the tracks available if you ask for them. So a capabilities type of API may be needed so the UI can adjust based on what the API can support.

              Maybe a conf call between you, Wade and I, would help iron this out. As Wade gets into Spotify some more, I am sure we will need to make some API changes due the vast amount of data he will be pulling. I am sure your experience with SONOS could be helpful.

              -Rich


              Richard Helmke

              HomeSeer Technologies
              voice: 603/471-2816

              facebook YouTube Twitter
              email | website | products | support | message board

              On Thu, Feb 19, 2015 at 11:27 PM, Dirk Corsus <
              dirk@famcorsus.com> wrote:
              Ah the perfect time to re-iterate the ask, especially if you want to build a front end to an on-line service, no chance you can “download” its library. The idea is that you NOT burden HS3/HS Server with specific media stuff (unlike HS2 where everything was one big executable), you leave the implementation of how to navigate media to the PIs. You provide a generic and efficient way to communicate between PI and user interaction through HS Touch. So in my view, that is just a listbox type of object with a number of “methods”.

              The proposal was something as follows:
              - You create a new type of HS device, let’s call it Listbox, but you can call it MediaObject
              - It doesn’t have to show up on the device management page
              - It has a method to load it with strings; better with object, could be pairs of value, text; best image, value, text or XML that has image URLS in them
              - A PI user can add buttons to this device, these buttons could be load tracks, albums, genre ....... up to the PI author to add what he wants to support
              - So the intent is now obviously to have this device show up as a selectable item in HS Designer with the intent of linking the content of the listbox with a listbox that you show on a HS Touch created screen and the buttons use to load that listbox with whatever you want
              - So now you need a mechanism to navigate, which could be single click, double click, control click, perhaps more advanced events like swipe up down left right etc
              - So the events that are generated on the HS screen now need to get back to the PI so the PI can load the listbox with something else, we could do this like we call a PI when a button is pressed on a device that belongs to it. The event would have to contain the type of event (click, double click, left swipe, magnify etc and when an item is clicked, obviously the content of the item selected

              So going back to Spotify, the PI author would obviously write the protocol on how to communicate w/ Spotify, do the events, will have to think on how you create events on a specific item so you need to actually navigate through the content while creating the event (do that for Sonos MediaController PI already, a bit tricky) and this PI would create the HS Listbox device which now effectively becomes the :man behind the curtain” on what to get from Spotify, load it in the listbox device so it shows up on the HS Screen(s), and now deal with load xyx command, click, double click ....

              Does that make sense? I’d be more than happy to help (re)write HS Server and HS Touch provided I can test it out myself.

              Dirk


              Comment


                #52
                Originally posted by rjh View Post
                I don't think it was in bugzilla, but there was an email thread which I probably have. I will discuss internally and see what ideas we can come up with.

                Email trail, word document and might have been captured in the private forum at the time. Traveling right now and did not have a chance to look at HS4 or dig that up. We definitely discussed a list box (similar to the generic jqListbox dcorsus mentions with callback and ways to display icons). I should be able to dig it up as a refresher. Again we ended up with a device approach for media browsing rather than a media API but the current HS3 was not rich enough to make it happen.

                Comment


                  #53
                  Originally posted by rjh View Post
                  I am not saying that a conversion is easy, we just felt that going forward it doesn't make sense. The old UI managed the instances and the new UI does not. So we would have to modify the new UI. We felt that the user experience with this was not good, hence the reason for the change.

                  When I say that HS3 plugins are supported under HS4, they work, but they are managed with the old UI, so not optimal for the user.

                  In regards to the MediaAPI, I believe we talked about this with others a while back and decided that devices would be used for control, rather than an API. So no work has been done to that API and we have left it out of HS4 (what was there, is still there for HS3 plugins).

                  If devices won't work, let me know the issues.


                  I did not yet have chance to look at HS4 and try my plugins, but several of my plugins use single EXE, multiple interface for example each player is an interface within the same exe. Not having this would require a lot of work (in the PI), difficult and not I have the time or appetite for such an effort. Maybe I did not read this correctly.

                  Comment


                    #54
                    rjh JLDubz
                    I understand that HS3 plugins will run in HS4, although using the older UI. If I write an HS4 plugin, will it be backwards compatible with HS3? How will the UI be handled - will it be jquery or bootstrap?
                    ​​​​​​​
                    HS4Pro on a Raspberry Pi4
                    54 Z-Wave Nodes / 21 Zigbee Devices / 108 Events / 767 Devices
                    Plugins: Z-Wave / Zigbee Plus / EasyTrigger / AK Weather / OMNI

                    HSTouch Clients: 1 Android

                    Comment


                      #55
                      A full API reference doc can be found here: https://docs.homeseer.com/display/HSPI/API+Reference

                      I will start keeping an updated list of links to important recourses for everyone in this thread: https://forums.homeseer.com/forum/de...mportant-links

                      We have heard all of your feedback and are going over all of it. Thank you very much.

                      I am working to organize all of this in an issue tracker so we can make sure we are addressing all of your concerns and provide documentation to cover common questions where we can.

                      Regarding a sample for working with devices: we are doing some final testing on our sample in-house, and it will be published to GitHub alongside the other two samples this week.

                      Thanks again.

                      Comment


                        #56
                        Originally posted by rmasonjr View Post
                        rjh JLDubz
                        I understand that HS3 plugins will run in HS4, although using the older UI. If I write an HS4 plugin, will it be backwards compatible with HS3? How will the UI be handled - will it be jquery or bootstrap?
                        HS4 plugins will not be backward compatible with HS3.

                        Comment


                          #57
                          dcorsus pcp

                          We have currently left the energy, speech, and media APIs virtually untouched in the new SDK; as we identified they were not critical functionality to the majority of plugin developers. This is not to say we aren't planning on doing anything with it. We just haven't yet. I'll circle back on this with you when we have a chance to discuss this internally. I want to understand how someone would want to interact with the platform from both a user and programming interface perspective.

                          Comment


                            #58
                            Will there be a way to mark a plugin as only HS3 and have it not run on HS4?

                            Comment


                              #59
                              Originally posted by JLDubz View Post
                              A full API reference doc can be found here: https://docs.homeseer.com/display/HSPI/API+Reference

                              I will start keeping an updated list of links to important recourses for everyone in this thread: https://forums.homeseer.com/forum/de...mportant-links

                              We have heard all of your feedback and are going over all of it. Thank you very much.

                              I am working to organize all of this in an issue tracker so we can make sure we are addressing all of your concerns and provide documentation to cover common questions where we can.

                              Regarding a sample for working with devices: we are doing some final testing on our sample in-house, and it will be published to GitHub alongside the other two samples this week.

                              Thanks again.
                              I haven't had much time lately but I've been trying to read along.

                              Will the issue tracker be available to us? Otherwise how will we be submitting issues? Just by the forum and "hope" it get recorded? If you're using Github for the samples why not use Github for issues and mark it as a private project and invite developers?

                              Comment


                                #60
                                Originally posted by rjh View Post
                                Note that we dropped support for multi instance plugins as this was just a shortcut for developers. We suggest you just add support for multiple interfaces in your plugin.We can offer ideas if you like.
                                rjh maybe indeed some ideas are welcome. I realized today that I also have users who script heavily and they use the hs.pluginfunction which is called with an instance and therefore calls the correct method for the correct instance. How do we see this being supported if the instances go away? Does this mean that the people who wrote scripts need to update everything? I guess one answer to my own question is that it will all continue to work as long as the PI is "an HS3 style" PI. Is that correct?

                                Second questions is about DB migration. Is it the objective of the HS team to provide the capability to start from an HS3 configuration and do an upgrade to HS4 keeping all settings? I need to know so I can decide what I need to think about wrt to my own PI and its config. One of the issues I run into, time and time again, is that my users delete Sonos devices from the HS devices management page which causes irrecoverable inconsistencies with the PI's .ini file. I have been thinking about storing information about the PI into the HS database but that would mean pretty much NO DB migration when going from HS3 to HS4. So what is the intention foreseen by the HS team?

                                Comment

                                Working...
                                X