NEWS
[Neuer Adapter] smartstate
-
Öhm, man hat doch schon die (Objekt-)ID
Und Pfad sollte dann was? Davor noch einmal einen Unterordner anlegen? -
@bananajoe
Ja so habe ich mir das gedacht. Denn die ObjektId generiert sich ja grundsätzlich automatisch aus dem Namen. Und wenn ich jetzt den State/ObjektId strukturiert in einem Unterordner haben will müsste ich die Objekt-Id abändern auf "unterordner.objektid". So könnte ich das auch lösen und den Pfad dann weglassen, mit extra Setting für den Pfad geht er aber nicht verloren wenn du die ObjektId neu aus dem Namen berechnen lässt und ich dachte mir das wäre angenehmer zum bedienen -
Aber ich sehe das richtig das ich nur die Anzahl der z.B. offenen Fenster, eingeschalteten Lichter oder was auch immer sehe und nicht welche genau, oder?
-
@wendy2702
Ja, das war grundsätzlich das Ziel des Adapters. Der geht nur auf den Wert der Statis. Aber wenn der Wunsch besteht das umzusetzen kann ich mir das mal ansehen. Ich wüsste jetzt nur nicht wie man das in den Settings einstellen und wie das aussehen sollte -
@wendy2702 sagte in [Neuer Adapter] smartstate:
Aber ich sehe das richtig das ich nur die Anzahl der z.B. offenen Fenster, eingeschalteten Lichter oder was auch immer sehe und nicht welche genau, oder?
Du kannst die Anzahl der offenen und geschlossenen Fenster sehen. Und ob alle zu oder noch ein oder mehr offen (als true/false).
@ChriD ein weiterer Datenpunkt der einen dann eine Liste erstellt mit allen offenen oder geschlossenen Fenster wäre was. Ich würde ja als JSON bevorzugen. Das könnte per Widget flexibel in der VIS anzeigen lassen oder in eigenen Skripten weiterverarbeiten.
Die Frage ist das dann dann noch alles in diese Liste soll. Die Objekt-Id, der Name des Gerätes? -
Hi,
um beim Fenster/Licht Beispiel zu bleiben.
Angabe was z.B. offen/zu an/aus... oder was auch immer ist wuerde aus meiner Sicht schon sinn machen. Alleine die Anzahl der Geraete nutzt mir persoenlich nicht soviel. Muss ja dann doch wieder noch woanders gucken welche es sind.
-
@wendy2702
Hab's mir als isue im guthub hinzugefügt. Werde ich in den nächsten Tagen umsetzen.
Es wird vmtl. ein Häkchen am State geben welcher angibt ob die Statusinfos zur Berechnung in einem Eignen Objekt landen sollen. Die ID dafür wird vom Smartstate autom. abgeleitet.
Wie ich den Inhalt befülle bin ich mir noch nicht sicher. Vll. auch mit einer vom User auswählbaren Option (JSON State Object, JSON State Array, JSON Id Array, Id String (Strichpunktgetrennt)).Oder habt ihr da noch Ideen? Genügt ein JSON Array mit den states?
-
@chrid Hört sich gut an.
Danke!
-
Hi der Adapter funktioniert gut, aber wenn du noch den Namen ausgeben könntest, wäre das super.
Wie Wendy2702 schon sagte, man muss ja wissen, welche Fenster/Türen offen oder welche Devices offline sind, oder was man auch immer damit zählen mag.. -
@ilovegym @wendy2702 @BananaJoe
Es gibt jetzt eine neue Version git & npm. Bitte bei Gelegenheit mal schauen ob ihr damit zurecht kommt. Beschreibung zur neuen Funktionalität gibts hier:
https://github.com/ChriD/ioBroker.smartstate#using-the-state-info-type -
2023-02-07 19:22:36.514 - error: smartstate.0 (1886549) uncaught exception: id is not defined 2023-02-07 19:22:36.518 - error: smartstate.0 (1886549) ReferenceError: id is not defined at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.smartstate/main.js:568:2) at Module._compile (node:internal/modules/cjs/loader:1165:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10) at Module.load (node:internal/modules/cjs/loader:1043:32) at Function.Module._load (node:internal/modules/cjs/loader:878:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:22:47 2023-02-07 19:22:36.519 - error: smartstate.0 (1886549) id is not defined 2023-02-07 19:22:37.022 - warn: smartstate.0 (1886549) Terminated (UNCAUGHT_EXCEPTION): Without reason 2023-02-07 19:22:38.793 - warn: smartstate.0 (1886549) Unable to increase LUA script timeout: Connection is closed. 2023-02-07 19:22:39.071 - error: host.iobroker instance system.adapter.smartstate.0 terminated with code 6 (UNCAUGHT_EXCEPTION) 2023-02-07 19:22:39.071 - info: host.iobroker Restart adapter system.adapter.smartstate.0 because enabled 2023-02-07 19:22:48.824 - info: admin.2 (1701438) ==> Connected system.user.admin from 192.168.1.32 2023-02-07 19:23:09.381 - info: host.iobroker instance system.adapter.smartstate.0 started with pid 1887274 2023-02-07 19:23:10.598 - error: smartstate.0 (1887274) uncaught exception: id is not defined 2023-02-07 19:23:10.601 - error: smartstate.0 (1887274) ReferenceError: id is not defined at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.smartstate/main.js:568:2) at Module._compile (node:internal/modules/cjs/loader:1165:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10) at Module.load (node:internal/modules/cjs/loader:1043:32) at Function.Module._load (node:internal/modules/cjs/loader:878:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:22:47 2023-02-07 19:23:10.602 - error: smartstate.0 (1887274) id is not defined 2023-02-07 19:23:11.110 - warn: smartstate.0 (1887274) Terminated (UNCAUGHT_EXCEPTION): Without reason 2023-02-07 19:23:11.775 - error: smartstate.0 (1887274) uncaught exception: Connection is closed. 2023-02-07 19:23:11.777 - error: smartstate.0 (1887274) Error: Connection is closed. at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:184:25) at Socket.<anonymous> (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:151:20) at Object.onceWrapper (node:events:628:26) at Socket.emit (node:events:513:28) at TCP.<anonymous> (node:net:301:12) 2023-02-07 19:23:11.781 - error: smartstate.0 (1887274) Connection is closed. 2023-02-07 19:23:12.261 - error: host.iobroker instance system.adapter.smartstate.0 terminated with code 6 (UNCAUGHT_EXCEPTION) 2023-02-07 19:23:12.263 - info: host.iobroker Restart adapter system.adapter.smartstate.0 because enabled 2023-02-07 19:23:42.528 - info: host.iobroker instance system.adapter.smartstate.0 started with pid 1887422 2023-02-07 19:23:43.517 - error: smartstate.0 (1887422) uncaught exception: id is not defined 2023-02-07 19:23:43.519 - error: smartstate.0 (1887422) ReferenceError: id is not defined at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.smartstate/main.js:568:2) at Module._compile (node:internal/modules/cjs/loader:1165:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10) at Module.load (node:internal/modules/cjs/loader:1043:32) at Function.Module._load (node:internal/modules/cjs/loader:878:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:22:47 2023-02-07 19:23:43.520 - error: smartstate.0 (1887422) id is not defined 2023-02-07 19:23:44.022 - warn: smartstate.0 (1887422) Terminated (UNCAUGHT_EXCEPTION): Without reason 2023-02-07 19:23:44.716 - error: host.iobroker instance system.adapter.smartstate.0 terminated with code 6 (UNCAUGHT_EXCEPTION) 2023-02-07 19:23:44.717 - info: host.iobroker Restart adapter system.adapter.smartstate.0 because enabled 2023-02-07 19:23:44.717 - warn: host.iobroker Do not restart adapter system.adapter.smartstate.0 because restart loop detected
-
@bananajoe
ok, einmal gelöscht und neu anlegen ...
Immer noch Fehler:
2023-02-07 19:26:00.559 - error: smartstate.0 (1888687) id is not defined 2023-02-07 19:26:01.061 - warn: smartstate.0 (1888687) Terminated (UNCAUGHT_EXCEPTION): Without reason 2023-02-07 19:26:01.744 - error: host.iobroker instance system.adapter.smartstate.0 terminated with code 6 (UNCAUGHT_EXCEPTION) 2023-02-07 19:26:01.746 - info: host.iobroker Do not restart adapter system.adapter.smartstate.0 because disabled or deleted 2023-02-07 19:27:44.398 - info: admin.2 (1701438) <== Disconnect system.user.admin from 192.168.1.32 2023-02-07 19:28:01.423 - info: host.iobroker "system.adapter.smartstate.0" enabled 2023-02-07 19:28:02.529 - info: host.iobroker instance system.adapter.smartstate.0 started with pid 1890004 2023-02-07 19:28:03.725 - error: smartstate.0 (1890004) uncaught exception: id is not defined 2023-02-07 19:28:03.727 - error: smartstate.0 (1890004) ReferenceError: id is not defined at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.smartstate/main.js:568:2) at Module._compile (node:internal/modules/cjs/loader:1165:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1219:10) at Module.load (node:internal/modules/cjs/loader:1043:32) at Function.Module._load (node:internal/modules/cjs/loader:878:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:22:47
-
@chrid sagte in [Neuer Adapter] smartstate:
Im Hintergrund habe ich grundsätzlich dafür schon eine Funktion eingebaut dass man den Rückgabewert des oder der states (pattern) anpassen kann. D.h du würdest dann in der Pattern Zeile noch ein Feld haben wo du dann einfach "value = !value" reinschreiben könntest. Das ist halt aber wirklich ein Feld wo man im Endeffekt validen javascript code reinschreiben müsste.
Oder hättest du eine Idee wie man das schöner bzw. Userfreundlicher lösen könnte?Als Ankreuzfeld in den Einstellungen. bspw Wert negieren.
Du müsstest ja durch das Pattern sowieso ermitteln wieviel Datenpunkte selektiert werden.
Wenn von 10 Geräten 4 an sind, dann ergibt ohne Kreuz das Ergebnis 4
und mit ankreuzen 10-4 = 6 -
Adapter Installiert und so eingestellt:
Dann kommt im Object nur das:
-
@bananajoe
Bitte nochmal adapter neu installieren, dann ist der id Fehler weg -
@wendy2702
Danke für die Rückmeldung. Bei mir siehts mit den gleichen Einstellungen so aus:
Unter welchen Objekten liegen den die "Fenster" states?
Sind die unter "devices"? oder "channels"?
Magst du mir einen Screenshot vom Tree posten?
So in etwa, nur halt mit den Fensterkontakten: -
@chrid bin auf Dienstreise. Eventuell heute Abend oder morgen Abend kann ich den liefern.
-
@chrid sagte in [Neuer Adapter] smartstate:
@bananajoe
Bitte nochmal adapter neu installieren, dann ist der id Fehler wegok, Funktioniert jetzt.
Das hier liefert mir 13
als Zahl im Datenpunkt.Das hier liefert mir 26 ...
Im JSON sind dann die 13 Geräte die nichtavailable
sind, also ok -
@chrid Hi,
das sind Aliase:
Denke mir ist aber gerade aufgefallen warum es so sein koennte. Vermutlich liegt es an dern verschiedenen Zustaenden.
Werde mal Sensoren mit den gleichen Zustaenden einstellen.
-
@wendy2702
Nein, das liegt daran das du kein "device" als parent für deine aliase hast und deine aliase eigentlich ja das device sind. Bitte benutze dasstateObject
stattdessen. Das device Object ist nur befüllt wenn es ein parent device gibt im object tree.
DasstateObject
ist dann genau das jeweilige alias objekt
Einfach
deviceObject
mitstateObject
austauschen