Hallo,
Da ich nirgend wo ein passendes plugin gefunden habe, versuche ich es nun einmal selbst, obwohl meine Python Kenntnisse ehr bescheiden sind.
Mein Ziel ist es einen Drehstromzähler via Modbusprotokoll auszulesen. Mit folgendem Python Script funktioniert das auch schon sehr gut.
Jetzt bereitet mir die Umsetzung in ein plugin jedoch große Schwierigkeiten. Meine Ansätze sehen wie folgt aus:
Aber das war es auch schon, vielleicht hat ja jemand Zeit und Lust mir auf die Sprünge zu helfen.
Die Item.conf stelle ich mir in etwa so vor:
name = L1V
type = num
knx_dpt = 9
knx_send = 7/7/7
knx_cache = 7/7/7
typ_L1V = slave1.read_float
reg_L1V = 8192
Mike
Da ich nirgend wo ein passendes plugin gefunden habe, versuche ich es nun einmal selbst, obwohl meine Python Kenntnisse ehr bescheiden sind.
Mein Ziel ist es einen Drehstromzähler via Modbusprotokoll auszulesen. Mit folgendem Python Script funktioniert das auch schon sehr gut.
Code:
#!/usr/bin/env python import minimalmodbus port = '/dev/ttyAMA0' slave1 = 1 slave1.serial.baudrate = 9600 slave1.serial.bytesize = 8 slave1.serial.stopbits = 1 slave1.serial.timeout = 5 slave1.serial.parity = 'E' slave1 = minimalmodbus.Instrument(port, slave1, minimalmodbus.MODE_RTU) typ_L1V = slave1.read_float reg_L1V = 8192 L1V = (typ_L1V(reg_L1V)) print L1V
Aber das war es auch schon, vielleicht hat ja jemand Zeit und Lust mir auf die Sprünge zu helfen.
Code:
import logging import time import minimalmodbus port = '/dev/ttyAMA0' slave1 = 1 slave1.serial.baudrate = 9600 slave1.serial.bytesize = 8 slave1.serial.stopbits = 1 slave1.serial.timeout = 5 slave1.serial.parity = 'E' slave1 = minimalmodbus.Instrument(port, slave1, minimalmodbus.MODE_RTU) logger = logging.getLogger('KDK') class KDK(): _items = [] def __init__(self, smarthome, cycle=20): self._sh = smarthome def run(self): self.alive = True self._sh.scheduler.add('KDK', cycle=20) def stop(self): self.alive = False def parse_item(self, item): if 'reg_L1V' in item.conf and 'typ_L1V' in item.conf: return L1V = (typ_L1V(reg_L1V)) # L1V
name = L1V
type = num
knx_dpt = 9
knx_send = 7/7/7
knx_cache = 7/7/7
typ_L1V = slave1.read_float
reg_L1V = 8192
Mike
Kommentar