@Thomas-Braun scheint zu funktionieren. Dankeschön!
NEWS
Best posts made by SMS
-
RE: Installation image vom 27.11.2019
-
RE: Probleme von 4.0.21 auf 4.0.23
pi@homee:/opt/iobroker $ iob upgrade self Update js-controller from @4.0.21 to @4.0.23 Stopped Objects DB Stopped States DB NPM version: 6.14.16 Installing iobroker.js-controller@4.0.23... (System call) > iobroker.js-controller@4.0.23 preinstall /opt/iobroker/node_modules/iobroker.js-controller > node lib/preinstallCheck.js NPM version: 6.14.16 > iobroker.js-controller@4.0.23 install /opt/iobroker/node_modules/iobroker.js-controller > node iobroker.js setup first object _design/system updated { "defaultPrivate": "-----BEGIN RSA PRIVATE KEY-----\r\nMIIEowIBAAKCAQEAqO9XJI4xN/hry/LNtCdStG1QBrOsCMuRZ5WVM8mM2b7/rc71\r\ngi3es6K13tbQHoPbUS3Os4XdV8Bt/Ye5W16HmDKBAcD+tpx4aJ5AqNtxO9iDGJV3\r\nZfl2+lXzcWgZBKwjYjOx+wD7L0n/aUMKuqbO10R69Hl3bkzH6KlzlqTWsbXFWbLZ\r\nmF6mkF3kU90B4/uOPWmpKUwjnIO5XdzOzKKH6EogOGxwyc7ec0NjkT+33rJkZ5TF\r\nsf1fEC3ei34LrRrtkq+iL1XS9/Ban94HjfS1bBxF9WDsCHIQpaAmsTEsE0IEl0zV\r\nB1li0dVgssjWN/3srbpybW1cZ7Y/J0EmWr/IAwIDAQABAoIBACikhEuYJgE4M/76\r\nKEEaYMxlrCYgndfz2cSY+S9fYxKT4AFZ1DkAfh6rm6PD/IgK4v3RznPkVc8hzZR8\r\nTbzMrkSQifb5Do6ycEmDIT0+pixmt4t3kiUncldhzFLRX4t/OngKxdwEbWoAHIGf\r\njno/XW3u3MHqYzBXKpUwB04L1FcmZtC5HBaEP5dnRBaOCUPJG073+u+n6DS6lfxi\r\nSDX79LbaRUJ+ocbYQX46cZQIdp4yjEQQQMTcX3SOxf/yXEDP3oDvd50r4ha+t8oo\r\nqh/JeuqYvunKrtVKgbOaIASq78P+CV1qStrD7ER2qdRWUqsBKUa0GRsJIGx10XSF\r\ndgkPkyECgYEA3e/Y4nAAGIguKmtWAqIZPpLqQA5qtNjBVJRa07aaa3dnY3mgEg9m\r\nyUtpx7A3q4HcOiO10o1eflOzQortwvOe3N3WRI7OjjQjikgN44adKxr1we+c7RkW\r\nepFu0uiC2kGvH58Nsjzl/z3/s85D1kubtC6fYiFcOl+ENUiNv6aRFnECgYEAwtz8\r\nOjhjpru3ELHsEmcsULyD9VQuehI3m/WFN+tw108t2GIv+eiIpb/jnRryN0f0LcMj\r\n09Zb0PSe7/90JKDNocxonGcsVx45VF0Q99/cgV6VXq+rmTr3IalstcpaoUPElp8d\r\nNq31ms692gvTUv/73JFl6rD9J5dyF7r3Ol6wB7MCgYEArnEvUAwohx/C6aSkXj17\r\nCiv/44lxZeRZUVmqam5EweOAaDfZEVj5uY6E/mgL2cqghzI6X9yuQS0Y4VzBtVI3\r\ns/LJz+lPgYaJyM8J26SbNJ5kPKNR/SqS+JQHP89xyouGUpx573becNkSewnNWErl\r\nf6KFtGP0Ug1xpU/52oHZ2IECgYBzctHM/JOtuRFgxskCrjXHL6lOtC1FDX383J2s\r\n38TfC34x8RpTib1L1kBYWBqhPfQhGLglTZ7gUc3IiySYftzVu3FPGKFgi/uTTAA9\r\nm1fdHdiJXLLh+dlpDCPoIJdJbAkQ4/w+5RnaOhqpENCHIDpsF4i2X13dExD5lj/b\r\nSTYpmQKBgBQwSm5rfIe3S3jYWOrJ3UiEind4sRmmrIvyq4RKAUbnbG+TVaXfyOpR\r\nf3R43SQ9fIe6I402TAnWTchGSqRzJyvLl1UkEnziH634c9niCKVhAm/GCRRAVwBJ\r\n8c+yRUy82NcZpXaF02W9GpliRchYH815EJbHG6qgSu5qOhmoPWcJ\r\n-----END RSA PRIVATE KEY-----\r\n", "defaultPublic": "-----BEGIN CERTIFICATE-----\r\nMIIDeDCCAmCgAwIBAgIJBDEGtcAA9/afMA0GCSqGSIb3DQEBCwUAMD4xETAPBgNV\r\nBAMTCGlvYnJva2VyMRYwFAYDVQQKEw1pb0Jyb2tlciBHbWJIMREwDwYDVQQLEwhp\r\nb2Jyb2tlcjAeFw0yMjA1MDIxMzEyMTJaFw0yMzA1MDIxMzEyMTJaMDsxDjAMBgNV\r\nBAMTBWhvbWVlMRYwFAYDVQQKEw1pb0Jyb2tlciBHbWJIMREwDwYDVQQLEwhpb2Jy\r\nb2tlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKjvVySOMTf4a8vy\r\nzbQnUrRtUAazrAjLkWeVlTPJjNm+/63O9YIt3rOitd7W0B6D21EtzrOF3VfAbf2H\r\nuVteh5gygQHA/raceGieQKjbcTvYgxiVd2X5dvpV83FoGQSsI2IzsfsA+y9J/2lD\r\nCrqmztdEevR5d25Mx+ipc5ak1rG1xVmy2ZheppBd5FPdAeP7jj1pqSlMI5yDuV3c\r\nzsyih+hKIDhscMnO3nNDY5E/t96yZGeUxbH9XxAt3ot+C60a7ZKvoi9V0vfwWp/e\r\nB430tWwcRfVg7AhyEKWgJrExLBNCBJdM1QdZYtHVYLLI1jf97K26cm1tXGe2PydB\r\nJlq/yAMCAwEAAaN8MHowDAYDVR0TAQH/BAIwADAPBgNVHQ8BAf8EBQMDB7+AMBAG\r\nA1UdEQQJMAeCBWhvbWVlMB0GA1UdDgQWBBSS5uyY6RgVQWUe42+4zl/OdbySPzAd\r\nBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwCQYDVR0jBAIwADANBgkqhkiG\r\n9w0BAQsFAAOCAQEAfr9UgBs/4kXsreOE0czO7yN27Hkax0nE2kCOkqVnPaa97XDT\r\nQzGRVnhHtKaOMmckqtBOgGBagxCIcxWZoWIEUT2hhnKvAc4zZYW4+6/bBpE8kKju\r\nvL+hhRtS44jjFKwQYMldbvmzZngkgAMZAIyP+wn/gp7Qc7VDWEpqiil0PT2WnmB6\r\nMb4JYZURBVTrZveI2/p3+Rfk/6Ctbi/iltw7qTuBGxDIaTxO4jCuq+k9FleVKtPl\r\nSbR8SaBCJFrH1GEh0FKGiUaQBmtOC0hz3tTKzl4rPfrkXDglRd6igcH4ZQXw6bsa\r\nDtENDH2XeedS+IRTE8uD/gGLjylBE6+5PJ1eKw==\r\n-----END CERTIFICATE-----\r\n" } Update certificate defaultPrivate The object "system.certificates" was updated successfully. Update certificate defaultPublic The object "system.certificates" was updated successfully. ioBroker configuration updated + iobroker.js-controller@4.0.23 removed 8 packages and updated 24 packages in 206.607s 47 packages are looking for funding run `npm fund` for details pi@homee:/opt/iobroker $
Jetzt hat es geklappt. Muss ich das bei den Slaves auch machen?
-
RE: Vis nicht mehr erreichbar: File index.html not found :{}
kann es was mit dem Betriebssystem zu tun haben? Vorher hatte ich buster installiert, jetzt bullseye.
-
RE: TibberLink Adapter
@reblausgt sagte in TibberLink Adapter:
Hey ihr zwei..... das wird ja jetzt eine Selbsthilfegruppe... was hab ich nur mit der Beta zur FlexCharts Ausgabe angestellt....
Nee - im Ernst... Mal kurz zusammengefasst:Ich finde das SUPER! Bisher sah das bei mir so aus:
Jetzt ist das doch viiiiiieeeeel besser:
Ich hatte noch einen Fehler drin, deshalb hat es nicht richtig angezeigt. Jetzt muss ich noch ein bischen rumspielen bis es passt.!
DANKE!!
Latest posts made by SMS
-
RE: Test Adapter flexcharts - Stapeldiagramme und mehr
@jrbwh Dann würde ich sagen funktioniert es nicht! Das hier steht im Skript:
// // Create chart for Tibber hourly data to be used with flexcharts // const ID_TIBBER_HOURLY = '0_userdata.0.flexcharts.tibberLink.tibberHourly'; // State id containing tibber data (json format) const ID_CHART_HOURLY = '0_userdata.0.flexcharts.tibberLink.chartHourly'; // State id containing template for chart data (json format) const TITLE_HOURLY = 'Tibber hourly'; evalTibberData(ID_TIBBER_HOURLY, ID_CHART_HOURLY, TITLE_HOURLY); // Convert data on start of script on({id: ID_TIBBER_HOURLY, change: "any"}, function (obj) { evalTibberData(ID_TIBBER_HOURLY, ID_CHART_HOURLY, TITLE_HOURLY); }); function evalTibberData(idTibber, idChart, title) { const tibber = JSON.parse(getState(idTibber).val); // Read tibber data const chart = JSON.parse(getState(idChart).val); // Read chart template const xAxis = []; const yAxis0 = []; const yAxis1 = []; for (const data of Object.values(tibber)) { const isHourly = (new Date(data.from).getHours() != new Date(data.to).getHours()); // Hourly data? const xValue = (isHourly ? new Date(data.from).toLocaleTimeString() : new Date(data.from).toLocaleDateString()); xAxis.push(xValue); yAxis0.push((data.consumption ? data.consumption.toFixed(2) : 0)); // push 0 on null values yAxis1.push((data.cost ? data.cost.toFixed(2) : 0)); // push 0 on null values } chart.title.text = title; // Set chart title chart.xAxis[0].data = xAxis; // Set chart x-axis data chart.series[0].data = yAxis0; // Set chart y-values consumption chart.series[1].data = yAxis1; // Set chart y-values cost setState(idChart, JSON.stringify(chart), true); // Write changed chart data to state console.log('Evaluation of tibber hourly data done. Title: '+title); }
Das hier ist die ID vom tibberHourly:
Und hier vom chartHourly:
Muss noch irgendwo die ID von tibberlink rein?
-
RE: Test Adapter flexcharts - Stapeldiagramme und mehr
@jrbwh Muss ich in dem Skript noch irgendwas anpassen? Irgendeine ID?
Leider hat es jetzt nach der letzten Stunde nicht funktioniert. Der Zeitstempel vom DP tibberlink ändert bzw. aktualisiert sich, aber beim DP flexchart ändert sich nichts.Hier Zeitstempel tibberlink nach Neustart des Adapters:
Und hier von den angelegten DP's:
-
RE: Test Adapter flexcharts - Stapeldiagramme und mehr
@jrbwh Einen Schreibfehler habe ich gefunden. Aber irgendwas passt immer noch nicht:
// // Create chart for Tibber hourly data to be used with flexcharts // const ID_TIBBER_HOURLY = '0_userdata.0.flexcharts.tibberLink.tibberHourly'; // State id containing tibber data (json format) const ID_CHART_HOURLY = '0_userdata.0.flexcharts.tibberLink.chartHourly'; // State id containing template for chart data (json format) const TITLE_HOURLY = 'Tibber hourly'; // Title of chart evalTibberData(ID_TIBBER_HOURLY, ID_CHART_HOURLY, TITLE_HOURLY); // Convert data on start of script on({id: ID_TIBBER_HOURLY, change: "any"}, function (obj) { evalTibberData(ID_TIBBER_HOURLY, ID_CHART_HOURLY, TITLE_HOURLY); }); function evalTibberData(idTibber, idChart, title) { const tibber = JSON.parse(getState(idTibber).val); // Read tibber data const chart = JSON.parse(getState(idChart).val); // Read chart template const xAxis = []; const yAxis0 = []; const yAxis1 = []; for (const data of Object.values(tibber)) { xAxis.push(new Date(data.from).toLocaleDateString()); yAxis0.push(data.consumption.toFixed(2)); yAxis1.push(data.cost.toFixed(2)); } chart.title.text = title; // Set chart title chart.xAxis[0].data = xAxis; // Set chart x-axis data chart.series[0].data = yAxis0; // Set chart y-values consumption chart.series[1].data = yAxis1; // Set chart y-values cost setState(idChart, JSON.stringify(chart), true); // Write changed chart data to state console.log('Evaluation of tibber hourly data done. Title: '+title); }
Geändert habe ich weekly oder WEEKLY auf hourly oder HOURLY, also eigentlich genauso geschrieben (Groß- und Kleinbuchstaben). Da finde ich jetzt keinen Fehler mehr. Komischerweise hat es bei daily funktioniert. Außer das ich noch nicht weiß ob die Seite aktualisiert wird, da es heute morgen nicht geklappt hat.
Jede Abfrage hat jetzt ein eigenes Skript.
Kann es was mit der Uhrzeit zu tun haben?
In chartHourly steht:{ "tooltip": { "trigger": "axis", "axisPointer": { "type": "cross" } }, "legend": { "show": true, "orient": "horizontal", "left": "center", "top": 25 }, "title": { "left": "center", "text": "Tibber hourly" }, "grid": { "right": "20%" }, "toolbox": { "feature": { "dataView": { "show": true, "readOnly": false }, "restore": { "show": true }, "saveAsImage": { "show": true } } }, "xAxis": [ { "type": "category", "axisTick": { "alignWithLabel": true }, "data": [ "14:00", "15:00", "16:00" ] } ], "yAxis": [ { "type": "value", "position": "left", "alignTicks": true, "axisLine": { "show": true, "lineStyle": { "color": "#5470C6" } }, "axisLabel": { "formatter": "{value} kWh" } }, { "type": "value", "position": "right", "alignTicks": true, "axisLine": { "show": true, "lineStyle": { "color": "#91CC75" } }, "axisLabel": { "formatter": "{value} €" } } ], "series": [ { "name": "Consumption", "type": "bar", "data": [ "0.081", "0.096", "0.086" ] }, { "name": "Cost", "type": "bar", "yAxisIndex": 1, "data": [ "0.03", "0.03", "0.03" ] } ] }
Wobei ich die Uhrzeiten selbst eingetragen habe.
In tibberHourly steht:[ { "from": "2025-01-29T09:00:00.000+01:00", "to": "2025-01-29T10:00:00.000+01:00", "cost": 0.029134056, "unitPrice": 0.3641757, "unitPriceVAT": 0.0581457, "consumption": 0.08, "consumptionUnit": "kWh", "totalCost": 0.02616991475, "unitCost": 0.029134056, "currency": "EUR" }, { "from": "2025-01-29T10:00:00.000+01:00", "to": "2025-01-29T11:00:00.000+01:00", "cost": 0.0497585053, "unitPrice": 0.3339497, "unitPriceVAT": 0.0533197, "consumption": 0.149, "consumptionUnit": "kWh", "totalCost": 0.04679436405, "unitCost": 0.0497585053, "currency": "EUR" }, { "from": "2025-01-29T11:00:00.000+01:00", "to": "2025-01-29T12:00:00.000+01:00", "cost": 0.0412843487, "unitPrice": 0.3151477, "unitPriceVAT": 0.0503177, "consumption": 0.131, "consumptionUnit": "kWh", "totalCost": 0.03832020745, "unitCost": 0.0412843487, "currency": "EUR" }, { "from": "2025-01-29T12:00:00.000+01:00", "to": "2025-01-29T13:00:00.000+01:00", "cost": 0.021706314, "unitPrice": 0.3100902, "unitPriceVAT": 0.0495102, "consumption": 0.07, "consumptionUnit": "kWh", "totalCost": 0.01874217275, "unitCost": 0.021706314, "currency": "EUR" }, { "from": "2025-01-29T13:00:00.000+01:00", "to": "2025-01-29T14:00:00.000+01:00", "cost": 0.0307613691, "unitPrice": 0.3107209, "unitPriceVAT": 0.0496109, "consumption": 0.099, "consumptionUnit": "kWh", "totalCost": 0.02779722785, "unitCost": 0.0307613691, "currency": "EUR" }, { "from": "2025-01-29T14:00:00.000+01:00", "to": "2025-01-29T15:00:00.000+01:00", "cost": 0.0253746675, "unitPrice": 0.3132675, "unitPriceVAT": 0.0500175, "consumption": 0.081, "consumptionUnit": "kWh", "totalCost": 0.02241052625, "unitCost": 0.0253746675, "currency": "EUR" }, { "from": "2025-01-29T15:00:00.000+01:00", "to": "2025-01-29T16:00:00.000+01:00", "cost": 0.0317964192, "unitPrice": 0.3312127, "unitPriceVAT": 0.0528827, "consumption": 0.096, "consumptionUnit": "kWh", "totalCost": 0.02883227795, "unitCost": 0.0317964192, "currency": "EUR" }, { "from": "2025-01-29T16:00:00.000+01:00", "to": "2025-01-29T17:00:00.000+01:00", "cost": 0.0315452816, "unitPrice": 0.3668056, "unitPriceVAT": 0.0585656, "consumption": 0.086, "consumptionUnit": "kWh", "totalCost": 0.02858114035, "unitCost": 0.0315452816, "currency": "EUR" }, { "from": "2025-01-29T17:00:00.000+01:00", "to": "2025-01-29T18:00:00.000+01:00", "cost": 0.0228287815, "unitPrice": 0.3869285, "unitPriceVAT": 0.0617785, "consumption": 0.059, "consumptionUnit": "kWh", "totalCost": 0.01986464025, "unitCost": 0.0228287815, "currency": "EUR" }, { "from": "2025-01-29T18:00:00.000+01:00", "to": "2025-01-29T19:00:00.000+01:00", "cost": 0.0112388717, "unitPrice": 0.3875473, "unitPriceVAT": 0.0618773, "consumption": 0.029, "consumptionUnit": "kWh", "totalCost": 0.00827473045, "unitCost": 0.0112388717, "currency": "EUR" }, { "from": "2025-01-29T19:00:00.000+01:00", "to": "2025-01-29T20:00:00.000+01:00", "cost": 0.007660744, "unitPrice": 0.3830372, "unitPriceVAT": 0.0611572, "consumption": 0.02, "consumptionUnit": "kWh", "totalCost": 0.00469660275, "unitCost": 0.007660744, "currency": "EUR" }, { "from": "2025-01-29T20:00:00.000+01:00", "to": "2025-01-29T21:00:00.000+01:00", "cost": 0.0065872926, "unitPrice": 0.3659607, "unitPriceVAT": 0.0584307, "consumption": 0.018, "consumptionUnit": "kWh", "totalCost": 0.00362315135, "unitCost": 0.0065872926, "currency": "EUR" }, { "from": "2025-01-29T21:00:00.000+01:00", "to": "2025-01-29T22:00:00.000+01:00", "cost": 0.0063238266, "unitPrice": 0.3513237, "unitPriceVAT": 0.0560937, "consumption": 0.018, "consumptionUnit": "kWh", "totalCost": 0.00335968535, "unitCost": 0.0063238266, "currency": "EUR" }, { "from": "2025-01-29T22:00:00.000+01:00", "to": "2025-01-29T23:00:00.000+01:00", "cost": 0.0065019577, "unitPrice": 0.3422083, "unitPriceVAT": 0.0546383, "consumption": 0.019, "consumptionUnit": "kWh", "totalCost": 0.00353781645, "unitCost": 0.0065019577, "currency": "EUR" }, { "from": "2025-01-29T23:00:00.000+01:00", "to": "2025-01-30T00:00:00.000+01:00", "cost": 1.1309330053, "unitPrice": 0.3271429, "unitPriceVAT": 0.0522329, "consumption": 3.457, "consumptionUnit": "kWh", "totalCost": 1.12796886405, "unitCost": 1.1309330053, "currency": "EUR" }, { "from": "2025-01-30T00:00:00.000+01:00", "to": "2025-01-30T01:00:00.000+01:00", "cost": 0.1119367431, "unitPrice": 0.3189081, "unitPriceVAT": 0.0509181, "consumption": 0.351, "consumptionUnit": "kWh", "totalCost": 0.10897260185, "unitCost": 0.1119367431, "currency": "EUR" }, { "from": "2025-01-30T01:00:00.000+01:00", "to": "2025-01-30T02:00:00.000+01:00", "cost": 0.1058853908, "unitPrice": 0.3189319, "unitPriceVAT": 0.0509219, "consumption": 0.332, "consumptionUnit": "kWh", "totalCost": 0.10292124955, "unitCost": 0.1058853908, "currency": "EUR" }, { "from": "2025-01-30T02:00:00.000+01:00", "to": "2025-01-30T03:00:00.000+01:00", "cost": 0.0892808091, "unitPrice": 0.3200029, "unitPriceVAT": 0.0510929, "consumption": 0.279, "consumptionUnit": "kWh", "totalCost": 0.08631666785, "unitCost": 0.0892808091, "currency": "EUR" }, { "from": "2025-01-30T03:00:00.000+01:00", "to": "2025-01-30T04:00:00.000+01:00", "cost": 0.089474196, "unitPrice": 0.3195507, "unitPriceVAT": 0.0510207, "consumption": 0.28, "consumptionUnit": "kWh", "totalCost": 0.08651005475, "unitCost": 0.089474196, "currency": "EUR" }, { "from": "2025-01-30T04:00:00.000+01:00", "to": "2025-01-30T05:00:00.000+01:00", "cost": 0.1077989822, "unitPrice": 0.3189319, "unitPriceVAT": 0.0509219, "consumption": 0.338, "consumptionUnit": "kWh", "totalCost": 0.10483484095, "unitCost": 0.1077989822, "currency": "EUR" }, { "from": "2025-01-30T05:00:00.000+01:00", "to": "2025-01-30T06:00:00.000+01:00", "cost": 0.1200729635, "unitPrice": 0.3382337, "unitPriceVAT": 0.0540037, "consumption": 0.355, "consumptionUnit": "kWh", "totalCost": 0.11710882225, "unitCost": 0.1200729635, "currency": "EUR" }, { "from": "2025-01-30T06:00:00.000+01:00", "to": "2025-01-30T07:00:00.000+01:00", "cost": 0.0240216256, "unitPrice": 0.3753379, "unitPriceVAT": 0.0599279, "consumption": 0.064, "consumptionUnit": "kWh", "totalCost": 0.02105748435, "unitCost": 0.0240216256, "currency": "EUR" }, { "from": "2025-01-30T07:00:00.000+01:00", "to": "2025-01-30T08:00:00.000+01:00", "cost": 0.0121080358, "unitPrice": 0.3905818, "unitPriceVAT": 0.0623618, "consumption": 0.031, "consumptionUnit": "kWh", "totalCost": 0.00914389455, "unitCost": 0.0121080358, "currency": "EUR" }, { "from": "2025-01-30T08:00:00.000+01:00", "to": "2025-01-30T09:00:00.000+01:00", "cost": null, "unitPrice": 0.3996972, "unitPriceVAT": 0.0638172, "consumption": null, "consumptionUnit": "kWh", "totalCost": null, "unitCost": null, "currency": "EUR" } ]
Bez. wenn ich auf den Stift gehe unter Objektdaten bei chartHourly:
{ "common": { "name": "chartHourly", "desc": "Manuell erzeugt", "role": "state", "type": "json", "read": true, "write": true }, "type": "state", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1738172595401, "_id": "0_userdata.0.flexcharts.tibberLink.chartHourly", "acl": { "object": 1638, "state": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
und bei tibberHourly:
{ "common": { "name": "tibberHourly", "desc": "Manuell erzeugt", "role": "state", "type": "json", "read": true, "write": true }, "type": "state", "native": {}, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1738172636549, "_id": "0_userdata.0.flexcharts.tibberLink.tibberHourly", "acl": { "object": 1638, "state": 1638, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
-
RE: Test Adapter flexcharts - Stapeldiagramme und mehr
@jrbwh Denke ich habe es hinbekommen:
könnte das richtig sein?
Daten eingefügt und alles wo weekly stand in daily bzw. hourly abgeänderthier habe ich einen Unterschied:
Frage zu Punkt 2 deine Anleitung:
welches soll ich nehmen?
nehme ich JS und füge alles ein (ich habe jetzt mal das Skript für daily und hourly geändert und drüber eingefügt// // Create chart for Tibber hourly data to be used with flexcharts // const ID_TIBBER_HOURLY = '0_userdata.0.flexcharts.tibberLink.tibberHourly'; // State id containing tibber data (json format) const ID_CHART_HOURLY = '0_userdata.0.flexcharts.tibberLink.charthourly'; // State id containing template for chart data (json format) const TITLE_HOURLY = 'Tibber hourly'; // Title of chart evalTibberData(ID_TIBBER_HOURLY, ID_CHART_HOURLY, TITLE_HOURLY); // Convert data on start of script on({id: ID_TIBBER_HOURLY, change: "any"}, function (obj) { evalTibberData(ID_TIBBER_HOURLY, ID_CHART_HOURLY, TITLE_HOURLY); }); function evalTibberData(idTibber, idChart, title) { const tibber = JSON.parse(getState(idTibber).val); // Read tibber data const chart = JSON.parse(getState(idChart).val); // Read chart template const xAxis = []; const yAxis0 = []; const yAxis1 = []; for (const data of Object.values(tibber)) { xAxis.push(new Date(data.from).toLocaleDateString()); yAxis0.push(data.consumption.toFixed(2)); yAxis1.push(data.cost.toFixed(2)); } chart.title.text = title; // Set chart title chart.xAxis[0].data = xAxis; // Set chart x-axis data chart.series[0].data = yAxis0; // Set chart y-values consumption chart.series[1].data = yAxis1; // Set chart y-values cost setState(idChart, JSON.stringify(chart), true); // Write changed chart data to state console.log('Evaluation of tibber hourly data done. Title: '+title); } // // // // Create chart for Tibber daily data to be used with flexcharts // const ID_TIBBER_DAILY = '0_userdata.0.flexcharts.tibberLink.tibberDaily'; // State id containing tibber data (json format) const ID_CHART_DAILY = '0_userdata.0.flexcharts.tibberLink.chartDaily'; // State id containing template for chart data (json format) const TITLE_DAILY = 'Tibber daily'; // Title of chart evalTibberData(ID_TIBBER_DAILY, ID_CHART_DAILY, TITLE_DAILY); // Convert data on start of script on({id: ID_TIBBER_DAILY, change: "any"}, function (obj) { evalTibberData(ID_TIBBER_DAILY, ID_CHART_DAILY, TITLE_DAILY); }); function evalTibberData(idTibber, idChart, title) { const tibber = JSON.parse(getState(idTibber).val); // Read tibber data const chart = JSON.parse(getState(idChart).val); // Read chart template const xAxis = []; const yAxis0 = []; const yAxis1 = []; for (const data of Object.values(tibber)) { xAxis.push(new Date(data.from).toLocaleDateString()); yAxis0.push(data.consumption.toFixed(2)); yAxis1.push(data.cost.toFixed(2)); } chart.title.text = title; // Set chart title chart.xAxis[0].data = xAxis; // Set chart x-axis data chart.series[0].data = yAxis0; // Set chart y-values consumption chart.series[1].data = yAxis1; // Set chart y-values cost setState(idChart, JSON.stringify(chart), true); // Write changed chart data to state console.log('Evaluation of tibber daily data done. Title: '+title); } // // // // Create chart for Tibber weekly data to be used with flexcharts // const ID_TIBBER_WEEKLY = '0_userdata.0.flexcharts.tibberLink.tibberWeekly'; // State id containing tibber data (json format) const ID_CHART_WEEKLY = '0_userdata.0.flexcharts.tibberLink.chartWeekly'; // State id containing template for chart data (json format) const TITLE_WEEKLY = 'Tibber weekly'; // Title of chart evalTibberData(ID_TIBBER_WEEKLY, ID_CHART_WEEKLY, TITLE_WEEKLY); // Convert data on start of script on({id: ID_TIBBER_WEEKLY, change: "any"}, function (obj) { evalTibberData(ID_TIBBER_WEEKLY, ID_CHART_WEEKLY, TITLE_WEEKLY); }); function evalTibberData(idTibber, idChart, title) { const tibber = JSON.parse(getState(idTibber).val); // Read tibber data const chart = JSON.parse(getState(idChart).val); // Read chart template const xAxis = []; const yAxis0 = []; const yAxis1 = []; for (const data of Object.values(tibber)) { xAxis.push(new Date(data.from).toLocaleDateString()); yAxis0.push(data.consumption.toFixed(2)); yAxis1.push(data.cost.toFixed(2)); } chart.title.text = title; // Set chart title chart.xAxis[0].data = xAxis; // Set chart x-axis data chart.series[0].data = yAxis0; // Set chart y-values consumption chart.series[1].data = yAxis1; // Set chart y-values cost setState(idChart, JSON.stringify(chart), true); // Write changed chart data to state console.log('Evaluation of tibber weekly data done. Title: '+title); }
und starte das Skript kommen folgende Meldungen:
nehme ich blockly bleibt das Feld leer!
Die Seite aktualisiert sich leider auch nicht wenn das json geändert wird.
-
RE: Test Adapter flexcharts - Stapeldiagramme und mehr
@jrbwh sagte in Test Adapter flexcharts - Stapeldiagramme und mehr:
@sms Ich habe das Skript mal als Text in die Anleitung eingefügt. Das ist leichter verständlich. Der State
chartWeekly
enthält die Definition des Charts. Das habe ich auf Basis eines Beispiels von den Apache Echart Seiten erstellt - wie ich weiter oben erläutert habe. Wenn das Chart anders aussehen soll, musst Du diesen State ändern.Für ein Daily Chart:
chartWeekly
nachchartDaily
kopieren und ggf. anpassen
Ich scheitere irgendwie schon hierbei. Ich muss doch hier auf kopieren:
aber wo einfügen?tibberDaily
anlegen und die richtigen Daten reinkopieren
Einfach hierüber anlegen?
- Im Skript die ersten 3 Konstanten kopieren und anpassen
- den Funktionsaufruf evalTibberData() (Zeile 9) kopieren und anpassen
- die Funktion on() kopieren und anpassen
Mal schauen ob ich das hinbekomme.
-
RE: Test Adapter flexcharts - Stapeldiagramme und mehr
@jrbwh Hi
Ja das sieht schon mal ganz gut aus. Danke! Ich habe es auf dem Tablet soweit hinbekommen, das es mir wie in deiner Beschreibung angezeigt wird.
Das würde ich jetzt gerne mit daily genauso haben. Leider kann ich auf dem Tablet nicht nachvollziehen, was in der zip-Datei drin steht. Das muss ich mir aufm Laptop mal anschauen.
Ich denke beim ersten muss ich weekly durch daily ersetzen und die json von tibber rein kopieren? Das müsste mir dann wieder die Objektstruktur erzeugen wenn ich es dann importiere. Liege ich richtig?
Woher kommen die Daten vom Abschnitt ..."_id": "0_userdata...chartweekly"? bei "val": "{"...
Muss ich die händisch eintragen? -
RE: Test Adapter flexcharts - Stapeldiagramme und mehr
@jrbwh ich möchte ebenfalls eine von tibber bereitgestellte Datei in einem Balkendiagram darstellen.
Verstehe nicht wo ich die json Datei von tibber
Angezeigt werden sollen einmal die Gesamtkosten (totalcost) und der Gesamtverbrauch (consumption)
[{"from":"2025-01-06T00:00:00.000+01:00","to":"2025-01-06T00:00:00.000+01:00","cost":10.7284204741,"unitPrice":0.287942,"unitPriceVAT":0.045974,"consumption":37.259,"consumptionUnit":"kWh","totalCost":10.3727235241,"unitCost":10.7284204741,"currency":"EUR"},{"from":"2025-01-13T00:00:00.000+01:00","to":"2025-01-13T00:00:00.000+01:00","cost":14.5018410257,"unitPrice":0.298478,"unitPriceVAT":0.047656,"consumption":48.586,"consumptionUnit":"kWh","totalCost":14.0038652957,"unitCost":14.5018410257,"currency":"EUR"},{"from":"2025-01-20T00:00:00.000+01:00","to":"2025-01-20T00:00:00.000+01:00","cost":16.5644088827,"unitPrice":0.385434,"unitPriceVAT":0.06154,"consumption":42.976,"consumptionUnit":"kWh","totalCost":16.0664331527,"unitCost":16.5644088827,"currency":"EUR"},{"from":"2025-01-27T00:00:00.000+01:00","to":"2025-01-27T00:00:00.000+01:00","cost":13.6840366474,"unitPrice":0.360961,"unitPriceVAT":0.057632,"consumption":37.91,"consumptionUnit":"kWh","totalCost":13.1860609174,"unitCost":13.6840366474,"currency":"EUR"}]
einfügen soll das mir das angezeigt wird. Irgendwo muss ja ein template rein, aber wo und wie?
Adresse ist ja dann: http://iobroker-ip:8082/flexcharts/echarts.html?source=state&id=...
Danke!
-
RE: Test Adapter flexcharts - Stapeldiagramme und mehr
Mir geht es ja nicht um die Anzeige des tibber Strompreises, das war ja in einen anderen Thread erklärt und habe ich hinbekommen.
Was ich jetzt nicht hinbekomme, ist das Anzeigen eines anderen json DP. Ich weiß nicht bzw. lese nicht heraus was für einen ich erstellen soll und dann wo eintragen. Das war ja meine Frage.
-
RE: Test Adapter flexcharts - Stapeldiagramme und mehr
@jrbwh sagte in Test Adapter flexcharts - Stapeldiagramme und mehr:
@sms Dazu gibt es ja schon eine ausführliche Diskussion im Adapter tibberLink. Mir ist deshalb nicht ganz klar, was Dir an Info fehlt. Die Vorgehensweise, um per State ein Diagramm zu erzeugen ist im Readme beschrieben. Kurz zusammengefasst:
- Du musst einen State im json-Format erzeugen, der das Format der cChart-Options hat und Deine Daten als "series" enthält
Das verstehe ich nicht bzw. bekomme ich nicht hin. Denke du meinst einen DP erzeugen? Aber was für einen?
hier?
Dann müsste ich doch hier was einfügen können?
-
RE: Test Adapter flexcharts - Stapeldiagramme und mehr
Guten Morgen,
ich möchte benfalls eine von tibber bereitgestellte Datei in einem Balkendiagram darstellen. Hat jemand eine Schritt für Schritt Anleitung? Verstehe nicht wo ich die json Datei von tibber
einfügen soll das mir das angezeigt wird. Irgendwo muss ja ein template rein, aber wo und wie?
echarts und flexcharts sind installiert.Danke!