Intellifire (Wifi Fireplace Module) - Hearth and Home

I added buttons for flame height:

Probably will convert it to a service later maybe… and/or make them start up disabled

This looks like a perfect use case for making them fan entities with presets

I can do a fan entity → but its not as clean as I hoped.

I’m not seeing a branch called ‘intellifire_control’. I see control but that latest commit is from 4 days ago…

That doesn’t show?

It does. I’m just dumb :slight_smile: I was looking in the wrong repo - had totally missed you forked HA core and thought it was a branch of the intellifire4py repo.

Ok - so I’m unclear on why adding a component called hello_state would force loading of the custom_component intellifire (which likely collides with the release component?).

Or…are you saying create an init.py with the content from the example within the intellifire directory?

From my understanding in your /configuraiton directory I think you want to add /configuraiton/custom_components/intellifire and put all the stuff from my intellifire in there

FILTER="homeassistant/components/intellifire/"
REPO_DIR="custom_component"
URL="https://github.com/jeeftor/core"
BRANCH="intellifire_control"

# Remove repo dir
rm -rf "$REPO_DIR"

# Init Repo Dir
git init "$REPO_DIR"
cd "$REPO_DIR"

# Add remote
git remote add origin $URL

# Configure sparse checkout logic
git config core.sparsecheckout true

# Pass in filter
echo "$FILTER" >> .git/info/sparse-checkout

# Pull the code
git pull --depth=1 origin intellifire_control

This script will checkout

/homeassistant/components/intellifire only I think … and that goes into /configuration/custom_components/intellifire

(haven’t actually tested it myself) but thats the idea I think

The example they gave:

To load this, add hello_state: to your configuration.yaml file and create a file <config_dir>/custom_components/hello_state/__init__.py with one of the two codeblocks above to test it locally.

Was saying if you have an __init__.py in a custom_component/NAME directory it will try to load that component…

I think thats the JIST at least.

Ok - so I copied your component into custom_components… Your component already has an __init__.py so thats where I’m getting lost.

It doesnt seem like the custom component is being loaded…as its really adding nothing to the logs. I dont have an existing intellifire integration configured currently. If i try to configure intellifire integration from the Integrations menu, its doing the version that is bundled with core…

Just want to note that I’m watching this with great interest and anticipation. Integration of the fireplace into HA, with control, is a top wife request. I’ve got a Heat n Glo with the IFT-WFM ready to roll. Thanks to you both for the work here.

Looking at this further - the component itself doesnt bundle the updated intellifire4py.py file - so I’m not sure how the module itself would get updated if its not bundled with the component. The imports from the __init__.py would be importing the old classes from the bundled module.

mainfest.json in the integration lists the dependency which should be auto-installed by HA.

I’ll see about getting custom components working later today and make a useful directions post :slight_smile:

The basic concept as I understand it is

__init__.py initializes your component. In there it lets a list of PLATFORMS to also configure and then separate files like sensor.py and switch.py get run as well.

Manifest.json defines your component and deps you need.

config_flow.py sets up your config options :slight_smile:

Unfortunately I was defeated… I got a config flow wouldn’t load… and don’t have time they morning to fully look into it … since I have to do actual work :(…

Maybe I’ll give it another go later.

1 Like

i’ve installed a number of custom components through HACS, I’ll try to get this one up and going while you’re at work. I do think one problem may be the overlap in naming conventions with official integration…

I renamed it in the manifest.json but when I move it into custom_components I end up with a config_flow not loaded error…

one problem i fixed is that the manifest.json needs a version number field. I added one, “version”: “0.1”, and uploaded that into custom_components/intellifire. I restarted it, then the built in intellifire integration reported a migration error. I then deleted the integration, and i got the “right” config flow with email and pwd. That reported success, and then gave me an integration with one device, just three entities. Also gave me a log error for the following entities:

Logger: homeassistant.setup
Source: setup.py:289
First occurred: 8:24:30 AM (4 occurrences)
Last logged: 8:24:30 AM

Unable to prepare setup for platform intellifire.sensor: Platform not found (attempted relative import beyond top-level package).
Unable to prepare setup for platform intellifire.switch: Platform not found (No module named 'homeassistant.components.intellifire.entity').
Unable to prepare setup for platform intellifire.fan: Platform not found (No module named 'homeassistant.components.intellifire.entity').
Unable to prepare setup for platform intellifire.button: Platform not found (No module named 'homeassistant.components.intellifire.entity').
```

Getting closer!

Yeah - the underlying python is pointing to the main component and not the custom component. Gonna try update the imports to point to custom_component instead of component

Cool. Let me know how it goes. Do add the version, otherwise HA will balk at a restart.

The dependencies should be fixed in the latest code…

homeassistant.components.intellifire.entity became .entity which looks in the local directory.

Also FYSA stuff like this usually gets picked up in the PR process…but I really don’t know how long that will take.

After I fixed these Changs … .I changed manifest to look like:

{
  "domain": "intellifire_b",
  "name": "IntelliFire Beta",
....

And that way it didn’t conflict with the existing intellifire integration… HOWEVER

When I tried to configure it:

And I can’t figure out what’s going on in the logs…

All it says is:

2022-02-10 09:49:28 WARNING (MainThread) [asyncio] Executing <Task finished name='Task-866' coro=<FlowManager._async_init() done, defined at /Users/jstein/devel/core/homeassistant/data_entry_flow.py:213> exception=UnknownHandler() created at /usr/local/Cellar/[email protected]/3.9.10/Frameworks/Python.framework/Versions/3.9/lib/python3.9/asyncio/tasks.py:361> took 0.150 seconds