Modul 48_SST zum Einbinden von Samsung SmartThings

Begonnen von pasp, 25 August 2020, 19:39:47

Vorheriges Thema - Nächstes Thema

pasp

Inspiriert durch das Modul 48_Smartthings (https://forum.fhem.de/index.php/topic,91090.0.html) will ich mich an einer generellen Implementation von Samsung SmartThings machen.

Achtung: Das Modul befindet sich im Beta-Status!

Beschreibung:
Das Modul kann alle Samsung Geräte über SmartThings einbinden, deren Werte/Statusänderungen anzeigen und soll im Endausbau, wo möglich, Werte neu setzen können.

Da ich selbst zumindest bislang nur eine Kühl-Gefrier-Kombi besitze, benötige ich noch Hilfe zur korrekten Einbindung anderer Gerätetypen. Näheren hierzu siehe unten.

Zur Autentifizierung bei Samsung ist ein Token nötig, das unter
  https://account.smartthings.com/tokens
erstellt werden muß. Aktuell muß mindestens der Zugriff auf Geräte und Geräteprofile gestattet werden!
Ein Hinweis sei gestattet an alle, die hier Screenshots posten wollen: Bitte achtet darauf, daß das Token nicht lesbar ist, sonst kann jeder all eure Geräte abfragen und steuern!

Zunächst legt man einen Connector an, über den dann alle tatsächlichen Geräte aus der SmartThings Cloud in FHEM angelegt werden (der Name ist natürlich frei wählbar):
define SamsungSmartThingsConnector SST <token>

Aus diesem Connector-Device heraus können über
get SamsungSmartThingsConnector device_list
die in SmartThings angelegten Geräte als Readings (mit dem Wert 'new') erzeugt werden.
Hat man den Wert des Attributs autocreate zuvor auf 1 gesetzt, werden als neu markierte Readings als FHEM Devices angelegt. Die Namen der neuen Devices kann man dem dann geänderten Reading entnehmen (SST_<12-stelliger Hex-Wert>).
Will man verhindern, daß ein Gerät als Device angelegt wird, muß man das entsprechende Reading auf einen Wert ungleich 'new' setzen.

In den nun erzeugten gerätespezifischen FHEM Devices können dann über
get <name> status
sämtliche Readings mit verfügbaren Werten erzeugt werden.

Damit das Setzen von Werten, deren Liste von Geräteart zu Geräteart unterschiedlich ist, funktioniert, ist es nötig zumindest einmalig (pro Gerät)
get <name> x_options

    auszuführen. Hierdurch wird das Attribut
setList erstellt/überschrieben, das die erkannten Kommandos nebst ihrer möglichen Werte auflistet.


Zusätzliche Graphiken:
Da meines Erachtens einige SVG Graphiken nicht oder nicht schön genug gibt, habe ich dem Modul noch folgende, selbst gezeichnete Graphiken beigefügt:

  • samsung_sidebyside - Samsung Kühl-/Gefrierkombi
  • samsung_smartthings_cloud - SmartThings Logo in einer Wolke
  • samsung_smartthings_house - SmartThings Logo in einem Haus
  • samsung_smartthings_house2 - SmartThings Logo in einem anderen Haus
  • samsung_smartthings - SmartThings Logo
  • samsung_tv - Samsung Fernsehgerät
  • samsung_tv_curved - Samsung Fernsehgerät (Curved)

TODOs:

  • Defaults definieren für alle Gerätetypen für
    stateFormat
    icon
  • Logik
    SST_Read
    Update der Status über Zentralfunktion
  • list_devices: Gerätetyp zuverlässig erkennen
  • Dokumentation aktuell halten

Testen:
Testnutzer gibt es zurzeit für folgende Gerätetypen:

  • Fernseher (felskrone, awel, Prof. Dr. Peter Henning, poiuztr123)
  • Klimagerät (tremichl, reinhard@seven-up.at)
  • Kühl-Gefrier-Kombi (pasp)
  • Schalter (Dr. Ulfi)
  • Waschmaschine (buzzmain, fergison, holsteiner-kiel, Firetic, doxegan)

Melden neuer Geräte/Probleme:

Beim Melden neuer Gerätetypen, d.h., wenn beim device_list des CONNECTORs die Meldung
[/list]cannot determine device type from name (...) or deviceTypeName (...)
augegeben wird, bitte - falls nicht schon geschehen - die Ausgabe von
attr SamsungSmartThingsConnector verbose 5
get SamsungSmartThingsConnector device_list

nebst Information, um was für ein Gerät es sich handelt, beifügen. Danach nicht vergessen, verbose wieder auf einen niedrigeren Wert zu setzen!

Bei Problemen mit fehlenden Readings oder set Befehlen für ein Gerät bitte - falls nicht schon geschehen - die Ausgabe von
attr <name> verbose 5
get <name> status

beifügen. Danach nicht vergessen, verbose wieder auf einen niedrigeren Wert zu setzen!

Die Liste bekannter Probleme is im jeweiligen Post zum Update zu finden.


Installation:
Das Modul kann über GitHub eingebunden werden:
update add https://raw.githubusercontent.com/PatricSperling/FHEM_SST/master/controls_SST.txt
update SST
update
shutdown restart
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

pasp

#1
So, hier mal ein kleines Update (Datei im ursprünglichen Thread aktualisiert).

Aufgrund einiger interner Änderungen sollten die Geräte nochmal ganz neu angelegt werden (falls es schon jemand einsetzt).

Ein
get <name> status
holt jetzt sämtliche verfügbare Werte (egal was für ein Gerät) und erzeugt daraus zumindest bei mir zuverlässig Readings.

Als get Kommando ist jeweils entweder status (bei Geräten) oder device_list (beim Connector) möglich.

Es werden (außer beim Connector) sämtliche set Kommandos aus dem Attribut setList gelesen.
Die Syntax von setList ist:
<set Kommando 1>:<Komma getrennte Werteliste> <set Kommando 2> <set Kommando 3>:<Komma getrennte Werteliste>
Die Kommandos und Werteliste dürfen zZt. keine Leerzeichen enthalten.
Das obige Beispiel würde eine Set Liste mit den 3 Kommandos im FHEMWEB anzeigen.
Achtung: das Ganze führt noch nicht dazu, daß tatsächlich Werte gesetzt werden!

Offene TODO Liste siehe oben.
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

felskrone

Hallo,


ich hab das mal getestet.
Ich habe einen Samsung "The Frame" TV und die SmartThings-App installiert, ein Token erzeugt. Soweit gut.


Danach den Connector erstellt -> auch OK
dann ein get Devicelist new -> ok, aber:




Device-ID - Name


7052f469-4f5b-4975-9728-689a977cc472 - [TV] Samsung Frame Series (65) (creation failed!)


main:
- switch
- audioVolume
- audioMute
- tvChannel
- mediaInputSource
- mediaPlayback
- custom.picturemode
- custom.error
- custom.soundmode
- custom.accessibility
- custom.launchapp
- custom.recording
- custom.tvsearch
- samsungtv.firmwareVersion
- samsungtv.supportsPowerOnByOcf
- refresh
- execute
- ocf
- mediaTrackControl



Bin gespannt, wie Dein Projekt weitergeht.


Ich suche speziell eine Lösung um zuverlässig die seltsamen Stati des Fernsehers:

       
  • ganz aus
  • ein bisschen an (Bild oder Diashow wird angezeigt) oder vielleicht ein bisschen aus?!
  • an
zu erkennen und am liebsten dazwischen hin- und her schalten zu können (was die SmartThingsApp immerhin kann!)

___________________________
FHEM 5.8 auf Raspi 1B und HMLAN

pasp

Hallo felskrone,

super, daß Du testest. Danke schon mal dafür!

Zitat von: felskrone am 04 September 2020, 13:46:58
Danach den Connector erstellt -> auch OK
dann ein get Devicelist new -> ok, aber:

OK, ich habe mal die Fehlerausgabe etwas verbessert. Bitte nochmal herunterladen, installieren, mittels
reload 48_SST.pm
aktivieren und nochmal
get <DEVICENAME> device_list
starten. Den oberen Teil der Ausgabe bräuchte ich bitte (creation failed with).

Zitat von: felskrone am 04 September 2020, 13:46:58

       
  • ganz aus
  • ein bisschen an (Bild oder Diashow wird angezeigt) oder vielleicht ein bisschen aus?!
  • an
Da wird dann die Statusanzeige auch zur Herausforderung... :D

Zitat von: felskrone am 04 September 2020, 13:46:58
zu erkennen und am liebsten dazwischen hin- und her schalten zu können (was die SmartThingsApp immerhin kann!)
Ganz soweit bin ich leider noch nicht, da es mir eigentlich missfällt, die set Kommandos fest zu codieren. Ich suche gerade noch nach einer Möglichkeit, die zu Verfügung stehenden Kommandos aus SmartThings direkt zu befüllen. Dann kann ich mir ersparen, die Kommandoliste für jeden Gerätetyp oder ggf. auch einzelne Geräte spezifisch zu definieren.
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

awel

Hallo,

bin ebenfalls gespannt und interessiert.
Hier die Fehlermeldung bei der Erstellung eines TV
Device-ID - Name

- Autocreation Status

51634350-3124-45fe-af6e-de22e046c473 - [TV] Samsung Q60 Series (43) - creation failed with: 'TV, 60, 51634350-3124-45fe-af6e-de22e046c473'

main:
- switch
- audioVolume
- audioMute
- tvChannel
- mediaInputSource
- mediaPlayback
- custom.picturemode
- custom.error
- custom.soundmode
- custom.accessibility
- custom.launchapp
- custom.recording
- custom.tvsearch
- samsungtv.firmwareVersion
- samsungtv.supportsPowerOnByOcf
- refresh
- execute
- ocf
- mediaTrackControl

Gruß
Achim

pasp

Hallo Achim,

je mehr, desto besser :)

Zitat von: awel am 04 September 2020, 18:28:35

51634350-3124-45fe-af6e-de22e046c473 - [TV] Samsung Q60 Series (43) - creation failed with: 'TV, 60, 51634350-3124-45fe-af6e-de22e046c473'


Danke, hab den Code nochmal etwas angepaßt - der define sollte jetzt gehen.
Schritte wie oben beschrieben.

Gruß
pasp
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

buzzmain

#6
Moin moin,
ich hab es direkt auch ausprobiert.
es ist eine Waschmaschiene.

nach "get SamsungSmartThingsConnector device_list" kam dies:




------ send below text to developer ------

$VAR1 = {
          'items' => [
                       {
                         'manufacturerName' => 'Samsung Electronics',
                         'deviceId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-fe4c4efc70e7',
                         'label' => "Wasch\x{ad}maschine",
                         'restrictionTier' => 0,
                         'deviceNetworkType' => 'UNKNOWN',
                         'presentationId' => 'DA-WM-WM-000001',
                         'roomId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-6d375ccbd4da',
                         'locationId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-1b1c758bee3f',
                         'components' => [
                                           {
                                             'id' => 'main',
                                             'capabilities' => [
                                                                 {
                                                                   'id' => 'switch',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'refresh',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'ocf',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'execute',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'remoteControlStatus'
                                                                 },
                                                                 {
                                                                   'id' => 'washerMode',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'washerOperatingState'
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'powerConsumptionReport'
                                                                 },
                                                                 {
                                                                   'id' => 'custom.error',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'custom.disabledCapabilities',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'custom.dthVersion'
                                                                 },
                                                                 {
                                                                   'id' => 'custom.washerAutoDetergent',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'custom.washerAutoSoftener'
                                                                 },
                                                                 {
                                                                   'id' => 'custom.washerRinseCycles',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'custom.washerSoilLevel'
                                                                 },
                                                                 {
                                                                   'id' => 'custom.washerSpinLevel',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'custom.washerWaterTemperature'
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'custom.washerAddwashAlarm'
                                                                 },
                                                                 {
                                                                   'id' => 'custom.supportedOptions',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'custom.jobBeginningStatus',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'samsungce.washerCycle',
                                                                   'version' => 1
                                                                 }
                                                               ],
                                             'categories' => [
                                                               {
                                                                 'name' => 'Switch'
                                                               }
                                                             ],
                                             'label' => "Wasch\x{ad}maschine"
                                           }
                                         ],
                         'deviceTypeName' => 'Samsung OCF Washer',
                         'deviceTypeId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-9b86ba6ff166',
                         'type' => 'DTH',
                         'dth' => {
                                    'deviceTypeName' => 'Samsung OCF Washer',
                                    'completedSetup' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
                                    'deviceNetworkType' => 'UNKNOWN',
                                    'networkSecurityLevel' => 'UNKNOWN',
                                    'deviceTypeId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-9b86ba6ff166'
                                  },
                         'name' => 'dummy_name'
                       }
                     ],
          '_links' => {}
        };

------ send above text to developer ------

Device-ID - Name



xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx sdfsdf7 - dummy_name

main:
- switch
- refresh
- ocf
- execute
- remoteControlStatus
- washerMode
- washerOperatingState
- powerConsumptionReport
- custom.error
- custom.disabledCapabilities
- custom.dthVersion
- custom.washerAutoDetergent
- custom.washerAutoSoftener
- custom.washerRinseCycles
- custom.washerSoilLevel
- custom.washerSpinLevel
- custom.washerWaterTemperature
- custom.washerAddwashAlarm
- custom.supportedOptions
- custom.jobBeginningStatus
- samsungce.washerCycle


OK




Ergänzung:

Das Device wurden angelegt und ich habe auch sehr viele Readings.
Werde mir die Tage mal anschauen was die Readings alles so bedeuten ;)

Scheint aber grundsätzlich zu funktionieren.

Super Sache schon mal.

Eine Frage, der Refresh steht auf 300.
Sind das Sekunden?
Ist zu erwarten, dass wenn Tag und Nacht alle 300sek. eine Request geschickt wird, dass irgend etwas geblockt wird bei Samsung.?


was kann ich noch tun für Dich um zu helfen?



... And on the 8th Day God Created The Homeautomation.

fergison

#7
Hallo,

ich würde gerne helfen und die Informationen über unsere Samsung Waschmaschine zur Verfügung stellen.

Die Einrichtung des Conectors läuft einwandfrei. Die Waschmaschine wird bei einem get device-list auch angezeigt und auch das Reading mit new erscheint. Allerdings wird trotz aktivem autocreate kein Device angelegt. Was mache ich falsch?

Gruß
Lars


pasp

Zitat von: buzzmain am 06 September 2020, 23:11:00

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx sdfsdf7 - dummy_name

Hm... dummy_name ist natürlich doof :(
Bei den anderen Geräten habe ich bislang immer einen String in der Art

[<Gerätetyp>] <Hersteller>

im Reading für ocf_n bekommen. Muß ich wohl doch anders identifizieren, was es ist...  :-\

Zitat von: buzzmain am 06 September 2020, 23:11:00
Das Device wurden angelegt und ich habe auch sehr viele Readings.
Werde mir die Tage mal anschauen was die Readings alles so bedeuten ;)
Die ocf Readings kann man m.E. ignorieren (villeicht schmeisse ich die später wieder raus, mal sehen).
Zumindest bei mir sind die ganzen custom Readings auch irrelevant.
Wie sieht das bei Dir aus?

Zitat von: buzzmain am 06 September 2020, 23:11:00
Eine Frage, der Refresh steht auf 300.
Sind das Sekunden?
Ist zu erwarten, dass wenn Tag und Nacht alle 300sek. eine Request geschickt wird, dass irgend etwas geblockt wird bei Samsung.?
Ja, das sollen Sekunden sein, aber das funktioniert m.E. noch nicht.
Ein 5-minütiges Polling sollte laut Dokumentation überhaupt kein Problem darstellen - man könnte wohl auch noch deutlich weiter runtergehen...

Zitat von: buzzmain am 06 September 2020, 23:11:00
was kann ich noch tun für Dich um zu helfen?
Ich muß das erstmal etwas analysieren :)
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

pasp

Hallo Lars,

Zitat von: fergison am 07 September 2020, 09:42:06
Die Einrichtung des Conectors läuft einwandfrei. Die Waschmaschine wird bei einem get device-list auch angezeigt und auch das Reading mit new erscheint. Allerdings wird trotz aktivem autocreate kein Device angelegt. Was mache ich falsch?
Dein autocreate ist für das Device nicht gesetzt.
Einfach bei den Attributen autocreate auswählen und auf 1 setzen oder
attr SamsungSmartThingsConnector autocreate 1
ausführen und nochmal einen device_list laufen lassen.
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

fergison

#10
Danke, das hat geholfen.

Hier der Auszug zum Anlegen der Waschmaschine.


------ send below text to developer ------

{
  'items' => [
               {
                 'presentationId' => 'DA-WM-WM-000001',
                 'roomId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-826b0c6fa7e3',
                 'type' => 'DTH',
                 'deviceTypeId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-9b86ba6ff166',
                 'deviceNetworkType' => 'UNKNOWN',
                 'dth' => {
                            'deviceTypeId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-9b86ba6ff166',
                            'deviceTypeName' => 'Samsung OCF Washer',
                            'deviceNetworkType' => 'UNKNOWN',
                            'networkSecurityLevel' => 'UNKNOWN',
                            'completedSetup' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' )
                          },
                 'locationId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-70e8a877aace',
                 'label' => 'Waschmaschine',
                 'components' => [
                                   {
                                     'categories' => [
                                                       {
                                                         'name' => 'Switch'
                                                       }
                                                     ],
                                     'capabilities' => [
                                                         {
                                                           'id' => 'switch',
                                                           'version' => 1
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'refresh'
                                                         },
                                                         {
                                                           'id' => 'ocf',
                                                           'version' => 1
                                                         },
                                                         {
                                                           'id' => 'execute',
                                                           'version' => 1
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'remoteControlStatus'
                                                         },
                                                         {
                                                           'id' => 'washerMode',
                                                           'version' => 1
                                                         },
                                                         {
                                                           'id' => 'washerOperatingState',
                                                           'version' => 1
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'powerConsumptionReport'
                                                         },
                                                         {
                                                           'id' => 'custom.error',
                                                           'version' => 1
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'custom.disabledCapabilities'
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'custom.dthVersion'
                                                         },
                                                         {
                                                           'id' => 'custom.washerAutoDetergent',
                                                           'version' => 1
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'custom.washerAutoSoftener'
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'custom.washerRinseCycles'
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'custom.washerSoilLevel'
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'custom.washerSpinLevel'
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'custom.washerWaterTemperature'
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'custom.washerAddwashAlarm'
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'custom.supportedOptions'
                                                         },
                                                         {
                                                           'id' => 'custom.jobBeginningStatus',
                                                           'version' => 1
                                                         },
                                                         {
                                                           'version' => 1,
                                                           'id' => 'samsungce.washerCycle'
                                                         }
                                                       ],
                                     'label' => 'Waschmaschine',
                                     'id' => 'main'
                                   }
                                 ],
                 'manufacturerName' => 'Samsung Electronics',
                 'restrictionTier' => 0,
                 'deviceId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-1e7f08321661',
                 'deviceTypeName' => 'Samsung OCF Washer',
                 'name' => '[washer] Samsung'
               }
             ],
  '_links' => {}
}



Scheint mir auf den ersten schnellen Blick identisch zu sein, zum Auszug von buzzmain

Viele Grüße
Lars



holsteiner-kiel

#11
Hey zusammen. Cool, dass es in Sachen SmartThings weiter geht. Ich habe einen Samsung Washer WW80K6404QW/EG und das Autocreate endet leider in einem Fehler. Wenn du mehr Infos benötigst, melde dich gern.

Hier der Output:

------ send below text to developer ------

$VAR1 = {
          '_links' => {},
          'items' => [
                       {
                         'locationId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-16e8ed2d3ab3',
                         'roomId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-d74787e4e1e8',
                         'deviceTypeName' => 'Samsung OCF Washer',
                         'name' => 'Washer',
                         'presentationId' => 'DA-WM-WM-100001',
                         'deviceTypeId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-9b86ba6ff166',
                         'dth' => {
                                    'deviceNetworkType' => 'UNKNOWN',
                                    'networkSecurityLevel' => 'UNKNOWN',
                                    'completedSetup' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
                                    'deviceTypeName' => 'Samsung OCF Washer',
                                    'deviceTypeId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-9b86ba6ff166'
                                  },
                         'deviceId' => 'C097276B-8Dxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
                         'label' => "Wasch\x{ad}maschine",
                         'manufacturerName' => 'Samsung Electronics',
                         'type' => 'DTH',
                         'components' => [
                                           {
                                             'capabilities' => [
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'switch'
                                                                 },
                                                                 {
                                                                   'id' => 'refresh',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'ocf',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'execute',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'remoteControlStatus',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'washerMode'
                                                                 },
                                                                 {
                                                                   'id' => 'washerOperatingState',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'powerConsumptionReport'
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'custom.error'
                                                                 },
                                                                 {
                                                                   'id' => 'custom.disabledCapabilities',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'custom.dthVersion',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'custom.washerAutoDetergent',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'custom.washerAutoSoftener'
                                                                 },
                                                                 {
                                                                   'id' => 'custom.washerRinseCycles',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'custom.washerSoilLevel'
                                                                 },
                                                                 {
                                                                   'id' => 'custom.washerSpinLevel',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'custom.washerWaterTemperature',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'version' => 1,
                                                                   'id' => 'custom.washerAddwashAlarm'
                                                                 },
                                                                 {
                                                                   'id' => 'custom.supportedOptions',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'custom.jobBeginningStatus',
                                                                   'version' => 1
                                                                 },
                                                                 {
                                                                   'id' => 'samsungce.washerCycle',
                                                                   'version' => 1
                                                                 }
                                                               ],
                                             'label' => "Wasch\x{ad}maschine",
                                             'categories' => [
                                                               {
                                                                 'name' => 'Switch'
                                                               }
                                                             ],
                                             'id' => 'main'
                                           }
                                         ],
                         'restrictionTier' => 0,
                         'deviceNetworkType' => 'UNKNOWN'
                       }
                     ]
        };

------ send above text to developer ------

Device-ID - Name

- Autocreation Status

C097276B-8D88-0000-0000-000000000000 - Washer - creation failed with: 'unknown, 60, C097276B-8D88-0000-0000-000000000000 IODevice=SamsungSmartThingsConnector'

main:
- switch
- refresh
- ocf
- execute
- remoteControlStatus
- washerMode
- washerOperatingState
- powerConsumptionReport
- custom.error
- custom.disabledCapabilities
- custom.dthVersion
- custom.washerAutoDetergent
- custom.washerAutoSoftener
- custom.washerRinseCycles
- custom.washerSoilLevel
- custom.washerSpinLevel
- custom.washerWaterTemperature
- custom.washerAddwashAlarm
- custom.supportedOptions
- custom.jobBeginningStatus
- samsungce.washerCycle

felskrone

Zitat von: pasp am 04 September 2020, 16:46:50
Hallo felskrone,

super, daß Du testest. Danke schon mal dafür!
gerne
Zitat von: pasp am 04 September 2020, 16:46:50
OK, ich habe mal die Fehlerausgabe etwas verbessert. Bitte nochmal herunterladen, installieren, mittels
reload 48_SST.pm
aktivieren und nochmal
get <DEVICENAME> device_list
starten. Den oberen Teil der Ausgabe bräuchte ich bitte (creation failed with).
...hat aber jetzt mit neuer Version funktioniert!
[/size]
Zitat von: pasp am 04 September 2020, 16:46:50
Da wird dann die Statusanzeige auch zur Herausforderung... :D
...ein set list wurde da ja schon generiert:


setList power:off,on,inbetween


das sieht jetzt schon super aus, nur ein set-Befehl lässt mein FHEM abstürzen. (Ich weiss, dass das noch todo ist, Absturz ist aber unschön...) mimimimimi


es geht also weiter, vielen Dank für die Arbeit und zum Schluss noch ein list device, fyi:




Device-ID - Name


- Autocreation Status


7052f469-4f5b-4975-9728-689a977cc472 - [TV] Samsung Frame Series (65) - already known: no creation


main:
- switch
- audioVolume
- audioMute
- tvChannel
- mediaInputSource
- mediaPlayback
- custom.picturemode
- custom.error
- custom.soundmode
- custom.accessibility
- custom.launchapp
- custom.recording
- custom.tvsearch
- samsungtv.firmwareVersion
- samsungtv.supportsPowerOnByOcf
- refresh
- execute
- ocf
- mediaTrackControl






___________________________
FHEM 5.8 auf Raspi 1B und HMLAN

fergison

#13
Habe das ganze heute mal getestet als die Maschine lief. Ein manuell ausgeführtes get status liefert aussagekräftige Readings (siehe Screenshots).
So bin ich schon fast am Ziel eine "Wäsche fertig" Meldung über Lautsprecher zu generieren.
Die Restlaufzeit wird allerdings nicht korrekt angegeben. Jedenfalls stimmt die Angabe der Zeit nicht mit der Angabe der Maschine überein. Auch nicht Zeitzonen verschoben. Ok; ich wollte nur wohl nur nicht glauben, dass die Maschine heute so lange läuft. Die Laufzeit war doch korrekt.

Viele Grüße und einen großen Dank für deine Arbeit!

buzzmain

#14
Zitat von: pasp am 07 September 2020, 11:31:30
Ich muß das erstmal etwas analysieren :)

OK, du meldest Dich wenn Du etwas brauchst.

Colle Sache und Danke für Deine Mühe schon einmal...

THX

Buzzy
... And on the 8th Day God Created The Homeautomation.