Plots per Mail/WhatsApp etc versenden

Begonnen von Blackmore, 06 Juli 2015, 13:36:46

Vorheriges Thema - Nächstes Thema

Blackmore

hi,

ich hab mir einen Plot erstellt, welcher mir alle mir wichtigen Temperaturen zeigt...

nun möchte ich diesen Plot gerne per WhatsApp verschicken lassen...

eigene Bilder und Nachrichten kann ich schon direkt verschicken...

aber wie mache ich das mit den Plots, die ja beim Seitenaufruf dynamisch erzeugt werden???

Danke für Eure Hilfe...

Gruß Blacky

JoWiemann

Hallo Blacky,

erster Ansatz:
- RSS definieren (siehe hierzu das sehr gute Tutorial von Betateilchen im Forum - http://forum.fhem.de/index.php/topic,22520.0.html)
- Über ein AT das RSS als JPEG abrufen und dann über WhatsApp versenden.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

JoWiemann

#2
Hallo Blacky,

habe jetzt mal etwas gebastelt. In die 99_myUtils muss folgender Code:

sub Plot2JPEG($$) {

  use GD;

  my ($myPlot, $myFile) = @_;

  my $pngImg = plotAsPng($myPlot);

  if(!defined($pngImg) or ($pngImg eq "")) {
    Log3 "Plot2JPEG", 2, "Plot2JPEG: error while creating image from $myPlot";
    return;
  };

  my $image = GD::Image->newFromPngData($pngImg) or die Log3 "Plot2JPEG", 2, "Plot2JPEG: error while creating GD::Instance from $myPlot";

  my $jpeg = $image->jpeg;

  open (FILE, ">" . $myFile) or die Log3 "Plot2JPEG", 2, "Plot2JPEG: error while openeing " . $myFile;
  print FILE $jpeg;
  close (FILE);

  Log3 "Plot2JPEG", 2, "Plot2JPEG: jpeg image created from $myPlot in " . $myFile;

  return;
}


In Fhem kannst Du dann folgendes definieren:

Ein neues Device, dass jede Minute aufgerufen wird
define PlotWhatsApp at +*00:01:00 { }

Im DEF des Diveces trägst Du dann zwischen den { } folgendes ein:

Plot2JPEG("Name des Plots", "/opt/fhem/log/wetter.jpg");
fhem("set WhatsAppDevice image /opt/fhem/log/wetter.jpg");

Grüße Jörg


Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Blackmore

#3
bei myUtils kommt dann folgende Meldung:

Can't locate GD.pm in @INC (you may need to install the GD module) (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/99_myUtils.pm line 14. BEGIN failed--compilation aborted at ./FHEM/99_myUtils.pm line 14.


was muss ich da nachinstallieren???

::EDITH::
Damit gehts jetzt:
sudo apt-get install libgd2-xpm-dev libgd-graph-perl libgd-text-perl libimage-librsvg-perl libxml-simple-perl

Jedoch im Moment noch nur ein schwarzes BIld... ich gucke weiter...

::EDITH2::
jetzt sehe ich die Kurve, jedoch ohne x/y-Achsenbeschriftung, etc pp...

JoWiemann

sudo apt-get install libgd-graph-perl
sudo apt-get install libgd-text-perl - optional, aber dringend empfohlen, wenn Du auch irgendwann RSS benutzen möchtest
sudo apt-get install libimage-librsvg-perl - optional, aber dringend empfohlen, wenn Du auch irgendwann RSS benutzen möchtest


Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Ma_Bo

Hallo, bei mir funktioniert das mit dem Plot2Jpeg wunderbar.
Ich bekomme jetzt aber jedesmal einen Eintrag ins Log, kann ich dies irgendwie unterbinden ?

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

JoWiemann

Zitat von: Ma_Bo am 12 Januar 2016, 18:58:11
Hallo, bei mir funktioniert das mit dem Plot2Jpeg wunderbar.
Ich bekomme jetzt aber jedesmal einen Eintrag ins Log, kann ich dies irgendwie unterbinden ?

Grüße Marcel

Hallo,

ändere folgende Codezeile

Log3 "Plot2JPEG", 2, "Plot2JPEG: jpeg image created from $myPlot in " . $myFile;


in


Log3 "Plot2JPEG", 4, "Plot2JPEG: jpeg image created from $myPlot in " . $myFile;


Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Ma_Bo

NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Ma_Bo

#8
Und gleich noch ein paar Fragen.

Ist es möglich, die Beschriftung, welche am Rand des Plot´s zu sehen ist, mit in dieses Bild zu bekommen ?
Kann man auch mehrere Plot´s als ein Bild zusammenfügen ?
Kann man den plot auch so einstellen, dass er nicht von 0 bis 0 Uhr anzeigt, sondern von der aktuellen Zeit und dann 24 Stunden zurück ?
Evtl. auch eine "Zoomstufe" ?

Grüße Marcel
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

JoWiemann

Zitat von: Ma_Bo am 13 Januar 2016, 15:45:14
Ist es möglich, die Beschriftung, welche am Rand des Plot´s zu sehen ist, mit in dieses Bild zu bekommen ?
Die Beschriftung wird doch mitgenommen. Ist ja auch Bestandteil des Plots.

Zitat von: Ma_Bo am 13 Januar 2016, 15:45:14
Kann man auch mehrere Plot´s als ein Bild zusammenfügen ?
Keine Ahnung.

Zitat von: Ma_Bo am 13 Januar 2016, 15:45:14
Kann man den plot auch so einstellen, dass er nicht von 0 bis 0 Uhr anzeigt, sondern von der aktuellen Zeit und dann 24 Stunden zurück ?
Hierfür gibt es für jeden Plot die Attribute endPlotNow, endPlotToDay

Zitat von: Ma_Bo am 13 Januar 2016, 15:45:14
Evtl. auch eine "Zoomstufe" ?
Du kannst für jeden definierten Plot das Attribut plotsize setzen

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Ma_Bo

Also bei mir wird die Beschriftung, welche im Plot steht nur angezeigt, die Uhrzeit und die Einheit bzw. der Wert, welcher rechts und links neben dem Plot steht, wird nicht angezeigt.

Ok, mit den Plot Attributen beschäftige ich nicht jetzt mal.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

Ma_Bo

Hier kann man sehen, dass keine Beschriftung dabei ist.
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.

JoWiemann

Hallo,

sieht bei mir anders aus.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

mahowi

Also bei mir sieht das Bild genauso aus wie der Plot in fhem.

Meine DEF für den Versand sieht genauso aus wie von Jörg beschrieben:
+*03:00:00 {
Plot2JPEG("max_tempchart", "/opt/fhem/log/maxtemp.jpg");
fhem("set S5 image /opt/fhem/log/maxtemp.jpg");
}

Den Code für die myUtils habe ich auch von ihm übernommen.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Ma_Bo

Ist die Schrift bei dir in fhem, wenn du über WEB nachschaust, auch in weiß? Also die Zeitbeschreibung usw...
NUC mit FHEM, HM Heizungsthermostate, HM Wandthermostate, Intertechno Funksteckdosen, 10" Tablet als Wanddisplay, KeyMatic, Fensterkontakte, Fensterkontakte umgebaut als Wassermelder und Briefkastenmelder, Aussenthermostat, Anwesenheitssteuerung über Fritz Box, Google Home usw. usw.