Script unter /user über Browser ansteuern

Hallo zusammen,
als Symcon bei mir noch unter Windows lief hatte ich unterhalb von C:\IP-Symcon\webfront\user\meinOrdner\index.php ein kleines Script hinterlegt, welches ich direkt vom Browser aus aufrufen konnte, Quasi http://192.168.1.5:8082/user/meinOrdner/index.php
Leider funktioniert dies nicht mit der Installation auf dem Raspberry.
Gibt es hier einen Trick? Ich weiß, dass es anfangs, als IPS gerade erst auf Raspberry angepasst wurde, Limitationen gab. Darüber kann ich aber nicht mehr finden.

Viele Grüße

habe es gefunden…

chmod 775 /usr/share/symcon/webfront/user/meinOrdner/

hat das Problem behoben.

sorry, zu Euphorisch.
habe die index.php unter /user/skins/ ersetzt… das ging.

meine eigene DAtei geht weiterhin nicht, auch wenn sie im skins-Verzeichnis liegt.
Nenne ich meine dann index.php geht es.

Müssen die Dateien irgendwo auf eine Whitelist o. ä.?

Am besten ist es einen Webhook zu benutzten statt der index.php dann kann der Code auch in der Console editiert werden und man hat keine Probleme mit irgendwelchen Freigaben oder Rechten.

Hast du eine Lösung gefunden?

Habe das gleiche Problem hier. Eine Datei im User-Ordner unter Windows funktioniert. Im User-Ordner auf dem Raspberry kommt nur „File not found“ :frowning:

Gruß
T.

Wie oben geschrieben benutze einfach einen Webhook dann gibt es das Problem auch nicht.
Beispiel ist im SymconTestunter Hookserve zu finden

Mhhh… ich bin mir nicht sicher, ob mir das weiter hilft. Es geht ja nicht darum Informationen von einem Server auf einen anderen weiterzugeben, sondern lediglich darum, zusätzliche Infos im Webfront darstellen zu können. Z.B. eine schicke analoge Uhr oder den Wetterbericht. Die html(php)-Seiten sollen zusammen mit dem Webfront vom IPS-Webserver bereitgestellt werden.

Da es unter Windows funktioniert und das so auch in der Anleitung steht, sollte es auch auf dem Raspberry funktionieren können.

Eine parallele Installation von z.B. lighttpd kann ja auch nicht wirklich die Lösung sein.

Gruß
T.

Ja auch dafür kannst Du einen Webhook nutzen denn dann kannst Du das auf das Du verlinken willst auch innerhalb der Konsole einbinden. Aber das sollte abgesehen davon alternativ auch mit dem User Ordner gehen auch auf einem Raspberry.

Du kannst ja mal einen Bespiel geben wo auf dem Raspberry Du die Datei die Du aufrufen willst genau abgelegt hast und was Du als URL zum aufrufen eingibst, eventuell liegt da ja auch schon ein Fehler. Ansonsten gib mal eine Beispiel für z.B. eine Uhr oder so was das Du einbinden willst dann kann man auch theoretisch beschreiben wie das über einen Webhook funktioniert.

Anbei mal das Vorgehen mit einem Webhook, dann wird glaube ich auch klar was der Vorteil ist im Vergleich zum User Ordner, das Du nämlich direkt in der Konsole arbeiten kannst.

[ul]
[li]String Variable erstellen mit Profil ~HTMLBox für die Anzeige im Webfront[/li][li]Skript erstellen das dann die Webseite beinhaltet[/li][li]Inhalt in Skript kopieren hier nehmen wir als Beispiel mal https://codepen.io/HugoGiraudel/pen/jxJqu[/li][li] Skript sieht also so aus[/li]


<!DOCTYPE html>
<html lang="de">
	
<head>
<title>Clock</title>
<style type="text/css" media="screen">
@charset "utf-8";
@import "compass/css3";

* { box-sizing:border-box; }

body {
 	background:#EDEDED; 
}

.clock {
 	width:200px;
  height:200px;
  border-radius:50%;
  background:radial-gradient(15% 25%, #fff, #DDD 60%);
  border:8px solid #08C;
  margin:30px auto;
  position:relative;
  box-shadow: 
    0 5px 3px rgba(0,0,0,0.3),
    inset 0 5px 3px rgba(0,0,0,0.3);
}

.clock:after {
 	position:absolute;
  width:10px;
  height:10px;
  background:#333;
  border-radius:50%;
  left:50%;
  top:50%;
  margin-left:-5px;
  margin-top:-5px;
  content:"";
  border:1px solid rgba(0,0,0,0.1);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.4),
    0 2px 1px rgba(0,0,0,0.5);
}

.hand {
 	position:absolute;
  left:50%;
  transform-origin:0% 100%;
  box-shadow:0 0 5px rgba(0,0,0,0.2);
  border-radius:30px;
}

.seconds {
	width:1px;
  height:90px;
  background:orange;
  top:10px;
  animation: rota 60s steps(60, end) infinite;
}

.minutes {
 	width:2px;
  height:70px;
  background:#08C;
  top:30px;
  animation: rota 3600s linear infinite;
}

.hours {
 	width:3px;
  height:40px;
  background:#222;
  top:60px;
  animation:rota 86400s linear infinite;
}

@-webkit-keyframes rota {
 	from { transform:rotate(0deg); }
  to { transform:rotate(360deg); }
}

@-moz-keyframes rota {
 	from { transform:rotate(0deg); }
  to { transform:rotate(360deg); }
}
</style>

</head>

<body>

 <div class="clock">
  <div class="hand seconds"></div>
  <div class="hand minutes"></div>
  <div class="hand hours"></div>
</div>

</body>
</html>

[li]Beachten in dem Fall ist das HTML und kein PHP also meckert IP-Symcon zunächst Kein PHP Tag (<?) gefunden. Weiter?, was mit Ja beantwortet wird schließlich ist es HTML.[/li][li]Jetzt noch ein Hilfskript anlegen das uns die Variable beschreibt[/li]


$HTML = '<iframe src="http://192.168.55.120:3777/hook/clock/" border="0" frameborder="0" style= "width: 1000px; height: 450px;"/></iframe>';
 SetValue(12345, $HTML); 

[li] jetzt brauchen wir noch einen Webhook. Diesen also anlegen unter Kerninstanzen->Webhook und dort einen neuen Webhook anlegen in dem Beispiel clock[/li][li] Jetzt können wir über den Webhook die Uhr anzeigen, sowohl im Webfront als auch extern[/li][li] Der Vorteil ist das die Seite jetzt direkt als Skript in der Konsole liegt und dort auch bearbeitet werden kann[/li][/ul]

Windows IPS:

Dateipfad: c:\IP-Symcon\webfront\user\clock\index.html
Browser: http://192.168.168.26:82/user/clock/index.html

Funktioniert.

Raspberry IPS:

Dateipfad: /usr/share/symcon/webfront/user/clock/index.html
Browser: http://192.168.168.81:3777/user/clock/index.html

Funktioniert nicht!

Dateipfad: /usr/share/symcon/webfront/user/skins/index.php
Browser: http://192.168.168.81:3777/user/skins/index.php

Funktioniert.

Berechtigung passt auch.

Vielen Dank für dein Beispiel mittels Webhook. Werde ich in einer ruhigen Stunde mal probieren.

Gruß
Tobias

Ist auch der falsche Pfad unter dem Du etwas ablegst.
das sollte eigentlich unter
/var/lib/symcon/webfront/user/clock

Hier stand Müll
Michael

Funktioniert komischerweise aber trotzdem noch mal sehen wie lange ;). Ich sagte ja Webhooks nutzten.

Hatte ich falsch interpretiert. Sorry.
Michael

Hallo,

ich hänge mich hier mal dran, es geht ja um Webhooks allgemein.

Was mit technisch nicht ganz klar ist, wie die Hooks abgesichert sind. Wenn ich SymconConnect aktiviert habe, kann ich einen Hook direkt aufrufen, ohne dass ich ein Passwort benötige.

Es ist zwar eine https Verbindung, aber die Ausführung des Scripts nicht gesichert.

In der Doku gibt es ein Beispiel zum Thema Authentifizierung:
WebHook Control — IP-Symcon :: Automatisierungssoftware

Wird das Passwort dabei schon verschlüsselt übertragen?
Wenn ich dies aber in einem Link mit http://user:passwort@ip/hook/irgendwas angebe, wie wird dann das Passwort übermittelt?

Welche Möglichkeit habe ich denn, bei aktivem Symcon Connect die Hooks vor unberechtigtem Zugriff zu schützen?

Ich muss dazu sagen, ich bin hier nicht wirklich firm, und habe vorher im Web gesucht, aber vermutlich die falschen Suchbegriffe verwendet. Es hat mich nicht weiter gebracht.

Gruß
Christian

Die Authentifizierung in der Doku ist in Verbindung mit SSL sicher. Ohne SSL wäre sie unsicher! Das Kennwort wird (obwohl es für dich als Nutzer in der URL ist) später im Header übertragen, welcher bereits über die SSL Verschlüsselung kodiert ist.

paresy

Hallo paresy,

super danke für die Erklärung.
Dann genügt es scheinbar für eine angemessene Sicherheit so zu verfahren, wie Ihr in der Doku beschrieben habt.

Gruß
Christian

Hallo,

Also ich muss mich jetzt mal einklinken hier.

Möchte gerne Highcharts Benutzen aber wie soll ich dies nun tun wenn IPS nicht mehr auf den User Ordner zugreifen kann? Webhook ist ja schön und gut, aber das braucht man im normalen Netzwerk doch gar nicht? warum also IPS nicht gestatten selbst auf das User Verzeichnis zugreifen zu lassen? :confused:

Würde gerne das hier Umsetzen, aber scheint ja wohl flach zu fallen?
IPSHighcharts - Seite 2

LG
Sven

Hallo,

Klasse Sache mit dem Webhok. Beispiel funktioniert soweit auch auf dem Raspberry.
Wie sieht es bei einer HTML Seite mit link auf CSS bzw Java Script file aus.
In welches Verzeichnis muss ich diese files ablegen.

Die Verzeichnisse /usr/share/symcon/webfront/user/…
bzw. /var/lib/symcon/webfront//user/…

werden beide nicht erkannt.

Gruß
Torsten

Wenn sowieso schon CSS und Javascript benutzt wird am besten in ein PHP Modul packen schaue mal hier als Beispiel
Hookserve