Tuesday at 02:34 PM2 days @Michel Kohanim After watching @Javi's video of his pet door Plugin creation, I decided to venture in. Had some serious learnings that all ended with an amazing success on a plug in that I had been working on and off with @bpwwer for almost a year w/o success.It took me about 1 hour to actually create the plugin, but, because of my total lack of understanding of AI (see points below) total time was about 4-5 hours. COST: $5.80 ! And its appears to be working 100%! Plug-in is for Meross brand wifi switches / plugs / bulbs etcTOTALLY AMAZING......Some learnings:1) UD is positioning Eisy-AI as a "tool" for ease of use / troubleshooting and developing. However, the documentation that is available is anything but clear to someone w/o AI experience The irony here is that with Claude or other AI, a truly user friendly how-to document could easily be created by UI. Most of my time was spent on just figuring out things related to AI, GitHub, SSH ing with Github tokens (not passwords), buying anthropic tokens, etc etc etc. One hour alone was just finding the "sparkle" icon in the upper right corner to open the Eisy-AI chat window.... which is literally NOT documented anywhere!2) I started simple. Had AI create a simple program that turns on a corresponding Zwave plug on when a separate light gets turned on by a motion detector and then turns it off 5 minutes after the trigger light is turned off. Took about 40 seconds and cost $0.30. Program was clear, named a common sense name and had comments below that described its purpose. Worked immediately. I then had it move the program to a folder of my choice which it did easily. 3) For the plugin, I had a free Claude window open separately where I created a parallel effort to help understand all the things I needed to do such as buying tokens, setting up tokens passwords, explaining the plugin. It also created the language that I needed to paste into Esiy Ai to be the most efficient, clear, protective of personal info and cost effective. Without that help I would have not succeeded.4) I had to do several things within Eisy and on my Mac that made me nervous such as direct downloads and ssh commands that I didnt understand. SIDE NOTE: I just tried to go back in history to find these to give as examples and there does not seem to be a way to go back in history in the Eisy Ai chat window. I can see my "session" but cant do anything with it.5) Currently the repository is private as I only have 8 of my ~30 devices connected (remodel work being done). In about a month, I will have a higher variety of meross products connected and will further pressure test the plugin. After that I would like to publish it to the store, but have no idea how. Again will rely on Claude and Eisy AI to do it for me.Overall it was a great success and I already have 3-5 more plugins that I want to create. Maybe after that, I will actually understand what I am doing, or better said, what AI is doing! Cheers and thanks for a great product!!!
Tuesday at 03:12 PM2 days Ah, so you also caught the AI plugin bug! I was also totally amazed. Plugin creation for the rest of us! I made my Ocelot plugin as my forst one, which is already somewhat complex. I have a few other plugin ideas too. Like everything else, there's a learning curve, and you wonder how you need to "talk" to it. But you develop confidence with use. I'm expecting a flurry of plugin creation!
Tuesday at 03:30 PM2 days @dbwarner5 ,Thank you very much for sharing your experience. I totally agree regarding documentation. Question: did you need ssh for anything except creating a github repo + add your keys?With kind regards,Michel
Tuesday at 03:34 PM2 days @dbwarner5 Thanks for posting this. I have been thinking about diving in, but also see it to be a big investment of time to get going.I started to look into Claude desktop subscription and see a "Free" version. I see you have reported costs to create your plugin. What exactly did you sign up for with Claude? In one of Michel's posts on the AI plugin he suggested the configuration may be complex because of self signed certificates. Anything you can share about that?Thank you,Rob
Tuesday at 03:45 PM2 days @RRalston ,Just some clarifications: most frontier LLMs/AI (Claude, ChatGPT, Grok, Gemini, etc.) have two modes of billing:1. Subscription that you can use with your app, on the web, or some desktop app. They are usually inexpensive and you'll get a lot for $20/month. The reason is that the usage is distributed amongst millions. So, one person could be using 1% and the other 99% but at different times. Both pay $20/month2. API Key based. The usage for each API Key is based on the usage of the owner of the API key. It's not distributed, and it's usually much more expensive. They also have less expensive models and more expensive models. For instance, for the customer mode, we use Haiku which is much less expensive than Sonnet that we use for plugin-development (both are configurable in eisy-ui)Now, eisy-ui is a framework that has two interfaces to communicate with LLMs:1. Use API keys in which case eisy-ai is fully in control of managing all the interaction with the LLM, and conversation and interaction with the customer through eisy-ui. This requires getting an API Key from the LLM provider2. MCP in which case a desktop app, using the customer's subscription, manages LLM communications but uses eisy-ai for instructions and communications with eisy. This does not require API keys. Currently, we use self signed certificates for allowing the desktop to use MCP but it's not difficult. Once you point your AI desktop to eisy, everything else is automaticWith kind regards,Michel
Tuesday at 03:52 PM2 days @Michel Kohanim Thank you. That information will be very helpful when I decide to dive in! ☺️Rob
Tuesday at 04:03 PM2 days Author @RRalston I relied heavily on Claude (free) desktop app on my Mac to guide me through everything.It helped me set up my Anthropic account where I purchased $20 worth of tokens and received the API that then got put into the JSON string of the eisy ai plug in per the configuration. Down below is what Claude produced which I used to guide eisy AI in the plug in development. I would have never come up with all of that. I also had to install python on my Mac.. Claude -> Option A (simplest): install Python directlyGo to python.org/downloads and download the latest macOS installer for Python 3.Open it and click through the installer.When it finishes, open the Python folder in Applications and double-click Install Certificates.command. This avoids certificate errors when the script connects to Meross, which the library’s README warns about on Macs.Close Terminal and open a new window, then check it workedHad to check it using terminal via Claudes direction: python3 --versionThen it had me go and check the meross version number --> pip show meross_iot which then I needed to use with eisy ai for the development.The rest below is what Claude told me to do to start the development. After I was done, it also walked me through, along with Eisy AI how to back up the local plugin to GitHub, which was extremely confusing and trying. Claude--> How to startOpen the eisy-ui chat (the sparkle icon). Back up the eisy first if you haven’t recently.Send a message that contains only /developer. The README says that switches modes right away, and you should see “Switched to developer tools.” Using the command also means no conversation summary carries over, which is what you want here. githubPaste the brief below as your next message. Fill in the library version from pip show meross_iot, or delete that part if you don’t have it.--> I want to build a replacement eisy plugin for Meross lights and switches. Follow your normal workflow: check the store, research, define the device profile, generate locally, and wait for my approval before installing anything.GOALControl and show status for about 30 Meross devices (a mix of older and newer bulbs and wall switches/plugs) through the Meross cloud, US region, from eisy.EXISTING PLUGINA Meross plugin (beta 1.0.1) already exists in the PG3x store. On my eisy it discovers my devices but can't send commands or update status, and its log shows nothing after discovery. Check the store and tell me what you find. Still build a new plugin unless you find a working replacement.LIBRARY: ALREADY VERIFIEDThe Python library "meross_iot" (MerossIot by albertogeniola, version ___) works for me today. With my email, password, and API base URL https://iotx-us.meross.com it logs in, connects, discovers devices, and turns one on and off. The flow that worked: MerossHttpClient.async_from_user_password(api_base_url, email, password) -> MerossManager(http_client) -> await manager.async_init() -> await manager.async_device_discovery() -> manager.find_devices() -> device.async_update() -> await device.async_turn_on(channel=0) / async_turn_off(channel=0) -> manager.close() and await http_client.async_logout(). Use that library's official docs and examples as your main source and keep other web research short.REQUIREMENTS1. Concurrency: run the library on ONE dedicated asyncio event loop in its own background thread. Commands from IoX must be handed to that loop in a thread-safe way, with timeouts and error handling, so a failure can never freeze the plugin.2. Login hygiene: log in once, not per command, and log out cleanly when the plugin stops. Avoid repeated logins on restart, since Meross can temporarily block accounts for too many. If the library supports reusing saved login credentials, use that.3. Rate limits: Meross can suspend accounts for high-frequency requests. Use push notifications for status, no tight polling loops, queue commands with a short delay between them so a scene with many lights doesn't flood the cloud, and back off on errors.4. Reconnect: detect a dropped connection, reconnect automatically, and show connection status on the controller node.5. Devices: one node per device, with a stable address from the device ID, named from the Meross name. Support on/off and status for bulbs and switches first. Add brightness and color for bulbs if it can be done cleanly. Query must refresh state, rate limited.6. Controller node: connection status and a working Discover command.7. Config: Meross email, password, and region (default US; also EU and Asia-Pacific), plus an optional command delay. The password must never appear in code, logs, or chat.8. Logging: at debug level, log every command sent, every acknowledgment or timeout, and every connect, disconnect, and reconnect, with passwords and tokens masked. Something must be logged every time I send a command.9. Include the starter test suite, a README with setup steps, and the license.PROCESS- Do the one-time developer identity step first and ask me for what you need.- Show me the proposed device profile before generating.- Generate locally only, show me the file list, and wait for my go-ahead before installing.- I will enter my Meross credentials in the plugin's config page after install, not in chat.- After install, help me test with ONE non-critical switch and ONE bulb first, confirming each command in the logs, before anything else.- Install into a new slot. Do not uninstall or delete my existing Meross plugin. I'll stop it myself so only one client is logged in at a time.- I'm paying per use, so keep it efficient and tell me your plan before long multi-step work.
Tuesday at 04:09 PM2 days Author 33 minutes ago, Michel Kohanim said:@dbwarner5 ,Thank you very much for sharing your experience. I totally agree regarding documentation. Question: did you need ssh for anything except creating a github repo + add your keys?With kind regards,MichelI needed ssh for quite a few things, but mostly the GitHub download, which was extremely tedious and difficult as I had no clue what I was doing, only trying to follow the directions.See my previous comment that I cant seem to find a way to access the history of my session. If I could, I would be able to be more definitive in my answer.thanks.
Tuesday at 04:20 PM2 days Author An additional note:Esiy AI was awesome in that it tested itself several times, made changes / fixes. Found with me that status upon startup were not correct due to a timing issue and redid something to create a delay so that the device would get created and then the status would be checked / populated. Jointly tested with me, etc. The point is that it took about 3-4 iterations for it to get it 100% working right, all with very limited interaction from me.again. Simply AMAZING!!
Tuesday at 04:54 PM2 days 29 minutes ago, dbwarner5 said:An additional note:Esiy AI was awesome in that it tested itself several times, made changes / fixes. It really shines in that respect. In my Ocelot plugin, it tests the expansion modules, and asked me if I could give it one of the relays to test with, in activating it and reading back the status. I gave it the relay number it could use. In another case I didn't know if reading back 16 bit variables was low byte first or the other way around, and it tested it both ways.
Tuesday at 04:56 PM2 days @dbwarner5 Thanks for all of that information! I'm sure it will help others.@Michel Kohanim If my initial goal is to use eisy-ai for troubleshooting my existing system, not plugin development, do the two billing modes you described still apply? Would one be more appropriate than the other?Rob
Tuesday at 10:41 PM2 days Author @RRalston some more info from my experience here: https://forum.universal-devices.com/topic/47474-eisy-ai-stuck-at-starting/#findComment-410052
Wednesday at 09:47 PM1 day @dbwarner5Thanks for yoour tutorial. I am now to the point of having the "twinkle" icon, so thats a startdid you document your "tedious" steps for github creation ? I believe that needs to be done before proceeding.I just re-read and saw you tried but could not recover your dialog boxAny memories ?Thanks in advance...Barry Edited Wednesday at 10:00 PM1 day by bgrubb1
Wednesday at 09:59 PM1 day 9 minutes ago, bgrubb1 said:@dbwarner5Thanks for yoour tutorial. I am now to the point of having the "twinkle" icon, so thats a start.Did the Pittsburgh Steelers get paid a royalty for their logo? 😆
20 hours ago20 hr Author 17 hours ago, bgrubb1 said:@dbwarner5Thanks for yoour tutorial. I am now to the point of having the "twinkle" icon, so thats a startdid you document your "tedious" steps for github creation ? I believe that needs to be done before proceeding.I just re-read and saw you tried but could not recover your dialog boxAny memories ?Thanks in advance...Barrythe steps as I am understand it is to first access the files via a SSH session into eisy. From there, Eisy AI wanted to do all the GitHub transfers via terminal, which required generating a token from GitHub and commands, but for some reason, my id that eisy uses doesnt match my GitHub id, so it constantly ran into merge / permission issues, rearing another ton of terminal commands.The final solution was ridiculously easier... ssh to the files and download them to my computer as a .tar file and then unpack it and simply go to my new repository and hit upload files.. I told ai to never try to do it via terminal again.. wasted a ton of time doing it that way on my first plugin and now on my second one I just worked on last night.
Create an account or sign in to comment