Nach Neuinstallation komische Werte,

There are 12 replies in this Thread which was already clicked 11,633 times. The last Post () by Wilhelm.

  • Hallo Hartmut,
    Bedingt durch ein Überspannungseinschlag wurde unter Anderem meine Fhem - Installation sowie
    auch die Datensicherung zerstört. Ich habe jetzt den PI wieder so weit eingerichtet, dass die
    wichtigsten Sachen laufen.
    Bei der Installation des Lambda Check gibt es leider eine Situation bei der ich nicht weiter komme.
    Es werden Daten geloggt, die nicht der Anzeige des Lambda Check entsprechen.
    LC/
    O² = 19%,
    Abgastemperatur = normal 28°--- erwärmt mit Feuerzeug = 66°
    Auch beim Durcharbeiten des Beitrages:
    Flammtronik an Raspberry Diskussions Thread
    blieb das Ergebnis erfolglos.
    Kannst Du mir an Hand des Screenshot sagen wo ich ansetzen könnte um das Problem zu lösen.
    lNach Neuinstallation komische Werte.png
    Danke Michael

  • Hallo Hartmut,
    Übrigens unter Putty erscheint ein sauberer Logg ohne Störungen.
    Gruß Michael

  • hallo
    zeig uns mal deine 99 config da stimmt was nicht so sieht es aus
    gruss markus

  • Hallo markus,
    Danke das Du dich meldest. Ich möchte den LC unbedingt bis der Schornsteinfeger kommt in Ordnung haben.
    Ich habe jetzt noch festgestelt, dass unter Fhem der O² Wert und die Abgastemperatur vertauscht sind.
    O² ist 21 am LC und Abgastemper. 27°/28°.
    < zeig uns mal deine 99 config da stimmt was nicht so sieht es aus >
    Du meinst doch sicher 99_myUtils.pm


    Hier ist er.
    Danke Michael

  • Hallo,
    Hier noch der putty Log:
    putty_051015.pngAlle Werte i.O.
    Und das ist der Flam Log:

    Gruß Michael

  • package main;
    use strict;
    use warnings;
    use POSIX;

    use vars qw {$KeepedRest};

    sub
    myUtils_Initialize($$)
    {
    my ($hash) = @_;
    my $NewMailtime = time;
    }

    sub ReportItems($$)
    {
    my %ItemNotes = (
    "T" => "Abgas",
    "A" => "Sekundaer",
    "O" => "O2",
    "V" => "Verlust"
    );

    my $hash = shift;
    my %items = %{shift()};

    foreach my $Key (sort keys %items)
    {
    my $Notation = $ItemNotes{$Key};
    my $Value = $items{$Key};
    readingsSingleUpdate($hash, $Notation, $Value,1);
    }
    }

    sub AdaptIntervalValue($@)
    {
    my $Value = shift;
    my @CorrectionTable = @{shift()};

    my $Prior = 0; my $PriorCorrect = 0; my $Search = 0; my $Correct = 0;
    while (@CorrectionTable)
    {
    ($Prior, $PriorCorrect) = ($Search, $Correct);
    ($Search, $Correct) = (shift @CorrectionTable, shift @CorrectionTable);
    last if $Value <= $Search;
    }

    my $CorrVal = $PriorCorrect + (($Value - $Prior) * ($Correct - $PriorCorrect) / ($Search - $Prior));
    return $CorrVal;
    }

    sub CorrectAbgas($)
    {
    my $Abgas = shift;
    $Abgas *= 1;
    return $Abgas;
    }

    sub CorrectPrimaerluefter($)
    {
    my $Primaerluefter = shift;
    $Primaerluefter *= 1;
    return $Primaerluefter;
    }

    sub CorrectO2($)
    {
    my $O2 = shift;
    $O2 *= 1;
    return $O2;
    }

    sub CorrectSekundaer($)
    {
    my $Sekundaer = shift;
    $Sekundaer *= 1;
    return $Sekundaer;
    }

    sub CorrectVerlust($)
    {
    my $Verlust = shift;
    $Verlust *= 1;
    return $Verlust;
    }

    # Correct some of the values by special calculation
    sub CalcItems($$)
    {
    my $hash = shift;
    my $itemRef = shift;

    # the next two arrays can be used to define correction-functions
    # definition of functions to correct single values
    my @CorrectFuncs =
    (
    "T" => \&CorrectAbgas,
    "O" => \&CorrectO2,
    "A" => \&CorrectSekundaer,
    "V" => \&CorrectVerlust,
    );

    # definition of functions to combine multiple values to new or existing value
    my @MultiCorrectFuncs =
    (

    );

    # the next lines normally don't have to be changed
    # Correct all values which have defined a correction function with a single parameter
    while (@CorrectFuncs)
    {
    my ($Search, $Func) = (shift @CorrectFuncs, shift @CorrectFuncs);
    if ( exists $itemRef->{$Search} ) { $itemRef->{$Search} = &$Func($itemRef->{$Search}); }
    }

    # Correct all values which have defined a correction function with mutliple parameter.
    while (@MultiCorrectFuncs)
    {
    my ($Search, $Func, $ParamStr) = (shift @MultiCorrectFuncs,shift @MultiCorrectFuncs,shift @MultiCorrectFuncs);
    my @ParamNames = $ParamStr=~/(\w+)\W*/g;

    my @ParamArray=();
    my $NotUsedParams="";
    foreach my $ParamName (@ParamNames)
    {
    if ( exists $itemRef->{$ParamName} ) { push @ParamArray, $itemRef->{$ParamName} }
    else { $NotUsedParams.=$ParamName.","; }
    }

    if (@ParamNames != @ParamArray)
    {
    if (@ParamArray != 0)
    {
    $NotUsedParams =~s/,$//;
    Log3 $hash,5,"Incomplete Params to calc \"$Search\". Not found: $NotUsedParams";
    }
    next;
    }

    my $Result = &$Func(\@ParamArray);
    $itemRef->{$Search} = $Result;
    }
    }

    sub CheckFrame($$)
    {
    my $name = shift;
    my $hash = $defs{$name};

    if (!defined $KeepedRest) { $KeepedRest = ""; }
    else { Log3 $hash,5,"Used Prefix from prior line: $KeepedRest" };
    my $frame = $KeepedRest . shift;

    # Pumpe and Primaerluefter have both "P" as key, so change Primaerluefter to PL
    $frame =~ s/P(\d{3})/PL$1/g;

    # divide into hash-table of [key,value] and take undetected rest into extra var for check
    my %items = $frame=~/([A-Za-z]+)([-+]?[\d.]+)\W+/g;
    my $Rest=$'; #';

    # Keep all rest of line for next use
    $frame=~/((.*\r\n)+)/g;
    $KeepedRest=$'; #';

    CalcItems($hash, \%items);
    ReportItems($hash,\%items);

    if ($Rest ne '') { Log3 $hash,5,"Unknown rest of frame: $Rest|$KeepedRest (Frame: $frame)" };
    Log3 $hash,5,"CheckFrame finished.";
    return $KeepedRest;
    }


    1;




    nehm die mal
    gruss markus
    ist aus dem forum

  • hallo
    überprüfe auch mal deine Classdef:


    reading Spontan match "(.*\r\n){1}"
    reading Spontan postproc {my $d=$_;CheckFrame("%NAME",$d);}

  • Moin markus,
    Mir geht es langsam wie Rene - ich habe die Schnauze voll.
    Bin total am Verzweifeln.
    Es gibt keine Veränderung.
    Classdef ist OK. 99_myUtils .pm ist OK. zumindest für mich. :cursing:
    Was mir aufgefallen ist, der Inhalt der Datei fhem.cfg unter Fhem ist gleich der unter putty
    Bei der 99_Utils.pm ist unter putty nichts eingetragen.
    Ist das richtig?
    Hier nochmal ein Auszug aus dem Flam Log:

    O² = 21%
    Abgas = 23/24
    Heizkessel = Aus
    Der Tag der Messung kommt immer näher und ich stehe auf dem Schlauch.
    Hat keiner eine Idee?
    Da unter putty der Log gut läuft kann es nur eine Einstellung unter Fhem sein die das Problem verursacht..
    Danke Michael

  • gute frage
    muss ich mal bei der flammtronik nach schauen
    gruß markus
    PS alles in fhem noch mal loschen und neu beginnen

  • Hallo,
    Es ist zum verrückt werden.

    Um 15:13 hatte ich den den USB Stecker bei laufendem PI gezogen und wieder gesteckt.
    Danach alles super.
    18:50 wurde ein Updat durchgeführt und danach war alles wieder Sch.......e.
    Nachdem keine Änderung erfolgte wieder die Steckerspielerei und er läuft wieder.
    Warum ist der LC so lange gelaufen und dann --Aus der Traum--
    Wer hat eine Idee. das kann doch nicht normal sein.
    LC_OK 071015.png
    So sieht es jetzt aus.
    Gruß Michael

  • Moin, moin,
    Der LC läuft bis jetzt ohne Mucken.
    Eine Frage.
    Unter Heizkessel/Readings sehe ich das ständig die Werte aktualisiert werden.
    Was ich nicht verstehe ist, das unter ECMD Heizraum/FileLog/FlamLog/FlamLog-2015-10-08.log txt:
    der log heute Morgen 05:49:12 stehen geblieben ist. Aus diesem Grund auch keine Aktualisierung des GPlots.


    Gibt es dafür eine plausible Erkärung.
    Danke Michael

  • Hallo,
    Nachdem gestern nichts mehr ging auch keine Logs mehr, habe ich mich entschlossen den LC, den USB Converter für die Wired Aktoren,
    die Wiredaktoren für Gartenberegnung und alle Logs, Dummis usw. zu deinstallieren. Verblieben sind unter Fhem nur die HM Rollladenaktoren.
    Danach habe ich den LC neu installiert. Seit 15 Uhr läuft alles wie geschmiert.
    Ich denke bzw. ich bin mir sicher,dass der USB RS485 Serial Converter von Digitus das störende Glied war.
    Mit Sicherheit wurden die beiden USB Geräte ( LC + RS485) nicht richtig zugeordnet.
    Jetzt muss ich in Erfahrung bringen wie die Zuordnung realisiert wird damit ich die Wiredaktoren wieder programmieren kann.
    Hat hier jemand eine Idee?
    Gruß Michael

  • Moin, moin,
    Letzte Stand zur Installation LC.
    Das Teil läuft ohne Probleme.
    Die Daten werden sauber im Gplot dargestellt und ständig aktualisiert.
    Ich möchte mich auch nochmal bei Mario bedanke, der versucht hat mir unter die Arme zu greifen.
    nun werde ich versuchen noch ein paar Temperaturen in Fhem einzubinden. Ich denke da an 1Wired Messung.
    Was gibt es da für Erfahrungen
    Mal sehen wann die Teile kommen.
    Danke Michael

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!