Page 1 of 1

[523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Sunday 17 May 2015 1:31
by Itschi
Hi, not sure whether I understood the posting rules while posting a tracker first. Appologies if I'm doing wrong!

I was stunned reading about the SolarEdge Support in this forum. Beside a SolarEdge Inverter I'm also running a SolarMax Inverter that comes with a simple LAN UDP-Interface. I've done an implementation in Delphi. All you need to do is sending a UDP request string to the inverters IP on a specific port (12345 in my case). The inverters respons string sends the values of the requested data fields in ascii. This is a example:

Send: '{FB;01;1E|64:KDY;KT0;PAC|0672}'

Receive: 'KDY=A3;KT0=1689;PAC=570'

The values are in hex.

KDY=energy today in Wh
KT0=energy total (energy produced since installation or reset ;-))
PAC=AC current power

There are a lot more parameters that can be requested, however these are the ones that really matter to me. At http://blog.dest-unreach.be/2009/04/15/ ... ent-page-2 a more detailed discussion on the protocoll can be found. I'd be hayppy to do any testing on experimental code or could even expose my SolarMax to the internet for testing purposes. Unfortunatly it's only responding during power production. So no chance to test at night :-(.

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Sunday 17 May 2015 9:29
by gizmocuz
Could it be that in the forum they talk about TCP ? (Not UDP)

you might be able to write a small bash file that reads the values,
and then send it to domoticz via the json interface

It might also be possible that SBFSpot supports this inverter? We do have an SBFSpot implementation in domoticz

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Sunday 17 May 2015 9:42
by Itschi
gizmocuz wrote:Could it be that in the forum they talk about TCP ? (Not UDP)

you might be able to write a small bash file that reads the values,
and then send it to domoticz via the json interface

It might also be possible that SBFSpot supports this inverter? We do have an SBFSpot implementation in domoticz
You're right, it's TCP. I already wrote a small program that updates domoticz via the json interface. However I'd find it great to have a native support for that. SBFSpot seems to support SMA inverters only.

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Sunday 17 May 2015 9:43
by gizmocuz
Could you upload your script file ?

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Sunday 17 May 2015 9:52
by Itschi
gizmocuz wrote:Could you upload your script file ?
Shure. It's not a script but part of a Delphi program I wrote my own small home automation with:

Code: Select all

procedure TMain.SolarSocketWrite(Sender: TObject;
  Socket: TCustomWinSocket);
begin
  Socket.SendText('{FB;01;1E|64:KDY;KT0;PAC|0672}');
end;

procedure TMain.SolarSocketRead(Sender: TObject; Socket: TCustomWinSocket);

var Data : string;

  FUNCTION  TMain.GetStrComponent(Comp : BYTE; Separator : CHAR; Line : STRING) : STRING;  
  VAR CharCount : BYTE;
      Count     : BYTE;
  BEGIN
    CharCount := 1;
    WHILE (CharCount <= Length(Line)) AND (Comp > 1) DO
    BEGIN
      IF Line[CharCount] = Separator THEN
        BEGIN
          Dec(Comp);
        END;
      Inc(CharCount);
    END;
    Count := System.Pos(Separator, Copy(Line, CharCount, Length(Line)));
    IF Count = 0 THEN
      Count := Length(Line)
    ELSE
      Dec(Count);
    GetStrComponent := Copy(Line, CharCount, Count);
  END;

  FUNCTION HexStrToInt(InStr : STRING) : Integer;
  VAR Count  : Integer;
      Res    : Integer;
  BEGIN
    Res := 0;
    FOR Count := 0 TO Length(InStr)-1 DO
    BEGIN
      IF UpCase(InStr[Length(InStr)-Count]) IN ['A'..'F'] THEN
        Res := Res + Round(Power(16, Count)) * (Ord(UpCase(InStr[Length(InStr)-Count]))-ORD('A')+10);
      IF InStr[Length(InStr)-Count] IN ['0'..'9'] THEN
        Res := Res + Round(Power(16, Count)) * (Ord(InStr[Length(InStr)-Count])-Ord('0'));
    END;
    HexStrToInt := Res;
  END;

  function GetValue(Ident, Data : string) : Integer;
  begin
    Data := Copy(Data, System.Pos(Ident, Data)+Length(Ident), Length(Data));
    if System.Pos(';', Data) > 0 then
      Data := Copy(Data, 1, System.Pos(';', Data)-1);
    Result := HexStrToInt(Data);
  end;

begin
  Data := Socket.ReceiveText;
  Data := GetStrComponent(2, '|', Data);
  Data := GetStrComponent(2, ':', Data);
  Data := GetStrComponent(1, '|', Data);
  edPVPAC.Text := FloatToStrF(GetValue('PAC=', Data)/2, ffGeneral, 7, 1);
  PVPACLast := edPVPAC.Text;
  edPVDay.Text := FloatToStrF(GetValue('KDY=', Data)/10, ffGeneral, 7, 1);
  PVYearLast := IntToStr(GetValue('KT0=', Data));
  try
    UpdateDomoticz(DOMOTICZ_URL+'type=command&param=udevice&idx=10&nvalue=0&svalue='+edPVPAC.Text+';'+FloatToStrF(GetValue('KDY=', Data)*100, ffGeneral, 7, 1));
  except
  end;
  if (edPVPACmax.text = '') or (edPVPACmax.text = '-') then
    edPVPACmax.text := PVPACLast
  else
    if (edPVPACmax.text <> '') and (edPVPACmax.text <> '-') and (PVPACLast <> '') and (PVPACLast <> '-') then
      if StrToFloat(edPVPACmax.text) < StrToFloat(PVPACLast) then
        edPVPACmax.text := edPVPAC.Text;
  edPVYear.Text := PVYearLast;
  SolarSocket.Close;
end;
TMain.SolarSocketWrite is call periodically by a timer, TMain.SolarSocketRead is triggerd by the TClientSocket component if data arrives on that socket.

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Sunday 17 May 2015 9:58
by gizmocuz
Send you a PM

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Sunday 17 May 2015 12:34
by gizmocuz
Send you an email, think i'm almost done

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Sunday 17 May 2015 16:02
by gizmocuz
Implemented

Re: [523] SUPPORT FOR OMNIK PV-INVERTER

Posted: Tuesday 19 May 2015 18:51
by sincze
HI gizmocuz

Would it be hard to have Omnik inverters available in the same way?

Currently it can be done using a script as described here: http://www.domoticz.com/wiki/Omnik_Solar_Inverter
Send a magic packet and the machine will spit out the data

tnx.
Any assisstance needed, please let me know.

Sándor

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Tuesday 19 May 2015 20:48
by roblom
Same for my SamilPower inverter, I currently use this perl script described here.
I use a RS232 to USB cable.
I'm not a programmer but maybe I can make it more easy to implement, but don't now what suits best for you?

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Thursday 25 February 2016 21:35
by FlyinGNL
Is it possible to get a more exact reading from a solarmax inverter?
Now the day readings are in 1 kWh. Would be nice when it's in 0,1kWh output if not too much trouble
Knipsel.JPG
Knipsel.JPG (25.31 KiB) Viewed 5964 times

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Thursday 25 February 2016 21:41
by Derik
WOW

How many solarpanels do you have...
Pinctures???

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Thursday 25 February 2016 22:25
by FlyinGNL
numbers doesn't count :lol:

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Saturday 12 January 2019 16:15
by guyroh
I got a Solarmax 3000S
I activate in the front panel the ethernet interface and add it to Domoticz
and nothing...
Image
do I have to do something else?
do I have to implement something?
my Domoticz is on a raspberry Pie and update
don't I supposed to get all the drivers with?
there's 2 ethernet plug in my Solarmax 3000S and description seems to give them both as working

could U help me with this hardware please

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Sunday 29 March 2020 14:59
by Jochemvandijk
hi, before i saw the current watt and the total day kwh and total all time kwh , but after a complete new installation i dont see total of all time anymore on the dashboard or utility. the total value is visible in devices.
How can i fix this?
2020-03-29 14_54_10-Domoticz.png
2020-03-29 14_54_10-Domoticz.png (40.28 KiB) Viewed 4057 times
2020-03-29 14_56_53-Domoticz.png
2020-03-29 14_56_53-Domoticz.png (14.05 KiB) Viewed 4057 times

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Sunday 28 June 2020 15:47
by willybee
Hello, i have connected my solarmax TP-series to domoticz, but only recieve errors.
----------
2020-06-28 16:33:30.362 Error: solarmax hardware (3) thread seems to have ended unexpectedly
2020-06-28 16:33:44.365 Error: solarmax hardware (3) thread seems to have ended unexpectedly
2020-06-28 16:33:48.541 Error: SolarMax: TCP/IP connection closed! retrying in 30 seconds...
2020-06-28 16:33:58.368 Error: solarmax hardware (3) thread seems to have ended unexpectedly
2020-06-28 16:34:18.544 Status: SolarMax: TCP connected to: 192.168.178.42:12345
--------
anyone recognizes this and has an solution?
thnx in advance
regards,
wilfred

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Saturday 14 November 2020 12:17
by gregoinc
One of the reasons I chose Domoticz was the inbuilt support for SolarMax inverters. I connected my inverter and it works really well.

Only problem... when the sun goes down Domoticz continues to try and poll the inverter. See here...

Code: Select all

2020-11-14 22:10:26.220  Error: SolarMax: TCP could not connect to: <IPADDRESS>:12345
2020-11-14 22:10:26.221  Status: SolarMax: retrying in 30 seconds...
Is there a method of telling Domoticz to stop polling the inverter at certain times of the day, such as during the times where there is no sunshine?

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Sunday 02 April 2023 11:55
by monette999
Is this Plugin Solarmax with Lan working for SMT Series as well?

Greetings

Re: [523] SUPPORT FOR SOLARMAX PV-INVERTER

Posted: Thursday 01 February 2024 14:52
by AvdKwaak
willybee wrote: Sunday 28 June 2020 15:47 Hello, i have connected my solarmax TP-series to domoticz, but only recieve errors.
----------
<<cut>>
--------
anyone recognizes this and has an solution?
thnx in advance
regards,
wilfred
I had the same issue. I changed the address in the settings of my inverter to 001
Then did "sudo service domoticz. sh restart" and then it worked.
Even though the answer is rather late, i hope it is helpful.