NEWS
Test Adapter Devices 0.3.x
-
@naesle aah übersehen. Versch mal "iobroker upload admin". Und eins noch: Könntest DU mal bitte das Install Log vom Admin posten ... und paar zeilen davor und danach
-
Bin momentan in der Firma und komme erst am Abend wieder auf das System
-
Devices 0.3.2 auf GitHub hat nochmal nen Fix wegen anderer erlauber Ports vom Web Adapter
-
Man sollte erwähnen das der Adapter ioBroker.devices heißt aber im Reiter Adapter unter Manage devices zu finden ist.
-
Ok, die Schriften (Spalten) sind zu groß/klein, bzw. laufen ineinander.
-
@sigi234 Ok, daszu bitte Issue anlegen, das sollte mit socketio nix zu tun haben ... Da müssen andere ran
-
@sigi234 das wird ein bisschen schwierig...da z.b. der broadlink überall mit seinem kompletten code drin steht
-
Nach dem Upload der betroffenen adapter funktioniert es wieder
Besten Dank! -
Gerade den Adapter gesehen und den wollte ich jetzt für Meldungen verschiedenster Arten verwende, da Meldungen aus alle Systeme kommen kann. Habe mir gedacht, ich mappe die alle um und kann mir später so Arrays und Json daraus erzeugen.
Damit ich auf alle Meldungen reagieren kann, wollte ich die Funktion Info vergeben und mit dem Selektor nachher darauf reagieren. Soviel zum Grundplan.Nun sehen eure Screenshot im Adapter irgendwie anders. bei euren ID wird auf HM oder broadlinkadapter verwiesen.
Ich wollte gerne erst mal zum testen auf den Ping Adapter verweisen. Sieht aber bei mir so aus und verweist immer auf den Alias.0
Die ID Namen lässt sich nachher auch nicht ändern
Oder mache ich da was falsch.
Adapter ist 0.3.2 -
@ple Was genau willst Du denn tun?
-
Ehm, joar. Ich wollte mir Meldungen generieren, die ich dann in einer Table anzeigen lassen kann.
Nach dem Motto, welches Fenster ist offen. Es gibt ja schon fertige scripts, aber ich möchte einen anderen Weg einschlagen, da es nicht nur Fenster gibt, sondern auch andere Meldungen die generiert werden, Lüften, Türen, Markise offen usw. oder Server nicht erreichbar, Fritzbox nicht erreichbar.Ich selber komme aus dem Maschinenbau und habe viel mit TIA und so zu tun. So ein Meldearchiv wäre schon echt super.
Das LogScript habe ich bereits so am laufen, aber die Meldungen quittieren sich ja nicht im Log, wenn das Fenster oder sonst was wieder geschlossen ist.Also dachte ich mir, ich verwende die bits vom Ping adapter und mappe die mit deinem Adapter. Das gleiche dann mit Fensterkontakten, S7, usw.
Wenn ich jetzt die ganzen Meldungen ein Rolle "Meldungen" hinzufügen, kann ich später da drauf reagieren mit dem Selector.
Dann gehe ich alle Meldungen durch und prüfe die ob die False oder true sind, oder vielleicht > 0%. Dann alle aktiven Meldungen in eine Json und zack habe ich eine schöne Tabelle mit allen Meldungen die anstehen. Wie in Meldearchiv bei Siemens.Aber vielleicht geh ich auch komplett den falschen weg.
Ich voraus schon mal besten dank für deine Ideen, Unterstützung.
-
@ple Ich verstehe immer noch nicht so ganz was Du dir da genau vom Devices Adapter erhoffst.
Der Adapter ist effektiv erstmal dazu da um States die von irgendwelchen Adaptern stammen an einer zentralen Stelle - und ggf in einheitlicher Struktur was eine "Gerätedefintion" angeht - darzustellen, sodass man ggf die Geräte und welcher Adapter Sie liefert beliebig austauschen kann.
-
Genau, das ist auch super so, damit später die Datenpunkte auch jeweils die passende Rollen, Funktionen haben.
Meine ersten Gehversuche sind hier beschrieben.
https://forum.iobroker.net/topic/30324/array-erstellen-mit-prüfung-für-json-tabelle
zunächst dachte ich mir, dass ich mir ein Array zusammenstelle, wo die States, Prüfung und Meldetexte enthalten sind.Mein Problem ist, dass ich nicht weiß, wie ich das Array überwachen kann, wenn sich ein State sich ändert.
Eigentlich wünsche ich mir so ein Meldearchiv, Ich versuch es mal zu beschreiben.
Ich habe 10 Fenster, 5 Fenster mit Homematic Kontakten, 5 Fenster mit Xiaomi Kontakten.
zunächst sind die Datenpunkte unterschiedlich, was connect, battery und so angeht.
Da kommt der Adapter ins Spiel, sodass ich später 10 gleiche Fensterkontakte habe.
Die Alias haben alle die gleiche Funktion "Meldungen"Jetzt kann ich mit dem selector auf die Funktion Meldungen reagieren und mir ein Json zusammenbauen, wo alle Fenster die offen sind gelistet sind, Beschreibung des Fensters würde ich dann vom Alias nehmen, meine Kryptischen Bezeichnungen wäre für Frau nicht gerade hilfreich
Ich könnte über alle Adapter hinweg alle Aktoren wovon ich eine Meldung haben möchte zwar die Funktion "Meldungen" hinzufügen, nur ist das recht unübersichtlich. Da wäre der Alias am besten.
Hilft das???
Hier mal vielleicht etwas um es zu verdeutlichen
ich habe mir mal ein paar Meldungen angelegt. Die Namen würde ich dann später in einer Tabelle anzeigen lassen wollen.Schön wäre noch, wenn man im Adapter sehen könnte, womit die gemappt sind. Bei mir steht nur alias.0.... bei euch in den Screen jeweils der Datenpuntk aus dem Adapter.
-
@ple sagte:
Die Alias haben alle die gleiche Funktion "Meldungen"
Auf das Gewerk(function) kann man bei dieser Struktur verzichten, denn der folgende Selektor leistet es auch:
const meldungen = $('alias.0.Meldung.*');
@ple sagte in Test Adapter Devices 0.3.x:
prüfe die ob die False oder true sind, oder vielleicht > 0%.
Das erledigt die automatische Typwandlung, wenn die Alias-Datenpunkte immer vom Typ "boolean" sind.
Es ist vielleicht einfacher, die Alias-Datenpunkte per Script zu erstellen, als mit dem Adapter "ioBroker.devices". Beginn des Scriptes z.B.:
// Original-Datenpunkt const idOrigin = 'hm-rpc.0.XEQ1234567.1.STATE'; // Alias-Datenpunkt const idAlias = 'Meldung.Fenster.Wohnzimmer_links'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom; // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich nameAlias = 'Fenster Wohnzimmer links'; desc = 'per Script erstellt'; typeAlias = 'boolean'; // oder 'number' role = 'indicator';
Dann nur IDs und Name anpassen.
-
mit den selector komme ich soweit klar, bekomme auch die id, Name des State, aber der ist ja immer ACTUAL.
Wenn ich jetzt den Namen des channels bekommen könnte, dann wäre ich ein Schritt weiter.
dann könnte ich auf jede Änderung mit dem Selector reagieren und dort wo true ist mit ein Array aus den Channelnamen zusammenbauen. hoffe somit bekomme ich irgendwann ein Json, damit ich meine Table erzeugen kann.Ich hatte auch schon überlegt die Datenpunkte in Java anzulegen, aber dann fehlt das mappen noch, daher wollte ich den Adapter dafür missbrauchen.
-
-
@ple sagte:
Wenn ich jetzt den Namen des channels bekommen könnte
let idCh = id.substring(0, id.lastIndexOf('.')); let nameCh = getObject(idCh).common.name;
-
Ich glaube, ich denke einfach zu kompliziert.
Mit mappen meinte ich sowaslet Meldung= [] on({id: 'ping.0.192_168_10_1'/*Steuerung*/, val: false }, function () { Meldung.push("Server nicht erreichbar") })
das bei 100 Meldungen wird unübersichtlich, daher die Suche nach einer automation.
Gedacht hatte ich mal das hier.
let Meldung = [ {trigger: getState("Hm-rpcxxxxxx").val, Check: true, message: "Fenster im Schlafzimmer ist offen" }, {trigger: getState("XXXXXXX").val, Check: >100, message: "Jalosie im Schlafzimmer ist oben" }, {trigger: getState('ping.0.192_168_10_1'/*Steuerung*/).val, Check: false, message: "Server nicht erreichbar" }, ]
Dort würde ich alle Meldungen reinpacken, die mir so einfallen.
im array wird der Trigger angegeben, auf was geprüft werden soll und die Meldung.
Wenn ein Check true ist, dann die Meldung per push ins neue Array, was später die Tabelle ist.Nur wusste ich jetzt nicht, wie immer Ereignisgesteuert das Array jedesmal neu einlese und alle Trigger erneut prüfe.
Hatte erst überlegt ein Intervall (s) laufen zu lassen, der mir immer wieder das Array einliest und prüft und eine neue Json erzeugt, aber ob das sauber ist kann ich nicht beurteilen. -
@ple sagte:
im array wird der Trigger angegeben
Das macht der Selektor
meldungen.on(schleife);
@ple sagte in Test Adapter Devices 0.3.x:
auf was geprüft werden soll
true und != 0 erfolgt automatisch. Alles andere macht man mit common.alias.read:
read = "val >= 100 ? true : false"; // Jalousie oben
read = "!val"; // Server nicht erreichbar
@ple sagte in Test Adapter Devices 0.3.x:
message: "Fenster im Schlafzimmer ist offen"
Der Name des Alias-Datenpunktes kann die Message enthalten, denn es geht ja um Meldungen (bei true).
-
Ich versuche derzeit mit Hilfe dieses Adapters Alias-Geräte für meine diversen Homematic Sensoren/Aktoren einzurichten. In der Geräte-Übersicht (Admin > Menü "Geräte") finde ich aber nicht alle Geräte, obwohl diese in ioBroker bekannt sind und mir auch unter Objekte angezeigt werden.
Teilweise werden mir für identische Gerätemodelle auch unterschiedliche Geräte angezeigt. Habe z.B. zwei Homematic Thermostate: Bei einem werden mit 4 Geräte/Kanäle (Wohnzimmer, rot markiert) angezeigt, beim anderen nur ein Gerät/Kanal (Kinderzimmer, blau markiert):
Manche Geräte (z.B. Homematic Fenstergriffsensoren (RHS) werden überhaupt nicht angezeigt.
Weiß jemand, woran das liegen kann?
Neustart, HM-Geräte neu einlesen, etc. habe ich alles schon versucht.Grüße,
maeb3