{"id":3253,"date":"2025-01-09T18:04:19","date_gmt":"2025-01-09T17:04:19","guid":{"rendered":"https:\/\/www.rustimation.eu\/?p=3253"},"modified":"2025-02-04T22:55:59","modified_gmt":"2025-02-04T21:55:59","slug":"solar-node-red-energiefluss-dashboard","status":"publish","type":"post","link":"https:\/\/www.rustimation.eu\/index.php\/solar-node-red-energiefluss-dashboard\/","title":{"rendered":"Solar &#8211; Node-Red Energiefluss Dashboard"},"content":{"rendered":"<p>\"Professionelle\" Solaranlagen kommen &#8211; anders als DIY Balkonkraftwerke mit denen sich ein Hobbyist besch\u00e4ftigt &#8211; normalerweise mit einer eigenen Verwaltungs- und Steuersoftware bzw. Apps. In letzter Zeit habe ich des \u00f6fteren mit einer Fronius Solaranlage zu tun gehabt und war fast ein bisschen neidisch auf das sehr \u00fcbersichtliche Energiefluss Dashboard in deren App.<\/p>\n<p>Ich habe deshalb versucht, dieses Dashboard f\u00fcr mein <a href=\"https:\/\/www.rustimation.eu\/index.php\/solar-diy-guerilla-photovoltaik-mit-speicher\/\" target=\"_blank\" rel=\"noopener\">Guerilla Solarkraftwerk<\/a> mit Node-Red nachzubauen. Im Folgenden zeige ich euch, wie man das macht.<\/p>\n<p><!--more--><\/p>\n<p>Mir gef\u00e4llt das Fronuius App Dashboard, weil es auf einen Blick alle wesentlichen Statusinformationen zeigt.<\/p>\n<figure id=\"attachment_3258\" aria-describedby=\"caption-attachment-3258\" style=\"width: 431px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/fronius-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-3258\" src=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/fronius-1-710x1024.png\" alt=\"\" width=\"431\" height=\"622\" srcset=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/fronius-1-710x1024.png 710w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/fronius-1-208x300.png 208w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/fronius-1.png 750w\" sizes=\"auto, (max-width: 431px) 100vw, 431px\" \/><\/a><figcaption id=\"caption-attachment-3258\" class=\"wp-caption-text\">Fronius Dashboard &#8211; Batterie ist nicht installiert.<\/figcaption><\/figure>\n<p>Die Bubbles zwischen den f\u00fcnf Komponenten sind animiert und stellen zum einen die Flussrichtung dar, zum anderen zeigt ihr Durchmesser an, ob viel oder wenig Leistung transportiert wird.<\/p>\n<h2>L\u00f6sung ohne CSS und html<\/h2>\n<p>Pixelschubsen mit CSS, html und anderen Seitenbeschreibungsmethoden liegt mir nicht, weil ich immer sehr lange brauche, bis etwas Vern\u00fcnftiges dabei herauskommt. Viel schneller und einfacher geht es mit NR Bordmitteln.<\/p>\n<p>Die Frage ist, wie bekomme ich einen animierten Fluss &#8211; so wie die Fronius Bubbles &#8211; hin? Die normalen Dashboard Nodes k\u00f6nnen das nicht. Hier hilft<\/p>\n<h3>node-red-contrib-ui-media<\/h3>\n<p>Dieser Node muss \u00fcber die Palettenverwaltung nachinstalliert werden. Er erlaubt es, Bilder bzw. Videos in NR zu laden und im Dashboard darzustellen. Sehr praktisch. Und wenn man <strong>Animated GiFs <\/strong>verwendet, hat man sogar eine bewegte Anzeige. Der ui-media Node hat seine eigene Verwaltungsfunktion, mit der die gew\u00fcnschten Bilder in den Node-Red Arbeitsbereich kopiert oder daraus gel\u00f6scht werden k\u00f6nnen.<\/p>\n<h3>Animated GIF<\/h3>\n<p>Ich habe dann mit Powerpoint &#8211; es geht nat\u00fcrlich auch mit jedem anderen Zeichenprogramm &#8211; eine kleine \"Ameisenarmee\" aus Pfeilen gezeichnet, diese in vier verschiedenen Bewegungsstadien dargestellt und als JPG Dateien abgespeichert. Die vier Dateien habe ich dann in das Online Tool <a href=\"http:\/\/ezgif.com\" target=\"_blank\" rel=\"noopener\">EZgif.com<\/a> hochgeladen und daraus ein animated GIF generiert. EZgif kann die Animation auch um 90\u00b0 in jede Richtung drehen, so dass ich am Schluss animated GIFs f\u00fcr jede Flussrichtung habe.<\/p>\n<p><a href=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/mluro.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3260 \" src=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/mluro.gif\" alt=\"\" width=\"148\" height=\"145\" \/><\/a><\/p>\n<p>Zur Darstellung der Leistung habe ich drei Sets in \"schmal\", \"mittel\" und \"breit\" generiert.<\/p>\n<p>Nat\u00fcrlich kann man statt der Pfeile auch Bubbles \u00e0 la Fronius oder Striche, K\u00e4fer, M\u00e4use oder was auch immer nehmen.<\/p>\n<h3>Energiefluss Dashboard<\/h3>\n<p>Schlussendlich habe ich das Ganze in ein Node-Red Dashboard 1.0 eingebaut. Das Ergebnis ist ganz ordentlich geworden.<a href=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/2025-01-08-11_11_05-Centralina-\u2013-Mozilla-Firefox.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3262 size-full\" src=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/2025-01-08-11_11_05-Centralina-\u2013-Mozilla-Firefox.png\" alt=\"\" width=\"800\" height=\"751\" srcset=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/2025-01-08-11_11_05-Centralina-\u2013-Mozilla-Firefox.png 800w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/2025-01-08-11_11_05-Centralina-\u2013-Mozilla-Firefox-300x282.png 300w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/2025-01-08-11_11_05-Centralina-\u2013-Mozilla-Firefox-768x721.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>Das Layout hinzubekommen, ist zugegebenerma\u00dfen etwas fummelig, aber wenn die Nodes richtig beschriftet sind, hat man die Elemente schnell positioniert. Mit dem neuen und besseren Dashboard 2.0 muss ich mich noch auseinandersetzen &#8211; ggf. schreibe ich etwas dar\u00fcber.<\/p>\n<p>Das Pi in der Mitte ist das Symbol f\u00fcr meine\u00a0 Schaltzentrale. Ihr k\u00f6nnt nat\u00fcrlich etwas Anderes nehmen. Anders als bei Fronius habe ich den Ladezustand (SoC) der Batterie oben dr\u00fcber geschrieben und die Wattzahl wie bei allen anderen <em>Donut Gauges<\/em> als Messwert angegeben.<\/p>\n<h3>Node Tableau<\/h3>\n<p>Das Node Tableau sieht wie folgt aus:<\/p>\n<p><a href=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/energyFlow.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-3263\" src=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/energyFlow-1024x652.png\" alt=\"\" width=\"604\" height=\"385\" srcset=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/energyFlow-1024x652.png 1024w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/energyFlow-300x191.png 300w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/energyFlow-768x489.png 768w, https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/energyFlow.png 1163w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><\/a>Und das JSON dazu:<\/p>\n<pre class=\"height-set:true height:200 lang:js decode:true \" title=\"Energy Flow\">[\r\n    {\r\n        \"id\": \"45134d28326d667a\",\r\n        \"type\": \"tab\",\r\n        \"label\": \"Energy Flow\",\r\n        \"disabled\": false,\r\n        \"info\": \"\",\r\n        \"env\": []\r\n    },\r\n    {\r\n        \"id\": \"3b9b159d7e131dd8\",\r\n        \"type\": \"ui_media\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"name\": \"Centralina\",\r\n        \"width\": 2,\r\n        \"height\": 2,\r\n        \"order\": 18,\r\n        \"category\": \"Energy\",\r\n        \"file\": \"Pi1.png\",\r\n        \"layout\": \"adjust\",\r\n        \"showcontrols\": true,\r\n        \"loop\": true,\r\n        \"onstart\": false,\r\n        \"scope\": \"local\",\r\n        \"tooltip\": \"\",\r\n        \"x\": 670,\r\n        \"y\": 400,\r\n        \"wires\": [\r\n            []\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"ee5d271504303fcf\",\r\n        \"type\": \"ui_gauge\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"Grid\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 31,\r\n        \"width\": 2,\r\n        \"height\": 2,\r\n        \"gtype\": \"donut\",\r\n        \"title\": \"Grid\",\r\n        \"label\": \"W\",\r\n        \"format\": \"{{value|number:1}}\",\r\n        \"min\": \"-1500\",\r\n        \"max\": \"6600\",\r\n        \"colors\": [\r\n            \"#0000ff\",\r\n            \"#ff8040\",\r\n            \"#ca3838\"\r\n        ],\r\n        \"seg1\": \"0\",\r\n        \"seg2\": \"\",\r\n        \"diff\": false,\r\n        \"className\": \"\",\r\n        \"x\": 330,\r\n        \"y\": 720,\r\n        \"wires\": []\r\n    },\r\n    {\r\n        \"id\": \"f754b74a254c95d7\",\r\n        \"type\": \"change\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"\",\r\n        \"rules\": [\r\n            {\r\n                \"t\": \"set\",\r\n                \"p\": \"payload\",\r\n                \"pt\": \"msg\",\r\n                \"to\": \"gpowerTotal\",\r\n                \"tot\": \"global\"\r\n            }\r\n        ],\r\n        \"action\": \"\",\r\n        \"property\": \"\",\r\n        \"from\": \"\",\r\n        \"to\": \"\",\r\n        \"reg\": false,\r\n        \"x\": 150,\r\n        \"y\": 720,\r\n        \"wires\": [\r\n            [\r\n                \"ee5d271504303fcf\",\r\n                \"812d5ed178ba22e0\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"646110b7c0f2b830\",\r\n        \"type\": \"inject\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"\",\r\n        \"props\": [\r\n            {\r\n                \"p\": \"payload\"\r\n            },\r\n            {\r\n                \"p\": \"topic\",\r\n                \"vt\": \"str\"\r\n            }\r\n        ],\r\n        \"repeat\": \"5\",\r\n        \"crontab\": \"\",\r\n        \"once\": false,\r\n        \"onceDelay\": 0.1,\r\n        \"topic\": \"\",\r\n        \"payload\": \"\",\r\n        \"payloadType\": \"date\",\r\n        \"x\": 110,\r\n        \"y\": 400,\r\n        \"wires\": [\r\n            [\r\n                \"f754b74a254c95d7\",\r\n                \"8682b24bc916736a\",\r\n                \"9ea7c2000105c2aa\",\r\n                \"c9d0f947a5b7e516\",\r\n                \"2fd1e993ee9d4b68\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"6f4badb0b2bd11e1\",\r\n        \"type\": \"ui_gauge\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"Solar\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 2,\r\n        \"width\": 2,\r\n        \"height\": 2,\r\n        \"gtype\": \"donut\",\r\n        \"title\": \"Solar\",\r\n        \"label\": \"W\",\r\n        \"format\": \"{{value|number:1}}\",\r\n        \"min\": \"0\",\r\n        \"max\": \"1600\",\r\n        \"colors\": [\r\n            \"#b7fcab\",\r\n            \"#55ff4d\",\r\n            \"#008040\"\r\n        ],\r\n        \"seg1\": \"0\",\r\n        \"seg2\": \"\",\r\n        \"diff\": false,\r\n        \"className\": \"\",\r\n        \"x\": 350,\r\n        \"y\": 60,\r\n        \"wires\": []\r\n    },\r\n    {\r\n        \"id\": \"8682b24bc916736a\",\r\n        \"type\": \"change\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"\",\r\n        \"rules\": [\r\n            {\r\n                \"t\": \"set\",\r\n                \"p\": \"payload\",\r\n                \"pt\": \"msg\",\r\n                \"to\": \"gaktPV\",\r\n                \"tot\": \"global\"\r\n            }\r\n        ],\r\n        \"action\": \"\",\r\n        \"property\": \"\",\r\n        \"from\": \"\",\r\n        \"to\": \"\",\r\n        \"reg\": false,\r\n        \"x\": 170,\r\n        \"y\": 60,\r\n        \"wires\": [\r\n            [\r\n                \"6f4badb0b2bd11e1\",\r\n                \"75afaf2888917cc6\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"5525624f6939a60e\",\r\n        \"type\": \"ui_media\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"name\": \"FSolar\",\r\n        \"width\": 2,\r\n        \"height\": 2,\r\n        \"order\": 10,\r\n        \"category\": \"Energy\",\r\n        \"file\": \"noflow.png\",\r\n        \"layout\": \"adjust\",\r\n        \"showcontrols\": true,\r\n        \"loop\": true,\r\n        \"onstart\": false,\r\n        \"scope\": \"local\",\r\n        \"tooltip\": \"\",\r\n        \"x\": 490,\r\n        \"y\": 260,\r\n        \"wires\": [\r\n            []\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"abaae0c38ab5fbb8\",\r\n        \"type\": \"ui_media\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"name\": \"FGrid\",\r\n        \"width\": 2,\r\n        \"height\": 2,\r\n        \"order\": 23,\r\n        \"category\": \"Energy\",\r\n        \"file\": \"noflow.png\",\r\n        \"layout\": \"adjust\",\r\n        \"showcontrols\": true,\r\n        \"loop\": true,\r\n        \"onstart\": false,\r\n        \"scope\": \"local\",\r\n        \"tooltip\": \"\",\r\n        \"x\": 550,\r\n        \"y\": 640,\r\n        \"wires\": [\r\n            []\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"23f62cb70f215f6b\",\r\n        \"type\": \"ui_media\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"name\": \"FHouse\",\r\n        \"width\": 2,\r\n        \"height\": 2,\r\n        \"order\": 12,\r\n        \"category\": \"Energy\",\r\n        \"file\": \"noflow.png\",\r\n        \"layout\": \"adjust\",\r\n        \"showcontrols\": true,\r\n        \"loop\": true,\r\n        \"onstart\": false,\r\n        \"scope\": \"local\",\r\n        \"tooltip\": \"\",\r\n        \"x\": 1020,\r\n        \"y\": 300,\r\n        \"wires\": [\r\n            []\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"cccbbd7d6e313480\",\r\n        \"type\": \"ui_media\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"name\": \"FBatt\",\r\n        \"width\": 2,\r\n        \"height\": 2,\r\n        \"order\": 25,\r\n        \"category\": \"Energy\",\r\n        \"file\": \"noflow.png\",\r\n        \"layout\": \"adjust\",\r\n        \"showcontrols\": true,\r\n        \"loop\": true,\r\n        \"onstart\": false,\r\n        \"scope\": \"local\",\r\n        \"tooltip\": \"\",\r\n        \"x\": 1030,\r\n        \"y\": 540,\r\n        \"wires\": [\r\n            []\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"279af2ac1a747b27\",\r\n        \"type\": \"ui_gauge\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"House\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 4,\r\n        \"width\": 2,\r\n        \"height\": 2,\r\n        \"gtype\": \"donut\",\r\n        \"title\": \"Haus\",\r\n        \"label\": \"W\",\r\n        \"format\": \"{{value|number:1}}\",\r\n        \"min\": \"0\",\r\n        \"max\": \"7500\",\r\n        \"colors\": [\r\n            \"#ffff00\",\r\n            \"#ff8040\",\r\n            \"#ff0000\"\r\n        ],\r\n        \"seg1\": \"0\",\r\n        \"seg2\": \"\",\r\n        \"diff\": false,\r\n        \"className\": \"\",\r\n        \"x\": 1110,\r\n        \"y\": 160,\r\n        \"wires\": []\r\n    },\r\n    {\r\n        \"id\": \"9ea7c2000105c2aa\",\r\n        \"type\": \"function\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"charge\/discharge\",\r\n        \"func\": \"msg.payload=global.get(\\\"chargeWatt\\\") - global.get(\\\"einspeisung\\\");\\nreturn msg;\",\r\n        \"outputs\": 1,\r\n        \"timeout\": 0,\r\n        \"noerr\": 0,\r\n        \"initialize\": \"\",\r\n        \"finalize\": \"\",\r\n        \"libs\": [],\r\n        \"x\": 690,\r\n        \"y\": 540,\r\n        \"wires\": [\r\n            [\r\n                \"cf7bbe933bc3f0d9\",\r\n                \"9fbc9d148b8d9758\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"c9d0f947a5b7e516\",\r\n        \"type\": \"function\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"sum up Consumation\",\r\n        \"func\": \"msg.payload = global.get(\\\"gaktPV\\\") + global.get(\\\"gpowerTotal\\\") + global.get(\\\"einspeisung\\\") - global.get(\\\"chargeWatt\\\");\\nflow.set(\\\"ftotalCons\\\", msg.payload);\\nreturn msg;\",\r\n        \"outputs\": 1,\r\n        \"timeout\": 0,\r\n        \"noerr\": 0,\r\n        \"initialize\": \"\",\r\n        \"finalize\": \"\",\r\n        \"libs\": [],\r\n        \"x\": 700,\r\n        \"y\": 160,\r\n        \"wires\": [\r\n            [\r\n                \"279af2ac1a747b27\",\r\n                \"9424d6982e29594f\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"2fd1e993ee9d4b68\",\r\n        \"type\": \"function\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"Sum of Flows\",\r\n        \"func\": \"flow.set(\\\"sumFlows\\\", Math.abs(global.get(\\\"gpowerTotal\\\")) + global.get(\\\"gaktPV\\\") + flow.get(\\\"ftotalCons\\\") + global.get(\\\"chargeWatt\\\") + global.get(\\\"einspeisung\\\"));\\n\\nreturn;\",\r\n        \"outputs\": 1,\r\n        \"timeout\": 0,\r\n        \"noerr\": 0,\r\n        \"initialize\": \"\",\r\n        \"finalize\": \"\",\r\n        \"libs\": [],\r\n        \"x\": 460,\r\n        \"y\": 400,\r\n        \"wires\": [\r\n            []\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"812d5ed178ba22e0\",\r\n        \"type\": \"function\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"Set Arrows\",\r\n        \"func\": \"let percent = Math.abs(msg.payload)\/flow.get(\\\"sumFlows\\\")*100;\\nlet prefix = \\\"\\\";\\nif (percent &lt;= 25 )\\n    {prefix = \\\"\\\"}\\nelse if (percent &lt; 50)\\n    {prefix=\\\"m\\\"}\\nelse \\n    {prefix = \\\"b\\\"}\\nif (msg.payload &gt; 0)\\n{\\n    msg.payload = \\\"Energy\/\\\" + prefix + \\\"luro.gif\\\";\\n}\\nelse if (msg.payload &lt; 0)\\n{\\n    msg.payload = \\\"Energy\/\\\" + prefix + \\\"rolu.gif\\\";\\n}\\nelse\\n{\\n    msg.payload = \\\"Energy\/noflow.png\\\";\\n}\\n\\nreturn msg;\",\r\n        \"outputs\": 1,\r\n        \"timeout\": 0,\r\n        \"noerr\": 0,\r\n        \"initialize\": \"\",\r\n        \"finalize\": \"\",\r\n        \"libs\": [],\r\n        \"x\": 350,\r\n        \"y\": 640,\r\n        \"wires\": [\r\n            [\r\n                \"abaae0c38ab5fbb8\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"75afaf2888917cc6\",\r\n        \"type\": \"function\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"Set Arrows\",\r\n        \"func\": \"let percent = msg.payload\/flow.get(\\\"sumFlows\\\")*100;\\nlet prefix = \\\"\\\";\\n\/\/size\\n\\nif (percent &lt;= 25)\\n    {prefix = \\\"\\\"}\\nelse if (percent &lt; 50)\\n    {prefix=\\\"m\\\"}\\nelse \\n    {prefix = \\\"b\\\"}\\n\\n\/\/ Direction    \\nif (msg.payload &gt; 0)\\n{\\n    msg.payload = \\\"Energy\/\\\" + prefix + \\\"loru.gif\\\";\\n}\\nelse\\n{\\n    msg.payload = \\\"Energy\/noflow.png\\\";\\n}\\n\\nmsg.pref=prefix;\\nmsg.perc = percent;\\nreturn msg;\",\r\n        \"outputs\": 1,\r\n        \"timeout\": 0,\r\n        \"noerr\": 0,\r\n        \"initialize\": \"\",\r\n        \"finalize\": \"\",\r\n        \"libs\": [],\r\n        \"x\": 470,\r\n        \"y\": 120,\r\n        \"wires\": [\r\n            [\r\n                \"5525624f6939a60e\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"9424d6982e29594f\",\r\n        \"type\": \"function\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"Set Arrows\",\r\n        \"func\": \"let percent = msg.payload\/flow.get(\\\"sumFlows\\\")*100;\\nlet prefix = \\\"\\\";\\n\/\/size\\n\\nif (percent &lt;= 25)\\n    {prefix = \\\"\\\"}\\nelse if (percent &lt; 50)\\n    {prefix=\\\"m\\\"}\\nelse \\n    {prefix = \\\"b\\\"}\\n\\n\/\/ Direction    \\nif (msg.payload &gt; 0)\\n{\\n    msg.payload = \\\"Energy\/\\\" + prefix + \\\"luro.gif\\\";\\n}\\nelse\\n{\\n    msg.payload = \\\"Energy\/noflow.png\\\";\\n}\\n\\nmsg.pref=prefix;\\nmsg.perc = percent;\\nreturn msg;\",\r\n        \"outputs\": 1,\r\n        \"timeout\": 0,\r\n        \"noerr\": 0,\r\n        \"initialize\": \"\",\r\n        \"finalize\": \"\",\r\n        \"libs\": [],\r\n        \"x\": 830,\r\n        \"y\": 300,\r\n        \"wires\": [\r\n            [\r\n                \"23f62cb70f215f6b\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"cf7bbe933bc3f0d9\",\r\n        \"type\": \"function\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"Set Arrows\",\r\n        \"func\": \"let percent = Math.abs(msg.payload)\/flow.get(\\\"sumFlows\\\")*100;\\nlet prefix = \\\"\\\";\\nif (percent &lt;= 25 )\\n    {prefix = \\\"\\\"}\\nelse if (percent &lt; 50)\\n    {prefix=\\\"m\\\"}\\nelse \\n    {prefix = \\\"b\\\"}\\nif (msg.payload &gt; 0)\\n{\\n    msg.payload = \\\"Energy\/\\\" + prefix + \\\"loru.gif\\\";\\n}\\nelse if (msg.payload &lt; 0)\\n{\\n    msg.payload = \\\"Energy\/\\\" + prefix + \\\"rulo.gif\\\";\\n}\\nelse\\n{\\n    msg.payload = \\\"Energy\/noflow.png\\\";\\n}\\n\\nreturn msg;\",\r\n        \"outputs\": 1,\r\n        \"timeout\": 0,\r\n        \"noerr\": 0,\r\n        \"initialize\": \"\",\r\n        \"finalize\": \"\",\r\n        \"libs\": [],\r\n        \"x\": 850,\r\n        \"y\": 500,\r\n        \"wires\": [\r\n            [\r\n                \"cccbbd7d6e313480\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"aa434498dda70260\",\r\n        \"type\": \"ui_gauge\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"Battery\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 33,\r\n        \"width\": 2,\r\n        \"height\": 2,\r\n        \"gtype\": \"donut\",\r\n        \"title\": \"{{msg.label}}\",\r\n        \"label\": \"W\",\r\n        \"format\": \"{{value|number:1}}\",\r\n        \"min\": \"0\",\r\n        \"max\": \"610\",\r\n        \"colors\": [\r\n            \"#0000ff\",\r\n            \"#ff8040\",\r\n            \"#ca3838\"\r\n        ],\r\n        \"seg1\": \"0\",\r\n        \"seg2\": \"\",\r\n        \"diff\": false,\r\n        \"className\": \"\",\r\n        \"x\": 1100,\r\n        \"y\": 600,\r\n        \"wires\": []\r\n    },\r\n    {\r\n        \"id\": \"9fbc9d148b8d9758\",\r\n        \"type\": \"function\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"Absolute Value\",\r\n        \"func\": \"msg.payload = Math.abs(msg.payload);\\nmsg.label = \\\"Akku - \\\" + global.get(\\\"SoC\\\") + \\\"%\\\";\\nreturn msg;\\n\",\r\n        \"outputs\": 1,\r\n        \"timeout\": 0,\r\n        \"noerr\": 0,\r\n        \"initialize\": \"\",\r\n        \"finalize\": \"\",\r\n        \"libs\": [],\r\n        \"x\": 900,\r\n        \"y\": 600,\r\n        \"wires\": [\r\n            [\r\n                \"aa434498dda70260\"\r\n            ]\r\n        ]\r\n    },\r\n    {\r\n        \"id\": \"a0d4f1f517b00710\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"fb313838096d3060\",\r\n        \"order\": 2,\r\n        \"width\": 8,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"f1eb0c55218ea262\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"fb313838096d3060\",\r\n        \"order\": 5,\r\n        \"width\": 4,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"29276b41b15af5bc\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"fb313838096d3060\",\r\n        \"order\": 6,\r\n        \"width\": 4,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"893cf2e3cbeaeefe\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"fb313838096d3060\",\r\n        \"order\": 8,\r\n        \"width\": 4,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"b2976e7ba00f6c4e\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 1,\r\n        \"width\": 1,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"6f1cc6598d844a50\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 3,\r\n        \"width\": 6,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"843c2c4096a57657\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 5,\r\n        \"width\": 1,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"445a1212a7f2fe74\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 6,\r\n        \"width\": 1,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"c25fcb2959acd12c\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 7,\r\n        \"width\": 6,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"b7d9b1cb045d6ef8\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 8,\r\n        \"width\": 1,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"feee7852854fbf26\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 9,\r\n        \"width\": 3,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"2cb6c2b01e499266\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 11,\r\n        \"width\": 2,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"789bb42e6eb86159\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 13,\r\n        \"width\": 3,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"2a677ff0d2c426f5\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 14,\r\n        \"width\": 3,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"a37ccc47a194242e\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 15,\r\n        \"width\": 2,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"07cb786ef5ab25f4\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 16,\r\n        \"width\": 3,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"0a3166bc6cf3af87\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 17,\r\n        \"width\": 5,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"c91ce3891d0f02dc\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 19,\r\n        \"width\": 5,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"94b31dd5214c07aa\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 20,\r\n        \"width\": 5,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"b4c377107821dbda\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 21,\r\n        \"width\": 5,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"33618d687edcf873\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 22,\r\n        \"width\": 3,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"788aa190983dda8a\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 24,\r\n        \"width\": 2,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"290db09925165aee\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 26,\r\n        \"width\": 3,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"f7925548aa024af9\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 27,\r\n        \"width\": 3,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"2c1cafc3a8f96fa3\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 28,\r\n        \"width\": 2,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"5a0a6c99ac405098\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 29,\r\n        \"width\": 3,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"d104a0376ec83b27\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 30,\r\n        \"width\": 2,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"a1d06c5e3412ccf8\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 32,\r\n        \"width\": 5,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"dbf6c0a099c6482f\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 34,\r\n        \"width\": 1,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"f5e49edfa47be15e\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 35,\r\n        \"width\": 2,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"31319251ace66a71\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 36,\r\n        \"width\": 5,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"d410e4c9897f9848\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"5a0a1733078cfb10\",\r\n        \"order\": 37,\r\n        \"width\": 1,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"905ddeae2a3e5c03\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"1144e66fd707fc63\",\r\n        \"order\": 3,\r\n        \"width\": 6,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"1dc0504451b0c82b\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"1144e66fd707fc63\",\r\n        \"order\": 4,\r\n        \"width\": 6,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"dd9b80f2bec42b6d\",\r\n        \"type\": \"ui_spacer\",\r\n        \"z\": \"45134d28326d667a\",\r\n        \"name\": \"spacer\",\r\n        \"group\": \"1144e66fd707fc63\",\r\n        \"order\": 6,\r\n        \"width\": 7,\r\n        \"height\": 1\r\n    },\r\n    {\r\n        \"id\": \"5a0a1733078cfb10\",\r\n        \"type\": \"ui_group\",\r\n        \"name\": \"Energy Flow\",\r\n        \"tab\": \"bdb280f0ccef9b7a\",\r\n        \"order\": 5,\r\n        \"disp\": true,\r\n        \"width\": 12,\r\n        \"collapse\": false,\r\n        \"className\": \"\"\r\n    },\r\n    {\r\n        \"id\": \"fb313838096d3060\",\r\n        \"type\": \"ui_group\",\r\n        \"name\": \"Einspeisung ins Netz\",\r\n        \"tab\": \"bdb280f0ccef9b7a\",\r\n        \"order\": 3,\r\n        \"disp\": true,\r\n        \"width\": \"12\",\r\n        \"collapse\": false,\r\n        \"className\": \"\"\r\n    },\r\n    {\r\n        \"id\": \"1144e66fd707fc63\",\r\n        \"type\": \"ui_group\",\r\n        \"name\": \"\u00dcberschuss Limiter\",\r\n        \"tab\": \"bdb280f0ccef9b7a\",\r\n        \"order\": 6,\r\n        \"disp\": true,\r\n        \"width\": 12,\r\n        \"collapse\": false,\r\n        \"className\": \"\"\r\n    },\r\n    {\r\n        \"id\": \"bdb280f0ccef9b7a\",\r\n        \"type\": \"ui_tab\",\r\n        \"name\": \"PV\/Netz\/Batt.\",\r\n        \"icon\": \"dashboard\",\r\n        \"order\": 5,\r\n        \"disabled\": false,\r\n        \"hidden\": false\r\n    }\r\n]<\/pre>\n<p>Alle Werte die angezeigt werden, habe ich als global Kontextvariablen \u00fcbernommen. Diese sind:<\/p>\n<ol>\n<li>Aktuelle PV Leistung: global.gaktPV<\/li>\n<li>Aktueller Netzbezug\/Einspeisung: global.gpowerTotal<\/li>\n<li>Aktuelle Ladeleistung: global.chargeWatt<\/li>\n<li>Aktuelle Einspeisung aus Batterie: global.einspeisung<\/li>\n<li>Der Netto Hausverbrauch wird errechnet aus: 1. + 2. + 3. &#8211; 4.<\/li>\n<\/ol>\n<p>Hier m\u00fcsst ihr ran und das auf eure Verh\u00e4ltnisse anpassen. Mein Dashboard ist nat\u00fcrlich gewachsen, weshalb die Nomenklatur der Kontextvariablen leider nicht ganz einheitlich ist. Vielleicht sollte ich mal ein Refactoring machen&#8230;<\/p>\n<p>Je nachdem, welche Leistung zwischen den f\u00fcnf Komponenten hin- oder her flutscht, wird die Dicke des Pfeils ausgerechnet, das hei\u00dft die Leistung des einzelnen Flusses im Verh\u00e4ltnis zur Summe aller Energiefl\u00fcsse<\/p>\n<ul>\n<li>&lt; =\u00a0 25%: schmale Pfeile<\/li>\n<li>&lt; = 49%: mittlere Pfeile<\/li>\n<li>\u00a0&gt; 49%: dicke Pfeile<\/li>\n<\/ul>\n<p>Hier sind eurer Kreativit\u00e4t keine Grenzen gesetzt!<\/p>\n<p>Gesetzt werden die jeweiligen GiFs in den \"Set Arrows\" Function Nodes als Payload f\u00fcr die ui-media Nodes.<\/p>\n<p>Die von mir verwendeten Bildchen\/Icons habe ich <a href=\"https:\/\/www.rustimation.eu\/wordpress\/wp-content\/uploads\/2025\/01\/Icons.zip\" target=\"_blank\" rel=\"noopener\">hier zum Download<\/a> abgelegt. Da ist sicher noch einiges Verbesserungspotenzial enthalten, aber es funktioniert f\u00fcr den Anfang.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine einfach zu realisierende Darstellung des Energieflusses einer Solaranlage inkl. Pufferbatterie mit Node-Red Dashboard 1.0. Ohne komplizierte html, CSS, Sprite Programmierung. ui-media Nodes werden verwendet<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[53,151,10,181,69],"tags":[208,207,172,209],"class_list":["post-3253","post","type-post","status-publish","format-standard","hentry","category-iot","category-node-red","category-raspberry-pi","category-solar","category-tips-tricks","tag-energiefluss","tag-energy-flow","tag-node-red-dashboard","tag-ui-media-node"],"_links":{"self":[{"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/posts\/3253","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/comments?post=3253"}],"version-history":[{"count":1,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/posts\/3253\/revisions"}],"predecessor-version":[{"id":3308,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/posts\/3253\/revisions\/3308"}],"wp:attachment":[{"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/media?parent=3253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/categories?post=3253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rustimation.eu\/index.php\/wp-json\/wp\/v2\/tags?post=3253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}