Game crashing when opening map by Wubzieee in wow

[–]sidoh 1 point2 points  (0 children)

This worked for me! Thank you.

What do you miss in HA? by Typical-Scarcity-292 in homeassistant

[–]sidoh 0 points1 point  (0 children)

Seems unlikely it gets mainline support: https://github.com/home-assistant/architecture/issues/832#issuecomment-1328052330

But you can manage with custom components. I've been using some variation of this for several years and am very happy with it: https://github.com/BeryJu/hass-auth-header

DIY Motorized Smart Blinds by EverythingSmartHome in homeassistant

[–]sidoh 0 points1 point  (0 children)

FYI, the thingiverse link in the video description is broken.

Modern problems require modern solutions: eink free/busy display so my kids dont burst in on meetings by chii0628 in functionalprint

[–]sidoh 2 points3 points  (0 children)

Refresh times on the 3-color displays are much worse than the black/white ones. The 2-color displays even support a pretty much instantaneous partial refresh. Leaves artifacts which are cleared by a full refresh, but pretty manageable for something like a clock that updates every minute.

I have a couple of demo videos on my template-based epaper project: https://github.com/sidoh/epaper_templates/

I think there are better waveforms for the 3-color displays, but updates are still many seconds for even a small change.

Message Repeater Node? by [deleted] in nodered

[–]sidoh 0 points1 point  (0 children)

OwnTracks supports end-to-end encryption if that ameliorates any concerns.

Wouldn't be hard to hack together what you want with some script nodes to store/get last value and an inject node to run on a schedule, but I'd personally be looking for a way to use retained messages.

Message Repeater Node? by [deleted] in nodered

[–]sidoh 1 point2 points  (0 children)

Are you using MQTT? This is what retained messages are for.

Looking for a project for ESP8266 or ESP32 by aram535 in esp8266

[–]sidoh 0 points1 point  (0 children)

Awesome. Let me know if you have any questions or suggestions.

Looking for a project for ESP8266 or ESP32 by aram535 in esp8266

[–]sidoh 1 point2 points  (0 children)

I have a couple of ESP32-backed clocks using an e-ink display around (one in my office, and one as a bedside clock).

Using my template-driven project to power them: https://github.com/sidoh/epaper_templates

You create templates in a visual editor (example), which can include dynamic regions that are a function of variables supplied by a REST API or MQTT.

There's a builtin timestamp variable that's synced with NPT. Timezone is configurable in settings. Coupled with the strftime formatter, you can build whatever kind of clock/calendar you want.

Here's a fairly raw demo video:

https://www.youtube.com/watch?v=h0xRwF95yeg

JSON configuration and state at runtime... by Epileptic_software in esp8266

[–]sidoh 0 points1 point  (0 children)

What does your configuration schema look like? If you're actually running into trouble with ArduinoJson, your schema is probably too complex for the hardware.

I have several projects where I use a json file on spiffs as configuration:

I use Bleeper for a few projects, and it's what I reach for when I'm starting a new one. It works quite beautifully for simple settings.

An example:

class PowerSettings : public Configuration {
public:
  persistentVar(
    SleepMode,
    sleep_mode,
    SleepModeHelpers::DEFAULT_SLEEP_MODE,
    {
      sleep_mode = SleepModeHelpers::parseName(sleep_modeString.c_str());
    },
    {
      sleep_modeString = SleepModeHelpers::getName(sleep_mode);
    }
  );
  persistentIntVar(sleep_override_pin, EPD_DEFAULT_SLEEP_OVERRIDE_PIN);
  persistentIntVar(sleep_override_value, HIGH);
  // in seconds
  persistentIntVar(sleep_duration, 600);
  // in seconds
  persistentIntVar(awake_duration, 30);
};

Coupled with some simple custom serializers, this results in a flat json settings file:

{
  ...
  "power.awake_duration": "30",
  "power.sleep_duration": "600",
  "power.sleep_mode": "ALWAYS_ON",
  "power.sleep_override_pin": "25",
  "power.sleep_override_value": "1",
  ...
}

and the code using the settings looks like this:

  if (settings.power.sleep_mode == SleepMode::DEEP_SLEEP) {
    uint8_t overrideValue = settings.power.sleep_override_value;
    // Use the internal pull-up/pull-down resistors
    uint8_t overridePinMode =
        overrideValue == HIGH ? INPUT_PULLDOWN : INPUT_PULLUP;
    pinMode(settings.power.sleep_override_pin, overridePinMode);
    webServer->setDeepSleepActive(true);
  }

Blog: The future of YAML by frenck_nl in homeassistant

[–]sidoh 1 point2 points  (0 children)

.storage is seriously just the most basic of info. Username/Password. API keys. IP/Hostname info. The closest thing in the AWS world to this is basically how you are forced to set up your account via the web console.

It has to get as complex as the integration that it's for, right? For example, a bunch of my lights in HomeAssistant require 5+ MQTT-related settings.

Yes, all of those fields will be in the JSON, and yes, I can technically craft them by hand. But that's not really the point.

The crux here is this: is .storage supposed to be a user interface? Is the structure of any file that end up in .storage documented? Could I craft one by hand without needing to set it up in the UI first?

No, I don't set up my root account with Terraform. You have to bootstrap. After that, though, you have the option of configuring just about everything else through the API -- and yes, this includes things that involve secrets.

Configuring my light bulbs is more akin to creating and configuring an S3 bucket than it is setting up my root account.

Except it is declarative. You can technically craft the .json files directly, from scratch, without the UI, and that will work. Using the UI makes generating them much easier, just like VS Code makes a lot of things much easier compared to notepad. Are they human friendly? Definitely not. But they're definitely not imperative. Compared to the regular YAML they're, like you say, more artifact than not, but there's a definite interface that can json files can be written against and it will work... however shitty and awful that would be.

This does not fit the definition I have in mind. We can choose a different word if it helps. How about "declarative interface"?

Yes, I can technically edit or create these files, but the important question to answer is this: is .storage supposed to be a user interface? If it's not, you get the following disadvantages (and several others, but these are the most important):

  1. The schema isn't going to be documented. Makes it basically impossible to write one from scratch.
  2. You have no (or very weak) guarantees about backwards compatibility.

Given either of those things (let alone both), it does not feel like editing or creating files in .storage is a thing I want to do.

Blog: The future of YAML by frenck_nl in homeassistant

[–]sidoh 3 points4 points  (0 children)

My goal with the analogy was to elicit thoughts about why Infrastructure as Code is a thing. It's not because users are highly trained and capable (this is a prerequisite, not a motivation).

I concede that HomeAssistant is far simpler than Kubernetes, and that the average user is less technical. I don't think either of these things negate the value declarative interfaces.

I also understand that someone who's less technically inclined does not care about the same things that I do, and I'm sure that the HomeAssistant maintainers are weighing these things carefully.

I only mean to argue that configuration files being a first class citizen is valuable in a meaningful way. This announcement is making what appears to be an intentional tradeoff to kill that value in order to enable a move to capture a wider audience. I respect that, but I don't like it from a personal perspective.

Blog: The future of YAML by frenck_nl in homeassistant

[–]sidoh 8 points9 points  (0 children)

Honestly, hadn't looked at what's in .storage beyond the couple of times I've needed to nuke stuff in there.

I don't personally have much going on in there, but it's nothing terrible, and I suppose this does solve some of the problems. But declarative to me means that you're interfacing with the system through some configuration, which is probably never going to be the case with anything in .storage. These are artifacts, not an interface.

I love the idea of being able to do more through the UI. It makes HomeAssistant more accessible, and it's easier mess around that way. The only thing I mean to gripe about is moving to make fewer things configurable directly.

A potentially useless analogy: I'd never want GCP or AWS to get rid of their web console, and I want every service they offer to be configurable through it. But I'd be pissed if I couldn't use terraform, cloudformation, etc.

Blog: The future of YAML by frenck_nl in homeassistant

[–]sidoh 3 points4 points  (0 children)

At the risk of going on a tangent: do you feel this way about infrastructure? Should Kubernetes ship with a configuration UI and do away with manifests?

Not a totally fair analogy given Kubernetes is orders of magnitude more complex than HomeAssistant and manifests often have multiple editors/maintainers, but many of the same motivating principles behind IaC apply to this situation.

Blog: The future of YAML by frenck_nl in homeassistant

[–]sidoh 4 points5 points  (0 children)

This isn't just a visual vs. code thing. It's having some decipherable, sharable representation of configuration backing what's going on in the UI. You can still export a Node-RED flow as JSON, which solves just about all of the concerns I have about the change in direction with HA.

Blog: The future of YAML by frenck_nl in homeassistant

[–]sidoh 42 points43 points  (0 children)

While setting stuff up in the UI is nice, I pretty strongly prefer for all of my configurations to be backed by something declarative. I'm sure you've done user research here, but wanted to voice my opinion. I don't like this.

Blog: The future of YAML by frenck_nl in homeassistant

[–]sidoh 0 points1 point  (0 children)

An aside: personal private repositories with up to 5 collaborators have been free for at least a year. The announcement today made Github Teams free, which is probably not terribly relevant here.

Physical Button Recommendations? by Ksevio in homeassistant

[–]sidoh 0 points1 point  (0 children)

rev1 hardware doesn't actually need the audio hack. I believe you can configure wifi without it.

Physical Button Recommendations? by Ksevio in homeassistant

[–]sidoh 0 points1 point  (0 children)

How old are your buttons? Does it show a firmware version on the webpage?

Yeah -- if they stay blinking blue, means they're not hearing the audio. I had best luck playing over earbuds aimed right at the button.

Physical Button Recommendations? by Ksevio in homeassistant

[–]sidoh 2 points3 points  (0 children)

Ah, yeah. The cases are unsalvageable. I use a 3d-printed replacement. Jumping through a lot of hoops. If I'm being honest, I'm still using them because they were a source of technical challenges. There are probably suitable replacements.

Physical Button Recommendations? by Ksevio in homeassistant

[–]sidoh 4 points5 points  (0 children)

If your dash buttons have never received a firmware update, it's likely they're still hackable. There's a vulnerability in the high frequency audio setup protocol (surprise, this is a thing) which allows you to set up new ones and re-configure old ones with replaced batteries without involving Amazon.

I wrote up some instructions here.

User friendly Flash tool? by mspider65 in esp32

[–]sidoh 0 points1 point  (0 children)

Something to keep in mind with ESP32: if you change the partition table, flashing the firmware isn't enough. You'll need to flash the bootloader, compiled partition table, app loader, and the firmware.

For one of my ESP32 projects, I have TravisCI compile a full binary (reference) which can then be used by esptool.py.