Siemens LOGO 0BA7 an IPS

Danke erstmal für deine Erläuterung.
Hab’s mal so umgesetzt, wie du geschrieben hast:

<?
$LOGO_Wert = 37309 /*[Scripte\Logo Scripte\Sensoren Sonnenschutz\Sonnenaufgang\Value]*/; //Value= IntegerWert aus Logo
$Sonnenaufgang = function Uhrzeit ($LOGO_Wert);
$SetValue (30328 /* Variablen ID, wo der neue Wert rein soll*/ ,$Sonnenaufgang);

//Oder als einzeiler:
#$SetValue (30328 /* Variablen ID, wo der neue Wert rein soll*/ ,function Uhrzeit (37309 /*Hier z.B. ein GetValueInteger*/));

//Irgendwo in deinem Script muss noch die Funktion sein oder included werde.
// Rechnet eine Zeitangabe der LOGO um
function Uhrzeit($LOGO_Wert)
    {
    Return (str_replace(".", ":",number_format((int)dechex($LOGO_Wert)/100, 2)));
   }
?>

Irgendwo fehlt noch was, wie du ja auch geschrieben hast.

Im Moment kommt folgende Fehlermeldung:

Parse error: syntax error, unexpected ‚Uhrzeit‘ (T_STRING), expecting ‚(‘ in C:\IP-Symcon\scripts\27726.ips.php on line 3
Abort Processing during Fatal-Error: syntax error, unexpected ‚Uhrzeit‘ (T_STRING), expecting ‚(‘
Error in Script C:\IP-Symcon\scripts\27726.ips.php on Line 3

Bin hier leider nicht der Experte, wäre schön, wenn’s noch ein paar Tipps geben würde.

mfg
cäsar

Hallo caesar,

ich habe derzeit kein Zugriff auf mein IPS.
Zwei Dinge sind mir aufgefallen:

  1. In der Zeile drei rufst die Funktion auf, dieses geschieht nur über den Funktionsnamen ohne das „Function“ davor…
  2. Im unteren Bereich kommt dann ja die Funktion, davor solltest Du ein „return;“ setzen…

Die Variable in den Du den Wert schreibst, muss vom Typ String sein.

Joachim

Hallo Joachim,
wäre schön, wenn du mir mal die fehlerhaften Zeilen ergänzen könntest.
Ich bekomm da immer wieder Fehlermeldung.:confused:

mfg
cäsar

Ich Antworte dir nochmal, gestern, muss ich gestehen, hab ich dir da ausschließlich mist geschrieben.
SetValue hat natürlich kein $ am Anfang und eine Funktion wird ohne „function“ am Anfang aufgerufen usw.
Du hast du Funktion auch nur deine Variablen ID übergeben, du musst ihr aber den Wert übergeben.
Und drauf achten das deine Variable 30328 eine String Variable sein muss, wie Joachim schon sagte.


<?

$LOGO_WertID = 37309; //Variablen ID der Integer Variable von der LOGO
$LOGO_WertValue = GetValueInteger ($LOGO_WertID); //Den Wert aus obiger Variable auslesen
$Sonnenaufgang = Uhrzeit ($LOGO_WertValue); //Die Funktion aufrufen und ihren Rückgabewert in die Variable $Sonnenaufgang schreiben
SetValueString (30328, $Sonnenaufgang); //Den Wert der $Sonnenaufgang Variable in deine neu angeläget String Variable schreiben.
return;

function Uhrzeit($LOGO_Wert)
    {
    Return (str_replace(".", ":",number_format((int)dechex($LOGO_Wert)/100, 2)));
    }
    
?>

Ich hoffe diesmal stimmts einigermaßen :loveips:

Gruß

Julian

Danke Julian, jetzt funktioniert es.:stuck_out_tongue:
Ist halt immer wieder toll, wie einem in diesem Forum geholfen wird.

mfg
cäsar

Hallo,
hab mal ne generelle Frage zur Logo, kann man jede mit IPS verbinden oder geht das nur mit ner bestimmten Version.

Gruß Stefan

Hallo Stefan,

es muss mindestens die 0BA7 sein, die ganz neue 0BA8 wurde hier noch nicht getestet, ist aber günstiger und kann mehr…

Joachim

Oh Ok…
Danke für deine Antwort!

Hallo Leute,

bin seit kurzem neu hier und bin fasziniert von der Software,

habe euer Script ausprobiert, kann alles lesen aber wie kann man eine Uhrzeit wieder zurückschreiben.

Danke