Wenns ein RS232 (12V Pegel) ist und der frei ist, geht das natürlich, einfach im socat (Seriell/Socket) /dev/ttyUSBxxx durch /dev/ttyS0 ersetzen.
Makki
Makki
# Plugin zur Ansteuerung einer Zender ComfoAir # Version 0.0 28.05.2012 Pre ALPHA # Copyright: swiss (https://knx-user-forum.de/members/swiss.html) # Die Vorlage für die Datenübertragung via socat stammt von makki (https://knx-user-forum.de/members/makki.html) # Aufbau möglichst so, dass man unterhalb der Einstellungen nichts verändern muss! # #################### ###Einstellungen:### #################### my $socknum = 120; # Eindeutige Nummer des Sockets +1 #Diese Einstellungen können normalerweise so belassen werden! my $send_ip = "localhost"; # Sendeport (UDP, siehe in Socket-Einstellungen) my $send_port = "50108"; # Sendeport (UDP, siehe in Socket-Einstellungen) my $recv_ip = "localhost"; # Empfangsport (UDP, siehe in Socket-Einstellungen) my $recv_port = "50107"; # Empfangsport (UDP, siehe in Socket-Einstellungen) ###################### ##ENDE Einstellungen## ###################### $plugin_info{$plugname.'_cycle'} = 300; # Zyklischer Aufruf nach restart und alle 300 sek. 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"; plugin_log($plugname,'Soket verbunden. Soketnummer: ' . $socknum); } if ($fh) { # Wenn der ComfoAir ein Antworttelegramm sendet, wird ab hier der entsprechende Status ausgelesen. my $buf = <$fh>; my $bufhex = unpack("H*",$buf); $plugin_info{$plugname.'_debug_reciv'} = $bufhex; }else{ my $checksum = hex("16"); my $data = hex("00"),hex("69"),hex("00"); my $paket = pack('C*',hex("07"),hex("F0"),hex("00"),hex("69"),hex("00"),hex("16"),hex("07"),hex("0F")); my $return_value2 = command_senden($paket); return; } sub command_senden{ my $command = $_[0]; $plugin_info{$plugname.'_debug_transmit'} = $command; syswrite($socket[$socknum], $command); }
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar