Wochenprogramm aus externer Anwendung

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

sugar76
Beiträge: 4
Registriert: 02.01.2018, 12:58

Wochenprogramm aus externer Anwendung

Beitrag von sugar76 » 08.01.2018, 16:59

Hallo allerseits,

ich habe hier im Forum schon einiges gelesen und auch die Doku der XML-API (http://www.eq-3.de/Downloads/eq3/downlo ... pc_API.pdf). Vielleicht sehe ich ja den Wald vor lauter Bäumen nicht, aber ich finde nicht die gewünschte Info.

Ich möchte gerne jede Woche das Wochenprogramm aller Heizungs-/Wandthermostate aktualisieren. Hintergrund: in einer Gemeinschaftspraxis ändert sich jede Woche die Raumbelegung. Das Heizungsprogramm soll automatisch anhand der Daten aus der Raumbelegungs-Software angepasst werden.

Frage: geht das überhaupt über die XML-RPC Schnittstelle der CCU und wenn ja, wo ist das dokumentiert? Wenn nein, gibt es andere Möglichkeiten, um das umzusetzen?

Gemelon
Beiträge: 12
Registriert: 20.07.2012, 10:04

Re: Wochenprogramm aus externer Anwendung

Beitrag von Gemelon » 10.01.2018, 00:52

Hallo sugar76,
leider habe ich auch keine sichere Antwort, aber ich suche genau das gleiche und wollte mich daher mit xmlrpc beschäftigt. Da gab es nämlich genau dazu ein Script, das bei mir leider überhaupt nichts macht. Es gibt weder eine Reaktion noch einen Fehler.

Code: Alles auswählen

object dev=devices.Get("Büro Wandthermostat");
xmlrpc.PutParamset (dev.Interface(), dev.Address(), "MASTER", "WEEK_PROGRAM_POINTER", 0);
Vielleicht funktioniert es ja bei dir. Ich habe es auch mit anderen Parametern versucht bei denen aber auch nicht passiert, z.B. mit "MODE_TEMPERATUR_REGULATOR".

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Wochenprogramm aus externer Anwendung

Beitrag von Cash » 10.01.2018, 08:34

Gemelon hat geschrieben:Hallo sugar76,
leider habe ich auch keine sichere Antwort, aber ich suche genau das gleiche und wollte mich daher mit xmlrpc beschäftigt. Da gab es nämlich genau dazu ein Script, das bei mir leider überhaupt nichts macht. Es gibt weder eine Reaktion noch einen Fehler.

Code: Alles auswählen

object dev=devices.Get("Büro Wandthermostat");
xmlrpc.PutParamset (dev.Interface(), dev.Address(), "MASTER", "WEEK_PROGRAM_POINTER", 0);
Vielleicht funktioniert es ja bei dir. Ich habe es auch mit anderen Parametern versucht bei denen aber auch nicht passiert, z.B. mit "MODE_TEMPERATUR_REGULATOR".
Das Scriptteil was Du postet macht mit großer Wahrscheinlichkeit etwas sofern Dein Gruppe wirklich Büro Wanthermostat heißt??? Ich bin mir nicht sicher ob es ohne Gruppe läuft.

Dieser Befehl wird auf die Heizungsgruppe angewendet und wechselt das Wochenprogramm auf 0. 0 ist das Wochenprogramm 1, 1 steht für 2 und 2 für 3...

Gemelon
Beiträge: 12
Registriert: 20.07.2012, 10:04

Re: Wochenprogramm aus externer Anwendung

Beitrag von Gemelon » 10.01.2018, 11:02

Hallo Cash,
Ich hatte zuerst angenommen du meins die Gruppen unter "Einstellungen" in der WebUI und das ging natürlich nicht, aber nach langem….sehr langem ausprobieren habe ich dann herausgefunden du meintest wohl die Gruppe unter dem Punkt "Geräte" und juhu das geht. Hier also der funktionierende Testcode:

Code: Alles auswählen

object dev=devices.Get("Büro Heizungsregelung");
WriteLine(dev);
WriteLine(dev.Address());
WriteLine(dev.Interface());

xmlrpc.PutParamset(dev.Interface(), dev.Address(), "MASTER", "WEEK_PROGRAM_POINTER", "1");
WriteLine(xmlrpc.GetParamset(dev.Interface(), dev.Address(), "MASTER"));
Der Code setzt den Wert des Parameters "WEEK_PROGRAM_POINTER" und gibt dann im Scripteditor im Ausgabefenster das ganze Paramset aus. Da kann man dann ganz am ende die Veränderung sehen. Der Parameter "WEEK_PROGRAM_POINTER" kann die Werte zwischen 0 bis 2 annehmen.

Cash
Beiträge: 1184
Registriert: 09.01.2016, 17:42
Wohnort: Sauerland
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Wochenprogramm aus externer Anwendung

Beitrag von Cash » 10.01.2018, 14:27

soweit alles nichts neues. Wurde ja schon mehrfach hier im Fourm behandelt.

Man schaltet mit dem Befehl einfach die 3 möglichen Wochenprogramme der Heizungsgruppe durch.

Das ist aber nicht das was sugar76 will... Leider kann ich dazu auch nichts sagen. Mir reichen die 3 Wochenporgramme (nutze derzeit nur 2).

Gemelon
Beiträge: 12
Registriert: 20.07.2012, 10:04

Re: Wochenprogramm aus externer Anwendung

Beitrag von Gemelon » 11.01.2018, 01:15

Hallo Cash,
Du hast natürlich recht, alles nichts neues, richtig!
Aber es wurde nie deutlich gemacht, dass das ganze natürlich nur funktioniert wenn es den Parameter auf dem Gerät überhaupt gibt und wie man feststellen kann welche Parameter das Gerät überhaupt zur Verfügung stellt. Leider habe ich auch noch nie eine Übersicht gefunden, wo man die möglichen Parameter für eine Gerätes sehen kann, also bleibt nur ausprobieren.

Mit:

Code: Alles auswählen

WriteLine(xmlrpc.GetParamset(dev.Interface(), dev.Address(), "MASTER"));
habe ich alle dev.Address durchprobiert und dann eben genau das Gerät gefunden bei dem ich den Parameter gefunden habe den ich gesucht habe. War halt eine Sache von Try and Fail. So viel zu diesem Thema.

Dass das nicht die exakte Antwort auf die Frage von sugar76 ist, ist mir auch klar, aber ich versuche die Geschichte vom Grund auf aufzurollen.
Ich hatte auch die Vorstellung, schnell mal eine kleine C#-Anwendung zu schreiben, mit der ich in einer Anwendung ein paar Buttens habe mit denen ich dann einfach die Wochenprogramme wechseln kann. Ich habe im Forum natürlich einiges zu dem Thema gefunden, insbesondere über die XML-API, doch meine ersten Versuche damit sind natürlich fehlgeschlagen.
Um also herauszufinden ob es überhaupt möglich ist das Wochenprogramm zu Wechseln hab ich mir erst mal die grundsätzlichen Sachen angesehen, ob es überhaupt geht und so bin ich erstmal zu der Geschichte mit "xmlrpc.PutParamset" gekommen und der Frage warum geht das nicht.

Jetzt wo ich weiß wie es damit geht, kann ich das mit C# und der XmlApi-Lib versuchen und wenn ich das geschafft habe werde ich das auch hier posten.

Ich entschuldige mich das ich Anfänger in diesem Thema bin, aber ich finde es wird leider zu selten auf Anfänger eingegangen. Jeder setzt voraus dass man genau so ein Nerd ist. Mit den Zeilen:

Code: Alles auswählen

object dev=devices.Get("Flur Wandthermostat");
xmlrpc.PutParamset(dev.Interface(), dev.Address(), "MASTER", "WEEK_PROGRAM_POINTER", "1");
Konnte ich einfach nichts anfangen, ohne den Hinweis, dass "Flur Wandthermostat" (die Bezeichnung war halt unglücklich gewählt) das Virtuelle Gerät "Flur Wandthermostat" ist, das aus den realen Geräten "Flur Wandthermostat", "Flur Heizungsregler" und "Flur Fensterkontakt" besteht. Das wurde auch bei keiner anderen Beschreibung klar.
Manchmal ist ein bisschen Hintergrund wissen eben gar nicht schlecht.

sugar76
Beiträge: 4
Registriert: 02.01.2018, 12:58

Re: Wochenprogramm aus externer Anwendung

Beitrag von sugar76 » 11.01.2018, 15:49

Also wenn ich das richtig verstehe, kann man per API zwischen den Wochenprogrammen switchen.

Ich brauche halt die Möglichkeit, jede Woche ein komplett neues Wochenprogramm zu speichern.

Mit FHEM geht das meines Wissens. Mit einer Homemetic-CCU nicht?

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Wochenprogramm aus externer Anwendung

Beitrag von Familienvater » 11.01.2018, 16:05

Hi,

mit einer CCU2 geht das auch, das ist nur ein beliebig komplexes Thema, weil theoretisch für 7 Wochentage bis zu x Zeiten mit unterschiedlichen Temperaturen gesetzt werden können, und damit das zu erstellende Paramset sehr komplex ist.
Und dann frage ich mich wieder, warum eine Gemeinschaftspraxis so komplett unterschiedliche Raumbelegungen haben kann, das die eine Woche Montags ein Raum von 14 -18 Uhr geheizt werden muss, in der anderen Woche von 7-13 Uhr und die Woche drauf von 7 bis 16 Uhr.
Vielleicht lieferst Du uns konkrete Beispiele, und dann wird es auf einmal ganz einfach, weil ja die angesprochenen 3 Wochenprogramme möglich sind. Und wenn es z.B. jeden Tag nur Vormittag oder Nachmittag oder Ganztag gibt, dann kann man ja 3 solche Wochenprogramme machen, und schaltet halt Montags das Vormittagsprogramm für die "Woche" ein, und Dienstags dann das Nachmittagsprogramm.
Oder wenn das wirklich hochgradig flexibel sein muss, dann kann man das ja auch komplett "manuell" über die Zentrale steuern, dann greift gar keine Automatik, oder man macht die "Rettungsautomatik", die immer um 20 Uhr auf 17 Grad geht, damit muss man nur mit genug Vorlauf programmatisch die Automatik-Temp überschreiben zum "vorheizen", und dann programmatisch zum Feierabend wieder auf die Absenk Temp schalten, klappt das warum auch immer nicht, kommt die 20 Uhr Zeit und macht es automatisch kalt.

Der Familienvater

sugar76
Beiträge: 4
Registriert: 02.01.2018, 12:58

Re: Wochenprogramm aus externer Anwendung

Beitrag von sugar76 » 11.01.2018, 17:00

Familienvater hat geschrieben: Hi,
mit einer CCU2 geht das auch, das ist nur ein beliebig komplexes Thema, weil theoretisch für 7 Wochentage bis zu x Zeiten mit unterschiedlichen Temperaturen gesetzt werden können, und damit das zu erstellende Paramset sehr komplex ist.
Gibt es dazu irgendwo Beispiele oder eine Doku? Ich habe nichts gefunden.
Familienvater hat geschrieben: Und dann frage ich mich wieder, warum eine Gemeinschaftspraxis so komplett unterschiedliche Raumbelegungen haben kann, das die eine Woche Montags ein Raum von 14 -18 Uhr geheizt werden muss, in der anderen Woche von 7-13 Uhr und die Woche drauf von 7 bis 16 Uhr.
Es ist jetzt nicht so, dass sich die Belegungszeiten eines Raums ständig ändern. Das kann durchaus über mehrere Monate konstant sein. Aber
  • die Belegungszeiten jedes einzelnen Raums sind sehr variabel (Beispiel: Montag 12-13/15-18, Di 13-18, Mi 10-13/14-16, Do 12-18, Sa 10-15)
  • ab und zu ändert sich halt doch mal was
Drei feste Wochenprogramme reichen halt nicht. Was, wenn einmalig eine Raumbelegung am Sonntag reinrutscht? Und wenn sich die Belegung ändert, soll die Änderung eben automatisch aufs Wochenprogramm übertragen werden, ohne manuelle "Eingriffe".

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Wochenprogramm aus externer Anwendung

Beitrag von Familienvater » 11.01.2018, 17:38

Hi,

irgendwelche Doku zu Paramsets aus Homematic-Script gibt es AFAIK nicht, weil es eben nicht dokumentiert ist, für so etwas über XMLRPC an den rfd ist es aber sehr wohl in der XMLRPC-Api technisch rudimentär beschrieben, in Verbindung mit der 3.000 Seiten Device-Doku wird ggf. auch aus dem FlipFlop schonmal eine Sandale, wenn man sich intensiv damit beschäftigt (was man dann zwangsläufig tun muss), dann kann man sich auch ganz tolle Dinge programmieren, aber in einer normalen Gemeinschaftspraxis wird sich eher kein Doktor finden, der sich auch noch so intensiv mit Programmierung auseinandersetzt.

Das größte Problem ist aber doch, das die Raumverwaltung etc. nicht in der Haussteuerung stattfindet, sondern wie in jedem "Office" in einer bunten Excel-Liste. Und weder die Excel-Liste noch evtl. eine irgendwie geartete Praxis-Verwaltungssoftware bietet die Schnittstelle zur Haussteuerung. Es gibt wohl Hotel-Software bzw. dort definierte Schnittstellen, die man irgendwie zur Ansteuerung von Heizungen mit HM nutzen kann, was das kostet etc., keine Ahnung, meine ich hätte das bei Contronics als "Referenz" gelesen.

Der Familienvater

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“