Samsung Smartthings Einbindung?

Gibt es eine Möglichkeit (todo liste) wie man eine API in IP Symcom einbinden kann?
Dann würd ich .ich. sl einlesen :slight_smile:

Eine API ist eine Programmierschnittstelle, über die man mit anderen System kommunizieren kann. Da gibt es wohl eher keine todo Liste, da halt doch individuell.
Solange sich kein User mit Programmiererfahrung und Smartthingsgeräte zu Hause diese Schnittstelle in Symcon bauen möchte, werden User ohne Programmiererfahrung (wie ich auch) keine Möglichkeit haben, die Geräte in Symcon zu nutzen.
Damit müssen wir uns abfinden, da bringt es auch nichts wenn du alle drei Tage was reinschreibst :grinning:

Guten Morgen, ja ich weis. Auch ich jabe leider keine Erfahrung mit der Samsung API.

Ev.kann uns ja einer aus dem Forum nehilflich sein?
Die hoffnung hab ich :slight_smile:

Hallo, hatt keiner die Samsung Smarththings App in IPS Integrieren können?
Wäre cool wenn sich dies einer Ansehen könnte der sich mit der Programmierung auskennt :slight_smile:
Danke

Guten Morgen, möchte das Thema wieder etwas in den Vordergrund rücken ob von euch sxhon jemand die einbindung in IPS gemacht hat?

Danke

Der Weg könnte hierüber führen:
HomeKit/docs at master · paresy/HomeKit · GitHub
Smartthings sollte zu Apple Homkit kompatibel sein.

Danke für die Info.

Ich möchte gerne den Weg über die Samsung API gehen.
Bin jedoch auf einen Spezialisten angewiesen da ich leider keine Programmierkentnisse besitze.

:slight_smile:

@paresy eventuell etwas für Weihnachten???

Hallo Michl,
da ich demnächst eine Samsung Klimaanlage bekomme habe ich mich schonmal mit diesem Thema beschäftigt. Um was greifbares zu haben, habe ich meine RING-Türkamera/Klingel in Smartthings eingebunden. Dank der Vorarbeit von André (siehe https://community.symcon.de/t/smartthings-samsung-klimaanlage-windfree-per-ips-steuern-how-to/51007/12 ) konnte ich auf die Daten zugreifen und z.B. den Batteriestatus abfragen.

Ich habe hier mal mein Programm eingefügt:

<?php

//******************************************************************************
// 17153
// Übersicht der Devices: https://graph-eu01-euwest1.api.smartthings.com/device/list
//******************************************************************************

$Access_Token	= 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$Device_ID		= 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$URL			= 'https://api.smartthings.com/v1/devices/'.$Device_ID.'/status';
$batterie_id	= 56109;
$status_id		= 21042;

// Befehl zusammenstellen und per CURL absetzen

$Header = array(
	'Authorization: Bearer ' . $Access_Token,
    'Content-Type: application/json',
	'Accept: application/json',
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_HTTPHEADER, $Header);
//curl_setopt($ch, CURLOPT_POSTFIELDS, $Command);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$response = curl_exec($ch);
curl_close($ch);

$data		= explode("\r\n\r\n", $response);	// Header abtrennen
$daten		= json_decode($data[1], true);		// Array erstellen

$batterie	= $daten['components']['main']['battery']['battery']['value'];
SetValueInteger($batterie_id, $batterie);

$status		= $daten['components']['main']['healthCheck']['DeviceWatch-DeviceStatus']['value'];
SetValueString($status_id, $status);

Ich hoffe, es hilft dir weiter.

Gruß, Peter

Danke dir für deine Info.
Wo hast du die ID (zb: Batterie,Status) in erfahrung bringen können?

Ich Suche bei meiner Waschmaschine den Status das diese Fertig ist :slight_smile:

ich weiss nicht, wie weit du schon gekommen bist, aber die Daten stehen im Array „$daten“.
Mit print_r($daten) kannst du die die zurückgemeldeten DatenFelder anschauen.

Ich habe den Token erstellt. Status ID des Gerätes in das Script eingetragen.
Wo muss ich den Befehl print_r($daten) im Script einbauen das ich die Werte sehe, die Abgeholt werden?

Ok, Die Daten konnte ich nun abfragen die eingelangen :slight_smile:

Eine Frage; wenn ich daten senden nöchte, zb ein Gerät abschalten, wie funktioniert das dann?

Oder wenn die Waschmaschine die Fertig Meldung bekannt gibt, kann ich diese auch erhalten?

da ich noch keine schaltbaren Geräte habe, konnte ich mich noch nicht mit dem Senden von Befehlen beschäftigen.

Wenn du auf die Fertigmeldung der Waschmaschine wartest, musst du die Abfrage über einen Timer kurzfristig aufrufen.

Danke Pitty, kannst du mir das mit dem Timer genauer erklären?

Der Timer ist in diesem Fall ein zyklisches Ereignis, das du unterhalb der Scripts anlegst.
Da sich bei mir wenig ändert frage ich nur täglich um 06:00 Uhr ab.

Schau die mal die Doku dazu an Ereignisse

Ich würde 2 Ereignisse anlegen. 1 langes Intervall (< Dauer eines Waschvorgangs) um das Einschalten der Waschmaschine zu erfassen. Ein 2. Intervall in kurzen Abständen ca 5 Min. um die Fertigmeldung zu bekommen.

Mit dem Befehl https://www.symcon.de/de/service/dokumentation/befehlsreferenz/ereignisverwaltung/ips-seteventactive/
kannst du dann je nach Situation das jeweilige Ereignis (de)aktivieren.

Ich bekomme beim Auslesen, setzen einer Datei in eine Variable folgende Fehlermeldung:

Warning: Cannot auto-convert value for parameter VariableValue (Type does not match) in /mnt/data/symcon/scripts/21137.ips.php on line 42

Auslesen möchte ich Folgende Position:

(
[components] => Array
(
[hca.main] => Array
(
[hca.washerMode] => Array
(
[mode] => Array
(
[value] => others
[timestamp] => 2023-09-17T11:27:46.435Z
)

                        [supportedModes] => Array
                            (
                                [value] => Array
                                    (
                                        [0] => normal
                                        [1] => quickWash
                                        [2] => eco
                                        [3] => mix
                                        [4] => spinOnly

Anbei das Script:

$status_id = 27268;

// Befehl zusammenstellen und per CURL absetzen

$Header = array(

'Authorization: Bearer ’ . $Access_Token,

‚Content-Type: application/json‘,

‚Accept: application/json‘,

);

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $URL);

curl_setopt($ch, CURLOPT_HTTPHEADER, $Header);

//curl_setopt($ch, CURLOPT_POSTFIELDS, $Command);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ‚GET‘);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HEADER, true);

$response = curl_exec($ch);

curl_close($ch);

$data = explode(„\r\n\r\n“, $response); // Header abtrennen

$daten = json_decode($data[1], true); // Array erstellen

$status = $daten[‚components‘][‚hca.main‘][‚hca.washerMode‘][‚supportedModes‘][‚value‘];

SetValueString($status_id, $status);

print_r($daten);

Wie kann ich den das Script Ordentlich einfügen??

bin bereits auf dem Weg in Urlaub.
Kann hier evtl. jemand beim scripten helfen?

Guten Morgen,
schönen Urlaub :slight_smile:

Kann mir jemand bitte helfen, wie ich die Variable befüllen kann?
Das Auslesen der API funktioniert bereits mit „print“

Danke euch

schicke mir doch mal die komplette Ausgabe des arrays als Textdatei oder schreibe es als vorformatierten Text hier als Antwort.

Gruß, Peter

PS.: sehe gerade, du hast für dein Problem ein neues Thema eröffnet.