Ja, genau.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Neues Plugin ComfoAir (KWL Wohnraumlüftung Zehnder, Paul, Wernig)
Einklappen
X
-
Zitat von Morg Beitrag anzeigenDa ich selber keine solche Anlage habe, kann ich da nix zu sagen. Hast du das Plugin aus master, aus develop oder das aus meinem PR genutzt?
Ich würde letztere Variante empfehlen, da dies die "aktuellste" ist, wenn auch noch nicht auf lib.network migriert. Außerdem brauche ich jemanden, der die Aktualisierungen testet
ich nutze seit Jahren das Comfoair Plugin mit meiner Zehnder KWL CA350 (nicht Q350!).
Verbunden über TCP mit einem Moxa NPort 5110.
Kürzlich habe ich die SmarthomeNG Version auf Version 1.10 hochgezogen.
Danach lief das Plugin leider nicht mehr.
Als Notlösung habe ich in Plugin Version 1.3.1 die serielle Verbindung auskommentiert.
Damit läuft das Plugin wieder gut.
Ich würde auch gerne eine richtige Aktualisierung Plugins testen, falls Interesse an einem Umschreiben auf lib.network und einer sauberen Lösung besteht.
Anbei noch der Teilauszug aus der __init__.py mit den Auskommentierungen:
Code:... def connect(self): # if self._serialport: # self.connect_serial() # else: self.connect_tcp() def connect_tcp(self): self._lock.acquire() try: self._sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) self._sock.settimeout(2) self._sock.connect((self._host, self._port)) except Exception as e: self._connection_attempts -= 1 if self._connection_attempts <= 0: self.log_err('could not connect to {}:{}: {}'.format(self._host, self._port, e)) self._connection_attempts = self._connection_errorlog self._lock.release() return else: self.connected = True self.log_info('connected to {}:{}'.format(self._host, self._port)) self._connection_attempts = 0 self._lock.release() # def connect_serial(self): # self._lock.acquire() # try: # self._serialconnection = serial.Serial(self._serialport, 9600, serial.EIGHTBITS, serial.PARITY_NONE, serial.STOPBITS_ONE, timeout=2) # except Exception as e: # self._connection_attempts -= 1 # if self._connection_attempts <= 0: # self.log_err('could not connect to {}: {}'.format(self._serialport, e)) # self._connection_attempts = self._connection_errorlog # self._lock.release() # return # else: # self.connected = True # self.log_info('connected to {}'.format(self._serialport)) # self._connection_attempts = 0 # self._lock.release() def disconnect(self): # if self._serialport is not None: # self.disconnect_serial() # else: self.disconnect_tcp() def disconnect_tcp(self): self.connected = False try: self._sock.shutdown(socket.SHUT_RDWR) except: pass try: self._sock.close() except: pass # def disconnect_serial(self): # self.connected = False # try: # self._serialconnection.close() # self._serialconnection = None # except: # pass def send_bytes(self, packet): # if self._serialport is not None: # self.send_bytes_serial(packet) # else: self.send_bytes_tcp(packet) def send_bytes_tcp(self, packet): self._sock.sendall(packet) # def send_bytes_serial(self, packet): # self._serialconnection.write(packet) def read_bytes(self, length): # if self._serialport is not None: # return self.read_bytes_serial(length) # else: return self.read_bytes_tcp(length) def read_bytes_tcp(self, length): return self._sock.recv(length) # def read_bytes_serial(self, length): # return self._serialconnection.read(length) ...
Kommentar
Kommentar