Ich denke, ich weiss wo der Fehler liegt. Ich kann mir das aber erst heute abend ansehen. Ich glaube da kommen dummerweise mehrere 070f in der Antwort vor und der neue Code zerlegt den Code radikal. Ich lass mir was einfallen.

# Plugin zur Ansteuerung einer Zender ComfoAir # Version 0.7 10.06.2012 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! # # #return; #################### ###Einstellungen:### #################### #Zuordnung Steuerfunktionen zu den Gruppenadressen: my $ga_stufeabwesend = '14/7/0'; #1bit Trigger für Stufe "Abwesend". 1=Aktivieren my $ga_stufe1 = '14/7/1'; #1bit Trigger für Stufe1. 1=Aktivieren my $ga_stufe2 = '14/7/2'; #1bit Trigger für Stufe2. 1=Aktivieren my $ga_stufe3 = '14/7/3'; #1bit Trigger für Stufe3. 1=Aktivieren #Hier werden die Gruppenadressen für die Rückmeldungen vergeben: (Nich vergeben = inaktiv) my $ga_status_ventilator_zul = ''; #GA DPT5.001 für Status Ventilator Zuluft % my $ga_status_ventilator_abl = ''; #GA DPT5.001 für Status Ventilator Abluft % my $ga_status_bypass_prozent = ''; #GA DPT5.001 für Status Bypassklappe % my $ga_betriebsstunden_filter = ''; #GA DPT???? für die Rückmeldung der Betribsstunden des Filters #Zuordnung der Namen für die RRD's: my $Name_rrd_AUL = 'KWL_Aussenluft'; #Name RRD Aussenluft my $Name_rrd_ZUL = 'KWL_Zuluft'; #Name RRD Zuluft my $Name_rrd_ABL = 'KWL_Abluft'; #Name RRD Abluft my $Name_rrd_FOL = 'KWL_Fortluft'; #Name RRD Fortluft #Pfad zur seriellen Schnittstelle oder dem USB-Seriell-Wandler: my $schnittstelle = '/dev/usbserial-2-3'; ###################### ##ENDE Einstellungen## ###################### #Ab hier nichts mehr ändern. #Hauptverarbeitung use Device::SerialPort; my $return_value2; my $daten; my $reciv; my $reciv_all; my $ack = pack("H*","07F3"); # Zyklischer Aufruf nach restart, empfang GA oder nach einstellung rrd (typisch 300sek). $plugin_info{$plugname.'_cycle'} = $wg_config{''}{'rrd_interval'}; #Einrichten der Seriellen Schnittstelle für die Kommunikation mit dem ComfoAir my $seriel = Device::SerialPort->new($schnittstelle) || die "Kann $schnittstelle nicht öffnen! ($!)\n"; $seriel->baudrate(9600); $seriel->parity("none"); $seriel->databits(8); $seriel->stopbits(1); if ($msg{'apci'} eq "A_GroupValue_Write"){ #Wenn ein Telegramm vom KNX empfangen wird, ab hier auswerten if ($msg{'dst'} eq $ga_stufeabwesend && knx_read($msg{'dst'},0,1) == 1) { $daten = "00990101"; plugin_log($plugname,'Stufe abwesend'); $return_value2 = command_senden($daten); }elsif ($msg{'dst'} eq $ga_stufe1 && knx_read($msg{'dst'},0,1) == 1) { $daten = "00990102"; plugin_log($plugname,'Stufe 1'); $return_value2 = command_senden($daten); }elsif ($msg{'dst'} eq $ga_stufe2 && knx_read($msg{'dst'},0,1) == 1) { $daten = "00990103"; plugin_log($plugname,'Stufe 2'); $return_value2 = command_senden($daten); }elsif ($msg{'dst'} eq $ga_stufe3 && knx_read($msg{'dst'},0,1) == 1) { $daten = "00990104"; plugin_log($plugname,'Stufe 3'); $return_value2 = command_senden($daten); } return; } else { # zyklischer Aufruf # Plugin an Gruppenadresse "anmelden", hierdurch wird das Plugin im folgenden bei jedem eintreffen eines Telegramms auf die GA aufgerufen und der obere Teil dieser if-Schleife durchlaufen $plugin_subscribe{$ga_stufeabwesend}{$plugname} = 1; $plugin_subscribe{$ga_stufe1}{$plugname} = 1; $plugin_subscribe{$ga_stufe2}{$plugname} = 1; $plugin_subscribe{$ga_stufe3}{$plugname} = 1; $daten = "00D100"; plugin_log($plugname,'Temperatur abrufen'); $return_value2 = command_senden($daten); if($ga_status_ventilator_zul && $ga_status_ventilator_abl){ #Nur wenn beide GA's vergeben sind, dann die Zustände der Ventilatoren abfragen $daten = "000B00"; plugin_log($plugname,'Ventilator Status abrufen'); $return_value2 = command_senden($daten); } if($ga_status_bypass_prozent){ #Nur wenn die GA vergeben ist, dann Zustand Bypassklappe abfragen $daten = "000D00"; plugin_log($plugname,'Bypass Zustand abrufen'); $return_value2 = command_senden($daten); } if($ga_betriebsstunden_filter){ #Nur wenn die GA vergeben ist, die Betriebsstunden abfragen $daten = "00DD00"; plugin_log($plugname,'Betriebsstunden abrufen'); $return_value2 = command_senden($daten); } return; } # Ab hier wird das Datenpaket inklusive Checksumme zusammengestellt und an die ComfoAir übertragen sub command_senden{ my $checksum = 0; my $data = $_[0]; my $datasum = $data . "AD"; #+173 für die Checksummenberechnung my @hex = map { hex($_) } ($datasum =~ /(..)/g); my $x07warschon = 0; foreach (@hex) { $checksum += ($_) unless $x07warschon; # unless ist dasselbe wie if not/! if ($_ == 0x07) { $x07warschon = 1; } } $checksum = sprintf "%x\n" , $checksum; #Mache aus Integer wieder HEX $checksum = substr($checksum,length($checksum)-3,2); #Verwede nur die letzten beiden Stellen my $command = pack("H*","07F0" . $data . $checksum . "070F"); $seriel->write($command); #Befehl an den ComfoAir senden $|=1; my $exit=0; while($exit < 20000) { my ($cin, $sin) = $seriel->read(25); if($cin > 0){ $sin = unpack "H*", $sin; $reciv .= $sin; $reciv_all .= $sin; $exit=0; }else{ $exit++ } if($reciv =~ /07f3/i){ plugin_log($plugname,'reciv: ACK'); $reciv = ''; } if($reciv =~ /070f/i){ plugin_log($plugname,'reciv roh: ' . $reciv); if(substr($reciv,0,4) eq '07f3'){ $reciv = substr($reciv,0,4,""); #falls noch ein 07f3 enthalten ist, wir dieses hier entfernt. } plugin_log($plugname,'reciv neu: ' . $reciv); if($reciv =~ /07f000D209/i){ #Wenn die Temperaturen empfangen wurden my $t1 = substr($reciv,12,2); my $t2 = substr($reciv,14,2); my $t3 = substr($reciv,16,2); my $t4 = substr($reciv,18,2); #Hier werden die Temperaturen "decodiert" damit sie einen Sinn ergeben $t1 = (hex($t1)/2)-20; $t2 = (hex($t2)/2)-20; $t3 = (hex($t3)/2)-20; $t4 = (hex($t4)/2)-20; #Ab hier werden die RRD's mit den aktuellen Temperaturen aktualisiert: update_rrd($Name_rrd_AUL,"",$t1); update_rrd($Name_rrd_ZUL,"",$t2); update_rrd($Name_rrd_ABL,"",$t3); update_rrd($Name_rrd_FOL,"",$t4); plugin_log($plugname,'reciv: T1: ' . $t1 . '°C, T2:' . $t2 . '°C, T3: ' . $t3 . '°C, T4: ' . $t4 . '°C'); }elsif($reciv =~ /07f0000C06/i){ #Wenn der Status für die Ventilatoren empfangen wurden my $vent_zul = substr($reciv,10,2); my $vent_abl = substr($reciv,12,2); knx_write($ga_status_ventilator_zul,hex($vent_zul),5.001); knx_write($ga_status_ventilator_abl,hex($vent_abl),5.001); }elsif($reciv =~ /07f0000D04/i){ #Wenn der Status für die Bypassklappe empfangen wurden my $bypass_prozent = substr($reciv,10,2); knx_write($ga_status_bypass_prozent,hex($bypass_prozent),5.001); }elsif($reciv =~ /07f000DE14/i){ #Wenn die Rückmeldung der Betriebsstunden empfangen wurden my $betriebsstunden_filter = substr($reciv,40,4); knx_write($ga_betriebsstunden_filter,hex($betriebsstunden_filter),5.001); } # $seriel->write($ack); #ACK senden last; } } plugin_log($plugname,'reciv debug_all: ' . $reciv_all); }
2012-06-12 22:31:51.318,ComfoAir,Temperatur abrufen 2012-06-12 22:31:51.336,ComfoAir,reciv: ACK 2012-06-12 22:31:51.352,ComfoAir,reciv roh: d209404c5057550f28282897070f 2012-06-12 22:31:51.352,ComfoAir,reciv neu: d209404c5057550f28282897070f 2012-06-12 22:31:51.352,ComfoAir,reciv debug_all: 07f307f000d209404c5057550f28282897070f 2012-06-12 22:32:01.393,ComfoAir,Temperatur abrufen 2012-06-12 22:32:01.419,ComfoAir,reciv: ACK 2012-06-12 22:32:01.429,ComfoAir,reciv roh: 404c5057550f28282897070f 2012-06-12 22:32:01.429,ComfoAir,reciv neu: 404c5057550f28282897070f 2012-06-12 22:32:01.429,ComfoAir,reciv debug_all: 07f307f000d209404c5057550f28282897070f 2012-06-12 22:32:12.968,ComfoAir,Temperatur abrufen 2012-06-12 22:32:12.995,ComfoAir,reciv: ACK 2012-06-12 22:32:13.011,ComfoAir,reciv roh: 57550f28282897070f 2012-06-12 22:32:13.011,ComfoAir,reciv neu: 57550f28282897070f 2012-06-12 22:32:13.011,ComfoAir,reciv debug_all: 07f307f000d209404c5057550f28282897070f 2012-06-12 22:32:23.050,ComfoAir,Temperatur abrufen 2012-06-12 22:32:23.078,ComfoAir,reciv: ACK 2012-06-12 22:32:23.090,ComfoAir,reciv roh: 5057550f28282897070f 2012-06-12 22:32:23.090,ComfoAir,reciv neu: 5057550f28282897070f 2012-06-12 22:32:23.090,ComfoAir,reciv debug_all: 07f307f000d209404c5057550f28282897070f 2012-06-12 22:32:33.130,ComfoAir,Temperatur abrufen 2012-06-12 22:32:33.152,ComfoAir,reciv: ACK 2012-06-12 22:32:33.167,ComfoAir,reciv roh: 404c5057550f28282897070f 2012-06-12 22:32:33.167,ComfoAir,reciv neu: 404c5057550f28282897070f 2012-06-12 22:32:33.167,ComfoAir,reciv debug_all: 07f307f000d209404c5057550f28282897070f 2012-06-12 22:32:43.705,ComfoAir,Temperatur abrufen 2012-06-12 22:32:43.726,ComfoAir,reciv: ACK 2012-06-12 22:32:43.741,ComfoAir,reciv roh: 4c5057550f28282897070f 2012-06-12 22:32:43.741,ComfoAir,reciv neu: 4c5057550f28282897070f 2012-06-12 22:32:43.741,ComfoAir,reciv debug_all: 07f307f000d209404c5057550f28282897070f
2012-06-12 22:34:18.476,ComfoAir,reciv: ACK 2012-06-12 22:34:18.507,ComfoAir,reciv roh: 07f000d209404c5057550f28282897070f 2012-06-12 22:34:18.507,ComfoAir,reciv neu: 07f000d209404c5057550f28282897070f 2012-06-12 22:34:18.508,ComfoAir,reciv: T1: 18°C, T2:20°C, T3: 23.5°C, T4: 22.5°C 2012-06-12 22:34:18.508,ComfoAir,reciv debug_all: 07f307f000d209404c5057550f28282897070f 2012-06-12 22:34:30.048,ComfoAir,Temperatur abrufen 2012-06-12 22:34:30.074,ComfoAir,reciv: ACK
2012-06-12 22:52:05.798,KWL V0.7,Temperatur abrufen 2012-06-12 22:52:05.799,KWL V0.7,reciv roh: 0a880bdb6d4f06000000e205070f 2012-06-12 22:52:05.799,KWL V0.7,reciv neu: 0a880bdb6d4f06000000e205070f 2012-06-12 22:52:05.799,KWL V0.7,reciv debug_all: 0a880bdb6d4f06000000e205070f 2012-06-12 22:57:06.671,KWL V0.7,Temperatur abrufen 2012-06-12 22:57:06.672,KWL V0.7,reciv roh: 0000000198070f 2012-06-12 22:57:06.672,KWL V0.7,reciv neu: 0000000198070f 2012-06-12 22:57:06.672,KWL V0.7,reciv debug_all: 0000000198070f 2012-06-12 22:58:13.022,KWL V0.7,14/7/0,0s, 2012-06-12 23:03:13.961,KWL V0.7,14/7/0,0s, 2012-06-12 23:08:14.822,KWL V0.7,14/7/0,0s, 2012-06-12 23:13:15.884,KWL V0.7,14/7/0,0s,
2012-06-13 19:00:52.314,KWL V0.7,14/7/0,0s, 2012-06-13 19:02:20.814,KWL V0.7,Temperatur abrufen 2012-06-13 19:02:20.815,KWL V0.7,reciv roh: f307f0003e04388deeab4d070f 2012-06-13 19:02:20.815,KWL V0.7,reciv neu: f307f0003e04388deeab4d070f 2012-06-13 19:02:20.816,KWL V0.7,reciv debug_all: f307f0003e04388deeab4d070f 2012-06-13 19:07:21.915,KWL V0.7,Temperatur abrufen 2012-06-13 19:07:21.916,KWL V0.7,reciv: ACK 2012-06-13 19:07:21.929,KWL V0.7,reciv: ACK 2012-06-13 19:07:21.947,KWL V0.7,reciv roh: 07f000d209404d4f55530f28282893070f 2012-06-13 19:07:21.947,KWL V0.7,reciv neu: 07f000d209404d4f55530f28282893070f 2012-06-13 19:07:21.951,KWL V0.7,reciv: T1: 18.5°C, T2:19.5°C, T3: 22.5°C, T4: 21.5°C 2012-06-13 19:07:21.952,KWL V0.7,reciv debug_all: 07f307f000e00700000064000001f9070f07f307f000d209404d4f55530f28282893070f 2012-06-13 19:12:22.092,KWL V0.7,Temperatur abrufen 2012-06-13 19:12:22.093,KWL V0.7,reciv roh: 07f0003c0a900eef064f5b000000e212070f 2012-06-13 19:12:22.094,KWL V0.7,reciv neu: 07f0003c0a900eef064f5b000000e212070f 2012-06-13 19:12:22.094,KWL V0.7,reciv debug_all: 07f0003c0a900eef064f5b000000e212070f 2012-06-13 19:17:22.922,KWL V0.7,Temperatur abrufen 2012-06-13 19:17:22.923,KWL V0.7,reciv: ACK 2012-06-13 19:17:22.935,KWL V0.7,reciv: ACK 2012-06-13 19:17:22.954,KWL V0.7,reciv roh: 07f000d209404d4f55530f28282893070f 2012-06-13 19:17:22.954,KWL V0.7,reciv neu: 07f000d209404d4f55530f28282893070f 2012-06-13 19:17:22.956,KWL V0.7,reciv: T1: 18.5°C, T2:19.5°C, T3: 22.5°C, T4: 21.5°C 2012-06-13 19:17:22.956,KWL V0.7,reciv debug_all: 07f307f000e00700000064000001f9070f07f307f000d209404d4f55530f28282893070f
# Plugin zur Ansteuerung einer Zender ComfoAir # Version 0.8 13.06.2012 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! # # #return; #################### ###Einstellungen:### #################### #Zuordnung Steuerfunktionen zu den Gruppenadressen: my $ga_stufeabwesend = '14/7/0'; #1bit Trigger für Stufe "Abwesend". 1=Aktivieren my $ga_stufe1 = '14/7/1'; #1bit Trigger für Stufe1. 1=Aktivieren my $ga_stufe2 = '14/7/2'; #1bit Trigger für Stufe2. 1=Aktivieren my $ga_stufe3 = '14/7/3'; #1bit Trigger für Stufe3. 1=Aktivieren #Hier werden die Gruppenadressen für die Rückmeldungen vergeben: (Nich vergeben = inaktiv) my $ga_status_ventilator_zul = '14/0/0'; #GA DPT5.001 für Status Ventilator Zuluft % my $ga_status_ventilator_abl = '14/0/1'; #GA DPT5.001 für Status Ventilator Abluft % my $ga_status_bypass_prozent = '14/0/2'; #GA DPT5.001 für Status Bypassklappe % my $ga_betriebsstunden_filter = ''; #GA DPT???? für die Rückmeldung der Betribsstunden des Filters #Zuordnung der Namen für die RRD's: my $Name_rrd_AUL = 'KWL_Aussenluft'; #Name RRD Aussenluft my $Name_rrd_ZUL = 'KWL_Zuluft'; #Name RRD Zuluft my $Name_rrd_ABL = 'KWL_Abluft'; #Name RRD Abluft my $Name_rrd_FOL = 'KWL_Fortluft'; #Name RRD Fortluft #Pfad zur seriellen Schnittstelle oder dem USB-Seriell-Wandler: my $schnittstelle = '/dev/ttyUSB-1-1'; ###################### ##ENDE Einstellungen## ###################### #Ab hier nichts mehr ändern. #Hauptverarbeitung use Device::SerialPort; my $return_value2; my $daten; my $reciv; my $reciv_all; my $ack = pack("H*","07F3"); # Zyklischer Aufruf nach restart, empfang GA oder nach einstellung rrd (typisch 300sek). $plugin_info{$plugname.'_cycle'} = 10; #Einrichten der Seriellen Schnittstelle für die Kommunikation mit dem ComfoAir my $seriel = Device::SerialPort->new($schnittstelle) || die "Kann $schnittstelle nicht öffnen! ($!)\n"; $seriel->baudrate(9600); $seriel->parity("none"); $seriel->databits(8); $seriel->stopbits(1); if ($msg{'apci'} eq "A_GroupValue_Write"){ #Wenn ein Telegramm vom KNX empfangen wird, ab hier auswerten if ($msg{'dst'} eq $ga_stufeabwesend && knx_read($msg{'dst'},0,1) == 1) { $daten = "00990101"; plugin_log($plugname,'Stufe abwesend'); $return_value2 = command_senden($daten); }elsif ($msg{'dst'} eq $ga_stufe1 && knx_read($msg{'dst'},0,1) == 1) { $daten = "00990102"; plugin_log($plugname,'Stufe 1'); $return_value2 = command_senden($daten); }elsif ($msg{'dst'} eq $ga_stufe2 && knx_read($msg{'dst'},0,1) == 1) { $daten = "00990103"; plugin_log($plugname,'Stufe 2'); $return_value2 = command_senden($daten); }elsif ($msg{'dst'} eq $ga_stufe3 && knx_read($msg{'dst'},0,1) == 1) { $daten = "00990104"; plugin_log($plugname,'Stufe 3'); $return_value2 = command_senden($daten); } return; } else { # zyklischer Aufruf # Plugin an Gruppenadresse "anmelden", hierdurch wird das Plugin im folgenden bei jedem eintreffen eines Telegramms auf die GA aufgerufen und der obere Teil dieser if-Schleife durchlaufen $plugin_subscribe{$ga_stufeabwesend}{$plugname} = 1; $plugin_subscribe{$ga_stufe1}{$plugname} = 1; $plugin_subscribe{$ga_stufe2}{$plugname} = 1; $plugin_subscribe{$ga_stufe3}{$plugname} = 1; $daten = "00D100"; plugin_log($plugname,'Temperatur abrufen'); $return_value2 = command_senden($daten); if($ga_status_ventilator_zul && $ga_status_ventilator_abl){ #Nur wenn beide GA's vergeben sind, dann die Zustände der Ventilatoren abfragen $daten = "000B00"; plugin_log($plugname,'Ventilator Status abrufen'); $return_value2 = command_senden($daten); } if($ga_status_bypass_prozent){ #Nur wenn die GA vergeben ist, dann Zustand Bypassklappe abfragen $daten = "000D00"; plugin_log($plugname,'Bypass Zustand abrufen'); $return_value2 = command_senden($daten); } if($ga_betriebsstunden_filter){ #Nur wenn die GA vergeben ist, die Betriebsstunden abfragen $daten = "00DD00"; plugin_log($plugname,'Betriebsstunden abrufen'); $return_value2 = command_senden($daten); } return; } # Ab hier wird das Datenpaket inklusive Checksumme zusammengestellt und an die ComfoAir übertragen sub command_senden{ my $checksum = 0; my $data = $_[0]; my $datasum = $data . "AD"; #+173 für die Checksummenberechnung my @hex = map { hex($_) } ($datasum =~ /(..)/g); my $x07warschon = 0; foreach (@hex) { $checksum += ($_) unless $x07warschon; # unless ist dasselbe wie if not/! if ($_ == 0x07) { $x07warschon = 1; } } $checksum = sprintf "%x\n" , $checksum; #Mache aus Integer wieder HEX $checksum = substr($checksum,length($checksum)-3,2); #Verwede nur die letzten beiden Stellen my $command = pack("H*","07F0" . $data . $checksum . "070F"); $seriel->write($command); #Befehl an den ComfoAir senden $reciv = ''; $reciv_all = ''; $|=1; my $exit=0; while($exit < 20000) { my ($cin, $sin) = $seriel->read(45); if($cin > 0){ $sin = unpack "H*", $sin; $reciv .= $sin; $reciv_all .= $sin; $exit=0; }else{ $exit++ } if($reciv =~ /070f/i){ $seriel->write($ack); #ACK senden last; } } # plugin_log($plugname,'reciv debug_all: ' . $reciv_all); my $test = substr($reciv,0,4); if($test eq '07f3'){ $reciv = substr($reciv,4); #falls noch ein 07f3 enthalten ist, wir dieses hier entfernt. plugin_log($plugname,'reciv neu: ' . $reciv); } if($reciv =~ /07f000D209/i){ #Wenn die Temperaturen empfangen wurden my $t1 = substr($reciv,12,2); my $t2 = substr($reciv,14,2); my $t3 = substr($reciv,16,2); my $t4 = substr($reciv,18,2); #Hier werden die Temperaturen "decodiert" damit sie einen Sinn ergeben $t1 = (hex($t1)/2)-20; $t2 = (hex($t2)/2)-20; $t3 = (hex($t3)/2)-20; $t4 = (hex($t4)/2)-20; #Ab hier werden die RRD's mit den aktuellen Temperaturen aktualisiert: update_rrd($Name_rrd_AUL,"",$t1); update_rrd($Name_rrd_ZUL,"",$t2); update_rrd($Name_rrd_ABL,"",$t3); update_rrd($Name_rrd_FOL,"",$t4); plugin_log($plugname,'reciv: T1: ' . $t1 . '°C, T2:' . $t2 . '°C, T3: ' . $t3 . '°C, T4: ' . $t4 . '°C'); }elsif($reciv =~ /07f0000C06/i){ #Wenn der Status für die Ventilatoren empfangen wurden my $vent_zul = substr($reciv,10,2); my $vent_abl = substr($reciv,12,2); plugin_log($plugname,'ZUL: ' . hex($vent_zul) . '% ABL: ' . hex($vent_abl) . '%'); knx_write($ga_status_ventilator_zul,hex($vent_zul),5.001); knx_write($ga_status_ventilator_abl,hex($vent_abl),5.001); }elsif($reciv =~ /07f0000e04/i){ #Wenn der Status für die Bypassklappe empfangen wurden my $bypass_prozent = substr($reciv,10,2); plugin_log($plugname,'Bypass: ' . hex($bypass_prozent) . '%'); knx_write($ga_status_bypass_prozent,hex($bypass_prozent),5.001); }elsif($reciv =~ /07f000DE14/i){ #Wenn die Rückmeldung der Betriebsstunden empfangen wurden my $betriebsstunden_filter = substr($reciv,40,4); knx_write($ga_betriebsstunden_filter,hex($betriebsstunden_filter),16.000); } }
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