Http request in Redmatic und Doorbird D2101V
Moderator: Co-Administratoren
-
- Beiträge: 448
- Registriert: 13.09.2017, 05:11
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 12 Mal
Http request in Redmatic und Doorbird D2101V
Hallo Zusammen,
ich habe eine Doorbird D2101V erworben. Nun habe ich es geschafft die Doorbird über Http - call (denke so heißt das) eine Systemvariable in der CCU über die xmlapi zu setzen. Dieses funktioniert mit "Klingeln" und "Bewegung".
Nun möchte ich aber dieses direkt in der Redmatic machen, ohne den Umweg durch die xmlapi.
Geht das? Leider sind meine Kenntnisse auf dem Gebiet der Http-requests zu schlecht. Habt Ihr eine Idee?
Lieben Gruß Thomas
ich habe eine Doorbird D2101V erworben. Nun habe ich es geschafft die Doorbird über Http - call (denke so heißt das) eine Systemvariable in der CCU über die xmlapi zu setzen. Dieses funktioniert mit "Klingeln" und "Bewegung".
Nun möchte ich aber dieses direkt in der Redmatic machen, ohne den Umweg durch die xmlapi.
Geht das? Leider sind meine Kenntnisse auf dem Gebiet der Http-requests zu schlecht. Habt Ihr eine Idee?
Lieben Gruß Thomas
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte
-
- Beiträge: 460
- Registriert: 06.01.2018, 12:48
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 57 Mal
- Danksagung erhalten: 39 Mal
Re: Http request in Redmatic und Doorbird D2101V
Es gibt eine fertige Node node-red-contrib-doorbird.
Kann dazu nix sagen, da ich diese nicht im Einsatz habe.
Kann dazu nix sagen, da ich diese nicht im Einsatz habe.
-
- Beiträge: 3978
- Registriert: 12.07.2009, 20:01
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 176 Mal
- Kontaktdaten:
Re: Http request in Redmatic und Doorbird D2101V
Nicht genau das was Du brauchst - aber ich denke dennoch hilfreich um die Funktion der http Nodes zu verstehen: https://github.com/rdmtc/RedMatic/wiki/Flow-HTTP-Server
Anstatt einen Wert zurückzuliefern müsstest Du anstelle des mittleren Nodes eben einen Flow ansetzen der bei Aufruf einer bestimmten URL eine bestimmte Aktion durchführt.
Anstatt einen Wert zurückzuliefern müsstest Du anstelle des mittleren Nodes eben einen Flow ansetzen der bei Aufruf einer bestimmten URL eine bestimmte Aktion durchführt.
-
- Beiträge: 448
- Registriert: 13.09.2017, 05:11
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 12 Mal
Re: Http request in Redmatic und Doorbird D2101V
Hallo Zusammen,
@hypnos: Die Node kann ich nicht installieren, sie muß kompiliert werden.
@Hobbyquaker: Leider komme ich nicht weiter.
derzeit verwende ich einen Aufruf aus der Doorbird.
http://<IP_CCU>/addons/xmlapi/statechange.cgi?ise_id=5317&new_value=true
Hiermit wird eine Variable auf "true" gesetzt sobald ein Event eintritt (Klingel in diesem Fall). Ich setze dann in der CCU wieder auf "false" nach der Auswertung. Wie mache ich das mit einer "node" ohne den Umweg der Variable? Nachteil bei meiner funktionierenden Auswertung ist die Wartezeit bis die Variable aktualisiert wird. Leider finde ich auch kein Event um das Polling anzustoßen.
Habt Ihr eine Idee?
Gruß Thomas
@hypnos: Die Node kann ich nicht installieren, sie muß kompiliert werden.
@Hobbyquaker: Leider komme ich nicht weiter.
derzeit verwende ich einen Aufruf aus der Doorbird.
http://<IP_CCU>/addons/xmlapi/statechange.cgi?ise_id=5317&new_value=true
Hiermit wird eine Variable auf "true" gesetzt sobald ein Event eintritt (Klingel in diesem Fall). Ich setze dann in der CCU wieder auf "false" nach der Auswertung. Wie mache ich das mit einer "node" ohne den Umweg der Variable? Nachteil bei meiner funktionierenden Auswertung ist die Wartezeit bis die Variable aktualisiert wird. Leider finde ich auch kein Event um das Polling anzustoßen.
Habt Ihr eine Idee?
Gruß Thomas
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte
-
- Beiträge: 487
- Registriert: 11.01.2015, 21:32
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 25 Mal
- Danksagung erhalten: 28 Mal
Re: Http request in Redmatic und Doorbird D2101V
https://github.com/rdmtc/RedMatic/wiki/ ... chleunigen
Das nutze ich aktuell als Übergangslösung, in einem Programm in der Web-UI reagiere ich auf Änderung ausgewählter Sytemvariablen und löse damit einen Kanal der virtuellen Fernbedienung aus. Dieses Event kommt direkt in node-red an und triggert dann das Pollen der Systemvariablen.
Das nutze ich aktuell als Übergangslösung, in einem Programm in der Web-UI reagiere ich auf Änderung ausgewählter Sytemvariablen und löse damit einen Kanal der virtuellen Fernbedienung aus. Dieses Event kommt direkt in node-red an und triggert dann das Pollen der Systemvariablen.
-
- Beiträge: 448
- Registriert: 13.09.2017, 05:11
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 12 Mal
Re: Http request in Redmatic und Doorbird D2101V
Hallo lxuser,
Dein Tip klappt super. Danke Dir!!!
Brauche nur noch eine Lösung ohne den Weg über die CCU.
Gruß Thomas
Dein Tip klappt super. Danke Dir!!!
Brauche nur noch eine Lösung ohne den Weg über die CCU.
Gruß Thomas
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte
-
- Beiträge: 210
- Registriert: 22.09.2012, 20:56
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 11 Mal
Re: Http request in Redmatic und Doorbird D2101V
Hier ist ein einfaches Beispiel. Es verwendet die globale Variable "testboolean" und die NodeRed IP = CCU IP ist bei mir 192.168.178.25.
Gegebenenfalls musst Du den Port noch anpassen.
Du kannst mit den http request:
beziehungsweise
den Wert ändern und gleichzeitig - da wo die debug node hängt - deinen Flow dranhängen.
Hier ist der flow - einmal als Bild und dann zum import als txt.
Gegebenenfalls musst Du den Port noch anpassen.
Du kannst mit den http request:
Code: Alles auswählen
http://192.168.178.25:80/addons/red//test/set/false
Code: Alles auswählen
http://192.168.178.25:80/addons/red//test/set/true
Hier ist der flow - einmal als Bild und dann zum import als txt.
Code: Alles auswählen
[
{
"id": "fdd26dc0.e6647",
"type": "tab",
"label": "Test",
"disabled": false,
"info": ""
},
{
"id": "b7df62a1.7033c",
"type": "ui_text",
"z": "fdd26dc0.e6647",
"group": "7fc9cb2b.303464",
"order": 0,
"width": 0,
"height": 0,
"name": "",
"label": "test",
"format": "{{msg.payload}}",
"layout": "row-spread",
"x": 110,
"y": 60,
"wires": []
},
{
"id": "dc613125.df4ce",
"type": "http in",
"z": "fdd26dc0.e6647",
"name": "api set variable true",
"url": "/test/set/true",
"method": "get",
"upload": false,
"swaggerDoc": "",
"x": 130,
"y": 320,
"wires": [
[
"cbff4d1c.aa744"
]
]
},
{
"id": "bd981d7e.bb199",
"type": "comment",
"z": "fdd26dc0.e6647",
"name": "http://192.168.178.25:80/addons/red//test/set/<value>",
"info": "",
"x": 240,
"y": 280,
"wires": []
},
{
"id": "9c9afbf1.0e3e88",
"type": "http response",
"z": "fdd26dc0.e6647",
"name": "response",
"statusCode": "200",
"headers": {},
"x": 840,
"y": 340,
"wires": []
},
{
"id": "5360655e.ce73ec",
"type": "http in",
"z": "fdd26dc0.e6647",
"name": "api set variable false",
"url": "/test/set/false",
"method": "get",
"upload": false,
"swaggerDoc": "",
"x": 130,
"y": 380,
"wires": [
[
"e010e083.39f4b"
]
]
},
{
"id": "4011cc6b.36b1c4",
"type": "change",
"z": "fdd26dc0.e6647",
"name": "change variable testboolean",
"rules": [
{
"t": "set",
"p": "testboolean",
"pt": "global",
"to": "payload",
"tot": "msg"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 561,
"y": 348,
"wires": [
[
"d9c1d12b.440f8",
"f89df7ea.bdf188"
]
]
},
{
"id": "cbff4d1c.aa744",
"type": "change",
"z": "fdd26dc0.e6647",
"name": "true",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "true",
"tot": "bool"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 330,
"y": 320,
"wires": [
[
"4011cc6b.36b1c4"
]
]
},
{
"id": "e010e083.39f4b",
"type": "change",
"z": "fdd26dc0.e6647",
"name": "false",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "false",
"tot": "bool"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 330,
"y": 380,
"wires": [
[
"4011cc6b.36b1c4"
]
]
},
{
"id": "d9c1d12b.440f8",
"type": "change",
"z": "fdd26dc0.e6647",
"name": "response OK",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "OK",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 830,
"y": 300,
"wires": [
[
"9c9afbf1.0e3e88"
]
]
},
{
"id": "f89df7ea.bdf188",
"type": "debug",
"z": "fdd26dc0.e6647",
"name": "trigger deinen Flow",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"x": 850,
"y": 405,
"wires": []
},
{
"id": "7fc9cb2b.303464",
"type": "ui_group",
"z": "",
"name": "Test",
"tab": "3701e325.c32a8c",
"order": 1,
"disp": true,
"width": "6",
"collapse": false
},
{
"id": "3701e325.c32a8c",
"type": "ui_tab",
"z": "",
"name": "Test",
"icon": "",
"order": 9,
"disabled": false,
"hidden": false
}
]
-
- Beiträge: 448
- Registriert: 13.09.2017, 05:11
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 12 Mal
Re: Http request in Redmatic und Doorbird D2101V
Hallo Zusammen,
nun habe ich es geschnallt. Naja stand ja so auch in der Beschreibung von Hobbyquaker. Also Danke HenningK !!!!
Hat soweit alles geklappt.
Mal eine Frage: Der Pfad "/test/set/true" ist relative, oder? Kann genannt werden wie ich es möchte, oder?
Wieder viel gelernt, einen großen Dank an alle .
Gruß Thomas
PS. Kann man das vereinfachen?
nun habe ich es geschnallt. Naja stand ja so auch in der Beschreibung von Hobbyquaker. Also Danke HenningK !!!!
Hat soweit alles geklappt.
Mal eine Frage: Der Pfad "/test/set/true" ist relative, oder? Kann genannt werden wie ich es möchte, oder?
Wieder viel gelernt, einen großen Dank an alle .
Gruß Thomas
PS. Kann man das vereinfachen?
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte
-
- Beiträge: 210
- Registriert: 22.09.2012, 20:56
- Hat sich bedankt: 5 Mal
- Danksagung erhalten: 11 Mal
Re: Http request in Redmatic und Doorbird D2101V
Hallo Thomas,
Du kannst ihn auf /api verkürzen und ein ? am Ende einfügen mit Parameterdaten. Also zum Beispiel:
oder eine andere Syntax. Wichtig ist, dass Du URL encoding beachtest.
Du hättest dann nur eine http Node, danach ein function node (die das Kommo interpretiert und umsetzt) und als Abschluss das http OK.
Eine globale Varialble in einer function node setzt Du mit
Das wäre "Vereinfachen" im Sinne von weniger Nodes aber das Interpretieren ist etwas aufwändiger.
Ansonsten google nach RESTful API Design z. B. hier: https://medium.com/hashmapinc/rest-good ... 1439796dc9
Gruß, Henning
Ja, das ist das Grundprinzip."...stand ja so auch in der Beschreibung von Hobbyquaker":
Ja, ist relativ (laut Node Hilfe). Kannst du ändern."....Der Pfad "/test/set/true" ist relative":
Du kannst ihn auf /api verkürzen und ein ? am Ende einfügen mit Parameterdaten. Also zum Beispiel:
Code: Alles auswählen
/api?SetRelais1ToTrue
oder eine andere Syntax. Wichtig ist, dass Du URL encoding beachtest.
Du hättest dann nur eine http Node, danach ein function node (die das Kommo interpretiert und umsetzt) und als Abschluss das http OK.
Eine globale Varialble in einer function node setzt Du mit
Code: Alles auswählen
global.set(<name>,<wert>);
Ansonsten google nach RESTful API Design z. B. hier: https://medium.com/hashmapinc/rest-good ... 1439796dc9
Gruß, Henning
-
- Beiträge: 448
- Registriert: 13.09.2017, 05:11
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 12 Mal
Re: Http request in Redmatic und Doorbird D2101V
Hallo HenningK,
danke werde mich mal daran versuchen .
Cool ist auch das man sehen kann wer das gesendet hat. Somit kann ich überprüfen ob es wirklich die Doorbird war.
Lieben Gruß Thomas
danke werde mich mal daran versuchen .
Cool ist auch das man sehen kann wer das gesendet hat. Somit kann ich überprüfen ob es wirklich die Doorbird war.
Lieben Gruß Thomas
972 Kanäle in 165 Geräten: Davon 16 HM, 145 HMIP, 2 Gruppen und 2 CUXD Geräte