kostal
Version: 1.3.1.2
Requirements
Kostal Inverter
This plugin is designed to retrieve data from a KOSTAL inverter module (e.g. PIKO inverters). Since UI-version (communication-board) 6 json-format is supported.
Forum thread to the plugin: https://knx-user-forum.de/forum/supportforen/smarthome-py/1109697-kostal-plugin-piko-wechselrichter
Supported Hardware
Is currently working with the following KOSTAL inverter modules:
KOSTAL PIKO 3.0 UI-Version 06.20 (datastructure=json)
KOSTAL PIKO 5.5 UI-Version 05.xx (datastructure=html)
(should work with all KOSTAL PIKO inverters)
Hint
If communication board (Kommunikationsboard II) firmware has a version 5.x, then the inverter generates an html - page. The default datastructure=html configuration of this plugin, trys to read the current inverter values from this status page.
If communication board (Kommunikationsboard II) firmware has a version 6.x, then the inverter generates ajax - style status page. The datastructure=json configuration of this plugin, reads the current inverter values from an json-comminication string.
So the datastructure - configuration depends on the firmwareversion of your communication board.
New inverters: http://kostal-solar-electric.com/de-DE/Produkte_Service/PIKO-Wechselrichter_neue_Generation My Kostal Piko 3.0 was shipped with a communication board with a firmware version 5.x. After a firmware-upgrade my inverter doesn’t ship a html-page. Now i could user the JSON-communication. Firmware Updates http://www.kostal-solar-electric.com/de-DE/Download/Updates
Old inverters: http://kostal-solar-electric.com/de-DE/Produkte_Service/PIKO-Wechselrichter_bewaehrte_Generation, I’ll don’t know if the communication board of old inverters could also be updated to version 6.x.
Configuration
plugin.yaml
The plugin can be configured like this:
Kostal_PV:
plugin_name: kostal
ip: 192.168.1.21
user: pvserver
passwd: pvwr
cycle: 300
datastructure: html
# use
# datastructure: json
# for UI-Version >6
This plugin retrieves data from a KOSTAL inverter module of a solar energy plant.
The data retrieval is done by establishing a network connection to the inverter module and retrieving the status via a HTTP/JSON request.
You need to configure the IP address of the inverter module. If datastructure=html is used the user and password attributes (user, passwd) can be overwritten, but defaults to the standard credentials.
If datasructure=json is used, no credentials are requred.
The cycle parameter defines the update interval and defaults to 300 seconds.
items.yaml
Description of all possible items (depending on inverter features)
Hint: PIKO 3.0 is a single phase inverter with a single dc-line (dc-string). all DC2, DC3, AC2 and AC3 values would reply a None-value.
operation_status: status of the Kostal inverter (On,Off,Feed in,starting)
dcpower: total dc power (all dc inputs); unit: Watt
dc1_v … dc3_v: DC-voltage input 1 … 3; unit: Voltage
dc1_a … dc3_a: DC-current input 1 … 3; unit: Ampere
dc1_w … dc3_w: DC-power input 1 … 3; unit: Watt [1]
actot_w : total ac power (all ac phases); unit: Watt
actot_cos: total ac Cos φ [1]
actot_limitation: total ac limitation; unit % [1]
ac1_v … ac3_v: AC phase 1 … 3 voltage; unit: Voltage
ac1_a … ac3_a: AC phase 1 … 3 current; unit: Ampere [1]
ac1_w … ac3_w: AC phase 1 … 3 power; unit: Watt
yield_day_kwh: Yield today; unit kWh [2]
yield_tot_kwh: Yield total; unit kWh
operationtime_h: Inverter operation time; unit hours [1]
[1] If your communication board has a firmwareversion 5 (datastructure=html), these values are not displayed in the html-status page and are also not available for the plugin.
[2] The json communication returns Yield_today in Wh. The plugin divide the value by 1000. So we get in both communication ways the same units.
Hint: Item names have changed from the previous version of the plugin, so that both types of communication can be configured the same way.
Example
# not all possible items are used
Kostal_PV:
status:
name: inverter status
type: str
kostal: operation_status
dcpower:
name: total dc power
type: num
kostal: dctot_w
dc1_v:
name: DC-input 1 voltage
type: num
kostal: dc1_v
dc1_a:
name: DC-input 1 current
type: num
kostal: dc1_a
dc1_w:
name: DC-input 1 power
type: num
kostal: dc1_w
dc2_v:
name: DC-input 2 voltage
type: num
kostal: dc2_v
dc2_a:
name: DC-input 2 current
type: num
kostal: dc2_a
dc2_w:
name: DC-input 2 power
type: num
kostal: dc2_w
actot_w:
name: total ac-output power
type: num
kostal: actot_w
actot_cos:
name: Cos phi
type: num
kostal: actot_cos
actot_limitation:
name: Limitation on percent
type: num
kostal: actot_limitation
ac1_v:
name: Phase 1 voltage
type: num
kostal: ac1_v
ac1_a:
name: Phase 1 current
type: num
kostal: ac1_a
ac1_w:
name: Phase 1 power
type: num
kostal: ac1_w
ac2_v:
name: Phase 2 voltage
type: num
kostal: ac2_v
ac2_a:
name: Phase 2 current
type: num
kostal: ac2_a
ac2_w:
name: Phase 2 power
type: num
kostal: ac2_w
ac3_v:
name: Phase 3 voltage
type: num
kostal: ac3_v
ac3_a:
name: Phase 3 current
type: num
kostal: ac3_a
ac3_w:
name: Phase 3 power
type: num
kostal: ac3_w
yield_day_kwh:
name: Yield today
type: num
kostal: yield_day_kwh
yield_tot_kwh:
name: Yield total
type: num
kostal: yield_tot_kwh
operationtime_h:
name: Operation time
type: num
kostal: operationtime_h
logic.yaml
No logic related stuff implemented.
Methods
No methods provided currently.