Microwechselrichter Bosswerk MI 300 und Huayu HY-800 an Fhem anbinden

Begonnen von Decki, 18 Oktober 2021, 21:28:27

Vorheriges Thema - Nächstes Thema

Hauswart

Zitat von: Dr. Ulfi am 17 Oktober 2022, 20:09:05
Ich werde das mal testen, wenn die Sonne wieder scheint  :D
Gibt es einen Unterschied zu den readings von MogRuit.
Diese habe ich bisher verwendet.  (Vielen Dank noch mal.)
Der Unterschied ist das manchmal 0 ausgegeben wird und hier wird verhindert das total_yield-1 kleiner sein kann als der vorherige Wert.

Probiere mal:
var cover_sta_rssi = "([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*))(?:[eE]([+-]?\d+))?%"
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

FFHEM

Hallo Hauswart,

da ich ebenfalls soeben meinen kleinen Sofar-WR mit Deinen Angaben einrichten konnte -> vielen Dank!
Und der RSSI-Wert, bei dem ich wie Dr. Ulfi ein Problem hatte, funktioniert ebenfalls.
Das Reading hat allerdings plötzlich den Namen "rssi-1" bekommen hat, statt "rssi".
Das hat bestimmt einen besonderen Grund, ist aber nicht schlimm.
Danke nochmals!
Gruß,
Friedhelm
Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

FFHEM

Da mein WR von SOFAR wohl den gleichen internen Webserver wie Bosswerk MI 300 usw. haben, eine Frage an deren Besitzer:

Mir ist ein Fehler bei der Ausgabe der täglichen Energie aufgefallen. Kurz: die Chinesen vergessen manchmal die 1. Null hinter dem Komma bei den Nachkommastellen.
Das macht sich in einer zackigen Energiekurve bemerkbar, dadurch ist es mir überhaupt aufgefallen.
Die Werte werden auf dem Webserver täglich in der folgenden Reihenfolge übertragen:
Alle Angaben in kWh, Schrittweite ist 0,01 kWh

0.1         tatsächlich aber sind es 0.01
0.2         tatsächlich aber sind es 0.02
0.3...0.9 tatsächlich aber sind es 0.03..0.09

0.10       dieser Wert stimmt
0.11       dieser ebenfalls, bis wieder die nächste ganze Kilowattstunde begonnen wird.

Und dann geht das Spiel wieder los:
1.1         tatsächlich aber sind es 1.01
1.2         tatsächlich aber sind es 1.02

Könnt Ihr Ähnliches bei Euren WR beobachten? Habe bei SOFAR schon um ein Firmwareupdate gebeten, aber es ist nicht ersichtlich, ob es bereits eins gibt, etc. pp.
Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

Hauswart

Zitat von: FFHEM am 12 November 2022, 15:03:53
Hallo Hauswart,

da ich ebenfalls soeben meinen kleinen Sofar-WR mit Deinen Angaben einrichten konnte -> vielen Dank!
Und der RSSI-Wert, bei dem ich wie Dr. Ulfi ein Problem hatte, funktioniert ebenfalls.
Das Reading hat allerdings plötzlich den Namen "rssi-1" bekommen hat, statt "rssi".
Das hat bestimmt einen besonderen Grund, ist aber nicht schlimm.
Danke nochmals!
Gruß,
Friedhelm

Probiere mal:
(?^:var cover_sta_rssi = "([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*))(?:[eE]([+-]?\d+))?%";)



1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

FFHEM

Hallo Hauswart,
Dein Regex liefert leider auch rssi-1. Das stört mich aber weniger, das brauchen wir nicht weiter zu verfolgen, dennoch vielen Dank!
Vielmehr stört mich die falsche Energieangabe meines WR:
Bei jeder ganzzahligen kWh-Angabe werden die Nachkommstellen falsch angegeben, kommt so vom WR.

Beispiel:
yield_today: 0.96  richtig
yield_today: 0.97  richtig
yield_today: 0.99  richtig

Dann Wechsel zu 1 Nachkommastelle:
yield_today: 1.0   falsch, richtig: 1.00
yield_today: 1.2   falsch, richtig: 1.02
yield_today: 1.3   falsch, richtig: 1.03
yield_today: 1.5   falsch, richtig: 1.05
yield_today: 1.6   falsch, richtig: 1.06
yield_today: 1.8   falsch, richtig: 1.08
yield_today: 1.9   falsch, richtig: 1.09

yield_today: 1.11  richtig 
yield_today: 1.12  richtig
yield_today: 1.13  richtig


Kurz: die Nachkommawerte sind als 10-Wh-Werte zu berechnen, egal was hinter dem Komma kommt!  (0.1 bedeutet demnach:  1 x 10 Wh),  0.10 bedeutet 10 x 10 Wh).

Meine Überlegung ist jetzt, mache ich das eher mit einem Userreading, oder lässt sich das noch in das Regex einbringen?
Ich tendiere zu einem Userreading, da sonst das Regex noch unübersichtlicher wird!?

Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

Hauswart

#50
Zitat von: FFHEM am 16 November 2022, 10:12:07
Hallo Hauswart,
Dein Regex liefert leider auch rssi-1. Das stört mich aber weniger, das brauchen wir nicht weiter zu verfolgen, dennoch vielen Dank!
Vielmehr stört mich die falsche Energieangabe meines WR:
Bei jeder ganzzahligen kWh-Angabe werden die Nachkommstellen falsch angegeben, kommt so vom WR.

Beispiel:
yield_today: 0.96  richtig
yield_today: 0.97  richtig
yield_today: 0.99  richtig

Dann Wechsel zu 1 Nachkommastelle:
yield_today: 1.0   falsch, richtig: 1.00
yield_today: 1.2   falsch, richtig: 1.02
yield_today: 1.3   falsch, richtig: 1.03
yield_today: 1.5   falsch, richtig: 1.05
yield_today: 1.6   falsch, richtig: 1.06
yield_today: 1.8   falsch, richtig: 1.08
yield_today: 1.9   falsch, richtig: 1.09

yield_today: 1.11  richtig 
yield_today: 1.12  richtig
yield_today: 1.13  richtig


Kurz: die Nachkommawerte sind als 10-Wh-Werte zu berechnen, egal was hinter dem Komma kommt!  (0.1 bedeutet demnach:  1 x 10 Wh),  0.10 bedeutet 10 x 10 Wh).

Meine Überlegung ist jetzt, mache ich das eher mit einem Userreading, oder lässt sich das noch in das Regex einbringen?
Ich tendiere zu einem Userreading, da sonst das Regex noch unübersichtlicher wird!?



Ist mir bisher noch nicht aufgefallen, muss ich bei mir mal prüfen. Tendiere aber spontan zum Regex korrigieren.


Edit: Bei mir liefert derzeit z.B.
var webdata_today_e = "0.80"; var webdata_total_e = "123.4";
Gibt deiner wirklich 2-stellige Kommazahlen zurück? Kannst du mir mal den Quelltext der Statusseite schicken?
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

FFHEM

Deine 0.80 kWh werden stimmen, falsch ist es immer, wenn er 0.8 zeigt, das sind 0.08 kWh tatsächlich.
Die nächste Beobachtung kannst Du beim Überschreiten von 1.0 bzw. 2.0 usw. beobachten - oder auch nicht, wenn ein WR in Ordnung ist.
Die Gesamt-kWh werden bei mir aufgrunddessen viel zu hoch, zumal bei mir im WR noch anscheinend eine Rundungsfunktion auf ganze kWh enthalten ist.
Dadurch habe ich total angeblich 35 kWh, tatsächlich sind es aber nur 23 kWh.

Für die Regexänderung müsste man "nur" bei der Nachkommastelle eine "0" voranstellen, falls diese 1-stellig ist.

Meine Statusseite:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
.in_body
{
margin-top:0px;
margin-left:0px;
margin-right:0px;
margin-bottom:0px;
background-color:transparent;
}
.div_c
{
margin-left:50px;
margin-right:50px;
margin-top:50px;
margin-bottom:50px;
}
.cu
{
cursor:pointer;
}
.b
{
font-weight:bold;
}
.lab_5
{
font-size:16px;
color:#666666;
margin-left:-20px;
}
.lab_l2
{
float:left;
width:32%;
color:#666666;
margin-bottom:-2px;
font-size:14px;
}
.lab_r2
{
float:left;
width:68%;
color:#666666;
text-align:right;
font-size:14px;
}
.cl
{
clear:left;
}
.line
{
height:1px;
background-color:#666666;
width:100%;
margin-top:5px;
margin-bottom:5px;
}
.sp_5
{
height:5px;
width:500px;
}
.sp_20
{
height:20px;
width:500px;
}
.label
{
float:left;
width:50%;
color:#666666;
margin-bottom:-2px;
font-size:14px;
}
.lab_r
{
float:left;
width:50%;
color:#666666;
text-align:right;
font-size:14px;
}
.lab_l
{
float:left;
width:40%;
color:#666666;
margin-bottom:-2px;
margin-left:10%;
font-size:14px;
}
.line_l
{
height:1px;
background-color:#666666;
width:450px;
margin-top:5px;
margin-bottom:5px;
margin-left:50px;
}
.sub
{
    display:inline-block;
    width:16px;
    text-align:center;
}
</style>
<script type="text/javascript">
var height=0;function fileText(id,value){if(document.getElementById(id)){document.getElementById(id).innerHTML=value}}function changeFont(){reCon("main_div").style.fontFamily=window.parent.reFont()}function child_getH(){var nh=document.body.offsetHeight+100;if(nh<500||nh==null){nh=500}if(height!=nh){height=nh;window.parent.child_height(height)}}function reCon(id){return document.getElementById(id)}function ready(){try{window.parent.show_ifr()}catch(e){}child_getH()}function show(v){var c=document.getElementById(v);if(c!=null){c.style.display=""}}function hide(v){var c=document.getElementById(v);if(c!=null){c.style.display="none"}};
</script>
<script type="text/javascript">
var webdata_sn = "xxxx  ";
var webdata_msvn = "V330";
var webdata_ssvn = "";
var webdata_pv_type = "SA3ES211";
var webdata_rate_p = "1 00";
var webdata_now_p = "750";
var webdata_today_e = "0.19";
var webdata_total_e = "35.0";
var webdata_alarm = "";
var webdata_utime = "0";
var cover_mid = "xxx";
var cover_ver = "LSW3_15_FFFF_1.0.65";
var cover_wmode = "APSTA";
var cover_ap_ssid = "xxx";
var cover_ap_ip = "10.10.100.254";
var cover_ap_mac = "2C:9C:6E:6B:13:7E";
var cover_sta_ssid = "HAL 9000";
var cover_sta_rssi = "45%";
var cover_sta_ip = "192.168.178.30";
var cover_sta_mac = "xxxx";
var status_a = "1";
var status_b = "0";
var status_c = "0";

function initPageText(){var list=window.parent.reList("status");fileText("st1",list["t1"]);fileText("st2",list["t2"]);fileText("st3",list["t3"]);for(var i=1;i<=27;i++){if(i!=14){fileText("tx"+i,list[i])}}changeFont();child_getH()}function upfold(v){if(document.getElementById("up_"+v+"_div").style.display=="none"){show("up_"+v+"_div");reCon("p_"+v).innerHTML="-"}else{hide("up_"+v+"_div");reCon("p_"+v).innerHTML="+"}}function init_main_page(){var on=window.parent.reTip("1");var off=window.parent.reTip("2");document.getElementById("cover_mid").innerHTML=cover_mid;document.getElementById("cover_ver").innerHTML=cover_ver;document.getElementById("cover_ap_status").innerHTML=off;document.getElementById("cover_sta_status").innerHTML=off;if(cover_wmode!="STA"){document.getElementById("cover_ap_status").innerHTML=on;document.getElementById("cover_ap_ssid").innerHTML=cover_ap_ssid;document.getElementById("cover_ap_ip").innerHTML=cover_ap_ip;document.getElementById("cover_ap_mac").innerHTML=cover_ap_mac}if(cover_wmode!="AP"){document.getElementById("cover_sta_status").innerHTML=on;document.getElementById("cover_sta_ssid").innerHTML=cover_sta_ssid;document.getElementById("cover_sta_rssi").innerHTML=cover_sta_rssi;document.getElementById("cover_sta_ip").innerHTML=cover_sta_ip;document.getElementById("cover_sta_mac").innerHTML=cover_sta_mac}if(webdata_sn==""){webdata_sn="---"}fileText("webdata_sn",webdata_sn);if(webdata_msvn==""){webdata_msvn="---"}fileText("webdata_msvn",webdata_msvn);if(webdata_ssvn==""){webdata_ssvn="---"}fileText("webdata_ssvn",webdata_ssvn);if(webdata_pv_type==""){webdata_pv_type="---"}fileText("webdata_pv_type",webdata_pv_type);if(webdata_rate_p==""){webdata_rate_p="---"}fileText("webdata_rate_p",webdata_rate_p+" W");if(webdata_now_p==""||webdata_now_p==0){webdata_now_p="---"}fileText("webdata_now_p",webdata_now_p+" W");if(webdata_today_e==""){webdata_today_e="---"}fileText("webdata_today_e",webdata_today_e+" kWh");if(webdata_total_e==""){webdata_total_e="---"}fileText("webdata_total_e",webdata_total_e+" kWh");if(webdata_alarm==""){webdata_alarm="---"}fileText("webdata_alarm",webdata_alarm);if(webdata_utime==""){if(document.getElementById("webdata_sn").innerHTML=="---"){webdata_utime="---"}else{webdata_utime=value+window.parent.reTip("5")}}fileText("webdata_utime",webdata_utime);var st_en=window.parent.reTip("3");var st_dis=window.parent.reTip("4");var st_un=window.parent.reTip("41");if(status_a=="1"){document.getElementById("cover_remote_status_a").innerHTML=st_en}else{if(status_a=="0"){document.getElementById("cover_remote_status_a").innerHTML=st_dis}else{document.getElementById("cover_remote_status_a").innerHTML=st_un}}if(status_b=="1"){document.getElementById("cover_remote_status_b").innerHTML=st_en}else{if(status_b=="0"){document.getElementById("cover_remote_status_b").innerHTML=st_dis}else{document.getElementById("cover_remote_status_b").innerHTML=st_un}}};

</script>
</head>
<body class="in_body" onload="init_main_page();">
<div class="div_c" id="main_div">
        <div class="lab_5 cu b" onclick="upfold(1);child_getH();"><span class="sub" id="p_1">-</span><span id="st1" style="margin-left:3px"></span></div>
        <div class="sp_5"></div>
        <div id="up_1_div">
        <div class="lab_l2" id="tx1"></div>
                <div class="lab_r2" id="webdata_sn"></div>
        <div class="cl"></div>
        <div class="line"></div>
        <div class="lab_l2" id="tx2"></div>
                <div class="lab_r2" id="webdata_msvn"></div>
        <div class="cl"></div>
        <div class="line"></div>
        <div class="lab_l2" id="tx3"></div>
                <div class="lab_r2" id="webdata_ssvn"></div>
        <div class="cl"></div>
        <div class="line"></div>
        <div class="lab_l2" id="tx4"></div>
                <div class="lab_r2" id="webdata_pv_type"></div>
        <div class="cl"></div>
        <div class="line"></div>
        <div class="lab_l2" id="tx5"></div>
                <div class="lab_r2" id="webdata_rate_p"></div>
        <div class="cl"></div>
        <div class="line"></div>
        <div class="lab_l2" style="color:#666666;font-weight:bold;" id="tx6"></div>
                <div class="lab_r2" id="webdata_now_p" style="color:#666666;font-weight:bold;"></div>
        <div class="cl"></div>
        <div class="line"></div>
        <div class="lab_l2" style="color:#666666;font-weight:bold;" id="tx7"></div>
                <div class="lab_r2" id="webdata_today_e" style="color:#666666;font-weight:bold;"></div>
        <div class="cl"></div>
        <div class="line"></div>
        <div class="lab_l2" style="color:#666666;font-weight:bold;" id="tx8"></div>
                <div class="lab_r2" id="webdata_total_e" style="color:#666666;font-weight:bold;"></div>
        <div class="cl"></div>
        <div class="line"></div>
        <div class="lab_l2" style="color:#666666;font-weight:bold;" id="tx9"></div>
                <div class="lab_r2" id="webdata_alarm" style="color:#666666;font-weight:bold;"></div>
        <div class="cl"></div>
        <div class="line"></div>
        <div class="lab_l2" style="color:#666666;font-weight:bold;" id="tx10"></div>
                <div class="lab_r2" id="webdata_utime" style="color:#666666;font-weight:bold;"></div>
        <div class="cl"></div>
        <div class="line"></div>
        </div>
        <div class="sp_20"></div>
        <div class="lab_5 cu b" onclick="upfold(2);child_getH();"><span class="sub" id="p_2">+</span><span id="st2" style="margin-left:3px"></span></div>
                <div class="sp_5"></div>
                <div id="up_2_div" style="display:none">
                <div class="label" id="tx11"></div>
                <div class="lab_r" id="cover_mid"></div>
                <div class="cl"></div>
                <div class="line"></div>
                <div class="label" id="tx12"></div>
                <div class="lab_r" id="cover_ver"></div>
                <div class="cl"></div>
                <div class="line"></div>
                <div class="label" id="tx13"></div>
                <div class="lab_r" id="cover_ap_status" style="color:#666666;font-weight:bold;"></div>
                <div class="cl"></div>
                <div class="line"></div>
                <div class="lab_l" id="ap_ssid">SSID</div>
                <div class="lab_r" id="cover_ap_ssid"></div>
                <div class="cl"></div>
                <div class="line_l"></div>
                <div class="lab_l" id="tx15"></div>
                <div class="lab_r" id="cover_ap_ip"></div>
                <div class="cl"></div>
                <div class="line_l"></div>
                <div class="lab_l" id="tx16"></div>
                <div class="lab_r" id="cover_ap_mac"></div>
                <div class="cl"></div>
                <div class="line_l"></div>
                <div class="label" id="tx17"></div>
                <div class="lab_r" id="cover_sta_status" style="color:#666666;font-weight:bold;"></div>
                <div class="cl"></div>
                <div class="line"></div>
                <div class="lab_l" id="tx18"></div>
                <div class="lab_r" id="cover_sta_ssid"></div>
                <div class="cl"></div>
                <div class="line_l"></div>
                <div class="lab_l" id="tx19"></div>
                <div class="lab_r" id="cover_sta_rssi"></div>
                <div class="cl"></div>
                <div class="line_l"></div>
                <div class="lab_l" id="tx20"></div>
                <div class="lab_r" id="cover_sta_ip"></div>
                <div class="cl"></div>
                <div class="line_l"></div>
                <div class="lab_l" id="tx21"></div>
                <div class="lab_r" id="cover_sta_mac"></div>
                <div class="cl"></div>
                <div class="line_l"></div>
                </div>
               
                <div class="sp_20"></div>
                <div class="lab_5 cu b" onclick="upfold(3);child_getH();"><span class="sub" id="p_3">+</span><span id="st3" style="margin-left:3px"></span></div>
                <div class="sp_5"></div>
                <div id="up_3_div" style="display:none">
                <div class="label" id="tx25"></div>
                <div class="lab_r" id="cover_remote_status_a"></div>
                <div class="cl"></div>
                <div class="line"></div>
                <div class="label" id="tx26"></div>
                <div class="lab_r" id="cover_remote_status_b"></div>
                <div class="cl"></div>
                <div class="line"></div>
                </div>
    </div>
<script type="text/javascript">
    initPageText();
    ready();
</script>
</body>
</html>
Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

Hauswart

#52
Zitat von: FFHEM am 16 November 2022, 11:00:49
Deine 0.80 kWh werden stimmen, falsch ist es immer, wenn er 0.8 zeigt, das sind 0.08 kWh tatsächlich.
Die nächste Beobachtung kannst Du beim Überschreiten von 1.0 bzw. 2.0 usw. beobachten - oder auch nicht, wenn ein WR in Ordnung ist.
Die Gesamt-kWh werden bei mir aufgrunddessen viel zu hoch, zumal bei mir im WR noch anscheinend eine Rundungsfunktion auf ganze kWh enthalten ist.
Dadurch habe ich total angeblich 35 kWh, tatsächlich sind es aber nur 23 kWh.

Für die Regexänderung müsste man "nur" bei der Nachkommastelle eine "0" voranstellen, falls diese 1-stellig ist.

Meine Statusseite:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
.in_body
{
   margin-top:0px;
   margin-left:0px;
   margin-right:0px;
   margin-bottom:0px;
   background-color:transparent;
}
.div_c
{
   margin-left:50px;
   margin-right:50px;
   margin-top:50px;
   margin-bottom:50px;
}
.cu
{
   cursor:pointer;
}
.b
{
   font-weight:bold;
}
.lab_5
{
   font-size:16px;
   color:#666666;
   margin-left:-20px;
}
.lab_l2
{
   float:left;
   width:32%;
   color:#666666;
   margin-bottom:-2px;
   font-size:14px;
}
.lab_r2
{
   float:left;
   width:68%;
   color:#666666;
   text-align:right;
   font-size:14px;
}
.cl
{
   clear:left;
}
.line
{
   height:1px;
   background-color:#666666;
   width:100%;
   margin-top:5px;
   margin-bottom:5px;
}
.sp_5
{
   height:5px;
   width:500px;
}
.sp_20
{
   height:20px;
   width:500px;
}
.label
{
   float:left;
   width:50%;
   color:#666666;
   margin-bottom:-2px;
   font-size:14px;
}
.lab_r
{
   float:left;
   width:50%;
   color:#666666;
   text-align:right;
   font-size:14px;
}
.lab_l
{
   float:left;
   width:40%;
   color:#666666;
   margin-bottom:-2px;
   margin-left:10%;
   font-size:14px;
}
.line_l
{
   height:1px;
   background-color:#666666;
   width:450px;
   margin-top:5px;
   margin-bottom:5px;
   margin-left:50px;
}
.sub
{
    display:inline-block;
    width:16px;
    text-align:center;
}
</style>
<script type="text/javascript">
var height=0;function fileText(id,value){if(document.getElementById(id)){document.getElementById(id).innerHTML=value}}function changeFont(){reCon("main_div").style.fontFamily=window.parent.reFont()}function child_getH(){var nh=document.body.offsetHeight+100;if(nh<500||nh==null){nh=500}if(height!=nh){height=nh;window.parent.child_height(height)}}function reCon(id){return document.getElementById(id)}function ready(){try{window.parent.show_ifr()}catch(e){}child_getH()}function show(v){var c=document.getElementById(v);if(c!=null){c.style.display=""}}function hide(v){var c=document.getElementById(v);if(c!=null){c.style.display="none"}};
</script>
<script type="text/javascript">
var webdata_sn = "xxxx  ";
var webdata_msvn = "V330";
var webdata_ssvn = "";
var webdata_pv_type = "SA3ES211";
var webdata_rate_p = "1 00";
var webdata_now_p = "750";
var webdata_today_e = "0.19";
var webdata_total_e = "35.0";
var webdata_alarm = "";
var webdata_utime = "0";
var cover_mid = "xxx";
var cover_ver = "LSW3_15_FFFF_1.0.65";
var cover_wmode = "APSTA";
var cover_ap_ssid = "xxx";
var cover_ap_ip = "10.10.100.254";
var cover_ap_mac = "2C:9C:6E:6B:13:7E";
var cover_sta_ssid = "HAL 9000";
var cover_sta_rssi = "45%";
var cover_sta_ip = "192.168.178.30";
var cover_sta_mac = "xxxx";
var status_a = "1";
var status_b = "0";
var status_c = "0";

function initPageText(){var list=window.parent.reList("status");fileText("st1",list["t1"]);fileText("st2",list["t2"]);fileText("st3",list["t3"]);for(var i=1;i<=27;i++){if(i!=14){fileText("tx"+i,list[i])}}changeFont();child_getH()}function upfold(v){if(document.getElementById("up_"+v+"_div").style.display=="none"){show("up_"+v+"_div");reCon("p_"+v).innerHTML="-"}else{hide("up_"+v+"_div");reCon("p_"+v).innerHTML="+"}}function init_main_page(){var on=window.parent.reTip("1");var off=window.parent.reTip("2");document.getElementById("cover_mid").innerHTML=cover_mid;document.getElementById("cover_ver").innerHTML=cover_ver;document.getElementById("cover_ap_status").innerHTML=off;document.getElementById("cover_sta_status").innerHTML=off;if(cover_wmode!="STA"){document.getElementById("cover_ap_status").innerHTML=on;document.getElementById("cover_ap_ssid").innerHTML=cover_ap_ssid;document.getElementById("cover_ap_ip").innerHTML=cover_ap_ip;document.getElementById("cover_ap_mac").innerHTML=cover_ap_mac}if(cover_wmode!="AP"){document.getElementById("cover_sta_status").innerHTML=on;document.getElementById("cover_sta_ssid").innerHTML=cover_sta_ssid;document.getElementById("cover_sta_rssi").innerHTML=cover_sta_rssi;document.getElementById("cover_sta_ip").innerHTML=cover_sta_ip;document.getElementById("cover_sta_mac").innerHTML=cover_sta_mac}if(webdata_sn==""){webdata_sn="---"}fileText("webdata_sn",webdata_sn);if(webdata_msvn==""){webdata_msvn="---"}fileText("webdata_msvn",webdata_msvn);if(webdata_ssvn==""){webdata_ssvn="---"}fileText("webdata_ssvn",webdata_ssvn);if(webdata_pv_type==""){webdata_pv_type="---"}fileText("webdata_pv_type",webdata_pv_type);if(webdata_rate_p==""){webdata_rate_p="---"}fileText("webdata_rate_p",webdata_rate_p+" W");if(webdata_now_p==""||webdata_now_p==0){webdata_now_p="---"}fileText("webdata_now_p",webdata_now_p+" W");if(webdata_today_e==""){webdata_today_e="---"}fileText("webdata_today_e",webdata_today_e+" kWh");if(webdata_total_e==""){webdata_total_e="---"}fileText("webdata_total_e",webdata_total_e+" kWh");if(webdata_alarm==""){webdata_alarm="---"}fileText("webdata_alarm",webdata_alarm);if(webdata_utime==""){if(document.getElementById("webdata_sn").innerHTML=="---"){webdata_utime="---"}else{webdata_utime=value+window.parent.reTip("5")}}fileText("webdata_utime",webdata_utime);var st_en=window.parent.reTip("3");var st_dis=window.parent.reTip("4");var st_un=window.parent.reTip("41");if(status_a=="1"){document.getElementById("cover_remote_status_a").innerHTML=st_en}else{if(status_a=="0"){document.getElementById("cover_remote_status_a").innerHTML=st_dis}else{document.getElementById("cover_remote_status_a").innerHTML=st_un}}if(status_b=="1"){document.getElementById("cover_remote_status_b").innerHTML=st_en}else{if(status_b=="0"){document.getElementById("cover_remote_status_b").innerHTML=st_dis}else{document.getElementById("cover_remote_status_b").innerHTML=st_un}}};

</script>
</head>
<body class="in_body" onload="init_main_page();">
   <div class="div_c" id="main_div">
        <div class="lab_5 cu b" onclick="upfold(1);child_getH();"><span class="sub" id="p_1">-</span><span id="st1" style="margin-left:3px"></span><>
        <div class="sp_5"><>
        <div id="up_1_div">
        <div class="lab_l2" id="tx1"><>
                <div class="lab_r2" id="webdata_sn"><>
        <div class="cl"><>
        <div class="line"><>
        <div class="lab_l2" id="tx2"><>
                <div class="lab_r2" id="webdata_msvn"><>
        <div class="cl"><>
        <div class="line"><>
        <div class="lab_l2" id="tx3"><>
                <div class="lab_r2" id="webdata_ssvn"><>
        <div class="cl"><>
        <div class="line"><>
        <div class="lab_l2" id="tx4"><>
                <div class="lab_r2" id="webdata_pv_type"><>
        <div class="cl"><>
        <div class="line"><>
        <div class="lab_l2" id="tx5"><>
                <div class="lab_r2" id="webdata_rate_p"><>
        <div class="cl"><>
        <div class="line"><>
        <div class="lab_l2" style="color:#666666;font-weight:bold;" id="tx6"><>
                <div class="lab_r2" id="webdata_now_p" style="color:#666666;font-weight:bold;"><>
        <div class="cl"><>
        <div class="line"><>
        <div class="lab_l2" style="color:#666666;font-weight:bold;" id="tx7"><>
                <div class="lab_r2" id="webdata_today_e" style="color:#666666;font-weight:bold;"><>
        <div class="cl"><>
        <div class="line"><>
        <div class="lab_l2" style="color:#666666;font-weight:bold;" id="tx8"><>
                <div class="lab_r2" id="webdata_total_e" style="color:#666666;font-weight:bold;"><>
        <div class="cl"><>
        <div class="line"><>
        <div class="lab_l2" style="color:#666666;font-weight:bold;" id="tx9"><>
                <div class="lab_r2" id="webdata_alarm" style="color:#666666;font-weight:bold;"><>
        <div class="cl"><>
        <div class="line"><>
        <div class="lab_l2" style="color:#666666;font-weight:bold;" id="tx10"><>
                <div class="lab_r2" id="webdata_utime" style="color:#666666;font-weight:bold;"><>
        <div class="cl"><>
        <div class="line"><>
        <>
        <div class="sp_20"><>
        <div class="lab_5 cu b" onclick="upfold(2);child_getH();"><span class="sub" id="p_2">+</span><span id="st2" style="margin-left:3px"></span><>
                <div class="sp_5"><>
                <div id="up_2_div" style="display:none">
                <div class="label" id="tx11"><>
                <div class="lab_r" id="cover_mid"><>
                <div class="cl"><>
                <div class="line"><>
                <div class="label" id="tx12"><>
                <div class="lab_r" id="cover_ver"><>
                <div class="cl"><>
                <div class="line"><>
                <div class="label" id="tx13"><>
                <div class="lab_r" id="cover_ap_status" style="color:#666666;font-weight:bold;"><>
                <div class="cl"><>
                <div class="line"><>
                <div class="lab_l" id="ap_ssid">SSID<>
                <div class="lab_r" id="cover_ap_ssid"><>
                <div class="cl"><>
                <div class="line_l"><>
                <div class="lab_l" id="tx15"><>
                <div class="lab_r" id="cover_ap_ip"><>
                <div class="cl"><>
                <div class="line_l"><>
                <div class="lab_l" id="tx16"><>
                <div class="lab_r" id="cover_ap_mac"><>
                <div class="cl"><>
                <div class="line_l"><>
                <div class="label" id="tx17"><>
                <div class="lab_r" id="cover_sta_status" style="color:#666666;font-weight:bold;"><>
                <div class="cl"><>
                <div class="line"><>
                <div class="lab_l" id="tx18"><>
                <div class="lab_r" id="cover_sta_ssid"><>
                <div class="cl"><>
                <div class="line_l"><>
                <div class="lab_l" id="tx19"><>
                <div class="lab_r" id="cover_sta_rssi"><>
                <div class="cl"><>
                <div class="line_l"><>
                <div class="lab_l" id="tx20"><>
                <div class="lab_r" id="cover_sta_ip"><>
                <div class="cl"><>
                <div class="line_l"><>
                <div class="lab_l" id="tx21"><>
                <div class="lab_r" id="cover_sta_mac"><>
                <div class="cl"><>
                <div class="line_l"><>
                <>
               
                <div class="sp_20"><>
                <div class="lab_5 cu b" onclick="upfold(3);child_getH();"><span class="sub" id="p_3">+</span><span id="st3" style="margin-left:3px"></span><>
                <div class="sp_5"><>
                <div id="up_3_div" style="display:none">
                <div class="label" id="tx25"><>
                <div class="lab_r" id="cover_remote_status_a"><>
                <div class="cl"><>
                <div class="line"><>
                <div class="label" id="tx26"><>
                <div class="lab_r" id="cover_remote_status_b"><>
                <div class="cl"><>
                <div class="line"><>
                <>
    <>
   <script type="text/javascript">
       initPageText();
       ready();
   </script>
</body>
</html>


Danke dir. Was hast du genau für einen WR? Deiner zeigt leicht andere Daten an, daher muss ich das Regex prüfen/korrigieren. Meiner zeigt immer nur .10er Schritte an.


Kannst du mir den Auszug nochmal schicken, wenn er die falschen Werte anzeigt? Beim Quelltext oben sollte es korrekt sein?

Gruss
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

FFHEM

Danke Dir!
Ja, der Quelltext gilt für einen richtigen Wert.
Morgen vormittag kann ich Dir dann einen falschen Wert liefern.
Der WR ist ein SOFARSOLAR 1100TL-G3 Wechselrichter.
Meiner zeigt minimal 0,01 kWh (also 10 Wh) an. Wie schon gesagt, die werden dann als "0.1" ausgegeben, da die 1. Null hinterm Komma "vergessen" wird.

Im Bild sieht man übrigens die Rechenfehler als spitze Ausreißer nach oben:
Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

FFHEM

So, die Sonne ist aufgegangen, die erste Messung zeigt "0.1" statt "0.01":
var webdata_msvn = "V330";
var webdata_ssvn = "";
var webdata_pv_type = "SA3ES211";
var webdata_rate_p = "1 00";
var webdata_now_p = "10";
var webdata_today_e = "0.1";
var webdata_total_e = "49.0";
var webdata_alarm = "";
var webdata_utime = "1";
Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

Hauswart

Probiere bitte mal:

attr Solar2 reading02OExpr my $regex  = qr/(\d*)[.](\d{2})/mp;;\
my $regex2 = qr/(\d*)[.](\d{1})/mp;;\
\
if ($val =~ /$regex/g) {\
    $val = $val;;\
} elsif ($val =~ /$regex2/g) {\
    $val = "$1.0$2";;\
} else {\
    $val = $val;;\
}
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

FFHEM

Hallo Hauswart,
das funktioniert wunderbar!!!! VIELEN DANK!

Da wäre ich nicht drauf gekommen, da waren ein paar Hürden (Regex-Übergang in Perlvariable, "OExpr") zuviel für mich.
Konntest Du bei Deinem WR schon sehen, ob er ähnliche Probleme bereitet?

Gruß,
Friedhelm
Raspberry Pi 4B, Homematic, Sonoff, Shelly, Worx, Arduino, ESP8266

Hauswart

Zitat von: FFHEM am 18 November 2022, 11:40:36
Hallo Hauswart,
das funktioniert wunderbar!!!! VIELEN DANK!

Da wäre ich nicht drauf gekommen, da waren ein paar Hürden (Regex-Übergang in Perlvariable, "OExpr") zuviel für mich.
Konntest Du bei Deinem WR schon sehen, ob er ähnliche Probleme bereitet?

Gruß,
Friedhelm


Gerne :) Wobei Perl eigentlich auch nicht meine Programmiersprache ist. Mein mein WR zeigt nur 10er Schritte an. 1.10, 1.20, ...
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

Hauswart

define Solar2 HTTPMOD http://[USER]:[PASS]@[IP]/status.html 60
attr Solar2 icon sani_solar
attr Solar2 reading01Name current_power-1
attr Solar2 reading01Regex (?^:var webdata_now_p = "([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*))";
attr Solar2 reading02Name yield_today-1
attr Solar2 reading02OExpr my $regex  = qr/(\d*)[.](\d{2})/mp;;\
my $regex2 = qr/(\d*)[.](\d{1})/mp;;\
\
if ($val =~ /$regex/g) {\
    $val = $val;;\
} elsif ($val =~ /$regex2/g) {\
    $val = "$1.0$2";;\
} else {\
    $val = $val;;\
}
attr Solar2 reading02Regex (?^:var webdata_today_e = "([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*))";
attr Solar2 reading03IgnoreExpr $val < $oldVal
attr Solar2 reading03Name total_yield-1
attr Solar2 reading03Regex (?^:var webdata_total_e = "([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*))";
attr Solar2 stateFormat Aktuelle Leistung: current_power-1 W;;\
Tagesertrag: yield_today-1 kWh;;\
Gesamtertrag: total_yield-1 kWh
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

cotecmania

Hallo,

bei mir steht aktuell auch ein DEYE SUN600 aufm Tisch mit Netzteil betrieben.
Solarman habe ich nicht installiert.
Er verbindet sich mit meiner Fritzbox und hat nun eine statische IP in meinem Netzwerk.
Firmware ist 1.53.

Jetzt möchte ich die Daten in FHEM bringen.
Wenn ich die Status-Seite im Browser aufrufe bekomme ich aber keine Daten (siehe Anhang)

Gruss
Joe

FHEM auf RaspberryPI B (buster)
2xCUL868 für MAX/Slow_RF, HM-LAN, JeeLink
MAX!/HM-Thermostate, FS20/HM-Rolladenschalter, FS20-EM, LevelJet-Ölstandsmessung, PCA301, IT, KM271, IPCAM, FireTAB10 FTUI