neues modul 37_NotifyAndroidTV.pm

Begonnen von justme1968, 20 Januar 2018, 23:32:06

Vorheriges Thema - Nächstes Thema

cpet

Ah alles klar dann wird es morgen ja wohl wieder funzen ;D

Vielen Dank :)
RPI 3 mit 1x SCC 868MHz für FS20; 1x SCC 433MHz SlowRF; 1x SCC 868MHz Homematic;
Rollladen-/Markisensteuerung, Fußboden-Heizungssteuerung 
diverse Licht-/Schaltungssteuerungen
ALEXA-Integration;
Statusmeldungen über  Fernseher

Schlimbo

Guten Abend zusammen,

Habe mir gerade überlegt wie ich einen Plot auf dem TV anzeigen könnte.
Es gibt ja die Funktion "plotAsPng", die einen Plot in ein Image wandelt, weiß aber noch nicht, wie ich das am besten an das Modul übergeben könnte, da die Funktion das Image im Binär Format zurück gibt.
Hat hierzu jemand eine Idee?

justme1968

aktuell muss du das bild irgendwohin schreiben und dann per image oder imageurl angeben.

ich schaue mal ob mir noch etwas besseres einfällt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

mumpitzstuff

Mit einem Netzlaufwerk könnte es gehen.

open FILE, "> <netzlaufwerk>/plot.png";
binmode FILE;
print FILE plotAsPng("SVG_FileLog_plot");
close FILE;

Und dann die URL des Netzlaufwerks verwenden.

justme1968

warum netzlaufwerk? lokal auf dem fhem rechner nach /tmp wenn es als image eingebunden werden soll oder nach .../www/images wenn es per fhemweb und imageurl ausgeliefert werden soll.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Schlimbo

#50
Interessant, danke schon mal für eure Antworten.
funktioniert:

sub sendPlotToTV($$){
  my ($name,$plot) = @_;
  open(my $file, '>', "./www/images/plot.png");
  binmode $file;
  print $file plotAsPng("$plot");
  close $file;
  fhem "set $name msg imageurl=http://192.168.1.2:8083/fhem/www/images/plot.png type=titleonly width=extrawide position=center"
}


justme1968

ab morgen kann man image={<perlCode>} verwenden.

d.h. es geht z.b. so etwas:set <name> msg image={plotAsPng('meinPlot')}

die variante mit rausschreiben und imageurl angeben ist aber zu bevorzugen weil sie fhem weniger blockiert.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Schlimbo

#52
Das ist ja super, funktioniert bestens.
Warum blockiert das eigentlich FHEM, die Kommunikation läuft doch nonblocking ab, oder?

Gerade noch mal mit dem Type Parameter getestet, also "noicon" ist eindeutig "noimage", denn bei:
set notifyShieldTV msg image={plotAsPng('SVG_CO2_whz')} type=noicon width=extrawide
Wird das Image nicht angezeigt, das Icon aber schon.

Momentan wird das Icon immer mitgesendet, könntest du das bitte bei den Typen "nameonly" und "titleonly" unterbinden?

Edit:
Type "titleonly" funktioniert noch nicht:
set notifyShieldTV msg type=titleonly title=Test schafft es nicht durch die "set" Prüfung.

justme1968

das einlesen des image und das erzeugen des plot blockiert fhem. nur das ausliefern passiert nonblocking.

wenn das file schon im filesystem liegt und nicht eingelesen werden muss weil fhem es per imagurl direkt ausliefern kann ist es am besten. wenn es erzeugt und rausgeschrieben werden muss ist es egal. bei plotAsPng ist es auch egal.

ich habe die beiden vorgeschlagenen änderungen noch eingecheckt:
- noicon im noimage umbenannt
- das icon wird bei type nameonly und titleonly nicht mehr mit geschickt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Schlimbo

#54
Wow du bist ja schnell, hattest du meinen Nachtrag noch gesehen?
Zitat von: Schlimbo am 09 Februar 2018, 13:37:48
Edit:
Type "titleonly" funktioniert noch nicht:
set notifyShieldTV msg type=titleonly title=Test schafft es nicht durch die "set" Prüfung.

justme1968

nein :) natürlich nicht.

ich habe die parameter prüfung jetzt komplett rausgeschmissen. der hilfe text wird nur noch beiset <name> msg ?angezeigt.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Schlimbo

Zitat von: Schlimbo am 09 Februar 2018, 13:37:48
Momentan wird das Icon immer mitgesendet, könntest du das bitte bei den Typen "nameonly" und "titleonly" unterbinden?
Sorry, da hatte ich ja meine eigene Aussage vergessen :-\
Zitat von: Schlimbo am 07 Februar 2018, 22:31:44
Meine Teste haben ergeben, der einzige Parameter der zwingend benötigt wird ist "icon", dieser kann jedoch auch entfallen, wenn stattdessen ein "image" oder "imageurl" Parameter vorhanden ist.
Ein Image/Icon wird ja zwingend benötigt, durch die Unterbindung bei  "nameonly"|"titleonly" kann icon ja jetzt nicht mehr verwendet werden und die beiden Typen funktionieren somit nur noch mit Image Nachrichten.

Würdest du das bitte noch mal anpassen? So das bei Nachrichten mit Parameter "Image" oder "imageurl" das Icon optional ist und bei allen anderen doch immer mit Icon gesendet wird.

justme1968

ich hab da mal was eingecheckt :)

probier bitte ob es so funktioniert.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

justme1968

sorry. ich musste das wieder zurück nehmen. wenn ich bei image und titleonly das icon nicht mit schicke wird nichts angezeigt. d.h. ich muss das icon senden auch wenn es nicht angezeigt wird.

wann genau stört dich das icon? was macht die app anders?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Schlimbo

Zitat von: justme1968 am 09 Februar 2018, 21:37:41
wenn ich bei image und titleonly das icon nicht mit schicke wird nichts angezeigt. d.h. ich muss das icon senden auch wenn es nicht angezeigt wird.
Das ist seltsam, bei mir funktioniert das:
set notifyShieldTV msg type=titleonly title=Test image=./www/images/plot.png
Wird bei mir korrekt ohne Icon angezeigt

Das Icon stört mich hauptsächlich bei den Plots.