[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

Hallo Attain,

habe mir auch das ‚Smart Lock Pro‘ zugelegt. Mit der Beta hat es dann auch bei mir funktioniert.
Und das als DAU. Bin begeistert. Vielen Dank!

Besteht die Möglichkeit, das ‚Keypad Touch‘ zu integrieren? Insofern das Sinn macht…
Erkannt und angelegt wird es auf jeden Fall.
Toll wäre es natürlich wenn man die verschiedenen Finger ‚abgreifen‘ und für andere Zwecke nutzen könnte. Garagentor öffnen z.B.

Hier der ‚dump‘ aus GETSTATUS:

dump.txt (902 Bytes)

Gruß,
Holger

1 „Gefällt mir“

Hallo Tom Hallo Holger,

einbauen kann ich es. Nur kann es eine Weile dauern bis ich Zeit finde.
Ist auf dem Plan.

2 „Gefällt mir“

Super, danke. Und kein Problem, wenn es etwas länger dauert. Die Chancen, dass das Switchot API etwas stabiler und weiter verbessert wird steigen damit. :smiley:

Dank und Gruss!
Tom

Hi Tom,

wie stellst Du dir die Bedienung aus Symcon vor?

Folgendes könnte man machen:

  1. IntegerVariable mit 4 Assoziationen für:
    -Start Cleaning
    -Add Water
    -Pause
    -Dock

  2. Zusätzlich sind noch 4 Variablen nötig
    -Bool (Sweep or Sweep_Mop)
    -Integer (Fanlevel 1-4)
    -Integer (Waterlevel 1-2)
    -Integer(times 1-264000)
    Diese werden beim Start Cleaningn(1.) gelesen und mit übergeben.
    Würde ein dieser 4 Variablen geändert, würde ein entsprechendes changeParam an den S10 gesendet.

  3. Und dann noch eine selfClean Variable.
    -Integer (1-3)

Was setVolume macht weiß ich nicht. Brauchst du das?

Hallo Holger,

Viel kann man nicht mit dem machen.
Kommen den Events wenn Du das Teil benutzt? Siht so aus dass nur events ausgegeben werden wenn neue Codes erstellt oder gelöscht werden. Aber nicht wenn du einen eingibst. Es werden alle unbekannten Variablen automatisch angelegt. Somit solltes Du auch eventName haben? Passiert da was wenn Du es benutzt?
Wenn nicht dann kommt auch nichts in Symcon an.

Hallo Attain

Ich habe mal ein Mockup gemacht:
2024-06-06 16_09_09-Webfront Big

Dank und Gruss!
Tom

1 „Gefällt mir“

Moin Attain,

also das wurde im Objektbaum angelegt:

Wo muss ich denn nachschauen ob ‚Events‘ ankommen, wenn ich das Keypad benutze?
Ich bin überfordet… :innocent:

Gruß,
Holger

Hallo Zusammen,

bei uns läuft seit gestern das Switchbot Pro Lock - und bis jetzt sind wir auf Grund der diversen Möglichkeiten (Fingerabdruck, NFC, Bluetooth, PIN-Code) super begeistert.

Habt ihr es geschafft bei der Integration zwischen „offen“ und „Falle gezogen“ zu unterscheiden? Also der Unterschied zwischen Auf- und Abgeschlossen - und Türe öffnet vollständig auf Grund gezogener Falle?

Irgendwie klappt bei mir sowohl über Matter als auch über die Symcon-Integration nur Zu und „Falle gezogen → Türe geht komplett auf“. Eigentlich sollte sowohl der aktuelle Matter-Standard 1.3 zwischen Auf und Falle gezogen unterscheiden können, als auch die Integration (so hoffe ich).

Hab ich also was falsch gemacht - oder gibt’s hier noch ein generelles Problem? Ach ja - ich verwende die aktuelle Beta auf einer Symbox Pro

Viele Grüße,
Markus

Kleines Update zu meinem vorherigen Kommentar:
das Sieht nach einer „Schwäche“ in der aktuellen API aus:

Viele Grüße,
Markus