Skip to content
View in the app

A better way to browse. Learn more.

Power Forum - Renewable Energy Discussion

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Off-Grid Trial For August/September 2022

Featured Replies

  • Author
7 minutes ago, Cory said:

That’s a very neat dashboard. Is it available to use? How to get it? I have a Victron / Freedom Won system. 
 

@Cory This is custom made for my Sunsynk system, but if you know your way around sensors, modbus, linux nodered then you could probably make it work for just about any system.

All opensource, no licenses or fees involved :)

Step 1 - here

Step 2 - here

Edited by WannabeSolarSparky

  • Replies 186
  • Views 32.2k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • WannabeSolarSparky
    WannabeSolarSparky

    Such a satisfying thing to watch, nothing coming from eskom loadshedding-offgrid-trial-video-1.mp4    

  • WannabeSolarSparky
    WannabeSolarSparky

    Guys and girls Do NOT Underestimate the power of proper testing of your system. The last 2 weeks doing all these off-grid tests has been super valuable with regards to my setup and all the set

  • WannabeSolarSparky
    WannabeSolarSparky

    Hi there @TiaanSmit This is my own custom dashboard with some major input from @Bloubul7 Here is the link: https://powerforum.co.za/topic/12146-sunsynk55-simple-local-data-monitoring-no-cloudint

Posted Images

I did a similar thing today for the first time switched off the grid.

Then systematically switched on stuff to establish what can and what not and made notes of usage.   If I exclude my oven/stove and manage my geyser, can run everything but do need to keep an eye on it and train partner to do same.

Was getting 4.5KW PV with very overcast conditions around 11h00.

I need to learn how to manage battery, so it does not charge at night from grid after load shedding.

What I don't know is if it may not cost more to keep on charging/discharging battery (in reduced life span) then the value of the extra energy generated.

Unfortunately electricity is one area I am not very familiar with.

  • Author

Updated Sunsynk Monitoring Portal 😍

Weather forecast added just so I know whats up the week ahead :)

Added automated Fans and associated monitoring and control.
My 2 Old D9 crypto miner have awesome 4 pin 12v high power and flow fans, ideal to use as they can easily be controlled using a simple ESP8266 and some fancy coding to make it all controllable with nodered and pushed through to my local and remote thingsboard portal.

I can now keep the Inverter Temps below 55 °C all day long :)
 

sunsynk-monitoring-portal-ver5RC002.thumb.jpg.cfa1f0fdbc6a0d3ab71f3895ce4d5382.jpg

  • Author

ESP8266 Nodemcu - 2 x 4 pin 12 volts fans Control With MQTT
You can use this in nodered to automate the fans based on any rules you setup, inverter temps, weather, date, whatever you like,
 

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <FanController.h>
#define MQTT_KEEPALIVE 1000
#define SERIAL_BUFFER_SIZE 256
#define SENSOR1_PIN D6 //
#define SENSOR2_PIN D7 //
#define SENSOR_THRESHOLD 2000
FanController fan1(SENSOR1_PIN, SENSOR_THRESHOLD); //
FanController fan2(SENSOR2_PIN, SENSOR_THRESHOLD); //
int Fan1PWM = D4; //
int Fan2PWM = D5; //
// WiFi Settings
const char *ssid = "YOURWIFINAME"; // Enter your WiFi name
const char *password = "YOURWIFIPASSWORD";  // Enter WiFi password
// MQTT Broker Settings
const char *mqtt_broker = "YOURMQTTADDRESS";
const char *sendtopic1 = "esp8266SSFan1/fan1Speed";
const char *sendtopic2 = "esp8266SSFan2/fan2Speed";
const char *receivetopic1 = "esp8266SSFan1/fan1Setspeed";
const char *receivetopic2 = "esp8266SSFan2/fan2Setspeed";
const char *mqtt_username = "mqtt_admin";
const char *mqtt_password = "mqtt_YOURPASSWORD";
const int mqtt_port = 1883;
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
  // Set software serial baud to 115200;
  Serial.begin(115200);
  fan1.begin();
  fan2.begin();
  pinMode(Fan1PWM, OUTPUT); 
  pinMode(Fan2PWM, OUTPUT); 
  pinMode(SENSOR1_PIN, INPUT); 
  pinMode(SENSOR2_PIN, INPUT); 
  // connecting to a WiFi network
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.println("Connecting to WiFi..");
  }
  Serial.println("Connected to the WiFi network");
  //connecting to a mqtt broker
  client.setKeepAlive( MQTT_KEEPALIVE );
  client.setServer(mqtt_broker, mqtt_port);
  client.setCallback(callback1);
  client.setCallback(callback2);
  while (!client.connected()) {
      String client_id = "esp8266-client-";
      client_id += String(WiFi.macAddress());
      Serial.printf("The client %s connects to the public mqtt broker\n", client_id.c_str());
      if (client.connect(client_id.c_str(), mqtt_username, mqtt_password)) {
          Serial.println("MQTT broker connected");
      } else {
          Serial.print("failed with state ");
          Serial.print(client.state());
          delay(2000);
      } 
      client.subscribe(receivetopic1);
      client.subscribe(receivetopic2);
  }
}

void callback1(char *receivetopic1, byte *payload, unsigned int length) {
  Serial.print("Message arrived in topic: ");
  Serial.println(receivetopic1);
  Serial.print("Fan 1 Speed:");
  payload[length] = '\0'; // Make payload a string by NULL terminating it.
  int newspeed1 = atoi((char *)payload);
  Serial.println(newspeed1);
  analogWrite(Fan1PWM, newspeed1); // Set Fan 2 Speed; // Set Fan 225 Speed  
  Serial.println();
  delay (500);
}

void callback2(char *receivetopic2, byte *payload, unsigned int length) {
  Serial.print("Message arrived in topic: ");
  Serial.println(receivetopic2);
  Serial.print("Fan 2 Speed:");
  payload[length] = '\0'; // Make payload a string by NULL terminating it.
  int newspeed2 = atoi((char *)payload);
  Serial.println(newspeed2);
  analogWrite(Fan2PWM, newspeed2); // Set Fan 2 Speed; // Set Fan 225 Speed  
  Serial.println();
  delay (500);
}

void loop() {
  Serial.print("Current Fan 1 Speed: ");
  int rpms1 = fan1.getSpeed(); // Send the command to get RPM
  // Start character conversion routine
  rpms1 = rpms1;
  char newChar1[5];
  String temp_str1 = String(rpms1);
  temp_str1.toCharArray(newChar1,5);
  // End character conversion routine  
  client.publish(sendtopic1, newChar1,5);
  Serial.print(rpms1);
  Serial.println("RPM");

  Serial.print("Current Fan 2 Speed: ");
  int rpms2 = fan2.getSpeed(); // Send the command to get RPM
  // Start character conversion routine
  rpms2 = rpms2;
  char newChar2[5];
  String temp_str2 = String(rpms2);
  temp_str2.toCharArray(newChar2,5);
  // End character conversion routine  
  client.publish(sendtopic2, newChar2,5);
  Serial.print(rpms2);
  Serial.println("RPM"); 
  Serial.println("-----------------------");
  delay (2000);
client.loop();
   delay (500);
}

 

Edited by WannabeSolarSparky
code typo

Been watching this from the sidelines for a while, very nice DIY setup and nice clean code, I like! Helping decentralize the financial system while helping decentralize the energy grid, good work! 😁

  • Author

This is a quick preview of what the battery pack pages will look like.
Pretty much the same as what most bms monitor softwares look like, why re-invent the wheel :)
Now to get all the data populated onto it.

 

 

 

sunsynk-data-portal-battery-pack-2-preview-a.jpg

Edited by WannabeSolarSparky
Improvement

I have 2 x 2,4kW Li-ion Synapse batteries in parallel and only have the Synapse 5 kW inverter control panel and readout.

What battery voltage collates to: SOC 20%, 30%, 40%     80%,90% and 100%. 

Can someone help please.

Thanks.526592491_20210915_174929(1).thumb.jpg.d2141f16ed43249b5589a2e75fbcf53f.jpg

  • Author
15 hours ago, JRW said:

I have 2 x 2,4kW Li-ion Synapse batteries in parallel and only have the Synapse 5 kW inverter control panel and readout.

What battery voltage collates to: SOC 20%, 30%, 40%     80%,90% and 100%

Most Lithium ion type chemistries have fairly flat discharge curves especially between 20% and 90% so you would need to do some sort of amp counting (coulomb counting) to work out the soc to voltages.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.