Homeegram durch Geräte Verfügbarkeit auslösen

Aber das kann doch nicht der einzige Grund sein dafür, dass es die Funktion generell (Zustand Geräte für Homeegramme nutzen) nicht gibt.

  1. Benutzt ja gar nicht jeder seine Geräte im Mesh, bspw. kleine Wohnung -> Reichweite vom Cube ausreichend.
  2. Ist dass doch gerade für Mesh-Benutzer interessant. Die wollen vielleicht ne Push-Nachricht bekommen, falls ein Knoten plötzlich stromlos ist (kann ja auch mal ne Sicherung fliegen oder die Birne kaputt sein).

Ich glaube eher, dass ein Problem für den Cube ist, wenn der alle 100 ms oder so den Zustand aller Geräte checken muss, also die alle einmal anpingen muss und auf ne Antwort warten muss. Sonst macht der das ja nur beim Öffnen der App.
Keine Ahnung ob das der Grund ist, aber das Meshprinzip kann nicht der (Haupt-)Grund sein.

1 „Gefällt mir“

Doch, Z-Wave baut immer ein Mesh auf, unabhängig von der Größe der Wohnung.

Stimmt. Deswegen der Feature-Vorschlag. Micha hat mit virtuellen hih hier in NodeRed etwas ähnliches nachgebaut.

:coffee:

Moin,

das muss er doch gar nicht. Sobald man ein Aktor angesprochen wird und dieser nicht erreichbar ist, wird dieser als „nicht verfügbar“ markiert. Sensoren i.d.R. wenn sie öfter den Aufwachintervall überschreiten.
Manchmal kommt es bei Zigbee sogar vor, das Geräte einfach ausgrauen, sie funktionieren dann sofort wieder, wenn man sie in der App schaltet, im HG als Bedingung funktionieren die dann allerdings nicht :frowning: Da wäre es klasse ein solches Instrument zur Automatisierung zur Hand zu haben…

Ich habe an einem Slave nur batteriebetriebene Geräte. Könnte schwören, dass da kein Mesh aufgebaut wird :wink:

Klingt interessant, weißt Du zufällig wo das steht?

@Zigz

Ich kann das voll verstehen, ich habe im Treppenhaus ein ähnliches Szenario. Ich will da einfach die sichere Möglichkeit des Schaltens haben und trotzdem die Helligkeit regeln können.

Viele Grüße
JayJay

Touché, mit den Zwave Sensoren hast du natürlich vollkommen Recht. :wink:

Ich glaube in dem Megathread zu virtuellen Geräten, jetzt aber richtig. Oder @Micha hast du das noch wo anders?

:coffee:

1 „Gefällt mir“

Kann sein das es da mal aufgegriffen wurde. Den State der Geräte sicher zu ermitteln ist aber nicht zu 100% möglich.
Für jedes Gerät wird ein individueller Livetracker angelegt. Sollte Das Gerät nach x Versuchen nicht erreichbar sein oder sich nach einer Anzahl x an Aufwachintervallen nicht melden so wird es ausgegraut.
Daher kann es eine Weile dauern bis der State in homee auf nicht erreichbar wechselt.

Die State Abfrage nutze ich bei mir um zu sehen welche Geräte nicht erreichbar sind. Dieses wird mir dann per Push gemeldet.
Einzelne Geräte können hier natürlich auch als Auslöser für HG‘s genutzt werden, alles jedoch nur über 3rd Party Lösungen.

VG

Das würde zumindest mich schon mal einen Schritt weiter bringen. Hättest Du mal nen Beispielflow für mich? Ich hoffe das funktioniert mit dem alten homee-node schon…

In dem Zusammenhang: ist es in node-red möglich eine Aktion auszuführen wenn etwas nicht ausgelöst wird?
Ich beschreibe eine Datei mit Datum und Text in kleinen Zeitabständen, könnte ich eine Aktion auslösen wenn nach einer Minute nichts mehr geschrieben wird?

Viele Grüße
JayJay

Hey @JayJayX ,
Ja das geht mit dem alten Node.
Du kannst natürlich das ändern des State nutzen um irgendetwas zu triggern.

VG

2 „Gefällt mir“

Das mit das Thema nicht einschläft:
Ich hätte diese Funktion auch sehr sehr sehr gerne. Ich habe eine bestehende Elektrik-Infrastruktur in die ich nicht oder nur sehr begrenzt eingreifen kann und auch möchte.
Es wäre daher hochgrading interessant und hilfreich einen Trigger zu erhalten, wenn ein Gerät (in meinem Fall sind es Zigbee-LED-Controller) verfügbar wird. Im gesamten Thread werden einige, aus meiner Sicht gute Argumente genannt, warum die beiden Trigger (Gerät verfügbar / nicht verfügbar) nicht fehlen sollten … auch wenn es vielleicht dem Mesh-Prinzip widerspricht.

Ist jemand vom Programmiererteam in der Lage zu sagen, ob so eine Funktion in näherer Zukunft zu erwarten ist oder nicht?

3 „Gefällt mir“

Gerade über die hier beschriebene Problemstellung zuhause gestolpert. EIn Aussensensor , der nur per Batterie betrieben werden kann, fällt aus da die Batterien völlig leer gegangen sind. Basierend auf den Messwerten werden sensible Aktionen gesteuert.

EIne Sonderbehandlung muss erfolgen, sobald der Aussensensor nicht mehr sendet. Zur Zeit habe ich es so gelöst, dass wenn sich der Wert innerhalb 2 Stunden nicht ändert, ist der Sensor „ausgefallen“ … ist aber irgendwie unschön…

Machst Du das pro Gerät mit einem HG?

@Micha
Könntest Du da etwas mit node-red hinfummeln, wie mit den (nicht)erreichbaren Geräten. Mir fehlt da das know-how, habe nicht mal das Script für mich anpassen können :frowning:
Also, schon bevor homee erkennt das sie nicht erreichbar sind, wenn sie beispielsweise für 2h keine Daten senden…

Ziemlich unschön: Sobald sich die Temperatur ändert, schalte ich ein 2-Stunden laufendes homegramm. Wenn dieses ausläuft , dann schaltet es ein Platzhalter homegramm auf „Deaktiviert“ , somit weiss ich, dass der Aussensensor ausser betrieb ist. Und in die homegramm, die wissen müssen, ob der aussensensor funktionsfähig ist, kann man das Platzhalter homeegramm einbinden „Wenn deaktivert…“ etc

1 „Gefällt mir“

Naja, leider lassen sich einige Dinge bei homee nur „unschön“ lösen, aber immer noch besser als gar nicht… Eine Lösung für dutzende Geräte ist das aber glaube ich nicht…
Differenzieren was wichtig ist und was nicht, kann ich nicht… Es sind bei mir alle Sensoren wichtig, sonst hätte ich sie ja nicht :smiley:

Ja klar, aber hier gehts ja um eine Bedingung, falls ein gerät nicht verfügbar ist. Da muss man ganz anders mit einem homeegramm reagieren. Daher wäre es wünschenswert diesen Status auch verfügbar zu haben, ohne den „unschönen“ Umweg.

Wichtig und Kritisch, ist bei meinen Use-Cases ein großer Unterschied.

Wichtig ist , dass abends eine Lampe nicht unnötig früh durch falsche Werte Angeht oder den ganzen Tag unnötig brennt.

Kritisch ist, dass durch falsche/nicht gesendete Werte meine Palmenheizung nicht angeht und die Palme erfriert, ohne dass ich es mitbekomme.

Kritisch: Jetzt kommen noch die Raffstores dazu. Wenn es draussen friert, dürfen die Raffstores nicht gefahren werden. Wenn der Aussensensor aber nicht die korrekte Temperatur sendet, dann fahren sie trotzdem, weil der letzte Wert bei +2 Grad lag … → Kaputte Raffstores.

1 „Gefällt mir“

Muss ich mir mal anschauen die Sache.
Problem wird sein das hier dann wahrscheinlich für jedes Gerät eine Funktion geschrieben werden muss.

Hier muss ja dann aktiv kontrolliert werden in einem bestimmten Rhythmus.
So nach dem Motto, alle 10 Minuten checken ob der lastchange älter als 2 h Stunden ist.
Und es müsste auf die entsprechende Type ID gefiltert werden.
Sollte also machbar sein.

Edit: nein eine Funktion sollte reichen.

1 „Gefällt mir“

Ich bin ja total weit weg vom geschehen. :crazy_face:
Aber den Status Gerät ist nicht verfügbar, gibt es doch, oder nicht?
Wäre ein Filter, zeige alle nicht verfügbare Geräte an, nicht schon enorm hilfreich?!

Der kommt aber in der Regel viel zu spät, teilweise erst nach 1-2 Tagen nachdem keine Werte mehr geliefert werden…

Gibt es auch schon, einfach „nicht verfügbar“ in der Suchleiste eingeben.
Will man das aber auf irgendeine Art automatisieren, geht das nicht…

[
    {
        "id": "698d2faa.f6be2",
        "type": "inject",
        "z": "54ed691d.6adf68",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 450,
        "y": 180,
        "wires": [
            [
                "bbd8f90d.b56928"
            ]
        ]
    },
    {
        "id": "bbd8f90d.b56928",
        "type": "function",
        "z": "54ed691d.6adf68",
        "name": "",
        "func": "const attributes = global.get(\"homee.attributes\");\nconst name = global.get(\"homee.nodes\");\nvar type = 5\nvar date  = Date.now();\nattributes.forEach(function(test){\n    if(test.type == type){ \n        var name2 = name.find(name2 => name2.id == test.node_id);\n        var zeit = Math.round((Math.round((date/1000)-test.last_changed))/60);\n        if( zeit > 120){\n            node.send({\n                payload: zeit  + \" Min seit letzte Änderung   \" + decodeURIComponent(name2.name)\n            })\n        }\n    }\n});\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 750,
        "y": 180,
        "wires": [
            [
                "a4cccf2b.7f1e4"
            ]
        ]
    },
    {
        "id": "a4cccf2b.7f1e4",
        "type": "debug",
        "z": "54ed691d.6adf68",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 960,
        "y": 180,
        "wires": []
    }
]

Hier ist die Funktion mit der du die Geräte Filtern kannst die seit 120 Minuten keinen Wert gesendet haben.
Beim Type musst du die Type ID einsetzen auf die du filtern magst( im Beispiel ist es die 5 = Temperatur ).
musst nur schauen was du damit dann wie anfangen magst.
Wichtig ist das der API Node alle Werte in der globalen speichert.

Viel Spaß und Erfolg damit.

2 „Gefällt mir“

Wow… Danke, werde ich, wenn ich zu Hause bin gleich mal ausprobieren…

1 „Gefällt mir“

Moin @Micha,

klasse Script, funktioniert schon sehr gut, ich habe glatt Sensoren finden können, die die Temperatur nicht aktualisieren obwohl andere Werte aktualisiert werden.

Kann ich das auch für alle Type ID ausführen oder muss ich für jede Type ID eine eigene Instanz anlegen?

1000 Dank
JayJayX

1 „Gefällt mir“

Das script lässt sich auch erweitern, so das du verschiedene Typen kontrollieren kannst.
Es muss natürlich auch alles einen Sinn ergeben beim Testen.
Auch muss berücksichtigt werden das hier nur die Werte im globalen Kontext kontrolliert werden. Die Daten kann man natürlich auch auftischen mit einem Abruf get:all .

3 „Gefällt mir“