Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Plugin ComfoAir (KWL Wohnraumlüftung Zehnder, Paul, Wernig)

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

    Ja, genau.

    Kommentar


      Hallo zusammen,

      ich habe ein Q350 über ein LAN Modul und möchte gerne die Daten in Smartvisu / SmartHomeNG darstellen.
      gibt es da schon was fertiges?

      Stefan

      Kommentar


        Zitat von Morg Beitrag anzeigen
        Da 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
        Hallo Zusammen.

        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

        Lädt...
        X