Unwetterzentrale in TabletUi

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

Vorheriges Thema - Nächstes Thema

CoolTux

Dieser Text aktuallisiert sich von alleine auf Basis der UWZ Readings. Lese Dir den Thread durch, da steht alles drin was Du machen musst.
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

Wasserwerk33

so habe nun alles so gemacht.

Habe einen Dummy angelegt.
Habe einen Doif angelegt
und habe das UNZ module
aber es wird bei mir nichts angezeigt. wo muss ich noch etwas anlegen oder machen??
und wie komme ich in den Sub??


Tutti_Bomovski

Du musst die Sub für UWZ in deine 99_myutilitis einsetzen.
Links über editfiles, dann die 99... auswählen und dort den Sub rein.
Das Reading FTUIunwettertext wird dann direkt im UWZ angelegt.
Wenn du noch Fragen hast, dann melde dich noch mal. Ich schick dir dann Screenshots von meinen Einstellungen. Dann sollte es klappen.

Tutti_Bomovski


#####################################################
#############     Unwetterwarnungen     #############
#####################################################
sub uwzWarn($$) {

   my ($name,$event) = @_;
   my $hash = $defs{$name};


   my $countWarn = ReadingsVal($name,"WarnCount","");
        my $wNb = ReadingsVal( $name, "WarnCount", 0 ) - 1;
        my $unwetterText = "<div class=\"top-space-min\">";
        my $warnnumber = "";
        my $warnbild ="";

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

   $unwetterText .= "</div>";

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

    readingsSingleUpdate($hash,"ftuiUwzText",$unwetterText, 1);
}


Oben der Code sub für die 99_myutilis

Und hier noch ein Bild von meiner UWZ.

Tutti_Bomovski

Auf meinem Tablet sieht das ganze dann so aus.

Wasserwerk33

spo sieht mein code nun aus muss ich da noch irgendetwas rausnehmen??  oder habe ich etwas falsch gemacht??
habe nur fragezeichen stehen. :(

##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}
#####################################################
#############     Unwetterwarnungen     #############
#####################################################
sub uwzWarn($$) {

   my ($name,$event) = @_;
   my $hash = $defs{$name};


   my $countWarn = ReadingsVal($name,"WarnCount","");
        my $wNb = ReadingsVal( $name, "WarnCount", 0 ) - 1;
        my $unwetterText = "<div class=\"top-space-min\">";
        my $warnnumber = "";
        my $warnbild ="";

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

   $unwetterText .= "</div>";

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

    readingsSingleUpdate($hash,"ftuiUwzText",$unwetterText, 1);
}



1;

CoolTux

Du brauchst kein Dummy.
Alles was Du brauchst ist eine Sub in der 99_myUtils.pm und ein Notify

Sub

sub uwzWarn($$) {

my ($name,$event) = @_;
my $hash = $defs{$name};


my $countWarn = ReadingsVal($name,"WarnCount","");
        my $wNb = ReadingsVal( $name, "WarnCount", 0 ) - 1;
        my $unwetterText = "<div class=\"top-space-min\">";
        my $warnnumber = "";
        my $warnbild ="";

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

$unwetterText .= "</div>";

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

readingsSingleUpdate($hash,"ftuiUwzText",$unwetterText, 1);
}


Und das Notify

define notifyUWZTabletUI notify Unwetterzentrale.WarnCount:.[0-9] { uwzWarn($NAME,$EVTPART1); }


Unwetterzentrale ist der Name meiner UWZ Instanz. Sollte Deine anders lauten dann bitte anpassen.



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

Tutti_Bomovski

Zitat von: Wasserwerk33 am 07 Januar 2017, 12:17:01
spo sieht mein code nun aus muss ich da noch irgendetwas rausnehmen??  oder habe ich etwas falsch gemacht??
habe nur fragezeichen stehen. :(

##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}
#####################################################
#############     Unwetterwarnungen     #############
#####################################################
sub uwzWarn($$) {

   my ($name,$event) = @_;
   my $hash = $defs{$name};


   my $countWarn = ReadingsVal($name,"WarnCount","");
        my $wNb = ReadingsVal( $name, "WarnCount", 0 ) - 1;
        my $unwetterText = "<div class=\"top-space-min\">";
        my $warnnumber = "";
        my $warnbild ="";

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

   $unwetterText .= "</div>";

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

    readingsSingleUpdate($hash,"ftuiUwzText",$unwetterText, 1);
}



1;

Ich weiss nicht ob es daran liegt, aber hast du das als 99_my... abgespeichett?

CoolTux

Zitat von: Wasserwerk33 am 07 Januar 2017, 12:17:01
spo sieht mein code nun aus muss ich da noch irgendetwas rausnehmen??  oder habe ich etwas falsch gemacht??
habe nur fragezeichen stehen. :(

##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}
#####################################################
#############     Unwetterwarnungen     #############
#####################################################
sub uwzWarn($$) {

   my ($name,$event) = @_;
   my $hash = $defs{$name};


   my $countWarn = ReadingsVal($name,"WarnCount","");
        my $wNb = ReadingsVal( $name, "WarnCount", 0 ) - 1;
        my $unwetterText = "<div class=\"top-space-min\">";
        my $warnnumber = "";
        my $warnbild ="";

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

   $unwetterText .= "</div>";

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

    readingsSingleUpdate($hash,"ftuiUwzText",$unwetterText, 1);
}



1;


Und Dein Notify?
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

Zitat von: Wasserwerk33 am 07 Januar 2017, 12:17:01
spo sieht mein code nun aus muss ich da noch irgendetwas rausnehmen??  oder habe ich etwas falsch gemacht??
habe nur fragezeichen stehen. :(

##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}
#####################################################
#############     Unwetterwarnungen     #############
#####################################################
sub uwzWarn($$) {

   my ($name,$event) = @_;
   my $hash = $defs{$name};


   my $countWarn = ReadingsVal($name,"WarnCount","");
        my $wNb = ReadingsVal( $name, "WarnCount", 0 ) - 1;
        my $unwetterText = "<div class=\"top-space-min\">";
        my $warnnumber = "";
        my $warnbild ="";

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

   $unwetterText .= "</div>";

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

    readingsSingleUpdate($hash,"ftuiUwzText",$unwetterText, 1);
}



1;


Wo hast Du nur Fragezeichen stehen? Gib mal bitte mehr Infos.
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

Tutti_Bomovski


CoolTux

schaut gut aus. Und Der Name Deiner UWZ Instanz lautet auch UWZ? Und wo stehen nun die Fragezeichen?
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

Wasserwerk33

Ich habe zwei Warnmeldungen, keine wird angezeigt. Ich hatte gerade noch fragezeichen hinter meinem Dummy stehen. Habe in der Sub das oberste rausgenommen.
so sieht meine Fhem wetterseite aus

CoolTux

#118
So wird das nichts.

Also erstmal. Du brauchst keinen Dummy und der wird auch nicht befüllt da Du die Sub ja nichts entsprechend änderst.
Dann brauche ich Ausgaben vom list Befehl.
list notify
list uwz

und dann zeige mir mal bitte wie Deine 99_myUtils jetzt aus schaut. Und zwar bitte komplett.
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

Wasserwerk33

Und als list möchtest du bestimmt die Raw inhalte oder??

dieses ist mein code

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}
sub unwetter()
{
my $countWarn = ReadingsVal("Untwetterzentrale","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("Untwetterzentrale",$warnbild,"");
  $unwetterText .= "\" width=\"50\" height=\"50\" alt=\"unwetter\" /></div>";
  $unwetterText .= "<div class=\"top-space-mid col-3-4\">";
  $unwetterText .= ReadingsVal("Untwetterzentrale",$warnnumber,"");
  $unwetterText .= "</div></div><div class=\"newline\">&nbsp </div>";
  $warnnumber = "";
  $warnbild ="";
}
$unwetterText .= "</div>";
if ($countWarn == 0) {
  $unwetterText = "&nbsp; ";
}
fhem "set unwetterText ". $unwetterText;
}

1;