Unwetterzentrale in TabletUi

Begonnen von Frank13, 21 Februar 2016, 20:43:49

Vorheriges Thema - Nächstes Thema

CoolTux

Bedeutet also das die Unwetterzentrale auch eine Meldung hat. Richtig? Dann sollte das ganze auch entsprechend korrekt funktionieren.

Poste mal bitte den ganzen Code den Du hast. Also so wie er genau jetzt ist.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

olli84

sub unwetter()
{
my $countWarn = ReadingsVal("Unwetterzentrale","WarnCount","");
my $unwetterText = "<div class=\"top-space-min\">";
my $warnnumber = "";
my $warnbild ="";
for(my $i = 0; $i < $countWarn; $i++) {
  $warnnumber = "Warn_".$i."_ShortText";
  $warnbild = "Warn_".$i."_IconURL";
  $unwetterText .= "<div class=\"row\"><div class=\"col-2-1\"><img src=\"";
  $unwetterText .= ReadingsVal("Unwetterzentrale",$warnbild,"");
  $unwetterText .= "\" width=\"50\" height=\"50\" alt=\"unwetter\" /></div>";
  $unwetterText .= "<div class=\"top-space-mid col-3-4\">";
  $unwetterText .= ReadingsVal("Unwetterzentrale",$warnnumber,"");
  $unwetterText .= "</div></div><div class=\"newline\">&nbsp </div>";
  $warnnumber = "";
  $warnbild ="";
}
$unwetterText = $countWarn;
if ($countWarn == 0) {
  $unwetterText = "CountSchleife $countWarn";
}
fhem "set unwetterText ". $unwetterText;
}


Die Zentrale hat eine Warnung, das ist richtig. :)

CoolTux

Supi. Ich repariere Dir das dann heute Abend wieder  ;D
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

olli84

Zitat von: CoolTux am 07 Juni 2016, 14:16:42
Supi. Ich repariere Dir das dann heute Abend wieder  ;D

Danke, bist klasse! :)  ;D

CoolTux

Erst bedanken wenn wir das Problem gelöst haben  ;D


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux


sub unwetter() {
  my $countWarn = ReadingsVal("Unwetterzentrale","WarnCount","");
  my $unwetterText = "<div class=\"top-space-min\">";
  my $warnnumber = "";
  my $warnbild ="";

  for(my $i = 0; $i < $countWarn; $i++) {
      $warnnumber = "Warn_".$i."_ShortText";
      $warnbild = "Warn_".$i."_IconURL";
      $unwetterText .= "<div class=\"row\"><div class=\"col-2-1\"><img src=\"";
      $unwetterText .= ReadingsVal("Unwetterzentrale",$warnbild,"");
      $unwetterText .= "\" width=\"50\" height=\"50\" alt=\"unwetter\" /></div>";
      $unwetterText .= "<div class=\"top-space-mid col-3-4\">";
      $unwetterText .= ReadingsVal("Unwetterzentrale",$warnnumber,"");
      $unwetterText .= "</div></div><div class=\"newline\">&nbsp </div>";
      $warnnumber = "";
      $warnbild ="";
  }

  $unwetterText = $countWarn;

  $unwetterText = "&nbsp; " if( $countWarn == 0 );

  fhem "set unwetterText ".$unwetterText;
}


So ich habe dann mal alles wieder so gemacht wie es war und darauf geachtet das unsere Beobachtung erhalten bleibt.
Einzig eine kleine Vereinfachung habe ich gemacht.

Wir hatten ja eine Bedingungsprüfung gehabt und innerhalb dieser Bedingungsprüfung eine einzige Perlanweisung


if ($countWarn == 0) {
  $unwetterText = "&nbsp; ";
}


Wenn man das so einfach hat, dann kann man das auch vereinfacht schreiben.

$unwetterText = "&nbsp; " if( $countWarn == 0 );


Sagt im Grunde genau das selbe aus.

Probier das mal und dann schauen wir mal. reload nicht vergessen und dann einfach { unwetter() } in der cmd Konsole eingeben.



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

olli84

Guten Abend,  8)

ich machs kurz - es funktioniert nicht.

Im Dummy bleibt einfach nur die 1, aus der vorherigen sub-version, bestehen.

2016.06.07 21:48:16 4: dummy set unwetterText 1

Das steht nach einem manuellem Aufruf, oder einem update der Unwetterzentrale, im Log. Reload der myutils sowie manueller shutdown restart wurden gemacht.

Warum jetzt die "1" geschrieben wird - keine Ahnung.

CoolTux


sub unwetter() {
  my $countWarn = ReadingsVal("Unwetterzentrale","WarnCount","");
  my $unwetterText = "<div class=\"top-space-min\">";
  my $warnnumber = "";
  my $warnbild ="";

  for(my $i = 0; $i < $countWarn; $i++) {
      $warnnumber = "Warn_".$i."_ShortText";
      $warnbild = "Warn_".$i."_IconURL";
      $unwetterText .= "<div class=\"row\"><div class=\"col-2-1\"><img src=\"";
      $unwetterText .= ReadingsVal("Unwetterzentrale",$warnbild,"");
      $unwetterText .= "\" width=\"50\" height=\"50\" alt=\"unwetter\" /></div>";
      $unwetterText .= "<div class=\"top-space-mid col-3-4\">";
      $unwetterText .= ReadingsVal("Unwetterzentrale",$warnnumber,"");
      $unwetterText .= "</div></div><div class=\"newline\">&nbsp </div>";
      $warnnumber = "";
      $warnbild ="";
  }

  $unwetterText .= "</div>";

  $unwetterText = "&nbsp; " if( $countWarn == 0 );

  fhem "set unwetterText ".$unwetterText;
}


Sorry mein Fehler. Habe da eine Zeile übersehen.
Hier noch mal die verbesserte Version.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

olli84

Hey Super! Es funktioniert! :)

Daaaaaaaaaaaanke!!!!

Was war da jetzt genau das Problem?

CoolTux

Supi. Das freut mich das es geht.
Ehrlich gesagt kann ich es nicht sagen. Ich habe noch mal gaaanz genau verglichen und nur einen kleinen Unterschied aus gemacht. Nach meinem Wissen dürfte es eigentlich keinen Einfluss haben. Ist nur ein Leerzeichen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Kermit20

Hi,

ich konnte es dank eurer Hilfe umsetzen. Hatte einfach einen Fehler bei der Deklaration der Variablen gemacht. Die Integration in FTUI wird noch dauern, da ich die nächsten Wochen nicht dazu kommen werde.

RPi1: FHEM mit HMLAN und CUL Eigenbau: diverse Homematic Geräte; Technoline Temp/Feuchte 868 MHz // Schalsteckdosen 433 MHz
RPi2: FHEM mit Viessmann(optolink) mit VControl und 1W Sensoren
RPi3: Apache / Owncloud 9

olli84

Hallo nochmal,

nach den letzten Unwettern ist seit heute tatsächlich mal keine Warnung in der Unwetterzentrale für meine PLZ eingetragen - nur leider wird der dummy nicht aktualisiert, da steht weiterhin die letzte Warnung drin - ne idee?

Grüßle und Danke,
Olli

CoolTux

Dann hat er das hier nicht genommen oder das Script wurde erst gar nicht gestartet.
Lässt Du es immer noch über ein DOIF auf rufen? Gib mal bitte list vom DOIF

$unwetterText = "&nbsp; " if( $countWarn == 0 );
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

olli84

#58
Guten Morgen,

ich hau nochmal alles rein was ich habe:

sub unwetter() {
  my $countWarn = ReadingsVal("Unwetterzentrale","WarnCount","");
  my $unwetterText = "<div class=\"top-space-min\">";
  my $warnnumber = "";
  my $warnbild ="";

  for(my $i = 0; $i < $countWarn; $i++) {
      $warnnumber = "Warn_".$i."_ShortText";
      $warnbild = "Warn_".$i."_IconURL";
      $unwetterText .= "<div class=\"row\"><div class=\"col-2-1\"><img src=\"";
      $unwetterText .= ReadingsVal("Unwetterzentrale",$warnbild,"");
      $unwetterText .= "\" width=\"50\" height=\"50\" alt=\"unwetter\" /></div>";
      $unwetterText .= "<div class=\"top-space-mid col-3-4\">";
      $unwetterText .= ReadingsVal("Unwetterzentrale",$warnnumber,"");
      $unwetterText .= "</div></div><div class=\"newline\">&nbsp </div>";
      $warnnumber = "";
      $warnbild ="";
  }

  $unwetterText .= "</div>";

  $unwetterText = "&nbsp; " if( $countWarn == 0 );

  fhem "set unwetterText ".$unwetterText;
}


hier das list vom DOIF

Internals:
   DEF        ([Unwetterzentrale:WarnCount]) ({unwetter()})
   NAME       di_UWZ
   NR         238
   NTFY_ORDER 50-di_UWZ
   STATE      cmd_1
   TYPE       DOIF
   Helper:
     Dblog:
       Cmd:
         Logdb:
           TIME       1465766454.42689
           VALUE      1
       Cmd_event:
         Logdb:
           TIME       1465766454.42689
           VALUE      Unwetterzentrale
       Cmd_nr:
         Logdb:
           TIME       1465766454.42689
           VALUE      1
       State:
         Logdb:
           TIME       1465766454.42689
           VALUE      cmd_1
   Readings:
     2016-06-13 04:20:54   Device          Unwetterzentrale
     2016-06-12 23:20:54   cmd             1
     2016-06-12 23:20:54   cmd_event       Unwetterzentrale
     2016-06-12 23:20:54   cmd_nr          1
     2016-06-13 04:20:54   e_Unwetterzentrale_WarnCount 0
     2016-06-12 23:20:54   state           cmd_1
   Condition:
     0          ReadingValDoIf($hash,'Unwetterzentrale','WarnCount','','',AttrVal($hash->{NAME},'notexist',undef))
   Devices:
     0           Unwetterzentrale
     all         Unwetterzentrale
   Do:
     0:
       0          {unwetter()}
     1:
   Helper:
     event      WarnCount: 0,durationFetchReadings: 0.38,Warnungen: 0,lastConnection: 2 values captured in 0.38 s
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   Unwetterzentrale
     timerevent Warn_0_End: 1465768800,Warn_0_LongText: Ab Sonntagvormittag sind in der labilen Luftmasse örtlich kräftige Regenschauer und Gewitter möglich. Dabei besteht die Gefahr von Starkregen mit 10 bis 30 l/m² binnen kurzer Zeit, kleinem Hagel (1 bis 3cm) und vereinzelten Sturmböen um oder über 75 km/h. Sonntagabend und -nacht lassen die Gewitter langsam nach.,Warn_0_Start_Time: 08:00,Warn_0_Start: 1465711200,Warn_0_End_Date: 13.06.2016,Warn_0_Hail: 1,Warn_0_Type: 7,WarnCount: 1,Warn_0_ShortText: Örtlich Gewitter mit Starkregen (10 bis 30l/m²), kleinem Hagel und Sturmböen mögl.,Warn_0_uwzLevel: 8,Warn_0_Type_Str: Gewitter,Warn_0_levelName: alert_forewarn_red,Warn_0_End_Time: 00:00,Warn_0_Severity: 8,Warn_0_IconURL: http://www.unwetterzentrale.de/images/icons/gewitter-gelb.gif,Warn_0_Start_Date: 12.06.2016,durationFetchReadings: 0.41,Warnungen: 1,lastConnection: 17 values captured in 0.41 s
     triggerDev Unwetterzentrale
     timerevents:
       Warn_0_End: 1465768800
       Warn_0_LongText: Ab Sonntagvormittag sind in der labilen Luftmasse örtlich kräftige Regenschauer und Gewitter möglich. Dabei besteht die Gefahr von Starkregen mit 10 bis 30 l/m² binnen kurzer Zeit, kleinem Hagel (1 bis 3cm) und vereinzelten Sturmböen um oder über 75 km/h. Sonntagabend und -nacht lassen die Gewitter langsam nach.
       Warn_0_Start_Time: 08:00
       Warn_0_Start: 1465711200
       Warn_0_End_Date: 13.06.2016
       Warn_0_Hail: 1
       Warn_0_Type: 7
       WarnCount: 1
       Warn_0_ShortText: Örtlich Gewitter mit Starkregen (10 bis 30l/m²), kleinem Hagel und Sturmböen mögl.
       Warn_0_uwzLevel: 8
       Warn_0_Type_Str: Gewitter
       Warn_0_levelName: alert_forewarn_red
       Warn_0_End_Time: 00:00
       Warn_0_Severity: 8
       Warn_0_IconURL: http://www.unwetterzentrale.de/images/icons/gewitter-gelb.gif
       Warn_0_Start_Date: 12.06.2016
       durationFetchReadings: 0.41
       Warnungen: 1
       lastConnection: 17 values captured in 0.41 s
     timereventsState:
       Warn_0_End: 1465768800
       Warn_0_LongText: Ab Sonntagvormittag sind in der labilen Luftmasse örtlich kräftige Regenschauer und Gewitter möglich. Dabei besteht die Gefahr von Starkregen mit 10 bis 30 l/m² binnen kurzer Zeit, kleinem Hagel (1 bis 3cm) und vereinzelten Sturmböen um oder über 75 km/h. Sonntagabend und -nacht lassen die Gewitter langsam nach.
       Warn_0_Start_Time: 08:00
       Warn_0_Start: 1465711200
       Warn_0_End_Date: 13.06.2016
       Warn_0_Hail: 1
       Warn_0_Type: 7
       WarnCount: 1
       Warn_0_ShortText: Örtlich Gewitter mit Starkregen (10 bis 30l/m²), kleinem Hagel und Sturmböen mögl.
       Warn_0_uwzLevel: 8
       Warn_0_Type_Str: Gewitter
       Warn_0_levelName: alert_forewarn_red
       Warn_0_End_Time: 00:00
       Warn_0_Severity: 8
       Warn_0_IconURL: http://www.unwetterzentrale.de/images/icons/gewitter-gelb.gif
       Warn_0_Start_Date: 12.06.2016
       durationFetchReadings: 0.41
       state: Warnungen: 1
       lastConnection: 17 values captured in 0.41 s
     triggerEvents:
       WarnCount: 0
       durationFetchReadings: 0.38
       Warnungen: 0
       lastConnection: 2 values captured in 0.38 s
     triggerEventsState:
       WarnCount: 0
       durationFetchReadings: 0.38
       state: Warnungen: 0
       lastConnection: 2 values captured in 0.38 s
   Internals:
   Itimer:
   Readings:
     0           Unwetterzentrale:WarnCount
     all         Unwetterzentrale:WarnCount
   Regexp:
     0:
     All:
   State:
   Trigger:
Attributes:
   do         always
   room       Wetter


Im Anhang das DOIF, Dummy und die Zentrale.

Danke - mal wieder - für deine Hilfe!

CoolTux

Änder mal bitte das


my $countWarn = ReadingsVal("Unwetterzentrale","WarnCount","");


in das


my $countWarn = ReadingsVal("Unwetterzentrale","WarnCount",0);


und dann mal die Sub starten
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net