Hallo,
dann besorge ich mir jetzt mal einen HomePilot…
Danke für’s Angebot…
wolkensurfer
Hallo,
dann besorge ich mir jetzt mal einen HomePilot…
Danke für’s Angebot…
wolkensurfer
Hallo an Alle,
gibt es denn hier Neuigkeiten … es scheint als ob in den aktuellen Firmware Versionen des Homepilot der genannte Port nicht mehr genutzt wird. Wer hat denn den Homepilot aktuell mit IPS laufen? Wenn ja, wie?
Danke und Grüße,
MaLu
Hallo zusammen ! Würde mich auch interessieren wie es hier aktuell aussieht, da ich alle meine Fenster mit Radermacher Gutwickler ausstatten möchte und diese auch über IPS steuern möchte.
Danke Euch !
Hallo,
habe bei mir den Homepilot mit der aktuellen Version 3.4.0.0 am laufen und ich kann nach wie vor meine Gurtwickler damit ansteuern. Die Implementierung habe ich mit den Informationen aus diesem Thread umgesetzt und es funktioniert problemlos.
Gruß
wolkensurfer
Danke Dir ! Sobald ich meine habe und Probleme haben sollte komm ich auf dich zurück
Mit der Hilfe von Jürgen (belmondo2001) habe ich es nun geschafft, die Automationen der Geräte
am HomePilot abzufragen und zu setzen (z.B. Morgendämmerung an/aus).So können z.B. die 4 Tasten
an den Troll Basis DuoFern 5615 und sicherlich auch an den Gurtwicklern (ungetestet) abgefragt
und getätigt werden. Vielleicht kann es ja der ein oder andere gebrauchen.
<?
/**************************************************************************
* HomePilot Automationen
*
* Automationen:
* (*)Morgendämmerung: 0
* (*)Abenddämmerung: 1
* (*)Zeit: 2
* Manuellbetrieb: 3
* (*)Sonne: 4
* Regen: 5
* Wind: 6
*
* mit http://homepilot.local/deviceajax.do?devices=1
* bekommt man eine Deviceliste mit den Statis der Automationen
*
* mit http://homepilot.local/deviceajax.do?device=deviceID
* bekommt man den Status eines bestimmten Device
*
* Automationen die mit (*) gekennzeichnet sind, sind am
* Troll Basis DuoFern 5615 und RolloTron Standard DuoFern 1400
* und vermutlich noch anderen Geräten vorhanden. Alle anderen
* Automationen sind nur über den HomePilot einzusehen und zu ändern
***************************************************************************/
//IP vom HomePilot
$homepilotIP = 'homepilot.local';
//Geräte ID
$deviceID = '10000';
//Automations ID (siehe verfügbare Automationen oben in der Liste)
$automationID = '0';
//Zustand: true = an, false = aus
$state = false;
/**************************************************************************/
$strState = $state ? "true" : "false"; //Boolean in String konvertieren
$ch = curl_init('http://'.$homepilotIP.'/deviceajax.do');
curl_setopt($ch, CURLOPT_POSTFIELDS, "automation=1&data={%22did%22:{$deviceID},%22automation%22:{$automationID},%22state%22:{$strState}}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
print_r (json_decode($result));
curl_Close($ch);
?>
Ausgabe:
stdClass Object
(
[message] => Automation aktualisiert
[status] => uisuccess
)
Gruß Basti
Hallo in die Runde,
da ich Zuhause den Rolloport Duofern im Einsatz habe.
Würde ich gerne im IPS den Status des Garagentors
anzeigen. 100% geschlossen , 0% geöffnet.
Hat hierzu jemand einen Lösungsansatz wie das mittels
PHP zu lösen ist ?
Danke, Viele Grüße Alex
Hi,
sodela … einmal hier …
Im einfachsten Fall, hast Du zwei Icons eins Garage offen und eins für geschlossen. Eben für 0% oder 100%
Grüsse,
MaLu
Hallo Malu,
das steuert nur den Homepilot ich brauche ein Skript zum die Position
auslesen !
http://homepilot.local/deviceajax.do?devices=1
hier erhalte ich Statusmeldungen alle Geräte !
Unter
http://homepilot.local/deviceajax.do?device=10006
nur des 10006 , meine Frage ist nun wie bekomme ich es hin denn
Status der „Postion“ auszulesen und in eine Variable zu schreiben.
Somit kann ich definieren 0% -> geöffnet und 100% -> geschlossen
Danke, Grüße Alex
Hallo Alex,
da die Antwort vom HomePilot im JSON Format kommt, kannst du diese sehr leicht in ein Array
speichern.
Schau mal hier: PHP: json_decode - Manual
Und dann kannste dir ne Funktion schreiben, die aus dem Array die Position ausliest.
Zum Beispiel so (ungetestet):
function HP_getDevicePosition($fullDeviceStatus) {
if ($fullDeviceStatus['status'] === "ok") {
if (isset($fullDeviceStatus['device']['position'])) {
$result = $fullDeviceStatus['device']['position'];
} else {
// Position nicht gefunden
$result = false;
}
} else {
// Fehler
$result = false;
}
return $result;
}
Gruß Basti
Hey Basti,
ich hätte am liebsten drei Schalter mit Auf , Stop Zu und der Position
des Rolladen’s
Momentan habe ich das Skript aus der ersten Seite , ich starte es
dann bekomme ich eine Schwarzes Fenster mit :
„stdClass Object ( (message) => Command used: 2 …“
Auf jedenfall muss es ein Skript sein wo die Schalter im WF erstellt und
auch die Variable mit der Position, ich weiß nicht wie du es gelöst hast
aber wenn du es ähnlich hast könntest du dein Skript posten.
Grüße Alex
Mein Skript hat mehrere tausend zeilen und ist leider stark auf meine Situation zugeschnitten, deshalb ist das nicht so einfach.
Aber so könntest du vorgehen:
Aktionsskript Beispiel (*):
<?
$homepilotIp = "192.168.100.168"; // HomePilot IP
$rolloHomePilotId ="10000"; // Rollo GeräteID im HomePilot
$positionVarId = "12346"; // ID Variable Position
//////Wenn von WebFront bedient
if ($_IPS['SENDER'] == "WebFront") {
$pos = $_IPS['VALUE'];
$ch = curl_init('http://' . $homepilotIp . '/deviceajax.do');
curl_setopt($ch, CURLOPT_POSTFIELDS, "cid=9&did={$rolloHomePilotId}&goto={$pos}&command=1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = json_decode(curl_exec($ch), true);
if ($result['status'] !== "uisuccess") {
echo "Fehler!";
} else {
SetValueInteger($_IPS['VARIABLE'], $pos);
}
curl_Close($ch);
}
//////Wenn manuell oder von TimerEvent ausgeführt
else if (($_IPS['SENDER'] == "TimerEvent") or ($_IPS['SENDER'] == "Execute")) {
IPS_SetScriptTimer($_IPS['SELF'], 0); //Timer erstmal aus, falls die Abfrage zum Timeout führt
//Variable wurde vor weniger als 10sek geändert -> Abfrage überspringen
if ((time() - IPS_GetVariable($positionVarId)['VariableUpdated']) < 10) {
IPS_SetScriptTimer($_IPS['SELF'], 30);
return;
}
$ch = curl_init("http://" . $homepilotIp . "/deviceajax.do");
curl_setopt($ch, CURLOPT_POSTFIELDS, "device={$rolloHomePilotId}");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = json_decode(curl_exec($ch), true);
curl_Close($ch);
$pos = HP_getDevicePosition($result);
if ($pos !== false) {
SetValueInteger($positionVarId, $pos);
} else {
echo "Fehler!";
}
IPS_SetScriptTimer($_IPS['SELF'], 30); //Timer auf 30 Sekunden
}
function HP_getDevicePosition($fullDeviceStatus) {
if ($fullDeviceStatus['status'] === "ok") {
if (isset($fullDeviceStatus['device']['position'])) {
$result = $fullDeviceStatus['device']['position'];
} else {
// Position nicht gefunden
$result = false;
}
} else {
$result = false;
}
return $result;
}
?>
Das Skript ist ungetestet und einfach so runtergeschrieben, falls es Probleme gibt, einfach bescheid geben.
Dies ist nur eine mögliche (einfache) Lösung. Falls du viele Rollos hast, gibt es andere Lösungen, die wesentlich
Ressourcen schonender sind.
Gruß Basti
runtergeschrieben respekt echt hammer
ich bekomme nun einen Fehler in Line 17
Parse error: syntax error, unexpected ‚echo‘ (T_ECHO) in [Hardware\Homepilot\Rollo1\Rollo 1 Aktionsskript] on line 17
Abort Processing during Fatal-Error: syntax error, unexpected ‚echo‘ (T_ECHO)
Error in Script C:\IP-Symcon\scripts\45312.ips.php on Line 17
das wäre : echo „Fehler!“;
Tippfehler (in Zeile 16), versuchs nochmal, habs aktualisiert
okay ich ändere die Postion über den Shutter im Webfront (von 100% auf z.b. 80%)
dann kommt diese Meldung
und der Rolladen bewegt sich auf die Prozentzahl. Beim erneuten bedienen des
Shutters reagiert nichts , auch wenn ich das Skript nochmals starte passiert nichts.
Hast du noch eine Idee auf die Schnelle ?
Versuchs nochmal, Skript aktualiert. Es dürfte keine Fehlermeldung mehr kommen. Warum es allerdings beim erneuten Ändern der Variable nichts macht ist mir noch unklar. Schau mal bitte in der Konsole unter Meldungen, ob du da was siehst.
Hey Basti,
mir sind noch zwei Sachen aufgefallen das ich heute morgen nicht testen
konnte da ich den Rolladen nicht komplett hochfuhr, aufgrund der Uhrzeit
Ist der Rolladen geschlossen (100%) und wird komplett geöffnet über
Rollotron (Pfeil nach oben) bzw. im Homepilot Interface dann zeigt der
Status immer noch 100% an obwohl im Homepilot Interface 0% steht.
anders sieht es aber aus wenn ich den geschlossenen Rolladen nicht
ganz komplett öffne sondern nur zur Hälfte oder in eine bestimmte Pos.
alles > 0% kann man sagen dann zeigt es mir nach spätestens 30 sek.
den richtigen Status an.
Denn wenn bei mir die Rolläden automatisch am morgen hochfahren
steht immer 100% in der Variable obwohl es schon 0 sind.
Ändere ich die Position im Webfront kommt „XFehler“ und der Rolladen
fährt in die gewünschte Position !
An was kann das noch liegen ? Hast du noch eine Idee für die zwei Fehler ?
Danke, Grüße Alex
Ich vermute mal, das die unterschiedlichen Gerätetypen nicht exakt die selbe Antworten senden, dazu brauch ich deine Hilfe, da ich sie nicht kenne:
Öffne mal für jeden Gerätetyp folgende URL’s im Webbrowser und kopiere jeweils die Antwort (am besten in Code Tags [ CODE][/ CODE] (ohne leerzeichen in den Tags) hier rein):
http://homepilot.local/deviceajax.do?cid=9&did=10000&goto=50&command=1
http://homepilot.local/deviceajax.do?device=10000
Vielleicht auch nochmal mit ner anderen Position als 50% (goto=50).
Gruß Basti
Hi basti,
also das Skript läuft wie eine eins Perfekt,
wie sieht es eigentlich aus wenn ich alle
Rolläden , hoch oder runter fahren möchte
muss ich dann einfach ein Skript machen wo
am Anfang die ganzen ID: 10000 , 10001 usw
drin stehen?
VG Alex
Hallo Basti,
hab mal versucht mit dem Script meinen HomePilot2 anzusteuern - klappt irgendwie nicht und bekomme die Fehlermeldung wie in dem Script hinterlegt. Bei der Direkteingabe(IP Und ID sollten stimmen…) in den Browser passiert auch nix und folgende Meldung wird ausgegeben:
{"message":"Der HomePilot® konnte nicht erreicht werden. Bitte versuchen Sie es erneut.","status":"uierror"}
.
Hast Du eine Idee?
Gruß, Kay.