Logo 8 Astrouhr und Wochenschaltuhren

Hallo zusammen,

seit geraumer Zeit verwende ich mehrere Logo8 für die Hausautomation (Jalousien, Licht und Heizung).
Die Anbindung an Symcon verlief ohne Probleme und mit dem Logo-Konfigurator noch etwas komfortabler.

Nun zu meiner Frage: Siemens verwendet ja für alle Art der Uhren, das HEX-Format.
Ist hier möglich, das ganze ohne aufwendige PHP-Skripte (dechex,…) zu realisieren?
Wäre es möglich das sowas direkt in Symcon, ohne Skript zu realisieren ist?

Die suche hier im Forum hat mir leider keine andere Lösungen als dechex gebracht!

Ich hoffe Ihr könnt mir da weiter helfen!

Gruß
Miraculix

Hi,

die Wochentage ist ein Byte. Die Zeiten ein Word.
Ohne Script wird da glaube ich nichts.

Der Aufbau ist aber eigentlich einfach.

Sonntag = 1
Montag = 2
Dienstag = 4
Mittwoch = 8
Donnerstag = 16
Freitag = 32
Samstag = 64

Beispiel:
Montag AN + Mittwoch AN = 10
Alle Tage AN = 127
usw.

Mit der Zeit habe ich mich noch nie beschäftigt. Kann eventuel am Sonntag was ausarbeiten.

Gruß

Hi sewo,

vielen Dank schon mal im voraus!

Das Wichtigste für mich wären die Uhrzeiten.
Lesen aus der Logo
Ändern in Symcon
Änderung in Logo schreiben

Ist sowas als Aktionsscript realisierbar?

Gruß

Hallo Miraculix,

du könntest eine Integer Variable mit eigenem Profil erstellen.

Bsp.


für die übertragung in die Logo ein Script mit hexdec.

D.h.

in deinem Profil werden Zeiten hinterlegt.
Wert 1200 für 12:00
Wert 1245 für 12:45
Wert 1915 für 19:15
usw.

In deiner Integer Variable steht somit zb.1915

Script Bsp.

<?php

$LOGO_Zeit = GetValue(11202); //deine Integer Variable

RequestAction(26275,hexdec($LOGO_Zeit)); //26275 ist die Logo Variable

Gruß

Hi sewo,
vielen Dank! Ich werde es am WE ausprobieren.
Melde mich dann wieder

Gruß

Hi,

habe es jetzt anders glöst.
Verwende eine Integervariable mit UniTimestampTime als Profil.
Diese wandel ich in einen String um und dann in die Logo Hexzeit.

Hier der code, nicht schön, aber geht.

<?
#################################################################################################

1. Schritt

Zeit aus IPS holen (Integer, UnixTimestamp-Time) und in neue Variable schreiben

#################################################################################################

$Zeit_IPS = GetValue(xxxxx);// xxxxx = Variable Integer UnixTimestamp-Time von IPS

#################################################################################################

2. Schritt

Sommer-/Winterzeit zu GMT übrprüfen

#################################################################################################

if (date(„I“) == 1) $daylight = 2; // Sommerzeit
if (date(„I“) == 0) $daylight = 1; // Winterzeit

if($daylight = 1)
$TempTime= $Zeit_IPS + 3600;
else
$TempTime= $Zeit_IPS + 7200;

$Ausgabe = timeconversion($TempTime);

#################################################################################################

3. Schritt

Temporäre Zeit erstellen

#################################################################################################

$TMP_Zeit1 =$Ausgabe[‚std‘] .":" . $Ausgabe[‚min‘];
//SetValue(xxxxx, $TMP_Zeit1); //Testvariable zum überprüfe ob der Schritt richtig ausgeführt wird

function timeconversion($sekunden){

$std = floor($sekunden / 3600);
$min = floor($sekunden / 60 % 60);
$sek = floor($sekunden % 60);
return array(„min“=>$min,„std“=>$std);
}
#################################################################################################

4. Schritt

#Rechnet die Zeitangabe $TMP_Zeit1 in LOGO-HEX um und schreibt sie in die LOGO(IPS -> LOGO)
#################################################################################################

$HEXZeit = Uhrzeit ($TMP_Zeit1);
//SetValueInteger (51401, $HEXZeit);//Testvariable zum überprüfe ob der Schritt richtig ausgeführt wird
S7_Write (xxxxx,($HEXZeit)); //xxxxx Intsance der Logo

return;
function Uhrzeit($Uhrzeit)
{
Return (hexdec(str_replace(":", „“, $Uhrzeit)));
}

?>