<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"Segoe UI Symbol";
        panose-1:2 11 5 2 4 2 4 2 2 3;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Consolas","serif";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
p.HTMLVorformatiert, li.HTMLVorformatiert, div.HTMLVorformatiert
        {mso-style-name:"HTML Vorformatiert";
        mso-style-link:"HTML Vorformatiert Zchn";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.HTMLVorformatiertZchn
        {mso-style-name:"HTML Vorformatiert Zchn";
        mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert";
        font-family:"Courier New";}
span.EmailStyle25
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:70.85pt 70.85pt 56.7pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='color:#1F497D'>Hallo Ralf,<o:p></o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'>die Abfrage müsste so aussehen<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>DELETE</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><b><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>FROM</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:olive'>`volkszaehler`</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>.</span><span style='font-size:10.0pt;font-family:"Courier New";color:olive'>`data`</span><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><b><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>WHERE</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:black'>  </span><span style='font-size:10.0pt;font-family:"Courier New";color:olive'>channel_id</span><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>=</span><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:purple'>xxxxxx<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>AND</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><b><span style='font-size:10.0pt;font-family:"Courier New";color:maroon'>timestamp</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:blue'><</span><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>(</span><b><span style='font-size:10.0pt;font-family:"Courier New";color:navy'>unix_timestamp</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>(</span><b><span style='font-size:10.0pt;font-family:"Courier New";color:navy'>current_timestamp</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>)-</span><span style='font-size:10.0pt;font-family:"Courier New";color:purple'>7</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>*</span><span style='font-size:10.0pt;font-family:"Courier New";color:purple'>24</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>*</span><span style='font-size:10.0pt;font-family:"Courier New";color:purple'>60</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>*</span><span style='font-size:10.0pt;font-family:"Courier New";color:purple'>60</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>)*</span><span style='font-size:10.0pt;font-family:"Courier New";color:purple'>1000<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><b><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>AND</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>(<b>VALUE</b></span><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'><-</span><span style='font-size:10.0pt;font-family:"Courier New";color:purple'>5</span><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><b><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>or</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><b><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>VALUE</span></b><span style='font-size:10.0pt;font-family:"Courier New";color:black'> </span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>></span><span style='font-size:10.0pt;font-family:"Courier New";color:purple'>40</span><span style='font-size:10.0pt;font-family:"Courier New";color:blue'>);<o:p></o:p></span></p><p class=MsoNormal style='text-autospace:none'><span style='font-size:10.0pt;font-family:"Courier New";color:blue'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'>Und das SQL Script darf dann nur den SQL Code enthalten aber nicht den Aufruf – sprich Du speicherst nur z.B. den o.g. Code in eine Datei und trägst in die Crontab dann folgendes ein:<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'>mysql –ubenutzername -ppasswort volkszaehler < /path/to/sql.script<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'>Ich würde für die DB auch nicht den Root-Account verwenden, der Standard User „vz“ (Password „demo“ falls es nicht geändert wurde) sollte reichen…<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'>Aber: Ich sehe da ein weiteres Problem – wenn bei dem genannten Kanal die Datenaggregation aktiviert ist, hast Du die falschen Werte da schon mit drin bevor Du sie löschen kannst. Und da dabei verschiedene Werte miteinander verrechnet werden, lässt sich das dann auch nicht mehr so leicht per Schema s.o. entfernen.<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'>Vielleicht kann das die Middleware-Anfrage, die Andreas empfohlen hat… ich weiss es nicht? Auf jeden Fall kannst Du auch Middleware Aufrufe z.B. über wget oder curl automatisch laufen lassen.<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'>Ansonsten bliebe Dir nur – entweder die Aggregation für den betroffenen Kanal ausschalten oder sie nach dem Lauf des Skriptes neu aufbauen – sinnvollerweise nur wenn auch wirklich falsche Werte aufgetreten sind. Sprich vor dem DELETE nochmal einen SELECT laufen lassen und den Rückgabewert abfragen.<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'>Gruss,<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'>Alex<o:p></o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span lang=DE style='color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> volkszaehler-users [mailto:volkszaehler-users-bounces@demo.volkszaehler.org] <b>On Behalf Of </b>USER VZ<br><b>Sent:</b> Sunday, January 26, 2020 6:40 PM<br><b>To:</b> volkszaehler.org - users<br><b>Subject:</b> Re: [vz-users] 1-Wire Messwerte Filtern/Löschen<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Der SQL- Befehl wird nicht funktionieren. <o:p></o:p></p><div><p class=MsoNormal>Die Abfrage nach Value muss mit ODER verknüpft werden. Z.b.:<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>DELETE FROM `volkszaehler` WHERE and channel_id = 12 AND timestamp< (unix_timestamp(current_timestamp)-7*24*60*60)*1000 AND (value >-5 OR value <40)</span><o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Ob der mysql Syntax stimmt kann ich sagen, aber die Richtung würde ich auch gehen.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Thomas <o:p></o:p></p><div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Mail: thomas@thhoe.de<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div><div><p class=MsoNormal><br><br><o:p></o:p></p><p class=MsoNormal style='margin-bottom:12.0pt'>Am 26.01.2020 um 16:28 schrieb Ralf Wismann <ralf.wismann@gmx.de>:<o:p></o:p></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal><span style='font-size:12.0pt;font-family:"Times New Roman","serif"'><o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:DE'>Hallo</span><o:p></o:p></p><p class=MsoNormal><span style='mso-fareast-language:DE'> </span><o:p></o:p></p><p class=MsoNormal style='text-indent:35.4pt'><span style='mso-fareast-language:DE'>Am Sonntag, 26. Januar 2020 15:04 schrieb Anrears Götz:</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:35.4pt'>„Die Middleware kann DELETE auch übers Api, dabei lässt sich auch ein Wertfilter angeben. Benutzung lässt sich auf der ML recherchieren. „<o:p></o:p></p><div><p class=MsoNormal>Danke Andreas. Schau ich mir auch gerne an. Durch den manuellen Eingriff scheint mir das hier weniger gut, da es nicht mein Volkszähler ist und der Besitzer nicht selber an der Datenbank arbeiten möchte. Ich habe / möchte auch nicht unbedingt manuell dort regelmäßig aktiv sein <span style='font-family:"Segoe UI Symbol","sans-serif"'>😉</span><o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal style='text-indent:35.4pt'>Am 26.01.2020 um 14:25 schrieb Rupert Schöttler <<a href="mailto:rupert.schoettler@gmx.de">rupert.schoettler@gmx.de</a>>:<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal style='margin-left:35.4pt'>„Dein vergleichsweise einfaches Fehlerbild, nämlich 85°C = Fehler, kann man einfach auf der Datenbank reparieren: <o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal style='margin-left:35.4pt'>DELETE FROM `data` WHERE (channel_id IN (<Kanalliste>)) AND (value = 85). Diesen Befehl gelegentlich in phpMyAdmin absetzen oder z.B. 1x tgl. per cron laufen lassen und ausgeputzt ist's. Aber Achtung mit der Syntax und den Kanalnummern: Was weg ist ist weg! ;-)“<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Danke Rupert. Hatte ich vermutet, wenn es keine Standardfehlerkorrekturoption gibt.<o:p></o:p></p><p class=MsoNormal>Da ich so etwas noch nicht gemacht habe. Bitte um kurzen Quercheck.<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Also ich lege ein Bash-Script an „reinigung.sh“<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>Tippe dort rein:<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'>#!/bin/bash</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'>mysql --user=root -praspberry</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'>DELETE FROM `volkszaehler` WHERE and channel_id = 12 AND timestamp< (unix_timestamp(current_timestamp)-7*24*60*60)*1000 AND value >-5 AND value <40;</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'>Dies zB soll Werte für eine Innenraumtemperatur (Kanal 12) kleiner -5Grad and Größer 40 Grad der letzten 7 Tage.</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'>Dieses Bash Script lasse ich Täglich um 3h laufen mit cron:</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'>00 3 * * * root /verzeichnis/script >/dev/null 2>&1</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'>Geht das in die Richtung?</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'>Danke und Grüße</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'>Ralf</span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'> </span><o:p></o:p></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New";mso-fareast-language:DE'> </span><o:p></o:p></p></div></div></blockquote></div></div></div></body></html>