Det går ikke så alt for fort, men nå har jeg i alle fall klart å få til noe for moro skyld.
 
	 
 
	Jeg fant bare et bitte lite grafikkdisplay (Wemos shield) satt på en Wemos D1 mini klon, men det funker i alle fall. Dette leser /data.json over http.
 
	 
 
	Det jeg ikke klarer, er å plukke ut de nestede verdiene for "energy accounting" i json.
 
	https://github.com/gskjold/AmsToMqttBridge/wiki/Message-formats
 
	 
 
	Jeg bruker arduinojson-biblioteket og har prøvd å vri hjernen til å få til filtrering, men no go.
 
	https://arduinojson.org/v6/example/filter/
 
	 
 
	 
 
	Hvis det er noen vennlige sjeler som vet mer enn meg, er jeg takknemlig for litt input. Koden som funker ligger ved nederst.
 
	 
 
	Det er vel ikke gitt at det å lese data med json til displaye er den mest fornuftige måten å gjøre det på, men det kunne vært moro å få til litt mer.
 
	 
 
	 
 
	 
 
	 
 
	
 
	 
 
	 
 
	 
 
	 
 
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <ArduinoJson.h>     // ver 6.20.0
#include <U8x8lib.h>
/* Constructor */
 U8X8_SSD1306_64X48_ER_HW_I2C u8x8(/* reset=*/ U8X8_PIN_NONE);   
/* u8x8.begin() is required and will sent the setup/init sequence to the display */
 
const char* ssid = "SSID";
const char* password = "PASSWORD";
 
void setup () {
 
  Serial.begin(115200);
  u8x8.begin();
  u8x8.setFlipMode(0);  // 1 or 0
  
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
 
    delay(1000);
    Serial.print("Connecting..");
 
  }
 
}
 
void loop() {
 
  if (WiFi.status() == WL_CONNECTED) { //Check WiFi connection status
 
    HTTPClient http;  //Declare an object of class HTTPClient
    WiFiClient client;  // or WiFiClientSecure for HTTPS
// Send request
http.useHTTP10(true);
http.begin(client, "http://192.168.1.40/data.json");
http.GET();
// Parse response
DynamicJsonDocument doc(2048);
deserializeJson(doc, http.getStream());
// Read values
Serial.print(doc["i"].as<float>() / 1000 ,3);
Serial.println (" kW  ");
  u8x8.setFont(u8x8_font_8x13_1x2_r );
  u8x8.setCursor(0, 0);
  u8x8.print(doc["i"].as<float>() / 1000 ,3);
  u8x8.setCursor(6, 0);
  u8x8.print("kW");
Serial.print(doc["u1"].as<float>());
Serial.println (" V (L1-L2)  ");
  
  u8x8.setFont(u8x8_font_5x7_r);
  u8x8.setCursor(0, 2);
  u8x8.print(doc["u1"].as<float>() ,1);
  u8x8.setCursor(6, 2);
  u8x8.print("V");
Serial.print(doc["i1"].as<float>());
Serial.println (" A (L1)  ");
  u8x8.setCursor(0, 3);
  u8x8.print(doc["i1"].as<float>() ,1);
  u8x8.setCursor(6, 3);
  u8x8.print("A");
Serial.print(doc["p"].as<float>());
Serial.println (" kr");
  u8x8.setCursor(0, 4);
  u8x8.print(doc["p"].as<float>() ,2);
  u8x8.setCursor(6, 4);
  u8x8.print("Kr");
Serial.println ();
Serial.println ();
// Disconnect
http.end();
 
  }
 
  delay(3000);    //Send a request every 3 seconds
}