NEWS
Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread)
-
@kueppert sagte in Test Adapter iQontrol 1.5.x:
ALL: gibt es eigentlich die Möglichkeit, dass durch den Klick auf meine Sprit-Kachel nicht die kleine weiĂe Leiste aufgeht, sondern direkt der Chart?
Hab GerĂ€tetyp "Wert" genommen, den Spritpreis vom Tankerkönig als "State" und den eChart bei "Background_URL" hinterlegtIch denke es wird wie immer verschiedene Wege geben, aber alle Einstellungen zu zeigen und zu schreiben ist sehr MĂŒhsam.đ€
Ich habe mal mit anderen Werten und Datenpunkten rumgespielt, weil ich keine Charts habe...Aber meinst Du so, vom Prinzip her ?
Vielleicht mal kurz mit Teamviewer oder anydesk ?
@dslraser jaaa, genau. Ich will das 1X1-Widget haben um direkt den Spritpreis zu sehen. Beim Klick auf das Widget soll nicht der State angezeigt werden, sondern das Widget sich maximieren und mir den Inhalt (bei mir Chart) anzeigen, dass ich in der URL hinterlegt habe.
PS: Ich lade gerade mal Teamviewer runter, den kenne ich ;)
-
@kueppert sagte in Test Adapter iQontrol 1.5.x:
ALL: gibt es eigentlich die Möglichkeit, dass durch den Klick auf meine Sprit-Kachel nicht die kleine weiĂe Leiste aufgeht, sondern direkt der Chart?
Hab GerĂ€tetyp "Wert" genommen, den Spritpreis vom Tankerkönig als "State" und den eChart bei "Background_URL" hinterlegtIch denke es wird wie immer verschiedene Wege geben, aber alle Einstellungen zu zeigen und zu schreiben ist sehr MĂŒhsam.đ€
Ich habe mal mit anderen Werten und Datenpunkten rumgespielt, weil ich keine Charts habe...Aber meinst Du so, vom Prinzip her ?
Vielleicht mal kurz mit Teamviewer oder anydesk ?
-
@s-bormann kannst du mir ggf mitteilen, ob die Felder Info_A und Badge eine BeschrĂ€nkung der LĂ€nge von Zahlen haben? Ich möchte da gern meinen Spritpreis stehen haben, die Zahl wird aber auf 1 NKS gerundet. Ich kann mich auf den Kopf stellen und meinen Namen hĂŒpfen...der Spritpreis mit 2 NKS wird mir nicht ausgegeben ^^

-
@s-bormann kannst du mir ggf mitteilen, ob die Felder Info_A und Badge eine BeschrĂ€nkung der LĂ€nge von Zahlen haben? Ich möchte da gern meinen Spritpreis stehen haben, die Zahl wird aber auf 1 NKS gerundet. Ich kann mich auf den Kopf stellen und meinen Namen hĂŒpfen...der Spritpreis mit 2 NKS wird mir nicht ausgegeben ^^

@kueppert
Das liegt am Format...(zeig mal den RAW von dem DP) Das ist wahrscheinlich eine Zahl mit Punkt...Als Text wĂŒrde es angezeigt werden. Zur Not erstellst Du Dir einen Alias der die Zahl in Text umwandelt.
-
@kueppert
Das liegt am Format...(zeig mal den RAW von dem DP) Das ist wahrscheinlich eine Zahl mit Punkt...Als Text wĂŒrde es angezeigt werden. Zur Not erstellst Du Dir einen Alias der die Zahl in Text umwandelt.
-
@kueppert sagte in Test Adapter iQontrol 1.5.x:
@dslraser jup, ist ne Zahl mit Punkt...dann mache ich mir mal nen Alias. Danke :)
Hier hatte ich mal sowas (alias) fĂŒr Temperaturen benutzt
-
@kueppert sagte in Test Adapter iQontrol 1.5.x:
@dslraser jup, ist ne Zahl mit Punkt...dann mache ich mir mal nen Alias. Danke :)
Hier hatte ich mal sowas (alias) fĂŒr Temperaturen benutzt
-
@dslraser sehr sehr schön. Ich erweitere meine Doku um immer mehr Konvertierungen :) Hab nur auf 2 NKS erweitert:
read = "val.toFixed(2).replace('.',',')"@kueppert
Nur daran denken das es dann Text ist und keine Zahl mehr. Mit einer Zahl könntest Du etwas berechnen, mit Text nicht. Also sowas nur zur Anzeige benutzen und nicht um mit dem Wert etwas zu berechnen. -
@kueppert
Nur daran denken das es dann Text ist und keine Zahl mehr. Mit einer Zahl könntest Du etwas berechnen, mit Text nicht. Also sowas nur zur Anzeige benutzen und nicht um mit dem Wert etwas zu berechnen.@dslraser irgendwas stimmt da nicht...
javascript.0 2021-01-27 16:59:15.965 error (17209) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a function web.0 2021-01-27 16:59:15.962 error (556) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a function admin.0 2021-01-27 16:59:15.906 error (16712) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a function javascript.0 2021-01-27 16:59:15.904 error (17209) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a function web.0 2021-01-27 16:59:15.898 error (556) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a functionHabs...im Tankerkönig ist der Preis bereits eine Zeichenkette. Die kann ich leider nicht mit val.tofixed konvertieren...
RAW:
{ "from": "system.adapter.tankerkoenig.0", "ts": 1611763152474, "user": "system.user.admin", "common": { "name": "diesel short", "desc": "Preis Diesel (e.ee) zwei Dezimalstellen (nicht gerundet)", "type": "string", "role": "value", "read": true, "write": false, "custom": { "sql.0": { "enabled": true, "changesOnly": true, "debounce": "10000", "maxLength": 10, "retention": 0, "changesRelogInterval": 0, "changesMinDelta": 0, "storageType": "", "aliasId": "", "counter": false } } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "tankerkoenig.0.stations.1.diesel.short", "type": "state" } -
@dslraser irgendwas stimmt da nicht...
javascript.0 2021-01-27 16:59:15.965 error (17209) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a function web.0 2021-01-27 16:59:15.962 error (556) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a function admin.0 2021-01-27 16:59:15.906 error (16712) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a function javascript.0 2021-01-27 16:59:15.904 error (17209) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a function web.0 2021-01-27 16:59:15.898 error (556) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a functionHabs...im Tankerkönig ist der Preis bereits eine Zeichenkette. Die kann ich leider nicht mit val.tofixed konvertieren...
RAW:
{ "from": "system.adapter.tankerkoenig.0", "ts": 1611763152474, "user": "system.user.admin", "common": { "name": "diesel short", "desc": "Preis Diesel (e.ee) zwei Dezimalstellen (nicht gerundet)", "type": "string", "role": "value", "read": true, "write": false, "custom": { "sql.0": { "enabled": true, "changesOnly": true, "debounce": "10000", "maxLength": 10, "retention": 0, "changesRelogInterval": 0, "changesMinDelta": 0, "storageType": "", "aliasId": "", "counter": false } } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "tankerkoenig.0.stations.1.diesel.short", "type": "state" }@kueppert
Du hast ja die Antwort im anderen Beitrag schon bekommen, geht es damit ? (deswegen wollte ich auch den RAW sehen đ) -
@kueppert
Du hast ja die Antwort im anderen Beitrag schon bekommen, geht es damit ? (deswegen wollte ich auch den RAW sehen đ)@dslraser YEEES, endlich...iQontrol will also keinen Text mit Punkt, sondern nen Text mit Komma ^^

das Alias-Skript fĂŒr die Konvertierung vom Tankerkönig-Feed sieht bei mir wie folgt aus:
///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.1.diesel.short'/*diesel short*/; // Alias-Datenpunkt const idAlias = 'Spritpreise.ESSODiesel'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom; // Folgende kommentieren, wenn keine Ănderung der Eigenschaft erforderlich nameAlias = 'ESSODiesel'; // desc = 'per Script erstellt'; typeAlias = 'string'; // 'boolean' oder 'number' oder 'switch' oder 'state' oder 'string' read = "val.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); -
@dslraser YEEES, endlich...iQontrol will also keinen Text mit Punkt, sondern nen Text mit Komma ^^

das Alias-Skript fĂŒr die Konvertierung vom Tankerkönig-Feed sieht bei mir wie folgt aus:
///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.1.diesel.short'/*diesel short*/; // Alias-Datenpunkt const idAlias = 'Spritpreise.ESSODiesel'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom; // Folgende kommentieren, wenn keine Ănderung der Eigenschaft erforderlich nameAlias = 'ESSODiesel'; // desc = 'per Script erstellt'; typeAlias = 'string'; // 'boolean' oder 'number' oder 'switch' oder 'state' oder 'string' read = "val.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);@kueppert sagte in Test Adapter iQontrol 1.5.x:
YEEES, endlich...iQontrol will also keinen Text mit Punkt, sondern nen Text mit Komma ^^
Jupp, sieht so aus. Aber gut das es geht. Schreibe bitte fĂŒr die Nachwelt noch in Deinen Beitrag wie Du den alias eingestellt hast, am Besten das ganze alias Script mit den passenden Einstellungen.
-
@dslraser irgendwas stimmt da nicht...
javascript.0 2021-01-27 16:59:15.965 error (17209) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a function web.0 2021-01-27 16:59:15.962 error (556) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a function admin.0 2021-01-27 16:59:15.906 error (16712) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a function javascript.0 2021-01-27 16:59:15.904 error (17209) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a function web.0 2021-01-27 16:59:15.898 error (556) Invalid read function for undefined: val.toFixed(2).replace('.',',') => TypeError: val.toFixed is not a functionHabs...im Tankerkönig ist der Preis bereits eine Zeichenkette. Die kann ich leider nicht mit val.tofixed konvertieren...
RAW:
{ "from": "system.adapter.tankerkoenig.0", "ts": 1611763152474, "user": "system.user.admin", "common": { "name": "diesel short", "desc": "Preis Diesel (e.ee) zwei Dezimalstellen (nicht gerundet)", "type": "string", "role": "value", "read": true, "write": false, "custom": { "sql.0": { "enabled": true, "changesOnly": true, "debounce": "10000", "maxLength": 10, "retention": 0, "changesRelogInterval": 0, "changesMinDelta": 0, "storageType": "", "aliasId": "", "counter": false } } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "tankerkoenig.0.stations.1.diesel.short", "type": "state" }@kueppert sagte in Test Adapter iQontrol 1.5.x:
Habs...im Tankerkönig ist der Preis bereits eine Zeichenkette. Die kann ich leider nicht mit val.tofixed konvertieren...
ich habe mir eben mal Tankerkönig wieder installiert (hatte ich schon mal)
Noch zur Info was der Adapter fĂŒr Datenpunkte zur VerfĂŒgung stellt (etwas verwirrend :face_with_rolling_eyes: )Der feed Datenpunkt ist ĂŒbrigens
number
und der short Datenpunkt ist
string
-
@dslraser YEEES, endlich...iQontrol will also keinen Text mit Punkt, sondern nen Text mit Komma ^^

das Alias-Skript fĂŒr die Konvertierung vom Tankerkönig-Feed sieht bei mir wie folgt aus:
///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.1.diesel.short'/*diesel short*/; // Alias-Datenpunkt const idAlias = 'Spritpreise.ESSODiesel'; var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom; // Folgende kommentieren, wenn keine Ănderung der Eigenschaft erforderlich nameAlias = 'ESSODiesel'; // desc = 'per Script erstellt'; typeAlias = 'string'; // 'boolean' oder 'number' oder 'switch' oder 'state' oder 'string' read = "val.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);Noch was zu den iQontrol Einstellungen. Hier kannst Du es z.B. so machen, dann wird gleich der Name der Tanke den Du im Tankerkönig Adapter vergeben hast in die iQontrol Kachel ĂŒbernommen. (Also die Verlinkung zum Datenpunkt)

Tanke|{tankerkoenig.0.stations.0.name}sieht dann so aus (ich habe noch keinen alias erstellt, deswegen noch die Punktanzeige)

Edit: diese Art der "Namensvergabe" hat auch den Vorteil, wenn Du mal den Namen der Tanke im Adapter Ă€nderst, dann wir der in der iQontrol Kachel direkt ĂŒbernommen und Du kannst/musst den dort nicht auch noch Ă€ndern.
Wenn es sinnvolle Namen gibt, denn geht das ja auch mit anderen Adaptern, oder mit alias. -
Noch was zu den iQontrol Einstellungen. Hier kannst Du es z.B. so machen, dann wird gleich der Name der Tanke den Du im Tankerkönig Adapter vergeben hast in die iQontrol Kachel ĂŒbernommen. (Also die Verlinkung zum Datenpunkt)

Tanke|{tankerkoenig.0.stations.0.name}sieht dann so aus (ich habe noch keinen alias erstellt, deswegen noch die Punktanzeige)

Edit: diese Art der "Namensvergabe" hat auch den Vorteil, wenn Du mal den Namen der Tanke im Adapter Ă€nderst, dann wir der in der iQontrol Kachel direkt ĂŒbernommen und Du kannst/musst den dort nicht auch noch Ă€ndern.
Wenn es sinnvolle Namen gibt, denn geht das ja auch mit anderen Adaptern, oder mit alias.@dslraser sagte in Test Adapter iQontrol 1.5.x:
Tanke|{tankerkoenig.0.stations.0.name}
sehr cool, hab ich direkt auch mal mit ĂŒbernommen :)

-
@dslraser sagte in Test Adapter iQontrol 1.5.x:
Tanke|{tankerkoenig.0.stations.0.name}
sehr cool, hab ich direkt auch mal mit ĂŒbernommen :)

@s-bormann : Wenn ich die Option "Mauszeiger Events ignorieren wenn das GerÀt aktiv ist" aktiviere um den Zoom Effekt des Icons zu verhindern, dann lÀsst sich das Icon auch nicht mehr zum Klicken verwenden.
Ist das so richtig?
Ich muĂ dann die Option aktiviere das die ganze Kachel ein Klick ist.Bei einer einfachen Lampe ok, aber wenn ich mehr Optionen hab kann ich das GerĂ€t dann nur noch ĂŒber den Dialog schalten und gar nicht mehr das Icon als Shortcut nutzen und die Kachel nur fĂŒr die erweiterten Optionen, was schade wĂ€re.
-
@s-bormann : Wenn ich die Option "Mauszeiger Events ignorieren wenn das GerÀt aktiv ist" aktiviere um den Zoom Effekt des Icons zu verhindern, dann lÀsst sich das Icon auch nicht mehr zum Klicken verwenden.
Ist das so richtig?
Ich muĂ dann die Option aktiviere das die ganze Kachel ein Klick ist.Bei einer einfachen Lampe ok, aber wenn ich mehr Optionen hab kann ich das GerĂ€t dann nur noch ĂŒber den Dialog schalten und gar nicht mehr das Icon als Shortcut nutzen und die Kachel nur fĂŒr die erweiterten Optionen, was schade wĂ€re.
@s-bormann:
Hab grade noch etwas komisches bemerkt. Ich verwende ja Aliase fĂŒr meine GerĂ€te und hab viele der Lampen ĂŒber iQontrol automatisch erkennen lassen. Dabei wird immer State und Level gefĂŒllt. Ich hatte dann das Problem, das in der Kachel immer nur 0 und 1 angezeigt wurde.
Wenn ich Level rausnehme, wird mir plötzlich Ein und Aus angezeigt.
Wir in der Kachel zuerst Level angezeigt und wenn das nicht vorhanden ist State?Level ist fĂŒr dimmbare Lampen, oder?
-
@s-bormann : Wenn ich die Option "Mauszeiger Events ignorieren wenn das GerÀt aktiv ist" aktiviere um den Zoom Effekt des Icons zu verhindern, dann lÀsst sich das Icon auch nicht mehr zum Klicken verwenden.
Ist das so richtig?
Ich muĂ dann die Option aktiviere das die ganze Kachel ein Klick ist.Bei einer einfachen Lampe ok, aber wenn ich mehr Optionen hab kann ich das GerĂ€t dann nur noch ĂŒber den Dialog schalten und gar nicht mehr das Icon als Shortcut nutzen und die Kachel nur fĂŒr die erweiterten Optionen, was schade wĂ€re.
@martinschm sagte in Test Adapter iQontrol 1.5.x:
Wenn ich die Option "Mauszeiger Events ignorieren wenn das GerÀt aktiv ist" aktiviere um den Zoom Effekt des Icons zu verhindern, dann lÀsst sich das Icon auch nicht mehr zum Klicken verwenden.
Ist das so richtig?bin ich heute auch drĂŒber gestolpert.
-
@kueppert said in Test Adapter iQontrol 1.5.x:
@dslraser vielen Dank fĂŒr die Hilfe via Teamviewer :D
interessant kannst du auch die Lösung posten :female-detective:
