Ankündigung

Einklappen

Hinweis

Die Forenregeln wurden überarbeitet (Stand 7.11.22). Sie sind ab sofort verbindlich. Wir bitten um Beachtung.
Mehr anzeigen
Weniger anzeigen

Kostal Plugin - PIKO Wechselrichter

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Kostal Plugin - PIKO Wechselrichter

    Hi,

    wer es noch nicht kennt: SmartHomeNG hat ein Kostal-Plugin: https://github.com/smarthomeNG/plugi.../master/kostal

    Mit diesem Plugin (das gibt es bereits schon seit laengerem) ist es moeglich PIKO Wechselrichterdaten auszulesen und in SmartHomeNG zu integrieren. Es erfaehrt gerade eine Erweiterung, so dass auch neue Wechselrichter ueber ein JSON-Format angesprochen werden koennen.

    Es unterstuetzt die alte Generation (via HTML-Format) sowie die neue Generation (via JSON-Format, wird gerade integriert) der PIKO Wechselrichter. Fuer Details auch mal in die Pluginbeschreibung schauen.

    Viele Gruesse!

    PS: aktuelle Erweiterung kann hier eingesehen werden: https://github.com/smarthomeNG/plugins/pull/61

    #2
    Hallo,

    habe mein System (SmartHomeNG Develop) heute auf den neusten Stand gebracht und festgestellt, dass mein Wechselrichter und das neue Kostal Plugin nun nicht mehr miteinander kommunizieren wollen. Im Log sind aber keinerlei Infos oder Fehler vom Plugin zu finden. Es kommen einfach keine Werte mehr im System an.

    Ich habe dann aus einem früheren Stand des Develop die alte Version des Plugin genommen und da funktioniert die Kommunikation wieder einwandfrei.

    Ich habe folgenden Wechselrichter:

    PIKO 10.1
    Version UI : 5.44
    Firmware : 4.00

    Ich hatte bei Kostal 2015 nachgefragt, ob es ein Firmware-Update für diesen Wechselrichter gebe. Das wurde verneint.

    Gruss

    Matthias

    Kommentar


      #3
      Hi,

      das liegt daran, das in diesem Update auch andere Wechselrichter unterstuetzt werden (die mit eine Firmware die JSON unterstuetzen). Dabei haben sich die Namen die man in der kostal-Einstellung des Items verwenden kann geaendert.

      Diese muss man nun anpassen. Siehe Readme, dort steht die aktuelle Liste: https://github.com/smarthomeNG/plugi...develop/kostal

      Ich bin gerade noch am Ueberlegen ob es Sinn ergibt die alten Namen weiterhin zu unterstuetzen und eine Warning ins Log zu schreiben, dass diese bald nicht mehr unterstuetzt werden, damit Benutzer des Plugins die Einstellungen anpassen koennen.

      Gruss

      Kommentar


        #4
        Hi,

        da es nicht gerade aufwaendig war, habe ich das Plugin angepasst, so dass a) die alten Einstellungen weiterhin funktionieren und b) die Benutzer mit einer Warnung im Log darauf hingewiesen werden, die Einstellung entsprechend zu aktualisieren.

        Damit solltest du dann keine Probleme mehr haben.

        Gruss

        Kommentar


          #5
          Danke für die schnelle Lösung. So ist das Mapping auf die neuen Namen ganz einfach zu machen - genial !

          Kommentar


            #6
            Hallo,

            was ist denn mit den analogen Eingängen passiert? sind diese mit dem neuen Plugin verschwunden ? Leider muss ich die Eingänge noch für diverse Auswertungen benutzen
            Gruß

            Kommentar


              #7
              Hi feftopper,

              waren die analogen Eingaenge jemals unterstuetzt? Ich kann mich nicht daran erinnern. Falls das unterstuetzt werden sollte, erstelle doch einfach ein Issue auf GitHub dafuer.

              Gruss

              Kommentar


                #8
                Hallo blubbs99,
                da ich demnächst selbst eine PV-Anlage mit einem Kostal Piko 7.0 haben werde, bin ich sehr angenehm überrascht, dass es schon ein Plugin gibt.
                Super Arbeit.

                Was mich noch interessieren würde, wo hast du die Beschreibung der json-Codes her?
                Gibt es noch mehr Daten, die man auslesen kann?
                Auf der Page von Kostal habe ich dazu nur allgemeines Krams gefunden.

                Gruß
                ElektroRudi

                ............kann,.muß aber net....

                Kommentar


                  #9
                  Hallo zusammen, ich habe auch seit letzter Woche den Kostal Plenticore 7.0 verbaut. Damit ich überhaupt jetzt dieses von Github nutzen kann brauche ich jetzt noch das Modul EM300LR oder? Weil dieses hat man mir nicht angeboten weil man es dann braucht wenn man einen Speicher anschließt.

                  Einen Ling und Janke Energiezähler hätte ich schon. Gibt es da nicht die Möglichkeit es anderweitig auszurechnen?

                  Grüße

                  Kommentar


                    #10
                    Ich prüfe die Anschaffung eines PLENTICORE plus 10. Hat jemand Erfahrung zur Integration dieses Wechselrichters in SmarthomeNG ?

                    Kommentar


                      #11
                      Hallo,

                      ich habe da Probleme mit dem Update der Items... aber kurz zum "Drumrum".
                      Selbst bin ich Linux-Neuling und habe seit kurzem SmarthomeNG auf einem RasPi laufen. Die Insatllation ging im großen und ganzen mit dem aktuellen Image (1.6) recht gut.
                      Als eine der ersten Dinge will ich gerne die Daten meines Kostal Piko BA 10 aufzeichnen und visualisieren.
                      Also erstmal die MariaDB installiert und zum laufen gebracht (für einen Linux-Neuling war das schon Level 2...)
                      Das Kostal Plugin eingebunden: läuft.
                      Allerdings nutze ich den Wechselrichter mit Batterie, so dass ich noch einige Werte mehr auslesen möchte. In einem anderen Forum habe ich eine Liste der entsprechenden JSON Adressen(?) gefunden. Über die direkte Eingabe im Webbrowser sind auch alle Werte jederzeit auslesbar.
                      Nun hab ich die __init__.py und die kostal.yaml entsprechend erweitert und, tada alle Kanäle werden bei den Items angezeigt.
                      Und jetzt kommt das Problem:
                      Leider werden nicht für alle Kanäle die Daten auch ausgelesen. Bei manchen Kanälen steht immer eine 0.
                      Also hab ich erstmal gedacht, ich hab da in den files bei genau den Kanälen irgend einen Schmarrn eigegeben, konnte aber nichts finden.
                      Als nächstes fiel mir auf, dass die nicht ausgelesen Kanäle nach jedem smarthome.service restart wechseln...
                      Bei entsprechenden Kanälen steht bei "update durch" und "change durch" jeweil "INIT" und nicht wie bei den anderen "Logic"

                      Ich habe probiert, bei allen Kanälen enforce_updates auf true zu setzen, ohne Erfolg.

                      Ich vermute, da die Kanäle ja immer andere sind, dass hier evtl. ein Timing Problem mit dem Wechselrichter bei der Abfrage auftreten könnte,
                      da ich nach wie vor zu jeder Zeit jeden Kanal durch Webbrowsereingabe aufrufen kann.

                      Wenn ich richtig vermute, wie könnte ich die Abfrage verlangsamen?

                      Was sonst könnte es sein?

                      Hab jetzt drei Tage (bzw. Nächte) versucht hier im Forum Hinweise zu finden, leider ohne Erfolg...
                      Sollte ich etwas aus eurer Sicht vollkommen offensichtliches falsch machen, habt bitte Nachsicht und gebt mir einen Tipp wie ich weiter kommen könnte.

                      Vielen Dank für eure Hilfe

                      Nolle

                      Kommentar


                        #12
                        Poste doch mal die json daten, deine items und dein erweitertes plugin , ich denke dann könnte man dir helfen
                        vl hast du nur nen Fehler im plugin gemacht

                        Kommentar


                          #13
                          Hi,

                          mach ich gerne, s.u..

                          Was ich bisher noch rausgefunden habe:
                          Ich kann bis maximal 25 Items abrufen, ohne dass mir Daten fehlen. Sobald es mehr werden, werden diese zwar als Item angezeigt, aber eine über die items zufällig und wechselnd verteilte Anzahl Items_total - 25 wird nicht abgerufen (wie oben beschrieben bleiben die auf INIT).
                          Ich habe auch schon versucht auf verschiedene Ebenen und sogar verschiedene yaml-Dateien aufzuteilen. Immer maximal 25 Items mit Werten. Der Rest wird angezeigt aber nicht mit Daten gefüttert.
                          Ich habe in der *.py gesehen, dass es wohl einen Kostal-Logger gibt... Wo finde ich den denn???

                          Dank und Gruß

                          __ini__.py:
                          Code:
                          #!/usr/bin/env python3
                          # vim: set encoding=utf-8 tabstop=4 softtabstop=4 shiftwidth=4 expandtab
                          #########################################################################
                          # Copyright 2012- Oliver Hinckel github@ollisnet.de
                          # Copyright 2017 Wenger Florian  wenger@unifox.at
                          #########################################################################
                          #  This file is part of SmartHomeNG.
                          #
                          #  SmartHomeNG is free software: you can redistribute it and/or modify
                          #  it under the terms of the GNU General Public License as published by
                          #  the Free Software Foundation, either version 3 of the License, or
                          #  (at your option) any later version.
                          #
                          #  SmartHomeNG is distributed in the hope that it will be useful,
                          #  but WITHOUT ANY WARRANTY; without even the implied warranty of
                          #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                          #  GNU General Public License for more details.
                          #
                          #  You should have received a copy of the GNU General Public License
                          #  along with SmartHomeNG. If not, see <http://www.gnu.org/licenses/>.
                          #
                          #########################################################################
                          
                          import logging
                          from lib.model.smartplugin import SmartPlugin
                          from lib.utils import Utils
                          import urllib.request, json
                          import time
                          import re
                          
                          class Kostal(SmartPlugin):
                              """
                              Since UI-version 6 the inverter can answere requests with json.
                              Unfortunately, I have only a simple inverter. Therefore, I can not test
                              the values for other phases or a second DC Line-In.
                              See README.md for more details
                              """
                              ALLOW_MULTIINSTANCE = True
                          
                              PLUGIN_VERSION = "1.3.1.2"
                          
                              _key2json = {
                                 'operation_status' : 16780032,
                                 'dctot_w' : 33556736,
                                 'dc1_a' : 33555201,
                                 'dc1_v' : 33555202,
                                 'dc1_w' : 33555203,
                                 'dc2_a' : 33555457,
                                 'dc2_v' : 33555458,
                                 'dc2_w' : 33555459,
                                 'dc3_a' : 33555713,
                                 'dc3_v' : 33555714,
                                 'dc3_w' : 33555715,
                                 'actot_w' : 67109120,
                                 'actot_limitation' : 67110144,
                                 'actot_Hz' : 67110400,
                                 'actot_cos' : 67110656,
                                 'ac1_v' : 67109378,
                                 'ac1_a' : 67109377,
                                 'ac1_w' : 67109379,
                                 'ac2_v' : 67109634,
                                 'ac2_a' : 67109633,
                                 'ac2_w' : 67109635,
                                 'ac3_v' : 67109890,
                                 'ac3_a' : 67109889,
                                 'ac3_w' : 67109891,
                                 'house_solar_w' : 83886336,
                                 'house_bat_w' : 83886592,
                                 'house_grid_w' : 83886848,
                                 'house_phase1_w' : 83887106,
                                 'house_phase2_w' : 83887362,
                                 'house_phase3_w' : 83887618,
                                 'own_w' : 83888128,
                                 'operationtime_h' : 251658496,
                                 'yield_tot_kwh' : 251658753,
                                 'yield_day_kwh' : 251658754,
                                 'house_tot_kwh' : 251659009,
                                 'house_day_kwh' : 251659010,
                                 'own_tot_kwh' : 251659265,
                                 'own_day_kwh' : 251659266,
                                 'own_day_rate' : 251659278,
                                 'ss_day_rate' : 251659279,
                                 'own_tot_rate' : 251659280,
                                 'ss_tot_rate' : 251659281
                              }
                              _key2td = {
                                  'actot_w': 9,
                                  'yield_tot_kwh': 12,
                                  'yield_day_kwh': 21,
                                  'operation_status': 27,
                                  'dc1_v': 45,
                                  'dc2_v': 69,
                                  'dc3_v': 93,
                                  'dc1_a': 54,
                                  'dc2_a': 78,
                                  'dc3_a': 102,
                                  'ac1_v': 48,
                                  'ac2_v': 72,
                                  'ac3_v': 96,
                                  'ac1_w': 57,
                                  'ac2_w': 81,
                                  'ac3_w': 105
                              }
                              _deprecated = {
                                  'power_current': 'actot_w',
                                  'power_total': 'yield_tot_kwh',
                                  'power_day': 'yield_day_kwh',
                                  'status': 'operation_status',
                                  'string1_volt': 'dc1_v',
                                  'string2_volt': 'dc2_v',
                                  'string3_volt': 'dc3_v',
                                  'string1_ampere': 'dc1_a',
                                  'string2_ampere': 'dc2_a',
                                  'string3_ampere': 'dc3_a',
                                  'l1_volt': 'ac1_v',
                                  'l2_volt': 'ac2_v',
                                  'l3_volt': 'ac3_v',
                                  'l1_watt': 'ac1_w',
                                  'l2_watt': 'ac2_w',
                                  'l3_watt': 'ac3_w'
                              }
                          
                              def __init__(self, sh, ip, user="pvserver", passwd="pvwr",cycle=300, datastructure="html"):
                                  self._sh = sh
                                  self.logger = logging.getLogger(__name__)
                                  self.logger.info('Init Kostal plugin')
                                  self.user = user
                                  self.passwd = passwd
                                  self.cycle = int(cycle)
                                  self._items = {}
                                  if Utils.is_ip(ip):
                                      self.ip = ip
                                  else:
                                      self.logger.error(str(ip) + " is not a valid IP")
                                  if datastructure == "html":
                                      self._keytable = self._key2td
                                      #self.datastructure = "html"
                                      self.datastructure = self._html
                                  else:
                                      self._keytable = self._key2json
                                      #self.datastructure = "json"
                                      self.datastructure = self._json
                          
                              def run(self):
                                  """
                                  Run method for the plugin
                                  """
                                  self.logger.debug("run method Kostal called")
                                  self.alive = True
                                  self._sh.scheduler.add('Kostal', self._refresh, cycle=self.cycle)
                          
                              def stop(self):
                                  """
                                  Stop method for the plugin
                                  """
                                  self.logger.debug("stop method Kostal called")
                                  self.alive = False
                          
                              def parse_item(self, item):
                                  """
                                  Default plugin parse_item method. Is called when the plugin is initialized.
                                  Selects each item corresponding to its attribute keywords and adds it to an internal array
                                  :param item: The item to process.
                                  """
                                  if self.has_iattr(item.conf, 'kostal'):
                                      setting = self.get_iattr_value(item.conf, 'kostal')
                                      if setting in self._deprecated:
                                          self.logger.warn('Kostal: Using deprecated setting {}, please change to {}'.format(setting, self._deprecated[setting]))
                                          setting = self._deprecated[setting]
                                      self._items[setting] = item
                                      return self.update_item
                          
                              def parse_logic(self, logic):
                                  pass
                          
                              def update_item(self, item, caller=None, source=None, dest=None):
                                  """
                                  Write items values
                                  :param item: item to be updated towards the plugin
                                  :param caller: if given it represents the callers name
                                  :param source: if given it represents the source
                                  :param dest: if given it represents the dest
                                  """
                                  pass
                          
                              def _html(self):
                                  #HTML-OLD-Coding
                                  try:
                                      data = self._sh.tools.fetch_url(
                                          'http://' + self.ip + '/', self.user, self.passwd, timeout=2).decode()
                                      # remove all attributes for easy findall()
                                      data = re.sub(r'<([a-zA-Z0-9]+)(\s+[^>]*)>', r'<\1>', data)
                                      # search all TD elements
                                      table = re.findall(r'<td>([^<>]*)</td>', data, re.M | re.I | re.S)
                                      for kostal_key in self._keytable:
                                          value = table[self._keytable[kostal_key]].strip()
                                          if 'x x x' not in value:
                                              self.logger.debug('set {0} = {1}'.format(kostal_key, value))
                                              if kostal_key in self._items:
                                                  self._items[kostal_key](value)
                                  except Exception as e:
                                      self.logger.error(
                                          'could not retrieve data from {0}: {1}'.format(self.ip, e))
                                      return
                          
                              def _json(self):
                                  #NEW-JSON-Coding
                                  try:
                                      # generate url; fetching only needed elements
                                      kostalurl = 'http://' + self.ip + '/api/dxs.json?sessionid=SmartHomeNG'
                                      for item in self._items:
                                          value = self._keytable[item]
                                          kostalurl +='&dxsEntries=' + str(value)
                                      with urllib.request.urlopen(kostalurl) as url:
                                          data = json.loads(url.read().decode())
                                          for values in data['dxsEntries']:
                                              kostal_key = str(list(self._keytable.keys())[list(self._keytable.values()).index(values['dxsId'])])
                                              value=values['value']
                                              if kostal_key == "operation_status":
                                                  self.logger.debug("operation_status" + str(value))
                                                  if str(value) == "0":
                                                      value = "off"
                                                  elif str(value) == "2":
                                                      value = "startup"
                                                  elif str(value) == "3":
                                                      value = "feed in (mpp)"
                                                  elif str(value) == "6":
                                                      value = "dc voltage low"
                                                  else:
                                                      value = "unknown"
                                              if kostal_key == "yield_day_kwh":
                                                      value = value / 1000
                                              if kostal_key in self._items:
                                                  self._items[kostal_key](value)
                                                  self.logger.debug("items[" + str(kostal_key) +"] = " +str(value))
                                  except Exception as e:
                                      self.logger.error(
                                          'could not retrieve data from {0}: {1}'.format(self.ip, e))
                                      return
                          
                              def _refresh(self):
                                  start = time.time()
                                  # run the working methods
                                  self.datastructure()
                                  cycletime = time.time() - start
                                  self.logger.debug("cycle takes {0} seconds".format(cycletime))
                          plugin.yaml:
                          Code:
                          # Metadata for the Smart-Plugin
                          plugin:
                              # Global plugin attributes
                              type: interface                 # plugin type (gateway, interface, protocol, system, web)
                              description:
                                  de: "Anbindung eines KOSTAL-Wechselrichters  [KOSTAL](http://www.kostal-solar-electric.com/) \
                          
                                       Das Plugin funktioniert aktuell mit den folgenden Inverter Moduln von KOSTAL:
                          
                                         * 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)"
                                  en: "This plugin is designed to retrieve data from a [KOSTAL](http://www.kostal-solar-electric.com/) inverter \
                                       module (e.g. PIKO inverters). Since UI-version (communication-board) 6 json-format is supported.
                          
                                       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)"
                              maintainer: ohinckel
                              tester: ohinckel, datenschuft
                              state: ready
                          #    keywords: iot xyz
                          #    documentation: https://github.com/smarthomeNG/smarthome/wiki/CLI-Plugin        # url of documentation (wiki) page
                              support: https://knx-user-forum.de/forum/supportforen/smarthome-py/1109697-kostal-plugin-piko-wechselrichter
                          
                              version: 1.3.1.2               # Plugin version
                              sh_minversion: 1.3             # minimum shNG version to use this plugin
                          #    sh_maxversion:                 # maximum shNG version to use this plugin (leave empty if latest)
                              multi_instance: True           # plugin supports multi instance
                              restartable: unknown
                              classname: Kostal              # class containing the plugin
                          
                          parameters:
                              # Definition of parameters to be configured in etc/plugin.yaml
                          
                          #def __init__(self, sh, ip, user="pvserver", passwd="pvwr",cycle=300, datastructure="html"):
                          
                              ip:
                                  type: ip
                                  mandatory: True
                                  description:
                                      de: "IP Adresse des Konverters"
                                      en: "IP address of converter"
                          
                              user:
                                  type: str
                                  default: pvserver
                                  description:
                                      de: "Benutzername"
                                      en: "Username"
                          
                              passwd:
                                  type: str
                                  default: pvwr
                                  description:
                                      de: "Passwort"
                                      en: "Password"
                          
                              cycle:
                                  type: int
                                  default: 300
                                  description:
                                      de: "Zykluszeit"
                                      en: "Cycle time"
                          
                              datastructure:
                                  type: str
                                  default: html
                                  valid_list:
                                      - html
                                      - json
                                  description:
                                      de: "Format der Datenstrukturen (Falls json verwendet wird, sind keine Credentials notwendig)"
                                      en: "Format of datastructues (If json is used, no credentials are requred)"
                          
                          
                          item_attributes:
                              # Definition of item attributes defined by this plugin
                          
                              kostal:
                                  type: str
                                  valid_list:
                                    - operation_status
                                    - dcpower
                                    - dc1_v
                                    - dc2_v
                                    - dc3_v
                                    - dc1_a
                                    - dc2_a
                                    - dc3_a
                                    - dc1_w
                                    - dc2_w
                                    - dc3_w
                                    - actot_w
                                    - actot_cos
                                    - actot_limitation
                                    - ac1_v
                                    - ac2_v
                                    - ac3_v
                                    - ac1_a
                                    - ac2_a
                                    - ac3_a
                                    - ac1_w
                                    - ac2_w
                                    - ac3_w
                                    - yield_day_kwh
                                    - yield_tot_kwh
                                    - operationtime_h
                                    - house_solar_w
                                    - own_w
                                    - house_day_kwh
                                    - own_day_kwh
                                    - own_day_rate
                                    - ss_day_rate
                                    - house_tot_kwh
                                    - own_tot_kwh
                                    - own_tot_rate
                                    - ss_tot_rate
                                    - house_bat_w
                                    - house_grid_w
                                    - house_phase1_w
                                    - house_phase2_w
                                    - house_phase3_w
                                  valid_list_description:
                                      de:
                                        - 'Status des Kostal Inverters (On, Off, Feed in, starting)'
                                        - 'Summe DC Leistung (alle DC Eingänge); Einheit: Watt'
                                        - 'DC-Spannung Eingang 1; Einheit: Volt'
                                        - 'DC-Spannung Eingang 2; Einheit: Volt'
                                        - 'DC-Spannung Eingang 3; Einheit: Volt'
                                        - 'DC-Strom Eingang 1; Einheit: Ampere'
                                        - 'DC-Strom Eingang 2; Einheit: Ampere'
                                        - 'DC-Strom Eingang 3; Einheit: Ampere'
                                        - 'DC-Leistung Eingang 1; Einheit: Watt'
                                        - 'DC-Leistung Eingang 2; Einheit: Watt'
                                        - 'DC-Leistung Eingang 3; Einheit: Watt'
                                        - 'Summe AC Leistung (alle AC Phasen); Einheit: Watt'
                                        - 'Summe AC Cos φ'
                                        - 'Summe AC Limitierung; Einheit %'
                                        - 'AC Phase 1 Spannung; Einheit: Volt'
                                        - 'AC Phase 2 Spannung; Einheit: Volt'
                                        - 'AC Phase 3 Spannung; Einheit: Volt'
                                        - 'AC Phase 1 Strom; Einheit: Ampere'
                                        - 'AC Phase 2 Strom; Einheit: Ampere'
                                        - 'AC Phase 3 Strom; Einheit: Ampere'
                                        - 'AC Phase 1 Leistung; Einheit: Watt'
                                        - 'AC Phase 2 Leistung; Einheit: Watt'
                                        - 'AC Phase 3 Leistung; Einheit: Watt'
                                        - 'Ergebnis heute; Einheit kWh'
                                        - 'Ergebnis Gesamt; Einheit kWh'
                                        - 'Inverter Betriebszeit; Einheit Stunden'
                                        - 'own_w'
                                        - 'house_day_kwh'
                                        - 'own_day_kwh'
                                        - 'own_day_rate'
                                        - 'ss_day_rate'
                                        - 'house_tot_kwh'
                                        - 'own_tot_kwh'
                                        - 'own_tot_rate'
                                        - 'ss_tot_rate'
                                        - 'house_solar_w'
                                        - 'house_bat_w'
                                        - 'house_grid_w'
                                        - 'house_phase1_w'
                                        - 'house_phase2_w'
                                        - 'house_phase3_w'
                                      en:
                                        - 'status of the Kostal inverter (On, Off, Feed in, starting)'
                                        - 'total dc power (all dc inputs); unit: Watt'
                                        - 'DC-voltage input 1; unit: Voltage'
                                        - 'DC-voltage input 2; unit: Voltage'
                                        - 'DC-voltage input 3; unit: Voltage'
                                        - 'DC-current input 1; unit: Ampere'
                                        - 'DC-current input 2; unit: Ampere'
                                        - 'DC-current input 3; unit: Ampere'
                                        - 'DC-power input 1; unit: Watt'
                                        - 'DC-power input 2; unit: Watt'
                                        - 'DC-power input 3; unit: Watt'
                                        - 'total ac power (all ac phases); unit: Watt'
                                        - 'total ac Cos φ'
                                        - 'total ac limitation; unit %'
                                        - 'AC phase 1 voltage; unit: Voltage'
                                        - 'AC phase 2 voltage; unit: Voltage'
                                        - 'AC phase 3 voltage; unit: Voltage'
                                        - 'AC phase 1 current; unit: Ampere'
                                        - 'AC phase 2 current; unit: Ampere'
                                        - 'AC phase 3 current; unit: Ampere'
                                        - 'AC phase 1 power; unit: Watt'
                                        - 'AC phase 2 power; unit: Watt'
                                        - 'AC phase 3 power; unit: Watt'
                                        - 'Yield today; unit kWh'
                                        - 'Yield total; unit kWh'
                                        - 'Inverter operation time; unit hours'
                                        - 'own_w'
                                        - 'house_day_kwh'
                                        - 'own_day_kwh'
                                        - 'own_day_rate'
                                        - 'ss_day_rate'
                                        - 'house_tot_kwh'
                                        - 'own_tot_kwh'
                                        - 'own_tot_rate'
                                        - 'ss_tot_rate'
                                        - 'house_solar_w'
                                        - 'house_bat_w'
                                        - 'house_grid_w'
                                        - 'house_phase1_w'
                                        - 'house_phase2_w'
                                        - 'house_phase3_w'
                                  description:
                                      de: "Art der KOSTAL Daten, die im Item gespeichert werden"
                                      en: "Kind ao KOSTAL data to be stored in the item"
                          
                          
                          item_structs: NONE
                            # Definition of item-structure templates for this plugin
                          
                          logic_parameters: NONE
                              # Definition of logic parameters defined by this plugin
                          
                          plugin_functions: NONE
                              # Definition of function interface of the plugin
                          und die items: Kostal.yaml

                          Code:
                          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
                          
                              dc3_v:
                                  name: DC-input 3 voltage
                                  type: num
                                  kostal: dc3_v
                          
                              dc3_a:
                                  name: DC-input 3 current
                                  type: num
                                  kostal: dc3_a
                          
                              dc3_w:
                                  name: DC-input 3 power
                                  type: num
                                  kostal: dc3_w
                          
                              actot_w:
                                  name: total ac-output power
                                  type: num
                                  kostal: actot_w
                          
                              actot_hz:
                                  name: Frequency
                                  type: num
                                  kostal: actot_Hz
                          
                              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
                          
                              house_solar_w:
                                  name: Domestic PV
                                  type: num
                                  kostal: house_solar_w
                          
                              house_bat_w:
                                  name: Domestic battery
                                  type: num
                                  kostal: house_bat_w
                          
                              house_grid_w:
                                  name: Domestic grid
                                  type: num
                                  kostal: house_grid_w
                          
                              house_phase1_w:
                                  name: Domestic Phase 1
                                  type: num
                                  kostal: house_phase1_w
                          
                              house_phase2_w:
                                  name: Domestic Phase 2
                                  type: num
                                  kostal: house_phase2_w
                          
                              house_phase3_w:
                                  name: Domestic Phase 3
                                  type: num
                                  kostal: house_phase3_w
                          
                              own_w:
                                  name: Self-consumption
                                  type: num
                                  kostal: own_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
                          
                              house_tot_kwh:
                                  name: Domestic use total
                                  type: num
                                  kostal: house_tot_kwh
                          
                              house_day_kwh:
                                  name: Domestic use today
                                  type: num
                                  kostal: house_day_kwh
                          
                              own_tot_kwh:
                                  name: Self-consumption total
                                  type: num
                                  kostal: own_tot_kwh
                          
                              own_day_kwh:
                                  name: Self-consumption today
                                  type: num
                                  kostal: own_day_kwh
                          
                              own_day_rate:
                                  name: Self-consumption rate today
                                  type: num
                                  kostal: own_day_rate
                          
                              ss_day_rate:
                                  name: Self-sufficiency rate today
                                  type: num
                                  kostal: ss_day_rate
                          
                              own_tot_rate:
                                  name: Self-consumption rate total
                                  type: num
                                  kostal: own_tot_rate
                          
                              ss_tot_rate:
                                  name: Self-sufficiency rate total
                                  type: num
                                  kostal: ss_tot_rate

                          Kommentar


                            #14
                            wo hast du jetzt die "neuen" json keys hinzugefügt?
                            Ich frage nur so detailliert nach, weil ich das plugin auch icht kenne, aber so dir auch geholfen werden kann

                            Kommentar


                              #15
                              Moin,
                              kleines Problem: Bin nicht zu Hause und komme grad nicht ins heimische LAN rein. Liefer ich bei Bedarf aber gerne nach... Im Prinzip hab ich das in der normalen Installation enthaltene Original-Plugin erweitert.

                              Was mich halt stutzig macht, ist diese ominöse 25. Selbst wenn ich (wie oben) alle 42 mir bekannten Adressen in die __ini__.py und die plugin.yaml aufnehme kann ich maximal 25 Items auslesen. VÖLLIG EGAL WELCHE... ich definiere. Workaround ist halt nur 25 Stück zu verwenden. Aber toll is dat natürlich nicht.
                              Und dann nochmal zur Log-Datei, da steht ja evtl was interessantes drin. Wo finde ich die? Muss ich die noch irgendwie irgendwo "starten"/"definieren".

                              Kommentar

                              Lädt...
                              X