Skip to content
View in the app

A better way to browse. Learn more.

Universal Devices Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Introducing eisy-ai !!!

Featured Replies

I'm finally getting around to trying this out, and I'm not getting very far:

image.png

Is there any kind of "how to" anywhere for someone who hasn't ever used AI (other than one on a free web site)? I get a sense that everyone here is already familiar with some aspects and are just concerned with getting it to work on the eisy. Posts mention configuration files, etc but no specifics. The README file mentions a json file, with no clue where it is, etc.

you need to edit the JSON file shown in the readme with your API key. Then you copy it and post it in the config field under configuration

Yes, I just got this set up and working! I'm so used to running the staging versions on my test Polisys that I forget that my eisy was running from beta releases. All updated and eisy-ai installed correctly, and json file is now all set up. My first request was simply asking which lights were on, and bingo, it told me 🙂 I wanted it all set up and working before the webinar, to avoid wasting people's time in figuring this out. Now the real learning begins! I'm particuarly interested in plugin development with this.

Thanks to UDI for letting me participate in this trial!

Probably already a thing. But will eisy-ai save templates for future use in plugins? For example, I created the html plugin configuration interface with authentication. Big blocks of that will be identical on any plugin, be nice to be able to just grab that from a pre-saved template.

  • Author
1 hour ago, apostolakisl said:

Probably already a thing. But will eisy-ai save templates for future use in plugins? For example, I created the html plugin configuration interface with authentication. Big blocks of that will be identical on any plugin, be nice to be able to just grab that from a pre-saved template.

Not templates perse, but you can do two things:

1. Tell it to use your github (url) as reference

2. Each chat is tied to a session that you can load. Save your session with a name, then load it.

#1 is much more accurate because it's not tainted with everything else in your session (or any compaction).

With kind regards,
Michel

Here is a very simple task I asked of eisy ai. Copied is my conversation:

How can I help you today?

I would like a program that monitors the node for my master bedroom washer and notifies me when it has finished a load. so whenever wattage goes up for a bit, then goes back down to zero for a bit, it should notify

I found a likely match: Master Washer, a Tuya power switch that reports Power in watts. Before I build the routine, I need a few details:

  1. Is this the right device? Master Washer is the only washer in the database that reports wattage. If you meant a different node, tell me which one.

  2. Notification recipient. Routines can only send a notification to a recipient ID, and I don't have a way to look those up. Please give me the exact recipient ID for the notification you want (the one you use for your alerts).

  3. Thresholds. I'd suggest these defaults, and you can change them:

    • "Running" = Power above 20 W

    • "Finished" = Power at 0 W for 5 minutes after it was running

    The routine will also reset after each notification, so it won't alert repeatedly while the washer sits idle.

Once you confirm these, I'll set up the routine.

1) yes, 2) id 4, 3) sounds good.

I've set up the washer monitoring for Master Washer. It uses two routines and a flag variable:

  • Master Washer Running sets the flag when power goes above 20 W.

  • Master Washer Load Finished waits for power to sit at 0 W for 5 minutes while the flag is set. It then sends a notification to recipient 4 and clears the flag, so you get one alert per load.

The flag is a new integer variable, iMaster.Washer.Running (id 100), starting at 0.

I haven't test-run either routine, and I can't confirm that recipient 4 is the notification target you intended. A load that pauses at 0 W for longer than 5 minutes (a long soak, for example) will trigger an early alert. If that happens, tell me and I'll lengthen the wait.

that all sounds good

Thanks, it's all set. The two routines are saved and enabled:

I haven't run either routine yet, so the first real test will be your next wash. If the alert doesn't arrive or fires at the wrong time, let me know and we can adjust it.

eisy-ai is AI and it will make mistakes

It wrote 2 programs that were appropriate. My critiques would be 1) that the two program got randomly stuck into all of my other programs, and not even next to each other. Took me a bit to find them. And 2) it never asked me for content, it just set to default. After I pointed that out, it asked for me to provide a content number. and 3) it isn't able to read or I assume create notification or content end points. It will only accept an id number that I have to create and then provide it. It did however, create a variable and label it with the conventional naming system.

My other question is about "legacy" notifications. I assume since I set up email notifications to use my mail server, there should be no reason to have emails rejected, correct?

  • Author

@apostolakisl ,

  1. You don't need to look for them. There's a link to each one of them right in the chat. Just click on them:

    3 minutes ago, apostolakisl said:
    1. Master Washer Running flags a load when the washer draws more than 20 W.

    2. Master Washer Load Finished sends the notification after 5 minutes at 0 W and then resets the flag.

  2. I don't know about legacy notifications --> I don't think eisy-ai knows about them )

With kind regards,
Michel

1 minute ago, Michel Kohanim said:

@apostolakisl ,

  1. You don't need to look for them. There's a link to each one of them right in the chat. Just click on them:

  2. I don't know about legacy notifications --> I don't think eisy-ai knows about them )

With kind regards,
Michel

I've mentioned this before, but eisy ai can't make folders. If you were doing a bunch of stuff, you would probably want eisy ai to be able to organize programs into folders.

before i screw something up, i assume if i want to put my same token on a second device, my polisy, it will be fine?

3 hours ago, Michel Kohanim said:

@apostolakisl ,

Yes on the list. As mentioned, we need to be very cognizant of token usage ...

With kind regards,
Michel

I don't really fully understand token usage, but it seems like when you install ai on an agent, it eats tokens, but if you use the ai web interface, the same subscription level gets you massive usage. Am I wrong?

Today is day 1 of trying out plugin creation with eisy-ai. I just spent a few hours on it. In one word:

Mindblowing!

Well ok, that's actually two words... but I'm totally amazed! For over a year I've been thinking about creating a plugin for the Applied Digital Ocelot and it's expansion modules. This got it mostly done in one day. It went out on the web and found the CPUXA serial protocol document (that I already have) for talking to the Ocelot, and commands needed to do things like read and write inputs and outputs. It's an old document (March 2000), which didn't list the module type for the SECU16IR module, but it did have the commands for it. So I told eisy-ai that module type 6 was a SECU16IR, and it took my word for it and implemented the commands. Customization is at least as impressive as generating the original plugin.

The Ocelot is a serial device so it's connected to a device server for IP access (actually, a Lantronix EPS1 print server). I just told it use the IP address and TCP port number, which it automatically implemented as a Configuration parameter. I then asked it to make that two independant parameters, and it made the change. No fuss. I'm still missing the read variables command, which I had reverse engineered years ago but have misplaced the sheet (dang, I'll have to drag out the ole breakout box again). This is a plugin that I'd like to make available to the community once it's cleaned up and a few more features added, such as supporting the bobcat modules and the Leopard too (basically an Ocelot with a touchscreen).

The next challenge will be to make the expansion module list and adnet address configurable as parameters.

I am working on a plugin for my Hyundai Ionic 5 using eisy-ai. it found a library that is used by some programs in home assistant that pretends to be the official hyndai blulink app. eisy-ai says this library needs to run with python 3.12 and eisy runs on 3.11. can eisy be updated to 3.12?

  • Author
9 hours ago, photogeek54 said:

I am working on a plugin for my Hyundai Ionic 5 using eisy-ai. it found a library that is used by some programs in home assistant that pretends to be the official hyndai blulink app. eisy-ai says this library needs to run with python 3.12 and eisy runs on 3.11. can eisy be updated to 3.12?

@photogeek54,

Yes, that's next in our list.

With kind regards,
Michel

2 hours ago, Michel Kohanim said:

@Guy Lavoie ,

Amazing! Please note that you can use a USB to Serial and eisy-ai will help you configure it. Please read the bottom of the README (the About tab).

With kind regards,

Michel

But USB to serial is more constraining, with a cable directly between the two devices, not handy if they're far apart. Using IP allows you to use your network infrastructure. It's also somewhat easier to use IP when you need multiple access, such as with the Ocelot: it's admininstration program is called C-Max and accesses it with the same serial port. Using a virtual serial port on the PC, I can easily switch back and forth between that and the plugin. Same thing with administering a Elk M1 with ELKRP and using the Elk plugin.

I actually have three of these IP to serial devices in service here: one for the Ocelot, another one for the Elk M1 (instead of a M1XEP) and another one for accessing a Somfy URTSII with the Somfy plugin. I use the Lantronix EPS1 print servers because I happen to have bought a bunch of them at $5 each many years ago. I have 15 of them! They're often available on ebay for prices as low as $20. In fact I should do a little writeup on configuring these, could be handy for other members.

Speaking of USB and constraining... The advent of Z-Wave LR is making the placement of the antennas of dongles (ZMatter and otherwise) more important because you don't have a mesh network in LR, and being stuck with a USB cable between the eisy and the dongle is a limiting factor. If anyone is aware of some kind of USB extender (like a wireless link), it could be a nice solution.

I have several eisy-ai feedback items. but here are few for review ... these tests are targeted at Michel's request for feedback on Customer Mode

Basic eisy-ai query

ME: what switches are labelled with the word test do I have and are what is the current state on or off ?

eisy-ai : Most of your test devices are off. The four Z-Wave "Test Switch" devices didn't report a usable state.

Off:
[TEST SW 1](/nodes/xx cc 44 1), a relay switch
[TEST DIM 1](/nodes/nn bb 92 1), a dimmer
[TEST DIM 2](/nodes/mm ff CB 1), a dimmer
[TEST KPL 6](/nodes/44 55 20 1), a keypad
[TEST KPL 8](/nodes/pp kk EE 1), a keypad

Unknown (no state reported):
ZY 028.2 Test Switch 1
ZY 028.3 Test Switch 2
ZY 028.4 Test Switch 3
ZY 028.5 Test Switch 4

I can send a Query to the Z-Wave test switches to try to get a current reading if you'd like.

ME: yes send a test

eisy-ai : I can't tell yet what you want tested, so I haven't sent anything. My last message offered two options: searching a specific date range or device's activity, or the X10 routine's devices. Neither one is a test.

Which do you mean?

Send a command to a device, such as a test on/off on [XMAS LampLinc Stairs 26.EB.83](/nodes/26 EB 83 1) or [Kitchen Sink Light 33.86.7B](/nodes/33 86 7B 1). Tell me the device and the command. Note that this changes the device's state.
Run the test x10 on routine. This will run its actions on those two devices.
Test a group or scene's wiring. This sends a group-off to its members, so they will turn off. Tell me which group or scene.

Me: send a Query to the Z-Wave test switches to try to get a current reading

eisy-ai : I sent a Query to the four Z-Wave test switches. All four report Off after the query:
ZY 028.2 Test Switch 1: Off
ZY 028.3 Test Switch 2: Off
ZY 028.4 Test Switch 3: Off
ZY 028.5 Test Switch 4: Off
The query itself succeeded for all four. Reading their "Responding" property failed for each one, so I can't confirm whether they're currently responding to the network. The Status values are the current readings from the hub.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
What happened (problem):

eisy-ai offered to send a Query to the four Z-Wave test switches. I replied "yes send a test," meaning yes to that offer.

eisy-ai said it couldn't tell what I wanted tested, and offered other tests that it hadn't just offered — a date search, an X10 routine test. It didn't connect my "yes" to its own previous offer.

What should have happened:

A human would read "yes" as yes to the Query it just offered, and run it. When I repeated the full wording — "send a Query to the Z-Wave test switches" — eisy-ai did run it correctly, and all four came back Off.

So the problem is: eisy-ai lost the thread of its own offer. It was safe not to guess — it didn't change a device — but it should have known what "yes" meant in that moment.
-------------------------------------------------------------------------------------------------------------------------------

TEST = Delete a zwave device

ME: I want to delete ZY 028 Binary Switch, can you provide me the procedure to enter the exclusion mode for a Shelly Wave i4 DC before we begin

eisy-ai : I can't give you the Shelly Wave i4 DC's exclusion procedure. Nothing in my tools covers that device's button sequence, and I'd be guessing if I wrote one out.

To get it, you can:
Check the Shelly Wave i4 DC manual or the quick-start guide that came with the device. Look for the section on exclusion or removing the device from a Z-Wave network.
Check the Shelly website for the model's documentation.
Contact Shelly support if you can't find it.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
What happened (problem):

What a user should reasonably expect, especially a non-technical one:

• In the perfect world ... the user shouldn't need to know addresses, protocols, or procedures. You say "delete this Z-Wave switch" and it should know the hub step, fetch the removal procedure, and walk the user through the removal.
• eisy-ai knows what the vendor & model of a device is based on the initial "Inclusion procedure". When a user requests "remove a device" and also specifically requests help in performaning a delete, eisy-ai should provide the procedure which normally a publicly posted How TO Inclusion / Exclusion document
• If eisy-ai does not know what the z-wave device is, request the model information from the user to fetch the removal procedure
• The user shouldn't need to memorize manuals. I would expect eisy-ai to access vendor docs as part of the tool, not homework for the user.

-------------------------------------------------------------------------------------------------------------------------------
TEST create a basic scene with known working insteon switches

Me: create a scene called test scene 1
add test kpl 8 - b as a controller and responder, add test kpl 6 - b as a controller and responder, add test dim 1 as a controller and responder

eisy -ai  I created the scene test scene 1 as a crosslink, with all three devices as both controller and responder:
[TEST KPL 8 - B](/nodes/hh 9C EE 2), [TEST KPL 6 - B](/nodes/yy E 20 4). [TEST DIM 1](/nodes/zz C1 92 1)

Each one controls the other two directly. TEST DIM 1 is still disabled in eisy, so it may not respond until it's re-enabled.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
What happened (problem):
TEST DIM 1 was fully functional and was tested before running the eisy-ai request to create, so eisy-ai miss-read the actual state of the insteon switch
-------------------------------------------------------------------------------------------------------------------------------

TEST > Create scene via eisy-ai and then rename the scene manually

Scene was created by eisy-ui with a label / name “fred_scene”, node 98997
• Members: TEST KPL 8-B and TEST KPL 6-B only
• Scene renamed manually from “fred_scene” to “TEST KPL8-B + KPL6-B Sync”, Node ID stayed 98997 after the rename
• eisy-ai is not aware of the manual name change from fred_scene to TEST KPL8-B + KPL6-B Sync

ME > read me "TEST KPL8- B + KPL6-B Sync"

eisy-ui > The name at node 98997 is TEST KPL8- B + KPL6-B Sync.

That's not the name I gave it. When I created fred_scene, the hub returned group address 98997, which is the same address this scene already has. The device list also shows two entries with that address, one named fred_scene and one named TEST KPL8- B + KPL6-B Sync. So either the hub is showing a stale name, or my create reused an address that an existing scene was already using. I can't tell which from these tools. The links are the same two KPL B controllers you asked for.

Can you check in eisy-ui whether a separate fred_scene exists? If it doesn't, the scene at 98997 is the one I made, and it has the original sync name. I haven't changed anything in this step.

ME > nothing to check, scene name is correct, read me "TEST KPL8- B + KPL6-B Sync"

eisy-ai > The name is TEST KPL8- B + KPL6-B Sync. That's what the hub returns for node 98997 right now.

I'll leave the name alone. This scene is the one with TEST KPL 8 - B and TEST KPL 6 - B as controllers. If you want it called fred_scene instead, I can rename it.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
What happened (problem):
• First, if the scene name was changed and is valid, why is eisy-ai challenging the cmd ? the name is valid, but eisy-ai seems confused > HOW DID THE NAME GET CHANGED, THATS NOT WHAT I NAMED IT !!!
• I attemepted 4 times to obtain status / info on the scene and eisy-ai kept pushing back with al kinds of differnt responses
• finally on the 5th attempt to query, I requested the information in this format ... which is very counter productive
ME > Show exact detail as viewed in web ui
One item per line only
No paragraph, no run-on sentences
Must support copy-paste
Do not show levels

eisy-ai>  Scene name: TEST KPL8- B + KPL6-B Sync
Scene address: 98997
Controller: TEST KPL 8 - B (hh 9C EE 2)
Controller: TEST KPL 6 - B (jj E 20 4)
Responder: TEST KPL 8 - B (uu 9C EE 2)
Responder: TEST KPL 6 - B (bb E 20 4)
Link type: native

BONUS QUESTION
Try this one lol

ME> Describe program 119 in plain text, read only, do not change anything, one line per item
**** again multiple attemps to read back a program as we see it in web-ui
AND after serveral attempts, there was success using
ME> provide
Name
IF statements
Then Statements
Else statements
Comments as they appear in web ui

eisy-ai>
Name: TEST_KPL_Off_DIM_Off
IF: TEST KPL 8 - B (zz 9C EE 2) Status is Off
IF: OR TEST KPL 6 - B (vv E 20 4) Status is Off
THEN: TEST DIM 1 (xx C1 92 1) Off
ELSE: (none)
Comments: (none)

SUCCESS YEH !!!!!!

the good part is that eisy-ui now knows what "read me ##" means and formats the reply properly



  • Author

@jim_

Thank you very much for the feedback. At a very high level:

  1. You are probably running all these tests in one chat. You are overrunning the context window

  2. How much would you be willing to pay for these features, if they were not free?

4 hours ago, jim_ said:

eisy-ai said it couldn't tell what I wanted tested, and offered other tests that it hadn't just offered — a date search, an X10 routine test. It didn't connect my "yes" to its own previous offer.

I suspect you may have had a conversation before regarding testing X10 or routines. Please note that you are using the lowest cost, lowest grade model in customer mode (1/10 of the price). You can change the model to Sonnet 5.5 but you'll be paying more tokens. Alternatively, if you start a new chat, use /new-session to start fresh.

4 hours ago, jim_ said:

ME: I want to delete ZY 028 Binary Switch, can you provide me the procedure to enter the exclusion mode for a Shelly Wave i4 DC before we begin

Next time, please ask it to search the web. Again, you must consider that we are dealing with tokens/costs here. Unlike plugin-development, web-search is NOT something eisy-ai will attempt automatically. Regarding eisy-ai knowing the vendor/model number, how did you arrive at that conclusion? Do you see anything like that in eisy-ui without going into X-Ray. And if eisy-ui needs to read the X-Ray and cross referene with something on the web, then again, how much are willing to pay for this feature? Perhaps we can add a switch to make it automatic. In addition, if the customer does not use Claude or OpenAI-Response, they must also sign up for a search engine (tavily or brave) which have their own costs.

4 hours ago, jim_ said:

What happened (problem):
TEST DIM 1 was fully functional and was tested before running the eisy-ai request to create, so eisy-ai miss-read the actual state of the insteon switch

It's saying "enabled". I am not sure what "fully functional" means here. Enabled/disabled are flags for a device (right mouse click | Enable/Disable). Also, your test is about creating a scene, but your problem is that eisy misread the actual state. What's one got to do with the other?

4 hours ago, jim_ said:

TEST > Create scene via eisy-ai and then rename the scene manually

Possibly a bug but have not been able to reproduce at all in at least 10 turns. So, I suspect your context is just way too bloated. I suggest /new-session. Also, please note the process:

  1. You change something manually

  2. An event is generated by iox and which is published

  3. The data structure does not get updated till you start a new turn (a new query)

4 hours ago, jim_ said:

ME> Describe program 119 in plain text, read only, do not change anything, one line per item

Well, for this one, I am going to push back real hard. It seems like your goal is to trip it:

a. On the one hand, you want it to "What a user should reasonably expect, especially a non-technical one:"

b. On the other, you give it confusing instructions "describe" and "one line per item" - "as we see it in web-ui"? If you can see it web-ui, why do you need it described? what's an item in a routine? A device? A condition? A schedule? All the above? I don't even know what an item is. Let alone eisy-ai.

Thanks again.

With kind regards,
Michel

@Michel Kohanim

Thank you for feedback ... and I agree you should push back on some of these events, but the goal of these tests (and lots more) were conducted solely on > "What a user should reasonably expect, especially a non-technical one:"

I am new to Ai, therefore I'm am learning how to communicate with Ai on the assumption > Ai's are trained on ordinary human conversation, not on a special code or format. Therefore I question an Ai the way I think at the moment and adjust the question until the result to what I can understand. Since I don't code or develop, learning the art of communication with Ai is my learning curve right now ... and I'm very much enjoying learning new ... great expierence

Your questions :

  1. You are probably running all these tests in one chat. You are overrunning the context window
    > Again, still learning ... No warning when the chat is growing too long — other free AIs do warn the user, eisy-ai doesn't

  2. How much would you be willing to pay for these features, if they were not free?

    > Understand the question, but will have to way the cost vs the reward argument

I will say ... so far eisy-ai is great add-on to expedite testing and find programming solutions. eisy-ai has shown me many new program samples to experiment with for real deployments

Edited by jim_

6 minutes ago, jim_ said:

What I can say, so far it is a great add-on

Yup, I agree 100%. I expect a significant leap in the number of available plugins. My only concern, which I've brought up before, is that we'll end up with plugins whose code creators won't fully understand. That will make the "are you able and willing to support it?" question difficult. I include myself in that. I've been learning Python on and off, mostly by reverse engineering existing plugins. I did create a couple of simple plugins on my own. Now the irony is that we'll need to reverse engineer our own plugins.

But back to how awesome this is: The plugin it created is well configured and "parameterized" (is that a word?). When I gave it the IP address and port needed to connect to my device, it automatically made that as a user configurable parameter. Just from the protocol document it dug up on it's own, it figured out that this was a main controller with expansion modules with module type numbers, and created "Discover" and "Rescan Modules" buttons. It figured out the binary protocol from a document that describes the commands like this:

 

Get Unit Type

 ->Send 8 binary bytes:    <42> <0> <0> <1> <176> <0> <148> <39>

<-Receive  6 byte header:   <n> <n> <n> <n> <n> <n>

<-Receive 256 bytes data:                <unit 1 Type>  <unit 2 Type>  <unit 3 Type>  <unit 4 Type>  etc…

Note: only the first 128 bytes of data are valid

<-Receive 2 byte CRC        <n> <n>

 Data Explanation:

                SECU 16,  Type  = 11     

                 SECU 16I, Type  = 12     

                 RLY08-XA, Type  = 13

The above command is pretty well the only hint that there are various module types. It showed me the response it got and set up a sub node for each one. It implemented the commands matching each module type. It also told me about an unknown module type 6 that showed up in the list. I told it that type 6 is a SECU16IR (I literally typed that in) and it dug up the one entry in the document that refered to that module name, and added the commands for it.

Powerful stuff!

  • Author

@jim_

Thank you, and again, I want to say that I appreciate the time you took to provide your feedback. Context window warning, for sure, we should have notifications.

@Guy Lavoie ,

Very very excellent question. You really do not need to support it, you can use it locally for yourself. What you can do though, is to get a github account and have eisy-ai push it to a public repo with an MIT license. This way, it'll be much easier for the next customer to build what you have: eisy-ai just downloads it from github and runs it!!! So, although you are contributing, you are not directly supporting it. And if you learn Python enough to support it, then even better: we can vet you as a developer.

We are working on the next exciting feature (#1 on my wish list): eisy-ai will also be able to create a nice tile/background/picture for your plugin so that it'll look beautiful in favorites page.

Thanks again to you all.

With kind regards,
Michel

I had to post this ... I got in an arguement with eisy-ai on the definition of a 4 way switch

eisy-ai had successfully created a "test" simple 4 way switch scene, a door switch, timer and rules about paddle over-rides. Testing worked perfectly requiring only 1 small change which eisy-ai idenified quickly. I updated eisy-ai saying "everything worked", but eisy-ai suggested it should make one more change. I agreed and the entire solution went crazy with rapid light on off and eisy-ai difficulty stopping it. I requested eisy-ai reverse the change and was told it no longer had a record of what was changed and could not restore the previous programs or variables it had created.

Deleted everything and started new

ME> lets start again create the 4 way switch

eisy-ai > I can set up a 4-way switch, but I need a few details first so I build the right thing:

Which devices are the >>>> four switches <<<< ? The three paddles still in the system are TEST KPL 6, TEST DIM 1, and TEST DIM 2. Is the fourth a different device? If it's a different one, name it and I'll look it up.

This cascaded into a LONG chat of the definition of what a "4 way" switch is in North America ... I wont bore you with the banter back and forth, but the sum of the chat came down to this

ME > if I request an electrician to install a 4 way, this implies 3 switches controlling 1 light ... right ?
eisy-ai > You're right. Ordering a "4-way" from an electrician means three physical switches controlling one light: two 3-way switches and one 4-way switch in the middle. In NuCore, a 3-switch setup for one light is a group where all three switches are controllers and the light is the responder.
Which three devices should be the switches?

It was just a funny exchange in the end .... as an electrician, I think and speak in real electrical terms ... guess I need to learn "NuCore" lol


19 minutes ago, jim_ said:

I had to post this ... I got in an arguement with eisy-ai on the definition of a 4 way switch

Hah, similar experience here today, on day 2 of creating a plugin. It's great at creating code, but doesn't share our human intuition when it comes to naming stuff! I'm creating a plugin with a controller, add-on modules, and i/o ports on modules. I want the name to be hierarchal: add on module address, module type, and i/o port. Took a fair bit of time to get it to understand that.

Putting a bit more time on this today, Ocelot plugin almost done. Notes and observations:

The sense of context is very good. I keep getting afraid that at some point I'll hit a wall and it won't have any sense of what I'm asking it to do. But no, it really seems to understand and have a feel for my intention, For example when I configured the I/O modules, it knew to poll the inputs constantly and automatically set them up to read them at every short poll, at 5 seconds. The same poll reads the inputs and also the output relay's status, which is good because a C-Max program in the Ocelot could also change an output, so it can't assume it's the only one changing outputs. In testing it, I noticed that if I had the plugin change an output, the status stayed unchanged until the next poll updated it. So I asked it to also immediately read in status whenever it changes an output. It understood the notion of doing that as well as the timed polls. No fuss. Similarly, since I want to use the Ocelot variables as triggers (ie: like status variables) I asked it to add a variable read to the short poll routine, as well as after any variable write. Again, no fuss. It seems to be aware of cpu and bandwidth usage too. It told me that it would be sending three 256 byte serial polls at every short poll interval, advising me that lengthening the poll interval could be done if that's too much.

Here is another interesting thing it understood on first try:

I typed:

when you do a Get Unit Type command on startup or rediscover, if module types other than 11, 12,13 or 6 are discovered, create dummy nodes for them. List them as "Mod " with the module address followed by "Type " and the module type number discovered. These will act as placeholders. There will be no commands associated with them.

response:

Understood. Unsupported types will get inert placeholder nodes named like "Mod 5 Type 20", with no commands. The empty-slot marker 254 stays ignored, as it is now. Before designing it I'm checking the UOM table for the type-number property and how the real Node.setDriver behaves, so I can test discovery properly.

That's impressive.

When it makes updates to the plugin, it generates version numbers. Does this imply that changes that I'd want to undo can be rolled back to a previous version, like a source code control system?

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.