Opennet Homematic: Unterschied zwischen den Versionen
Erscheinungsbild
Inhalt gelöscht Inhalt hinzugefügt
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 44: | Zeile 44: | ||
"id": 1, |
"id": 1, |
||
"result": "abcd123xyz", |
"result": "abcd123xyz", |
||
"version": "1.1" |
|||
} |
|||
* Program-List |
|||
! Request |
|||
{ |
|||
"method": "Program.getAll", |
|||
"id": 2, |
|||
"params": { |
|||
"_session_id_": "abcd123xyz" |
|||
} |
|||
} |
|||
! Response |
|||
HTTP/1.1 200 OK |
|||
.. |
|||
{ |
|||
"error": null, |
|||
"id": 2, |
|||
"result": [ |
|||
{ |
|||
"id": "1682", |
|||
"isActive": true, |
|||
"isInternal": false, |
|||
"lastExecuteTime": "2019-03-15 07:39:07", |
|||
"name": "door_close" |
|||
}, |
|||
{ |
|||
"id": "1727", |
|||
"isActive": true, |
|||
"isInternal": false, |
|||
"lastExecuteTime": "1970-01-01 01:00:00", |
|||
"name": "door_open" |
|||
} |
|||
], |
|||
"version": "1.1" |
"version": "1.1" |
||
} |
} |
||
Version vom 15. März 2019, 14:44 Uhr
JSON-RPC API: /api/homematic.cgi (via POST)
Verwendung zur Steuerung der Tür in der Frieda23. Erfahrungen bestehen auch im https://hacklabor.de (Danke für die Starthilfe).
Vorbereitung:
- Benutzer anlegen (hier: opennet)
- Programme anlegen (hier: door_open, door_close)
Ablauf:
- Session.login (username password) - Anmeldung vornehmen, Session-ID erhalten
- Program.getAll (_session_id_) - Liste der Programme ausgeben; Liste durchsuchen nach den relevanten Programmen durchsuchen und jeweilige aktuelle Programm-ID erhalten
- Program.execute (_session_id_ id) - gewünschtes Programm id ausführen
- Session.logout (_session_id_) - Abmeldung vornehmen, auch bei vorzeitigem Programmabbruch
Webinterface:
- Login, denkbar via Opennet CA Client Login oder Nutzername/Passwort auf jeweils Basis Apache
- Tür Öffnen, Ausführung nur mit Login
- Tür Schließen, auch ohne Login erlauben? (Aka, "der letzte der geht macht die Tür zu"?)
Sonstiges:
- Welche Softwareumgebung soll zum Einsatz kommen? Typisch wäre Bash, PHP, Python und HTML? (SN nutzt PHP-GuzzleHttpClient als Backend und Postman)
- Verschlusszustand der Tür prüfen und/oder nachts automatisch schließen? (Kann jeder Zeit von innen mechanisch geöffnet werden)
- Hosting in der Frieda23 um lokalen Zugriff sicher zu stellen?
JSON Beispiele:
- Login:
! Request
{
"method": "Session.login",
"id": 1,
"params": {
"username": "opennet",
"password": "XXX"
}
}
! Response
HTTP/1.1 200 OK
CONTENT-TYPE: application/json; charset=utf-8
Content-Length: 63
Date: ...
Server: lighttpd/1.4.50
{
"error": null,
"id": 1,
"result": "abcd123xyz",
"version": "1.1"
}
- Program-List
! Request
{
"method": "Program.getAll",
"id": 2,
"params": {
"_session_id_": "abcd123xyz"
}
}
! Response
HTTP/1.1 200 OK
..
{
"error": null,
"id": 2,
"result": [
{
"id": "1682",
"isActive": true,
"isInternal": false,
"lastExecuteTime": "2019-03-15 07:39:07",
"name": "door_close"
},
{
"id": "1727",
"isActive": true,
"isInternal": false,
"lastExecuteTime": "1970-01-01 01:00:00",
"name": "door_open"
}
],
"version": "1.1"
}
- Logout
! Request
{
"method": "Session.logout",
"id": 4,
"params": {
"_session_id_": "abcd123xyz"
}
}
! Response
HTTP/1.1 200 OK
...
{
"error": null,
"id": 4,
"result": true,
"version": "1.1"
}