Hilfe bei ESPHome bitte?

Hallo,
ich versuche hier seit ca 1 Woche eine für geübte wohl Pipifax-Verbindung herstzustellen.
Auf einem HAOS Server mit mqtt, ESPHome, Node-Red soll es möglich sein eine LED auf einem ESPHome zu schalten.

Info: Schalten, Dimmen geht alles via HA-Oberfläche (über das bestehende device und seine Integritäten ),
Ich sehe auch was im mqtt-expolrer an den ESPhome gesendet wird

Als es das erste mal funktionierte (es funktioniert ja immer noch aber NUR das o.g.)
Hatte der ESP noch keine "subscribe" Code-Zeilen beinhaltet.
Code:
# D1 Mini Configuration for D1M05 (D1 Mini)

# Pins (=GPIO)| Input? | Output? | Comments
  # D0 = 16   | Y      | Y       | High @ boot, Wake, I/P: No Interrupt, O/P: No PWM or I2C
  # D1 = 5    | Y      | Y       | I2C SCL
  # D2 = 4    | Y      | Y       | I2C SDA
  # D3 = 0    | Y      | Y       |
  # D4 = 2    | Y      | Y       | Onboard LED
  # D5 = 14   | Y      | Y       |
  # D6 = 12   | Y      | Y       |
  # D7 = 13   | Y      | Y       |
  # D8 = 15   | Y      | Y       |
  # RX = 3    | Y      | Y       |
  # TX = 1    |        | Y       |
  # A0 = ADC0 | Y      |         |

substitutions: # All have to be strings, the substitution process will convert them to the correct types
  devicename: d1m01-kueche-box
  upper_devicename: D1Mini kueche box
  device_location: Kueche
  device_description: box Steuerung platform using ESPhome firmware
  ipaddress: 192.168.2.101
  mqtt_prefix: d1m01-kueche-box # $mqtt_root/$devicename # Argh! combined substitutions don't work!
  esp_board: d1_mini
  last_update: "2023-05-05 18:54:12"

mqtt:
  broker: !secret mqtt_broker
  username: !secret mqtt_username
  password: !secret mqtt_password
  topic_prefix: Box
  id: mqtt_client

wifi:
  power_save_mode: none # none (default for esp8266), light (default for esp32), high
  ssid: !secret WLAN_ASUS_SSID
  password: !secret WLAN_ASUS_PASSWORD
  manual_ip:
    static_ip: !secret D1MINI_KUECHE_BOX_IP
    gateway: !secret WLAN_ASUS_GATEWAY_IP
    subnet: !secret WLAN_ASUS_SUBNET
    dns1: !secret WLAN_ASUS_DNS1
    #fast_connect: on
 
  ap: # Enable fallback hotspot (captive portal) in case wifi connection fails
    ssid: "box Fallback Hotspot"
    password: !secret WIFI_AP_PASSWORD
ota:
  safe_mode: true
  password: !secret HA_OTA_PASSWORD

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

esphome:
  name: $devicename
  friendly_name: Grobot-Box
  platform: ESP8266
  board: d1_mini

# Festlegen der I2C Ports ESP32 und ESP8266
i2c:
  sda: 4      # Standard Port für ESP8266 GPIO4 sda
  scl: 5      # Standard Port für ESP8266 GPIO5 scl
  scan: true  # I2C Port_Scan Standard = true
  id: bus_a   # id = bei mehreren PCA9685

# pca9685 16 Channel PWM Multiplexer konfiguration
pca9685:
    id: pca9685_hub1            # id muss nur angegeben werden wenn mehrere PCAs vorhanden sind
    frequency: 1000             # für MW-LDD s sollten 1000 HZ (mögliche Werte 24 Hz bis 1525,88 Hz. Standard 1000Hz) Frequenz eingestellt sein
    address: 0x40               # HEX Adresse des PCA9685 , Standart = 0x40 (müsste in diesem Fall nicht mit angegeben werden)

light:
  - platform: monochromatic
    name: "box 2 x 3500K LED-Mitte"
    output: "PWM0"
    state_topic: Box/Light_Control/3500K_LED_Mitte
  - platform: monochromatic
    name: "box 2 x 3500K LED-Links/Rechts"
    output: "PWM1"
    state_topic: Box/Light_Control/3500K_LED_L_R
  - platform: monochromatic
    name: "box 4 x 5000K LED"
    state_topic: Box/Light_Control/5000K
    output: "PWM2"
 
# Festlegen der PWM Outputs 0-15
output:
  - platform: pca9685
    id: PWM0
    channel: 0                 # Kanal 0-15, wir benutzen den Kanal 4 = 5. Pin 0,1,2,3,4...
  - platform: pca9685
    id: PWM1
    channel: 1                 # Kanal 0-15, wir benutzen den Kanal 3 = 4. Pin 0,1,2,3,4...
  - platform: pca9685
    id: PWM2
    channel: 2                  # Kanal 0-15, wir benutzen den Kanal 4 = 5. Pin 0,1,2,3,4...

# Enable logging
logger:

captive_portal:

sensor:
# DHT22 Temp/Humidy Sensor
  - platform: dht
    pin: D0
    model: AM2302
    temperature:
      name: "Temperatur"
      id: temperatur
      state_topic: Box/DHT22/Temperatur
    humidity:
      name: "Luftfeuchtigkeit"
      id: luftfeuchtigkeit
      state_topic: Box/DHT22/Luftfeuchtigkeit
      accuracy_decimals: 1
      # filters:
      # - offset: 4.2
  - platform: mqtt_subscribe
    name: "Data from topic"
    id: PWM0_SUBSCRIBE_ID
    topic: Box/DataSubscribeText/Light_Control/3500K_LED_Mitte
    #topic: Box/Light_Control/3500K_LED_Mitte

text_sensor:
  - platform: mqtt_subscribe
    name: "Data from topic"
    id: PWM0_SUBSCRIBE_TEXT_ID
    topic: Box/DataSubscribeText/Light_Control/3500K_LED_Mitte
    #topic: Box/Light_Control/3500K_LED_Mitte
Nachdem ich den ESP über HA steuern konnte wollte ich noch eine Zeitschaltuhr einbauen (über NodeRed den BigTimer)

hier habe ich dann die oben in FETT formatierten subscribe-Zeilen eingefügt
Grund: die Zeitschaltuhr die auch via mqtt mit dem ESP verbunden war, schaffte es nicht den ESP zu schalten, alle Versuche schlugen fehl.
Im Anschluss habe ich dann die subscribe-Zeilen eingefügt
Code:
- platform: mqtt_subscribe
    name: "Data from topic"
    id: PWM0_SUBSCRIBE_ID
    topic: Box/DataSubscribeText/Light_Control/3500K_LED_Mitte
    #topic: Box/Light_Control/3500K_LED_Mitte
    - text_sensor:
.
.
.

Egal was ich nun an den ESP-Home von der Zeitschaltuhr aus sende ob ein kompletter Json-String
wie diesen
Ausgabe im MQTT-Explorer wenn ich diesen via HA==> Geräte==> Steuerung schalte
Code:
DHT22
Light_Control
5000K = {"color_mode":"brightness","state":"ON","brightness":255,"color":{}}
3500K_LED_L_R = {"color_mode":"brightness","state":"ON","brightness":255,"color":{}}
3500K_LED_Mitte = {"color_mode":"brightness","state":"ON","brightness":255,"color":{}}

Ausgabe wenn ich den ESP via Zeitschaltuhr schalten möchte

mqtt-Topic was ich in Node-Red nach der zeitschaltuhr habe , hat folgenden inhalt

Code:
Box/DataSubscribeText/Light_Control/3500K_LED_Mitte

in meinem MQTT-Explorer
sehe ich jedoch das topic was er senden soll nicht
ich sehe es nur im Node-Red Debug obwohl dort das mqtt-out mit dem mgtt server connected ist
Code:
Box/DataSubscribeText/Light_Control/3500K_LED_Mitte : msg.payload : string[69]
"{"color_mode":"brightness","state":"OFF","brightness":255,"color":{}}"

Oben habe ich einen mqtt-explorer Auszug
bei dem man sieht das wenn ich den esp via HA-Oberfläche also direkt vom Device aus schalte, geht es
da sendet er sauber die Daten

Keine Ahnung ob es nun am subscrib Code im ESPhome und/oder auch daran liegt das mir der Timer über mqtt-out im node-Red nichts sendet bzw. das im mqtt-server nicht ankommt

Wäre sehr sehr dankbar wenn sich hier jemand er Sache annehmen könnte... ich rutsche jetzt fats eine Woche an diesem Problemchen rum

Danke!

edit:
ich habe in der Zeitschaltuhr nochmals die "On MSG" und "OFF MSG" geändert
jetzt erhalte ich im mqtt-explorer zwar das payload aber der ESP reagiert darauf nicht
Hier der Auszug aus dem mqtt-explorer
Code:
DataSubscribeText
Light_Control
3500K_LED_Mitte = {"color_mode":"brightness","state":"OFF","brightness":255,"color":{}}
 
Zuletzt bearbeitet:
Ich mache das so: ich programmiere auf der esp seite switch. Die kann ich auch von home assistant aus setzen. Ich lege die nur in esp an, getriggert werden die im home assistant. Im esp kann ich mit dem switch alles steuern bzw. Programmieren. Ich hab da auch kein mqtt oder so.

Es ist sehr hilfreich im esp die web oberfläche zu programmieren. Dann direkt auf den esp controller surfen. Da kommen alle ein- und ausgabe parameter und rechts läuft auch gleich der log mit.
 
Es ist sehr hilfreich im esp die web oberfläche zu programmieren. Dann direkt auf den esp controller surfen. Da kommen alle ein- und ausgabe parameter und rechts läuft auch gleich der log mit.
ok, ich sehe das hier wohl sehr viele im Forum alles rein via HA abwickeln und auch die Kommunikation der Devices darüber laufen lassen.
Rein aus Interesse würde mich das Thema mqtt doch interessieren da ich denke, wenn ich es tatsächlich mal brauche weiss ich auch gleich was ich beachten muss.

was mich wundert.
laut ESPHome Mqtt Client Component
funktioniert die der Befehlsempfang des mqtt clients also des ESP's in meinem Fall nur wenn auch nur wenn das
command_topic: mit angegeben wurde. Anscheinend ist das zwingend erforderlich
das verwirrt mich geerade da die youtube-beispielvideos... da wurde das zumindest bei den die ich sah so nicht angegeben.

Code:
name: "Component Name"
# Optional variables:
retain: true
availability:
  topic: livingroom/status
  payload_available: online
  payload_not_available: offline
state_topic: livingroom/custom_state_topic
command_topic: livingroom/custom_command_topic
command_retain: false
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.112
Beiträge
59.394
Mitglieder
6.155
Neuestes Mitglied
Becks0815
Zurück
Oben