[Modul] SwitchBot

Die Beschreibung der API wurde nun erweitert. Leider hilft es aber nicht weiter.
Kann es sein dass Dein Gerät ein Update braucht? Laut Beschreibung gibt es „deviceType“:
grafik

In deinem Log file fehlt es aber:
grafik
Deswegen im Modul die Fehlermeldung.

Laut der Beschreibung ist das commando lock und unlock.

Das sende ich auch.
grafik

Keine Ahnung warum es nicht geht.

Danke, die Firmware ist, so denke ich, auf dem letzten Stand. Es wird auf alle Fälle keine neuere angeboten.
Ich habe die Diskrepanz im Github kommentiert.
Sehen wir was zurück kommt.

Dank und Gruss!
Tom

Für den fehlenden Wert beim WebHook, habe ich ein workaround gebaut.

Probier mal.

Für des nicht schalten können habe ich noch keine Idee.

Jetzt scheint Dein Modul richtig zu funktionieren. Die SwitchBot Cloud hat aber ihre eigenen Probleme:
dump.txt (1,5 KB)
Es kommen jetzt dieselben Fehler aus der Coud wie bei den direkt gesendeten curl-Commands.

Dank und Gruss!
Tom

Mahlzeit Tom,

ich habe den Code im Modul mal überarbeitet. Damit ist er leichter zu lesen/bearbeiten und auch Fehler-resistenter.
Ich würde dich bitten mal zu testen.
Ach und die schalt-variable ist nun wieder lockState. Die setState gibt es nicht mehr beim Lock und sollte gelöscht werden. Sorry dafür, musste aber sein.

BTW. Das PHP Beispiel aus der API Dokumentation ist von mir. Das wird genauso im Modul benutzt. Kein Grund mit Scripten zu arbeiten.
Im Konfigurationsformular der Instanz kannst Du nun manuell einen Befehl eingeben und absenden .
Zum Testen Ganz hilfreich.

Kommt da gar nichts auf der API ? Und er ist damit auch nicht im Konfigurator gelistet?
Falls doch, erstelle mal bitte eine Instanz und mache ein Debug vom GETSTATUS.
Dann bau ich da mal was ein.

Hallo Attain

Im Testcenter hast Du noch einen Typo. Du hast „dafault“ anstatt „default“ als Parameter vorgegeben.

Sind Command und Parameter richtig gesetzt, bekomme ich folgenden Fehler:

Cannot auto-convert value for parameter Value (Type does not match) in C:\ProgramData\Symcon\modules.store\switchbot.attain.de\SwitchBot Device\module.php on line 303

Warning: Cannot auto-convert value for parameter Value (Type does not match) in C:\ProgramData\Symcon\modules.store\switchbot.attain.de\SwitchBot Device\module.php on line 303

Das Schloss führt die Funktion korrekt aus. Hier die Debug Info des Schlosses bei einem UNLOCK Command:
dump.txt (3,5 KB)

Führe ich einen Befehl über das Webfront (state) aus bekomme ich folgende Fehlermeldung:
2024-05-02 08_32_13-Webfront Big
Im Splitter Debug sehe ich, dass ein „tunOn“ Befehl anstatt ein lock oder unlock Befehl geschickt wird.

05/02/2024, 10:38:56 AM | PostToDevice D18C147611C9 | Command: turnOn Parameter: default Command Type: command

05/02/2024, 10:38:57 AM | ForwardData | {„statusCode“:160,„body“:{},„message“:„not this command:turnOn“}

Im Message Log von IPS wird folgender Fehler geworfen, ich denke da iat ein Typo ($kex anstatt $key):

05/02/2024, 10:38:16 AM | FlowHandler | Could not forward data to instance #16385:
Warning: Undefined variable $kex in C:\ProgramData\Symcon\modules.store\switchbot.attain.de\SwitchBot Device\module.php on line 247

Zum S10:
Im Konfigurator ist er gelistet als
Name: Vacum
Type: Unkown
ID: ist vorhanden
Hub Device: keine Angabe
Instanz: wird erzeugt

GETSTATUS in der Instanz erzeugt folgendes im Debug:
dump2.txt (600 Bytes)

Dank und Gruss!
Tom

Das versuche ich nun abzufangen…

Das ist die Geschichte mit dem „Internal Server Error“. Auch das fange ich nun ab.
Das ist ein Cloud Problem dort. Wenn ich meinen drücker 5x sage er soll drücken, klappt das 2x und 3x bekomme ich auch die Meldung zurück.

Daraus mache ich nun eine Warnung in das Symcon Logfile .

Danke für den fund.

Auch danke dafür.

S10:
grafik

Scheint es wirklich noch nicht zu geben. Gerne nehme ich dazu auch ein Debug vom Splitter wenn der Konfiguator aktiv ist.

Ich denke der RequestAction Befehl auf die setState Variable ist noch nicht richtig abgefangen:
Du schickst den Default-Befehl: turnOn/turnOff anstatt lock/unlock

Wenn ich über das Testcenter schalte wird die setState Variable noch nicht korrekt gesetzt.
2024-05-02 12_11_30-Webfront Big

Dank und Gruss!

Tom

Bitte die setState Variable löschen! Diese wird für dieses Gerät nicht mehr genutzt. Und sollte auch nicht mehr auftauchen.

Bitte auch nochmal die lockState Variable löschen.
Nach dem Update sollte diese dann als boolean angelegt werden und schaltbar sein.

Ausser dem Server Error der Cloud funktioniert es jetzt gut!
Ich melde mich, wenn ich mehr vom S10 weiss.

Dank und Gruss!
Tom

Hallo Attain

Der S10 ist nun in der API beschrieben. Die Status Info ist folgende:

stdClass Object
(
[statusCode] => 100
[body] => stdClass Object
(
[deviceId] => B0E9FE001FC5
[deviceType] => WoSweeperOrigin
[workingStatus] => Clearing
[onlineStatus] => online
[battery] => 97
[waterBaseBattery] => 100
[taskType] => cleanAll
)

[message] => success
)

Sag mir falls Du weitere Informationen brauchst.

Dank und Gruss!
Tom