IPswitch-SG

Ok so habe ich es auch - archivieren tue ich auch mit dem Typ Zähler bei allen (Zähler und aktueller Verbrauch)…

Als Profil habe ich bei dem Stromzähler diesen hier verwendet:

Bei dem Verbrauch habe ich dieses Profil:

Ich hoffe das passt so… ??? Oder was meinsat du?

Sieht doch gut aus, ja!

Hallo
ich brauchte mal Hilfe
Ich habe einen IPSwitch-Add-Ausgänge
Die Relays schalte ich mit

file_get_contents("http://192.168.6.201/?Password=&oC1=1");

Jetzt habe ich diese Fehlermeldung

Warning:  file_get_contents(http://192.168.6.201/?Password=&oC1=0): failed to open stream: HTTP request failed! 

Das Script hängt dann auch in der PHP Ansicht, nach einem Timeout verschwindet es dann irgendwann.

Komischerweise zickt ein anderes Scriptdas aus diesem zeitverzögert aufgerufen wird nicht rum, dort ist der Befehl

file_get_contents("http://192.168.6.201/?Password=&oC3=1"); //C1 AN 

für einen anderen Ausgang auch drin.

Bernd

Ich nochmal
Das einzigste was mir auffällt ist Die Fehlermeldung konvertiert &oC1 zu &oC1 ,
Habe ich ein charset Problem?
Der Raspi läuft auf DE_DE UTF 08

Keiner eine Idee?

Hallo Bernd,

ich habe diese Zeile auch gerade in meinem Logfile entdeckt, da mein IPS sich aktuell sehr häufig verabschiedet mit „zu viele Skripte gleichzeitig“.

Das scheint sich irgendwann hochzuschaukeln:

09.05.2020 22:52:18 | 57971 | DEBUG   | ScriptEngine         | Skriptausführung - Ereignis: 30734 ~ Absender: TimerEvent ~ Dauer: 120093 ms
09.05.2020 22:52:18 | 57971 | WARNING | ScriptEngine         | Result for Event 30734
<br />
<b>Warning</b>:  file_get_contents(http://192.168.178.20/csv.html): failed to open stream: HTTP request failed!  in <b>/var/lib/symcon/scripts/57971.ips.php</b> on line <b>3</b><br />
<br />
<b>Notice</b>:  Undefined offset: 16 in <b>/var/lib/symcon/scripts/57971.ips.php</b> on line <b>7</b><br />
<br />
<b>Notice</b>:  Undefined offset: 19 in <b>/var/lib/symcon/scripts/57971.ips.php</b> on line <b>8</b><br />
<br />
<b>Notice</b>:  Undefined offset: 17 in <b>/var/lib/symcon/scripts/57971.ips.php</b> on line <b>10</b><br />
<br />
<b>Notice</b>:  Undefined offset: 20 in <b>/var/lib/symcon/scripts/57971.ips.php</b> on line <b>11</b><br />

Lief bis dato immer einwandfrei… Lief es bei dir schon mal?

Hallo
Habe den erst grad eingebaut und direkt am nächsten Tag die Meldung gesehen.
Bin auch erstmal ratlos.
Der Hersteller kann sich das auch nicht erklären.
Verwies auf evtl. zu viele Zugriffe, oder ein charset Problem.

Bernd

Hallo, ich habe grad den Hinweis gefunden, einen Timeout zu setzen, um wenigstens IPS zu entlasten.
Den das schalten am IPSwitch erfolgt, trotz der Fehlermeldung in IPS.

file_get_contents("http://192.168.6.201/?&oC1=1", 0, stream_context_create(["http"=>["timeout"=>1]]));

Der Hersteller hat auf seiner Seite als Musterscript diesen Befahl verwendet.

Sys_GetURLContent("http://192.168.6.201/?Password=&oC1=1

Muss ich aber noch beobachten, ob das wirklich funktioniert.
Aber evtl. kennst sich ja noch jemand damit aus.
Bernd

Ps.
Die Fehlermeldungen in den Meldungen bleiben, aber die blockierten ThreadID in den PHP Informationen sind verschwunden.

Wert hat den aktuell das ISG mit dem IPS Power Control oder ähnlicher Energieauswertung am laufen?

Wie habt ihr das mit dem Zählerstand gelöst? Nach einem Neustart des SG1 wird der Zählerstand auf 0 gesetzt …

Ich schreib die Werte in eine Variable:

<?php
$ip = "192.168.178.20"; 
$data = file_get_contents("http://$ip/csv.html"); 

$lines = explode(",", strip_tags($data)); 

$iS01_ZaehlerStand = ($lines[16])/1000;  //Zähler Wärmepumpe 
$iS01_AktVerbr = $lines[19]; 

/*$iS02_ZaehlerStand = ($lines[17])/1000;   //Zähler Lüftung
$iS02_AktVerbr = $lines[20]; 
*/

if($iS01_ZaehlerStand > 0)
{
    SetValue(59477, $iS01_AktVerbr); //Aktueller Verbrauch Wärmepumpe und Warmwasser
    SetValue(49736, $iS01_ZaehlerStand); //Aktueller Zählerstand Wärmpepumpe und Warmwasser
}

/*
if($iS02_ZaehlerStand > 0)
{
    SetValue(16638 , $iS02_AktVerbr); //Aktueller Verbrauch Lüftung
    SetValue(53150 , $iS02_ZaehlerStand); //Aktueller Zählerstand Lüftung
}*/

Danke dir - warum teilst du durch 1000? Weil du ihn als kwh wert in der Variable führst? Wahrscheinlich …

Was ich bei deinem IF nicht verstehe - wenn der Zählerstand bspw. aktuell 5000 beträgt und nach einem Neustart wieder 0, dann schreibt dein SetValue doch spätestens wenn der Zählerstand 1 ist.

Aber da entsteht doch das Problem - du springst von 5000 auf 1 wieder…

Hm, der IP Switch Mini, den ich im Einsatz habe, verliert seine Werte nicht. Daher entsteht das Problem bei mir nicht.