Access CCU (Actors & Sensors) via php

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

Benutzeravatar
kaju74
Beiträge: 2050
Registriert: 06.03.2007, 13:14
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Access CCU (Actors & Sensors) via php

Beitrag von kaju74 » 24.04.2009, 16:16

Hi...

Sorry...bin ein wenig im Stress und kann nicht alles lesen...

Hast Du das Skript von Alex modifiziert? Versuche mal, sämtliche Anfragen nicht über spezielle Typen zu schicken sondern nimm immer einen String...das klappt am besten. Wenn Du also für ON_TIME einen Zeitwert übermitteln möchtest (z. B. 2 Sekunden), dann übermittle "2.0" als String und nicht als Float/Double. Evtl. muss da das PHP Skript angepasst werden. Das Problem mit dem Error hatte ich auch schon.

Alternativ ersetzte mal Punkt durch Komma bzw. vs. - je nach System bedeutet ein Punkt etwas anderes...

Ich muss am WE eh' noch einiges auf der CCU vorbereiten...falls es nicht klappt, kann ich das gerne nochmals mit der PHP Geschichte bei mir probieren...melde Dich dann nochmal!

Gruß,
kaju

Christoph
Beiträge: 283
Registriert: 28.07.2007, 13:12

Re: Access CCU (Actors & Sensors) via php

Beitrag von Christoph » 24.04.2009, 16:24

Hi,

also bei mir klappt das Script. Ich benutze das um den Batteriestatus div. Geräte abzufragen. Allerdings habi ich das für die IPS modifiziert. daher kann ich jetzt Deine Sachen nicht testen.

Versuche doch erst mal einen Aktor normal einzuschalten. Wenn das klappt, dann kannst Du ja den ON_TIME-Befehl einfügen. Wenns nicht klappt, dann muss ich das Script bei mir noch mal im Original einspielen.

Ach ja, auf welchem Webserver lässt Du das Script laufen? Ich lasse das über den Webserver der IPS laufen. Alternativ könnte ich noch den IIS testen wenn es bei Dir nicht laufen will.

Ciao, Christoph.

agen
Beiträge: 39
Registriert: 11.03.2008, 09:28
Danksagung erhalten: 2 Mal

Re: Access CCU (Actors & Sensors) via php

Beitrag von agen » 24.04.2009, 18:56

aaah - jetzt wird´s klar was Du willst:

das problem ist dass Du tatsächlich die Taste ansteuerst was natürlich nicht klappt.

Aber bei Fernbedienungen haben die "Simulierten Tasten" eigene Adressen unterschieden nach kurz und lang (gedrückt)

ich habe mal einen Ausschnitt aus meiner homematic.regadom drangehängt - hier wird nach den Tasten unterschieden und diese simuliert Taste hat eine eigene id (3234)

was auf jeden fall funktionieren müsste: lade dir mit ftp deine homematic.regadom von der CCU und suche nach der adresse (id) des gewünschten Schalters und setzte den statt des EEQ-names in deinen Aufruf.

Wenn ich das richtig sehe ist die Alternative das Script entsprechend zu erweitern, um PRESS_LONG / PRESS_SHORT analog den INSTALL_TEST aktionen - kann es im Moment nicht selber ausprobieren da ich nicht an meine CCU rankomme .

Code: Alles auswählen

						<id>3234</id>
						<name>BidCos-RF.EEQ0035724:15.PRESS_LONG</name>
						<type>393281</type>
						<enabled>1</enabled>
						<accessrights>4294967295</accessrights>
						<objflgs>1</objflgs>
						<metadata>
							<count>6</count>
							<property>CONTROL</property>
							<value>BUTTON.LONG</value>
							<property>MAX</property>
							<value>true</value>
							<property>MIN</property>
							<value>false</value>
							<property>TAB_ORDER</property>
							<value>1</value>
							<property>TYPE</property>
							<value>ACTION</value>
							<property>UNIT</property>
							<value></value>
						</metadata>
					</obj>
Andreas

Christoph
Beiträge: 283
Registriert: 28.07.2007, 13:12

Re: Access CCU (Actors & Sensors) via php

Beitrag von Christoph » 25.04.2009, 07:38

[quote="agen"]aaah - jetzt wird´s klar was Du willst:[/quote]

Hi,

ich glaube klar ist jetzt nichts mehr.

Ich denke es sollte klar sein, dass man nicht per Script eine Taste drücken kann. Wozu auch? Es soll ja ein oder mehrere Aktoren geschaltet werden. Das lässt sich per Script realisieren.

Wie im ursprünglichen Script steht: "setValue AddressOfActor:2 STATE 1 " muss die Adresse des Actors eingetragen werden. Eine Fernbedienung ist kein Actor.

Kaann denn jemand bestätigen, dass man statt der Adresse auch die ID benutzen kann? Mal abgesehen davon, dass die Adresse aus dem WebGUI einfach auslesbar ist, die ID aber relativ umständlich zu bekommen ist.

Ciao, Chrstoph.

OhOme
Beiträge: 88
Registriert: 13.01.2009, 22:21
Danksagung erhalten: 4 Mal

Re: Access CCU (Actors & Sensors) via php

Beitrag von OhOme » 25.04.2009, 08:23

Christoph hat geschrieben:
agen hat geschrieben:aaah - jetzt wird´s klar was Du willst:
Hi,

ich glaube klar ist jetzt nichts mehr.

Ich denke es sollte klar sein, dass man nicht per Script eine Taste drücken kann. Wozu auch? Es soll ja ein oder mehrere Aktoren geschaltet werden. Das lässt sich per Script realisieren.

Wie im ursprünglichen Script steht: "setValue AddressOfActor:2 STATE 1 " muss die Adresse des Actors eingetragen werden. Eine Fernbedienung ist kein Actor.

Kaann denn jemand bestätigen, dass man statt der Adresse auch die ID benutzen kann? Mal abgesehen davon, dass die Adresse aus dem WebGUI einfach auslesbar ist, die ID aber relativ umständlich zu bekommen ist.

Ciao, Chrstoph.
Nein, ich möchte keine Aktoren schalten.
Ich "schalte" per Fernbedienung (Taste15) eine Systemwariable auf den Wert "an/aus" langer Tastendruck =an kurzer Tastendruck=aus. Ich suche also einen Weg, eine Systemwariable aus meiner
Webanwendung heraus zu ändern. (soetwas ähnliches wie das scharfschalten einer Alarmanlage über Web)
Das schalten von Aktoren mit diesem php-Skript funktioniert bei mir bereits einwandfrei.
Da ich keine andere Möglichkeit kenne, von aussen eine Systemvariable zu ändern, bin ich auf die Idee mit der Fernbedienung gekommen.

Gruß

agen
Beiträge: 39
Registriert: 11.03.2008, 09:28
Danksagung erhalten: 2 Mal

Re: Access CCU (Actors & Sensors) via php

Beitrag von agen » 25.04.2009, 09:08

Also schön noch mal der Reihe nach:

OhOme möchte gerne das gleiche tun was man über das CCU Web-Interface bei Fernbedienungen tun kann: nämlich die kurzen und langen Tastendrücke simulieren - wozu ist erst mal egal :wink:

Da man "natürlich" nicht der CCU sagen kann drücke die Taste - gibt es eine eigene Adressierung zum Auslösen dieser Events:
1. PRESS_SHORT
2. PRESS_LONG
damit das auch mit dem Script von Alex funktioniert braucht man eine kleine Erweiterung in der hmcontrol.php:

Code: Alles auswählen

  case "setValue": 
     $hm->AddParam($HTTP_GET_VARS["what"],3);
     if (    $HTTP_GET_VARS["what"] == 'STATE' 
          || $HTTP_GET_VARS["what"] == 'INSTALL_TEST'
          || $HTTP_GET_VARS["what"] == 'INHIBIT'
          || $HTTP_GET_VARS["what"] == 'PRESS_SHORT'
          || $HTTP_GET_VARS["what"] == 'PRESS_LONG')  //value is boolean type    
         $hm->AddParam($HTTP_GET_VARS["value"],2);
     if ($HTTP_GET_VARS["what"] == 'ON_TIME')      /
also die Erweiterung um die Werte PRESS_SHORT und PRESS_LONG.

ruft man das script per

Code: Alles auswählen

http://10.90.1.2:90/cgi-bin/hmcontrol.php?method=setValue&address=EEQ0035794:15&what=PRESS_SHORT&value=1
auf, so wird wie gewünscht das entsprechende Tastendruckevent ausgelöst - und was auch immer mit dem entsprechenden Tastedruck der Taste verknüpft ist (Systemvariable, Aktor, Programm oder Selbstzerstörung :mrgreen: ) wird ausgelöst.

Code: Alles auswählen

Request: "setValue"
Param[0]="EEQ0035794:15" Type(3)
Param[1]="PRESS_SHORT" Type(3)
Param[2]="1" Type(2)
Answer:
Length:8
Value: (empty = OK)!
@Christoph q.e.d :P

Viele Grüsse

Andreas

OhOme
Beiträge: 88
Registriert: 13.01.2009, 22:21
Danksagung erhalten: 4 Mal

Re: Access CCU (Actors & Sensors) via php

Beitrag von OhOme » 25.04.2009, 21:24

KEINER VERSTEHT MICH !!!!!

.. nur Andreas :D

thx genau das was ich benötigte. Jetzt kann ich die FB über mein Webinterface komplett simulieren DANKE !!!!

Gruß
Olli

saschahb
Beiträge: 124
Registriert: 27.04.2009, 21:39

Re: Access CCU (Actors & Sensors) via php

Beitrag von saschahb » 10.06.2009, 12:22

Christoph hat geschrieben: also bei mir klappt das Script. Ich benutze das um den Batteriestatus div. Geräte abzufragen. Allerdings habi ich das für die IPS modifiziert. daher kann ich jetzt Deine Sachen nicht testen.
Wie fragst Du denn die Geräte nach Ihrem Batteriestatus? Ich finde leider keine Möglichkeit an die Daten heranzukommen... Hast Du mal ein Beispielscript?

Grüße
Sascha

Christoph
Beiträge: 283
Registriert: 28.07.2007, 13:12

Re: Access CCU (Actors & Sensors) via php

Beitrag von Christoph » 10.06.2009, 18:47

sh. http://homematic-forum.de/forum/viewtop ... 885#p16885, da habe ich das Script reingesetzt.
Ciao, Christoph.

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“