Nein, das ist nicht das Problem … ich habe ein zweites TRV angebunden und normalerweise würde man ja dann eine Wiederholgruppe erwarten mit den gleichen Instanzen des ersten TRVs. (z.B. Device-ID 200 beim ersten TRV und darunter die Sensoren mit ID 200 … 204). Das zweite TRV sollte dann Device-ID 201 haben und ebenfalls Sensoren mit ID 200…204. Aber statt dessen werden einfach die ID’s der Sensoren hochgezählt (ID 205 … 208) und dann ist nicht mehr ersichtlich, welche Sensor-ID zu welcher Device-ID gehört.
Genau das habe ich befürchtet und dafür noch keine Lösung gefunden, deswegen macht es das so schwer das ganze ins Modul einzubinden.
Aber dann verstehst du ja, wieso ich das Thermostat noch nicht eingebunden habe.
Grüße,
Kai
Hallo Kai,
nach dem Modul-Update auf Shelly 6.2 funktionieren
BLU Motion, BLU Button, BLU Door und das Gateway nicht mehr.
Hab es auch schon mit dem Beta-Kanal versucht, leider ohne Erfolg.
Auch der Shelly Configurator V2 ist nicht erreichbar:
Konnte Konfigurationsform nicht laden
Warning: InstanceInterface is not available in /var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php on line 917
Fatal error: Uncaught TypeError: strtolower(): Argument #1 ($string) must be of type string, false given in /var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php:917
Stack trace:
#0 /var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php(917): strtolower(false)
#1 /var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php(449): ShellyConfigurator->getShellyInstances(‚shellyblugw-08d…‘)
#2 /-(3): ShellyConfigurator->GetConfigurationForm()
#3 {main}
thrown in /var/lib/symcon/modules/.store/info.schnittcher.ips.shelly/ShellyConfigurator/module.php on line 917 (Code: -32603)
Hast du vielleicht eine Idee?
Ja, die Shelly BLU Gateway Instanz muss gelöscht werden.
Hast du das ShellyBLU Modul über die Git URL installiert?
Grüße,
Kai
Das normale Shelly-Modul über den Store und Shelly BLU über github.
Dann sollte das gehen, starte mal Symcon neu.
Grüße,
Kai
Die Gateway-Instanz hab ich gelöscht. Symcon (Docker-Container) hat seltsamerweise 3 Versuche benötigt.
Nach und nach funktionieren auch die BLU Buttons wieder. Allerdings lässt sich der Configurator V2 nicht öffnen. Es wird immer noch die gleiche Fehlermeldung ausgegeben.
Hallo,
ich habe mal etwas weiter experimentiert und das Gateway und die BLU.TRV laufen soweit. Das Problem mit den durchnummerierten Device-ID’s ist wohl bei Shelly schon aufgeschlagen, aber es gibt noch keine Korrektur/Änderung dazu. Ich habe die Steuerung von externer Temperatur und Soll-Temperatur über HTTP-Befehle implementiert. Nun würde ich gerne das ganze auch über MQTT-Publish-Befehle machen, aber irgendwie fehlt mir noch das gewisse Verständnis für das Request-Action.
Anbei die Instanz und das Script meines Versuchs, die ext. Temperatur rauszuschicken, aber leider bekomme ich einen Fehler und komme nicht drauf, woran es hängt.
Benötigt man dazu das BLU-Script (was leider Fehler wirft, da es das TRV nicht kennt) ?
<?php
$CMD = '{
"id": 0,
"src": "testcommand",
"method": "BluTRV.Call",
"params": {
"id": 200,
"method": "TRV.SetExternalTemperature",
"params": {
"id": 0,
"t_C": 19
}
}
}';
RequestAction(37683, $CMD);
?>
Warning: Variable #37683 existiert nicht in C:\ProgramData\Symcon\scripts\23572.ips.php on line 18
Lt. Shelly-Forum müsste es mit diesem JSON-String funktionieren …
Grüße Frank
Bei RequestAction musst du die Variable angeben, nicht die Instanz!
Michael
Ah, ok - danke, der Fehler ist weg und der Wert ist angekommen … Das BLU-Script im Gateway benötigt man also für die TRV’s nicht (?).
Grüße Frank
Nein, das brauchst du nicht, das übernimmt das Gateway von Shelly für dich.
Kannst du mich informieren, wenn sich da was bzgl. der IDs tut? Dann würde ich das gerne direkt einbauen.
Grüße,
Kai
klar, das mache ich gern
Grüße Frank
Hallo Kai,
ich weiß nicht, ob dir das wirklich weiterhilft, aber ich habe mal etwas herumprobiert und folgendes herausgefunden:
Mit dem Befehl [XXX.XXX.XXX.XXX/rpc/Shelly.GetComponents] bekommt man die TRV- bzw. BTHome-Device-ID’s aller mit dem Gateway verbundener Geräte. Auf Basis dieses Ergebnisses kann man mit der jeweiligen ID über [XXX.XXX.XXX.XXX/rpc/BTHomeDevice.GetKnownObjects?id=200] die Sensoren der Geräte auflisten. Anhand der obj_id und des idx ist auch ersichtlich, um was für einen Sensor es sich handelt. Schlussendlich kann man sich die wichtigsten Attribute und Inhalte der Sensoren über [XXX.XXX.XXX.XXX/rpc/BTHomeSensor.GetConfig?id=200] bzw. [XXX.XXX.XXX.XXX/rpc/BTHomeSensor.GetStatus?id=200] holen.
Shelly.GetComponents:
{
"components": [
{
"key": "ble",
"status": {
},
"config": {
"enable": true,
"rpc": {
"enable": true
}
}
},
{
"key": "blugw",
"status": {
},
"config": {
"sys_led_enable": true
}
},
{
"key": "blutrv:200",
"status": {
"id": 200,
"target_C": 21,
"current_C": 21.4,
"pos": 1,
"rssi": -45,
"battery": 100,
"packet_id": 106,
"last_updated_ts": 1740848715,
"paired": true,
"rpc": true,
"rsv": 18
},
"config": {
"id": 200,
"addr": "28:db:a7:b5:d2:b0",
"name": "Patrick 200",
"key": null,
"trv": "bthomedevice:200",
"temp_sensors": [],
"dw_sensors": [
"bthomesensor:212"
],
"override_delay": 1,
"meta": {
}
},
"attrs": {
"flags": 17,
"model_id": 8
}
},
{
"key": "blutrv:201",
"status": {
"id": 201,
"target_C": 22,
"current_C": 21.9,
"pos": 0,
"rssi": -59,
"battery": 100,
"packet_id": 155,
"last_updated_ts": 1740848715,
"paired": true,
"rpc": true,
"rsv": 24
},
"config": {
"id": 201,
"addr": "f8:44:77:1c:53:1e",
"name": "Bad 201",
"key": null,
"trv": "bthomedevice:201",
"temp_sensors": [],
"dw_sensors": [],
"override_delay": 30,
"meta": {
}
},
"attrs": {
"flags": 17,
"model_id": 8
}
},
{
"key": "bthome",
"status": {
},
"config": {
}
},
{
"key": "bthomedevice:200",
"status": {
"id": 200,
"rssi": -45,
"battery": 100,
"packet_id": 106,
"last_updated_ts": 1740848715,
"paired": true,
"rpc": true,
"rsv": 18
},
"config": {
"id": 200,
"addr": "28:db:a7:b5:d2:b0",
"name": "Patrick 200",
"key": null,
"meta": {
"ui": {
"view": "regular",
"icon": null
}
}
},
"attrs": {
"flags": 17,
"model_id": 8
}
},
{
"key": "bthomedevice:201",
"status": {
"id": 201,
"rssi": -59,
"battery": 100,
"packet_id": 155,
"last_updated_ts": 1740848715,
"paired": true,
"rpc": true,
"rsv": 24
},
"config": {
"id": 201,
"addr": "f8:44:77:1c:53:1e",
"name": "Bad 201",
"key": null,
"meta": {
"ui": {
"view": "regular",
"icon": null
}
}
},
"attrs": {
"flags": 17,
"model_id": 8
}
},
{
"key": "bthomedevice:202",
"status": {
"id": 202,
"rssi": -66,
"battery": 100,
"packet_id": 117,
"last_updated_ts": 1740684461,
"paired": false,
"rpc": false,
"rsv": -1
},
"config": {
"id": 202,
"addr": "0c:ef:f6:b7:de:07",
"name": "Fenster",
"key": null,
"meta": {
"ui": {
"view": "regular",
"icon": null
}
}
},
"attrs": {
"flags": 0,
"model_id": 2
}
},
{
"key": "bthomesensor:200",
"status": {
"id": 200,
"value": 100,
"last_updated_ts": 1740848715
},
"config": {
"id": 200,
"addr": "28:db:a7:b5:d2:b0",
"name": "Batteriestatus 200",
"obj_id": 1,
"idx": 0,
"meta": {
"ui": {
"icon": null
}
}
}
}
],
"cfg_rev": 459,
"offset": 0,
"total": 30
}
BTHomeDevice.GetKnownObjects?id=200:
{
"id": 200,
"objects": [
{
"obj_id": 84,
"idx": 0,
"component": null
},
{
"obj_id": 1,
"idx": 0,
"component": "bthomesensor:200"
},
{
"obj_id": 58,
"idx": 0,
"component": "bthomesensor:201"
},
{
"obj_id": 69,
"idx": 0,
"component": "bthomesensor:202"
},
{
"obj_id": 69,
"idx": 1,
"component": "bthomesensor:203"
},
{
"obj_id": 69,
"idx": 2,
"component": "bthomesensor:204"
}
]
}
BTHomeSensor.GetConfig?id=200:
{
„id“: 200,
„addr“: „28:db:a7:b5:d2:b0“,
„name“: „Batteriestatus 200“,
„obj_id“: 1,
„idx“: 0,
„meta“: {
„ui“: {
„icon“: null
}
}
}
BTHomeSensor.GetStatus?id=200:
{
"id": 200,
"value": 100,
"last_updated_ts": 1740934744
}
Die TRV’s werden sowohl unter blutrv als auch über BTHomeDevices aufgelistet. Also blutrv mit ID 200 ist das selbe Gerät wie BTHomeDevice mit ID 200. Warum das so ist, kann ich nicht erklären.
Die obj_id’s der Sensoren sind
ID=1 : Batterie
ID=58: Button
ID=69: Temperatur => idx=0: Solltemperatur, idx=1: Temperatur intern, idx=2: Temperatur extern
Wenn dir das für dein Modul weiterhilft, würde ich mich freuen, diese Meldung „BTH: Unknown type“ irgendwann nicht mehr aus dem Script zu bekommen .
Moin,
ich hab heute festgestellt, das mein BluGateway nicht mehr erkannt wird:
Im Konfigurator wird es auch nicht angezeigt:
Ist das bekannt, gibt es eine Lösung, kann ich was tun?
dankende Grüße,
Loerdy
Siehe hier oben:
Ist wohl noch nicht behoben.
Michael
Ah, okay. Das hab ich nicht gefunden.
Danke für die Info!
Loerdy
Noch eine Zusatz-Erfahrung die ich gemacht habe:
Die Durchnummerierung der blutrv und der bthomedevice sind unabhängig voneinander. Wenn man nach 2 TRV’s einen D/W einbindet und danach noch ein TRV, so bekommt der 3.TRV eine blutrv-ID von 202, die bthomedevice-ID ist jedoch 203.
Habe das ShellyBlu Modul über den alten Module Store eingebunden. Das Script habe ich am Blu Gateway laufen. Der Shelly Blu Configurator findet aber nichts. Muss ich noch was machen?
Was soll das sein?
Es gibt das Modul Control und den Module Store.
Haben sich die Geräte schon einmal gemeldet (also Daten gesendet) nachdem Symcon gestartet bzw das Modul installiert wurde?
Michael
ja, das Modul Control habe ich gemeint. Ich habe die Geräte über die Shelly App mit dem Gateway verbunden und kann sie so auch ansprechen. Das Gateway ist ein Shelly Plus 2PM, dort habe ich das Skript installiert. Der Shelly Plus ist auch über Symcon erreichbar, was mir aber auffällt ist, dass bei dem als einzigem keine IP-Adresse im Konfigurator steht.
Das Gerät kann aber über Symcon angesprochen werden.
Wie kann ich schauen ob sich die Geräte melden? Was muss ich debuggen?