Ankündigung
Einklappen
Keine Ankündigung bisher.
KOSTAl Plugin
Einklappen
X
-
Ok danke für die Rückmeldung, dann werde ich mal versuchen an deinem Skript zu feilen
-
Hallo Tobias, leider nein hatte dann keine Zeit mehr und meine Ursprüngliche Idee die Kachelofentempetatur zu messen habe ich mit onewire gelöst
Gruß Stephan
Einen Kommentar schreiben:
-
Hallo Stephan,
bist du hier schon weiter gekommen ? Ich würde bei mir auch gerne noch die Analogwerte abfragen, danke für die Rückmeldung.
Gruß
Tobias
Einen Kommentar schreiben:
-
QUOTE=shs2;356332]. Werde in den nächsten Tagen noch versuchen dies in das Kostal Plugin zu integrieren. [/QUOTE]
Ich glaube daran hab ich mich verhoben ... bekomme einfach nicht die neuen Items aktualisiert. Fällt Euch auf was ich verkehrt mache ?
Ich glaube da fehlen mir noch einige Grundlagen - leider !
Die Zuordnung der Werte klappt, aber die Zuweisung zu den Items bekomme ich einfach nicht hin
[Code:2013-11-27 17:41:59,421 DEBUG Kostala set analog_4 = 0.00 -- __init__.py:_refresh:62 2013-11-27 17:41:59,426 DEBUG Kostala set analog_1 = 0.00 -- __init__.py:_refresh:62 2013-11-27 17:41:59,431 DEBUG Kostala set analog_3 = 0.00 -- __init__.py:_refresh:62 2013-11-27 17:41:59,435 DEBUG Kostala set analog_2 = 0.00 -- __init__.py:_refresh:62 2013-11-27 17:41:59,441 DEBUG Kostala cycle takes 0.17827701568603516 seconds -- __init__.py:_refresh:72
Gruß Stephan
Einen Kommentar schreiben:
-
hat mir keine Ruhe gelassen
So, ich habe jetzt ein eigenständiges Plugin gestrickt um die Kostal Analogeingänge abzufragen. Werde in den nächsten Tagen noch versuchen dies in das Kostal Plugin zu integrieren. Hier einmal der aktuelle Stand:
__init__.py in plugins\
Und hier die Items (noch ohne eval Berechnung)Code:#!/usr/bin/env python3 # /plugins/kostala/__init__.py # vim: set encoding=utf-8 tabstop=4 softtabstop=4 shiftwidth=4 expandtab # import logging import time import re logger = logging.getLogger('') class Kostala(): _key2td = { 'analog_1': 0, 'analog_2': 1, 'analog_3': 2, 'analog_4': 3, } def __init__(self, smarthome, ip, user="pvserver", passwd="pvwr", cycle=300): self._sh = smarthome self.ip = ip self.user = user self.passwd = passwd self.cycle = int(cycle) self._items = [] self._values = {} def run(self): self.alive = True self._sh.scheduler.add('Kostala', self._refresh, cycle=self.cycle) def stop(self): self.alive = False def parse_item(self, item): if 'kostala' in item.conf: kostala_key = item.conf['kostala'] if kostala_key in self._key2td: self._items.append([item, kostala_key]) return self.update_item else: logger.warn('invalid key {0} configured', kostala_key) return None def parse_logic(self, logic): pass def update_item(self, item, caller=None, source=None, dest=None): if caller != 'Kostala': pass def _refresh(self): start = time.time() try: data = self._sh.tools.fetch_url( 'http://' + self.ip + '/Info.fhtml', self.user, self.passwd, timeout=2).decode('iso8859-1') # 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'<b>([^<>]*)V</b>', data, re.M | re.I | re.S) for kostala_key in self._key2td: value = table[self._key2td[kostala_key]].strip() if 'x x x' not in value: logger.debug('set {0} = {1}'.format(kostala_key, value)) self._values[kostala_key] = value for item_cfg in self._items: if item_cfg[1] in self._values: item_cfg[0](self._values[item_cfg[1]], 'Kostala') except Exception as e: logger.error( 'could not retrieve data from {0}: {1}'.format(self.ip, e)) return cycletime = time.time() - start logger.debug("cycle takes {0} seconds".format(cycletime))
Und die plugin.confCode:# items/pva.conf [PV] [[analog1]] type = num kostala = analog_1 [[analog2]] type = num kostala = analog_2 [[analog3]] type = num kostala = analog_3 [[analog4]] type = num kostala = analog_4
Falls das hier Fehl am Platze ist, und eher in Github reingehört, bitte um kurze NachhilfeCode:[KOSTALA] class_name = Kostala class_path = plugins.kostala ip = 192.168.123.201 user = pvserver passwd = xxxxxx cycle = 303
Gruß Stephan
Einen Kommentar schreiben:
-
KOSTAl Plugin
Hallo,
zunächst einmal großes Lob für die Entwicklung des Kostal Plugins. Das ist mit den entsprechenden Plots und der Umrechnung in € die Lieblingsfunktion meiner Frau geworden und ich überlege mir neben Prozent auch noch in erreichte Zalando Shopping Events umzurechnen
. Dokumentation meiner Umsetzung gibt´s ja bereits hier: https://knx-user-forum.de/smartvisu/...be-format.html
Jetzt weckt das natürlich auch Begehrlichkeiten, denn mein Kostal 10.1 hat auch 4 brachliegende 0-10V Analogeingänge, die auf der Seite Info.shtml des WR angezeigt werden. Da der Wechselrichter nicht weit weg vom Kachelofen steht (bei dem OW Sensoren wg. hohen Temperaturen nicht eingesetzt werden können) , habe ich mir überlegt Sensoren mit 0-10V z.B. Pt1000 einzusetzen und diese durch den Kostal digitalisieren zu lassen.
So ließe sich die Messung am Kachelofen und an den Solarpanels aufwandsarm umsetzen.
Unterstützt das aktuelle Plugin schon diese Analogeingänge und ich habe es nur übersehen bzw. könntet Ihr das Plugin dahingehend erweitern ?
Gruß StephanStichworte: -


Einen Kommentar schreiben: