HomeMatic Geräte Einstellungen ändern im WebFront

Hallo mal wieder,
Hier mein neustes, ausbaufähiges, Werk zur Kontrolle und Änderung der Homematic Geräte Parameter im WebFront.
Zu Installation den inhalt des Archivs in den ordner /webfront/user/ kopieren das sieht dann letztendlich so aus /webfront/user/HMTools/… dateien.
Installation:


<?
include (IPS_GetKernelDir().'/webfront/user/HMTools/IPS.install.php');
?>

Zum deinstallieren:


<?
include (IPS_GetKernelDir().'/webfront/user/HMTools/IPS.uninstall.php');
?>

Zum Tool selbst. Währen der kleinen Installation werden für alle in IPS eingerichteten HomeMatic Instanzen/Geräte zwei neue Variablen hinzugefügt und als kleine Hilfe unter der Spalte info die Geräte ID.
Sieht dann so aus:
show_obj.PNG
und so


Im WebFrotend sieht das denn so aus:

und nun viel Spass…
cu Xaver

HMTools.zip (13.8 KB)

Habs mal installiert.
Die Variablen werden angelegt. Das Script gibt aus „Fertig… ;-)“

Beim Einschalten der Konfiguration im Webfront öffnet er ein Textfenster und sagt mir :
„modules curl and xml-rpc are required“

Jetzt weiss ich wieder nicht, wie ich diese Module installiere und auch wo - CCU2 oder IPS-Computer.
Oder nur 2 dll-Dateien im Modules-Ordner.

Ich denke es liegt an den PHP Einstellungen. Die Datei befindet sich direkt im IPS Programmverzeichniss und nennt sich php.ini
Wenn die Datei nicht vorhanden ist kannst du sie erstellen.
Hier der Inhalt meiner php.ini zum vergleich.



```php

max_execution_time=30
error_reporting=E_ALL
memory_limit=32M
register_globals=off
extension_dir="C:\IP-Symcon\ext"
auto_prepend_file="C:\IP-Symcon\scripts\__autoinclude.inc.php"
extension = php_bz2.dll
extension = php_com_dotnet.dll
extension = php_curl.dll
extension = php_exif.dll
extension = php_fileinfo.dll
extension = php_gd2.dll
extension = php_gettext.dll
extension = php_gmp.dll
extension = php_imap.dll
extension = php_mbstring.dll
extension = php_mysql.dll
extension = php_mysqli.dll
extension = php_pdo_mysql.dll
extension = php_pdo_odbc.dll
extension = php_pdo_pgsql.dll
extension = php_pdo_sqlite.dll
extension = php_pgsql.dll
extension = php_soap.dll
extension = php_sockets.dll
extension = php_sqlite3.dll
extension = php_tidy.dll
extension = php_xmlrpc.dll
extension = php_xsl.dll
[DATE]
date.timezone="Europe/Berlin"

[Session]
session.save_handler = "files"
session.save_path = "C:\IP-SYMCON\webfront\sessions"
session.auto_start = 0
session.use_trans_sid = 1
session.name = "pt"

cu Xaver

Die Fehlermeldung ist weg, aber es wird nur eine leere Textbox geöffnet, in der dann „Zeitüberschreitung…“ nach einiger Zeit kommt.

Die Variable sagt:

"<iframe height="300px" width="100%" id="LEQ1220xxx_1" name="LEQ1220xxx_1" src="http://192.168.1.xx:82/user/HMTools/HMPropEdit.php?id=LEQ1220xxx:1&full">
Der Browser unterstützt keine Inlineframes oder ist aktuell so konfiguriert, dass Inlineframes nicht angezeigt werden.
</iframe>

Habs auch mal mit Crome versucht, mit dem gleichen Ergebnis.

Hmmm, meine Scripts laufen scheinbar nur bei mir :frowning:
Hab hier ein Update dazu würde mich noch interessieren was dein Browser ausgibt wenn du die url direkt aufrust,
zb. http://192.168.1.xx:82/user/HMTools//HMPropEdit.php?id=LEQ1220xxx:1&full

cu Xaver

HMTools_b2.zip (14.4 KB)

Ich habe mal die Dateien im User-Ordner mit den neuen ausgetauscht. Deinstalliert und neu installiert.

Dann wieder aufgerufen.
Es kommt eine leere Textbox bzw beim Direktlink eine weisse Seite und nach langer Zeit in beiden die Buttons Speichern, Zurücksetzen, Standartwerte laden.
HM1.png
Anklicken bringt nichts.

Gibt es jemand anders, bei dem es geht, oder bin ich der einzige?

… sorry hatte nur mitgelesen!

Ja, ich habe das gleiche Verhalten:

  • Installation lief problemlos und die HM-Geräte haben jetzt zusätzliche Variablen
  • Im Webfront sehe ich zwar die Konfig-Schalter, aber bei Aktivierung kommt ein schwarzes bzw. weißes Fenster - je nach Browser, mit Chrome bzw. IE getestet. Am Ende kommt dann auch die beschriebene Box mit den drei Schaltflächen.

Stehe für weitere Tests, Infos oder Logs zur Verfügung!

Danke schon mal!

Ist denn die Verschlüsselung zur CCU aktiv?
Ich habe hier nur eine CCU2 und ein LAN-Gateway zum testen, und da läuft alles wunderbar. Verschlüsselung ist auf meiner CCU deaktiviert.
Ich habe mal ein kleines Test Script für euch gebastelt.


<?
include_once(IPS_GetKernelDir().'/webfront/user/HMTools/HMClass.php');
$ccu='http://192.168.112.15:2001'; // <= Hier deine CCU eintragen

$api = new client_xmlrpc(array('url'=>$ccu));
$devices=$api->listDevices();
print_r($devices);
?>

rauskommen sollte etwas in der Art:


Array
(
    [0] => Array
        (
            [ADDRESS] => BidCoS-RF
            [CHILDREN] => Array
                (
                    [0] => BidCoS-RF:0
                    [1] => BidCoS-RF:1
                    [2] => BidCoS-RF:2
                    [3] => BidCoS-RF:3
                    [4] => BidCoS-RF:4
                    [5] => BidCoS-RF:5
                    [6] => BidCoS-RF:6
                    [7] => BidCoS-RF:7
                    [8] => BidCoS-RF:8
                    [9] => BidCoS-RF:9
                    [10] => BidCoS-RF:10
                    [11] => BidCoS-RF:11
                    [12] => BidCoS-RF:12
                    [13] => BidCoS-RF:13
                    [14] => BidCoS-RF:14
                    [15] => BidCoS-RF:15
                    [16] => BidCoS-RF:16
                    [17] => BidCoS-RF:17
                    [18] => BidCoS-RF:18
                    [19] => BidCoS-RF:19
                    [20] => BidCoS-RF:20
                    [21] => BidCoS-RF:21
                    [22] => BidCoS-RF:22
                    [23] => BidCoS-RF:23
                    [24] => BidCoS-RF:24
                    [25] => BidCoS-RF:25
                    [26] => BidCoS-RF:26
                    [27] => BidCoS-RF:27
                    [28] => BidCoS-RF:28
                    [29] => BidCoS-RF:29
                    [30] => BidCoS-RF:30
                    [31] => BidCoS-RF:31
                    [32] => BidCoS-RF:32
                    [33] => BidCoS-RF:33
                    [34] => BidCoS-RF:34
                    [35] => BidCoS-RF:35
                    [36] => BidCoS-RF:36
                    [37] => BidCoS-RF:37
                    [38] => BidCoS-RF:38
                    [39] => BidCoS-RF:39
                    [40] => BidCoS-RF:40
                    [41] => BidCoS-RF:41
                    [42] => BidCoS-RF:42
                    [43] => BidCoS-RF:43
                    [44] => BidCoS-RF:44
                    [45] => BidCoS-RF:45
                    [46] => BidCoS-RF:46
                    [47] => BidCoS-RF:47
                    [48] => BidCoS-RF:48
                    [49] => BidCoS-RF:49
                    [50] => BidCoS-RF:50
                )

            [FIRMWARE] => 2.11.6
            [FLAGS] => 9
            [INTERFACE] => LEQ0392063
            [PARAMSETS] => Array
                (
                    [0] => MASTER
                )

            [PARENT] => 
            [RF_ADDRESS] => 2709905
            [ROAMING] => 0
            [RX_MODE] => 1
            [TYPE] => HM-RCV-50
            [VERSION] => 6
        )

    [1] => Array
        (
            [ADDRESS] => BidCoS-RF:0
            [AES_ACTIVE] => 0
            [DIRECTION] => 0
            [FLAGS] => 3
            [INDEX] => 0
            [LINK_SOURCE_ROLES] => 
            [LINK_TARGET_ROLES] => 
            [PARAMSETS] => Array
                (
                    [0] => MASTER
                    [1] => VALUES
                )

            [PARENT] => BidCoS-RF
            [PARENT_TYPE] => HM-RCV-50
            [TYPE] => MAINTENANCE
            [VERSION] => 6
        )

    [2] => Array
        (
            [ADDRESS] => BidCoS-RF:1
            [AES_ACTIVE] => 0
            [DIRECTION] => 1
            [FLAGS] => 1
            [INDEX] => 1
            [LINK_SOURCE_ROLES] => KEYMATIC REMOTECONTROL_RECEIVER SWITCH WINMATIC
            [LINK_TARGET_ROLES] => 
            [PARAMSETS] => Array
                (
                    [0] => LINK
                    [1] => MASTER
                    [2] => VALUES
                )

            [PARENT] => BidCoS-RF
            [PARENT_TYPE] => HM-RCV-50
            [TYPE] => VIRTUAL_KEY
            [VERSION] => 6
        )
.......

Wäre toll mal zu sehen was bei euch passiert.

cu Xaver

Hallo Xaver,

cooles Script und Idee, läuft aber bei mir auch nicht. :stuck_out_tongue:
Ich habe aber folgende Probleme gefunden:

Du verlinkst in dem iframe: src=„http://IPS_IP:82/user/HMTools/HMPropEdit.php?id=IEQ0003544:0&full“

HMPropEdit.php bekommt also als Get-Parameter "id=DeviceID&full

Wenn ich mir nun die erste Zeile aus HMPropEdit.php anschaue steht dort:


<?php

if(!isSet($CCUHost)) $CCUHost = 'http://192.168.112.15:2001';

...

Wo wird denn $CCUHost definiert? Ich meine nirgendwo, und daher kommt Dein Defaultwert 192.168.112.15 ins Spiel, und dass ist NICHT die Adresse MEINER CCU. :wink:

Wenn ich die IP dort ändere funktioniert es.

Du hast aber noch in der HMVariables.inc jede Menge Deiner DeviceIDs definiert.

$FrameHeigth[‚JEQ0065647‘]=1;
$FrameHeigth[‚JEQ0065647_0‘]=0;
$FrameHeigth[‚JEQ0065647_1‘]=7;

Was hat es denn damit auf sich?

Jaaaa… stimmt, du hast Recht das ist der Fehler… DANKE!!!. Wenn jeder hier seine CCU einträgt sollte es klappen,

zu den $FrameHeigth einträgen, die sind in der tat im Moment vollkommen überflüssig. Ich wolle diese benutzen um die Frame höhe in Frontend zu setzten, aber das ist im Moment überholt.

ich bin im moment dabei das einbinden von form-templaten für zb. Temperatur Profile. Im Moment ergeben diese devices noch rießig lange Formulare . ist eben alles noch Beta und jeder darf was machen.

habe meinen aktuellen stand nochmal als file angefügt.
Allerdings habe ich noch keine Beschreibung der HMVariables.inc erstellt, die die deffinition erklärt.
cu
Xaver.

Übrigens ist immer noch
in der erste Zeile aus HMPropEdit.php folgendes anzupassen!!


if(!isSet($CCUHost)) $CCUHost = 'http://192.168.112.15:2001'; // <= hier die ip deiner CCU ect. eintragen

HMTools_b3.zip (13.4 KB)

Besten Dank !!! Jetzt funktioniert es.:):):slight_smile:

Eine Kleinigkeit noch:

Umlaute werden im Webfront als � dargestellt.

Wenn ich den Link aufrufe
http://192.168.1.xx:82/user/HMTools//HMPropEdit.php?id=LEQ1220xxx:1&full
werden die Umlaute richtig dargestellt.
Ist das nur bei mir so ?

Ja, das Problem hatte ich nur umgekehrt , hah… immer diese Kodierungs Probleme :mad:
in Zeile ~320 der Datei HMPropEdit.php

<HEAD>
	<META content="text/html; charset=utf-8" http-equiv="Content-Type" />
	.....

kannst du das : charset=utf-8 in : charset=iso-8859-1 ändern. Hoffe das hilft.

cu Xaver

Hat leider nicht geholfen.
Habe neu gestartet, dann alle UTF-8 ersetzt. Dann noch deinsstalliert, wieder installiert.

Hat nichts geändert.

Was mir noch aufgefallen ist, die HM_Tools.css ist eine leere Datei. Ist das richtig?

Ja, die css Datei ist im Moment noch leer :wink: das ist ok.
Was noch funktinieren könnte. Einen Editor wie der Notepad++ ist Freeware, damit die Dateien laden, dann unter Kodierung => Konvertiere zu … ausprobieren mit UTF und ISO

cu Xaver

Auch hier nochmal ein Danke! Von Entwickler zu Entwickler: good job mate!

Falls man das Ganze schlanker haben, und nur die entsprechende Homematic Geräte ID in der Info des Gerätes stehen haben will, dann kann man folgendes Skript erstellen und laufen lassen:


<?

	$homematic_moduleid = "{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}";

	$instanceList = IPS_GetInstanceListByModuleID($homematic_moduleid);
	foreach($instanceList as $instanceID) {
	   $object = IPS_GetObject($instanceID);
	   $configuration = json_decode(IPS_GetConfiguration($instanceID));

		if(strpos(strtolower($object['ObjectInfo']), "address:") === false) {
			IPS_SetInfo($instanceID, "Address: ".$configuration->Address);
			IPS_ApplyChanges($instanceID);
		}
	}
	
?>

Danke nochmal an den Threadersteller für den Gedankenanstoß!