ASIR mit rest api / curl in CCU-JACK

HMIP lokale Installation

Moderator: Co-Administratoren

Antworten
kw123
Beiträge: 60
Registriert: 29.06.2023, 22:02
System: Alternative CCU (auf Basis OCCU)
Danksagung erhalten: 3 Mal

ASIR mit rest api / curl in CCU-JACK

Beitrag von kw123 » 10.03.2024, 16:04

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

Benutzeravatar
Baxxy
Beiträge: 10850
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 610 Mal
Danksagung erhalten: 2230 Mal

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

Beitrag von Baxxy » 10.03.2024, 17:31

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.

kw123
Beiträge: 60
Registriert: 29.06.2023, 22:02
System: Alternative CCU (auf Basis OCCU)
Danksagung erhalten: 3 Mal

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

Beitrag von kw123 » 10.03.2024, 17:43

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

Mathias
Beiträge: 1796
Registriert: 03.11.2010, 10:25
System: CCU
Wohnort: Aachen
Hat sich bedankt: 58 Mal
Danksagung erhalten: 262 Mal
Kontaktdaten:

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

Beitrag von Mathias » 10.03.2024, 22:23

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

kw123
Beiträge: 60
Registriert: 29.06.2023, 22:02
System: Alternative CCU (auf Basis OCCU)
Danksagung erhalten: 3 Mal

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

Beitrag von kw123 » 11.03.2024, 19:08

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

kw123
Beiträge: 60
Registriert: 29.06.2023, 22:02
System: Alternative CCU (auf Basis OCCU)
Danksagung erhalten: 3 Mal

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

Beitrag von kw123 » 11.03.2024, 19:10

und ich finde es etwas merkwürdig, dass GetObject ... zum schreiben benutzt wird

[sprotte80]
Beiträge: 336
Registriert: 05.10.2020, 18:37
System: CCU
Hat sich bedankt: 30 Mal
Danksagung erhalten: 25 Mal

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

Beitrag von [sprotte80] » 11.03.2024, 19:49

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
Wenn du keine App zur Bedienung brauchst, dann hast du kein Smarthome, sondern nur eine angefangene Baustelle, oder nur ein unsmartes Autohome.

Homematic-Script - ScriptLexikon für alle
Methoden Konstanten
Hilfe und Infos erwünscht. Alle können mitmachen. Keine Levels. Keine Geheimtuerei.

kw123
Beiträge: 60
Registriert: 29.06.2023, 22:02
System: Alternative CCU (auf Basis OCCU)
Danksagung erhalten: 3 Mal

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

Beitrag von kw123 » 11.03.2024, 22:45

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

Antworten

Zurück zu „HomeMatic IP mit CCU“