CUxD System-Exec Dreambox abfragen

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

Moderator: Co-Administratoren

Antworten
DowJoe
Beiträge: 39
Registriert: 24.09.2008, 22:26

CUxD System-Exec Dreambox abfragen

Beitrag von DowJoe » 16.06.2013, 19:47

Hallo,
ich möchte auf der Dreambox eine Nachricht von der CCU erhalten und mit JA/NEIN bestätigen und diese Anwort dann in eine Variable der CCU eintragen.
Klappen tut bis jetzt die Nachricht an die Dreambox mit CUxD (System-Exec Gerät).

!Meldung auf DB
string url="'http://192.168.XXX.XXX/web/message?text ... timeout=10'";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O - "#url);

Nicht klappen tut die Abfrage des Ergebnisses. Wobei folgendes über Browser beantwortet wird:
_ttp://192.168.XXX.XXX/web/messageanswer?getanswer=now
mit
Bei Ja oder garkeiner Reaktion: True Answer is YES!
Bei Nein: True Answer is NO!
Wenn der DB vorher garkeine Frage gestellt wurde oder wenn die Antwort bereits einmal abgefragt wurde: False No answer in time

Das Skript zum Abfragen vom Chris das ich verwende sieht so aus:

!Antwort der DB Auslesen und in Variable SV DB Antwort schreiben
string antwort;

string url="'http://192.168.XXX.XXX/web/messageanswer?getanswer=now'";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - "#url);
string aw = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

antwort = aw.Find("True");

if ( antwort == -1 )
{
dom.GetObject('SV DB Antwort').State(0);
}
if ( antwort > 0)
{
dom.GetObject('SV DB Antwort').State(1);
}

Wenn ich das Skript Starte, dann bekomme ich nach Kontrolle mit dem Browserbefehl oben, die Antwort von JA bzw. Nein.
Was heist, dass die CCU/CUxD die Dream garnicht abgefragt haben kann mit dem Skript.
Wenn ich CMD_SETS durch CMD_EXEC ersetze, erhalte ich mit dem Browserbefehl zur Kontrolle, die Antwort:False No answer in time
Heist wohl das jetzt der Kontakt CCU/CUxD mit der DReam zum Abfragen stattgefunden hat.

Jemand ein Tip, wie ich die Variable "SV DB Antwort" mit dem Skript gefüllt bekomme?
mfg. Joe

Benutzeravatar
uwe111
Beiträge: 4806
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 239 Mal
Kontaktdaten:

Re: CUxD System-Exec Dreambox abfragen

Beitrag von uwe111 » 16.06.2013, 22:47

Hallo Joe,

Bevor Du CMD_RETS bzw. CMD_RETL nutzen kannst, musst Du es immer zuerst mittels CMD_QUERY_RET aktivieren.

Also:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string aw = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
Viele Grüße,

Uwe.
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: CUxD System-Exec Dreambox abfragen

Beitrag von grissli1 » 17.06.2013, 06:24

Hi,

wurde das in den neuen CUxD Versionen so implementiert? Ich benutze noch die 0.570 und da funktioniert es ohne Probleme.
Weißt du auch zufällig den Grund für das jetzige Muss zur Aktivierung?

Viele Grüße
Chris
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

Benutzeravatar
Sammy
Beiträge: 9172
Registriert: 09.09.2008, 20:47
Hat sich bedankt: 15 Mal
Danksagung erhalten: 174 Mal

Re: CUxD System-Exec Dreambox abfragen

Beitrag von Sammy » 17.06.2013, 07:51

Hallo,

die Begründung steht hier: http://homematic-forum.de/forum/viewtop ... 34#p101037

Gruß Sammy
Links: CCU-Logik, Tipps für Anfänger, WebUI-Doku, Expertenparameter, virtuelle Aktorkanäle
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: CUxD System-Exec Dreambox abfragen

Beitrag von grissli1 » 17.06.2013, 08:30

Hi,

Danke für den Link!

Viele Grüße
Chris
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

DowJoe
Beiträge: 39
Registriert: 24.09.2008, 22:26

Re: CUxD System-Exec Dreambox abfragen

Beitrag von DowJoe » 17.06.2013, 15:05

uwe111 hat geschrieben:Hallo Joe,

Bevor Du CMD_RETS bzw. CMD_RETL nutzen kannst, musst Du es immer zuerst mittels CMD_QUERY_RET aktivieren.

Also:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string aw = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
Viele Grüße,

Uwe.
Danke Uwe,
hat super geklappt!
Danke Chris, ohne Deine Vorlage würde ich heute noch suchen.
Das blöde ist nur um das Sinnvoll nutzen zu können, muss man Nein sagen um einen Vorgang auszulösen.
Da die Rückmeldung für JA und nichts tun das selbe ist, kann man eigentlich bei der Dream nur das NEIN sinnvoll auswerten.
Ich habe mal jetzt das "True" in Find durch "NO!" ersetzt und das funktioniert dann auch zuverlässig. Da die Variable wirklich nur auf Wahr gesetzt wird, wenn man die Nein-Taste gedrückt hat. Sonst würde die CCU ja immer wenn niemand zuhause ist, die Tür öffnen. :roll:
mfg. Joe

grissli1
Beiträge: 2268
Registriert: 22.06.2012, 17:46
System: Alternative CCU (auf Basis OCCU)
Wohnort: Tirol/Austria
Hat sich bedankt: 13 Mal
Danksagung erhalten: 2 Mal

Re: AW: CUxD System-Exec Dreambox abfragen

Beitrag von grissli1 » 17.06.2013, 16:40

Hi Joe,

das ist interessant. Muss ich auch mal auswerten.
Danke für den Hinweis.

Viele Grüße
Chris

Gesendet von meinem A700 mit Tapatalk 2
System: RaspberryMatic 3.41.11.20190126 auf RPi3, ReverseProxy auf RPi3

Benutzeravatar
metaxa
Beiträge: 649
Registriert: 01.10.2011, 00:03
Wohnort: südliches Wien
Hat sich bedankt: 3 Mal

Re: CUxD System-Exec Dreambox abfragen

Beitrag von metaxa » 29.09.2013, 19:13

DowJoe hat geschrieben:Danke Uwe,
hat super geklappt!
Ich steige leider nicht dahinter, ich bastle jetzt schon seit Stunden erfolglos herum :roll:

Ich möchte den aktuellen Zustand meiner DM abfragen, um sie nicht unabsichtlich mit dem Befehl http://192.168.XXX.XXX/web/powerstate?newstate=0 die Box auszuschalten wenn sie schon läuft. Die Parameter 4 = Wakeup form Standby & 5 = Standby funtionieren leider bei mir nicht. Nur die Parameter 0 = Toogle Standby & 1 = Deepstandby & 2 = Reboot & 3 = Restart Enigma2

Im erweiterten Scriptparser habe ich getestet:

Code: Alles auswählen

string url = "http://192.168.XXX.XXX/web/powerstate";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O -  '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string aw = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();

! antwort = aw.Find("false");

! if ( antwort == -1 ){dom.GetObject("svh_AW_DM").State(0);
! }
! if ( antwort > 0){dom.GetObject("svh_AW_DM").State(1);
! }

WriteLine(aw);
WriteLine("Ende");
Als Ergebins bekome ich nur "Ende".

Wenn ich http://192.168.XXX.XXX/web/powerstate im Browser eingebe erhalte ich
<e2powerstate><e2instandby>false
</e2instandby></e2powerstate>

oder
<e2powerstate><e2instandby>true
</e2instandby></e2powerstate>


Ich möchte als nächsten Step einfach nur die Rückmeldung in der Scriptvariablen "aw" stehen haben, dann beschäftige ich mich mit dem Find-Befehl :?

Was mache ich bis jetzt falsch?
Herzlichen Dank für Eure etwaige Hilfe!
Lg
mxa

Benutzeravatar
metaxa
Beiträge: 649
Registriert: 01.10.2011, 00:03
Wohnort: südliches Wien
Hat sich bedankt: 3 Mal

Re: CUxD System-Exec Dreambox abfragen

Beitrag von metaxa » 29.09.2013, 20:07

Fehler selbst gefunden!
Falsch:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O -  '"#url#"'");
Richtig:

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O -  '"#url#"'");
Jetzt widme ich einmal dem Befehl "x.find". Funktioniert natürlich nicht auf Anhieb :wink:

lg
mxa

Antworten

Zurück zu „CUxD“