Heizkörperthermostat Heizprogramme per WebFront einstellen

Ach, jetzt verstehe ich auch was du mit Warnungen meintest, ja!

In meinen neusten Scripten verwende ich nur noch Hex-Werte für sowas, da passt es dann besser [emoji41]

Gesendet von iPhone mit Tapatalk

@Pitti: Ja, genau. Musste ich nur hinzufügen.

Viele Grüße
Peter

Vielen Dank für die Zusammenfassung der Scripte @Pitti :cool:

Nachdem ich alles gemäß Deiner Anweisungen im Script eingerichtet habe, kann ich leider bei meinen Thermostaten (HM-CC-RT-DN & HM-TC-IT-WM-W-EU) die dort hinterlegten Zeitpläne nicht auslesen. Beim Klick auf die Schaltfläche Auslesen in der Weboberfläche erscheinen wiederholt PHP Notice Meldungen (siehe Screenshot).

Ich habe bereits nach der Ursache gesucht aber komme leider nicht weiter. Vermutlich wird die Variable $params durch ReadParamSet nicht befüllt. In der CCU steht der XML-RPC-API-Zugriff auf Vollzugriff. Auch steht die IP-Adresse des Symcon-Systems auf der Liste der eingeschränkten Adressen.

Die CCU ist bei mir ein RaspberryMatic Version 3.43.15.20190223. IP-Symcon 5.0 läuft unter Ubuntu 18.04.2 LTS. Bei der xmlrpc.inc.php habe ich die erwähnte Version phpxmlrpc-4.3.0 heruntergeladen und im Script eingebunden.

Hat evtl. jemand eine Idee warum das nicht klappt?

Hallo!

Ich habe die HmIP-eTRV-B
Welche ID muß man da eintragen?

oder wird HmIP-eTRV-B nicht unterstüzt?

Mfg
Maxx

Bin gerade nicht am Rechner, aber wenn Du das Script nutzt müsste eine Fehlermeldung kommen das der Typ XYZ (Wahrscheinlich HmIP-eTRV-B) nicht unterstützt wird.

Diese Typbeszeichnung müsstest Du im Script beim Gerätetypcheck (if … then) hinzufügen!

Gruß Heiko

Gesendet von iPad mit Tapatalk

Ich komme leider nicht weiter :frowning:

Hier mal der Inhalt der $request-Variable aus der Funktion ReadParamSet:


xmlrpcmsg Object
(
    [payload] => <?xml version="1.0"?>
<methodCall>
<methodName>getParamset</methodName>
<params>
<param>
<value><string>MEQ0806235:2</string></value>
</param>
<param>
<value><string>MASTER</string></value>
</param>
</params>
</methodCall>
    [methodname] => getParamset
    [params] => Array
        (
            [0] => xmlrpcval Object
                (
                    [me] => Array
                        (
                            [string] => MEQ0806235:2
                        )

                    [mytype] => 1
                    [_php_class] => 
                )

            [1] => xmlrpcval Object
                (
                    [me] => Array
                        (
                            [string] => MASTER
                        )

                    [mytype] => 1
                    [_php_class] => 
                )

        )

    [debug] => 0
    [content_type] => text/xml
    [httpResponse:protected] => Array
        (
            [raw_data] => HTTP/1.0 200 OK
Content-Type: text/xml; charset=iso-8859-1
Content-Length: 149
Content-Security-Policy: default-src 'self';frame-ancestors 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self' *.homematic.com https://gitcdn.xyz ;style-src 'unsafe-inline' 'self';img-src 'self' data: ;connect-src 'self' http://*:8088
X-Content-Security-Policy: default-src 'self';frame-ancestors 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self' *.homematic.com https://gitcdn.xyz ;style-src 'unsafe-inline' 'self';img-src 'self' data: ;connect-src 'self' http://*:8088
X-WebKit-CSP: default-src 'self';frame-ancestors 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self' *.homematic.com https://gitcdn.xyz ;style-src 'unsafe-inline' 'self';img-src 'self' data: ;connect-src 'self' http://*:8088
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Robots-Tag: none
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: no-referrer
Connection: close
Date: Thu, 09 May 2019 17:32:12 GMT

<?xml version="1.0" encoding="iso-8859-1"?>
<methodResponse><params><param>
	<value><struct></struct></value>
</param></params></methodResponse>

            [headers] => Array
                (
                    [content-type] => text/xml; charset=iso-8859-1
                    [content-length] => 149
                    [content-security-policy] => default-src 'self';frame-ancestors 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self' *.homematic.com https://gitcdn.xyz ;style-src 'unsafe-inline' 'self';img-src 'self' data: ;connect-src 'self' http://*:8088
                    [x-content-security-policy] => default-src 'self';frame-ancestors 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self' *.homematic.com https://gitcdn.xyz ;style-src 'unsafe-inline' 'self';img-src 'self' data: ;connect-src 'self' http://*:8088
                    [x-webkit-csp] => default-src 'self';frame-ancestors 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self' *.homematic.com https://gitcdn.xyz ;style-src 'unsafe-inline' 'self';img-src 'self' data: ;connect-src 'self' http://*:8088
                    [x-frame-options] => SAMEORIGIN
                    [x-content-type-options] => nosniff
                    [x-xss-protection] => 1; mode=block
                    [x-robots-tag] => none
                    [x-download-options] => noopen
                    [x-permitted-cross-domain-policies] => none
                    [referrer-policy] => no-referrer
                    [connection] => close
                    [date] => Thu, 09 May 2019 17:32:12 GMT
                )

            [cookies] => Array
                (
                )

        )

)

Und hier die Antwort ($response) aus der Funktion send:


PhpXmlRpc\Response Object
(
    [val] => PhpXmlRpc\Value Object
        (
            [me] => Array
                (
                    [struct] => Array
                        (
                        )

                )

            [mytype] => 3
            [_php_class] => 
        )

    [valtyp] => xmlrpcvals
    [errno] => 0
    [errstr] => 
    [payload] => 
    [hdrs] => Array
        (
            [content-type] => text/xml; charset=iso-8859-1
            [content-length] => 149
            [content-security-policy] => default-src 'self';frame-ancestors 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self' *.homematic.com https://gitcdn.xyz ;style-src 'unsafe-inline' 'self';img-src 'self' data: ;connect-src 'self' http://*:8088
            [x-content-security-policy] => default-src 'self';frame-ancestors 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self' *.homematic.com https://gitcdn.xyz ;style-src 'unsafe-inline' 'self';img-src 'self' data: ;connect-src 'self' http://*:8088
            [x-webkit-csp] => default-src 'self';frame-ancestors 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self' *.homematic.com https://gitcdn.xyz ;style-src 'unsafe-inline' 'self';img-src 'self' data: ;connect-src 'self' http://*:8088
            [x-frame-options] => SAMEORIGIN
            [x-content-type-options] => nosniff
            [x-xss-protection] => 1; mode=block
            [x-robots-tag] => none
            [x-download-options] => noopen
            [x-permitted-cross-domain-policies] => none
            [referrer-policy] => no-referrer
            [connection] => close
            [date] => Thu, 09 May 2019 17:32:12 GMT
        )

    [_cookies] => Array
        (
        )

    [content_type] => text/xml
    [raw_data] => HTTP/1.0 200 OK
Content-Type: text/xml; charset=iso-8859-1
Content-Length: 149
Content-Security-Policy: default-src 'self';frame-ancestors 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self' *.homematic.com https://gitcdn.xyz ;style-src 'unsafe-inline' 'self';img-src 'self' data: ;connect-src 'self' http://*:8088
X-Content-Security-Policy: default-src 'self';frame-ancestors 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self' *.homematic.com https://gitcdn.xyz ;style-src 'unsafe-inline' 'self';img-src 'self' data: ;connect-src 'self' http://*:8088
X-WebKit-CSP: default-src 'self';frame-ancestors 'self';script-src 'unsafe-inline' 'unsafe-eval' 'self' *.homematic.com https://gitcdn.xyz ;style-src 'unsafe-inline' 'self';img-src 'self' data: ;connect-src 'self' http://*:8088
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Robots-Tag: none
X-Download-Options: noopen
X-Permitted-Cross-Domain-Policies: none
Referrer-Policy: no-referrer
Connection: close
Date: Thu, 09 May 2019 17:32:12 GMT

<?xml version="1.0" encoding="iso-8859-1"?>
<methodResponse><params><param>
	<value><struct></struct></value>
</param></params></methodResponse>

)

Hallo Heiko,

erstmal vielen Dank für das Skript, ich versuche gerade das bei einem Freund zu installieren.

Wenn jetzt im Webfront auf auslesen geklickt wird, kommt die Fehlermeldung in einem schwarzen Kasten oben rechts.


Error: Send () Request to RF Service Failed
Didn´t Receice 200 OK from Remote Server (http1/1.0 401 unauthorized)

Kannst du mir eventuell sagen was das zu bedeuten hat und wo der Fehler liegt?

Wäre super wenn mir jemand helfen könnte.

Danke und Grüße
Stephan

Hallo Stephan,

sieht nach gesperrten Port aus (Firewall)!?

Führ doch mal folgendes Skript aus und gib mal das Ergebnis preis! (IP eintragen nicht vergessen)


<?php
################################################################################
# Script:   System.Ports.ips.php
# Version:  2.0
# Author:   Heiko Wilknitz
#
# Zum überprüfen ob der entsprechende TCP-Port erreichbar ist oder geblockt wird
# Für einen UDP Check muss ein udp// vor die IP-Adresse gesetzt werden.         
#
################################################################################

// IP CCUx
$ip = "xxx.xxx.x.x";

// Homematic. Für den Lanadapter muss nur Port 2001 und 5544 erreichbar sein
// 2000 - für Wired
// 2001 - für Funk
// 2010 - für IP
// 5544 - für Ereignise 
// 8181 - für Scripte
// 42000 - SSL Wired
// 42001 - SSL Funk
// 42010 - SSL IP
// 48181 - SSL Scripte

$port = array(2000, 2001,2010, 5544, 8181); 

for($i=0; $i<count($port); $i++) {
	// IP Adresse anpassen
    $socket = @fsockopen($ip, $port[$i], $errno, $errstr); 
    if(!$socket) {
        echo "Port: ".$port[$i]." ist NICHT erreichbar!
";
    }
    else {
        echo "Port: ".$port[$i]." ist erreichbar.
";
    }
}
?>

Gruß Heiko

Hallo Heiko,

danke für die schnelle Antwort.

Die IP Adresse ist geändert, bekomme aber folgende Fehlermeldung:

Parse error:  syntax error, unexpected 'for' (T_FOR) in /var/lib/symcon/scripts/43929.ips.php on line 28

Woran liegt das? Danke!

Fehlt vorher irgendwo ein Semikolon? Haste bei der IP Eintragung zufällig was überschrieben/gelöscht?

Scheinbar ja, jetzt ging es jedenfalls.

Das Ergebnis ist:

Port: 2000 ist erreichbar.

Port: 2001 ist erreichbar.

Port: 2010 ist erreichbar.

Port: 5544 ist NICHT erreichbar!

Port: 8181 ist erreichbar.

Der Port 5544 ist nicht erreichbar. Wie kann ich diesen öffnen?

IP Symcon läuft auf einem Raspberry.

Sieht doch erstmal gut aus, 5544 ist bei mir auch nicht erreichbar - also alles gut!

Wie sehen den Deine CCU Firewall Einstellungen aus (Einstellungen -> Systemsteuerung -> Firewall konfigurieren)?

Gruß Heiko

Die Authentifizierung bei BidCos muss abgeschaltet werden in der CCU.
IPS kann das, aber diese Scripte können das nicht.
Michael

@Michael

Die Authentifizierung bei BidCos muss abgeschaltet werden in der CCU.
IPS kann das, aber diese Scripte können das nicht.

Ich habe jetzt in der CCU unter Sicherheit die XMLRPC Api freigegeben, war das richtig?

Es geht jetzt zumindest :D.

Wenn das Profil gespeichert wird kam die Meldung oben rechts im Webfront (Fehler Speichern erfolgreich)

Die Daten kamen im Thermostat an, hatte mich nur über das schwarze Feld oben mit der Meldung hat mich überrascht. Hab ich da noch einen Fehler hier?

Danke jedenfalls Heiko und Michael für die schnelle Hilfe!!!

Grüße
Stephan

Nein, ist nicht die schönste Lösung, aber ich wollte ein Feedback haben ob alles erfolgreich war beim schreiben. Es dauert ja doch immer paar Sekunden, jedenfalls bei mir.

Gruß Heiko

Hallo Heiko,

danke für das Skript. Bis auf mein Wandthermostat (HM-TC-IT-WM-W-EU) läuft alles wunderbar.

In der Config habe ich bereits gelesen, dass das Thermostat ungetestet ist, aber vielleicht hast du ja eine Idee?

Ich habe die Heizprofile entsprechende bearbeitet und beim Speichern des Raumes, in dem sich das Wandthermostat befindent, erhalte ich folgende Fehlermeldung:

Fehler_Wandthermostat.JPG

Danke und Grüße

Manuel

Hi Manuel,

schön das es schon größtenteils funktioniert. Komme leider erst heute Abend wieder zum schauen, aber die Fehlermeldung sieht nach einem Schreibfehler aus. Das soll doch bestimmt „Profile“ oder so heißen. Da fehlt doch ein P.

Gruß Heiko

Gesendet von iPhone mit Tapatalk

Hi Heiko,

Das soll doch bestimmt „Profile“ oder so heißen. Da fehlt doch ein P.

das wars tatsächlich. :banghead:

Vielen Dank für den Hinweis.

Grüße

Manuel

Hallo,

wie kann man bei Symcon zwischen Automatik und Manuell-Mode schalten?

Ich habe nicht aufgegeben und kann nun mit dem Script von @pitti alles einrichten um die Wochenprogramme per WebFront editieren zu können.

Wie weiter oben bereits erwähnt lieferte die Funktion ReadParamSet bei mir keine Infos zu den Profilen zurück. Nachdem ich dort in der Funktion den Channel entfernt habe kann ich nun die Zeitpläne auslesen und auch wieder zurückschreiben :cool:

$request = new xmlrpcmsg("getParamset", array(new xmlrpcval("$address:$channel", "string"), new xmlrpcval("MASTER", "string")));

wird zu:

$request = new xmlrpcmsg("getParamset", array(new xmlrpcval("$address", "string"), new xmlrpcval("MASTER", "string")));

Eine gezielte Aktivierung eines bestimmten Profils habe ich noch nicht hinbekommen. Ist das möglich oder habe ich etwas übersehen?