Aufrufen eines Schaltbefehls via URL

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Mr.Fusion
Beiträge: 154
Registriert: 24.12.2008, 15:55

Re: Aufrufen eines Schaltbefehls via URL

Beitrag von Mr.Fusion » 19.09.2018, 12:44

Bin da kein Profi, aber evtl ' statt " (%27 statt %22) ?
Danke für den Tipp. Habe ich gerade mal versucht. Leider das gleiche Ergebnis

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

Re: Aufrufen eines Schaltbefehls via URL

Beitrag von Sammy » 19.09.2018, 13:06

schau mal in der CCU-Firewall nach, ob da Zugriff erlaubt ist
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!

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

Re: Aufrufen eines Schaltbefehls via URL

Beitrag von alchy » 19.09.2018, 17:09

Mr.Fusion hat geschrieben:
19.09.2018, 12:17
Das Ganze hat Jahrelang funktioniert und von einem auf den anderen Moment ging es nicht mehr.
Wohl kaum. :roll:
Die Aufrufe schlagen schon mal grundsätzlich fehl, da so viele Schreibfehler enthalten sind, das das System gar nicht anders kann und noch nie konnte.

http://10.0.0.10:8181/a.exe?antwort=dom.getobject("klingel tor").programexecute()

Funktionieren sollte also:

Code: Alles auswählen

http://10.0.0.10:8181/alchy.exe?sagt=dom.GetObject("klingel tor").ProgramExecute();

Tipp:
Um einen weiteren möglichen Fehler auszumerzen benutze den folgenden Aufruf für den Programmstart:

Code: Alles auswählen

http://10.0.0.10:8181/alchy.exe?sagt=dom.GetObject(ID_PROGRAMS).Get("klingel tor").ProgramExecute();
bzw.statt der fehlerhaften:

http://10.0.0.10:8181/a.exe?antwort=dom.getobject("BidCos-wired.GEQ0007491:13.STATE").State(1)

Code: Alles auswählen

http://10.0.0.10:8181/alchy.exe?sagt=datapoints.Get("BidCos-Wired.GEQ0007491:13.STATE").State(1);
Das es den Datenpunkt bzw. das Programm auch geben muss, versteht sich von selbst.

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.

Mr.Fusion
Beiträge: 154
Registriert: 24.12.2008, 15:55

Re: Aufrufen eines Schaltbefehls via URL

Beitrag von Mr.Fusion » 19.09.2018, 23:03

alchy hat geschrieben:
19.09.2018, 17:09

Tipp:
Um einen weiteren möglichen Fehler auszumerzen benutze den folgenden Aufruf für den Programmstart:

Code: Alles auswählen

http://10.0.0.10:8181/alchy.exe?sagt=dom.GetObject(ID_PROGRAMS).Get("klingel tor").ProgramExecute();
Wow Alchy, vielen vielen Dank!! Ich möchte Dich gerne zu einem Kasten Bier (oder Getränk Deiner Wahl) einladen. Schicke mir bitte Deine paypal-Addresse. :) Finde es immer toll, wenn sich jemand die Zeit nimmt, jemand anderem zu helfen.

Es funktioniert tatsächlich jetzt. Die Ausgangslage war die: Ich habe eine Türsprechanlage (2n Vario IP), die beim Klingeln am Tor parallel diese URL aufruft, was dzau führt, dass der MP3-Gong klingelt. Das hat wirklich Jahrelang genau so funktioniert wie es hinterlegt ist. Nun habe ich ein Firmware-update auf der Vario IP-gemacht, backup zurückgespielt und seitdem ging es nicht mehr. Zum testen habe ich die URL tatsächlich aus der Vario IP heraus kopiert. Kann mir nur vorstellen, dass während es Firmware updates in der Sprechanlage irgendetwas mit den URLs passiert ist.

Phil80
Beiträge: 6
Registriert: 24.03.2020, 19:35

Re: Aufrufen eines Schaltbefehls via URL

Beitrag von Phil80 » 27.03.2020, 21:27

Hallo zusammen,

ich bin jetzt seit einigen Stunden mit dem Thema beschäftigt und bis maximal frustriert. Zur Info: Das ist mein erstes "richtiges" Programm an dem ich arbeite und ich habe gerade erst angefangen mich mit Homematic zu beschäftigen, bitte also um Nachsicht, falls ich zu doof war. Ich war ja schon froh den Thread hier gefunden zu haben. :)

Was ich machen will:
Eine Variable per HTTP-Befehl ändern. Das klappt auch dank den Hinweisen hier soweit wunderbar mit

Code: Alles auswählen

x.x.x.x:8181/test.exe?x=dom.GetObject("AlarmStatus").Variable(0);
Allerdings wird die Variable nur im Hintergrund geändert. Bedeutet: Weder in der Variablen-Übersicht ändert sich die Variable automatisch (um die Änderung zu sehen, muss man die Ansicht der Variablen neu laden), noch "merken" irgendwelche Programme, dass sich der Wert geändert hat.

Ich habe jetzt versucht einen kleinen Umweg zu gehen und einen virtuellen Taster über ein Zentralenprogramm mit der Variable zu verknüpfen:
Wenn VIRT_Taster_1: kurzer Tastendruck
Dann: AlarmStatus = false
Das klappt auch, solange ich den virtuellen Taster "manuell" (das mache ich über Redmatic) betätige. Allerdings bekomme ich es einfach nicht gebacken den Taster per HTTP-Aufruf zu triggern.
Ich habe es so versucht:

Code: Alles auswählen

x.x.x.x:8181/test.exe?x=dom.GetObject("HmIP-RF.<KANAL-ID>:1.PRESS_SHORT").STATE(1);
Als Ergebnis bekomme ich dann:

Code: Alles auswählen

<xml>
<exec>/test.exe</exec>
<sessionId/>
<httpUserAgent>
User-Agent: blabla
</httpUserAgent>
<x>HmIP-RF.<KANAL-ID>1.PRESS_SHORT</x>
</xml>
Dazu jetzt 2 Fragen:
1. Gibt es eine Möglichkeit die Variable so per HTTP-Aufruf zu ändern, dass das System die Änderung auch mitbekommt?
2. Was mache ich bei meinem Aufruf des virtuellen Tasters falsch?

Kurz zu meinem System:
Ich habe eine CCU3, die ich heute auf die neueste Raspberrymatic Version gebracht habe. Darauf läuft auch noch Redmatic. Alle Komponenten die ich einsetze sind Homematic-IP-Geräte.
Zuletzt geändert von alchy am 27.03.2020, 21:32, insgesamt 1-mal geändert.
Grund: Code in Codetags posten

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

Re: Aufrufen eines Schaltbefehls via URL

Beitrag von alchy » 27.03.2020, 21:41

1. statt .Variable() einfach .State() verwenden
2. .State() und nicht .STATE()

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.

Phil80
Beiträge: 6
Registriert: 24.03.2020, 19:35

Re: Aufrufen eines Schaltbefehls via URL

Beitrag von Phil80 » 27.03.2020, 21:57

oh man. unglaublich.
Ich bin mir ziemlich sicher, dass ich beides schon einmal ausprobiert hatte - da war aber dann vermutlich noch etwas anderes falsch.
Wie auch immer:

Vielen Dank. :)

jayjo
Beiträge: 25
Registriert: 15.03.2017, 17:05
Hat sich bedankt: 1 Mal

Re: Aufrufen eines Schaltbefehls via URL

Beitrag von jayjo » 29.03.2020, 15:50

Hi, mit dem folgendem Befehl kann man eine Variable auslesen. Wie könnte ich nun die Ausgabe in meine lokale Website zur Homesteuerung einbauen und anzeigen/ausgeben lassen? Man möchte sich ja nicht immer die Ausgabeseite ohne style-infos anschauen. ;)

Code: Alles auswählen

http://192.x.x.x/x.exe?Antwort=dom.GetObject(%22Solarertrag-gestern%22).Variable()
Grüße
Jay

laschatz
Beiträge: 51
Registriert: 25.09.2010, 14:45
Wohnort: Stuttgart
Danksagung erhalten: 1 Mal

Re: Aufrufen eines Schaltbefehls via URL

Beitrag von laschatz » 17.03.2021, 17:13

Hi,

Sorry, ich blick das einfach nicht. Ich moechte via ein http Befehl, einen vitual Taster kurz ausloesen.

Situation ist so, ich habe den QVR Face Insight auf mein Qnap installiert und es funktioniert in verbindung mit mein DoorBird Aussenstation einwandfrei. Der Qnap hat die moeglichkeit jetzt ein Http befehl ausszuloesen beim "Gesicht erkannt". Jetzt brauche ich zu wissen wie ich das Befehl schreibe das es ein Taster kurz drueckt.

Bei folgende script bin ich schon ganz frueh gescheitert, warum und wieso ruft man eine exe aus? Oder ist das nur ein Platzhalter?

http://xxx.xxx.x.xx:8181/blabla.exe?Ant ... ).State(1)

Angenommen ich moechte HMW-RCV-50 BidCoS-Wir:2 ausloesen, wie geht das? Eigentlich waere es egal, ein schaltaktor waere auch i.O. z.B. HMW-LC-Sw2-DR HEQ0228781:4.

Vielen Dank fuer Tips.

Larry

Benutzeravatar
robbi77
Beiträge: 13845
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 181 Mal
Danksagung erhalten: 738 Mal

Re: Aufrufen eines Schaltbefehls via URL

Beitrag von robbi77 » 17.03.2021, 18:37

Code: Alles auswählen

http://192.168.1.24:8181/x.exe?Antwort=dom.GetObject("BidCos-Wired.xxQxxxxxxx:2.STATE").State(1)
Die IP ersetzen mit deiner und die x ersetzen mit der Seriennummer deiner CCU.

Das dies (x.exe?Antwort) vollkommen egal ist was da steht, außer das (.exe? ) ist ja schon genügend erwähnt worden.
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...

Antworten

Zurück zu „HomeMatic allgemein“