NEWS
ESPHome Werte steuern
-
Hallo zusammen ich versuche mich gerade mit ESPHome.
Ich habe ein Grillthermometer realisiert und lese meinen Growatt wechselrichter damit aus.
Leider Funktionieren mit dem ESPhome Adapter keine numbers. Also lese ich die Werte mittels MQTT Server/Broker aus Leider kann ich die Werte im IoBroker nicht ändern.
Hat hierzu jemand eine Lösung? -
@jacke sagte in ESPHome Werte steuern:
habe ein Grillthermometer realisiert und lese meinen Growatt wechselrichter damit aus
Hab ich das richtig gelesen?
@jacke sagte in ESPHome Werte steuern:
Leider kann ich die Werte im IoBroker nicht ändern.
Welche Werte möchtest du wo ändern?
-
@crunchip
Es geht um folgendes der ESP Home Adapter unterstützt die Numbers nicht. Deshalb frage ich die ESP Home geräte mit MQTT ab.
jetzt möchte ich MAX Output Active Power ändern
Im Iobroker sieht es so aus
Nun kann ich den Wert ja nicht im IoBroker ändern.
Also versuche ich es über MQTT zu sendenoutput: # Blue Led - id: light_bl platform: gpio pin: 16 # Green Led - id: light_gr platform: gpio pin: 0 # Red Led - id: light_rd platform: gpio pin: 2 uart: id: mod_bus tx_pin: 1 rx_pin: 3 baud_rate: 115200 modbus: id: modbus1 uart_id: mod_bus modbus_controller: - id: growatt # the Modbus device addr address: 0x1 modbus_id: modbus1 setup_priority: -10 sensor: - platform: modbus_controller name: "${devicename} DcPower" address: 5 register_type: "read" unit_of_measurement: W device_class: power icon: mdi:flash value_type: U_DWORD accuracy_decimals: 1 filters: - multiply: 0.1 - platform: modbus_controller name: "${devicename} DcVoltage" address: 3 register_type: "read" unit_of_measurement: V device_class: voltage icon: mdi:flash value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 0.1 - platform: modbus_controller name: "${devicename} DcInputCurrent" address: 4 register_type: "read" unit_of_measurement: A device_class: current icon: mdi:flash value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 0.1 - platform: modbus_controller name: "${devicename} AcFrequency" address: 37 register_type: "read" unit_of_measurement: Hz icon: mdi:flash value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 0.01 - platform: modbus_controller name: "${devicename} AcVoltage" address: 38 register_type: "read" unit_of_measurement: V device_class: voltage icon: mdi:flash value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 0.1 - platform: modbus_controller name: "${devicename} AcOutputCurrent" address: 39 register_type: "read" unit_of_measurement: A device_class: current icon: mdi:flash value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 0.1 - platform: modbus_controller name: "${devicename} AcPower" address: 40 register_type: "read" unit_of_measurement: W device_class: power icon: mdi:flash value_type: U_DWORD accuracy_decimals: 1 filters: - multiply: 0.1 - platform: modbus_controller name: "${devicename} EnergyToday" address: 53 register_type: "read" unit_of_measurement: kWh device_class: energy icon: mdi:flash value_type: U_DWORD accuracy_decimals: 1 filters: - multiply: 0.1 - platform: modbus_controller name: "${devicename} EnergyTotal" address: 55 register_type: "read" unit_of_measurement: kWh state_class: total_increasing device_class: energy icon: mdi:flash value_type: U_DWORD accuracy_decimals: 1 filters: - multiply: 0.1 - platform: modbus_controller name: "${devicename} Temperature" address: 93 register_type: "read" unit_of_measurement: C device_class: temperature icon: mdi:thermometer value_type: U_WORD accuracy_decimals: 1 filters: - multiply: 0.1 - platform: mqtt_subscribe name: "mqtttest" id: mqtttest topic: the/topic # - platform: mqtt_subscribe # name: "mqtttest" # id: mqtttest # topic: the/topic # on_value: # lambda: |- # return id(poweroutput).state;# #neu test power factor 02/2023 number: - platform: modbus_controller name: "${devicename} Max Output Active Power" id: poweroutput address: 3 value_type: U_WORD min_value: 0 max_value: 100 entity_category: config step: 1 - platform: template name: "Power Output" id: "Power_Output" mode: slider optimistic: true min_value: 0 initial_value: 100 max_value: 100 step: 1
interessant sind die letzten 3 Absätze wenn ich das auskommentierte aktivere bekomme ich folgende Fehlermeldung
Compiling .pioenvs/esphome-growatt-01/src/main.cpp.o /opt/iobroker/iobroker-data/esphome.0/growatt.yaml:208:33: error: stray '#' in program 208 | return id(poweroutput).state;# | ^ /opt/iobroker/iobroker-data/esphome.0/growatt.yaml: In lambda function: /opt/iobroker/iobroker-data/esphome.0/growatt.yaml:208:27: error: return-statement with a value, in function returning 'void' [-fpermissive] 208 | return id(poweroutput).state;# | ~~~~~~~~~~~~~^~~~~ *** [.pioenvs/esphome-growatt-01/src/main.cpp.o] Error 1 ========================== [FAILED] Took 3.09 seconds ==========================
Ich habe gesehen da war ein # falsch aber das hat auch nichts geändert
-
@jacke mit dem aktuellen ESPHome Adapter aus der Beta (0.5.0-beta.8) funktioniert "number" und man kann Werte aus dem iobroker an die NodeMCU und den angeschlossenen Aktor schicken.
Ich habe ein Potentiometer x9c104s im Einsatz, um die Außentemperatur zu simulieren und so die Leistung der Enthalpierückgewinnung der Lüftungsanlage zu optimieren.
Das Ganze sieht in der .yaml so aus:
#Potentiometer output: - platform: x9c id: x9c_pot cs_pin: D1 ud_pin: D2 inc_pin: D3 initial_value: 0.01 number: - platform: template id: Drehzahl_Input name: "Drehzahl Input" optimistic: true min_value: -20 max_value: 120 initial_value: 0 step: 2 on_value: then: - output.set_level: id: x9c_pot level: !lambda |- return id(Drehzahl_Input).state / 100.0;
Die "number" wird über den ESPHome Adapter als Objekt angelegt
und lässt sich damit aus iobroker über die API verändern.
Über den Teilon_value: then: - output.set_level: id: x9c_pot level: !lambda |- return id(Drehzahl_Input).state / 100.0;
schreibe ich den Wert (number), der von iobroker oder über den Schieberegler (Web-Server der nodeMCU) kommt an den "output" mit der ID meines Potentiometers. Das funktioniert wunderbar und MQTT brauche ich so auch nicht.