Blackymas / NSPanel_HA_Blueprint

This allows you to configure your complete NSPanel via Blueprint with UI and without changing anything in the code
1.4k stars 253 forks source link

unknown service #793

Closed IMMIhomeassistant closed 1 year ago

IMMIhomeassistant commented 1 year ago

I have 2 panels, 1 for testing (works great!!!!!!) and another in the livingroom (woonkamer) copy the .tft file, yaml file and the yaml to the right panel correct the ip adresses and names, but further are they the same But.....now im having a issue with the nspanel in the livingroom I even started with a fresh blueprint

the issue: (translated from dutch) De automation "NSPanel Woonkamer" (automation.nspanel_woonkamer) has an actie who calls an unknown service: esphome.nspanel_send_command_text_printf.

the error is appearing when i restart the nspanel

edwardtfn commented 1 year ago

Which version of the Blueprint are you using? If this is lower than v3.3, could you please double check the name you have used for your panel in the Blueprint settings?

IMMIhomeassistant commented 1 year ago

using the last version v3.3 the name in the yaml is: master-nspanel, and thats the same one is used in the blueprint

edwardtfn commented 1 year ago

Ok. V3.3 have a new way to select the panel, now from a list of devices. Have you selected your panel again after the update?

IMMIhomeassistant commented 1 year ago

yes i choose the nspanel device from the dropdown menu

i did everything like i did before on the testpanel the testpanel works like a charm, but i cant get it to work on the definitiv panel on the wall

it can run 2 panels ?? both with there own automations and different ip's ??

edwardtfn commented 1 year ago

Yes, you can have two panels at the some time. I have 3.

Back to the error you mentioned before:

De automation "NSPanel Woonkamer" (automation.nspanel_woonkamer) has an actie who calls an unknown service: esphome.nspanel_send_command_text_printf

This probably happens due to the service and the entities having distinct id patterns. Basically, the Blueprint try to identify the pattern for the name of entities by looking for any entity called sensor.xxxxx_nextion_display under the selected device, then it will use whatever was on the xxxxx to find the other entities ids and service names, so if they don't have the same pattern, you will get exactly the error you have. One way to try is removing the ESPHome device from Home Assistant and then reinstall it:

  1. Go to Settings > Devices and Services > ESPHome
  2. Select your panel, then click in the 3-dot menu and then "Delete"
  3. Restart Home Assistant (important to clean up the old names)
  4. Go back to Settings > Devices and Services
  5. If the panel was not automatically detected, click Add integration, select ESPHome, type your panel's network name and follow the steps in the screen

At this moment you should be able to set the Blueprint again and hopefully the names will be all standardised. If you still having issues, let us know and I will suggest to rename all the entities under your device based on the names on your services (I can give more details if the first procedure haven't solved the issue).

IMMIhomeassistant commented 1 year ago

hi,

fiddeling around some more options trow all Nspanels out, reinstal them, rename them got an api error, solved, but still no luck

last of all kicked out the test panel, disconnected and removed from HA and now i can setup the livingroom display

im not complete sure why they dont work together, but willl try next week

ill keep you informed if you like

thanks for the quick reply's

edwardtfn commented 1 year ago

Having multiple panels shouldn't be an issue.

What it the issue you have now with the testing panel?

pdt1630 commented 1 year ago

Having a similar issue, which I'm assuming is related to the same naming rule. This time its showing as "The automation "test1" (automation.test1) has an action that calls an unknown service: esphome.__send_command_text_printf".

I already tried the afore mentioned delete and readd to no avail. I'd take the tip on renaming @edwardtfn.

edwardtfn commented 1 year ago

I already tried the afore mentioned delete and readd to no avail

Which version are you using? On the boot screen you can see versions for TFT, ESPHome and Blueprint.

costakis79 commented 1 year ago

I had the same problem. The entities were named like __xxxxx. This happened when I used my version of yamls and not the original from github. I deleted the device from HA and rebooted, then I flashed the device with the original yamls and added the device to HA. This fixed my problem

pdt1630 commented 1 year ago

Not used to people responding overnight to asks, I was just going to use the work around @edwardtfn was going to propose. Let me provide the proper details.

Version Info: 3.3 Screen shows TFT: 3.3 ESPHome:3.3 Blueprint (blank)

I've been fighting this thing for 3 days to get the thing flashed and the TFT uploaded properly. I added the following pieces beyond beyond the default yaml to enable OTA updates, Logging and HA API integration so i didn't have to keep tearing the thing apart to flash it.

That said, based on Costakis79 comment, i'm going to guess its the probably the first piece of the yaml thats causing this.

esphome:
  name: <device_name>
  friendly_name: <device_name>

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: !secret encrption_key

ota:
  password: !secret ota

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "<device_name>"
    password: "<password>"

captive_portal:

I looked at the blueprint last night where this is getting parsed out and i didn't see anything obvious that causing the duplicate name. It's likely an HA thing.

Let me take a run at changing a few things this am and see if that pulls it in and report back.

edwardtfn commented 1 year ago

Please try without friendly_name. That is probably what is causing the duplicated name. We keep compatibility with an earlier version of ESPHome from before friendly_name, so device_name is added in each entity name, which is the same done by friendly_name.

By the way, the ESPHome yaml as originally proposed in this project does support OTA, so you don't need to have your custom settings.

pdt1630 commented 1 year ago

I dropped the entire esphome node and it started working finally.

What's the right way to load the OTA secret to keep compatibility with the project.? I see in the code nspanel_esphome.yaml its loaded as wifi_password, which I'd honestly like to keep seperate as a best practice, but will revert to whatever the project uses if it's going to cause issues later.

I'll add the node back with whatever you recommend on the OTA. Thanks again for the quick turn on help.

IMMIhomeassistant commented 1 year ago

Please try without friendly_name. That is probably what is causing the duplicated name. We keep compatibility with an earlier version of ESPHome from before friendly_name, so device_name is added in each entity name, which is the same done by friendly_name.

By the way, the ESPHome yaml as originally proposed in this project does support OTA, so you don't need to have your custom settings.

this works for me,

tryed some settings and esp nodes but removing the friendly name, does the trick

excuse me for reacting late, but had some personal stuff

edwardtfn commented 1 year ago

What's the right way to load the OTA secret to keep compatibility with the project.?

You can still use the original settings and add just the areas you want to change. Something like this:

substitutions:

###### CHANGE ME START ######

  device_name: "YOUR NSPANEL_NAME" 
  wifi_ssid: "YOUR WIFI SSID"
  wifi_password: "YOUR WIFI PASSWORD"

  nextion_update_url: "http://HOME-ASSISTANT-IP:8123/local/nspanel_us.tft" # URL to local tft File
#  nextion_update_url: "https://raw.githubusercontent.com/Blackymas/NSPanel_HA_Blueprint/main/nspanel_us.tft" # URL to Github

##### CHANGE ME END #####

##### DO NOT CHANGE ANYTHING! #####

packages:
  ##### download esphome code from Github
  remote_package:
    url: https://github.com/Blackymas/NSPanel_HA_Blueprint
    ref: main
    files: [nspanel_esphome.yaml]
    refresh: 300s

##### DO NOT CHANGE ANYTHING! #####

api:
  encryption:
    key: !secret encrption_key

ota:
  password: !secret ota

Your setting on this file will overwrite the similar settings on the remote file.

pdt1630 commented 1 year ago

To close out the thread from my end I wanted to report back that the switch is up and running great.

FWIW I ended dropped the entirety of the esphome node as even leaving in the device_name under it was causing issues with the Configuration naming convention for whatever reason.

Thanks for all the help.

Blackymas commented 1 year ago

thanks for the feedback!

RamonQu commented 1 year ago

I also experienced this issue. Removing the esphome-entity and changing the device_name also fixed it for me.

Don't forget to store your api and ota-keys in your current yaml and set a local ip to yaml in esphome so you can still connect to it.

wifi:
  # ...
  manual_ip:
    static_ip: 192.168.178.###
    gateway: 192.168.178.###
    subnet: 255.255.255.0