Ankündigung

Einklappen
Keine Ankündigung bisher.

Steuerung der KWL Cofoair mit diesem Protokol möglich?

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Steuerung der KWL Cofoair mit diesem Protokol möglich?

    Hallo Zusammen,

    wie Ihr wisst kenne ich mich leider zu wenig mit Linux usw aus.
    Wollte hier mal fragen, ob es mit dem WG, einer seriellen Schnittstelle und der Doku die Lüftungsanlage an den Bus zu bekommen.

    Wie aus anderen Threads zu erfahren, haben sicherlich auch andere User, die im Besitz des Anlage, sowie des WG sind, interesse daran.

    http://www.see-solutions.de/sonstige...g_ComfoAir.pdf

    Danke und Grüße,
    Lio

    #2
    Ich vermute mal, das ist gleiche Schnittstelle wie bei meiner Paul Santos 370DC. Damit wäre eine Verbindung WG zu KWL über seriell auch für mich sehr hilfreich und würde die zusätzlichen 4 1-wire T-Sensoren (die schon im Keller liegen) für andere Zwecke frei machen.

    Wäre in jedem Fall schöner als die KWL mit 0-10V+T-Fühler+Rolladenaktor für Bypassansteuerung etc. selber zu automatisieren.

    Kann man über Plugins die Serielle Schnittstelle ansprechen? Gibt es dazu schon ein Template?

    Robert

    Kommentar


      #3
      Das sollte eigentlich kein Problem sein. Das Protokoll ist ja gut beschrieben und für das WG wird lediglich ein USB -> RS232 Wandler benötigt. Dann noch ein Adapter auf RJ45 basteln und fertig ist die Hardware. Ein Plugin dafür zu erstellen ist auch nicht so eine Hexerei. Dazu gibt es schon ein paar gute Vorlagen im SVN die man dann einfach entsprechend umschreiben müsste.
      Gruss Patrik alias swiss

      Kommentar


        #4
        Zitat von swiss Beitrag anzeigen
        Vorlagen im SVN
        Da fängt's schon an: Was ist SVN?

        Charm hätte das ganz und gar-wie auch Robert argumentiert.

        Und für mich ein klares Kuafargument für das WG-auch wenn der eigentliche 1-W-Bus dabei gar nicht zum tragen kommt.

        Grüße,
        Lio

        Kommentar


          #5
          Das SVN Repository ist eine Art zentraler Speicherplatz auf SourceForge.net und dient der Speicherung und der Versionskontrolle von Programmen. Dort werden auch die Plugins für das WG zentral gesammelt und gepflegt.

          Die Plugins findest du hier:

          SourceForge.net Repository - [openautomation] Index of /wiregate/plugin/generic
          Gruss Patrik alias swiss

          Kommentar


            #6
            na das sieht ja gar nicht schlecht aus.

            Was ist das für eine sprache?

            GRüße,
            Lio

            Kommentar


              #7
              Die Plugins werden in PERL geschrieben.
              Gruss Patrik alias swiss

              Kommentar


                #8
                Klar grundsätzlich ist das möglich, ein Beispiel als Grundlage ist z.B. das CUL-Plugin.
                Um das handling mit dem seriellen Port zu vereinfach empfihlt es sich immer den socat (Socketverbindungen) mit UDP "zwischenzuschalten"..

                Makki
                EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                -> Bitte KEINE PNs!

                Kommentar


                  #9
                  Jup Wäre jetzt auch mein Ansatz gewesen. Allerdings tu ich mich immer etwas schwer mit den korrekten Parameter der Soketverbindung. Kannst du die mal kurz posten?
                  Gruss Patrik alias swiss

                  Kommentar


                    #10
                    Siehe Anhang, das ist eigentlich die einfachste Form, 96008N1 ist default (b9600,cs8 müsste man also nicht angeben)
                    Mit icanon=1 und raw muss man ausprobieren ob mit oder ohne, hier vermute ich aber wie im Anhang, weils binärdaten sind.

                    Das Plugin bekommt die Daten vom seriellen Port dann auf UDP-Port localhost:50013 und sendet Ausgaben zum Port auf localhost:50012
                    Ports kann man natürlich frei wählen, muss nur frei sein..

                    Makki
                    Angehängte Dateien
                    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                    -> Bitte KEINE PNs!

                    Kommentar


                      #11
                      Danke

                      Ich habe auch noch das eine oder andere serielle Grät, das automatisiert werden will. diese Angaben bilden daher den Grundstein.
                      Gruss Patrik alias swiss

                      Kommentar


                        #12
                        Cracks, nur kurz schemenhaft mal für mich, der in vbasic, pascal und delphi mal gebetet hat:

                        Die Dateninformationen kommen via rs232 schnittstelle und USB am WG an.
                        Wo werden die in PERL dann eingeschrieben, damit sie dort weiterverarbeitet bzw angezeigt werden können (als Variable?)

                        Die scripte bei SVN sind ja alle verhältnismäßig kurz und Patrik meint, dass es kein Hexenwerk sei (der kann ja gut reden-betet schließlich in PERL)

                        Grüße,
                        Lio

                        Kommentar


                          #13
                          Ich nehmen an man kann auch gleich die RS232 des WG nehmen?

                          Verträgt RS232 ein 7m Kabel?

                          lg
                          Robert

                          Kommentar


                            #14
                            @lio: mal ganz grob abgekürzt:
                            Die Daten kommen nach dem plugin_socket_subscribe in $fh rein; in den Plugins CUL, Denon, DMX sollte man das halbwegs erkennen. Konkret einfach fragen, muss man sich sicher etwas eindenken aber im Prinzip ist es einfach.

                            Makki
                            EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                            -> Bitte KEINE PNs!

                            Kommentar


                              #15
                              @lio123:

                              Also mal kurz wie ich das angehen würde:

                              Erst mal die soketverbindung öffenen:
                              Code:
                              if (!$socket[$socknum]) { # socket erstellen
                                      $socket[$socknum] = IO::Socket::INET->new(LocalPort => $recv_port,
                                                                Proto => "udp",
                                                                LocalAddr => $recv_ip,
                                                                PeerPort  => $send_port,
                                                                PeerAddr  => $send_ip,
                                                                ReuseAddr => 1
                                                                 )
                                  or return ("open of $recv_ip : $recv_port failed: $!");
                              
                                  $socksel->add($socket[$socknum]); # add socket to select
                              
                                  $plugin_socket_subscribe{$socket[$socknum]} = $plugname; # subscribe plugin
                                  return "opened Socket $socknum";
                              }
                              Danach einfach Befehl senden. Dazu würde ich eine Subroutine einsetzen. z.B.

                              Code:
                              sub command_senden{
                                  my $command = $_[0];
                                  $plugin_info{$plugname.'_debug'} = $command;
                                  syswrite($socket[$socknum], $command);
                              }
                              Daten empfangen und auswerten funktioniert z.B. so:

                              Code:
                              if ($fh) { # Wenn die Lüftung ein Antworttelegramm sendet, wird ab hier der entsprechende Status ausgelesen.
                                  my $buf = <$fh>;
                                  my $bufhex = unpack("H*",$buf);
                                  chomp $buf;
                                      ....
                                      ....
                              }
                              Hoffe das hilft

                              PS: ^^ OK makki war schneller
                              Gruss Patrik alias swiss

                              Kommentar

                              Lädt...
                              X