Seite 1 von 2

Aktor über xml Api schalten geht nicht

Verfasst: 03.10.2021, 10:42
von mick_we
Hallo,

ich brauche mal Hilfe, weil irgendwie bekomme ich es nicht hin oder bin zu blöd. Ich würde gerne meinen 3D Drucker über OctoPrint ein und ausschalten. Das ist auf der OctoPrint Seite auch kein Problem. Habe dazu auch schon eine Menge hier gelesen.

Damit ich den Aktor über z.B: eine URL EIn- und Ausschalten kann, habe ich XML-Api installiert, auch um die ID zu bekommen.

Code: Alles auswählen

<device name="Office Micha 3D-Printer" address="00021BE99C0450" ise_id="9987" interface="HmIP-RF" device_type="HMIP-PS" ready_config="true">
<channel name="Office Micha 3D-Printer:0" type="30" address="00021BE99C0450:0" ise_id="9988" direction="UNKNOWN" parent_device="9987" index="0" group_partner="" aes_available="false" transmission_mode="AES" visible="true" ready_config="true" operate="true"/>
<channel name="Office Micha 3D-Printer:Taster" type="17" address="00021BE99C0450:1" ise_id="10014" direction="SENDER" parent_device="9987" index="1" group_partner="" aes_available="false" transmission_mode="AES" visible="true" ready_config="true" operate="true"/>
<channel name="Office Micha 3D-Printer:Schaltausgang" type="26" address="00021BE99C0450:2" ise_id="10017" direction="UNKNOWN" parent_device="9987" index="2" group_partner="" aes_available="false" transmission_mode="AES" visible="true" ready_config="true" operate="true"/>
<channel name="Office Micha 3D-Printer:Schaltaktor" type="26" address="00021BE99C0450:3" ise_id="10022" direction="RECEIVER" parent_device="9987" index="3" group_partner="" aes_available="false" transmission_mode="AES" visible="true" ready_config="true" operate="true"/>
<channel name="Office Micha 3D-Printer:Schaltaktor 1" type="26" address="00021BE99C0450:4" ise_id="10029" direction="RECEIVER" parent_device="9987" index="4" group_partner="" aes_available="false" transmission_mode="AES" visible="true" ready_config="true" operate="true"/>
<channel name="Office Micha 3D-Printer:Schaltaktor 2" type="26" address="00021BE99C0450:5" ise_id="10036" direction="RECEIVER" parent_device="9987" index="5" group_partner="" aes_available="false" transmission_mode="AES" visible="true" ready_config="true" operate="true"/>
<channel name="Office Micha 3D-Printer:Wochenprogramm" type="26" address="00021BE99C0450:6" ise_id="10043" direction="UNKNOWN" parent_device="9987" index="6" group_partner="" aes_available="false" transmission_mode="AES" visible="true" ready_config="true" operate="true"/>
</device>
Ich habe jetzt so ziemlich alle IDs durch und auch mit verschiedenen Werten, also z.B.

Code: Alles auswählen

http://192.168.2.115/addons/xmlapi/statechange.cgi?ise_id=9987&new_value=1
Aber nichts funktioniert? Kann mir jemand helfen, was denn einmal die richtige ID wäre (Bei den meisten IDs kommt im Browser keine Rückmeldung ) und welcher Wert wofür ist?

Unendliche Dankbarkeit für jeden Tipp.

Re: Aktor über xml Api schalten geht nicht

Verfasst: 03.10.2021, 10:51
von Xel66
Du adressierst auch den Kanal 0. Der kann nicht schalten. Du musst schon einen Schaltkanal benutzen, der auch per WebUI oder von anderen verknüpften Tastern geschaltet wird. Also beispielsweise vom HmIP-PS den Kanal3 und eben dessen iseID (bei Dir 10022).

Gruß Xel66

Re: Aktor über xml Api schalten geht nicht

Verfasst: 03.10.2021, 10:52
von Baxxy
mick_we hat geschrieben:
03.10.2021, 10:42
Aber nichts funktioniert?
Ich gehe immer über den Kanalnamen...

Code: Alles auswählen

http://192.168.1.66:8181/bx.exe?x=channels.Get ("HMIP-PS C88:3 - Schaltkanal 1").DPByHssDP ("STATE").State(1)
Grüße, Baxxy

Re: Aktor über xml Api schalten geht nicht

Verfasst: 03.10.2021, 11:33
von mick_we
Ahhh, wie geil:

Code: Alles auswählen

http://192.168.2.115:8181/bx.exe?x=channels.Get%20(%22Office%20Micha%203D-Printer:Schaltaktor%22).DPByHssDP%20(%22STATE%22).State(1)
Funktioniert. Klasse. Danke

Re: Aktor über xml Api schalten geht nicht

Verfasst: 03.10.2021, 12:14
von Tyfys
Für diese Lösung ist nicht mal das XML-API erforderlich.

Gruß
Harry

Re: Aktor über xml Api schalten geht nicht

Verfasst: 03.10.2021, 12:23
von Black
wenn man die xml-api nicht unbedingt wirklich braucht (z.b. weil eine Handy app nicht anders auf die ccu zugreifen kann), sollte man selbst generierte Zugriffe meiner Meinung nach immer über die Remote Script APi machen.

Black

Re: Aktor über xml Api schalten geht nicht

Verfasst: 03.10.2021, 14:13
von mick_we
Ich habe es schon deinstalliert. So ist es ja viel genialer.

Re: Aktor über xml Api schalten geht nicht

Verfasst: 14.01.2022, 00:05
von derrapf
Was hast Du denn dann im Octoprint genau in die System-Kommandos geschrieben?

Bei mir funktioniert das nicht. Wenn ich im Raspi das Kommando

Code: Alles auswählen

wget -q http://192.168.111.160:8181/bx.exe?x=channels.Get("3D Drucker:1").DPByHssDP("STATE").State(1)
eingebe, dann bekomme ich den Fehler

Code: Alles auswählen

-bash: Syntaxfehler beim unerwarteten Wort `('
Dabei ist es egal ob ich die Spaces mit%20 und die " mit %22 schreibe oder nicht. Ob ich wget oder curl verwende...


mit

Code: Alles auswählen

 
  curl "http://192.168.111.160/addons/xmlapi/statechange.cgi?ise_id=59964&new_value=true"
funktioniert es.

Gruss Ralf

Re: Aktor über xml Api schalten geht nicht

Verfasst: 14.01.2022, 21:06
von Silverstar
Im ersten Fall ist die URL nicht in " eingefasst. Beim zweiten Beispiel schon.

Die bash interpretiert die Sonderzeichen in der URL als Kommandos für sie, wobei es ja Teile der URL sind, daher muss man solche Strings korrekt einfassen.

Mit

Code: Alles auswählen

wget -q 'http://192.168.111.160:8181/bx.exe?x=channels.Get("3D Drucker:1").DPByHssDP("STATE").State(1)'
sollte es gehen. Curl oder wget ist nicht das Problem, die Sonderzeichen sind es, die die shell interpretieren möchte.

In dem Fall mit ' eingefasst, damit nichts dazwischen interpretiert wird, denn dort tauchen unter anderem ja auch " auf.

Re: Aktor über xml Api schalten geht nicht

Verfasst: 14.01.2022, 21:28
von derrapf
Stimmt mit

Code: Alles auswählen

wget -q "http://192.168.111.160:8181/bx.exe?x=channels.Get("3D Drucker:1").DPByHssDP("STATE").State(1)"
Gibt' s keinen Syntaxfehler mehr; aber der Drucker geht trotzdem nicht an. Macht aber nichts; ich hab ja jetzt ne Lösung. Danke trotzdem.
Gruss Ralf