Symcon MQTT Server Device legt Unnamed Object (ID: xxx) an

Da im Discord keine Antworten kamen, die Frage dann doch im Forum.

Ich habe gerade mal mit ESPrecence rumgespielt. Es sendet „Unmengen“ an Daten und kann leider auch nicht direkt auf dem ESP filtern.

Aber ich habe auch im Symcon ein Problem, es kommt ein Topic
espresense/devices/tile:eee5ebf3dcbb/office

dazu kommen JSON Daten, aus meiner Sicht valide,

{"id":"tile:eee5ebf3dcbb","idType":19,"rssi@1m":-69,"rssi":-57,"mac":"eee5ebf3dcbb","raw":0.45,"distance":0.45,"speed":0}

zum Empfang habe ich ein „MQTT Server Device“ über den MQTT Konfigurator angelegt und dort im Debug erhalte ich

18.01.2022, 22:14:59 | INVALID | …

Die Variablen werden auch angelegt aber zusätzlich jedes Mal ein

Unnamed Object (ID: xxx)

Was läuft da falsch?

Hi Ralf,

sorry für die Verzögerung und hatte bisher gar keine Idee. Ich denk aber, dass ich jetzt einen guten Ansatz habe. rssi@1m ist kein gültiger Ident, da das @ ein Problem ist. Ich werde das zur 6.2 korrigieren - wegen dem Event wird es aber erst nächste Woche was :slight_smile:

paresy

1 „Gefällt mir“

Danke, du bist mein Held des Tages. Die fehlende Variable ist mir nicht aufgefallen, nächstes mal schau ich noch genauer.

Dann können die Tests beginnen :smiley: .

Ich fürchte, ich brauche noch mehr ESP32 :flushed: .

1 „Gefällt mir“

Hallo Ralf,

kannst du mal ein Beispiel posten, wie du die Masse an MQTT Objects aus espresense strukturierst und auswertest. Da kommt ja eine Menge rüber.

Gruss
Bernd

Ja, ESPresence liefer schon einiges, nicht alles lässt sich aufgrund der Rahmenbedingungen im Symcon einfach bearbeiten, da einerseits zuviel angelegt wird und andererseits bei rooms beispielsweise einige Inhalt sehr häufig überschrieben werden.

Ich nutze nur Telemetry um die Konfiguration zu sehen und Devices zur Überwachung.
Bei Devices würde mir eigentlich distance reichen.

Leider wird distance nicht auf 0 gesetzt, sondern einfach nicht mehr aktualisiert. Das gefällt mir nicht, aber das Team vom ESPresence ist auf meinen Wunsch nicht eingegangen.

Dadurch setze ich den Wert jetzt zyklisch selber auf 0, wenn er nicht „relativ neu“ ist. Distance prüfe ich dann in einem Script, dass auch andere Daten (WLAN, …) prüft und setzt die Anwesenheit. Das funktioniert sehr gut.

Außerdem versuche ich die Anwesenheit im Raum auszuwerten, in einem anderen Script, das die Entfernungen bewertet. Also manuell erstellt und alles durch distance getriggert.

Es erfolgt leider einiges an Änderungen und dadurch Scriptaufrufe, aber das habe ich etwas reduziert durch
grafik

Dadurch wird selterner aktualisiert, aber selbst 2 Meter Sprünge sind bei fest statisch liegendem Tile immer mal da.

Distance funktioniert auch nur halbwegs zuverlässig und eher nur in einer Ebene, ansonsten sind die Entfernungen manchmal auch nach oben oder unten :wink: .

Ich will noch zwei ESP in die Haupträume oben und unten hängen und prüfen, ob es dann noch stabiler wird. Dann könnte ich immer 6 Entfernungen auswerten.

gibt es da ein Modul dazu oder wie bekomm ich die Variablen angelegt?

Es gibt kein Modul, das kannst du problemlos über den MQTT Konfigurator nutzen.

ah, ok, danke, den hab ich noch nie verwendet, hab bisher z.B. meine Tasmota immer einzeln selber angelegt. Wie fragst du dann ab? wenn mehr als 10 Sekunden nicht akutalisiert wird? die Entfernungen die angegeben werden passen ja nicht immer. hast du mal ein Beispiel?

Es wird ja nicht abgefragt, sondern durch den Sender und dann espresense über MQTT regelmäßig/häufig gesendet. Damit stimmt die Entfernung schon mit ±1 Meter, wenn du die ESP32 sinnvoll angeordnet hast. Allerdings wird der Wert leider nicht auf irgendeinen klaren Wert bei „nicht mehr da“ gesetzt, dass mache ich über ein Script und setze die Entfernung im MQTT Server auf 0. Aber auch das Nullsetzen funktioniert nicht 100%.

In diesem Bild passt es gerade zufällig, der Tile2 liegt statisch auf dem Flur in der Mitte der 4 ESP32. Die Entfernung ist ca.100-150% zu niedrig, die ESP32 liegen in den Außenecken des Hauses, das ist ca. 9,5x9,5 Meter im Grundriss. Trotzdem wird er ab und zu nicht gesehen. Da ich nur alle 66 Sekunden auf Null setze, ist das nicht wirklich zum „genauen wissen“ geeignet, eher zum abschätzen.

Probleme gibt es bei mehreren Etagen, da du je nach Anordnung der ESP32 nicht sicher sagen kannst, in welcher Etage der Sender ist.

Nur mal ganz kurz, weil ich grad zufällig drüber gestolpert bin:

wenn ihr der ESP URL nach der IP ein /ui anhängt, wird es noch etwas interessanter :wink:

(aber nur, falls ihr es NICHT wusstet)

Erklärung

LG Tom