"Ist es Tag"-Variable bei Kerninstanz Location in V4 öfter falsch

Bei mir fing das Problem gestern mit dem Sonnenaufgang an. Habe gleich an ein Bug gedacht und alles erst mal auf die neueste Version gebracht. Hat aber nichts genützt. Symcon meint, es ist immer noch Tag (22:31) :confused:

Jörg

Also bei mir läuft das ganze seit dem einmaligen Ausrutscher am 11/12.5 wieder durch.

Ich merke es ja direkt beim aufstehen morgens, wenn die Jalousien im EG nicht von allein gedreht sind :smiley:

Meine Location Daten liefert mir ein altes IPS 4.0 BETA Raspberry. Das Teil läuft seit 6 Monaten ohne Unterbrechung durch.

Ich hatte das gleiche Problem, und konnte es m.E. nachvollziehen. Unmittelbar nach dem letzten Update wurde die „location control“ Instanz nicht mehr aktualisiert. Ich habe diese dann gelöscht und neu erstellt. Seitdem läuft wieder alles wie gehabt…
Ich nutze eine Symbox mit aktueller Firmware und aktuellem Symcon.

Bei mir sind alle Variablen seit gestern 1:17 Uhr hängen geblieben. Es ist jetzt dauerhaft Nacht. :confused:

Ich habe seit Wochen kein Update mehr gefahren oder irgendwas anderes verändert. Erst recht nicht gestern früh um 1 Uhr.

EDIT: Eine Aktualisierung der Instanz führt sofort zu korrigierten/richtigen Variablen.

Grüße
galleto

Das gleiche hier.

Ich hatte heute auch Probleme, dass sich die Zeit nicht mehr aktualisiert hat. Dann habe ich das gleiche gemacht. Nun OK. Hoffentlich war das einmalig.

Bei mir läuft Tag/Nacht von Anfang an ohne Probs unter Win
lediglich muss ich Schaltfunktionen über eine Hilfsvari (bool) machen, da sonst öfter ausgelöst werden.

Habe das gleiche Problem schon paar mal gehabt. Heute dann schon wieder. Rollos sind nicht hochgefahren und abends nicht runter. Die Werte auf dem Location Modul waren alle in Ordnung, allerdings wurde das Aktualisierungsdatum nicht aktualisiert. das sat das was 1:38 oder so.

Ich nutze diese schon seit längeren nicht mehr, weil ich auch dieses Problem ständig hatte, dass es mal geht und dann wieder nicht.
So sieht es jetzt bei mir aus „Astronomischer Dämmerungsstart“ enthällt gar keine Werte.
Vor ein paar Tagen waren die Werte erst wieder Richtig nachdem ich Day(Start) bzw. Day(End) umgestellt hatte.

VG Ralf

Also es sieht jetzt so aus als geht es gar nicht mehr. Wert ist false obwohl wir gerade Tag haben. Ich hatte sogar schon das Location Modul gelöscht und dann neu angelegt.

Welchen Wert nimmst du denn zur Berechnung? Die astronomische Dämmerung ist sogesehen nicht verfügbar. In der Tat ist es aber doof, dass dadurch die IstTag Variable nicht korrekt berechnet werden. Ich wüsste aber nicht, was man da machen könnte, als in dem Fall evtl. auf die zivilen Zeiten auszuweichen.

Wenn man sich die Tabelle ansieht gibt es leider keinen richtigen Start/Ende für Dämmerung.
Sonnenaufgang und Sonnenuntergang in Lübeck

paresy

Ich nutze Sunset/Sunrise.

PS: habe mir eine neue Variable gebaut und das ganze an eine Urzeit gekoppelt bist das hier wieder geht :slight_smile:

Hallo, bei mir ist es heute Nacht um ca. 1 Uhr zum zweiten Mal vorgekommen. Variable blieb auf Nacht stehen. Eingestellt habe ich Sunrise/Sunset. Ansonsten hatte ich nur am 11.5/12.5. das Problem.
Gruß Torsten

Hallo alle zusammen.

Ich habe mir als Ersatz dieses Script geschrieben.
Das klappt bis jetzt gut.


<?
/** SunriseSunset
* @author Martin Heinzel
* @date 23.05.2016
* @version 0.0.1
*
* Beschreibung:
* In diesem Script wir der Sonnenauf.- und untergang berechnet.
* Ist die aktuelle Zeit > Sonnenaufgang und < Sonnenuntergang
* ist die Variable "EsIstTag" TRUE.
*
* Änderungen
* ----------
* @date tt.mm.jjjj
* @version x.y.z
*
* Beschreibung:
*
*/

/**
* Variablen Deklaration --------------------------------------
*/

/**
* Einstellen!!
*/
$longitude 				= "51.5";                                      // Longitude (geografische Breite)
$latitude  				= "6.4";                                       // Latitude (geografische Länge)

/**
* ID's
* -- einrichten des Scripts --
*/

// Kontrolle der ID's
$id_EsIstTag			= 	@IPS_GetObjectIDByName("EsIstTag", $_IPS['SELF']);
// Wenn es diese Variable noch nicht gibt dann wird das Script
// zum ersten mal aufgerufen und muss eingerichtet werden.

if($id_EsIstTag === false)
{

	//Variablen ------------------------------------------
	//erzeugen und initialisieren der Variablen "EsIstTag"
   $id_EsIstTag         =  IPS_CreateVariable(0);
	IPS_SetName($id_EsIstTag, "EsIstTag");
	IPS_SetParent($id_EsIstTag, $_IPS['SELF']);
	SetValueBoolean($id_EsIstTag, FALSE);

	//erzeugen und initialisieren der Variablen "Sunrise"
   $id_Sunrise         =  IPS_CreateVariable(3);
	IPS_SetName($id_Sunrise, "Sunrise");
	IPS_SetParent($id_Sunrise, $_IPS['SELF']);
	SetValueString($id_Sunrise, "00:00");

	//erzeugen und initialisieren der Variablen "Sunset"
   $id_Sunset         =  IPS_CreateVariable(3);
	IPS_SetName($id_Sunset, "Sunset");
	IPS_SetParent($id_Sunset, $_IPS['SELF']);
	SetValueString($id_Sunset, "00:00");

	//erzeugen und initialisieren der Variablen "OffsetSunrise"
   $id_OffsetSunrise  =  IPS_CreateVariable(1);
	IPS_SetName($id_OffsetSunrise, "OffsetSunrise");
	IPS_SetParent($id_OffsetSunrise, $_IPS['SELF']);
	SetValueInteger($id_OffsetSunrise, 0);

	//erzeugen und initialisieren der Variablen "OffsetSunset"
   $id_OffsetSunset  =  IPS_CreateVariable(1);
	IPS_SetName($id_OffsetSunset, "OffsetSunset");
	IPS_SetParent($id_OffsetSunset, $_IPS['SELF']);
	SetValueInteger($id_OffsetSunset, 0);

	//erzeugen und initialisieren der Variablen "MinSunrise"
   $id_MinSunrise    =  IPS_CreateVariable(3);
	IPS_SetName($id_MinSunrise, "MinSunrise");
	IPS_SetParent($id_MinSunrise, $_IPS['SELF']);
	SetValueString($id_MinSunrise, "05:30");

	//erzeugen und initialisieren der Variablen "MaxSunset"
   $id_MaxSunset     =  IPS_CreateVariable(3);
	IPS_SetName($id_MaxSunset, "MaxSunset");
	IPS_SetParent($id_MaxSunset, $_IPS['SELF']);
	SetValueString($id_MaxSunset, "22:30");

	//Ereignisse ------------------------------------------
	//erzeugen und initialisieren des Script-Timers
	$eidTimer = IPS_CreateEvent(1);
	IPS_SetName($eidTimer, "Timer");
	IPS_SetParent($eidTimer, $_IPS['SELF']);
	IPS_SetEventCyclicTimeFrom($eidTimer, "00", "01", 0);
	IPS_SetEventActive($eidTimer, TRUE);

	//erzeugen und initialisieren des Script-Timers Sunrise
	$eidSunrise = IPS_CreateEvent(1);
	IPS_SetName($eidSunrise, "eSunrise");
	IPS_SetParent($eidSunrise, $_IPS['SELF']);
	IPS_SetEventCyclicTimeFrom($eidSunrise, "00", "00", 0);
	IPS_SetEventActive($eidSunrise, TRUE);

	//erzeugen und initialisieren des Script-Timers Sunset
	$eidSunset = IPS_CreateEvent(1);
	IPS_SetName($eidSunset, "eSunset");
	IPS_SetParent($eidSunset, $_IPS['SELF']);
	IPS_SetEventCyclicTimeFrom($eidSunset, "00", "00", 0);
	IPS_SetEventActive($eidSunset, TRUE);

}
else
{

	$id_EsIstTag		=	IPS_GetObjectIDByName("EsIstTag", $_IPS['SELF']);
	$id_Sunrise       =	IPS_GetObjectIDByName("Sunrise", $_IPS['SELF']);
   $id_Sunset       	= 	IPS_GetObjectIDByName("Sunset", $_IPS['SELF']);
	$id_OffsetSunrise =	IPS_GetObjectIDByName("OffsetSunrise", $_IPS['SELF']);
   $id_OffsetSunset 	= 	IPS_GetObjectIDByName("OffsetSunset", $_IPS['SELF']);
	$id_MinSunrise    =	IPS_GetObjectIDByName("MinSunrise", $_IPS['SELF']);
   $id_MaxSunset    	= 	IPS_GetObjectIDByName("MaxSunset", $_IPS['SELF']);
	$eidTimer			= 	IPS_GetEventIDByName("Timer", $_IPS['SELF']);
	$eidSunrise			= 	IPS_GetEventIDByName("eSunrise", $_IPS['SELF']);
	$eidSunset			= 	IPS_GetEventIDByName("eSunset", $_IPS['SELF']);

}

/**
* Variablen
*/

$OffsetSunrise 		=	GetValueInteger($id_OffsetSunrise);
$OffsetSunset 			= 	GetValueInteger($id_OffsetSunset);
$MinSunrise    		=	GetValueString($id_MinSunrise);
$MinSunriseArray 		= 	explode(":",$MinSunrise);
$MaxSunset    			= 	GetValueString($id_MaxSunset);
$MaxSunsetArray 		= 	explode(":",$MaxSunset);

/**
* Variablen Deklaration ENDE ---------------------------------
*/

/**
* Main --------------------------------------------------------
*/

if ($_IPS['EVENT'] == $eidTimer)
{
  if (date("I") == 1) $daylight = 2;       // Sommerzeit
  if (date("I") == 0) $daylight = 1;       // Winterzeit

  // *** Sonnenaufgang des heutigen Tages berechnen ***
  $Sunrise = date(date_sunrise(time(), SUNFUNCS_RET_STRING, $longitude, $latitude, 90.8333, $daylight));
  //Zerlegen in Stunde und Minute
  $SunriseArray = explode(":",$Sunrise);
  //Umrechnen in Minuten
  $SunriseMinutes = $SunriseArray[0] * 60 + $SunriseArray[1] + $OffsetSunrise;
  //Umrechnen der Min Minuten
  $MinSunriseMinutes = $MinSunriseArray[0] * 60 + $MinSunriseArray[1];
  // Der kleinste Wert ist aktiv
  If($SunriseMinutes <= $MinSunriseMinutes) $SunriseMinutes = $MinSunriseMinutes;
  //Umrechnen in Stunden und Minuten
  $SunriseMinutesAct 	= $SunriseMinutes % 60;
  $SunriseHourAct 		= ($SunriseMinutes - $SunriseMinutesAct) / 60;
  SetValueString($id_Sunrise, str_pad($SunriseHourAct, 2 ,'0', STR_PAD_LEFT).":".str_pad($SunriseMinutesAct, 2 ,'0', STR_PAD_LEFT));
  //Einstellen des Scripttimers eSunrise
  IPS_SetEventCyclicTimeFrom($eidSunrise, str_pad($SunriseHourAct, 2 ,'0', STR_PAD_LEFT), str_pad($SunriseMinutesAct, 2 ,'0', STR_PAD_LEFT), 0);

  // *** Sonnenuntergang des heutigen Tages berechnen ***
  $Sunset = date(date_sunset(time(), SUNFUNCS_RET_STRING, $longitude, $latitude, 90.8333, $daylight));
  //Zerlegen in Stunde und Minute
  $SunsetArray = explode(":",$Sunset);
  //Umrechnen in Minuten
  $SunsetMinutes = $SunsetArray[0] * 60 + $SunsetArray[1] + $OffsetSunset;
  //Umrechnen der Max Minuten
  $MaxSunsetMinutes = $MaxSunsetArray[0] * 60 + $MaxSunsetArray[1];
  // Der kleinste Wert ist aktiv
  If($SunsetMinutes >= $MaxSunsetMinutes) $SunsetMinutes = $MaxSunsetMinutes;
  //Umrechnen in Stunden und Minuten
  $SunsetMinutesAct 	= $SunsetMinutes % 60;
  $SunsetHourAct 		= ($SunsetMinutes - $SunsetMinutesAct) / 60;
  SetValueString($id_Sunset, str_pad($SunsetHourAct, 2 ,'0', STR_PAD_LEFT).":".str_pad($SunsetMinutesAct, 2 ,'0', STR_PAD_LEFT));
  //Einstellen des Scripttimers eSunset
  IPS_SetEventCyclicTimeFrom($eidSunset, str_pad($SunsetHourAct, 2 ,'0', STR_PAD_LEFT), str_pad($SunsetMinutesAct, 2 ,'0', STR_PAD_LEFT), 0);
}

if ($_IPS['EVENT'] == $eidSunrise) SetValueBoolean($id_EsIstTag, true);
if ($_IPS['EVENT'] == $eidSunset) SetValueBoolean($id_EsIstTag, false);

/**
* Main ENDE ---------------------------------------------------
*/

?>

Hi,

ich nutze das Teil zwar nicht, habe aber gerade mal nachgeschaut.
Bei mir steht aktuell noch es ist Nacht.

Day(Start) + Day (End) geändert und wieder zurück auf Sunrise und Sunset dan war Tag.

Wir haben soeben eine neue Beta-Version veröffentlicht, die das Problem hoffentlich vollständig löst
IP-Symcon 4.0.x (Beta)

paresy

Ich habe das Problem hier auch, aber nicht am 11. /12., sondern mir werden die Location Modul Variablen seit dem 28.05. nicht mehr aktualisiert. Nach einem Neustart sind sie dann wieder aktuell.

nö!

LocationCtrlError.jpg

Schau mal hier: Sonnenaufgang und Sonnenuntergang in Lübeck

Wenn man sich die Tabelle ansieht gibt es leider keinen richtigen Start/Ende für Dämmerung.

paresy

Das war noch die #178 von gestern … jetzt ist bereits #179 verfügbar. Wie sind denn da die Prognosen?

EDIT: sowohl die #178 als auch #179 sind 9d3a5764d50b!? - das ist mir zu hoch, ich leg mich wieder hin:confused: