Hauptmenü

Bild von Stau Kamera

Begonnen von rohlande, 06 Juli 2017, 20:49:29

Vorheriges Thema - Nächstes Thema

rohlande

Hallo Experten,

1. ich versuche das Bild folgender Adresse in Fhem einzubinden --> https://www.svz-bw.de/kamera/ftpdata/B01/B01_gross.jpg?1499363236?1499364016929
2. ich möchte dieses mit Telegram empfangen können nachdem es in fhem ist.

Habe es mit IPCAM und Weblink versucht.
Leider kein Erfolg.

Kann mir jemand weiterhelfen???
Achso ich habe das Thema mit Telegram und Netzwerk Cam erfolgreich am laufen unter dem IPCAM Modul.
Vielleicht habe ich hier auch einfach eine falsche Vorstellung von der Umsetzung.

Vielen Dank vorab!

Gruss Denny
HostSystem: Synology DS918 | FHEM im Docker Version: 6.0-s22528_v2.2.4 (dedizierte IP Adresse) | MQTT_Broker auf DS918 NAS | MQTT_FHEM | TASMOTA_DEVICE | SSChatBot | SSCam | LaMetric | FBAHAHTTP | CUL | SONOS | HUEBridge (deCONZ) Zigbee | FB_CALLMONITOR | InfluxDBLogger

Amenophis86

Bei mir geht der Link ja schon alleine nicht.

Du kannst theoretisch das Bild runterladen und dir dann schicken. Aber was ich nicht verstehe ist, wieso du es dir schicken willst, wenn es eh im Internet ist? Schick dir doch den Link und klick drauf, oder leg ihn dir als Icon auf den Homescreen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

rohlande

#2
Probier mal den Link Bitte!
https://www.svz-bw.de/kamera/ftpdata/B01/B01_gross.jpg?1499370318  --> das ist der Link den man erhält wenn man die Eigenschaften im Firefox auswählt. Der zeigt es dann trotzdem an.

und das ist der Link welcher direkt funktioniert

https://www.svz-bw.de/fileadmin/templates/vizbw1/kameradetail.php?id=B01

Ich vermute es liegt am https..

Zu Deiner Frage: ich werde automatisch über den Traffic via TeleBot informiert zur bestimmten Zeit und ggf. Änderungen im Traffic. Das ganze soll jetzt zusätzlich ein Bild bekommen von kritischen Pkt, welche ich nicht EXTRA in der App aufrufen will bzw. während dem Autofahren nicht am Handy fummlen möchte. Es muss eine PopUp Info auf dem Display erscheinen sobald Telegram das Bild erhält.

VG

Denny
HostSystem: Synology DS918 | FHEM im Docker Version: 6.0-s22528_v2.2.4 (dedizierte IP Adresse) | MQTT_Broker auf DS918 NAS | MQTT_FHEM | TASMOTA_DEVICE | SSChatBot | SSCam | LaMetric | FBAHAHTTP | CUL | SONOS | HUEBridge (deCONZ) Zigbee | FB_CALLMONITOR | InfluxDBLogger

chris1284

Zitat von: rohlande am 06 Juli 2017, 21:48:48
Ich vermute es liegt am https..

ich denke ehr das die nummer sich stehts ändert und nie die selbe ist. die seite selber wird das verzeichnis auswertenbzw immer das letzte erzeugte anzeigen.
man müsste also immer den aktuellen link zum bild evtl per httpmod in erfahrung bringen und dann weiter verwenden

Amenophis86

Grund habe ich verstanden und kann ich nachvollziehen.

Erster Link geht nicht scheint wirklich generische zu sein, zweiter geht.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

steffen83

Ich bilde das gesamte wie folgt ab:

*14:50 { if($wday == 1 || $wday == 2 || $wday == 3 || $wday == 4 || $wday == 5 && "1" eq "1")
{
my $Fahrzeit = ReadingsVal("FahrzeitDoBot","Fahrminuten","");;
if($Fahrzeit >= 37){
                   fhem ("set TelegramBot _msg Die Heimfahrt dauert längert als sonst: $Fahrzeit Minuten");;
                   {if($Fahrzeit >= 40){
                                      system("wget http://z.avinotec.de/pepimage/20647998621647526396.jpg? -O /tmp/1.jpg");
                                      system("wget http://z.avinotec.de/pepimage/20576487911720533278.jpg?t=0 -O /tmp/2.jpg");
                                      fhem ("set TelegramBot sendPhoto /tmp/1.jpg");;
                                      fhem ("set TelegramBot sendPhoto /tmp/2.jpg");;
                                      }}
                   }
else{
    fhem ("set TelegramBot _msg Die Heimfahrt ist wie gewöhnlich $Fahrzeit Minuten");;
    }
   
}
}
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

hschuett

#6
Hallo,
der Parameter am Ende des Links ist praktisch "funktionslos", er "erzwingt" lediglich, dass z.B. der Browser das Bild jedesmal neu vom Server lädt und nicht den eigenen Cache verwendet.
Habe mir per weblink Bilder von Verkehrskameras in die FHEM-Oberfläche eingebaut, die sich regelmäßig autom. aktualisieren bzw. bei Klick auf das jeweilige Bild.
http://verkehr.rlp.de/syncdata/cam/340/thumb_640x480.jpg?'+Math.random()
Lasse mir den Parameter am Ende des Links einfach per random Funktion generieren, damit wird das .JPG jedesmal neu vom Server geholt. Das Verkehrsbild auf dem Server wird alle x Minuten unter gleichem Dateinamen aktualisiert.
Da der oben bereitgestellte Link sehr ähnlich ist, nehme ich an dass das zufällige Setzen des Parameters auch bei Dir funktionieren wird.

Der gesamte HTML-Code für den FHEM weblink sieht wie folgt aus:
<img src="http://verkehr.rlp.de/syncdata/cam/340/thumb_640x480.jpg?0.5637138095432244" width="640" height="480" title="Klick: aktualisieren" id="340" onclick="this.src=this.src.replace(/(\?\d\.)(\d)*$/, '?'+Math.random())" onload="setInterval(function() { document.getElementById(340).src='http://verkehr.rlp.de/syncdata/cam/340/thumb_640x480.jpg?'+Math.random() },120000)">

Grüße, Harald

Markus M.

Falsch.

Der letzte Part ist der Unix Timestamp des aktuellen Bilds und muss stimmen.
Da es immer nur ein aktuelles Bild gibt und alte Bilder nicht vorgehalten werden, ist immer nur genau eine Zahl gültig.

Die einfachste Methode ist wohl, den aktuellen Timestamp jeweils aus der HTML Seite auszulesen und dann sofort damit das Bild zu laden.
Aktuell weder Smarthome noch FHEM vorhanden

rohlande

Hallo Zusammen,

Vielen Dank für die vielen Tipps und Eure Mühen. Das Forum ist echt immer wieder Klasse.
Ich werde es testen und hier ein Feedback einstellen.

VG Denny

HostSystem: Synology DS918 | FHEM im Docker Version: 6.0-s22528_v2.2.4 (dedizierte IP Adresse) | MQTT_Broker auf DS918 NAS | MQTT_FHEM | TASMOTA_DEVICE | SSChatBot | SSCam | LaMetric | FBAHAHTTP | CUL | SONOS | HUEBridge (deCONZ) Zigbee | FB_CALLMONITOR | InfluxDBLogger

hschuett

#9
var timeInMs = Date.now();
alert(timeInMs);


UNIX Timestamp in JavaScript könnte über Date.now() ermittelt werden.
Wenn man nun diesen Parameter ans Ende der URL hängt, klappt es evtl. - vielleicht einen Versuch wert...
https://www.svz-bw.de/kamera/ftpdata/B01/B01_gross.jpg?+Date.now()

Evtl. führt aber auch das nicht zum Ziel, da der URL Parameter zwar nicht am eigentlichen Dateinamen der JPG hängt, aber doch irgendwie den Aufruf des Bildes einschränkt. Wenn der Timestamp genau der von der Seite vorgegebene sein muss, dann bleibt evtl. nur das Auslesen (per HTML Parser) übrig.

rohlande

Zitat von: hschuett am 07 Juli 2017, 12:37:16
Hallo,
der Parameter am Ende des Links ist praktisch "funktionslos", er "erzwingt" lediglich, dass z.B. der Browser das Bild jedesmal neu vom Server lädt und nicht den eigenen Cache verwendet.
Habe mir per weblink Bilder von Verkehrskameras in die FHEM-Oberfläche eingebaut, die sich regelmäßig autom. aktualisieren bzw. bei Klick auf das jeweilige Bild.
http://verkehr.rlp.de/syncdata/cam/340/thumb_640x480.jpg?'+Math.random()
Lasse mir den Parameter am Ende des Links einfach per random Funktion generieren, damit wird das .JPG jedesmal neu vom Server geholt. Das Verkehrsbild auf dem Server wird alle x Minuten unter gleichem Dateinamen aktualisiert.
Da der oben bereitgestellte Link sehr ähnlich ist, nehme ich an dass das zufällige Setzen des Parameters auch bei Dir funktionieren wird.

Der gesamte HTML-Code für den FHEM weblink sieht wie folgt aus:
<img src="http://verkehr.rlp.de/syncdata/cam/340/thumb_640x480.jpg?0.5637138095432244" width="640" height="480" title="Klick: aktualisieren" id="340" onclick="this.src=this.src.replace(/(\?\d\.)(\d)*$/, '?'+Math.random())" onload="setInterval(function() { document.getElementById(340).src='http://verkehr.rlp.de/syncdata/cam/340/thumb_640x480.jpg?'+Math.random() },120000)">

Grüße, Harald

Vielen Dank für den Tipp.
Leider funktioniert das nicht mit HTTPS

define A8_SVZ_CAM weblink htmlCode <img src="https://www.svz-bw.de/fileadmin/templates/vizbw1/kameradetail.php?id=B01" width="640" height="480" title="Klick: aktualisieren" id="B01" onclick="this.src=this.src.replace(/(\?\d\.)(\d)*$/, '?'+Math.random())" onload="setInterval(function() { document.getElementById(B01).src='https://www.svz-bw.de/fileadmin/templates/vizbw1/kameradetail.php?id=B01'+Math.random() },120000)">

VG Denny
HostSystem: Synology DS918 | FHEM im Docker Version: 6.0-s22528_v2.2.4 (dedizierte IP Adresse) | MQTT_Broker auf DS918 NAS | MQTT_FHEM | TASMOTA_DEVICE | SSChatBot | SSCam | LaMetric | FBAHAHTTP | CUL | SONOS | HUEBridge (deCONZ) Zigbee | FB_CALLMONITOR | InfluxDBLogger

rohlande

Zitat von: steffen83 am 07 Juli 2017, 08:23:36
Ich bilde das gesamte wie folgt ab:

*14:50 { if($wday == 1 || $wday == 2 || $wday == 3 || $wday == 4 || $wday == 5 && "1" eq "1")
{
my $Fahrzeit = ReadingsVal("FahrzeitDoBot","Fahrminuten","");;
if($Fahrzeit >= 37){
                   fhem ("set TelegramBot _msg Die Heimfahrt dauert längert als sonst: $Fahrzeit Minuten");;
                   {if($Fahrzeit >= 40){
                                      system("wget http://z.avinotec.de/pepimage/20647998621647526396.jpg? -O /tmp/1.jpg");
                                      system("wget http://z.avinotec.de/pepimage/20576487911720533278.jpg?t=0 -O /tmp/2.jpg");
                                      fhem ("set TelegramBot sendPhoto /tmp/1.jpg");;
                                      fhem ("set TelegramBot sendPhoto /tmp/2.jpg");;
                                      }}
                   }
else{
    fhem ("set TelegramBot _msg Die Heimfahrt ist wie gewöhnlich $Fahrzeit Minuten");;
    }
   
}
}


Hallo und Vielen Dank für das notify Beispiel. Werde ich vielleicht woanders  einsetzen.
Leider geht auch wget nicht in Kombination mit der HTTPS URL der SVZ WebCam.

wget https://www.svz-bw.de/fileadmin/templates/vizbw1/kameradetail.php?id=B01
--2017-07-11 21:13:54--  https://www.svz-bw.de/fileadmin/templates/vizbw1/kameradetail.php?id=B01
Auflösen des Hostnamens »www.svz-bw.de (www.svz-bw.de)« ... 193.197.148.118
Verbindungsaufbau zu www.svz-bw.de (www.svz-bw.de)|193.197.148.118|:443 ... verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet ... 200 OK
Länge: 3455 (3,4K) [text/html]
Wird in »»kameradetail.php?id=B01«« gespeichert.

kameradetail.php?id=B01             100%[================================================================>]   3,37K  --.-KB/s    in 0s     

2017-07-11 21:13:54 (11,2 MB/s) - »kameradetail.php?id=B01« gespeichert [3455/3455]


Es wird nicht wirklich ein Bild abgelegt sondern eine leere Datei.
Habe auch mit -r und level herumgespielt. leider ohne Erfolg. Ich bekomme das Bild nicht extrahiert.

VG Denny
HostSystem: Synology DS918 | FHEM im Docker Version: 6.0-s22528_v2.2.4 (dedizierte IP Adresse) | MQTT_Broker auf DS918 NAS | MQTT_FHEM | TASMOTA_DEVICE | SSChatBot | SSCam | LaMetric | FBAHAHTTP | CUL | SONOS | HUEBridge (deCONZ) Zigbee | FB_CALLMONITOR | InfluxDBLogger

rohlande

#12
Hier noch ein Auszug aus dem HTML Coder der Seite:

<div id="header">
  <div id="headerleft"></div>
</div>

<div id="centercontent">
<div id="webcamtitle"><h1>A8 Pfinztalbrücke (Remchingen-Nöttingen) Blickrichtung Karlsruhe</h1></div>
<div id="webcamimage"><img id='img1' src='/kamera/ftpdata/B01/B01_gross.jpg?1499802279' alt='webcam'/></div>
<div id="webcamfooter">
   <img src="images/icon_drucken.gif" width="12" height="9" alt="drucken" />
      <a href="#" target="_blank" onClick="window.print(); return false;"><strong>Seite drucken</strong></a>
     <!-- <a href="kamera.1.html?&amp;L=0&amp;webcamid=S081&amp;webcamtitle=A8%20Albaufstieg%20Blickrichtung%20Stuttgart" target="_blank" onClick="openPrintWindow(this.href, this.target); return false;"><strong>Seite drucken</strong></a>
   &nbsp;&nbsp; -->
   <img src="images/icon_schliessen.gif" width="11" height="9" alt="schliessen" />
   <a href="javascript:self.close()" title="Diese Funktion ben&ouml;tigt JavaScript">
     <strong>Fenster schlie&szlig;en</strong>
   </a>
</div>
</div>/code]

Ich glaube das aus dieser Zeile benötige ich wohl:

<div id="webcamimage"><img id='img1' [color=red]src='/kamera/ftpdata/B01/B01_gross.jpg?1499802279[/color]' alt='webcam'/></div>
                                                                                                                                                                        1499802895
                                                                                                                                                                        1499803059
                                                                                                                                                                         .
                                                                                                                                                                          .
                                                                                                                                                                           .

Und ja die Nr. ändert sich fortlaufend.

VG

Denny
HostSystem: Synology DS918 | FHEM im Docker Version: 6.0-s22528_v2.2.4 (dedizierte IP Adresse) | MQTT_Broker auf DS918 NAS | MQTT_FHEM | TASMOTA_DEVICE | SSChatBot | SSCam | LaMetric | FBAHAHTTP | CUL | SONOS | HUEBridge (deCONZ) Zigbee | FB_CALLMONITOR | InfluxDBLogger

steffen83

Hallo Danny,
die richtige URL zum Bild lautet ja auch
https://www.svz-bw.de/kamera/ftpdata/B01/B01_gross.jpg?1499841020

Und NICHT
https://www.svz-bw.de/fileadmin/templates/vizbw1/kameradetail.php?id=B01

dann klappt es auch mit dem download :-)
Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

rohlande

Keine Ahnung wie deine Download URL aussieht aber ich erhalte ein 403.
Also bei mir definitiv nicht......

wget https://www.svz-bw.de/kamera/ftpdata/B01/B01_klein.jpg?1499879439586
--2017-07-12 19:11:06--  https://www.svz-bw.de/kamera/ftpdata/B01/B01_klein.jpg?1499879439586
Auflösen des Hostnamens »www.svz-bw.de (www.svz-bw.de)« ... 193.197.148.118
Verbindungsaufbau zu www.svz-bw.de (www.svz-bw.de)|193.197.148.118|:443 ... verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet ... 403 Forbidden
2017-07-12 19:11:07 FEHLER 403: Forbidden.
HostSystem: Synology DS918 | FHEM im Docker Version: 6.0-s22528_v2.2.4 (dedizierte IP Adresse) | MQTT_Broker auf DS918 NAS | MQTT_FHEM | TASMOTA_DEVICE | SSChatBot | SSCam | LaMetric | FBAHAHTTP | CUL | SONOS | HUEBridge (deCONZ) Zigbee | FB_CALLMONITOR | InfluxDBLogger