NEWS
Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread)
-
@dslraser also meinst Du dann einen eigenen Datepunkt erstellen und dann prüfen falls alle Fenster geschlossen dann DP auf true und falls noch welche geöffnet dann auf false.
-
@kilasat
nein, ich meine sowas in der Art (ist etwas länger und schickt das Ergebnis an Telegram. Die Ergebnisse könnte man ja auch in eigene Datenpunkte schreiben und die dann für iQontrol benutzen.Ergebnis z.B.:
Oder das bekannte Fenster zählen Script aus dem Forum. (sollte in der Suche zu finden sein)
-
-
@dslraser sagte in [Neuer Adapter] Visualisierung iQontrol:
Oder das bekannte Fenster zählen Script aus dem Forum.
Genaus so habe ich es umgesetzt.
Auf meiner Startseite habe ich eine Übersicht ob irgendeine Tür oder irgendein Fenster offen ist
Wenn ich auf eine der Kacheln klicke, komme ich auf meine Übersichtsseite:
-
Hallo Zusammen,
erst mal ein Lob an den Entwickler des Adapter.
Finde ihn prima und bei mir läuft er auch tadellos.Eine Anregung hätte ich allerdings. Es wäre schön wenn man
invertieren könnte, also aus Ein wird dann Aus.Könnte man das umsetzen?
-
Ich habe es mit einen Skript gemacht und dann als Wert anzeigen:
-
@sigi234 mit welchem script? Das aus dem Forum. Was der dslraser weiter oben gepostet hatte?
-
@kilasat sagte in [Neuer Adapter] Visualisierung iQontrol:
@sigi234 mit welchem script? Das aus dem Forum. Was der dslraser weiter oben gepostet hatte?
// ######## SKRIPT EINSTELLUNGEN ######## var debug = true; // ######### STATES ANLEGEN ######### createState('offene_Fenster.Gesamt.offeneFenster', 0); createState('offene_Fenster.Gesamt.Fenster', 0); createState('offene_Fenster.Gesamt.Text'); var cacheSelectorFenster = $('channel[state.id=*.STATE](functions=Verschluss)'); function countFenster(obj) { // Setzt die Zähler vor dem Durchlauf aller Elemente auf 0 var anzahlFenster = 0; var anzahlFensterauf = 0; var textFensterauf = []; cacheSelectorFenster.each(function (id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Verschluss var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element) if(debug) log("Status ist: "+status); var obj = getObject(id); if (status == 1 || status === true) { // wenn Zustand true (HM norm) oder "1" (bei HmIP), dann wird die Anzahl der Fenster hochgezählt ++anzahlFensterauf; textFensterauf.push(obj.common.name); // Zu Array hinzufügen } if(debug) log("Fenster Nr. " + i + ": " + getObject(id).common.name + ": " + status); ++anzahlFenster; // Zählt die Anzahl der vorhandenen Fenster unabhängig vom Status }); setState("offene_Fenster.Gesamt.offeneFenster", anzahlFensterauf); // Schreibt die aktuelle Anzahl setState("offene_Fenster.Gesamt.Fenster", anzahlFenster); // Schreibt die aktuelle Anzahl der vorhandene Elemente setState("offene_Fenster.Gesamt.Text", textFensterauf.join(',<br>')); // Schreibt die aktuelle Namen } cacheSelectorFenster.on(function(obj) { // bei Zustandänderung *. STATE im Gewerk Fenster countFenster(obj); }); // START countFenster();
-
@dslraser cool. Das Script schaue ich mir an.
Wäre es möglich, dass du mir das Blockly exportierst?Bzw man sieht nicht wie die Ausgabe genau stattfindet.
Danke und Gruss
Alex -
Besten Dank. Was muss ich hier noch anpassen damit es läuft? Habe Xiaomi Kontakte.
-
ich habe mal eben was zusammengesteckt...
(ist für meine HMIP Fensterkontakte ohne Unterscheidung ob kipp/auf. Ich schaue hier nur nach offenen Fenstern und der Gesamtanzahl der Fenster) HMIP hat STATE (Großschreibung) und meine Aufzählung (functions) heißt Fenster.Javascript Adapter ist 4.1.14
iQontrol ist 0.0.45Diese beiden Datenpunkte werden bei mir angelegt.
in iQontrol habe ich es dann so eingefügt
Sieht dann so aus
Ein weiterer Klick öffnet die Seite mit allen Fenstern
-
@dslraser ich habe es noch nicht im Detail anschauen können. Aber ich bedanke mich bereits sehr für die Unterstützung.
-
Ich weiss nicht warum es die Anzahl der Fenster nicht zählt. Habe eigentlich alles angepasst.
JS Adapter neu gestartet.
-
@kilasat hast Du im Blockly bei den unteren beiden Einträgen auch noch einmal "Fenster_Anzahl_gesamt" und "Fenster_Anzahl_offen" aus den Objektübersicht manuelle rausgesucht?
Dort ist auch ein anderer Pfad hinterlegt -
@BBTown ja das habe ich. Aber ich habe nicht gesehen, dass bei Xiaomi TFK der STATE = state ist.
channelstate.id=state
Habe es angepasst, passiert immer noch nichts. Muss ich zum Triggern ein Fenster öffnen?
-
mit *.state habe ich es schon probiert. Hmm...
-
@kilasat
bei Dir ist Fenster = fenster, oder ? (klein geschrieben--hinten)bei mir groß
-
@dslraser es war klein. Habs nun auf Gross geändert. Ohne erfolgt.
-
@kilasat
zeig mal ein RAW von einem Fensterhier HMIP
{ "type": "state", "common": { "def": "CLOSED", "type": "number", "read": true, "write": false, "min": "CLOSED", "max": "OPEN", "states": { "0": "CLOSED", "1": "OPEN" }, "unit": "\"\"", "role": "value.window", "name": "Wohnzimmerfenster links.STATE" }, "native": { "MIN": "CLOSED", "UNIT": "\"\"", "OPERATIONS": 5, "MAX": "OPEN", "FLAGS": 1, "ID": "STATE", "TAB_ORDER": 0, "TYPE": "ENUM", "DEFAULT": "CLOSED", "VALUE_LIST": [ "CLOSED", "OPEN" ], "CONTROL": "DOOR_SENSOR.STATE" }, "from": "system.adapter.hm-rega.0", "user": "system.user.admin", "ts": 1559315348552, "_id": "hm-rpc.0.xxx.1.STATE", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
{
"_id": "mihome.0.devices.magnet_158d000315c1a9.state",
"common": {
"name": "Is opened",
"role": "state",
"write": false,
"read": true,
"type": "boolean"
},
"type": "state",
"native": {},
"from": "system.adapter.mihome.0",
"user": "system.user.admin",
"ts": 1562618691659,
"acl": {
"object": 1636,
"state": 1636,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
}
}