"Linkgenerierung" zum aktuellen Tagesschau 100 Sekunden Video

Begonnen von jojoja, 08 Dezember 2015, 22:22:42

Vorheriges Thema - Nächstes Thema

accessburn

Internals:
   DEF        htmlCode { '<video width="320" height="240"><source src="' . ReadingsVal("rss_tagesschau100","Link", 0) . '" type="video/mp4"></video>' }
   LINK       { '<video width="320" height="240"><source src="' . ReadingsVal("rss_tagesschau100","Link", 0) . '" type="video/mp4"></video>' }
   NAME       tagesschau100_Weblink
   NR         420
   STATE      initialized
   TYPE       weblink
   WLTYPE     htmlCode


<div data-type="label" data-device="tagesschau100_Weblink" data-get="LINK"></div>

Das war wohl nix :-p
Habe versucht das Reading "LINK" in ftui einzubinden, aber außer { ' ' } kommt nix an. Die Playerkontrollen sind da aber das war es schon.
Verstehe es nicht  :'(

Trotzdem danke für den Ansatz hartenthaler.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

hartenthaler

Wenn ich Deinen html-code verwende, dann geht es bei mir auch nicht.
'<video width="320" height="240"><source src="' . ReadingsVal("rss_tagesschau100","Link", 0) . '" type="video/mp4"></video>'
Warum verwendest Du nicht meinen?
<table><tr><td><iframe src="'.ReadingsVal("rss_tagesschau100","Link", 0).'" width="512" height="288">iframes disabled</iframe></td></tr></table>
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

accessburn

Iframe wollte ich eigentlich nicht nutzen. <Video> von HTML5 macht seinen Dienst eigentlich immer recht gut. Verstehe nicht warum es so nicht gehen sollte.
Wezzy Rpi2b> FHEM, Elro, Intenso, FTUI, Jeelink v3, Max!Cube, Fire5, Foscam, NAS, Fritz!Box + Fon, Max!Wandthermostat, Amazon Echo
Wezzy Rp3b> OctoPi
Jessie Rp3b> UPNP, NAS, Pi-Hole

Heitum

Zum Video konvertieren in das richtige Format nutze ich meistens http://www.mp3party.cc wenn es um Youtube Videos geht.

Tyllux

#19
Wer nicht die 100 Sekunden-Variante, sondern die volle Länge sucht/bevorzugt, kann dies auch im Podcast-Archiv direkt als mp3 laden:

http://www.tagesschau.de/download/podcast/

Ich versuche noch die Logik der dort verwendeten Dateinamen zu verstehen, um diese automatisiert herunterzuladen - stehe aber (noch) auf dem Schlauch. Wenn ihr einen Tipp habt .... ;)

Ronn

Zitat von: jojoja am 04 Oktober 2016, 16:37:03
Ich habe inzwischen auf HTTPMOD umgestellt, weil das mir fehlersicherer vorkommt. Die oben genannte Funktion ist dafür nicht notwendig.

da ich das Video in wav konvertiere um es auf Sonos zu wiedergeben starte ich mit diesem Notify:
[code]define Sonos_TagesschauDownloadStart notify rss_tagesschau100:Link:.* {
system("/opt/fhem/tagesschau/tagesschau.sh ".ReadingsVal("rss_tagesschau100", "Link", ""));
}


Ich versuche dieses notify zu implementieren. Jedoch kommt folgende Meldung


Missing right curly or square bracket at (eval 4901) line 1, at end of line
syntax error at (eval 4901) line 1, at EOF


Das sollte ja eigentlich funktionieren. Aber irgendwo fehlt wohl ne Klammer? Aber wo?

jojoja

Sollte so passen, nun kommt die übliche Frage: direkt in fhem.cfg editiert? Ansonsten mal die geschweiften Klammern und die Zeichen samt Zeilenumbruch rauslöschen und wieder reinschreiben, damit Copy/Paste Fehler ausgeschlossen werden können.
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

Ronn

Hey,

Vielen Dank für deine Rückmeldung. Also irgendwie bin ich wohl zu blöd dafür. Dein Tipp mit ,,grade ziehen" der Formel hat funktioniert. Ich hatte das Enter-Zeichen vergessen zu löschen.  :( Ich habe nun die ganzen Formeln eingefügt. Aber irgendwie bekomme ich bekomme ich die Sache nicht zum laufen:


deftmod rss_tagesschau100 HTTPMOD http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden 60
attr rss_tagesschau100 userattr event-on-change-reading readingsName_Link readingsRegex_Link stateFormat
attr rss_tagesschau100 event-on-change-reading Link
attr rss_tagesschau100 readingsName_Link Link
attr rss_tagesschau100 readingsRegex_Link <enclosure url="(.*)" length
attr rss_tagesschau100 room Testplattform
attr rss_tagesschau100 stateFormat Link


Notify

deftmod Sonos_TagesschauDownloadStart notify rss_tagesschau100:Link:.* { system("/opt/fhem/tagesschau/tagesschau.sh" .ReadingsVal("rss_tagesschau100", "Link", ""));; }


Tagesschau.sh

#echo Tagesschau in 100 Sekunden:
#echo Video mit dem Link $1 wird heruntergeladen...
wget $1 --output-document=tagesschau100sek.mp4  --quiet

#echo Wird in .mp3 konvertiert...
avconv -loglevel quiet -i $1 -vn -y /opt/fhem/tagesschau/tagesschau100sek.mp3


Die 99_myUtils.pm ist mit den Daten ausm ersten Post befüllt.

Was mache ich falsch?

jojoja

Dann müssen wir sehen, wo der Haken liegt.
Die Funktion für myUtils.pm brauchst du nicht, wird ja auch nirgends aufgerufen.
Wie sieht's denn aus mit:
- HTTMOD, kommen Aktualisierungen, ändert sich das Reading?
- Löst das Notify aus?
- Funktioniert das Skript aus der Shell heraus? Aufruf wäre mit:
/opt/fhem/tagesschau/tagesschau.sh <aktueller Link>
- Liegt das Skript im richtigen Ordner?
- Hat fhem die Berechtigung für das Skript? (Benutzer darf ausführen etc.)
Ein Blick ins Logfile schadet sicherlich auch nicht :)

Viele Grüße
Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

Ronn

Ich versuche mal deine Fragen zu beantworten. Anbei mal ein List:


Internals:
   BUSY       0
   CHANGED   
   DEF        http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden 60
   FUUID      5cebbbef-f33f-0fee-4079-768bb36fd7b2d053
   Interval   60
   LASTSEND   1559075062.05449
   MainURL    http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden
   ModuleVersion 3.5.9 - 13.2.2019
   NAME       rss_tagesschau100
   NOTIFYDEV  global
   NR         542
   NTFY_ORDER 50-rss_tagesschau100
   STATE      http://media.tagesschau.de/video/100s/2019/0528/TV-100s-2105.webm.h264.mp4
   TRIGGERTIME 1559075122.05147
   TRIGGERTIME_FMT 2019-05-28 22:25:22
   TYPE       HTTPMOD
   addr       http://www.tagesschau.de:80
   auth       0
   buf       
   code       200
   compress   1
   conn       
   data       
   displayurl http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden/
   header     
   host       www.tagesschau.de
   httpheader HTTP/1.0 200 OK
Server: Apache/2.4.18 (Ubuntu)
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Accept-Ranges: bytes
Content-Length: 977
Date: Tue, 28 May 2019 20:24:22 GMT
Connection: close
   httpversion 1.0
   hu_blocking 0
   hu_filecount 330
   hu_port    80
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /export/video-podcast/webm/tagesschau-in-100-sekunden/
   protocol   http
   redirects  1
   timeout    2
   url        http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden/
   value      0
   QUEUE:
   READINGS:
     2019-05-28 22:24:22   Link            http://media.tagesschau.de/video/100s/2019/0528/TV-100s-2105.webm.h264.mp4
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden
     value      0
   defptr:
     readingBase:
       Link       reading
     readingNum:
       Link       _Link
     readingOutdated:
     requestReadings:
       update:
         Link       reading _Link
   sslargs:
Attributes:
   event-on-change-reading Link
   readingsName_Link Link
   readingsRegex_Link <enclosure url="(.*)" length
   room       Testplattform
   stateFormat Link
   userattr   event-on-change-reading readingsName_Link readingsRegex_Link stateFormat

(Ist von gestern abend)

Soweit ich das sehe/verstehe wird der trigger minütlich ausgeführt. Als Reading steht ,,Link". Die Zeit dahinter ändert sich ebenfalls.

Notify. Bin ich ehrlich. Hab ich bis heute nicht wirklich verstanden wie ich das manuell testen kann oder irgendwie ,,kontrollieren" kann. Bin eher der DOIF Typ. Das versteh ich irgendwie besser.   :-[
Ich kann daher leider nicht so viel dazu sagen.

Ich habe das Skript jetzt aber mal ausführen lassen. Hatte als erstes nicht funktioniert. Habe dann $1 gegen den link ausgetauscht. Und nach dem Download wurde die mp3 erzeugt. Rechte vom Ordner sind auf 777 gestellt. Ordner Tagesschau, wo da Skript liegt, ist erstellt.

jojoja

#25
Probiers mal mit diesem Notify, der schreibende Pfad sollte natürlich zu deinem System passen. So kommt man sogar ohne Tagesschau.sh aus:
defmod Sonos_TagesschauDownloadStart notify rss_tagesschau100:Link:.* "ffmpeg -i $EVTPART1 -vn -loglevel quiet -y /media/SynologySonos/tagesschau100sek.wav"


Edit: Wenn $1 durch den Link ersetzt wird, wird auch immer nur dieser Link heruntergeladen :D Spielt aber (hoffentlich) eh keine Rolle mehr.
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

Ronn

Hey,

war die Tage jetzt etwas beschäftigt. Daher erst jetzt wieder ne Meldung von mir. Ich wollte nur kurz zurückgeben, dass es jetzt auch bei mir funktioniert. Entscheidend waren deine Fragen die du gestellt hattest. Im Endeffekt läuft es so wie du es auf der ersten Seite beschrieben hast. Keine Ahnung wo da der Fehler war (also ein Benutzerfehler :)) Aber deine Fragen haben mich dann auf die Richtige Spur geführt. Danke dafür. Und danke für den coolen Schnipsel. Einen schönen Tag allen noch :)

curt

@jojoja
Ich bin zu doof. :(


define rss_tagesschau100 HTTPMOD http://www.tagesschau.de/export/video-podcast/webm/tagesschau-in-100-sekunden/ 60
attr rss_tagesschau100 userattr event-on-change-reading readingsName_Link readingsRegex_Link stateFormat
attr rss_tagesschau100 event-on-change-reading Link
attr rss_tagesschau100 readingsName_Link Link
attr rss_tagesschau100 readingsRegex_Link <enclosure url="(.*)" length
attr rss_tagesschau100 stateFormat Link
attr rss_tagesschau100 room 05 Die Lage

define TagesschauDownloadStart notify rss_tagesschau100:Link:.* {system("/opt/fhem/tagesschau/tagesschau.sh ".ReadingsVal("rss_tagesschau100", "Link", ""))
attr TagesschauDownloadStart room 05 Die Lage



# cat /opt/fhem/tagesschau/tagesschau.sh
#echo Tagesschau in 100 Sekunden:
#echo Video mit dem Link $1 wird heruntergeladen...
wget $1 --output-document=tagesschau100sek.mp4  --quiet


Ich stelle mich echt zu doof an: Ich würde da ja nun erwarten, das in diesem (oder einem anderen Verzeichnis) ein mp4 rumliegt und ich mich anschließend damit rumärgere, dass irgendwie in FHEM nutzen zu können.

Aber da ist nirgendwo ein mp4 - was mache ich denn falsch?
RPI 4 - Jeelink HomeMatic Z-Wave

jojoja

@curt nimm mal aus den Zeilen "--quiet" und "-loglevel quiet" raus - dann sollten Logs im fhem Global log auftreten.
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

curt

Zitat von: jojoja am 15 Juli 2019, 18:25:48
@curt nimm mal aus den Zeilen "--quiet" und "-loglevel quiet" raus - dann sollten Logs im fhem Global log auftreten.

Soooo. Als erstes: Das war der ganz typische Schusselfehler, fehlende abschließende geschweifte Klammer. Das funktioniert nun - ging aber in /opt/fhem - auch im bash-Script korrigiert.

Ich habe noch Fragen:
* Ich konnte  "-loglevel quiet" nicht herausnehmen, da ich das gar nicht habe. Das führt mich zu der Frage - wo müsste das denn hin?

* Einbindung in FHEM, also die Standard-Weboberfläche: Wie habt ihr das denn gemacht? Als Link oder eingebettet? Da wäre euer Code als Beispiel sehr hilfreich.

Zur Frage FTUI: Da gibt es ein Video-Widget: https://wiki.fhem.de/wiki/FTUI_Widget_Video - ich habe das aber noch nicht getestet.
RPI 4 - Jeelink HomeMatic Z-Wave