Seite 1 von 1

ASIR mit rest api / curl in CCU-JACK

Verfasst: 10.03.2024, 16:04
von kw123
Wie kann ich den optische oder akustisch alarm mit curl setzen. die "Technische Doku" sagt da nichts genaues aus.

habe ausprobiert
curl -X PUT -d '{"v":true}' http://192.168.xx.xx:2121/device/00245F ... ACTIVE/~pv probiert aber da gibts:
{"message":"RPC fault (code: -1, message: Generic error (MISSING_NON_OPTIONAL_PARAMETER))

die normal query gibt:
/device/00245F29B40C63/3/DURATION_UNIT:{'ts': 0, 'v': 0, 's': 100}
/device/00245F29B40C63/3/OPTICAL_ALARM_ACTIVE:{'ts': 1710082781896, 'v': False, 's': 0}
/device/00245F29B40C63/3/DURATION_VALUE:{'ts': 0, 'v': 0, 's': 100}
/device/00245F29B40C63/3/ACOUSTIC_ALARM_ACTIVE:{'ts': 1710082781896, 'v': False, 's': 0}
/device/00245F29B40C63/3/ACOUSTIC_ALARM_SELECTION:{'ts': 0, 'v': 0, 's': 100}
/device/00245F29B40C63/3/OPTICAL_ALARM_SELECTION:{'ts': 0, 'v': 0, 's': 100}

channel 1,2 sind leer, 0 gibt nur die normalen maintenance werte. "ACOUSTIC_ALARM_ACTIVE" und "OPTICAL_ALARM_ACTIVE sind korrekt, wenn ich auf dem raspberry den alarm im gui auslöse sind sie korrekt, sind aber nur read only parameter. kann man also nicht setzten..

AUCH wie kann ich mehrere Parameter in einem Aufruf setzten. in den CCU jack Beispielen gibts immer nur einen.

dank im Voraus

Karl

Re: ASIR mit rest api / curl in CCU-JACK

Verfasst: 10.03.2024, 17:31
von Baxxy
Die Fragen wären wohl im JACK-Unterforum besser aufgehoben. :wink:

Da die ASIR's m.W. keinen COMBINED_PARAMETER haben muss man wohl bei jedem "Ansteuern" alle 4 Datenpunkte beschreiben.
viewtopic.php?f=60&t=50491&p=506413#p506418

Ob sowas mit einem Curl-Aufruf möglich ist kann ich nicht sagen, ich würd's erstmal mit 4 Einzelaufrufen probieren.

Einfacher wäre es wohl sich ein paar "vorkonfektionierte" DV's zu virt.Tasten anzulegen und dann einfach die virt.Taste zu drücken.

Re: ASIR mit rest api / curl in CCU-JACK

Verfasst: 10.03.2024, 17:43
von kw123
ich kann das auch mit Python machen (mehrere parameter), habe nur curl genommen als Beispiel da das einfacher zu zeigen ist.

aber auch mit python ist die Adresse immer nur ein property : .../id/channel/property nicht mehrere, die Daten waeren kein Problem aber dort ist es immer "v":value und v ist immer nur ein v

Re: ASIR mit rest api / curl in CCU-JACK

Verfasst: 10.03.2024, 22:23
von Mathias
Die Fehlermeldung kommt direkt von der CCU und wird vom CCU-Jack nur durchgeleitet. Wie @Baxxy es schon angemerkt hatte, müssen wohl mehrere Parameter gleichzeitig beschrieben werden. Das unterstützt der CCU-Jack allerdings nicht.

Ich habe dazu mal ein Ticket auf GitHub erstellt.

Gruß
Mathias

Re: ASIR mit rest api / curl in CCU-JACK

Verfasst: 11.03.2024, 19:08
von kw123
nur zur Vollstaendgkeit, fall jemand das im Skript machen moechte:

Code: Alles auswählen

dom.GetObject("HmIP-RF.00245F29B40C63:3.DURATION_UNIT").State(0);
dom.GetObject("HmIP-RF.00245F29B40C63:3.DURATION_VALUE").State(10);
dom.GetObject("HmIP-RF.00245F29B40C63:3.ACOUSTIC_ALARM_SELECTION").State(0);
dom.GetObject("HmIP-RF.00245F29B40C63:3.OPTICAL_ALARM_SELECTION").State(3);
laest die beiden LED zusammen fuer 10 sek schnell blinken, kein akustisches signal
(DURATION_UNIT = 0 = secs, DURATION_VALUE = 10 units; ACOUSTIC_ALARM_SELECTION =0 = off; OPTICAL_ALARM_SELECTION =3 = schnelles blinken
siehe device doku Nr 3.3.4.1.6 fuer die blink... Optionen

Karl

Re: ASIR mit rest api / curl in CCU-JACK

Verfasst: 11.03.2024, 19:10
von kw123
und ich finde es etwas merkwürdig, dass GetObject ... zum schreiben benutzt wird

Re: ASIR mit rest api / curl in CCU-JACK

Verfasst: 11.03.2024, 19:49
von [sprotte80]
Hi
kw123 hat geschrieben:
11.03.2024, 19:10
und ich finde es etwas merkwürdig, dass GetObject ... zum schreiben benutzt wird
Is wohl nen Verständnisproblem
GetObject schreibt nix
State schreibt
GetObject holt das Object wo du drauf schreiben willst

Thomas

Re: ASIR mit rest api / curl in CCU-JACK

Verfasst: 11.03.2024, 22:45
von kw123
und hier noch ein ausgebautes script:

Code: Alles auswählen

!reads variable alarmInput
! must be "address/dur unit/durationvalue/acoustic alarm/optical alarm"
! eg 00245F29B40C63/0/10/0/4
! then send commands to device ASIR to start alarm
!

var inp = dom.GetObject("alarmInput").Variable();
!WriteLine(inp); ! test write

var address = inp.StrValueByIndex("/", 0);
var DURATION_UNIT = inp.StrValueByIndex("/", 1);
var DURATION_VALUE = inp.StrValueByIndex("/", 2);
var ACOUSTIC_ALARM_SELECTION = inp.StrValueByIndex("/", 3);
var OPTICAL_ALARM_SELECTION = inp.StrValueByIndex("/", 4);
!WriteLine(address);
!WriteLine(DURATION_UNIT);
!WriteLine(DURATION_VALUE);
!WriteLine(ACOUSTIC_ALARM_SELECTION);
!WriteLine(OPTICAL_ALARM_SELECTION);

dom.GetObject("HmIP-RF."+address+":3.DURATION_UNIT").State(DURATION_UNIT);
dom.GetObject("HmIP-RF."+address+":3.DURATION_VALUE").State(DURATION_VALUE);
dom.GetObject("HmIP-RF."+address+":3.ACOUSTIC_ALARM_SELECTION").State(ACOUSTIC_ALARM_SELECTION);
dom.GetObject("HmIP-RF."+address+":3.OPTICAL_ALARM_SELECTION").State(OPTICAL_ALARM_SELECTION);
damit wird ASIR über eine variable gesteuert

und beachten: viewtopic.php?f=26&t=25510&p=799039&hilit=Karl#p799039
"Bedingung wenn Änderung", "dann nichts", "sonst execute script".

Karl