NEWS
Array in Vis Anzeigen
-
Habe gestern mir sowas noch mal gebastelt
var woche = 'javascript.0.Anwesendheit.Woche'; var s_woche; s_woche = getState(woche).val.toString(); s_woche = s_woche.split(',').join('<br>'); setState('javascript.0.Anwesendheit.VIS-Woche',s_woche);Da mit konnte ich mit dem html Widget mir es auch gut anzeigen lassen
Der inhalt ist eine 7 Tage anzeige was ich für Schichten habe
["7.10 Donnerstag Nachtschicht","8.10 Freitag Frei","9.10 Samstag Frei","10.10 Sonntag Frei","11.10 Montag Urlaub","12.10 Dienstag Urlaub","13.10 Mittwoch Urlaub","14.10 Donnerstag Urlaub"]PS für diejenigen die auch so was vor haben. Im html widget einfach die Variable mit {} eintragen.
{javascript.0.Anwesendheit.VIS-Woche}du könntest es auch als tabelle machen - würde geordneter aussehen
dazu machst du den split und anschliessend gehst du durch eine schleife und bildest die tabelle
hier ist ein beispiel, wo eine solche tabelle erzeugt wird - https://forum.iobroker.net/post/682169 - das ganze anfangsgedönz könntest du weglassen - du braucht nur nur das hier - dort kannst du dann z.b farben einstellen - du musst die schleife ändern und deinen split einführen
let htmlTeil=`<style type="text/css"> .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;} .tg .tg-0ord{background-color:#ffcb2f;color:#000000;text-align:center} .tg .tg-s6z2{background-color:#EFDF8E;color:#000000;text-align:left} </style>` +"<table class='tg'>" for(let i=0;i<30-1;i+=2){ let helper=list5[i].replace("1)","").replace("2)","").replace("4)","").replace("3)","").replace("100.000","100k").replace("7-Tage","7d").replace("Einwohner","EW") log(helper+" ----- " +list5[i+1] ) htmlTeil=htmlTeil+`<tr><th class="tg-s6z2">${helper}</th><th class="tg-0ord">${list5[i+1] }</th></tr>` } htmlTeil=htmlTeil+"</table>" log(htmlTeil) setState(myDP,htmlTeil)falls interessiert und fragen sind - einfach posten
-
@pat sagte in Array in Vis Anzeigen:
{wert:javascript.0.Test.myarray;array(wert[0])}
funktionieren würde bei z.b [0,3.3,5.66] :
{wert:javascript.0.Test.myarray; wert[0]}zeig doch mal den inhalt deines datenpunktes und von welchen typ der datenpunkt ist (string?)
sind dine werte strings z.b. ["a","b","c"] funktioniert das nicht
@liv-in-sky sagte in Array in Vis Anzeigen:
funktionieren würde bei z.b [0,3.3,5.66] :
{wert:javascript.0.Test.myarray; wert[0]}zeig doch mal den inhalt deines datenpunktes und von welchen typ der datenpunkt ist (string?)
sind dine werte strings z.b. ["a","b","c"] funktioniert das nichtda kommt aber auch eine seltsame fehlermeldung, wenn das array strings beinhaltet, statt nummern
hast du eine idee dazu ?

-
@liv-in-sky said in Array in Vis Anzeigen:
sind dine werte strings z.b. ["a","b","c"] funktioniert das nicht
Hey
Ja es sind Strings drin. Dann muss ich mir was anderes einfallen lassen.Vielen Dank für die infos und der mühe.
das wäre die formel - völlig überdimensioniert - da stimmt etwas im vis adapter nicht - und noch dazu - die daten müßten mit "einem hochkomma" sein: ['a','b','c']
{werrt:0_userdata.0.CONTROL-OWN.AAATEST.test.testVisArray; JSON.stringify(werrt).replace(/\"/g,'').replace(/\[/g,'').replace(/\]/g,'').replace(/\'/g,'').split(',')[0]} -
@liv-in-sky sagte in Array in Vis Anzeigen:
funktionieren würde bei z.b [0,3.3,5.66] :
{wert:javascript.0.Test.myarray; wert[0]}zeig doch mal den inhalt deines datenpunktes und von welchen typ der datenpunkt ist (string?)
sind dine werte strings z.b. ["a","b","c"] funktioniert das nichtda kommt aber auch eine seltsame fehlermeldung, wenn das array strings beinhaltet, statt nummern
hast du eine idee dazu ?

@liv-in-sky sagte in Array in Vis Anzeigen:
@liv-in-sky sagte in Array in Vis Anzeigen:
funktionieren würde bei z.b [0,3.3,5.66] :
{wert:javascript.0.Test.myarray; wert[0]}zeig doch mal den inhalt deines datenpunktes und von welchen typ der datenpunkt ist (string?)
sind dine werte strings z.b. ["a","b","c"] funktioniert das nichtda kommt aber auch eine seltsame fehlermeldung, wenn das array strings beinhaltet, statt nummern
hast du eine idee dazu ?

wenn in einem string doppelte anführungszeichen vorkommen, dann kann man nicht diesen string mit doppelten anführungsstrichen umklammern, dann muss man einfaches hochkomma nehmen.
-
@liv-in-sky sagte in Array in Vis Anzeigen:
@liv-in-sky sagte in Array in Vis Anzeigen:
funktionieren würde bei z.b [0,3.3,5.66] :
{wert:javascript.0.Test.myarray; wert[0]}zeig doch mal den inhalt deines datenpunktes und von welchen typ der datenpunkt ist (string?)
sind dine werte strings z.b. ["a","b","c"] funktioniert das nichtda kommt aber auch eine seltsame fehlermeldung, wenn das array strings beinhaltet, statt nummern
hast du eine idee dazu ?

wenn in einem string doppelte anführungszeichen vorkommen, dann kann man nicht diesen string mit doppelten anführungsstrichen umklammern, dann muss man einfaches hochkomma nehmen.
-
nur als beispiel mit jsontemplate
inhalt datenpunkt
["7.10 Donnerstag Nachtschicht","8.10 Freitag Frei","9.10 Samstag Frei","10.10 Sonntag Frei","11.10 Montag Urlaub","12.10 Dienstag Urlaub","13.10 Mittwoch Urlaub","14.10 Donnerstag Urlaub"]Einstellung im widget
json_oid=da kommt der datenpunkt rein bzw. kann ausgewählt werden
json_template=<ul> <% data.forEach(function(el){ %> <li><%- el %></li> <% }); %> </ul>
oder als Tabelle
<table> <tr> <th>Datum</th> <th>Text</th> </tr> <% data.forEach(function(el){ %> <% var arr = el.split(" "); var datum = arr.shift(); var text = arr.join(" "); %> <tr> <td><%- datum %></td> <td><%- text %></td> </tr> <% }); %> </table>
-
nur als beispiel mit jsontemplate
inhalt datenpunkt
["7.10 Donnerstag Nachtschicht","8.10 Freitag Frei","9.10 Samstag Frei","10.10 Sonntag Frei","11.10 Montag Urlaub","12.10 Dienstag Urlaub","13.10 Mittwoch Urlaub","14.10 Donnerstag Urlaub"]Einstellung im widget
json_oid=da kommt der datenpunkt rein bzw. kann ausgewählt werden
json_template=<ul> <% data.forEach(function(el){ %> <li><%- el %></li> <% }); %> </ul>
oder als Tabelle
<table> <tr> <th>Datum</th> <th>Text</th> </tr> <% data.forEach(function(el){ %> <% var arr = el.split(" "); var datum = arr.shift(); var text = arr.join(" "); %> <tr> <td><%- datum %></td> <td><%- text %></td> </tr> <% }); %> </table>
-
@pat sagte in Array in Vis Anzeigen:
{wert:javascript.0.Test.myarray;array(wert[0])}
funktionieren würde bei z.b [0,3.3,5.66] :
{wert:javascript.0.Test.myarray; wert[0]}zeig doch mal den inhalt deines datenpunktes und von welchen typ der datenpunkt ist (string?)
sind dine werte strings z.b. ["a","b","c"] funktioniert das nicht
@liv-in-sky Würde mich hier mal einklinken, weil ich ein ähnliches Problem habe, aber die geistige Transferleistung bisher nicht hinbekomme.
Das Objekt sieht wie folgt aus:

die Beschreibung dazu ist:energy array, U (L1, L2, L3, N), I (L1, L2, L3), P (L1, L2, L3, N, Total), pf (L1, L2, L3, N)Jetzt würde ich in vis gerne jedes einzelne Element aus dem Array darstellen:
Spannung L1: (=Wert von U-L1)
Spannung L2: (=Wert von U-L2)
...
pf N: (=Wert von pf-N)Der nächste Schritt wäre dann, die Werte in der sql Datenbank zu speichern und mit Flot darzustellen.
Wäre ein Ansatz, das Array zu zerlegen und in einzelne (User)-Objekte abzulegen. Dann ist die Darstellung in vis und Archivierung einfach. Wie kriegt man das mit einen Javascript oder sogar Blockly hin?
-
@liv-in-sky Würde mich hier mal einklinken, weil ich ein ähnliches Problem habe, aber die geistige Transferleistung bisher nicht hinbekomme.
Das Objekt sieht wie folgt aus:

die Beschreibung dazu ist:energy array, U (L1, L2, L3, N), I (L1, L2, L3), P (L1, L2, L3, N, Total), pf (L1, L2, L3, N)Jetzt würde ich in vis gerne jedes einzelne Element aus dem Array darstellen:
Spannung L1: (=Wert von U-L1)
Spannung L2: (=Wert von U-L2)
...
pf N: (=Wert von pf-N)Der nächste Schritt wäre dann, die Werte in der sql Datenbank zu speichern und mit Flot darzustellen.
Wäre ein Ansatz, das Array zu zerlegen und in einzelne (User)-Objekte abzulegen. Dann ist die Darstellung in vis und Archivierung einfach. Wie kriegt man das mit einen Javascript oder sogar Blockly hin?
das ist ein array - in blockly nennt sich das "liste"
du kannst das array, das anscheinend als string dargestellt wird umwandeln . steht das in einem datenpunkt '?
-
das ist ein array - in blockly nennt sich das "liste"
du kannst das array, das anscheinend als string dargestellt wird umwandeln . steht das in einem datenpunkt '?
@liv-in-sky im Datenpunkt/ Objekt sieht das so aus:

also nicht untereinander dargestellt wie im Screenshot oben (Objektdefinition) , sondern in einer Reihe mit "," getrennt. Beantwortet das deine Frage? -
@liv-in-sky im Datenpunkt/ Objekt sieht das so aus:

also nicht untereinander dargestellt wie im Screenshot oben (Objektdefinition) , sondern in einer Reihe mit "," getrennt. Beantwortet das deine Frage?also wenn das ganze als string vorliegt würde ich das so umwandeln - anstatt des debug schreibst du in deine selbst erstellten dp

-
also wenn das ganze als string vorliegt würde ich das so umwandeln - anstatt des debug schreibst du in deine selbst erstellten dp

@liv-in-sky Du bist der Knaller, so funktioniert es mit Blockly, vielen Dank!!!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden