From 7082f7649a1754c4cd5bf99e028beac1ed5390de Mon Sep 17 00:00:00 2001 From: Andreas Hergert Date: Sat, 3 Apr 2021 16:01:41 +0200 Subject: [PATCH 1/9] initially added pipsolar --- components/images/pipsolar.jpg | Bin 0 -> 16630 bytes components/pipsolar.rst | 63 +++++++++++++++++++++++++++++++++ images/pipsolar.jpg | Bin 0 -> 16630 bytes index.rst | 2 ++ 4 files changed, 65 insertions(+) create mode 100644 components/images/pipsolar.jpg create mode 100644 components/pipsolar.rst create mode 100644 images/pipsolar.jpg diff --git a/components/images/pipsolar.jpg b/components/images/pipsolar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0dc58e43abe69aa02ab3fcd49ab98d5ee5bb91ff GIT binary patch literal 16630 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

iZkj!mUqdZD{KLZnnoYrn1;T+Q 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 for communication. + +Once configured, you can use sensors, binary sensors, switches and outputs as described below for your projects. + +.. warning:: + + All functionality is working fine on esp8266 and esp32 chips. + If you configure a lot of the possible sensors etc. from below it could be that you run out of memory (on esp8266). + If you configure more than one if this devices with nearly all sensors etc. you run in a stack-size issue. In this case you have to increase stack size. + +.. figure:: images/pipsolar.jpg + :align: center + :width: 50.0% + + pip4048 compatible PV Inverter. + +Overview +-------- + +You can connect a wide variety of PV Inverters as long as they provide a serial interface and talk the commands used (at least those you want to use). +A documentation about the communication protocol mostly supported can be found |here|_. + +This component will poll the needed polling commands in a loop. If there is a command to send for controlling the inverter this command will be queued and fired as next after the current polling command ends. +There is a buffer to buffer up to 10 commands. + +.. |here| replace:: ``here`` +.. _here: https://github.com/jblance/mpp-solar/raw/master/docs/PI30_PIP-GK_MK-Protocol.pdf + +.. code-block:: yaml + + # Example configuration entry + uart: + - id: uart_bus + tx_pin: GPIO18 + rx_pin: GPIO19 + # most devices use 2400 as baud_rate + baud_rate: 2400 + + pipsolar: + - uart_id: uart_bus + id: inverter0 + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +- **id** (**Required**, :ref:`config-id`): The id to use for this pipsolar component. +- **uart_id** (*Optional*): The I²C Bus ID + + + +See Also +-------- + +- :ref:`uart` +- :ghedit:`Edit` diff --git a/images/pipsolar.jpg b/images/pipsolar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0dc58e43abe69aa02ab3fcd49ab98d5ee5bb91ff GIT binary patch literal 16630 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

iZkj!mUqdZD{KLZnnoYrn1;T+Q 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 Date: Sat, 3 Apr 2021 21:12:18 +0200 Subject: [PATCH 2/9] save --- components/pipsolar.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/pipsolar.rst b/components/pipsolar.rst index b5afbfe10b..5709c8e7aa 100644 --- a/components/pipsolar.rst +++ b/components/pipsolar.rst @@ -52,7 +52,7 @@ Configuration variables: ~~~~~~~~~~~~~~~~~~~~~~~~ - **id** (**Required**, :ref:`config-id`): The id to use for this pipsolar component. -- **uart_id** (*Optional*): The I²C Bus ID +- **uart_id** (*Optional*): The uart Bus ID From 599bcb6126581e5b44a97088034bb83a6aca9afd Mon Sep 17 00:00:00 2001 From: Andreas Hergert Date: Sat, 3 Apr 2021 23:04:13 +0200 Subject: [PATCH 3/9] save --- components/pipsolar.rst | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/components/pipsolar.rst b/components/pipsolar.rst index 5709c8e7aa..141c2a4a62 100644 --- a/components/pipsolar.rst +++ b/components/pipsolar.rst @@ -54,7 +54,33 @@ Configuration variables: - **id** (**Required**, :ref:`config-id`): The id to use for this pipsolar component. - **uart_id** (*Optional*): The uart Bus ID +Sensors +-------- +.. code-block:: yaml + # Example configuration entry + sensor: + - platform: pipsolar + pipsolar_id: inverter0 + grid_rating_voltage: + id: inverter0_grid_rating_voltage + name: inverter0_grid_rating_voltage + grid_rating_current: + id: inverter0_grid_rating_current + name: inverter0_grid_rating_current + ac_output_apparent_power: + id: inverter0_ac_output_apparent_power + name: inverter0_ac_output_apparent_power + ac_output_active_power: + id: inverter0_ac_output_active_power + name: inverter0_ac_output_active_power + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ + +all sensors are normal sensors... so all sensor variables are working to. + +- **uart_id** (*Optional*): The uart Bus ID See Also -------- From c9848da429ba0fd033ec1347718305726ab05d1e Mon Sep 17 00:00:00 2001 From: Andreas Hergert Date: Sun, 4 Apr 2021 13:34:52 +0200 Subject: [PATCH 4/9] added sensors etc --- components/pipsolar.rst | 217 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 215 insertions(+), 2 deletions(-) diff --git a/components/pipsolar.rst b/components/pipsolar.rst index 141c2a4a62..3c6bee6314 100644 --- a/components/pipsolar.rst +++ b/components/pipsolar.rst @@ -77,10 +77,223 @@ Sensors Configuration variables: ~~~~~~~~~~~~~~~~~~~~~~~~ - all sensors are normal sensors... so all sensor variables are working to. -- **uart_id** (*Optional*): The uart Bus ID +- **grid_rating_voltage** (*Optional*): grid rating voltage +- **grid_rating_current** (*Optional*): grid rating current +- **ac_output_rating_voltage** (*Optional*): AC output rating voltage +- **ac_output_rating_frequency** (*Optional*): AC output rating frequency +- **ac_output_rating_current** (*Optional*): AC output rating current +- **ac_output_rating_apparent_power** (*Optional*): AC output rating apparent power +- **ac_output_rating_active_power** (*Optional*): AC output rating active power +- **battery_rating_voltage** (*Optional*): battery rating voltage +- **battery_recharge_voltage** (*Optional*): battery recharge voltage +- **battery_under_voltage** (*Optional*): battery under voltage +- **battery_bulk_voltage** (*Optional*): battery bulk voltage +- **battery_float_voltage** (*Optional*): battery float voltage +- **battery_type** (*Optional*): battery type +- **current_max_ac_charging_current** (*Optional*): current max ac charging current +- **current_max_charging_current** (*Optional*): current max charging current +- **input_voltage_range** (*Optional*): input voltage range +- **output_source_priority** (*Optional*): output source priority +- **charger_source_priority** (*Optional*): charger source priority +- **parallel_max_num** (*Optional*): parallel max num +- **machine_type** (*Optional*): machine type +- **topology** (*Optional*): topology +- **output_mode** (*Optional*): output mode +- **battery_redischarge_voltage** (*Optional*): battery re-discharge voltage +- **pv_ok_condition_for_parallel** (*Optional*): PV OK condition for parallel +- **pv_power_balance** (*Optional*): PV power balance mode + +- **grid_voltage** (*Optional*): grid voltage +- **grid_frequency** (*Optional*): grid frequency +- **ac_output_voltage** (*Optional*): ac output voltage +- **ac_output_frequency** (*Optional*): ac output frequency +- **ac_output_apparent_power** (*Optional*): ac output apparent power +- **ac_output_active_power** (*Optional*): ac output active power +- **output_load_percent** (*Optional*): output load percentage +- **bus_voltage** (*Optional*): bus voltage +- **battery_voltage** (*Optional*): battery voltage +- **battery_charging_current** (*Optional*): battery charging current +- **battery_capacity_percent** (*Optional*): battery capacity percent +- **inverter_heat_sink_temperature** (*Optional*): inverter heatsink temperature +- **pv_input_current_for_battery** (*Optional*): pv input current for battery +- **pv_input_voltage** (*Optional*): pv input voltage +- **battery_voltage_scc** (*Optional*): battery voltage from scc +- **battery_discharge_current** (*Optional*): battery discharge current +- **add_sbu_priority_version** (*Optional*): add sbu priority status +- **configuration_status** (*Optional*): configuration status +- **scc_firmware_version** (*Optional*): scc firmware version +- **battery_voltage_offset_for_fans_on** (*Optional*): battery voltage offset for fans on +- **eeprom_version** (*Optional*): eeprom version +- **pv_charging_power** (*Optional*): pc charging power + +Binary Sensors +-------------- +.. code-block:: yaml + + # Example configuration entry + binary_sensor: + - platform: pipsolar + pipsolar_id: inverter0 + add_sbu_priority_version: + id: inverter0_add_sbu_priority_version + name: inverter0_add_sbu_priority_version + configuration_status: + id: inverter0_configuration_status + name: inverter0_configuration_status + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ +all sensors are normal binary sensors... so all binary sensor variables are working to. + +- **add_sbu_priority_version** (*Optional*): add sbu priority version +- **configuration_status** (*Optional*): configuration status +- **scc_firmware_version** (*Optional*): scc firmware version +- **load_status** (*Optional*): load status +- **battery_voltage_to_steady_while_charging** (*Optional*): battery voltage to steady while charging +- **charging_status** (*Optional*): charging status +- **scc_charging_status** (*Optional*): scc charging status +- **ac_charging_status** (*Optional*): ac charging status +- **charging_to_floating_mode** (*Optional*): charging to floating mode +- **switch_on** (*Optional*): switch on +- **dustproof_installed** (*Optional*): dustproof installed +- **silence_buzzer_open_buzzer** (*Optional*): silence buzzer open buzzer +- **overload_bypass_function** (*Optional*): overload bypass function +- **lcd_escape_to_default** (*Optional*): lcd escape to default +- **overload_restart_function** (*Optional*): overload restart function +- **over_temperature_restart_function** (*Optional*): over temperature restart function +- **backlight_on** (*Optional*): backlight on +- **alarm_on_when_primary_source_interrupt** (*Optional*): alarm on when primary source interrupt +- **fault_code_record** (*Optional*): fault code record +- **power_saving** (*Optional*): power saving + +- **warnings_present** (*Optional*): warnings present +- **faults_present** (*Optional*): faults present +- **warning_power_loss** (*Optional*): warning power loss +- **fault_inverter_fault** (*Optional*): fault inverter fault +- **fault_bus_over** (*Optional*): fault bus over +- **fault_bus_under** (*Optional*): fault bus under +- **fault_bus_soft_fail** (*Optional*): fault bus soft fail +- **warning_line_fail** (*Optional*): warning line fail +- **fault_opvshort** (*Optional*): fault opvshort +- **fault_inverter_voltage_too_low** (*Optional*): fault inverter voltage too low +- **fault_inverter_voltage_too_high** (*Optional*): fault inverter voltage too high +- **warning_over_temperature** (*Optional*): warning over temperature +- **warning_fan_lock** (*Optional*): warning fan lock +- **warning_battery_voltage_high** (*Optional*): warning battery voltage high +- **warning_battery_low_alarm** (*Optional*): warning battery low alarm +- **warning_battery_under_shutdown** (*Optional*): warning battery under shutdown +- **warning_battery_derating** (*Optional*): warning battery derating +- **warning_over_load** (*Optional*): warning over load +- **warning_eeprom_failed** (*Optional*): warning eeprom failed +- **fault_inverter_over_current** (*Optional*): fault inverter over current +- **fault_inverter_soft_failed** (*Optional*): fault inverter soft failed +- **fault_self_test_failed** (*Optional*): fault_self_test_failed +- **fault_op_dc_voltage_over** (*Optional*): fault op dc voltage over +- **fault_battery_open** (*Optional*): fault battery open +- **fault_current_sensor_failed** (*Optional*): fault current sensor failed +- **fault_battery_short** (*Optional*): fault battery short +- **warning_power_limit** (*Optional*): warning power limit +- **warning_pv_voltage_high** (*Optional*): warning pv voltage high +- **fault_mppt_overload** (*Optional*): fault mppt overload +- **warning_mppt_overload** (*Optional*): warning mppt overload +- **warning_battery_too_low_to_charge** (*Optional*): warning battery too low to charge +- **fault_dc_dc_over_current** (*Optional*): fault dc dc over current +- **fault_code** (*Optional*): fault code +- **warnung_low_pv_energy** (*Optional*): warnung low pv energy +- **warning_high_ac_input_during_bus_soft_start** (*Optional*): warning high ac input during bus soft start +- **warning_battery_equalization** (*Optional*): warning battery equalization + +Text Sensors +-------------- +.. code-block:: yaml + + # Example configuration entry + text_sensor: + - platform: pipsolar + pipsolar_id: inverter0 + device_mode: + id: inverter0_device_mode + name: inverter0_device_mode + last_qpigs: + id: inverter0_last_qpigs + name: inverter0_last_qpigs + last_qpiri: + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ +all sensors are normal text sensors... so all text sensor variables are working to. + +- **device_mode** (*Optional*): device mode response +- **last_qpigs** (*Optional*): last qpigs reponse +- **last_qpiri** (*Optional*): last qpiri reponse +- **last_qmod** (*Optional*): last qmod reponse +- **last_qflag** (*Optional*): last qflag reponse +- **last_qpiws** (*Optional*): last qpiws reponse +- **last_qt** (*Optional*): last qt reponse +- **last_qmn** (*Optional*): last qmn reponse + +Switches +-------------- +not all possible switches are exposed as they lead to the possibility to make serious damage. They should only be set at the physical device itself. + +.. code-block:: yaml + + # Example configuration entry + switch: + - platform: pipsolar + pipsolar_id: inverter0 + output_source_priority_utility: + name: inverter0_output_source_priority_utility + output_source_priority_solar: + name: inverter0_output_source_priority_solar + output_source_priority_battery: + name: inverter0_output_source_priority_battery + input_voltage_range: + name: inverter0_input_voltage_range + pv_ok_condition_for_parallel: + name: inverter0_pv_ok_condition_for_parallel + pv_power_balance: + name: inverter0_pv_power_balance + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ +all sensors are normal text sensors... so all text sensor variables are working to. + +- **output_source_priority_utility** (*Optional*): output source priority utility +- **output_source_priority_solar** (*Optional*): output source priority solar +- **output_source_priority_battery** (*Optional*): output source priority battery +- **input_voltage_range** (*Optional*): input voltage range +- **pv_ok_condition_for_parallel** (*Optional*): pv ok condition for parallel +- **pv_power_balance** (*Optional*): pv power balance + +Outputs +-------------- +not all possible outputs are exposed as they lead to the possibility to make serious damage. They should only be set at the physical device itself. + +.. code-block:: yaml + + # Example configuration entry + output: + - platform: pipsolar + pipsolar_id: inverter0 + battery_recharge_voltage: + id: inverter0_battery_recharge_voltage_out + +Configuration variables: +~~~~~~~~~~~~~~~~~~~~~~~~ +all sensors are normal text sensors... so all text sensor variables are working to. + +- **battery_recharge_voltage** (*Optional*): battery recharge voltage; +- **battery_under_voltage** (*Optional*): battery under voltage; +- **battery_float_voltage** (*Optional*): battery float voltage; +- **battery_type** (*Optional*): battery type; +- **current_max_ac_charging_current** (*Optional*): current max ac charging current; +- **current_max_charging_current** (*Optional*): current max charging current; +- **output_source_priority** (*Optional*): output source priority; +- **charger_source_priority** (*Optional*): charger source priority; +- **battery_redischarge_voltage** (*Optional*): battery redischarge voltage; See Also -------- From 3d28b86bd77bdd0494428641fbdf699f162659cb Mon Sep 17 00:00:00 2001 From: Andreas Hergert Date: Sun, 4 Apr 2021 13:39:55 +0200 Subject: [PATCH 5/9] tidy --- components/pipsolar.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/components/pipsolar.rst b/components/pipsolar.rst index 3c6bee6314..99201d2b2e 100644 --- a/components/pipsolar.rst +++ b/components/pipsolar.rst @@ -77,7 +77,7 @@ Sensors Configuration variables: ~~~~~~~~~~~~~~~~~~~~~~~~ -all sensors are normal sensors... so all sensor variables are working to. +All sensors are normal sensors... so all sensor variables are working to. - **grid_rating_voltage** (*Optional*): grid rating voltage - **grid_rating_current** (*Optional*): grid rating current @@ -145,7 +145,7 @@ Binary Sensors Configuration variables: ~~~~~~~~~~~~~~~~~~~~~~~~ -all sensors are normal binary sensors... so all binary sensor variables are working to. +All sensors are normal binary sensors... so all binary sensor variables are working to. - **add_sbu_priority_version** (*Optional*): add sbu priority version - **configuration_status** (*Optional*): configuration status @@ -223,7 +223,7 @@ Text Sensors Configuration variables: ~~~~~~~~~~~~~~~~~~~~~~~~ -all sensors are normal text sensors... so all text sensor variables are working to. +All sensors are normal text sensors... so all text sensor variables are working to. - **device_mode** (*Optional*): device mode response - **last_qpigs** (*Optional*): last qpigs reponse @@ -236,7 +236,7 @@ all sensors are normal text sensors... so all text sensor variables are working Switches -------------- -not all possible switches are exposed as they lead to the possibility to make serious damage. They should only be set at the physical device itself. +Not all possible switches are exposed as they lead to the possibility to make serious damage. They should only be set at the physical device itself. .. code-block:: yaml @@ -259,7 +259,7 @@ not all possible switches are exposed as they lead to the possibility to make se Configuration variables: ~~~~~~~~~~~~~~~~~~~~~~~~ -all sensors are normal text sensors... so all text sensor variables are working to. +All sensors are normal text sensors... so all text sensor variables are working to. - **output_source_priority_utility** (*Optional*): output source priority utility - **output_source_priority_solar** (*Optional*): output source priority solar @@ -270,7 +270,7 @@ all sensors are normal text sensors... so all text sensor variables are working Outputs -------------- -not all possible outputs are exposed as they lead to the possibility to make serious damage. They should only be set at the physical device itself. +Not all possible outputs are exposed as they lead to the possibility to make serious damage. They should only be set at the physical device itself. .. code-block:: yaml @@ -283,7 +283,7 @@ not all possible outputs are exposed as they lead to the possibility to make ser Configuration variables: ~~~~~~~~~~~~~~~~~~~~~~~~ -all sensors are normal text sensors... so all text sensor variables are working to. +All sensors are normal text sensors... so all text sensor variables are working to. - **battery_recharge_voltage** (*Optional*): battery recharge voltage; - **battery_under_voltage** (*Optional*): battery under voltage; From 67466eae6d3d64c880cea627a00d2ce8c1d6723e Mon Sep 17 00:00:00 2001 From: Andreas Hergert Date: Mon, 5 Apr 2021 08:35:59 +0200 Subject: [PATCH 6/9] added automation --- components/pipsolar.rst | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/components/pipsolar.rst b/components/pipsolar.rst index 99201d2b2e..2c529e9e60 100644 --- a/components/pipsolar.rst +++ b/components/pipsolar.rst @@ -286,15 +286,56 @@ Configuration variables: All sensors are normal text sensors... so all text sensor variables are working to. - **battery_recharge_voltage** (*Optional*): battery recharge voltage; + + - **possible_values** (*Optional*,list): a list of possible values default: 44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0 - **battery_under_voltage** (*Optional*): battery under voltage; + + - **possible_values** (*Optional*,list): a list of possible values default: 40.0,40.1,42,43,44,45,46,47,48.0 - **battery_float_voltage** (*Optional*): battery float voltage; + + - **possible_values** (*Optional*,list): a list of possible values default: 48.0,49.0,50.0,51.0 - **battery_type** (*Optional*): battery type; + + - **possible_values** (*Optional*,list): a list of possible values default: 0,1,2 - **current_max_ac_charging_current** (*Optional*): current max ac charging current; + + - **possible_values** (*Optional*,list): a list of possible values default: 2,10,20 - **current_max_charging_current** (*Optional*): current max charging current; + + - **possible_values** (*Optional*,list): a list of possible values default: 10,20,30,40 - **output_source_priority** (*Optional*): output source priority; + + - **possible_values** (*Optional*,list): a list of possible values default: 0,1,2 - **charger_source_priority** (*Optional*): charger source priority; + + - **possible_values** (*Optional*,list): a list of possible values default: 0,1,2,3 - **battery_redischarge_voltage** (*Optional*): battery redischarge voltage; + - **possible_values** (*Optional*,list): a list of possible values default: 00.0,48.0,49,50.0,51.0,52,53,54,55,56,57,58 + +.. _Pipsolaroutput_set_level_action: + +``Pipsolaroutput.set_level`` Action +---------------------- + +To use your outputs in :ref:`automations ` or templates, you can use this action to set the +target level of the output. + +.. code-block:: yaml + + on_...: + then: + - Pipsolaroutput.set_level: + id: my_pipsolar_output + level: 48.0 + + +Configuration options: + +- **id** (**Required**, :ref:`config-id`): The ID of the output. +- **level** (*Optional*, percentage, :ref:`templatable `): The target level. + + See Also -------- From 07a63a13be178e6134e0bfacf1284cc600e2a58e Mon Sep 17 00:00:00 2001 From: Andreas Hergert Date: Mon, 5 Apr 2021 08:43:09 +0200 Subject: [PATCH 7/9] tidy --- components/pipsolar.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/pipsolar.rst b/components/pipsolar.rst index 2c529e9e60..d3ebb1eaa1 100644 --- a/components/pipsolar.rst +++ b/components/pipsolar.rst @@ -316,7 +316,7 @@ All sensors are normal text sensors... so all text sensor variables are working .. _Pipsolaroutput_set_level_action: ``Pipsolaroutput.set_level`` Action ----------------------- +----------------------------------- To use your outputs in :ref:`automations ` or templates, you can use this action to set the target level of the output. From 49203a4de7186cc37c1de04f7ed4fa599f162ceb Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Tue, 10 Aug 2021 09:43:41 +1200 Subject: [PATCH 8/9] Apply suggestions from code review --- components/pipsolar.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/components/pipsolar.rst b/components/pipsolar.rst index d3ebb1eaa1..3ab4b47148 100644 --- a/components/pipsolar.rst +++ b/components/pipsolar.rst @@ -1,5 +1,5 @@ PipSolar PV Inverter -======================== +==================== .. seo:: :description: Instructions for setting up PipSolar Compatible PV Inverter in ESPHome. @@ -55,7 +55,7 @@ Configuration variables: - **uart_id** (*Optional*): The uart Bus ID Sensors --------- +------- .. code-block:: yaml # Example configuration entry @@ -206,7 +206,7 @@ All sensors are normal binary sensors... so all binary sensor variables are work - **warning_battery_equalization** (*Optional*): warning battery equalization Text Sensors --------------- +------------ .. code-block:: yaml # Example configuration entry @@ -235,7 +235,7 @@ All sensors are normal text sensors... so all text sensor variables are working - **last_qmn** (*Optional*): last qmn reponse Switches --------------- +-------- Not all possible switches are exposed as they lead to the possibility to make serious damage. They should only be set at the physical device itself. .. code-block:: yaml @@ -313,9 +313,9 @@ All sensors are normal text sensors... so all text sensor variables are working - **possible_values** (*Optional*,list): a list of possible values default: 00.0,48.0,49,50.0,51.0,52,53,54,55,56,57,58 -.. _Pipsolaroutput_set_level_action: +.. _pipsolaroutput_set_level_action: -``Pipsolaroutput.set_level`` Action +``output.pipsolar.set_level`` Action ----------------------------------- To use your outputs in :ref:`automations ` or templates, you can use this action to set the @@ -325,7 +325,7 @@ target level of the output. on_...: then: - - Pipsolaroutput.set_level: + - output.pipsolar.set_level: id: my_pipsolar_output level: 48.0 From 84c7906b4af9af667223d2b4c40c1371ff48ad99 Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Tue, 10 Aug 2021 10:03:01 +1200 Subject: [PATCH 9/9] Update components/pipsolar.rst --- components/pipsolar.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/pipsolar.rst b/components/pipsolar.rst index 3ab4b47148..31b0b4e9c0 100644 --- a/components/pipsolar.rst +++ b/components/pipsolar.rst @@ -316,7 +316,7 @@ All sensors are normal text sensors... so all text sensor variables are working .. _pipsolaroutput_set_level_action: ``output.pipsolar.set_level`` Action ------------------------------------ +------------------------------------ To use your outputs in :ref:`automations ` or templates, you can use this action to set the target level of the output.