Graphik in WebUI

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

agen
Beiträge: 39
Registriert: 11.03.2008, 09:28
Danksagung erhalten: 2 Mal

Graphik in WebUI

Beitrag von agen » 02.08.2010, 17:24

Hallo,

durch einen kleinen "Trick" kann man externe Graphiken in der WebUI der CCU verlinken, die dann z.B. in den Favoriten angezeigt werden.

Ausgangspunkt ist eine Systemvariable vom Typ "Text" - diese werden von der CCU als normaler html-Code behandelt. Schreibt man z.B. ein normales img-tag hinein, so wird die entsprechende Graphik angezeigt, man kann natürlich auch mit anderen Features, wie z.B. Farben, arbeiten.

Um die url in die Systemvariable zu bekommen genügt ein Scriptaufruf, z.B.

dom.GetObject("url").State('<img src=\"http://www.homematic.com/fileadmin/Home ... r/logo.jpg\" alt=\"\" />');

zu beachten ist die Behandlung von Anführungsstrichen mit \" !!!

Bedingt durch ajax wird die Graphik auch immer schön aktualisiert, wenn sie z.B. aus einem Script heraus geändert wird.

Viel Spass dabei

Andreas

graph.png

ColdFireIce
Beiträge: 407
Registriert: 06.03.2009, 15:38
Wohnort: Karlsruhe
Danksagung erhalten: 1 Mal

Re: Graphik in WebUI

Beitrag von ColdFireIce » 02.08.2010, 23:02

uh...

böses faul eQ-3 nicht mal htmlspecialchars drüber laufen lassen... Insertions sind doch das erste was man lernt ;)

Daniel

Benutzeravatar
owagner
(verstorben)
Beiträge: 1193
Registriert: 13.05.2008, 19:49
Danksagung erhalten: 1 Mal

Re: Graphik in WebUI

Beitrag von owagner » 30.09.2010, 13:53

XSS? Astloch im weit offenen Scheunentor? :)

EnergyStar
Beiträge: 1276
Registriert: 27.07.2010, 11:38
Danksagung erhalten: 1 Mal

Re: Graphik in WebUI

Beitrag von EnergyStar » 30.09.2010, 15:20

Hallo Leute,
Ihr solltet hier nicht so schimpfen, sonst machen die Leute bei eQ-3 wenn sie hier mitlesen dieses Astloch zu. Dann ist diese villeicht mal interessante Möglichkeit futsch, aber sicherer ist die CCU damit auch nicht. Leute, die diesen Bug als Feature nutzen stehen dann vor verschlossenem Astloch.
Wäre doch auch blöd.
Wenn das Sicherheitsniveau der CCU nicht unter dem Küchenlinolium wäre, dann wäre das was anderes. Aber so...
Gruß
EnergyStar
--------------------------------------------
CCU1 mit 1.514, CUxD 0.59b, Historian V0.7.6hf1
161 Kanäle in 35 Geräten
in schrittweiser Migration auf die
CCU2 mit 2.15.5, CUxD 0.68, Historian V0.7.6hf1
254 Kanäle in 88 Geräten
gesamte Funktionalität über die
CL-Box mit homeputer CLX Ver. 4.0 Rel. 150625
Ansichten: 17, Objekte: 882, Zeilen: 19863, Variablen: 1966

Benutzeravatar
berndes
Beiträge: 269
Registriert: 27.04.2010, 17:36
Wohnort: Niederrhein

Re: Graphik in WebUI

Beitrag von berndes » 30.09.2010, 20:31

teddy278 hat geschrieben:Und es gibt trotzdem Leute, die das Ding direkt an eine Portfreigabe hängen wollen.
Ja Teddy die gibts ;)

Gruß
Berndes
--------------------------------------------
173 Kanäle in 73 Geräten:
4x HM-LC-Sw4-SM, 11x HM-LC-Bl1-FM, 2x HM-WDS30-T-O, 5x HM-Sec-SCo, 5x HM-Sec-RHS, 6x HM-Sec-SD-2, 1x HM-Sec-SD-2-Team, 1x HM-PBI-4-FM, 4x HM-CC-TC, 1x HM-ES-TX-WM, 1x HM-RC-Key4-2, 1x HM-Sec-Key, 1x HM-Sec-MDIR-2, 7x HM-LC-Sw1-FM, 3x HM-LC-Sw1PBU-FM, 6x HM-LC-Sw2-FM, 2x HM-LC-RGBW-WM, 2x HM-CC-VD, 5x HM-ES-PMSw1-Pl, 2x HM-PB-4Dis-WM, 1x HM-Sec-WDS, 1x HM-WDS100-C6-O
--------------------------------------------
Homeputer CL Studio
Mediola a.i.o. V2.0 Gateway Creator Pro
--------------------------------------------
...Tendez ? .....steigend!!!
--------------------------------------------

dirch
Beiträge: 579
Registriert: 24.10.2008, 03:26
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: Graphik in WebUI

Beitrag von dirch » 01.10.2010, 15:53

Hallo zusammen,

ich finde diese vermeintliche "Sicherheitsluecke" ueberhaupt nicht kritisch, ist viel eher ein Feature als ein Bug. Und die Eingaben von Stringvariablen auf irgendetwas zu filtern finde ich nicht nur ueberfluessig sondern einfach bescheuert, weil dann koennte man ja lange nicht alle Werte dort speichern, vielleicht will ich dort ja wirklich einen String mit irgendwelchen Sonderzeichen hinterlegen. . . . ich wuerde mich schwarzaergern wenn das nicht ginge weil aus Sicherheitsgrunden da was gefiltert wuerde. Hoffentlich bleibt das so :D

Selbst wenn man die CCU direkt per Portforwarding ans Internet dran haengt ist es mit dieser "Sicherheitsluecke" nicht kritischer als generell, weil um damit ueberhaupt Unsinn zu verzapfen muss man sich schon im Webinterface anmelden. Und wenn man angemeldet ist dann kann man viel schoenere Sachen machen als nur einem User per XSS irgendwas unterzuschieben ;-)

Gruss,
Dirch
Neun von zehn Stimmen in meinen Kopf sagen ich bin nicht verrückt. Die andere summt die Melodie von Tetris . ...

Goglo
Beiträge: 610
Registriert: 14.04.2012, 18:34
Danksagung erhalten: 1 Mal

Re: Graphik in WebUI

Beitrag von Goglo » 14.09.2012, 22:17

Nu kram ich den alten Thread mal wieder hoch, weil ich gerne ein webcam-Bildchen auf der hompage des webUIs anzeigen möchte. Beschreibe ich nun meine Systemvariable "Bigpicture" mit folgendem Prögrämmelchen

Code: Alles auswählen

var o = dom.GetObject("Bigpicture");
string s= "<img src=\"http://www.eikongraphia.com/images/big_mountains/BIG_Zira_Island_Copyright_BIG_1_S.jpg\" width=430 alt=pic>";
o.State(s);
WriteLine(o.State());
bekomme ich das Bild zwar angezeigt, nur leider nicht schön zentriert. Wenn ich die Breite variiere, verschiebt sich der linke Rand, der rechte scheint aber fixiert zu sein, so dass rechts immer viel Platz bleibt. Die Anordnungsoptionen in den Favoriten hat ja keine Auswirkungen auf die Anzeige auf der Homepage.

Ist hier irgendwo ein html-Wissender, der mir die Tags nennen kann, die das Bild so schön anzeigen wie beim Thread-Ersteller?

Danke!

Achso: Bevor hier irgendjemand herummault: Das Bild kommt von www.eikongraphia.com, so wie im Source oben angegeben. Ich hab' es nur ausgesucht, weil es auch ein bisschen was mit Häusern zu tun hat ;-)
Dateianhänge
Bildschirmfoto 2012-09-14 um 22.07.54.png
83 Kanäle in 50 Geräten:
3x HM-LC-Sw1-Pl, 1x HM-WDS10-TH-O, 5x HM-PB-4-WM, 3x HM-PB-2-WM, 3x HM-LC-Dim1T-FM, 2x HM-Sec-SC, 4x HM-Sec-RHS, 5x HM-CC-VD, 4x HM-CC-TC, 5x HM-LC-Sw1-FM, 2x HM-Sec-MDIR, 1x HM-WDS30-T-O, 1x HM-LC-Sw1-Pl-2, 2x HM-PB-2-WM55, 1x HM-LC-Dim1L-CV, 1x HM-CCU-1, 1x HM-PBI-4-FM, 1x HM-LC-Dim1L-Pl-2, 1x HM-LC-Dim1T-CV, 1x HM-LC-Dim1L-Pl, 1x HM-LC-Sw2-FM, 1x HM-LC-Sw1-SM, 1x HM-Sec-WDS

82 Kanäle in 43 Geräten:
1x HM-PB-2-WM, 2x HM-LC-Bl1-FM, 3x HM-LC-Bl1PBU-FM, 3x HM-PB-2-WM55, 2x HM-PB-4-WM, 9x HM-CC-VD, 8x HM-CC-TC, 2x HM-LC-Sw2-FM, 1x HM-WDS10-TH-O, 1x HM-CCU-1, 1x HM-Sen-MDIR-O, 4x HM-LC-Sw1-FM, 2x HM-SwI-3-FM, 1x HM-LC-Sw4-SM, 1x HM-LC-Sw1-Pl-2, 1x HM-PBI-4-FM, 1x HM-WDS30-T-O

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Graphik in WebUI

Beitrag von alchy » 15.09.2012, 00:40

Goglo hat geschrieben: ...bekomme ich das Bild zwar angezeigt, nur leider nicht schön zentriert.
Schlies mal spasseshalber vor dem <img> das Blockelement mit </div>.
dirty, sollte aber funktionieren. Mit vspace und hspce kannst du danach noch freien Rand rings um Grafik festlegen.
[EDIT]
ungefähr so:

Code: Alles auswählen

    string s= "</div><img src=\"http://www.eikongraphia.com/images/big_mountains BIG_Zira_Island_Copyright_BIG_1_S.jpg\" width=460 vspace=10 hspace=0 alt=pic>";
[/EDIT]
Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
Dr.Bob
Beiträge: 461
Registriert: 12.05.2011, 10:55
Hat sich bedankt: 1 Mal
Danksagung erhalten: 3 Mal

Re: Graphik in WebUI

Beitrag von Dr.Bob » 17.09.2012, 15:17

...das hat ja in der Tat funktioniert :mrgreen:
Ich erinnere mich das ich das vor längerer Zeit mit Teddy diskutiert habe
aber ich wurde aus allen Sicherheitslöchern beschossen was ich damit bloß anstellen möchte
und wie unsicher das ganze wäre.

Trotz dem denke ich, muss jeder von uns selber wissen wie (un)sicher er sein Tcl Code und die Addons gestaltet
obwohl die Forum Anregungen oft Recht haben :idea:


Kurze Frage zum goglo's Minierfolg mit dem "Bildchen".
Falls hinter dem Link eine Webcam (zB Axis) wartet, dann liefert diese :

a) kein JPG am Ende des Links sondern eine Session ID die je Session anders ist (wie fängt man so was ab oder reicht einfach der Hauptlink und Session ID wird on the fly erzeugt)? AXIS Webcam liefert zB ein JPEG Motion-Stream. Kann unsere Variable das verarbeiten?

b) Webcam Authentifzierung , wo User/Pwd verlangt wird (wie bettet man dies im aufgeführten Tcl Scriptlink ein)?
Viele Grüße,
Dr.Bob

HM SmartHome im Neubau:
http://www.elv.de/Von-Anfang-an-%E2%80% ... tail_49648

HM SmartGarten mit GARDENA 24V Bewässerung:
http://www.elv.de/HomeMatic-bringt-Wass ... tail_51154
Video: https://www.youtube.com/watch?v=QUTTix0 ... e=youtu.be

HM Energieauswertung mit HomeMatic Strom, Wasser, Wärme, Photovoltaik:
https://www.homematic-inside.de/media/d ... auswertung

Homematic Usertreffen 2020 Newsletter, https://www.homematic-usertreffen.de/in ... seite.html

CCU3: 731 Kanäle in 131 Geräten (90% HM wired + 10% HM Funk)
Zusatz-Addons: CUxD + VPN cloudmatic + NodeRed + Amazon Alexa + XML-API
HW-Zubehör: IRTrans + IPswitch S0 + (Photovoltaik)
GUI: CloudMatic + iOS PocketControl

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Graphik in WebUI

Beitrag von alchy » 18.09.2012, 07:59

Viele der Kameras liefern ein Bild zurück, wenn man sie mittels snapshot.cgi danach fragt.
Daran kann man den Usernamen und das Passwort gleich anhängen.
Bei vielen Kameras würde dann folgender Code zu einem zentrierten Bild führen.
Wenn man dieses Script per Zeitsteuerung alle x Minuten aufruft.....

GROSS GESCHRIEBENES ist dabei durch eigene Daten zu ersetzen

Code: Alles auswählen

    var o = dom.GetObject("SYTEMVARIABLEWEBCAM");
    string s= "</div><img src=\"http://IP-DER-WEBCAM:PORT/snapshot.cgi?user=USERNAME&pwd=PASSWORT\" width=420 vspace=10 hspace=0 alt=pic>";
    o.State(s);
Es ist natürlich von Vorteil, den Link einfach erst mal im Browser auszuprobieren.

Code: Alles auswählen

http://IP-DER-WEBCAM:PORT/snapshot.cgi?user=USERNAME&pwd=PASSWORT

Natürlich kann nur funktionieren, was man mit einem <img src> Tag einbinden kann :shock:
Das Einbinden von Videos ist ein anderes Thema
:
Axis Kameras verlangen wohl häufig die Syntax:

Code: Alles auswählen

http://IP_DER_WEBCAM:PORT/axis-cgi/jpg/image.cgi
Einfach mal in die Beschreibungen des Webcams schauen oder googeln.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“