Modul 48_SST zum Einbinden von Samsung SmartThings

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

Vorheriges Thema - Nächstes Thema

reinhard@seven-up.at

#105
Hallo pasp,
Danke für die Info.
Ich habe das Modul auf Loxberry im FHME Plugin laufen. Da kann ich auch die verschiedensten Sachen der Samsung Geräte schalten. Hab es auch geschafft virtuelle Eingänge über das MQTT Plugin an mein Loxone Hausautomatisierung zu schicken. Wenn man da aber einen virtuellen Ausgang definiert wird das über UDP gesenden über den MQTT zu dem FHEM. Die Verbindung habe ich jetzt nach 20 Stunden soweit hinbekommen. Nur der Befehl ist noch nicht richtig. Anbei ein paar Screenshots.

https://www.loxwiki.eu/download/attachments/39356011/image2018-11-13_23-49-18.png?version=1&modificationDate=1542149356000&api=v2

Wenn man ein Shelly hat wird folgender Befehl eingegeben:Das <Topic> ist exakt der Befehl, der vom Anbieter dokumentiert ist, in diesem Fall z.B. shellies/shellyswitch-32BA7F/relay/1/command und der <Value> ist der Befehl, der der Anbieter erwartet (bei Shelly on oder off).


Ich könnte auch bei HTTP Methode bei EIN "Post" auswählen. (Im Bild steht oben GET)
Könntest Du mir bitte sagen welcher Bereich im Log FHEM für den Befehl Klimaanlage Switch on verwendet werden soll?
Danke schön für diese Hilfe.lg Reinhard


poiuztr123

#106
Zitat von: pasp am 25 Oktober 2020, 13:28:01
Thema SVG Graphiken

Was bisher geschah:

Ich habe mal nachgesehen, ob das ein allgemeines Problem ist, und ich die Dateien vielleicht nur sehe, weil ich sie mir manuell dorthin kopiert habe.
Im entsprechenden Log tauchen allerdings keine Fehlermeldungen auf:
fhem@raspberrypi:~/log (0)$ grep -C1 fhemSVG/samsung $( grep -l fhemSVG/samsung_ac.svg fhem-2020-1?-??.log | tail -1 )
2020.10.03 23:30:00 1: UPD FHEM/48_SST.pm
2020.10.03 23:30:01 1: UPD www/images/fhemSVG/samsung_tv.svg
2020.10.03 23:30:01 1: UPD www/images/fhemSVG/samsung_ac.svg
2020.10.03 23:30:01 1: UPD www/images/fhemSVG/samsung_smartthings_house.svg
2020.10.03 23:30:01 1: UPD www/images/fhemSVG/samsung_smartthings_cloud.svg
2020.10.03 23:30:01 1: UPD www/images/fhemSVG/samsung_sidebyside.svg
2020.10.03 23:30:02 1: UPD www/images/fhemSVG/samsung_smartthings.svg
2020.10.03 23:30:02 1: UPD www/images/fhemSVG/samsung_smartthings_house2.svg
2020.10.03 23:30:02 1: UPD www/images/fhemSVG/samsung_tv_curved.svg
2020.10.03 23:30:02 1: saving fhem.cfg
fhem@raspberrypi:~/log (0)$


Und auch die Zeitstempel der Dateien selbst scheint auf keinen Fehler hinzuweisen:
pasp@raspberrypi:~ (0)$ ll ~fhem/www/images/fhemSVG/samsung*
-rw-r--r-- 1 fhem dialout 8989 2020-10-03 23:30 /opt/fhem/www/images/fhemSVG/samsung_ac.svg
-rw-r--r-- 1 fhem dialout 7959 2020-10-03 23:30 /opt/fhem/www/images/fhemSVG/samsung_sidebyside.svg
-rw-r--r-- 1 fhem dialout 5655 2020-10-03 23:30 /opt/fhem/www/images/fhemSVG/samsung_smartthings.svg
-rw-r--r-- 1 fhem dialout 6816 2020-10-03 23:30 /opt/fhem/www/images/fhemSVG/samsung_smartthings_cloud.svg
-rw-r--r-- 1 fhem dialout 6318 2020-10-03 23:30 /opt/fhem/www/images/fhemSVG/samsung_smartthings_house.svg
-rw-r--r-- 1 fhem dialout 6697 2020-10-03 23:30 /opt/fhem/www/images/fhemSVG/samsung_smartthings_house2.svg
-rw-r--r-- 1 fhem dialout 4744 2020-10-03 23:30 /opt/fhem/www/images/fhemSVG/samsung_tv.svg
-rw-r--r-- 1 fhem dialout 4051 2020-10-03 23:30 /opt/fhem/www/images/fhemSVG/samsung_tv_curved.svg
pasp@raspberrypi:~ (0)$


@poiuztr123: Kannst Du bitte mal in Deinen Logs nachsehen, ob da Fehler auftauchen?

@all: Hat das Problem sonst noch jemand?

Ich habe nochmal ein "update SST" laufen lassen, wie im allerersten Post in diesem Thread beschrieben. Die SVG Dateien wurden damit nicht ins www/images/fhemSVG Verzeichnis geschrieben. Ich habe dann anschließend "update" eingegeben und siehe da, auf einmal tauchte auf:


Downloading https://raw.githubusercontent.com/PatricSperling/FHEM_SST/master/controls_SST.txt
2020.10.25 16:32:11 1:
2020.10.25 16:32:11 1: SST
2020.10.25 16:32:11 1: UPD FHEM/48_SST.pm
2020.10.25 16:32:11 1: UPD www/images/fhemSVG/samsung_tv.svg
2020.10.25 16:32:11 1: UPD www/images/fhemSVG/samsung_ac.svg
2020.10.25 16:32:11 1: UPD www/images/fhemSVG/samsung_smartthings_house.svg
2020.10.25 16:32:11 1: UPD www/images/fhemSVG/samsung_smartthings_cloud.svg
2020.10.25 16:32:11 1: UPD www/images/fhemSVG/samsung_tv_curved.svg
2020.10.25 16:32:12 1: UPD www/images/fhemSVG/samsung_sidebyside.svg
2020.10.25 16:32:12 1: UPD www/images/fhemSVG/samsung_smartthings.svg
2020.10.25 16:32:12 1: UPD www/images/fhemSVG/samsung_smartthings_house2.svg
2020.10.25 16:32:12 1: saving fhem.cfg
2020.10.25 16:32:12 1: saving ./log/fhem.save
2020.10.25 16:32:12 1:
2020.10.25 16:32:12 1: New entries in the CHANGED file:
2020.10.25 16:32:12 1: FHEM module SST last 3 changes:
2020.10.25 16:32:12 1: 2020-10-20: Version 0.7.19
2020.10.25 16:32:12 1:  - bugfix: auto identification of options
2020.10.25 16:32:12 1:  - bugfix: skipping disabled components
2020.10.25 16:32:12 1:  - feature: added attribute readings_map
2020.10.25 16:32:12 1:  - bugfix: timestamp correction when milliseconds are missing
2020.10.25 16:32:12 1:  - bugfix: removed log messages on bare units
2020.10.25 16:32:12 1:  - fixed inline documentation issues
2020.10.25 16:32:12 1:  - reviewed internal documentation
2020.10.25 16:32:12 1:  - fixed markup-typo in inline help
2020.10.25 16:32:12 1:  - args
2020.10.25 16:32:12 1:  - changed order of files
2020.10.25 16:32:12 1: 2020-10-03: Version 0.7.18
2020.10.25 16:32:12 1:  - removed device dependent predefines for discard_units ans setList
2020.10.25 16:32:12 1:  - added icon for SmartThings cloud
2020.10.25 16:32:12 1:  - fixed icon properties
2020.10.25 16:32:12 1:  - added new icons for SmartThings and TVs
2020.10.25 16:32:12 1:  - removal of temperature unit on setting
2020.10.25 16:32:12 1: 2020-10-02: Version 0.7.17
2020.10.25 16:32:12 1:  - changed logging a bit
2020.10.25 16:32:12 1:  - added documentation for confirmation_delay
2020.10.25 16:32:12 1:  - fixed icase mismatch issue for On/Off values
2020.10.25 16:32:12 1:  - added confirmation delay when setting data
2020.10.25 16:32:12 1:  - fixed number setting issue
2020.10.25 16:32:12 1:  - fixed internal timer issue
2020.10.25 16:32:12 1:  - aligned log messages
2020.10.25 16:32:12 1: ... rest of lines skipped.
2020.10.25 16:32:12 1: Calling /usr/bin/perl ./contrib/commandref_join.pl -noWarnings, this may take a while
2020.10.25 16:32:28 1:
2020.10.25 16:32:28 1: update finished, "shutdown restart" is needed to activate the changes.
2020.10.25 16:32:28 1:
2020.10.25 16:32:28 1: Please consider using the global attribute sendStatistics


Weiss auch nicht woran das lag. Vielleicht muss man ja über "ein allgemeines" update gehen?

Wie dem auch sei. Auf jeden Fall habe ich jetzt die Icons. :-)

Danke nochmal. Super Arbeit!

pasp

Zitat von: reinhard@seven-up.at am 25 Oktober 2020, 16:00:56
Ich habe das Modul auf Loxberry im FHME Plugin laufen. Da kann ich auch die verschiedensten Sachen der Samsung Geräte schalten.
Das heißt Loxberry spricht mit FHEM(SST) und FHEM(SST) mit der Samsung Cloud? Verstehe ich das richtig?

Zitat von: reinhard@seven-up.at am 25 Oktober 2020, 16:00:56
Hab es auch geschafft virtuelle Eingänge über das MQTT Plugin an mein Loxone Hausautomatisierung zu schicken. Wenn man da aber einen virtuellen Ausgang definiert wird das über UDP gesenden über den MQTT zu dem FHEM.
d.h. die Kommunikation zwischen Loxberry und FHEM geht über MQTT?

Zitat von: reinhard@seven-up.at am 25 Oktober 2020, 16:00:56
Die Verbindung habe ich jetzt nach 20 Stunden soweit hinbekommen. Nur der Befehl ist noch nicht richtig. Anbei ein paar Screenshots.
Wenn man ein Shelly hat wird folgender Befehl eingegeben:Das <Topic> ist exakt der Befehl, der vom Anbieter dokumentiert ist, in diesem Fall z.B. shellies/shellyswitch-32BA7F/relay/1/command und der <Value> ist der Befehl, der der Anbieter erwartet (bei Shelly on oder off).
Naja, die Shellygeräte sprechen ja selbst MQTT; ich denke mal, die sprichst Du direkt an, oder?

Zitat von: reinhard@seven-up.at am 25 Oktober 2020, 16:00:56
Könntest Du mir bitte sagen welcher Bereich im Log FHEM für den Befehl Klimaanlage Switch on verwendet werden soll?
Der an die Samsung Cloud übermittelte JSON String ist in Zeile 4:
{"commands":[{"capability":"switch","component":"main","command":"on","arguments":null}]}
Aber ich bezweifle, daß der funktioniert. ???

Ich gehe eher davon aus, daß Du den FHEM Befehl implementieren mußt. Das wäre dann
set SST_b0b81b605080 switch on
Das müßte dann bei entsprechendem, selbst definierten MQTT Kommando auf FHEM Seite ausgeführt werden.
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

pasp

Zitat von: poiuztr123 am 25 Oktober 2020, 16:41:15
Ich habe nochmal ein "update SST" laufen lassen, wie im allerersten Post in diesem Thread beschrieben. Die SVG Dateien wurden damit nicht ins www/images/fhemSVG Verzeichnis geschrieben. Ich habe dann anschließend "update" eingegeben und siehe da, auf einmal tauchte auf:
[...]

Weiss auch nicht woran das lag. Vielleicht muss man ja über "ein allgemeines" update gehen?

Wie dem auch sei. Auf jeden Fall habe ich jetzt die Icons. :-)
Seltsames Verhalten. Ich mach eh immer ein update all, weshalb ich da wohl nicht reingerannt bin.
Danke fürs debuggen und lösen. Ich hab das jetzt mal die Anleitung und den ersten Post entsprechend um ein update erweitert.
Hauptsache, die Graphiken sind jetzt verfügbar :)
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

reinhard@seven-up.at

ZitatDas heißt Loxberry spricht mit FHEM(SST) und FHEM(SST) mit der Samsung Cloud? Verstehe ich das richtig?

JA das Stimmt.

Zitatd.h. die Kommunikation zwischen Loxberry und FHEM geht über MQTT?

Kommunikation get über MQTT Gateway. Wobei die Richtung FHEM zu MQTT funktioniert.
Die andere Richtung geht meiner Meinung nach nicht. Wie kann man feststellen, ob da ein Befehl ankommt. Im Log bei verbose5 sehe ich nichts.
Muss ich da noch was freischalten?

ZitatNaja, die Shellygeräte sprechen ja selbst MQTT; ich denke mal, die sprichst Du direkt an, oder?

Ich habe selber keine Shellygeräte, aber die Dokumentation ist alles mit dem Shellygerät gemacht worden.

ZitatIch gehe eher davon aus, daß Du den FHEM Befehl implementieren mußt. Das wäre dann
Code: [Auswählen]

set SST_b0b81b605080 switch on

Das müßte dann bei entsprechendem, selbst definierten MQTT Kommando auf FHEM Seite ausgeführt werden.

Den Befehl kann ich schon senden bis zum MQTT Gateway. Er kommt aber nicht beim FHEM Modul an.
Kannst Du mir sagen, wie man das checken kann ob der bei FHEM ankommt, bzw. wie man das Freigibt, dass das Modul oder FHEM das empfangen kann?

Danke für Deine Hilfe

reinhard@seven-up.at

Hab jetzt noch was gefunden.

https://www.loxwiki.eu/pages/viewpage.action?pageId=70353530

Muss ich da diese Texte nur bei fhem eingeben? Oder muss ich da was ändern?

define SYS_MQTT MQTT_DEVICE
attr SYS_MQTT alias MQTT-Command
attr SYS_MQTT userattr subscribeReading_cmnd
attr SYS_MQTT subscribeReading_cmnd /fhem/cmnd

define n_SYS_MQTT_cmnd notify SYS_MQTT:cmnd:.* {}

SYS_MQTT:cmnd:.* {
    if ($EVENT =~ qr/.*?: (.*)/p) {
        my $cmnd = $1;
        Log3($NAME, 5, "executed mqtt command: " . $cmnd);
        fhem($cmnd);
    }
}

reinhard@seven-up.at

Problem gelöst. Es funktioniert jetzt.

Habe die oberen Befehle eingegeben und das notify angelegt sowie den Befehl integriert.
wichtig ist dann, dass beim Befehl folgendes steht:
/fhem/cmnd set SST_b0b81b605080 switch on

Es hat die Verbindung von MQTT Gateway zu FHEM gefehlt

nach 36 Stunden geschafft. Juhuu

pasp

Zitat von: reinhard@seven-up.at am 26 Oktober 2020, 14:46:34
Problem gelöst. Es funktioniert jetzt.
Bin erst jetzt dazu gekommen das zu lesen.
Herzlichen Glückwunsch :)
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

pasp

Neue Version: 0.7.20

Änderungen/Bugfixes:

  • vordefinierte Namens-Mappings für Klimaanlagen und Waschmaschinen eingeführt
  • vordefinierte Temperatur-Bereiche für Kühl- und Gefrierschränke eingeführt
  • automatischer Temperatur-Bereich für Klimaanlagen eingeführt (oder alle anderen Geräte, die das a) liefern und b) nur eine Temperatureinstellung unterstützen)
  • bei get ... x_options wird jetzt readings_map interpretiert (kein manuelles Ändern der setList mehr nötig)
  • setList_hint hat jetzt immer die selbe Reihenfolge

Aufgrund der Änderungen in den vordefinierten Werten werden diese natürlich nur dann gesetzt, wenn das entsprechende Gerät neu definiert wird.  :-[

Des Weiteren funktionieren die Temperaturbereiche nur ohne Einheit (C), weshalb bei Klimaanlagen sowie Kühl- und Gefrierschränken jetzt automatisch discard_units auf 1 gesetzt wird.
Meines Erachtens ist das nicht nur schöner (das Gradzeichen fehlt ja ohnehin), sondern entspricht auch eher dem Standardverhalten von FHEM keine Einheiten in die Readings zu packen.

Wie immer: Bitte testen und berichten (hauptsächlich die Waschmashinen und Klimageräte).
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

pasp

Zitat von: dogexan am 24 Oktober 2020, 11:57:43
Mit set Waschmaschine washerSpinLever 1200 kommt folgende Meldung:
[...]

und bei set Waschmaschine washerWaterTemperature 40:
[...]
Das Einzige, was ich mir hier vorstellen kann, ist ,daß die Cloud in diesem Fall trotz numerischem Wert einen String erwartet. Beim Einstellen von Klimageräten und Kühlschrängen ist das genau anders herum...  ???
Könntest Du vielleicht mal probieren einen der Textwerte zu setzen?

Zitat von: dogexan am 24 Oktober 2020, 11:57:43
Ansonsten hier meine vollständige washerCycle Tabelle. Wie Firetec schon sagte werden die Gradzahlen oder die Schleuderumdrehungen nicht mit verschlüsselt.
Genauso wie die Liste von Firetic in die letzten Version eingearbeitet (s.o.).
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

dogexan

Zitat von: pasp am 26 Oktober 2020, 22:23:48
Das Einzige, was ich mir hier vorstellen kann, ist ,daß die Cloud in diesem Fall trotz numerischem Wert einen String erwartet. Beim Einstellen von Klimageräten und Kühlschrängen ist das genau anders herum...  ???
Könntest Du vielleicht mal probieren einen der Textwerte zu setzen?

Hab jetzt mal set Waschmaschine WaterTemperature cold ausprobiert und es funktioniert! ;D Natürlich auch nur bei den Programmen wo auch die Option "cold" zugelassen ist.
Demnach werden die Zahlen wohl als Text übermittelt werden müssen.

Zitat von: pasp am 26 Oktober 2020, 22:23:48
Genauso wie die Liste von Firetic in die letzten Version eingearbeitet (s.o.).

Funktioniert bestens ;)


Danke nochmal für dein Arbeit

Gruß Alex

pasp

Neue Version 0.7.21

Änderungen

  • Default für discard_units ist jetzt bei allen Geräten 1 (keine Einheiten)
    Ich lasse das Attribut aber drin, damit man ggf. bei abgefragten Werten nachsehen kann, was die Einheit ist.
  • Zahlenwerte werden jetzt hoffentlich nur dort, wo es richtig ist, auch als Zahlen übermittelt.
  • Die Zuweisung erkannter Wertelisten zum Reading wurde erweitert um:

    • washerRinseCycles
    • washerSpinLevel
    • washerWaterTemperature

Bitte testen.
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

pasp

#117
Neue Version 0.7.22

Änderung:

  • Anzeige und Decodierung der als execute/data/value/payload/*options empfangenen Werte (bringt wohl nur Werte bei Klimageräten)
FHEM auf RPi 4
Eingesetzte Systeme: MQTT2, Shelly, HUE, FritzBox, Synology, WifiLight
Verwaltete Module: SST

dogexan

#118
    Zitat von: pasp am 27 Oktober 2020, 19:52:16
    Neue Version 0.7.21

    • Zahlenwerte werden jetzt hoffentlich nur dort, wo es richtig ist, auch als Zahlen übermittelt.
    • Die Zuweisung erkannter Wertelisten zum Reading wurde erweitert um:

      • washerRinseCycles
      • washerSpinLevel
      • washerWaterTemperature

    Bitte testen.

    set Waschmaschine washerWaterTemperature 40


    ergibt:
    [/list]Command failed:
    ConstraintViolationError: The request is malformed.
    Command has results:
    {"commands":[{"capability":"custom.washerWaterTemperature",
    "arguments":null,
    "component":"main",
    "command":"setWasherWaterTemperature"}]}
    {"requestId":"78EADADB-155F-47F3-A59C-14681B08E77B",
    "error":{"code":"ConstraintViolationError",
    "message":"The request is malformed.",
    "details":[{"code":"SizeError",
    "target":"commands[0].arguments",
    "message":"commands[0].arguments must have a size between 1 and 1.",
    "details":[]}]}}


    set Waschmaschine washerWaterTemperature cold

    funktioniert weiterhin


    Das gleiche gilt auch für washerSpinLevel und washerRinseCycles.
    Bei supportedOptions kommt übrigens folgendende Meldung:  Could not identify internal name for value supportedOptions!

    z.B. bei set Waschmaschine supportedOptions 1C

    Bin mir da aber auch nicht sicher für was diese "supportedOptions" sein sollen. Vielleicht für das Hauptwaschprogramm? Oder hat das was mit dem Fernstart zu tun? Die Fehlermeldung ändert sich aber auch nicht wenn der Fernstart aktiviert wurde an der Waschmaschine :o

    Edit:
    get Waschmaschine x_options holt nicht den Inhalt aus setList_hint und vordefiniert so nicht die set Waschmaschine... Befehle.
    Ist das noch so gewollt? Es taucht wieder standardmässig set Waschmaschine switch on/off auf. Dieser Befehl hat meiner Meinung nach bei der Waschmachine nichts verloren. Ein und Ausschalten gibt es nicht

    Gruß Alex

    tremichl

    ZitatNeue Version 0.7.22

    Änderung:
    Anzeige und Decodierung der als execute/data/value/payload/*options empfangene Werte (bringt wohl nur Werte bei Klimageräten)

    Hallo pasp,

    danke, ein Test ergibt folgendes:

    option-Comode kann folgende Werte annehmen: Off, 2Step, Speed, Comfort, Quiet, Smart
    Ein Versuch das in die set list einzutragen ergibt eine Fehlermeldung. Über die App und die Fernbedienung kann man diese aber setzen.
    Ein get status aktualisiert die option- Werte scheinbar nicht immer. Alle anderen schon.

    option-Light ist immer Off egal ob das Display ein/aus ist. Das Display lässt sich aus der App gar nicht schalten, nur mit der Fernbedienung und das unter "Settings"

    Liebe Grüße, Michael

    Wir haben keine Ahnung davon, was wir nicht wissen