CuxD WebRequest doppelt

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
PhOst
Beiträge: 8
Registriert: 28.11.2015, 14:48

CuxD WebRequest doppelt

Beitrag von PhOst » 16.07.2016, 14:45

Guten Tag,
ich habe auf meiner CCU2 einen CuxD-Exec laufen.
Dieser ruft mir auf meinem RasPi alle halbe Minute ein Skript auf, welches unter anderen auch Eintrage in einer MySQL-Datenbank anlegt.
Nun tauchen die Einträge allerdings doppelt auf. Da ich da auch einen Zeitstempel mitgebe konnte ich bereits feststellen, dass es definitiv zweifache Aufrufe sind, da dieser Zeitstempel manchmal um eine Sekunde abweicht und ich dieses Verhalten mit manuellem Aufruf des php-Skriptes über URL nicht reproduzieren kann.

Woran kann das liegen?

MfG

dondaik
Beiträge: 12929
Registriert: 16.01.2009, 18:48
Wohnort: Steingaden
Hat sich bedankt: 1604 Mal
Danksagung erhalten: 222 Mal

Re: CuxD WebRequest doppelt

Beitrag von dondaik » 16.07.2016, 15:09

Glaskugel ....
ggw wären da die beteidigten programme usw ein hilfe bei der fehlersuch - nur mal so.
sorry, für den blöden kommentar.
-------
!!! der download der handbüchern auf den seiten von eq3 und das lesen der tips und tricks kann das hm-leben sehr erleichtern - das nutzen der suche nach schlagworten ebenso :mrgreen: !!!
wer schreibfehler findet darf sie behalten.

PhOst
Beiträge: 8
Registriert: 28.11.2015, 14:48

Re: CuxD WebRequest doppelt

Beitrag von PhOst » 16.07.2016, 16:43

Nunja mir fällt außer den drei bereits genannten (CuxD-System.Exec, php, mysql) nichts ein was da noch reinpfuschen sollte.
Auf der CCU läuft noch die XML API, auf das PHP Skript wird nicht anderweitig zugegriffen (außer zu Testzwecken über den direkten URL-Aufruf im Browser).
Höchstens das Skript selber habe ich vergessen:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - 'http://192.168.1.42/photovoltaik/day.php'");
dom.GetObject("CUxD.CUX2801001:1.CMD_RUNS").State(1);
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var power = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
var sysvar = dom.GetObject("Leistung Photovoltaik");
sysvar.Variable(power);
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - 'http://192.168.1.42/photovoltaik/day.php?output=average&span=5'");
dom.GetObject("CUxD.CUX2801001:1.CMD_RUNS").State(1);
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
power = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
sysvar = dom.GetObject("Leistung Photovoltaik Durchschnitt");
sysvar.Variable(power); 
Dabei ist zu beachten das ein MySQL Eintrag nur bei einem aufruf ohne sämtlich GET-Parameter erstellt wird, d.h. lediglich beim ersten Aufruf.

BadenPower

Re: CuxD WebRequest doppelt

Beitrag von BadenPower » 16.07.2016, 18:15

PhOst hat geschrieben:Nunja mir fällt außer den drei bereits genannten (CuxD-System.Exec, php, mysql) nichts ein was da noch reinpfuschen sollte.
Genau deshalb kam der Kommentar von dondaik.
dondaik hat geschrieben:Glaskugel ....
ggw wären da die beteidigten programme usw ein hilfe bei der fehlersuch
Das sieht so aus, als ob das Programm zweimal getriggert wird.
Daher Screenshot des Programmes zur weiteren Fehleranalyse hier posten.
.

PhOst
Beiträge: 8
Registriert: 28.11.2015, 14:48

Re: CuxD WebRequest doppelt

Beitrag von PhOst » 17.07.2016, 09:20

Okay, also hier ist jetzt der Screenshot von dem Programm.
Die Zeitsteuerung löst in einem Zeitintervall alle 30 Sekunden aus und das hinterlegte Skript steht ja bereits in meinem vorherigen Beitrag.
Es gibt keine anderen Skripte die einen CuxD-System.Exec verwenden, geschweige denn einen WebRequest über "Bordmittel" auf das PHP-Skript schicken.
Dateianhänge
Bildschirmfoto vom 2016-07-17 09-17-00.png

PhOst
Beiträge: 8
Registriert: 28.11.2015, 14:48

Re: CuxD WebRequest doppelt

Beitrag von PhOst » 22.07.2016, 16:06

Habe es inzwischen doch selber hinbekommen.
Die problematische Zeile war

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
Sobald ich diese entfernt hatte läuft es so wie gewünscht.

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

Re: CuxD WebRequest doppelt

Beitrag von alchy » 22.07.2016, 21:48

eigentlich sind *IMHO* die

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_RUNS").State(1);
zuviel, da es sich lt. Handbuch um ein HM-Script mit Rückgabe von STDOUT handelt.

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 „CUxD“