+ Antworten
Seite 9 von 9 ErsteErste ... 7 8 9
Ergebnis 81 bis 90 von 90
  1. #81
    Registriert seit
    Oct 2010
    Ort
    Paderborn
    Beiträge
    2,729

    Zitat Zitat von PhilippS Beitrag anzeigen
    leider werden sehr oft keine Daten abgeholt.
    Das beobachte ich bei mir auch:

    PHP-Code:
        [InfoMessages] => Array
            (
                [
    0] => The current consumption could not be determinedThe current purchased electricity is unknown
            )

        [
    WarningMessages] => Array
            (
                [
    0] => The current PV generation could not be fully determinedAn inverter did not respond in time.
            )

        [
    ErrorMessages] => Array
            (
                [
    0] => The current data cannot be retrieved from the PV systemCheck the cabling and configuration of the following energy meters:<div class="liveModeErrorSub"><ul><li class="faultingCounter"><span>Feed-in meter</span></il><li class="faultingCounter"><span>External consumption meter</span></il></ul></div>
            )

        [
    Info] => Array
            (
            ) 
    Ich habe aber noch keine Ahnung, woran das liegt.
    HM per RaspberryMatic | EKM-868 | LGS-868 | 1 Wire | Fibaro Motion Sensor & Aeon Labs Z-Stick S2 | SONOS | Denon AVR 3312 | Vu+ Ultimo 4K | Sony KD-75XE9405 | Fritzbox 6360 | AXIS 1344-E | Echo Dot + Show | Vaillant eBUS | Intel NUC i3 | IPS V5.4 Ninja

  2. #82
    Registriert seit
    Sep 2012
    Ort
    Stuttgart - Remshalden
    Beiträge
    270

    Auf jedenfall geht mit ips 5.3 jetzt das abholen per multicast direkt vom homemanager 2.0 auch wieder. Nur die phasen L1-L3 werden noch falsch dargestellt.

    Dann kann man die kurzfristigen werte direkt vom HM abholen und Autarkiequote usw. vom sunnyportal

    Gesendet von meinem SM-G975F mit Tapatalk

  3. #83
    Registriert seit
    Mar 2016
    Beiträge
    3

    Hab den SMA HM 2.0 im Einsatz und hatte zuerst auch falsche Bezugswerte für L1-L3

    Nach folgender Anleitung, schaut mein Skript jetzt so aus. Werte scheinen jetzt richtig zu sein.

    http://www.eb-systeme.de/?page_id=1240

    PHP-Code:
    <?

        
    if ($_IPS["SENDER"] == "RegisterVariable")                               // Ã¼ber Register Var ausgeführt
    {
        
    $Data  RegVar_GetBuffer($_IPS["INSTANCE"]);                 // im Puffer der Instanz vorhandene Daten in $data kopieren
        
    $Data .= $_IPS["VALUE"];                                                        // neu empfangene Daten an $data anhängen
        
    $CRLF  ",\n";
        
    $HexData bin2hex($Data);
        
    SetValue(17741 /*[Energie Zähler\SMA Home Manager\txt]*/substr($HexData,41716 ));
        
    //SetValue(17741 /*[Energie Zähler\SMA Home Manager\txt]*/, $HexData);
        
    SetValue(40340/*[Energie Zähler\SMA Home Manager\Bezug - Summe]*/,(float)hexdec(substr($HexData,64))/10);
        
    SetValue(57868/*[Energie Zähler\SMA Home Manager\Einspeisung - Summe]*/,(float)hexdec(substr($HexData,104))/10);

        
    SetValue(54931 /*[Energie Zähler\SMA Home Manager\Bezug - L1]*/,(float)hexdec(substr($HexData,336))/10);
        
    SetValue(23803 /*[Energie Zähler\SMA Home Manager\Bezug - L2]*/,(float)hexdec(substr($HexData,624))/10);
        
    SetValue(53613 /*[Energie Zähler\SMA Home Manager\Bezug - L3]*/,(float)hexdec(substr($HexData,912))/10);
        
    SetValue(19875 /*[Energie Zähler\SMA Home Manager\Einspeisung - L1]*/,(float)hexdec(substr($HexData,376))/10);
        
    SetValue(15525 /*[Energie Zähler\SMA Home Manager\Einspeisung - L2]*/,(float)hexdec(substr($HexData,664))/10);
        
    SetValue(37841 /*[Energie Zähler\SMA Home Manager\Einspeisung - L3]*/,(float)hexdec(substr($HexData,952))/10);


        
    SetValue(33808 /*[Energie Zähler\SMA Home Manager\Bezogene Energie]*/,(float)hexdec(substr($HexData,8016 ))/3600000);
        
    SetValue(21006/*[Energie Zähler\SMA Home Manager\Eingespeiste Energie]*/,(float)hexdec(substr($HexData,12016 ))/3600000);

    }
    ?>
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bildschirmfoto 2020-07-25 um 13.06.48.png 
Hits:	56 
Größe:	165.6 KB 
ID:	54854

  4. #84
    Registriert seit
    Dec 2010
    Beiträge
    317

    Ich bekomme keine Einspeisung Summe?

    Jetzt ist Abend....daher.
    IP-Symcon 5.5, Windows x64, 22.07.2020, 154dbf25ed9b, auf Windows 7 64bit, 24/7, ASRock N3700-ITX, Homematic CCU1, 9x HM Rolladenaktor, 3x HM Leistungsmesssung, 4xHM Rauchmelder, 1x HM Keymatic, 4x HM Fensterkontakt, 1x 4fachSchaltaktor für Poolsteuerung inkl. 1x HM Leistungsmessung und Steuerung 3x Belimo SM230A, 1-Wire DS9490R mit 25x DS18B20

  5. #85
    Registriert seit
    Dec 2010
    Beiträge
    317

    Bei mir funktioniert es bestens.

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	SMA_HM.JPG 
Hits:	30 
Größe:	40.5 KB 
ID:	54863

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	SMA_HM_2.JPG 
Hits:	27 
Größe:	50.3 KB 
ID:	54864

    Danke
    IP-Symcon 5.5, Windows x64, 22.07.2020, 154dbf25ed9b, auf Windows 7 64bit, 24/7, ASRock N3700-ITX, Homematic CCU1, 9x HM Rolladenaktor, 3x HM Leistungsmesssung, 4xHM Rauchmelder, 1x HM Keymatic, 4x HM Fensterkontakt, 1x 4fachSchaltaktor für Poolsteuerung inkl. 1x HM Leistungsmessung und Steuerung 3x Belimo SM230A, 1-Wire DS9490R mit 25x DS18B20

  6. #86
    Registriert seit
    Nov 2014
    Beiträge
    65

    Hallo,

    leider klappt es immer noch nicht,
    ich bekomme keine plausiblen Werte zurück.

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	shm2.jpg 
Hits:	27 
Größe:	80.1 KB 
ID:	54865

  7. #87
    Registriert seit
    Oct 2010
    Ort
    Paderborn
    Beiträge
    2,729

    Vielleicht hilft euch meine Umsetzung weiter:

    PHP-Code:
    <?PHP
    declare(strict_types=1);

    // OBIS Parameter
    $list_sum   = []; //Summen
    $list_sum['00010400'] = ['OBIS' => '0140''divisor' => 10'name' => 'Real Power +'];
    $list_sum['00010800'] = ['OBIS' => '0180''divisor' => 3600000'name' => 'Counter Real Power +'];
    $list_sum['00020400'] = ['OBIS' => '0240''divisor' => 10'name' => 'Real Power -'];
    $list_sum['00020800'] = ['OBIS' => '0280''divisor' => 3600000'name' => 'Counter Real Power -'];
    $list_sum['00030400'] = ['OBIS' => '0340''divisor' => 10'name' => 'Reactive Power +'];
    $list_sum['00030800'] = ['OBIS' => '0380''divisor' => 3600000'name' => 'Counter ReReactive Power +'];
    $list_sum['00040400'] = ['OBIS' => '0440''divisor' => 10'name' => 'Reactive Power -'];
    $list_sum['00040800'] = ['OBIS' => '0480''divisor' => 3600000'name' => 'Counter ReReactive Power -'];
    $list_sum['00090400'] = ['OBIS' => '0940''divisor' => 10'name' => 'Apparent Power +'];
    $list_sum['00090800'] = ['OBIS' => '0980''divisor' => 3600000'name' => 'Counter Apparent Power +'];
    $list_sum['000a0400'] = ['OBIS' => '1040''divisor' => 10'name' => 'Apparent Power -'];
    $list_sum['000a0800'] = ['OBIS' => '1080''divisor' => 3600000'name' => 'Counter Apparent Power -'];
    $list_sum['000d0400'] = ['OBIS' => '1340''divisor' => 1000'name' => 'Power Faktor'];
    $list_sum['000e0400'] = ['OBIS' => '1440''divisor' => 1000'name' => 'Network Frequency'];

    $list_l1   = []; //Phase 1
    $list_l1['00150400'] = ['OBIS' => '2140''divisor' => 10'name' => 'Real Power +'];
    $list_l1['00150800'] = ['OBIS' => '2180''divisor' => 3600000'name' => 'Counter Real Power +'];
    $list_l1['00160400'] = ['OBIS' => '2240''divisor' => 10'name' => 'Real Power -'];
    $list_l1['00160800'] = ['OBIS' => '2280''divisor' => 3600000'name' => 'Counter Real Power -'];
    $list_l1['00170400'] = ['OBIS' => '2340''divisor' => 10'name' => 'Reactive Power +'];
    $list_l1['00170800'] = ['OBIS' => '2380''divisor' => 3600000'name' => 'Counter ReReactive Power +'];
    $list_l1['00180400'] = ['OBIS' => '2440''divisor' => 10'name' => 'Reactive Power -'];
    $list_l1['00180800'] = ['OBIS' => '2480''divisor' => 3600000'name' => 'Counter ReReactive Power -'];
    $list_l1['001d0400'] = ['OBIS' => '2940''divisor' => 10'name' => 'Apparent Power +'];
    $list_l1['001d0800'] = ['OBIS' => '2980''divisor' => 3600000'name' => 'Counter Apparent Power +'];
    $list_l1['001e0400'] = ['OBIS' => '3040''divisor' => 10'name' => 'Apparent Power -'];
    $list_l1['001e0800'] = ['OBIS' => '3080''divisor' => 3600000'name' => 'Counter Apparent Power -'];
    $list_l1['001f0400'] = ['OBIS' => '3140''divisor' => 1'name' => 'Power'];
    $list_l1['00200400'] = ['OBIS' => '3240''divisor' => 1000'name' => 'Voltage'];
    $list_l1['00210400'] = ['OBIS' => '3340''divisor' => 1000'name' => 'Network Frequency'];

    $list_l2   = []; //Phase 2
    $list_l2['00290400'] = ['OBIS' => '4140''divisor' => 10'name' => 'Real Power +'];
    $list_l2['00290800'] = ['OBIS' => '4180''divisor' => 3600000'name' => 'Counter Real Power +'];
    $list_l2['002a0400'] = ['OBIS' => '4240''divisor' => 10'name' => 'Real Power -'];
    $list_l2['002a0800'] = ['OBIS' => '4280''divisor' => 3600000'name' => 'Counter Real Power -'];
    $list_l2['002b0400'] = ['OBIS' => '4340''divisor' => 10'name' => 'Reactive Power +'];
    $list_l2['002b0800'] = ['OBIS' => '4380''divisor' => 3600000'name' => 'Counter ReReactive Power +'];
    $list_l2['002c0400'] = ['OBIS' => '4440''divisor' => 10'name' => 'Reactive Power -'];
    $list_l2['002c0800'] = ['OBIS' => '4480''divisor' => 3600000'name' => 'Counter ReReactive Power -'];
    $list_l2['00310400'] = ['OBIS' => '4940''divisor' => 10'name' => 'Apparent Power +'];
    $list_l2['00310800'] = ['OBIS' => '4980''divisor' => 3600000'name' => 'Counter Apparent Power +'];
    $list_l2['00320400'] = ['OBIS' => '5040''divisor' => 10'name' => 'Apparent Power -'];
    $list_l2['00320800'] = ['OBIS' => '5080''divisor' => 3600000'name' => 'Counter Apparent Power -'];
    $list_l2['00330400'] = ['OBIS' => '5140''divisor' => 1'name' => 'Power'];
    $list_l2['00340400'] = ['OBIS' => '5240''divisor' => 1000'name' => 'Voltage'];
    $list_l2['00350400'] = ['OBIS' => '5340''divisor' => 1000'name' => 'Network Frequency'];

    $list_l3   = []; //Phase 3
    $list_l3['003d0400'] = ['OBIS' => '4140''divisor' => 10'name' => 'Real Power +'];
    $list_l3['003d0800'] = ['OBIS' => '4180''divisor' => 3600000'name' => 'Counter Real Power +'];
    $list_l3['003e0400'] = ['OBIS' => '4240''divisor' => 10'name' => 'Real Power -'];
    $list_l3['003e0800'] = ['OBIS' => '4280''divisor' => 3600000'name' => 'Counter Real Power -'];
    $list_l3['003f0400'] = ['OBIS' => '4340''divisor' => 10'name' => 'Reactive Power +'];
    $list_l3['003f0800'] = ['OBIS' => '4380''divisor' => 3600000'name' => 'Counter ReReactive Power +'];
    $list_l3['00400400'] = ['OBIS' => '4440''divisor' => 10'name' => 'Reactive Power -'];
    $list_l3['00400800'] = ['OBIS' => '4480''divisor' => 3600000'name' => 'Counter ReReactive Power -'];
    $list_l3['00450400'] = ['OBIS' => '4940''divisor' => 10'name' => 'Apparent Power +'];
    $list_l3['00450800'] = ['OBIS' => '4980''divisor' => 3600000'name' => 'Counter Apparent Power +'];
    $list_l3['00460400'] = ['OBIS' => '5040''divisor' => 10'name' => 'Apparent Power -'];
    $list_l3['00460800'] = ['OBIS' => '5080''divisor' => 3600000'name' => 'Counter Apparent Power -'];
    $list_l3['00470400'] = ['OBIS' => '5140''divisor' => 1'name' => 'Power'];
    $list_l3['00480400'] = ['OBIS' => '5240''divisor' => 1000'name' => 'Voltage'];
    $list_l3['00490400'] = ['OBIS' => '5340''divisor' => 1000'name' => 'Network Frequency'];

    if (
    $_IPS['SENDER'] === 'Execute'){
        
    //zum Testen
        
    $hraw '534d4100000402a000000001024c001060690174b33a68d524a6a271000104000000000000010800000000005628897000020400000075be00020800000000037a39805000030400000000000003080000000000657b04c0000404000000093d0004080000000000436dbad00009040000000000000908000000000065e92c48000a04000000761b000a08000000000388d3e3f8000d0400000003e5000e04000000c359001504000000000000150800000000000deb6e9800160400000029d8001608000000000145ab1fd00017040000000000001708000000000020aa986000180400000003c700180800000000001e3635d0001d040000000000001d08000000000017db2560001e040000002a04001e0800000000014b33af58001f0400000012710020040000037ecc00210400000003e4002904000000000000290800000000003c4ae980002a040000002524002a0800000000010e795978002b040000000000002b0800000000002cedd9c0002c04000000023f002c08000000000012d341d800310400000000000031080000000000407691a80032040000002535003208000000000115096da0003304000000109a0034040000037fbc00350400000003e6003d040000000000003d0800000000001747a358003e0400000026c3003e080000000001316a7908003f040000000000003f0800000000002142e340004004000000033700400800000000001bc49530004504000000000000450800000000001fa4e6a000460400000026e5004608000000000136d71f6800470400000011340048040000037b7200490400000003e5900000000203055200000000';
    } else {
        
    // Prepare data
        
    $hraw bin2hex(RegVar_GetBuffer($_IPS['INSTANCE']) . $_IPS['VALUE']); // im Puffer der Instanz vorhandene Daten holen und um die letzten Werte ergänzen
    }

    //Zählerkennung
    $offset 0;
    $len 4;
    //echo hexToStr(substr($hraw, $offset * 2, $len * 2)) . PHP_EOL;

    //ProtokollID
    $offset 16;
    $len 2;
    //echo (substr($hraw, $offset * 2, $len * 2)) . PHP_EOL;

    //gruppe
    $offset 8;
    $len 2;
    //echo (substr($hraw, $offset * 2, $len * 2)) . PHP_EOL;

    //zaehlerkennung
    $offset 18;
    $len 6;
    //echo (substr($hraw, $offset * 2, $len * 2)) . PHP_EOL;

    //Messzeitpunkt
    $offset 24;
    $len 4;
    //echo (substr($hraw, $offset * 2, $len * 2)) . PHP_EOL;

    $offset += $len;
    $finished false;

    while (!
    $finished){

        
    //obis Id
        
    $len 4;
        
    $id substr($hraw$offset 2$len 2);
        if (
    $id === '00000000'){
            
    $finished true;
            continue;
        }
        
    $offset += $len;


        
    //obis Messwert
        
    $len = (int) substr($id22); //die Länge entspricht der Messart (Byte 2)

        
    if (isset($list_sum[$id])){
            
    $value substr($hraw$offset 2$len 2);
            
    $res_sum[$list_sum[$id]['name']] = base_convert(substr($hraw$offset 2$len 2), 1610) / $list_sum[$id]['divisor'];
        } elseif (isset(
    $list_l1[$id])) {
            
    $value substr($hraw$offset 2$len 2);
            
    $res_l1[$list_l1[$id]['name']] = base_convert(substr($hraw$offset 2$len 2), 1610) / $list_l1[$id]['divisor'];
        } elseif (isset(
    $list_l2[$id])) {
            
    $value substr($hraw$offset 2$len 2);
            
    $res_l2[$list_l2[$id]['name']] = base_convert(substr($hraw$offset 2$len 2), 1610) / $list_l2[$id]['divisor'];
        } elseif (isset(
    $list_l3[$id])) {
            
    $value substr($hraw$offset 2$len 2);
            
    $res_l3[$list_l3[$id]['name']] = base_convert(substr($hraw$offset 2$len 2), 1610) / $list_l3[$id]['divisor'];
        } elseif(
    $id '90000000') {
            
    $len 4;
            
    $value substr($hraw$offset 2$len 2);
            
    //echo sprintf('%s Softwareversion: %s', $id, $value) . PHP_EOL;
        
    } else {
            
    trigger_error ("$id unbekannt");
            
    $finished true;
        }
        
    $offset += $len;

    }

    // zum Testen
    if ($_IPS['SENDER'] === 'Execute'){

        
    print_r($res_sum);
        
    print_r($res_l1);
        
    print_r($res_l2);
        
    print_r($res_l3);
        return;
    }

    SetChangedValueFloat(20807$res_l1['Real Power +']); //Bezug L1
    SetChangedValueFloat(35978$res_l2['Real Power +']); //Bezug L2
    SetChangedValueFloat(49204$res_l1['Real Power +']); //Bezug L3
    SetChangedValueFloat(24942$res_sum['Real Power +']); //Bezug gesamt
    SetChangedValueFloat(43989$res_sum['Counter Real Power +']); //Bezug Zähler

    SetChangedValueFloat(44961$res_l1['Real Power -']); //Einspeisung L1
    SetChangedValueFloat(58571$res_l2['Real Power -']); //Einspeisung L2
    SetChangedValueFloat(31960$res_l3['Real Power -']); //Einspeisung L3
    SetChangedValueFloat(35568$res_sum['Real Power -']); //Einspeisung gesamt
    SetChangedValueFloat(47491$res_sum['Counter Real Power -']); //Einspeisung Zähler

    SetChangedValueFloat(32048max(GetValueFloat(21200) - $res_sum['Real Power -'], 0)); //Eigenversorgung
    SetChangedValueFloat(34179max(GetValueFloat(21200) + $res_sum['Real Power +'] - $res_sum['Real Power -'], 0)); //Verbrauch

    function SetChangedValueFloat(int $idfloat $value){
        if (
    GetValueFloat($id) !== $value){
            
    SetValueFloat($id$value);
        }
    }


    function 
    hexToStr($hex){
        
    $string='';
        for (
    $i=0$i strlen($hex)-1$i+=2){
            
    $string .= chr(hexdec($hex[$i].$hex[$i+1]));
        }
        return 
    $string;
    }
    Burkhard
    HM per RaspberryMatic | EKM-868 | LGS-868 | 1 Wire | Fibaro Motion Sensor & Aeon Labs Z-Stick S2 | SONOS | Denon AVR 3312 | Vu+ Ultimo 4K | Sony KD-75XE9405 | Fritzbox 6360 | AXIS 1344-E | Echo Dot + Show | Vaillant eBUS | Intel NUC i3 | IPS V5.4 Ninja

  8. #88
    Registriert seit
    Dec 2010
    Beiträge
    317

    Kann man das Daten abholen etwas entschleunigen?

    Danke


    Gesendet von iPhone XS mit Tapatalk
    IP-Symcon 5.5, Windows x64, 22.07.2020, 154dbf25ed9b, auf Windows 7 64bit, 24/7, ASRock N3700-ITX, Homematic CCU1, 9x HM Rolladenaktor, 3x HM Leistungsmesssung, 4xHM Rauchmelder, 1x HM Keymatic, 4x HM Fensterkontakt, 1x 4fachSchaltaktor für Poolsteuerung inkl. 1x HM Leistungsmessung und Steuerung 3x Belimo SM230A, 1-Wire DS9490R mit 25x DS18B20

  9. #89
    Registriert seit
    Sep 2012
    Ort
    Stuttgart - Remshalden
    Beiträge
    270

    Zitat Zitat von richimaint Beitrag anzeigen
    Kann man das Daten abholen etwas entschleunigen?

    Danke


    Gesendet von iPhone XS mit Tapatalk
    Ja du kannst die Instanz für den Multicast immer wieder für z.B. 10sec deaktieren und dann wieder kurz aktivieren. So mach ich das, funktioniert super

    Gesendet von meinem SM-G975F mit Tapatalk

  10. #90
    Registriert seit
    Dec 2010
    Beiträge
    317

    Danke


    Gesendet von iPhone XS mit Tapatalk
    IP-Symcon 5.5, Windows x64, 22.07.2020, 154dbf25ed9b, auf Windows 7 64bit, 24/7, ASRock N3700-ITX, Homematic CCU1, 9x HM Rolladenaktor, 3x HM Leistungsmesssung, 4xHM Rauchmelder, 1x HM Keymatic, 4x HM Fensterkontakt, 1x 4fachSchaltaktor für Poolsteuerung inkl. 1x HM Leistungsmessung und Steuerung 3x Belimo SM230A, 1-Wire DS9490R mit 25x DS18B20

Ähnliche Themen

  1. SMA Webbox
    Von kronos im Forum Haustechnik
    Antworten: 117
    Letzter Beitrag: 19.09.19, 18:32
  2. Aeon Labs Home Energy Meter
    Von Marko im Forum Z-Wave
    Antworten: 4
    Letzter Beitrag: 17.01.13, 14:55
  3. Energy Magager
    Von Jimmyrakete im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 1
    Letzter Beitrag: 08.01.13, 14:00
  4. SMA Wechselrichter an Wago 841
    Von Status im Forum Haustechnik
    Antworten: 6
    Letzter Beitrag: 04.10.12, 13:53