Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Anrufername in Anruferliste von Fritzbox (LBS19000454/455/...)
Die mysqli Umstellung ist wohl beim Anlegen der Datenbanken nicht fehlerfrei, stelle im hoffentlich Laufe der nächsten Minuten eine neue Version ein. Muss aber bald weg, mal sehen......
Ich kann den Baustein gar nicht mehr aktivieren.
Beim Start von Edomi braucht es ca. 5 Minuten bis initialisiert ist, aber die Logigen funktionieren dann alle nicht mehr.
Hab mal Debug im Baustein eingeschaltet und neu starten lassen, da haut er mir auf die 5 Minuten Start ca. 500MB ins Log und füllt sich ständig weiter.
Hier mal ein Auszug der ersten Zeilen vom Log, die nächsten Zeilen sind immer das selbe (ca. 2500 Zeile/sekunde):
Code:
<html><head><style>body {background:#ffffff;} .log {background:#ffffff; font-family:EDOMIfontMono,Menlo,Courier,monospace; line-height:12px; font-size:10px; color:#393930; margin:0; padding:0;} .log td {padding:1px 5px 1px 5px; border-right:1px solid #a9a9a0;}</style></head><body><table class="log" border="0" cellspacing="0" cellpadding="0" style="border-left:1px solid #a9a9a0; border-bottom:1px solid #a9a9a0; white-space:nowrap;"><tr><td colspan="5" style="color:#ffffff; background:#393930; padding:5px;">{EDOMI,CUSTOMLOG_LBS19000455_Fritz_Anrufliste_348.htm,30.11.2019,15:02:29,685755,3695}</td></tr><tr style="background:#c9c9c0;"><td>Zeitstempel</td><td>ms</td><td>PID</td><td>LogLevel</td><td>Meldung</td></tr>
<tr><td>2019-11-30 15:02:29</td><td>685688</td><td>3695</td><td>1</td><td> SELECT</td></tr>
<tr><td>2019-11-30 15:02:29</td><td>686512</td><td>3695</td><td>1</td><td> SELECT * FROM anrufe where id >= 1 order by id asc</td></tr>
<tr><td>2019-11-30 15:02:29</td><td>686731</td><td>3695</td><td>1</td><td>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1UPDATE anrufe SET Date = '' WHERE ID = </td></tr>
<tr><td>2019-11-30 15:02:29</td><td>686865</td><td>3695</td><td>1</td><td> SELECT * FROM anrufe where id >= 1 order by id asc</td></tr>
<tr><td>2019-11-30 15:02:29</td><td>686999</td><td>3695</td><td>1</td><td>You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1UPDATE anrufe SET Date = '' WHERE ID = </td></tr>
Ich hab bei mir nun mehrmals neue Datenbanken angelegt, auch neu gestartet, funktioniert bei mir Ich denke da ist in der Logik eine Schleife. Die Generierungsfehler sind weg, der SQL-Syntax-Fehler bein Löschen ist zwar nicht schön, beeinflusst aber die Funktion nicht. Dieser Löschbefehl wird bei jeder Triggerung durchlaufen, deshalb tendiere ich zur Aussage -> Schleife.
Hab den Baustein und die Logik jetz einmal aus Edomi gelöscht, neu runtergeladen und eingefügt.
Eine neue Logik erstellt wo nur der eine Baustein ohne Verknüpfungen drin ist, aber es ist der selbe.
Also denk ich das es keine Schleife ist, sondern wo anders der Fehler liegt.
Zum testen hab ich auch andere Namen im Eingang Schema vergeben.
Bei mir ist es das gleiche, neu geladen und nur das nötigste Verknüpft. Der Start dauert mehrere Minuten und haut Fehler raus am laufenden Band.
LBS 19000455 liefert folgendes:
Code:
[TABLE="class: log, border: 0, cellpadding: 0, cellspacing: 0, width: 0, height: 12"]
[TR]
[TD]2019-12-01 16:17:50[/TD]
[TD]032736[/TD]
[TD]9898[/TD]
[TD]1[/TD]
[TD]SELECT * FROM anrufe where id >= 1 order by id asc[/TD]
[/TR]
[TR]
[TD]2019-12-01 16:17:50[/TD]
[TD]033461[/TD]
[TD]9898[/TD]
[TD]1[/TD]
[TD]UPDATE anrufe SET Date = '' WHERE ID = 1[/TD]
[/TR]
[TR]
[TD]2019-12-01 16:17:50[/TD]
[TD]033890[/TD]
[TD]9898[/TD]
[TD]1[/TD]
[TD]SELECT * FROM anrufe where id >= 2 order by id asc[/TD]
[/TR]
[TR]
[TD]2019-12-01 16:17:50[/TD]
[TD]034809[/TD]
[TD]9898[/TD]
[TD]1[/TD]
[TD]UPDATE anrufe SET Date = '' WHERE ID = 2[/TD]
[/TR]
[TR]
[TD]2019-12-01 16:17:50[/TD]
[TD]035240[/TD]
[TD]9898[/TD]
[TD]1[/TD]
[TD]SELECT * FROM anrufe where id >= 3 order by id asc[/TD]
[/TR]
[TR]
[TD]2019-12-01 16:17:50[/TD]
[TD]035938[/TD]
[TD]9898[/TD]
[TD]1[/TD]
[TD]UPDATE anrufe SET Date = '' WHERE ID = 3[/TD]
[/TR]
[TR]
[TD]2019-12-01 16:17:50[/TD]
[TD]036365[/TD]
[TD]9898[/TD]
[TD]1[/TD]
[TD]SELECT * FROM anrufe where id >= 4 order by id asc[/TD]
[/TR]
[TR]
[TD]2019-12-01 16:17:50[/TD]
[TD]036912[/TD]
[TD]9898[/TD]
[TD]1[/TD]
[TD]UPDATE anrufe SET Date = '' WHERE ID = 4[/TD]
[/TR]
[TR]
[TD]2019-12-01 16:17:50[/TD]
[TD]037298[/TD]
[TD]9898[/TD]
[TD]1[/TD]
[TD]SELECT * FROM anrufe where id >= 5 order by id asc[/TD]
[/TR]
[TR]
[TD]2019-12-01 16:17:50[/TD]
[TD]037868[/TD]
[TD]9898[/TD]
[TD]1[/TD]
[TD]UPDATE anrufe SET Date = '' WHERE ID = 5[/TD]
[/TR]
[TR]
[TD]2019-12-01 16:17:50[/TD]
[TD]038294[/TD]
[TD]9898[/TD]
[TD]1[/TD]
[TD]SELECT * FROM anrufe where id >= 6 order by id asc[/TD]
[/TR]
[TR]
[TD]2019-12-01 16:17:50[/TD]
[TD]038856[/TD]
[TD]9898[/TD]
[TD]1[/TD]
[TD]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1UPDATE anrufe SET Date = '' WHERE ID =[/TD]
[/TR]
[TR]
[/TR]
[/TABLE]
In 0.5 hat sich ein Fehler eingeschlichen.... Ich hab's bemerkt als ich bei mir heute CentOS7 neu aufgesetzt habe.
Bitte um etwas Geduld, da läuft jetzt leider einiges nicht mehr :-((
Es wird eine neue Version geben. Wenn noch jemand eine alte ohne sqli hat, die sollte funktionieren. Ich hab leider keine alten Versionen mehr hier.
Baustein zum Lesen der CALLMON Daten einer Fritzbox Eingang 1 Starten den Baustein im Hintergrund Eingang 2 IP-Adresse der Fritzbox Eingang 3 Port des CALLMON Eingang 4 Verwendung des System KOs 15 (Eingang 1 auf 0 belassen!) Eingang 10 Möglichkeit die LOG-Ausgaben zu steuern
Der Ausgang 1 gibt 1 zurück, sobald der Baustein im Hintergrund läuft. Der Ausgang 2 gibt die RAW-Daten des CALLMON zurück (wird für LBS19000455 verwendet) Der Ausgang 3-12 gibt die empfangenen Daten entsprechend der CALLMON-Info einzeln zurück.
A4 = CALL RING CONNECT DISCONNET A13 = Tel.-Nr. für Rückwärtssuche ###[/HELP]###
###[LBS]### <? function LB_LBSID($id) { if ($E=logic_getInputs($id)) { if ($E[1]['value']!=0 && $E[1]['refresh']==1) { if (logic_getVar($id,1)!=1) { //dieses Konstrukt stellt sicher, dass das EXEC-Script nur einmal gestartet wird logic_setVar($id,1,1); logic_setVar($id,2,$E[2]['value']); logic_setVar($id,3,$E[3]['value']); logic_setVar($id,10,$E[10]['value']); logic_callExec(LBSID,$id); } }; if ( (strlen($E[4]['value']) > 10) && ($E[4]['refresh']==1) && ($E[1]['value']==0) ) { // System-KO15 auf CallMon Format umformatieren $callmon = explode(';',$E[4]['value']); $temp = substr($callmon[0],0,6).substr($callmon[0],8,2).' '.$callmon[1]; $callmon[0] = $temp; array_splice($callmon, 1, 2); switch($callmon[1]) { case 1: $callmon[1] = 'RING'; break; case 2: $callmon[1] = 'CALL'; break; case 3: $callmon[1] = 'CONNECT'; break; case 4: $callmon[1] = 'DISCONNECT'; break; }; $line = implode(';',$callmon); logic_setOutput($id,2,$line); $info = explode(';',$line); $datum = $info[0]; $kennung = $info[1]; $Id = $info[2]; $neben = ''; $genutzt = ''; $angerufene = ''; $anrufer = ''; $nummer = ''; $dauer = 0; $port = ''; switch ($kennung) { case 'CALL': $neben = $info[3]; $genutzt = $info[4]; $angerufene = $info[5]; $port = $info[6]; $rueck = $angerufene; break; case 'RING': $angerufene = $info[4]; $anrufer = $info[3]; $port = $info[5]; $rueck = $anrufer; break; case 'CONNECT': $neben = $info[3]; if (count($info) < 5) $info[4] = ''; $nummer = $info[4]; break; case 'DISCONNECT': $dauer = $info[3]; break; }; logic_setOutput($id,3,$datum); logic_setOutput($id,4,$kennung); logic_setOutput($id,5,$Id); logic_setOutput($id,6,$neben); logic_setOutput($id,7,$genutzt); logic_setOutput($id,8,$angerufene); logic_setOutput($id,9,$anrufer); logic_setOutput($id,10,$nummer); logic_setOutput($id,11,$dauer); logic_setOutput($id,12,$port); logic_setOutput($id,13,$rueck); if ($debug) { writeToCustomLog('LBS19000456 Fritzbox CallMonitor',1,'SystemKO15 '.$line); } }; } }; ?> ###[/LBS]###
nicht der CallMonitor, sondern LBS19000455 ist das Problem... Ich hab wahrscheinlich eine Lösung, aber kämpfe noch mit meinen anderen Fritzbox Bausteinen unter CentOS7....
Version 0.5 sollte nun bei Neuinstallation funktionieren. Habe einen Bereich entfernt, der ein DB-Struktur-Update gemacht hat. Wer noch eine Version vor 0.3 am Laufen hat müsste die entsprechende Datenbank löschen und neu anfangen.
vtl. kann auch die Structur mit SQL korrigiert werden: Die Spalte Date ist in der aktuellen Version im Format INT(11), also groben Anhaltspunkt der Quellcode den ich damals in Version 0.3 zum Upgrade eingebaut hatte:
$start = 1;
while ($start > 0) {
$query = "SELECT * FROM ".$tabelle." where id >= ".$start.' order by id asc';
$result = mysqli_query($mysqli,$query);
$row = mysqli_fetch_row($result);
if ($row === false) {$start = 0; continue;};
$start = $row[0];
if (!is_numeric($row[1])) {
$query = "UPDATE ".$tabelle." SET Date = '".strtotime(substr($row[0],0,6).strftime("%C",time()).substr($row[0],6,10))."' WHERE ID = ".$row[0];
$result = mysqli_query($mysqli,$query);
$start++;
} else { // bereits umgestellt
$start = 0;
};
};
$query = "ALTER TABLE ".$tabelle." CHANGE COLUMN Date Date INT(11)";
$result = mysqli_query($mysqli,$query);
Sollten viele noch die alte Version haben, bitte melden, dann versuche ich das wieder einzubauen.
So, hab noch schnell den alten Code reingewurschtelt.... Hoffe es gibt nicht wieder Ärger mit irgendeiner Endlosschleife... Falls doch im Quellcode den Bereich
// muss umgewandelt werden ?
if ($db_selected) {
$start = 1;
.........
$result = mysqli_query($mysqli,$query);
};
entfernen.
Ich hab' mit dem Baustein noch diverse Probleme..... ich hoffe ich krieg's irgendwann gebacken. Problem ist, dass ich irgendwie nicht alle Szenarien nachstellen kann. Blöd ist auch, dass ich damals keinen EXEC-Baustein gemacht habe und er im Fehlerfall alles lahmlegt. Lust und Zeit alles neu zu machen hab' ich im Moment nicht.Bitte um etwas Geduld (wer zu früh upgedated hat soll aus einem Backup die alte Version rausholen)
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