Unwetterzentrale in TabletUi

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

Vorheriges Thema - Nächstes Thema

Frank13

Hallo allerseits!

Ich stehe gerade etwas auf dem Schlauch mit der Einbindung der Unwetterzentrale in TabletUI:

Ich habe mit dem Modul UWZ die Unwetterzentrale eingerichtet, die detaillierte Anzeige funktioniert unter der "normalen" FHEM-Seite auch wunderbar.
Wie bekomme ich diese Anzeige jetzt am elegantesten ins TabletUI eingebunden? Gibt es da evtl. einen iframe? Kann ich den irgendwie erzeugen? Das direkte Auslesen der Readings (Warm_0_LongText etc.) scheitert an der variablen Anzahl der Warnungen...

Hat da jemand eine Idee?

Viele Grüße

Frank

Torben

Hallo,
Ich habe in der 99_myUtils folgende Funktion eingebaut:

sub unwetter()
{
my $countWarn = ReadingsVal("unwetterzentrale","WarnCount","");
my $unwetterText = "<div class=\"top-space-min inline\"><div><img src=\"tablet/images/unwetter.png\" width=\"250\" height=\"30\" alt=\"unwetter\" /></div>";
my $warnnumber = "";
for(my $i = 0; $i < $countWarn; $i++) {
  $warnnumber = "Warn_".$i."_ShortText";
  $unwetterText .= "<div class=\"top-space-mid\">";
  $unwetterText .= ReadingsVal("unwetterzentrale",$warnnumber,"");
  $unwetterText .= "</div>";
  $warnnumber = "";
}
$unwetterText .= "</div>";
if ($countWarn == 0) {
  $unwetterText = "&nbsp; ";
}
fhem "set unwetterText ". $unwetterText;
}

Und den Dummy unwetterText stelle ich dann dar.

Gruß
Torben

Frank13

Hi!

Das ist schonmal ein guter Ansatz. Dann kann ich mir den Text passend zusammenbasteln...

Danke!

Frank

Andy89

#3
Servus Torben,
danke für deine Lösung. Ein UnwetterText stand auch auf meiner ToDo-Liste für FTUI. Dank dir kann ich mir das nun fast sparen =) Top! Das einzige, was ich an der Subroutine verändert habe ist das Bildchen. Ich hol mir stattdessen für jede Warnung das richtige Bild mittels der IconURL.
Danke trotzdem für die riesen Erleichterung und super Vorlage!!!

Beste Grüße
Andy

P.s.: hier mein veränderter Code mit Bildchen und im Anhang ein Bild, wie's bei mir aussieht:

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;
}
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Homer1978

#4
und wie definiere ich jetzt den dummy ?
Könnt ihr mir eure Einträge in fhem-tablet posten ? Wie habt ihr die abgerufen ? Als Label?
FHEM seit 2016, aktuell auf einem Nuc installiert. Max! Heizungsteuerung mit 23 Geräten, diverse ESP Eigenbauten und Culs im Einsatz.

Andy89

#5
Zitat von: Homer1978 am 24 Februar 2016, 22:21:47
und wie definiere ich jetzt den dummy ?
define unwetterText dummy

P.s.: ja ich habs als Label definiert:

<li data-row="2" data-col="4" data-sizex="4" data-sizey="4"
class="halbTransparent">
<header>Unwetterwarnungen</header>
<br>
<div data-type="label" data-device="unwetterText" data-get="STATE"></div>
</li>


zusätzlich dazu muss du noch ein DOIF oder notify definieren, was den dummy aktualisiert, sobald sich WarnCount ändert  ;)
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Homer1978

danke mit dem define, ich hatte das richtig, aber es ist typisch wenn man was probieren will keine Warung vorhanden :-)
trotzdem danke
FHEM seit 2016, aktuell auf einem Nuc installiert. Max! Heizungsteuerung mit 23 Geräten, diverse ESP Eigenbauten und Culs im Einsatz.

kvo1

Danke an alle, coole Idee!
Man könnte das ja auch einfach nur als popup machen, als eine Meldung in einem Popupfenster wenn überhaupt eine Unwetterwarung
vorhanden ist (Count > 0)  ;)
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Homer1978

Zitat von: Andy89 am 24 Februar 2016, 22:30:46

zusätzlich dazu muss du noch ein DOIF oder notify definieren, was den dummy aktualisiert, sobald sich WarnCount ändert  ;)

wenn das so einfach wäre, ich bin laie was das fhem und tablet ui angeht, bisher alles durch die gutenberg-methode (copy&paste) hinbekommen.
wäre dankbar wenn ihr mir unter die arme greift
FHEM seit 2016, aktuell auf einem Nuc installiert. Max! Heizungsteuerung mit 23 Geräten, diverse ESP Eigenbauten und Culs im Einsatz.

Andy89

Servus Homer1978,
hier der Code für ein DOIF:
define di_UWZ DOIF ([Untwetterzentrale:WarnCount]) ({unwetter()})

Beste Grüße
Andy
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

kvo1

notify (ungetestet )

define no_unwetterText notify Unwetterzentrale:WarnCount.* {unwetter()}
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Andy89

nur ein kleiner Hinweis von mir. Du brauchst entweder ein notify oder ein DOIF. Beides gleichzeitig brauchst du nicht  ;)
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Homer1978

irgendwie klappt das alles nicht so. Ich habe jetzt ein Warnmeldung, der unwetterText wird auch ordentlich via doif gefüllt aber in ftui wird nichts angezeigt. wenn ich den dummy mit irgendwas fülle stellt er den state auch ordentlich da, fülle ich ihn testweise oder automatisch mit einer html syntax kommt nichts an. was mache ich falsch und ihr richtig ?

ich habe das mal als screenshot festgehalten.
FHEM seit 2016, aktuell auf einem Nuc installiert. Max! Heizungsteuerung mit 23 Geräten, diverse ESP Eigenbauten und Culs im Einsatz.

brmpfl

Moin,

hat jemand zufällig eine Idee, wie ich an das Modul UWZ komme?

:)
Hajo

Homer1978

Zitat von: brmpfl am 06 März 2016, 19:01:36
Moin,

hat jemand zufällig eine Idee, wie ich an das Modul UWZ komme?

den orginal tread finde ich leider nicht mehr, hatte es mir gespeichert
FHEM seit 2016, aktuell auf einem Nuc installiert. Max! Heizungsteuerung mit 23 Geräten, diverse ESP Eigenbauten und Culs im Einsatz.