GETCCUSYSVAR Fehler bei leerem Inhalt? + Geschwindigkeit

Bugreports und Updatewünsche an die Firma contronics
Keine allgemeinen Fragen!

Moderator: Co-Administratoren

Antworten
Tobias78
Beiträge: 1464
Registriert: 27.06.2010, 01:01
Wohnort: Braunschweig
Hat sich bedankt: 4 Mal

GETCCUSYSVAR Fehler bei leerem Inhalt? + Geschwindigkeit

Beitrag von Tobias78 » 28.12.2014, 09:48

Hallo,
ich habe gerade festgestellt, dass eine leere Systemvariable vom Typ Zeichen den Zustand mit dem Befehl GETCCUSYSVAR nicht überschreibt.
D.H. Die HP Variable ist nicht identisch mit der leerem Systemvariable sondern zeigt den alten Inhalt an.

Auch in den SPG Tools lässt sich nicht einfach der Inhalt einer HP Variablen auf "" setzten.

Und noch ein Wunsch:
Die einzigen Funktionen die mich in meinem Projekt und etlichen von mir betreuten Installationen bis heute etwas ärgern sind die GETCCUSYSVAR und GETSITE Funktionen. Grundsätzlich funktionieren beide Funktionen einwandfrei, sie sind aber leider extrem langsam und blockieren bei mehrfachem Aufruf das Fortsetzen der Makros.

Da ich über die GETSITE Funktion hauptsächlich XML-API, CCU-IO und HomeStatus Funktionen nutze, also nur eine URL senden muss und die Antwort nicht brauche, umgehe ich die GETSITE Funktion erfolfreich mit der Funktion "StartProgramm("wget -q -O /var/datadisk/Ansage.txt http://BEFEHL)". Das Ergebnis ist das gleiche, mein Workaround benötigt allerdings deutlich weniger als 1 Sekunde, die GETSITE Funktion braucht > 10 Sekunden um ein einfaches "OK" zu empfangen. Mit dem Workaround kann ich grundsätzlich leben, schöner wäre es allerdings ohne Workaround auszukommen, also wenn die GETSITE Funktion beschleunigt werden könnte. Zudem ist GETSITE die einzige Möglichkeit um XML Dateien einzulesen. Hier fehlt der Befehl LESEDATEI, also ein Befehl um den Inhalt einer Textdatei in eine Variable zu schreiben.

Bei der GETCCUSYSVAR Funktion habe ich bis heute leider keinen Workaround gefunden. Mit jedem Aufruf dieser Funktion wird das Makro für ca. 5-6 Sekunden blockiert. Ein einzelner Aufruf würde nicht schaden, die GETCCUSYSVAR Funktion ist allerdings der einzige Weg um Systemvariablen und CUxD Geräte und Parameter auszulesen. Ich muss diesen Befehl entsprechend pro Projekt etwa 30 mal verwenden - was leider eine "Echtzeit" Anwendung bei > 2 Minuten Makrolaufzeit unmöglich macht. Sämtliche Apps die es für iOS und Android gibt, zeigen Systemvariablen nahezu in Echtzeit an - es muss also technisch auch besser gehen.
Ich würde es sehr begrüßen, wenn die GETCCUSYSVAR Funktion hinsichtlich der Geschwindigkeit überarbeitet werden könnte. Für SETCCUSYSVAR gilt das gleiche, diese Funktion verwende ich allerdings etwas seltener.
Der "Königsweg" wäre es allerdings, wenn man genau wie Geräte auch die Systemvariablen importieren könnte und diese dann ohne Umweg über GETCCUSYSVAR nutzen und beschreiben könnte.

Gruß, Tobias.

P.S.: Den Wunsch hatte ich vor 10 Tagen auch schon per Mail an Contronics mitgeteilt, leider ohne Resonanz. Wenn ich nicht der einzige mit diesem Wunsch bin, dann wäre es gut dies Contronics wissen zu lassen ;-)
--------------------------------------------
Im Einsatz und empfehlenswert:
RaspberryMatic,IO.Broker, Homeputer Studio; CuXD; PocketControl, HomeStatus, Robonect, Alexa, io.Broker
------------------------------------------

contronics-RK
Beiträge: 954
Registriert: 18.07.2006, 15:58

Re: GETCCUSYSVAR Fehler bei leerem Inhalt? + Geschwindigkeit

Beitrag von contronics-RK » 08.01.2015, 16:03

Hallo,

wir werden prüfen inwieweit es möglich ist einen http-Request ohne warten auf Antwort einzubauen.
Wenn mit einem solchen http-Spezial-Request dann ein Gerät angesprochen wird, dass eine Antwort schicken will (was normalerweise immer der Fall sein sollte), das aber nicht kann weil die Netzwerkverbindung schon geschlossen wurde, kann es sein, dass dieses Gerät dann nicht mehr richtig funktioniert - es lauft in einen Timeout. Je nachdem wie solch ein Problem am Remote-Gerät abgefangen ist kann es im schlimmsten Fall auch abstürzen.
Die Anweisungen SETCCUSYSVAR und GETCCUSYSVAR müssen im Hintergrund parallel ausgeführt um die ExecEngine nicht zu lange aufzuhalten.
Dahinter verbergen sich hhtp-Requests an die WEB-UI Logikschicht. Das ist die einzige Möglichkeit WEB-UI-Systemvariablen im laufenden Betrieb zusetzen oder abzufragen. Die lange Ausführungszeit liegt an der langen Antwortzeit durch die WEB-UI-Logikschickt. Da können wir leider nichts schneller machen.
Mit freundlichem Gruss
CL-control - Ralph Krapoth
http://www.cl-control.de
Bei Fragen bitte keine PMs, sondern mail an technik@cl-control.de
PMs werden nicht regelmässig kontrolliert und und können unbeantwortet bleiben.

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: GETCCUSYSVAR Fehler bei leerem Inhalt? + Geschwindigkeit

Beitrag von buempi » 08.01.2015, 16:17

Hallo Herr Krapoth
contronics-RK hat geschrieben:Dahinter verbergen sich hhtp-Requests an die WEB-UI Logikschicht. Das ist die einzige Möglichkeit WEB-UI-Systemvariablen im laufenden Betrieb zusetzen oder abzufragen. Die lange Ausführungszeit liegt an der langen Antwortzeit durch die WEB-UI-Logikschickt.
... ist das nicht der gleiche Weg, wie wenn man eine solche Abfrage bzw. ein Setzen über den Browser macht; und da kommt die Antwort jeweils innert Sekundenbruchteilen:

Code: Alles auswählen

http://192.168.x.xx:8181/blabla.exe?Antwort=dom.GetObject("Anwesenheit").Value()
Viele Grüsse
Bümpi

Tobias78
Beiträge: 1464
Registriert: 27.06.2010, 01:01
Wohnort: Braunschweig
Hat sich bedankt: 4 Mal

GETCCUSYSVAR Fehler bei leerem Inhalt? + Geschwindigkeit

Beitrag von Tobias78 » 11.01.2015, 22:02

Hallo Herr Krapoth,
ich stimme Bümpi voll zu. 1 s ist plausibel. Alles darüber nicht. JEDE andere App schafft eine ganze Seite voll Systemvariablen innerhalb von 1 s zu aktualisieren und genau so schnell auch zu setzen. Es muss also einen schnelleren Weg geben!
Gruß, Tobias.
--------------------------------------------
Im Einsatz und empfehlenswert:
RaspberryMatic,IO.Broker, Homeputer Studio; CuXD; PocketControl, HomeStatus, Robonect, Alexa, io.Broker
------------------------------------------

contronics-RK
Beiträge: 954
Registriert: 18.07.2006, 15:58

Re: GETCCUSYSVAR Fehler bei leerem Inhalt? + Geschwindigkeit

Beitrag von contronics-RK » 12.01.2015, 08:48

Hallo,

es kann sein, dass die lange Antwortzeit daran liegt, dass die Abfrage von der ExecEngine als seperater Thread in den Hintergund gestellt wird damit die normale Bearbeitung nicht auf die Antwort warten muss. Das ist unbedingt nötig, da sonst die Ausführung der ExecEngine bis zur Antwort des http-Requests unterbrochen wäre.
Evtl. liegt die lange Antwortzeit daran, dass dieser Hintergundprozess erst erstellt werden muss bzw. mit niedrigerer Priorität läuft. Wir werden das prüfen und versuchen diese Abfragen schneller zu machen.
Mit freundlichem Gruss
CL-control - Ralph Krapoth
http://www.cl-control.de
Bei Fragen bitte keine PMs, sondern mail an technik@cl-control.de
PMs werden nicht regelmässig kontrolliert und und können unbeantwortet bleiben.

Tobias78
Beiträge: 1464
Registriert: 27.06.2010, 01:01
Wohnort: Braunschweig
Hat sich bedankt: 4 Mal

Re: GETCCUSYSVAR Fehler bei leerem Inhalt? + Geschwindigkeit

Beitrag von Tobias78 » 12.01.2015, 13:16

Hallo Contronics,
vielen Dank für die Mühe, bitte in dem Zug auch prüfen, warum Systemvariablen mit Inhalt "" nicht übernommen werden.
Gruß, Tobias.
--------------------------------------------
Im Einsatz und empfehlenswert:
RaspberryMatic,IO.Broker, Homeputer Studio; CuXD; PocketControl, HomeStatus, Robonect, Alexa, io.Broker
------------------------------------------

Antworten

Zurück zu „homeputer CL - Bugs & Updatewünsche“