Modbus TCP registers uitlezen Solaredge

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full stack developer

Bedrijfsomschrijving De organisatie waarbinnen je aan de slag zal gaan levert diensten aan een groot aantal organisaties binnen Nederland. De software die zij maken en inzetten voor hun klanten wordt dagelijks door honderden klanten gebruikt. Onze opdrachtgever is marktleider in Nederland als het gaat om full-service HR-dienstverlening. De afgelopen periode is onze klant hard gegroeid en daar zijn de nodige uitdagingen bij komen kijken. Om deze groei voort te kunnen zetten zijn ze op zoek naar nieuwe vaste medewerkers, dit om ervoor te zorgen dat ze marktleider blijven. Zij zijn op zoek naar professionals die samen met hen aan innovatieve

Bekijk vacature »

DevOps Engineer - Overheid

Functiebeschrijving: Wil jij een bijdrage leveren aan de ontwikkeling en groei van de digitale overheid en de maatschappelijke vraagstukken waar we met elkaar voor staan. Als DevOps Engineer bij CGI maak jij het verschil en groei je mee. Geïnteresseerd? Bel of Whatsapp met Aad van Kempen via 06 10040513! Hoe? Het ontwerpen en ontwikkelen in een DevOps omgeving in een van onze complexe projecten. Waarom? Om het verschil te maken in het hart van de digitale overheid in Nederland. Waar? Bij CGI in Rotterdam, dé IT-specialist op het gebied van digitale overheid. Met wie? Met een scrumteam van tussen de

Bekijk vacature »

.NET Developer Zorg-ICT

Complexe software ontwikkelen: dat is jouw ding! Voor onze vestiging in Heerenveen zoeken wij fanatieke junior en senior .NET Developers die met de laatste Microsoft-tools en -technieken willen werken. Jij bent gemotiveerd en draagt graag verantwoordelijkheid voor je 'eigen' software, die wordt ingezet in ziekenhuizen door heel Nederland. Jouw baan Je bent verantwoordelijk voor het ontwerpen, ontwikkelen, ondersteunen en onderhouden van jouw eigen module. Dit gaat om complexe ICT-producten die feilloos moeten functioneren binnen de complexe omgeving van een zorgorganisatie. Je werkt zelfstandig of in een klein team. ChipSoft maakt gebruik van een zelf ontwikkeld multi tier framework. Tijdens een

Bekijk vacature »

Fullstack .NET developer voor het onderwijs

Bedrijfsomschrijving Dit mooie bedrijf helpt onderwijsinstellingen beter en efficiënter te werken. Ze hebben hiervoor een aantal applicaties bedacht en ontwikkelt. De applicaties zijn SAAS oplossingen die allemaal middels .NET zijn gebouwd en hoewel er al veel expertise in huis is, zou een aanvulling met jou zeer wenselijk zijn. Er wordt gewerkt met moderne technieken en ook mag, en kan, je pionieren met nieuwe technieken. Zowel backend- als fullstack webdevelopers zijn meer dan welkom te reageren. Functieomschrijving Onze klant bouwt SAAS oplossingen voor het onderwijs en ze hebben inmiddels een aantal innoverende applicaties in de markt staan. Je gaat samen met

Bekijk vacature »

Cloud Dev Engineer

Cloud Dev Engineer Functiebeschrijving: Be part of something exciting! Do you want to be at the forefront of the continuously changing world of ICT? Can you, with your knowledge and experience, realize innovative and reliable Cloud environments? You will be in a fast paced environment working with the newest and latest technology with multiple clients and technologies. Numerous opportunities are available to increase your skills and progress your career. Your day-to-day activities As a Cloud Dev Engineer you will help our customers to modernize their existing applications and to migrate and connect them to the private or public Cloud (Azure

Bekijk vacature »

Medior PHP Developer

Bedrijfsomschrijving De organisatie is een marktleider op het gebied van Software ontwikkeling omtrent medewerker applicaties. Hiermee helpen ze klanten met het optimaliseren van bedrijfsprocessen en verduurzamen van de bedrijfsvoering. Innovatie en ontwikkeling staat daarom dan ook hoog in het vaandel. Je collega's hebben een open, informele werksfeer gecreëerd waar de dialoog altijd kan worden aangegaan. Als PHP developer ga je aan de slag met het realiseren van web applicaties on-premise en in de Cloud. Je schrijft innovatieve, maar ook robuuste codes en houdt hierbij rekening met Security aspecten. De code die je schrijft en de koppelingen die jij realiseert hebben

Bekijk vacature »

Medior PHP Developer

Als PHP Developer bij Coolblue zorg je ervoor dat onze webshops bizar snel en superstrak zijn. Hoe word ik Medior PHP Developer bij Coolblue? Als Medior PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, ben je niet vies van een beetje C# of Javascript. ‘’Ook Medior PHP Developer worden bij Coolblue? Else de Boer legt je uit hoe je dat doet.” Dit vind je leuk om te doen PHP code schrijven, maar kan je weg ook vinden in

Bekijk vacature »

.NET developer

Ben je niet onbekend met .NET frameworks en full-stack development? En ben je op zoek naar een uitdagende functie bij een groeiend bedrijf? Dan heb je wellicht interesse in de positie van: .NET developer voor ons kantoor in Helmond Over de positie: Je hebt een duidelijke rol binnen het team, waarbij je verantwoordelijk voor het ontwerpen en beheren van de plug ins voor de verschillende webshopomgevingen en/of de webportal bent. Je geeft advies aan resellers ontwikkelaars en begeleidt ze op technisch gebied aangaande de implementatie van nieuwe betaalmethoden en levert 3de lijns technical support. Over jou: Wij zijn op zoek

Bekijk vacature »

Business Intelligence Developer

Bring your expertise in Business Intelligence and step into a hands-on working relationship with business users and management at various levels within the organization to understand business process requirements, develop functional designs, translate them into business systems technical requirements/designs in order to implement Business Intelligence solutions within the organization. You will be part of the Dutch BI team which is in the transition to a department with an International focus. Job Responsibilities Develop advanced BI solutions using the Microsoft on premise and Azure cloud BI stack including, Integration Services / Data Factory, Analysis Services, T-SQL, and Power BI. Analyse, design,

Bekijk vacature »

Software Developer (FHIR / HL7)

We are looking for an experienced and motivated software developer with deep technical depth as well as strong interpersonal skills. You will be part of a multi-disciplinary development team. General Description: Hospital 4.0 is a value stream within Philips research focusing on operational excellence with the Healthcare Industry. We strive to help C- suite, administrators, doctors and caregivers to reduce waste by optimizing operations in hospitals and hospital networks. By connecting and analyzing data from health information systems, point of care medical devices, sensors, RTLS and other pre-existing relevant sources with help of enabling technologies such as Cloud, AI &

Bekijk vacature »

Mobile App Developer

Ons Mobile ontwikkelteam zoekt een fanatieke Mobile App Developer. Ben jij creatief en heb je passie voor het ontwikkelen van apps? Dan zijn wij op zoek naar jou! Jouw baan ChipSoft heeft al diverse apps uitgebracht en het aantal gebruikers hiervan neemt snel toe. De apps doen het erg goed bij de zorginstellingen. Je kunt hierbij denken aan apps verpleegkundigen, thuiszorgmedewerkers, de logistieke dienst en - natuurlijk - de artsen zelf. Door jouw hands-on mentaliteit, eigenwijsheid en technisch inzicht kun je nauwkeurig herbruikbare software schrijven. Die software sluit naadloos aan op onze ‘back end’ (HiX, onze ICT-totaaloplossing voor de zorg).

Bekijk vacature »

Junior Developer Fullstack Java DevOps Cloud

Bedrijfsomschrijving Onze klant is een grote organisatie en is actief in de financiële sector. Binnen Europa bieden zij veel verschillende producten en diensten aan. De afdeling waar je komt te werken richt zich op het digitaliseren van primaire digitale processen. Wat digitale processen betreft lopen wij in Nederland ver voor op andere landen in Europa! Deze services wil de organisatie ook aanbieden aan hun collega’s en klanten in landen zoals België, Frankrijk en Duitsland. Jij en je team zijn verantwoordelijk voor de digitalisatie van de primaire processen en deze vervolgens te optimaliseren & automatiseren. Binnen het team zal je end-to-end

Bekijk vacature »

Senior Software Developer (Freelancer)

Hospital 4.0 is a value stream within Philips research focusing on operational excellence with the Healthcare Industry. We strive to help C- suite, administrators, doctors and caregivers to reduce waste by optimizing operations in hospitals and hospital networks. By connecting and analyzing data from health information systems, point of care medical devices, sensors, RTLS and other pre-existing relevant sources with help of enabling technologies such as Cloud, AI & ML, data interoperability, and healthcare data standards (HL7, FHIR). Philips is looking for an experienced and motivated senior software developer with deep technical depth as well as strong interpersonal skills. The

Bekijk vacature »

C# developer nabij station in Amsterdam

Bedrijfsomschrijving Onze klant bouwt portalen, sites en andere software applicaties voor organisaties in een leuke en niche markt. Dat doen ze al geruime tijd en zeer succesvol. Er zijn momenteel rond de 20 medewerkers actief waarvan de helft in een technische functie. De sfeer is informeel en collegiaal en je voelt je hier snel thuis. Zowel met de auto als met het openbaar vervoer zijn ze uitstekend bereikbaar. Functieomschrijving Als .NET ontwikkelaar ga je bouwen aan diverse klantportalen. En dat doe je niet alleen! Je komt in een team van 8 man te werken waarvan 7 .NET ontwikkelaars zijn en

Bekijk vacature »

Front-end Ontwikkelaar

Bedrijfsomschrijving Bij het accepteren van dit aanbod kom je terecht binnen een veelzijdige organisatie waar een goede sfeer hangt. Zij zijn gewend dagelijks met elkaar te lunchen en ruimte is voor een potje Mario. Als Front-end ontwikkelaar ga je je op projectbasis bezighouden met het ontwikkelen van content voor diverse opdrachtgevers. De projecten waar je aan gaat werken zullen verschillende qua omvang. Hierbij kan je rekening houden met een gemiddelde doorlooptijd van een half jaar, waarbij er meerdere projecten naast elkaar kunnen lopen. Naast ontwikkeling aan de Front-end ga je ook een rol spelen bij de ontwikkeling aan de back-end.

Bekijk vacature »
Rene Wennekes

Rene Wennekes

26/11/2020 09:12:26
Quote Anchor link
Hallo,

ik zit een beetje vast.
Zijn er mensen die ervaring hebben met het uitlezen met modbus-tcp?
Ik wil mijn data uitlezen van mijn Solaredge inverter.

Ik weet dat er kant en klare oplossingen zijn op internet maar ik wil het zelf schrijven.

Om een of andere manier krijg ik geen output.

Modbus over tcp heb ik ingeschakeld op mijn inverter, heb ik getest met een werkend python scriptje en die geeft output.

(opm.: mochten er mensen zijn die willen weten hoe je modbus-tcp enabled opSolaredge wil ik dit met harte wel uitleggen)

Aan de code is te zien dat ik veel opties heb uitgeprobeerd....
in het sunspec pdf staat ook in de appendix dat er 2 methodes zijn (met en zonder offset 40001 wat erg verwarrend is)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
$id
= 1; //1
$fc = 3;
$offset = 0; //70, ...107
$length = 122; //39, ..3

//Appendix A – Supported MODBUS Request Methods
//SolarEdge has implemented two methods of the MODBUS request procedure:
//MODBUS request without explicit addressing – supported by communication board CPU version 2.478 and above. For example:
//$offset_h = floor($offset/256);
//$offset_l = $offset-$offset_h*256;

//MODBUS request with explicit register addressing - supported by all communication board CPU versions. For example:

$offset_h = floor(($offset+40000)/256);
$offset_l = ($offset+40000)-$offset_h*256;


$length_h = floor($length/256);
$length_l = $length-$length_h*256;

//$crc = crc16(chr(0).chr($id).chr(0).chr($fc).chr($offset_h).chr($offset_l).chr($length_h).chr($length_l));
$crc = crc16(chr($id).chr($fc).chr($offset_h).chr($offset_l).chr($length_h).chr($length_l));
$crc_h = floor($crc/256);
$crc_l = $crc-$crc_h*256;

if ($id<10) {$id0 = "0";} else {$id0 = "";}
if ($fc<10) {$fc0 = "0";} else {$fc0 = "";}

if ($offset_h<10) {$offset_h0 = "0";} else {$offset_h0 = "";}
if ($offset_l<10) {$offset_l0 = "0";} else {$offset_l0 = "";}
if ($length_h<10) {$length_h0 = "0";} else {$length_h0 = "";}
if ($length_l<10) {$length_l0 = "0";} else {$length_l0 = "";}
if ($crc_h<10) {$crc_h0 = "0";} else {$crc_h0 = "";}
if ($crc_l<10) {$crc_l0 = "0";} else {$crc_l0 = "";}

//$senddata = chr(0).chr($id).chr(0).chr($fc).chr($offset_h).chr($offset_l).chr($length_h).chr($length_l).chr($crc_l).chr($crc_h);
$senddata = chr($id).chr($fc).chr($offset_h).chr($offset_l).chr($length_h).chr($length_l).chr($crc_l).chr($crc_h);
//without crc ...
//$senddata = chr($id).chr($fc).chr($offset_h).chr($offset_l).chr($length_h).chr($length_l);


$senddata2 = $id0.dechex($id)." ".$fc0.dechex($fc)." ".$offset_h0.dechex($offset_h).$offset_l0.dechex($offset_l)." ".$length_h0.dechex($length_h).$length_l0.dechex($length_l)." ".$crc_l0.dechex($crc_l).$crc_h0.dechex($crc_h);

//$senddata = "11 03 006B 0003 7687";
//$senddata = "1103006B00037687";

//print $senddata."<br />\n";

print $senddata2."<br />\n";

//print dechex($id)." ".dechex($fc)." ".dechex($offset_h).dechex($offset_l)." ".dechex($length_h).dechex($length_l)." ";
//print dechex($crc_l).dechex($crc_h);

//set_time_limit(0);



$fp = fsockopen("192.168.0.192", 502, $errno, $errstr, 3);
if(!$fp)
{

    print "can\'t connect modbus tcp device<br />\n";
    die();
}

else{
    print "Connected to modbus<br />\n";

    //11 03 0046 0027 xxxx  //request 40070 +27  xxxx is crc check
    //stream_set_timeout($socketHandler, 2);

    write($fp, $senddata);
    //write($fp, $senddata,strlen($senddata));
    //set_socket_blocking($fp,true);
    //fputs($fp, $senddata);


    $response = '';
    while (!feof($fp)) {
        //echo fgets($fp, 128);
        //stream_set_timeout($socketHandler, 2);
        //$line[] = fgets($fp, 128);

        $line[] = fgets($fp);
        //echo fgets($fp);
        //echo fread($fp,255);
        //$response = stream_get_contents($fp);
        //$line[] = fread($fp);
        //$response .= fgets($fp, 128); // If you expect an answer

        }
    print $response;


    foreach ($line as $key => $value) {
        print $key+$offset.":".intval($value)."<br />\n";
        }
    }
  

fclose($fp);

function
crc16($data) {
        $crc16 = 0xFFFF;
        for ($i = 0; $i < strlen($data); $i++)
        {

            $crc16 ^=ord($data[$i]);
             for ($j = 8; $j !=0; $j--)
            {

                if (($crc16 & 0x0001) !=0)
                {

                    $crc16 >>= 1;
                    $crc16 ^= 0xA001;
                }

                else
                $crc16 >>= 1;
            }        
        }

        return $crc16;
}

?>
 
PHP hulp

PHP hulp

20/01/2021 04:53:40
 
- SanThe -

- SanThe -

26/11/2020 11:01:44
Quote Anchor link
Geen idee waar dit over gaat.

$length = 122
Maar wat mij opvalt is dat $length_h = floor($length/256) is dus 0 (nul).
En $length_l = $length-$length_h*256 is dus 122 is gewoon $length ($length = 122).
En dat gebeurt bij alle $length tussen 0 en 256.
 
Rene Wennekes

Rene Wennekes

26/11/2020 11:45:20
Quote Anchor link
hmm, toch klopt het want ik laat voor de zekerheid de uitvoer in hex op het scherm afdrukken en dan krijg ik

01 03 9c40 007a ebad

en dat klopt dus.

eerst is id, 2e is functiecode, 3e is de offset (weet niet of het bij 0 of 40000 moet beginnen) en 4e is de lengte (aantal registers 007a) em het laatste is de crc16 check

toegevoegd: ff nagerekend maar dat is dus de bedoeling ook ... Length_l is de lo-byte dus restgetal van het geheel minus de high-byte
Gewijzigd op 26/11/2020 11:50:49 door Rene Wennekes
 
Ivo P

Ivo P

26/11/2020 14:46:39
Quote Anchor link
Mijn solaredge is na een aantal maanden ineens onbereikbaar geworden. Geen enkele TCP poort lijkt nog open, waar ik eerst gewoon via poort 80 (of 443) kon verbinden.

Als je aanwijzingen hebt hoe ik die weer open krijg: graag.
Ik wijd het tot nu toe aan een update van de fabrikant.
 
Rene Wennekes

Rene Wennekes

26/11/2020 16:11:30
Quote Anchor link
ja bij lag ie in 2018 (net met het mooie weer) ook er uit tijdens een firmware er uit, maar na opgave van mijn externe ip-adres via de installateur hebben ze het na 10 dagen toch weer kunnen fixen.

Maar heb je zo een met een blauw 20x4 lcd display en 4 knoppen met hele kleine rode lampjes?
voor de modvus-tcp aan te zetten moest je wel minimaal firmware 3.x hebben en een bepaald cpu hebben.

Overigens heeft mijn inverter nooit op 80 of 443 gewerkt ......

en modbus protocol heeft normaal poort 502 (of 1502)

In ieder geval (op eigen risico) hierond de methode om modbus-tcp aan te zetten in het 'geheime' menu.

Houd de OK-knop minstens 5 seconden ingedrukt. De volgende melding verschijnt:
Druk de knoppen Omhoog (=1), Omlaag (=2) en OK (=3)in om het wachtwoord voor hetconfiguratiemenuin te voeren: ??OK ??OK ??(1 2 3 1 2 3 1 2).
Select Communication ?LAN Conf ? Modbus TCP (the default port is 502).
2 To modify the TCP port, select Modbus TCP ? TCP Port, set the port number and long-press <Enter>.


Toevoeging op 26/11/2020 16:11:51:

opm.:?? is dus omhoog en omlaag ...^v
Gewijzigd op 26/11/2020 17:01:19 door Rene Wennekes
 
Ivo P

Ivo P

26/11/2020 19:38:47
Quote Anchor link
ik heb kennelijk een ander type, want een display is er bij mij niet aanwezig....
 
Rene Wennekes

Rene Wennekes

27/11/2020 07:47:18
Quote Anchor link
ja is duidelijk een vroeger model ....

mijne werd geinstalleerd in 2017.

Er moeten toch meer mensen zijn die een nieuwer model hebben en realtime willen kijken zonder tussenkomst via de cloud-app van Solaredge....

Overigens merk ik dat de cloud-app erg onsecuur is en nog véél trager .....
Gewijzigd op 27/11/2020 07:48:05 door Rene Wennekes
 
Ivo P

Ivo P

27/11/2020 09:19:19
Quote Anchor link
Toen ik nog beide kon bekijken, zag ik op de web-interface veranderingen in vermogen. En pas na enige tijd volgde de app.
Begrijp ik wel: die data zal op gezette tijden naar de centrale server gestuurd worden en pas daarna kan de app die raadplegen.

En volgens mij ook in een wat grovere tijdsintervallen.

Is jammer dat de poorten later gesloten zijn. Ik heb eerder wel een topic op Tweakers gelezen waarin iemand het dataverkeer snoopte om een sleutel te achterhalen om zo de data met een Raspi te op te slaan.

Dat ging me te ver. Maar nu kan ik helemaal niet meer met het ding verbinden.
Maar ik moet zeggen dat na een jaar de app en de app van de energieleverancier ook wel genoeg is.
In het begin zit je er boven op, maar nu kijk ik nog een paar keer per maand.
 
Rene Wennekes

Rene Wennekes

28/11/2020 09:08:07
Quote Anchor link
ik heb het volgende eens geprobeerd maar nog steeds geen output

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$host = "192.168.0.192";
$port = 502;
// No Timeout
set_time_limit(0);

$socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n");

socket_connect($socket, $host, $port) or die("Could not connect to server\n");

socket_write($socket, $senddata) or die("Could not send data to server\n");

$result = socket_recv($socket, $buf , 2000 , 0 );

echo "Reply From Server  :".strlen($result)." / ".strlen($result)." / ".strlen($buf);

socket_close($socket);
print "\n\n<br />\ntest1<br />\n";


output:
11 03 138c6 0027 ea1d
Reply From Server :1 / 1 / 0
test1
Gewijzigd op 28/11/2020 09:08:46 door Rene Wennekes
 
Rene Wennekes

Rene Wennekes

03/12/2020 10:10:02
Quote Anchor link
heeft me wat hersen-kraken gekost maar ik heb het kunnen oplossen.

<= Onderwerp gesloten =>

Toevoeging op 03/12/2020 10:10:09:

heeft me wat hersen-kraken gekost maar ik heb het kunnen oplossen.

<= Onderwerp gesloten =>
 
- Ariën -
Beheerder

- Ariën -

03/12/2020 10:18:07
Quote Anchor link
Wat was de oplossing?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.