• 45 Posts
  • 1.6K Comments
Joined 2 years ago
cake
Cake day: July 7th, 2023

help-circle






  • So I think you’re just confused about the organization names. Let me try to clarify:

    • Zone: geographic region, like house1, house 2, office…etc
    • Area: room in a house
    • Group: just a grouping of devices

    These are all simply just representative logical units, and can be whatever you want them to be. An area can be a whole house, or it can be a room in a house, or maybe just a closet in a room. Whatever you assign to that group is then used for triggers:

    “Turn on all lights in bedroom”

    “Turn off all kitchen lights”

    Say you have 12 lights in a garage, you want to separate them into groups. You create a group called “garage-lights-1”, and assign half to that, then another for “garage-lights-2”, and the others there. You can then just create an automation for either group, OR also assign each group to an area called “Garage” if you intend to turn them all on or off at the same time, or create scenes that do different things with different lights. Any entity in HA can be apart of many groups at the same time since it’s just a logical thing to help with organizations.







  • I think you might be underselling yourself a bit here. You don’t need to rewrite the entire app at all, just a piece at time because of how you it organized. Like this:

    Release 2.0: moved SSH to X lib Release 2.1: RPC moved to X lib

    And so on.

    If you don’t wish to do that, then I would work on messaging. From the code and how you’re expecting responses, it just won’t work for very long with Linux distros, though I appreciate that you made a many portable formats. Instead, have you tried looking at building a library that does discovery of connectable nodes on the local network? That would hit big with the Windows crowd, and possibly some other OS users if suddenly this does “automatic discovery” instead of having to manually create connections.



  • Well, I can say for myself-and others who may see this project who are adept with these types of connections-the question still comes down to “Why would I use this over already existing tooling?”

    For me, this is just SSH (which I use daily non-stop) with extra steps. For something like containers…ehhhhh it’s a bit of stretch. I’m so used to just running the commands to see what I need, plus I make sure everything has a named DNS, and I can’t think of a simpler way to make it easier than what I already do. I feel like remote desktop clients all have this solved in their GUI, so I’ll ignore that. Even hitting a button to tell it what I want to connect to is more work than just doing it, honestly, so a GUI does not make sense for me, so I know I’m not a target audience for sure.

    The point is that if me can’t find a good use for it, and you want me to try it out, what is the feature that would sell me on it. I think the answer to that unlocks a lot of other things you can attack from there.


  • Sure sounds like you’re running in bridged mode and your container doesn’t know it.

    Edit, yeah, I just your configs. Things are kind of crazy. If you’re going to use compose, use the internal networking and don’t try to route out to IPs that are host-based. You can simplify this so much by just using the internal docker network. If you NEED to talk to the host for some reason, don’t do it over API, and use a socket instead. If THAT isn’t an option, make sure your network has named DNS hosts, and use those instead of IP addresses.


  • Hey, I totally get it. You built something you like, and you want people to give it a try. Let me give you some hopefully helpful but absolutely unsolicited advice, and feel free to ignore me.

    The first thing you need in a project is a target audience: “I am building this to make X thing better.”

    Then you need a target audience: “Why would people prefer to use this over other existing solutions?”

    THEN you need a hook: “This thing is better because X feature.”

    Now please take this next bit as only constructive criticism, because I’m just trying to help what seems to be burgeoning developer out who has a passion for their product…BUT, I think the confusion you’re seeing in this thread is because you’re building a thing that doesn’t answer any of the above questions for a lot of people. So just digest that, and I’m sorry if it sucks, but the next part is more helpful…

    I looked through the code a bit, and just from the exception handling alone, it seems it will break if every little thing about the underlying environment isn’t exactly just-so. A version of something gets upgraded, and this might break, for example. Have you considered maybe doing a rewrite to natively load libraries instead of shelling out all the commands? I think it would greatly help the resilience of the app itself from breaking due to environmental changes, AND an added bonus benefit…maybe eventually be able to allow contributions from followers to help adjust code or write plugins.

    The reason why most FOSS projects do this is simple: they want it to run in a multitude of places and environments, and the noise generated from everything not being exact about and environment is huge. So instead of relying on shell commands and output, just look up an open library that already does SSH, and write for that. Your code is organized pretty well, so it shouldn’t be a huge undertaking, just some learning and doc hounding.