http request mit JSON Befehl / Java Script - HIlfe

HMIP lokale Installation

Moderator: Co-Administratoren

Antworten
superbraz
Beiträge: 185
Registriert: 05.04.2019, 00:18
Hat sich bedankt: 20 Mal
Danksagung erhalten: 2 Mal

http request mit JSON Befehl / Java Script - HIlfe

Beitrag von superbraz » 05.05.2024, 14:27

Gruß in die Runde,

ich möchte einen HTTP / Java Befehl durch ein Programm triggern...
also "wenn virtuelle Taste X, dann führe folgenden http befehl aus"

mit meinem Türöffner klappt es (AXIS)

da nutze ich folgenden Befehl und der Türöffner wird 3 Sekunden geöffnet:

Code: Alles auswählen

string stderr;
string stdout;
string url="http://USER:PASSWORD@IP/axis-cgi/io/port.cgi?action=PORT%3A%2F3000%5C";
system.Exec("wget -O /dev/null -q "#url, &stdout, &stderr);
nun soll das Ganze noch durch einen LED Stripe in der Türsprechstation signalisiert werden,
der Hersteller Support hat mir folgendes per Mail geschickt, aber ich bekomme es nicht über die CCU im Skript "gesendet",
also auf deutsch: es funktioniert nicht...nun habe ich aber von Skripten und Co. keine wirkliche Ahnung.
Kann mir das jemand von euch ggf so zusammenstellen, wie es korrekt ist?

Code: Alles auswählen

[http://{{username}}:{{password}}@{{ip}}/vapix/axdsapi]http://{{username}}:{{password}}@{{ip}}/vapix/axdsapi

{

  "axdsapi:SetUiFeedback": {

    "internal": false,

    "ledFeedbacks": [

      {

        "led": "stripe",

        "runStyle": "oneshot",

        "durationOnMillisec": 100,

        "durationOffMillisec": 100,

        "valueOn": "green",

        "valueOff": "off",

        "loops": 15

      }

    ]

  }

}
er hat noch auf folgenden LInk verwiesen: https://www.axis.com/vapix-library/subj ... -t10163356

wäre sehr dankbar für Hilfe! :)

Bembi
Beiträge: 140
Registriert: 04.02.2015, 02:15
System: CCU und Access Point
Wohnort: Bochum
Hat sich bedankt: 10 Mal
Danksagung erhalten: 20 Mal

Re: http request mit JSON Befehl / Java Script - HIlfe

Beitrag von Bembi » 12.05.2024, 14:03

Moin,
ich interpretiere mal aus Deiner Doku Abschnitt "cURL Simple" und würde mal folgendes probieren:
(alles in einer Zeile, ich schreibe das hier nur mehrzeilig, damit es besser lesbar ist...)

http://USER:PASSWORD@IP/vapix/axdsapi

?SetUiFeedback_internal=false

&SetUiFeedback_ledFeedbacks_led="stripe"
&SetUiFeedback_ledFeedbacks_runStyle="oneshot"
&SetUiFeedback_ledFeedbacks_durationOnMillisec=100
&SetUiFeedback_ledFeedbacks_durationOffMillisec=100
&SetUiFeedback_ledFeedbacks_valueOn="green"
&SetUiFeedback_ledFeedbacks_valueOn="off"
&SetUiFeedback_ledFeedbacks_loops=15

oder

http://USER:PASSWORD@IP/vapix/axdsapi

?format=simple

&SetUiFeedback_internal=false
&SetUiFeedback_ledFeedbacks_led="stripe"
&SetUiFeedback_ledFeedbacks_runStyle="oneshot"
&SetUiFeedback_ledFeedbacks_durationOnMillisec=100
&SetUiFeedback_ledFeedbacks_durationOffMillisec=100
&SetUiFeedback_ledFeedbacks_valueOn="green"
&SetUiFeedback_ledFeedbacks_valueOn="off"
&SetUiFeedback_ledFeedbacks_loops=15
1 x CCU3 mit aktuell 37 Geräten und 343 Kanälen (HM, HmIP, HmIPW)
1 x CCU3 mit aktuell 65 Geräten und 605 Kanälen (HM, HmIP, HmIPW)
2 x CCU2 und einen Schrank voll mit Restbeständen

superbraz
Beiträge: 185
Registriert: 05.04.2019, 00:18
Hat sich bedankt: 20 Mal
Danksagung erhalten: 2 Mal

Re: http request mit JSON Befehl / Java Script - HIlfe

Beitrag von superbraz » 18.05.2024, 11:25

hallo und vielen Dank schonmal, für deine Hilfe...

gebe ich die URL in den Browser ein (beide varianten) kommt:

Code: Alles auswählen

No action specified!
path:
/vapix/intercom
options:
SetUiFeedback_internal=false&SetUiFeedback_ledFeedbacks_led=%22stripe%22&SetUiFeedback_ledFeedbacks_runStyle=%22oneshot%22&SetUiFeedback_ledFeedbacks_durationOnMillisec=100&SetUiFeedback_ledFeedbacks_durationOffMillisec=100&SetUiFeedback_ledFeedbacks_valueOn=%22green%22&SetUiFeedback_ledFeedbacks_valueOn=%22off%22&SetUiFeedback_ledFeedbacks_loops=15
API functions:
axdsapi:GetServiceCapabilities
axdsapi:ValidateConfiguration
axdsapi:SetConfiguration
axdsapi:UpdateConfiguration
axdsapi:GetConfiguration
axdsapi:Configuration
axdsapi:GetServerReport
axdsapi:GetCardReaderConfiguration
axdsapi:GetSupportedTagTypes
axdsapi:GetDefaultTagTypes
axdsapi:GetTagTypes
axdsapi:SetTagTypes
axdsapi:GetLastTag
axdsapi:GetTag
axdsapi:InjectTag
axdsapi:RegisterReader
axdsapi:UnregisterReader
axdsapi:KeepAliveReader
axdsapi:GetCurrentReaders
axdsapi:ProbeIPAccessConfiguration
axdsapi:UpdateIPAccessConfiguration
axdsapi:GetCardData
axdsapi:WriteCardData
axdsapi:ReaderCommand
axdsapi:GetExternalOSDPStatus
axdsapi:GetKeySequence
axdsapi:GetLastKeySequence
axdsapi:InjectKeySequence
axdsapi:CallTerminate
axdsapi:CallAnswer
axdsapi:CallByPhonebookEntryId
axdsapi:InjectPresence
axdsapi:SetUIBehavior
axdsapi:GetLedCapabilities
axdsapi:SetStateVisualization
axdsapi:SetUiFeedback
axdsapi:GetContactUIAttributes
axdsapi:GetContacts
axdsapi:SetContacts
axdsapi:RemoveContacts
axdsapi:Contacts
axdsapi:ExportContacts
axdsapi:ImportContacts
axdsapi:RemoveAllContacts
axdsapi:GetPhonebookEntries
axdsapi:SetPhonebookEntries
axdsapi:RemovePhonebookEntries
axdsapi:PhonebookEntries
axdsapi:ExportPhonebookEntries
axdsapi:ImportPhonebookEntries
axdsapi:RemoveAllPhonebookEntries
axdsapi:GetScreenshot
axdsapi:InjectTouch
axdsapi:Backup
axdsapi:Restore
axdsapi:VAPIX
mache ich aus dem ? ein : hinter axdsapi kommt:

Code: Alles auswählen

Forbidden
You don't have permission to access this resource.
trotz korrecter credentials...

superbraz
Beiträge: 185
Registriert: 05.04.2019, 00:18
Hat sich bedankt: 20 Mal
Danksagung erhalten: 2 Mal

Re: http request mit JSON Befehl / Java Script - HIlfe

Beitrag von superbraz » 28.05.2024, 11:07

hast du noch eine Idee oder kann noch jmd helfen?

Fonzo
Beiträge: 6829
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 499 Mal

Re: http request mit JSON Befehl / Java Script - HIlfe

Beitrag von Fonzo » 28.05.2024, 11:36

superbraz hat geschrieben:
28.05.2024, 11:07
hast du noch eine Idee oder kann noch jmd helfen?
Entsprechend der API des Herstellers in der Payload als JSON und POST zu übergeben. Du versuchst es aber mit GET das kann nicht funktionieren.

Ich besitze so ein Gerät nicht, daher musst Du das wenn selber testen.

Du kannst mal zu Testzwecken aus dem NEO Server der HmIP-CCU3, falls eine HmIP-CCU3 genutzt wird, folgendes Skript zu Testzwecken ausführen.

Wenn das so grundsätzlich funktioniert, dann stimmt das so mit dem API Aufruf, dann musst Du das nur anpassen, wenn Du das nicht mit Javascript verschicken willst.

Code: Alles auswählen

const http = require('http');

// IP-Adresse und Anmeldeinformationen der Axis Türsprechstation
const ip = 'IP-ADRESSE';
const username = 'dein_benutzername';
const password = 'dein_passwort';

// JSON-Daten für die Anfrage
const data = JSON.stringify({
  "axdsapi:SetUiFeedback": {
    "internal": false,
    "ledFeedbacks": [
      {
        "led": "stripe",
        "runStyle": "oneshot",
        "durationOnMillisec": 100,
        "durationOffMillisec": 100,
        "valueOn": "green",
        "valueOff": "off",
        "loops": 15
      }
    ]
  }
});

// Optionen für die HTTP-Anfrage
const options = {
  hostname: ip,
  port: 80,
  path: '/vapix/axdsapi',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    'Authorization': 'Basic ' + Buffer.from(username + ':' + password).toString('base64')
  }
};

// Erstelle die Anfrage
const req = http.request(options, (res) => {
  let responseData = '';

  res.on('data', (chunk) => {
    responseData += chunk;
  });

  res.on('end', () => {
    console.log('Response:', responseData);
  });
});

// Fehlerbehandlung
req.on('error', (error) => {
  console.error('Error:', error);
});

// Sende die Anfrage mit den JSON-Daten
req.write(data);
req.end();

Benutzeravatar
Black
Beiträge: 5534
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 432 Mal
Danksagung erhalten: 1094 Mal
Kontaktdaten:

Re: http request mit JSON Befehl / Java Script - HIlfe

Beitrag von Black » 28.05.2024, 14:14

Du brauchst System.Exec, musst aber curl und Post benutzen und nicht wget.

Nicht brauchen tust du fonzo seine werbelösung.

Curl und Post wurde schon xfach erfolgreich eingesetzt hier im forum

Black

Dieser Tipp ist wie immer kostenlos und braucht weder Softwareinvestitionskosten noch jährliche SUS oder Abo Gebühren
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Silverstar
Beiträge: 375
Registriert: 11.02.2020, 12:14
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 96 Mal
Danksagung erhalten: 68 Mal

Re: http request mit JSON Befehl / Java Script - HIlfe

Beitrag von Silverstar » 28.05.2024, 14:30

Und mit Postman kann man solche api-requests schön zusammenbauen und ausprobieren und sich dann z.B. im curl-Format ausgeben lassen. Wenn man das Programm herunterlädt statt die Webversion zu verwenden, braucht es auch keinen SignUp/Login (und keine weiteren eventuell kostenpflichtigen Dinge).

https://www.postman.com/

Antworten

Zurück zu „HomeMatic IP mit CCU“