FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: rhoffm34 am 25 Juni 2018, 20:12:51

Titel: Diagramm zur Kontrolle höher auflösen
Beitrag von: rhoffm34 am 25 Juni 2018, 20:12:51
Hallo Leute,

ich habe das Problem das ich Zeitkritische Schaltvorgänge habe.

Als Beispiel in etwa so:

Bewässerung Start wird gedrückt
nach 5s schaltet Ventil1
nach weiteren 5s schaltet Ventil2
nach weiteren 5s schaltet die Brunnenpumpe ein.
usw

Wenn ich mir das auf dem SVG Plot anschaue sehe ich alles als einen Pampe da die Auflösung zu gering ist. Ich kann also nicht erkennen ob alles in der richtigen Reihenfolge abgearbeitet wird.

Wie habt Ihr das gelöst ? Wie testet Ihr die Richtigkeit der Programmierung?

Gruß
Titel: Antw:Diagramm zur Kontrolle höher auflösen
Beitrag von: MadMax-FHEM am 25 Juni 2018, 20:20:33
Zitat von: rhoffm34 am 25 Juni 2018, 20:12:51
Wie habt Ihr das gelöst ? Wie testet Ihr die Richtigkeit der Programmierung?

Gruß

Logausgaben...

Gruß, Joachim
Titel: Antw:Diagramm zur Kontrolle höher auflösen
Beitrag von: rhoffm34 am 25 Juni 2018, 22:11:58
Was genau meinst Du mit Logausgaben?

Ich möchte mir das gerne anhand eines Graphen anzeigen lassen...
Titel: Antw:Diagramm zur Kontrolle höher auflösen
Beitrag von: schwatter am 25 Juni 2018, 22:21:36
Vielleicht hilft dir das:

attr <nameDeinesFilelogs> plotsize 760,300

Spiel einfach mal mit der Plotsize herum.
Titel: Antw:Diagramm zur Kontrolle höher auflösen
Beitrag von: MadMax-FHEM am 25 Juni 2018, 22:30:17
Zitat von: rhoffm34 am 25 Juni 2018, 22:11:58
Was genau meinst Du mit Logausgaben?

Ich möchte mir das gerne anhand eines Graphen anzeigen lassen...

Du wolltest wissen wie "wir" das lösen ;)

Indem ich zwischendrin eben Logausgaben mache.
Beispiel:


sub my_SignalDeadDevice($)
{
  my ($Event)  = @_;
  my @EventPartsDev = split(/_/,$Event);
  my $Index = 0;
  my $DeviceEvtPartAct = "";
  my $DeviceEvt = $EventPartsDev[1];

  foreach $DeviceEvtPartAct (@EventPartsDev)
  {
    if($Index > 1)
    {
      $DeviceEvt = $DeviceEvt . "_" . $DeviceEvtPartAct;
    }
    $Index++;
  }
  Log3(undef, 1, "my_SignalDeadDevice      DeviceEvt: $DeviceEvt");

  my @DeviceParts = split(/:/,$DeviceEvt);
  my $Device = $DeviceParts[0];
  my @EventPartsStat = split(/ /,$Event);
  my $State = $EventPartsStat[1];
  my $SignalDevice = $Device . "_State";
  my @DevicePartsParts = split(/_/, $Device);

  Log3(undef, 1, "my_SignalDeadDevice      Event: $Event      Device: $Device        State: $State");

  # switch with power measurement are not always "under power"...
  if(AttrVal($Device, "model", "na") eq "HM-ES-PMSw1-Pl")
  {
    Log3(undef, 1, "my_SignalDeadDevice  ignoring Device: $Device");
    return;
  }

  # check if Device was just defined, so wait until rename
  if($DevicePartsParts[0] eq "HM")
  {
    Log3(undef, 1, "my_SignalDeadDevice  ignoring Device: $Device");
    return;
  }
}


Gruß, Joachim