Binäres Diagramm: Präsenz hinzufügen?

Hallo

Die neueste Version von Glasys ermöglicht die Anzeige von binären Grafiken. Allerdings ist es nicht möglich, eine Präsenz (also a priori binär) aus dem LAN-Manager anzuzeigen.
Kann man diese Präsenz anzeigen lassen? Ich vermute, dass dies damit zusammenhängt, dass die Historie für LAN-Manager-Objekte nicht verwaltet wird?

Vielen Dank an euch :wink:

Z.

Hallo @zedyxer,

Ich habe es auf meiner Seite versucht und kann die Präsenz tatsächlich einem Diagramm hinzufügen:

Bist du sicher, dass es bei dir nicht funktioniert?

Hallo Pierre-Gilles,

Vielen Dank für deine Antwort :slight_smile: , ich habe mich wahrscheinlich falsch ausgedrückt. Tatsächlich ist es möglich, eine LAN-Manager-Präsenz mit einem Binärdiagramm zu verknüpfen, aber dieses wird nicht angezeigt:


Deshalb dachte ich, dass es sich um nicht historisierte Daten handelt.

Ich habe den Code angesehen und er ist gut historisiert:

Bist du sicher, dass du Werte für die letzte Stunde hast?

Dieser Dienst sendet einen Wert « 1 », jedes Mal, wenn ein Gerät gesehen wird. Wenn es nicht gesehen wird, wird keine « 0 » gesendet.

Es handelt sich um ein Smartphone mit WLAN, das meine Anwesenheit verwaltet. Ich habe das WLAN am Morgen mehrmals ein- und ausgeschaltet, aber das Diagramm ändert sich nicht. Ich habe deine letzte Phase bezüglich der Tatsache, dass keine 0 gesendet wird, nicht verstanden. Bedeutet das, dass ich die 0 auf einem anderen Weg senden muss?

Es gibt nichts Besonderes zu tun, ich möchte nur klarstellen, dass die Integration nur einen Wert sendet, wenn das Gerät erkannt wird. Es gibt derzeit keine „Rückstellung auf 0“, wenn das Gerät nicht erkannt wird.

Selbst wenn es uns gelingt, das Diagramm bei dir zum Laufen zu bringen, wirst du nur einen einzigen Farbstreifen sehen, keine Abwechslung zwischen Anwesenheit und Abwesenheit.

Bist du auf der neuesten Version von Gladys? (4.47?)

Ich bin auf Version 4.47. Dass die Integration nicht 0 sendet, wenn nichts erkannt wird, verhindert nicht, dass das Diagramm angezeigt wird, oder? Denn ich habe nur 1, obwohl ich das WLAN am Smartphone manuell ausgeschaltet habe?

Tatsächlich, ich kann das reproduzieren.

@Terdious es gibt ein Problem mit der SQL-Anfrage für binäre Geräte, wenn es sich um ein Gerät des Typs „Push“ handelt, das nur 1 sendet, funktioniert es nicht, es gibt keine Rückmeldung.

@Terdious ist der „change_marker“ in der Abfrage immer null, weil er sich nicht ändert:

Ich denke, dass die Abfrage deshalb nichts zurückgibt.

Ich denke, dass es einen Fehler mit der aktuellen Abfrage gibt, selbst für binäre Geräte, da der erste Wert nie zurückgegeben wird, weil die Abfrage denkt, dass sich der Zustand nicht geändert hat.

Was hältst du von einer Abfrage in diesem Stil:

WITH value_changes AS (
    SELECT
        created_at,
        value,
        LAG(value) OVER (ORDER BY created_at) AS prev_value
    FROM
        t_device_feature_state
    WHERE
        device_feature_id = ?
        AND created_at > ?
),
state_transitions AS (
    SELECT
        created_at,
        value
    FROM
        value_changes
    WHERE
        prev_value IS NULL OR value != prev_value
)
SELECT
    value,
    created_at
FROM
    state_transitions
ORDER BY
    created_at ASC
LIMIT ?

Bei diesem Datensatz:

zähle ich 21 verschiedene Werte

Die aktuelle Abfrage gibt mir nur 20 Werte zurück (alles außer dem ersten)

Die von mir vorgeschlagene Abfrage gibt alle 21 Werte zurück, abwechselnd:

Hallo,
Entschuldige, ich habe die Unterhaltung erst jetzt gesehen!!

In der Tat bin ich einverstanden (und gleichzeitig, wie könnte ich anders urteilen :grinning_face:), dass der erste Wert nicht berücksichtigt wird. Schade, dass ich das nicht gesehen habe, und vor allem entschuldige ich mich.

In der Tat, was sich nie ändert, außer dass es 1 sendet, kann nicht funktionieren.

So sehe ich nicht, wie man dieses Problem für die Anwesenheit lösen kann (ich habe dieses Verhalten übrigens nie gemocht… es sollte einen Timer geben, um auf 0 zurückzukehren) oder für jeden Detektor mit einmaliger Zustandsmeldung.

Was machen wir also? Hast du eine Idee im Kopf?

Lass mich wissen, ob du möchtest, dass ich mich um einen PR kümmere.

Ja! Die Anfrage, die ich oben vorgeschlagen habe :grinning_face_with_smiling_eyes:
Sie korrigiert die Funktionsweise für Binärdateien und Push-Benachrichtigungen

Bearbeitung: Ah, ich verstehe, was du meinst. Für die Rücksetzung auf null gibt es keine Wahl, es muss die LAN-Manager-Integration geändert werden, um eine Rücksetzung auf null zu codieren, wenn das Gerät nicht mehr sichtbar ist

Die vollständige Abfrage mit dem end_time:

WITH value_changes AS (
    SELECT
        created_at,
        value,
        LAG(value) OVER (ORDER BY created_at) AS prev_value
    FROM
        t_device_feature_state
    WHERE
        device_feature_id = ?
        AND created_at > ?
),
state_transitions AS (
    SELECT
        created_at,
        value,
        LEAD(created_at) OVER (ORDER BY created_at) AS end_time
    FROM
        value_changes
    WHERE
        prev_value IS NULL OR value != prev_value
)
SELECT
    value,
    created_at,
    end_time
FROM
    state_transitions
ORDER BY
    created_at ASC
LIMIT ?

Der PR:

Der PR ist in Gladys Assistant 4.48 enthalten:

Mit diesem PR, @zedyxer, solltest du eine durchgehende Linie sehen. Es wird nur die Zeiten anzeigen, in denen dein Gerät erkannt wird, aber nicht die Zeiten, in denen es nicht erkannt wird (der berühmte Rücksetz auf Null). Daher ist es im Moment noch nicht sehr nützlich.

Ich werde versuchen, das für die LAN Manager-Integration hinzuzufügen.

Danke für dieses Release, tatsächlich wird das Diagramm angezeigt, aber keine 0 wird angezeigt, nur die 1en, ich bleibe verbunden, danke für die Arbeit :wink:

Ich habe gerade einen PR vorgeschlagen, um den Rücksetzungswert zur LAN-Manager-Integration hinzuzufügen :slight_smile:

Feedback willkommen!

Der PR:

Docker-Image:

gladysassistant/gladys:lan-manager-add-value-zero

Super, das wird das Leben auf Präsenzebene sicher vereinfachen!

Kleiner Up, ich bin offen für Feedback zu diesem Bild :slight_smile:

installiert und im Test, ein großes Dankeschön!! :wink: