Antworten
Jan 01, 2025 - 19:30
da AIO REMOTE NEO leider keine JPGs von SMB Freigaben anzeigen kann, bin ich auf die Idee gekommen, den im CCU-Historian eingebauten Webserver (jetty) mitzubenutzen. In CCU-Historian ist diese Möglichkeit explizit vorgesehen!
https://github.com/mdzio/ccu-historian/wiki#eigene-verweise-auf-web-seiten
Damit habe ich es in einem Test geschafft, eines der jpgs aus der lokalen SMB Freigabe über eine sehr einfache HTML Seite anzuzeigen. Vielleicht kann jemand helfen, auf dieser Webseite einen Parameter (Pfad zum JPG) für das anzuzeigende Bild zu ermöglichen?
Damit wäre das eine simple Lösung ohne zusätzlichen Webserver :-)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>html {
padding: 0;
margin: 0;
height: 100%;
overflow: hidden;
}</style>
</head>
<body>
<img src="photo/ipcam03/quad_1.jpg">
</body>
</html>
Jan 03, 2025 - 22:22
Hallo,
da AIO REMOTE NEO leider keine JPGs direkt anzeigen kann, werde ich nun den im CCU-Historian eingebauten Webserver (jetty) zu diesem Zweck mitbenutzen - dadurch muss kein zusätzlicher Webserver installiert und betrieben werden. In CCU-Historian ist diese Möglichkeit explizit vorgesehen!
https://github.com/mdzio/ccu-historian/wiki#eigene-verweise-auf-web-seiten
Mit sehr guten Anregungen von hw-020 habe ich es geschafft, JPGs von einem lokalen raspberrypi, auf dem auch CCU-Historian läuft, über eine einfache HTML Seite anzuzeigen. Die URL dieser HTML Seite verlangt einen Parameter "path" für das anzuzeigende JPG.
Diese HTML Seite wird in AIO REMOTE NEO an verschiedenen Stellen mit verschiedenen Bildern (Kamerabilder, Wettervorhersagen, ...) eingebunden, der Aufruf unterscheidet sich nur im Parameter "path":
http://ip-raspberrypi:81/custom/index.html?path=photo/ipcam01/quad_1.jpg
Die dazu notwendige HTML Seite sieht folgendermaßen aus:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<style>html, body {
padding: 0;
margin: 0;
height: 100%;
overflow: hidden;
}</style>
<title>display image</title>
</head>
<body>
<div id="imgDiv"></div> <! image goes here >
</body>
<script>
function getParameterByName(name) { // function: read parameter from url by name
let url = new URL(window.location.href);
let paramValue = url.searchParams.get(name);
return paramValue;
}
function displayImage(pic) { // function: display image at id "imgDiv"
let divLocation = document.getElementById("imgDiv");
let imgElement = document.createElement("img");
imgElement.src = pic
divLocation.append(imgElement);
}
let imagepath = getParameterByName('path'); // read parameter "path"
if (imagepath) { // parameter "path" found in url
let displayDiv = document.createElement("div");
displayDiv.innerText = imagepath;
document.body.appendChild(displayDiv);
displayImage(imagepath); // display image located relative to "/opt/ccu-historian/webapp/custom"
} else { // parameter "path" not found in url
let displayDiv = document.createElement("div");
displayDiv.innerText = "no ?path=..... parameter found in url";
document.body.appendChild(displayDiv);
}
</script>
</html>
Von
Oh ja das kenne ich. Hatte das Problem mit dem Laden von pdf Dateien für meine Hilfeseiten. Genau wie Du es beschrieben hast. Unter Windows und Testumgebung ging dann einiges, nicht alles, unter iOS konnte ich die Datei erst garnicht aufrufen. Nach vielen Tagen des Testens, gab es bei mir nur eine Lösung welche inzwischen sehr gut funktioniert. Meine Platte erreiche ich über eine DDNS Verbindung und Sicherheitszertifikat. Ist garnicht so aufwendig wie Du schreibst, funktioniert aber gut und sicher, von überall….
Von
@Eragon So wird das zumindest nicht funktionieren, wie Du Dir das vielleicht einfach vorstellt. Mit einem Browser bzw. NEO ist SMB nicht direkt möglich. Daher wirst Du schon, wie von Dir gesagt, irgendeinen Webserver benutzen müssen, wenn Du die Daten einfach in NEO per HTML anzeigen lassen willst.
Bei mir persönlich ist IP-Symcon als Gebäudeautomationssystem an NEO angebunden und gleichzeitig PHP- bzw. Webserver für NEO. Die Daten werden von IP-Symcon per FTP geholt und dann über einen Webhook an NEO ausgegeben.
Von
Hallo Fonzo,
ich habe meinen Webserver auf der Synology Systemebene laufen. Was würde dafür sprechen, Deine Variante über IP-Symcon einzurichten? Andere Frage, bist Du noch auf Discord unterwegs?
Von
@hw-020 Das hängt ja vom persönlichen Anwendungszweck ab. Der Vorteil von IP-Symcon ist zumindest das ein Gebäudeautomationssystem und kein reiner Webserver ist, daher kann man im Gegensatz zu einem reinen Webserver eben auf Ereignisse reagieren, die das Gebäude betreffen.
Wenn immer das gleiche Bild in NEO angezeigt werden soll, ist das relativ egal, da kann man auch einen normalen Webserver nutzen, und eben einen festes Seitenaktualisierungsintervall in der NEO Remote mit fester URL angeben.
Der Vorteil von IP-Symcon als Webserver ist dann gegeben, wenn sich das angezeigte Bild in NEO dynamisch nach einem Ereignis ändern soll. Die URL bleibt dann in der NEO Remote gleich, IP-Symcon liefert aber passend zum Ereignis das gewünschte Bild und lädt die NEO Seite per Push neu, somit muss auch nicht ständig die Seite in NEO neu geladen werden, sondern wird nur dann aktiv aktualisiert wenn es tatsächlich notwendig ist.
Ja, ich bin über Discord anschreibbar.
Von
Hallo,
da AIO REMOTE NEO leider keine JPGs von SMB Freigaben anzeigen kann, bin ich auf die Idee gekommen, den im CCU-Historian eingebauten Webserver (jetty) mitzubenutzen. In CCU-Historian ist diese Möglichkeit explizit vorgesehen!
https://github.com/mdzio/ccu-historian/wiki#eigene-verweise-auf-web-seiten
Damit habe ich es in einem Test geschafft, eines der jpgs aus der lokalen SMB Freigabe über eine sehr einfache HTML Seite anzuzeigen. Vielleicht kann jemand helfen, auf dieser Webseite einen Parameter (Pfad zum JPG) für das anzuzeigende Bild zu ermöglichen?
Damit wäre das eine simple Lösung ohne zusätzlichen Webserver :-)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>html {
padding: 0;
margin: 0;
height: 100%;
overflow: hidden;
}</style>
</head>
<body>
<img src="photo/ipcam03/quad_1.jpg">
</body>
</html>
Von
Wenn Du so das Bild in einem Browser angezeigt bekommst über eine URL zu dem Webserver, kannst Du diese URL der Webseite per iframe in NEO anzeigen.
Besser wäre aber ein Webhook an den ein Benutzer und Passwort übergeben wird. Der Webhook liefert dann nach Überprüfung das Bild an die aufrufende URL aus.
Wenn Du das ohne Passwort Prüfung über den Umweg von diesem Webserver machst reist Du Dir Sicherheitslücken in Dein System und jeder der eine Ahnung hat kann dann auf so ein Bild zugreifen. Ein abgesicherter Ansatz zumindest mit Passwort Prüfung ist daher dringend zu empfehlen.
Von
Hallo Fonzo, ja das funktioniert!
PS: Der CCU-Historian Webserver ist nicht öffenltich zugänglich, bei Bedarf verwende ich eine VPN Verbindung auf meinem iPhone.
Jetzt fehlt mir nurmehr eine Lösung für:
"Vielleicht kann jemand helfen, auf dieser Webseite einen Parameter (Pfad zum JPG) für das anzuzeigende Bild zu ermöglichen? "
hw-020 hat unten geantwortet - das werde ich mir abends ansehen.
Falls Du eine einfache(re) Lösung parat hast, bitte um Info!
Neuen Kommentar hinzufügen