NEWS
Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread)
-
@kueppert said in Test Adapter iQontrol 1.6.x Vis:
@martinschm zeig mal ein RAW. Da musst eigentlich nix machen. Hab den Adapter noch nicht benutzt. Hatte das vorher alles von Hand via Skript gemacht...
ein Zigbee-Batterie-Alias von mir sieht zB so aus (inkl. Konvertierung zu true/false für das Batterie-Skript von DSLRaser):{ "type": "state", "common": {
Hi,
so sieht das bei mir aus
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1615623246403, "common": { "name": "BatteryPercentage", "type": "number", "role": "value", "unit": "%", "read": true, "write": true, "alias": { "id": "zigbee.0.00158d0004465ea3.battery", "read": "", "write": "" } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "alias.0.Klimasensoren.Arbeitszimmer.BatteryPercentage", "type": "state" }
-
@martinschm sagte in Test Adapter iQontrol 1.6.x Vis:
@s-bormann said in Test Adapter iQontrol 1.6.x Vis:
@kueppert sagte in Test Adapter iQontrol 1.6.x Vis:
@da_woody hab ich auch gemacht. War viel Arbeit, aber vereinfacht Skripte, VIS, iQontrol etc bei Gerätewechseln ungemein ^^ einfach im RAW den DP (das Gerät) anpassen, fertig
Ich habe auch viele Aliase angelegt. Aber mit dem aktuellen Devices-Adapter kam ich nicht so klar, deshalb habe ich die meisten "von Hand" angelegt. Dann musste ich einige Änderungen durchführen - und hätte alle Datenpunkte wieder von Hand anpacken müssen. Deshalb habe ich mir einen einfachen Adapter geschrieben, mit dem man Aliase einfacher bearbeiten kann. Vielleicht hilft es ja auch dem ein oder anderen:
https://github.com/sbormann/ioBroker.alias-manager
Alias-Manager
Genial. Endlich kann man easy peasy eigene Datenpunkte anlegen und auch die fehlenden DeviceTypen anlegen. Sollte gleich mit in den Core aufgenommen werden, da fehlt sowas nämlich massiv.
Ich habe grade mal ein paar States angelegt. Allerdings werden die Werte nicht weiter gegeben. Sowohl beim Zigbee Battery Percentage als auch bei Homematic ValveState or Boost State steht überall 0 drin.
Muss man nach dem Einrichten der weiteren Alias States noch irgendwas machen?
War bei mir auch manchmal so - egal, ob die Aliase "von Hand" oder via Adpater angelegt wurden. Eine Aktualisierung des original-Datenpunktes oder ein ioBroker-Neustart hat Abhilfe gebracht.
-
@s-bormann sagte in Test Adapter iQontrol 1.6.x Vis:
@kueppert sagte in Test Adapter iQontrol 1.6.x Vis:
Hallo in die Runde,
ich möchte gern einen User-DP manuell mit einer Zahl befüllen können. Wähle ich also Gerät "Wert" aus und verknüpfe "State" mit meinem User-Datenpunkt.
Hab auch mit dem Schraubenschlüssel was eingetragen:
Allerdings habe ich in iQontrol beim Klicken auf das Icon nur die Möglichkeit, den Wert 0-100 auszuwählen (der kann weg, ich brauche nur ein Eingabefeld) via Regler, keine Möglichkeit, selber einen Wert einzutragen.
Ziel: Ich möchte über den User-DP meinen Stromzähler vom Haus loggen und den Wert via iQontrol schreiben können.Jmd eine Idee, wie ich das bewerkstellige?
Hi,
versuch mal, o es geht, wenn man den Type von Nummer auf Zeichenfolge umstellt. Ist dann zwar eigentlich falsch - bringt aber ein Eingabefeld zu TageHi,
habe das jetzt mal selbst getestet - und Du hast Recht:
Wenn der Wert des Datenpunktes eine Zahl ist und keine spezielle Rolle definiert ist, wird der Typ zu Zahl zurück-konvertiert. Habe das Verhalten jetzt mal in der aktuellen Github-Version geändert, so dass bei mir jetzt das Eingabefeld erscheint.@all: Bitte ausführlich testen, ob das zu ungewünschten Seiteneffekten führt (d.h. konkret, ob alle Dialogfelder nach wie vor korrekt funktionieren - bei mir hat alles weiter wie gewohnt funktioniert, aber da es hier praktisch unendlich viele Kombinationsmöglichkeiten gibt, kann es schon sein, dass es in einigen Fällen zu Problemen kommt).
VG!
-
@da_woody sagte in Test Adapter iQontrol 1.6.x Vis:
@s-bormann alder, das zeigst du jetzt erst???
gerade instet, mal guxxen, wie ich damit zurechtkomme... im RAW rumfummeln macht auch nicht gerade laune bei >80 geräten x menge DP...hmpf.
host.ioBroker 2021-03-12 20:44:23.873 error system.adapter.alias-manager.0 invalid mode
hmm, mode = "none", ist laut https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/objectsschema.md#adapterinstance-commonmode auch erlaubt... Läuft der Adapter trotzdem?
-
@s-bormann Dank Iqontrol habe ich nun auch endlich eine Visualisierung, die trotz völligen Talentmangels in Sachen "Layout" sogar von der besseren Hälfte akzeptiert wird - danke dafür!
Ein kleines Problem habe ich allerdings aktuell mit der Anzeige des DWD-Adapters (Wetter-Warnmeldungen) - ich bin mir sicher, dass das anfangs einwandfrei klappte, plötzlich jetzt aber nicht mehr. Ich benutze das Gerät "Popup", und habe in "additional_info" die Datenpunkte
dwd.0.warning.begin
dwd.0.warning.endWährend in den Objekten die Zeiten normal angezeigt werden
Fri Mar 12 2021 10:00:00 GMT+0100 (Mitteleuropäische Normalzeit)
steht nun im Iqontrol Popup nur noch
Beginn: aN.aN.NaN, aN:aN Ende: aN.aN.NaN, aN:aN
Der Datentyp ist timestamp - und das offenbar "schon immer" (RAW: "ts": 1612643567563).
Ich dachte erst, ich könnte die Anzeige per "Schraubenschlüssel" korrigieren - dort gibt's aber nur "String", "Nummer" oder "Bool". Übersehe ich da was, oder geht das schlicht nicht (mehr)? -
@jleg sagte in Test Adapter iQontrol 1.6.x Vis:
in Sachen "Layout" sogar von der besseren Hälfte akzeptiert wird - danke dafür!
Jepp - kann ich bestätigen. Der "WAF" ist sehr hoch.
-
Habe da noch eine Frage.
Wie bekomme ich vor dem Datum einen Text. Datum ist ein Wert unter "INFO_A" im Gerätetyp "Info-Text".
"ist die nächste Leerung" ist unter "Array bearbeiten: INFO_A", dann Schraubenschlüssel, eingetragen unter "Einheit".
Ich hätte gerne das der Text so aussieht "Am 17.02.2021 ist die nächste Leerung".
Geht das?
-
@s-bormann funktioniert bei mir mit meinem Datenpunkt jetzt vielen Dank
NACHTRAG: Kommnando zurück...war mein TestDP, der eh schon auf Zeichenfolge stand. Bei dem anderen, der auf Number steht, gehts noch nicht. Hab von Git installiert, Versionsnummer hat sich nicht geändert. Muss ich einen anderen GIT-Link verwenden für die neue Version?
-
@beowolf said in Test Adapter iQontrol 1.6.x Vis:
Habe da noch eine Frage.
Wie bekomme ich vor dem Datum einen Text. Datum ist ein Wert unter "INFO_A" im Gerätetyp "Info-Text".
"ist die nächste Leerung" ist unter "Array bearbeiten: INFO_A", dann Schraubenschlüssel, eingetragen unter "Einheit".
Ich hätte gerne das der Text so aussieht "Am 17.02.2021 ist die nächste Leerung".
Geht das?
Musst du dir wahrscheinlich als Text in einem Datenpunkt zusammenbauen und den Datenpunkt dann dort anzeigen.
-
@beowolf du könntest dir z.b. ein icon mit Am machen...
<-- is ein .png
schriftart latürnich dementsprechend... -
@s-bormann mir ist bei deinem Alias Adapter ein kleiner Bug aufgefallen:
-
@kueppert Hallo, habe mein Problem mit der Umwandlung number zu string immer noch nicht gelöst, irgentwie finde ich die Lösung nicht. Habe einen Alias angelegt mit dem Type string. Der Wert wird aber noch immer nicht richtig angezeigt. (Zahl mit Punkt). Muss ich im "alias read" Feld noch einen Javascript Befehl eintragen damit die Zahl in einen String umgewandelt wird.
Danke für die Hilfe ... -
@martinschm sagte in Test Adapter iQontrol 1.6.x Vis:
@s-bormann mir ist bei deinem Alias Adapter ein kleiner Bug aufgefallen:
Sehr aufmerksam! Wird korrigiert, danke!
-
@fredje ich habe dafür das Skript von paul wie folgt angepasst:
///https://forum.iobroker.net/topic/27295/vorlage-alias-per-skript-erzeugen ///VAR-Konvertierung: https://forum.iobroker.net/topic/33747/alias-best-practices-wie-kann-man-es-besser-machen/39 // Original-Datenpunkt const idOrigin = 'tankerkoenig.0.stations.3.diesel.feed'/*diesel feed*/; // Alias-Datenpunkt const idAlias = 'Spritpreise.JETDiesel'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom; // Folgende kommentieren, wenn keine Änderung der Eigenschaft erforderlich nameAlias = 'JETDiesel'; // desc = 'per Script erstellt'; typeAlias = 'string'; // 'boolean' oder 'number' oder 'switch' oder 'state' oder 'string' read = "val.toFixed(2).replace('.',',')"; // Erkennung "Aus" --> false erfolgt automatisch // write = "val ? 'Ein' : 'Aus'"; // role = 'indicator.lowbat'; // 'switch.light' oder 'value.temperature' oder 'window.value' oder 'indicator.lowbat' // min = 0; // nur Zahlen // max = 100; // nur Zahlen unit = '€'; // nur für Zahlen, z.B. '%' oder '°C' oder ' ' wenn keine Unit! // states = {true: 'leer', false: 'voll'}; // Zahlen (Multistate) oder Logikwert (z.B. Aus/Ein) custom = {}; // verhindert doppelte Ausführung von history, telegram, mqtt-client, ... function createAlias(idSrc, idDst) { if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn'); else { var obj = {}; obj.type = 'state'; obj.common = getObject(idSrc).common; obj.common.alias = {}; obj.common.alias.id = idSrc; if(typeAlias) obj.common.type = typeAlias; if(obj.common.read !== false && read) obj.common.alias.read = read; if(obj.common.write !== false && write) obj.common.alias.write = write; if(nameAlias) obj.common.name = nameAlias; if(role) obj.common.role = role; if(desc) obj.common.desc = desc; if(min !== undefined) obj.common.min = min; if(max !== undefined) obj.common.max = max; if(unit) obj.common.unit = unit; if(states) obj.common.states = states; if(custom && obj.common.custom) obj.common.custom = custom; if(obj.common.icon) delete obj.common.icon; obj.native = {}; setObject(idDst, obj); } } createAlias(idOrigin, 'alias.0.' + idAlias);
-
@fredje sagte in Test Adapter iQontrol 1.6.x Vis:
@kueppert Hallo, habe mein Problem mit der Umwandlung number zu string immer noch nicht gelöst, irgentwie finde ich die Lösung nicht. Habe einen Alias angelegt mit dem Type string. Der Wert wird aber noch immer nicht richtig angezeigt. (Zahl mit Punkt). Muss ich im "alias read" Feld noch einen Javascript Befehl eintragen damit die Zahl in einen String umgewandelt wird.
Danke für die Hilfe ...Habs nicht selbst getestet, aber versuch vielleicht mal bei alias.read
val.toString()
einzutragen, ggf. geht das dann? -
@kueppert sagte in Test Adapter iQontrol 1.6.x Vis:
@s-bormann funktioniert bei mir mit meinem Datenpunkt jetzt vielen Dank
NACHTRAG: Kommnando zurück...war mein TestDP, der eh schon auf Zeichenfolge stand. Bei dem anderen, der auf Number steht, gehts noch nicht. Hab von Git installiert, Versionsnummer hat sich nicht geändert. Muss ich einen anderen GIT-Link verwenden für die neue Version?
Hi,
nein, bei den Github-Versionen ändert sich leider die Versionsnummer nicht. Wenn die Installation ohne Probleme durchläuft, dann kann man davon ausgehen, dass es die aktuellste Dev-Version ist.Manchmal muss man allerdings noch ein manuelles Upload machen. Und manchmal den ioBroker neu durchstarten, damit die Caches geleert werden (das kann man umgehen, wenn man in der
/opt/iobroker/iobroker-data/iobroker.json
den Eintrag"noFileCache"
auftrue
setzt).Ich habe es jetzt bei mir gerade noch mal probiert:
Ich habe einen DP vom Typnumber
angelegt, ihn dann über das Schraubenschlüssel-Symbol für iQontrol aufZeichenfolge
umgestellt und die OptionAdd option to enter free text
aktiviert:{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1615645022314, "common": { "name": "TestInputString", "role": "", "type": "number", "desc": "Manuell erzeugt", "unit": "%", "min": 0, "max": 100, "read": true, "write": true, "def": false, "custom": { "iqontrol.0": { "enabled": true, "readonly": false, "invert": false, "confirm": false, "pincode": "", "unit": "kWh", "unit_zero": "kWh", "unit_one": "kWh", "min": "", "max": "", "step": "", "type": "string", "role": "state", "targetValueId": "", "statesAddInput": true, "statesAddInputCaption": "Zählerstand", "showOnlyTargetValues": false, "states": {}, "roundDigits": 0 } } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "javascript.0.Test.TestInputString", "type": "state" }
Das führt zu folgendem Ergbnis:
Und wenn ich auf Zählerstand klicke, kommt ein Eingabefeld.
Hilft das?
-
@jleg sagte in Test Adapter iQontrol 1.6.x Vis:
@s-bormann Dank Iqontrol habe ich nun auch endlich eine Visualisierung, die trotz völligen Talentmangels in Sachen "Layout" sogar von der besseren Hälfte akzeptiert wird - danke dafür!
Ein kleines Problem habe ich allerdings aktuell mit der Anzeige des DWD-Adapters (Wetter-Warnmeldungen) - ich bin mir sicher, dass das anfangs einwandfrei klappte, plötzlich jetzt aber nicht mehr. Ich benutze das Gerät "Popup", und habe in "additional_info" die Datenpunkte
dwd.0.warning.begin
dwd.0.warning.endWährend in den Objekten die Zeiten normal angezeigt werden
Fri Mar 12 2021 10:00:00 GMT+0100 (Mitteleuropäische Normalzeit)
steht nun im Iqontrol Popup nur noch
Beginn: aN.aN.NaN, aN:aN Ende: aN.aN.NaN, aN:aN
Der Datentyp ist timestamp - und das offenbar "schon immer" (RAW: "ts": 1612643567563).
Ich dachte erst, ich könnte die Anzeige per "Schraubenschlüssel" korrigieren - dort gibt's aber nur "String", "Nummer" oder "Bool". Übersehe ich da was, oder geht das schlicht nicht (mehr)?Hi,
stimmt, das konnte ich unter bestimmten Vorraussetzungen nachstellen. Ist in der aktuellen Github-Version korrigiert. Bitte noch mal testen, wenn es klappt, mache ich eine offizielle Version draus.LG
-
@s-bormann Aaaaahhhh, die Umstellung auf Zeichenfolge muss weiterhin erfolgen. Geändert und nun kann ich auch ne Zahl eintippen. TOP danke
-
@s-bormann sagte in Test Adapter iQontrol 1.6.x Vis:
val.toString()
Hallo, hatte ich auch schon probiert auch val.toFixed(2). Hat leider nichts gebracht.
Danke ... -
@fredje zeig mal das RAW von deinem Original-DP, zu dem du einen Alias erstellen möchtest. Bei mir funktioniert der ALias mit dem Skript, das ich oben gepostet habe. Da wird eine Zahl zu einem Text mit 2 NKS konvertiert