+ Antworten
Ergebnis 1 bis 5 von 5
  1. #1
    Registriert seit
    May 2011
    Ort
    Rockenberg in der Wetterau
    Beiträge
    46

    Standard Solarview über TCP in IP-Symcon

    Hallo, ich nutze Solarview auf einem Raspberry um unsere zwei Wechselrichter auszuwerten.
    Solarview bietet eine FHEM-Integration über den TCP-Port 15000 an.

    Im Forum konnte ich nur eine Integration per FTP-Server finden, das möchte ich aber nicht. Der Raspberry soll (wenn es anders geht) keinen FTP-Server bekommen.
    Ansonsten konnte ich leider nichts finden :-/

    Hat jemand über diese Schnittstelle Solarview schon ausgewertet?

    Danke!

    Gruß
    Markus
    Sternverkabelung für alle Deckenlampen (5x1,5) und jede Steckdosengruppe (5x1,5), alle Taster (RS485), Cat7-Kabel, GIRA Schalterprogramm, GIRA Taster 6fach mit Homematic IO-Modulen.
    IPS 5.0 auf Raspberry, HomeMatic-wired, Philips Hue

  2. #2
    Registriert seit
    Dec 2007
    Ort
    Nienburg (Weser)
    Beiträge
    1,337

    Ja ich hab das laufen, kann aber gerade nicht gucken.
    Melde mich morgen

    Gruß
    Jens
    _________
    IPS Unlimited unter WHS2011 auf HP N40L
    Wago 750 System, Homematic, 1-Wire,
    Squeezebox, Fritzbox, Dreambox, Instar Cams

  3. #3
    Registriert seit
    Sep 2013
    Beiträge
    131

    Hallo,

    ich hatte es so gelöst gehabt.(2015)
    Ob es noch funktioniert kann ich leider nicht sagen. Habe Solarview nicht mehr im Einsatz.
    Einen Teil hatte ich Irgendwo her kopiert, weiß aber nicht mehr woher.

    PHP-Code:
    <?php

    $ping
    =sys_ping("192.168.100.84",5000);
    $ping1=sys_ping("192.168.100.236",1000);

    setvalue(35734 /*[Eigene Scripte\PV\Solarview\Ping WR]*/ ,$ping);

    if(
    /*$ping == true and */$ping1 ==true )
    {

    # This is the difficult part, the Telnet header
    $header1=chr(0xFF).chr(0xFB).chr(0x1F).chr(0xFF).chr(0xFB).
    chr(0x20).chr(0xFF).chr(0xFB).chr(0x18).chr(0xFF).chr(0xFB).
    chr(0x27).chr(0xFF).chr(0xFD).chr(0x01).chr(0xFF).chr(0xFB).
    chr(0x03).chr(0xFF).chr(0xFD).chr(0x03).chr(0xFF).chr(0xFC).
    chr(0x23).chr(0xFF).chr(0xFC).chr(0x24).chr(0xFF).chr(0xFA).
    chr(0x1F).chr(0x00).chr(0x50).chr(0x00).chr(0x18).chr(0xFF).
    chr(0xF0).chr(0xFF).chr(0xFA).chr(0x20).chr(0x00).chr(0x33).
    chr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0x2C).chr(0x33).
    chr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0xFF).chr(0xF0).
    chr(0xFF).chr(0xFA).chr(0x27).chr(0x00).chr(0xFF).chr(0xF0).
    chr(0xFF).chr(0xFA).chr(0x18).chr(0x00).chr(0x58).chr(0x54).
    chr(0x45).chr(0x52).chr(0x4D).chr(0xFF).chr(0xF0);
    $header2=chr(0xFF).chr(0xFC).chr(0x01).chr(0xFF).chr(0xFC).
    chr(0x22).chr(0xFF).chr(0xFE).chr(0x05).chr(0xFF).chr(0xFC).chr(0x21);

    # connecting
     
    $fp=fsockopen("192.168.100.236",15000  );


    fputs($fp,"00*");

    usleep(125000);

    # show the output
    do
     {
         
    $output=fread($fp15000);    // read line by line, or at least small chunks
         
    $stat=socket_get_status($fp);
     }
     while(
    $stat["unread_bytes"]);

    $output str_replace("\n""<br>"$output);
    //echo $output;
    fclose($fp);

    $array explode(','$output);

    print_r($array);

    //Ausgabe

    $Tagesertrag= (float)$array[6];
    SetValue(37374 /*[Eigene Scripte\PV\Solarview\Tagesertrag]*/ $Tagesertrag);

    SetValue(31847 /*[Eigene Scripte\PV\Solarview\Spezifischer Ertrag]*/ , ($array[6]/"5,46"));

    SetValue(57739 /*[Eigene Scripte\PV\Solarview\Monatsertrag]*/ , ($array[7]/"2"));

    SetValue(55378 /*[Eigene Scripte\PV\Solarview\Jahresertrag]*/ $array[8]);

    SetValue(23861 /*[Eigene Scripte\PV\Solarview\Gesamtertrag]*/ $array[9]);

    SetValue(29147 /*[Eigene Scripte\PV\Solarview\Leistung]*/ $array[10]);

    }
    ?>

  4. #4
    Registriert seit
    Dec 2007
    Ort
    Nienburg (Weser)
    Beiträge
    1,337

    Ich habe einen Socket auf den Port 15000 vom Solarview gesetzt und darunter ein Script zum aktivieren/deaktivieren der Schnittstelle bzw. zum pollen der Daten.

    PHP-Code:
    <?

    $id 
    19383 /*[Socket Solarview]*/;

    IPS_SetProperty($id"Open"true); //I/O Instanz soll aktiviert sein.
    IPS_ApplyChanges($id); //Neue Konfiguration übernehmen
    IPS_Sleep(500);
    CSCK_SendText($id,"01*");
    IPS_Sleep(2000);
    IPS_SetProperty($id"Open"false); //I/O Instanz soll aktiviert sein.
    IPS_ApplyChanges($id); //Neue Konfiguration übernehmen
    ?>
    Das Ergebnis landet über einen Cutter in einer Registervariable, die dann das Script triggert.

    Cutter links: 7B (HEX)
    Cutter rechts: 7D (HEX)

    PHP-Code:
    <?
    // Auswertung der Daten von Solarview

    if($_IPS['SENDER'] == "RegisterVariable") {

          
    //Datensatz = 00,16,09,2014,11,06,0000.7,00353,004703,00026559,02475,000,000.0,000,000.0,000,000.0,000,000.0,00
            //WR, Tag, Monat, Jahr, Stunde, Minute, KDY, KMT, KYR, KT0,PAC, UDC, IDC, UDCB, IDCB, UDCC, IDCC,UL1, IL1, TKK
            //*************************************************************************
            //Bedeutung der Werte:
            //KDY= Tagesertrag (kWh)
            //KMT= Monatsertrag (kWh)
            //KYR= Jahresertrag (kWh)
            //KT0= Gesamtertrag (kWh)
            //PAC= Generatorleistung in W
            //UDC, UDCB, UDCC = Generator-Spannungen in Volt pro MPP-Tracker IDC,
            //IDCB, IDCC = Generator-Ströme in Ampere pro MPP-Tracker
            //UL1, IL1 = Netzspannung, Netzstrom
            //TKK= Temperatur Wechselrichter
            //*************************************************************************
          
    $wr             explode(","$_IPS['VALUE']);
            
    SetValueString(13178 /*[Energie\PV_Anlage\Abfragezeitpunkt]*/$wr[1].".".$wr[2].".".$wr[3]." ".$wr[4].":".$wr[5]." Uhr");
            
    SetValueFloat(44395 /*[Energie\PV_Anlage\Tagesertrag]*/floatval($wr[6]));
            
    SetValueFloat(26579 /*[Energie\PV_Anlage\Monat]*/floatval($wr[7]));
            
    SetValueFloat(51166 /*[Energie\PV_Anlage\Jahr]*/floatval($wr[8]));
            
    SetValueFloat(40181 /*[Energie\PV_Anlage\Anlagengesamtertrag]*/floatval($wr[9]));
            
    SetValueFloat(34628 /*[Energie\PV_Anlage\Max. Leistung]*/floatval($wr[10]));
          
    SetValueFloat(34886 /*[Energie\PV_Anlage\Temperatur WR]*/floatval($wr[19]));
    }

    ?>

    Gruß
    Jens
    _________
    IPS Unlimited unter WHS2011 auf HP N40L
    Wago 750 System, Homematic, 1-Wire,
    Squeezebox, Fritzbox, Dreambox, Instar Cams

  5. #5
    Registriert seit
    May 2011
    Ort
    Rockenberg in der Wetterau
    Beiträge
    46

    Danke, das probiere ich am Wochenende mal aus 😄👍
    Sternverkabelung für alle Deckenlampen (5x1,5) und jede Steckdosengruppe (5x1,5), alle Taster (RS485), Cat7-Kabel, GIRA Schalterprogramm, GIRA Taster 6fach mit Homematic IO-Modulen.
    IPS 5.0 auf Raspberry, HomeMatic-wired, Philips Hue

Ähnliche Themen

  1. Zwei, oder mehr Steuerungen über Modbus/TCP einbinden
    Von silverling im Forum SPS Automatisierungstechnik
    Antworten: 13
    Letzter Beitrag: 24.01.18, 08:30
  2. Energiezähler EEM-MA250 über Modbus TCP
    Von ChokZul im Forum Allgemeine Diskussion
    Antworten: 2
    Letzter Beitrag: 04.08.16, 15:42
  3. Revox Multiroom Ansteuerung über LAN (TCP/IP)
    Von snikers im Forum Audio & Video, TK-Anlagen, ISDN
    Antworten: 8
    Letzter Beitrag: 18.04.15, 13:06
  4. Siemens PLC IP-Symcon 2.7 ISO over TCP
    Von Ziege-One im Forum SPS Automatisierungstechnik
    Antworten: 7
    Letzter Beitrag: 11.04.13, 21:25
  5. Wago I/O über Modbus TCP ansprechen
    Von miickey29 im Forum SPS Automatisierungstechnik
    Antworten: 32
    Letzter Beitrag: 19.11.08, 20:28