Wochentagauswahl

Hallo,

ich möchte im WebFront eine Wochentagsauswahl haben. Die sollte so aussehen wie im Bild.
Jetzt kriege ichs aber nur hin, daß ich immer nur einen Tag auswählen kann.
Ich möchte aber beliebige Kombinationen von Wochentagen auswählen können, oder auch garkeinen.
Hat jemand einen Tip oder eine Lösung wie man das hinkriegt, ich bin da momentan Ideenlos.
Also irgendwie mit einem Klick anmachen und beim wiederanklicken wird der Tag wieder inaktiv.

Wochentag.jpg

Hi,
ich vermute Du hast eine Variable und dazu ein Varieblenprofil mit den Wochentagen?

Wenn ja - auf diesem Weg (Tage in einer Variable und per profil nebeneinander) kannst Du ohne Programmierung kein Toogle/ Highlight erreichen. Das ist so einfach nicht unterstützt.

Du kannst jetzt
A) für jeden Tag eine boolean Variable mit ON/Off anlegen (sind dann untereinander und Du hast jeweils einen On und einen Off Knopf; kein Toggle)

B) Die neuen Timer/ Wecker im Webfront / (dafür gedacht) oder vielleicht Paresys Eieruhr Skript nehmen

C) wenn Du unbedingt das optisch so haben willst, Dir diesen Thread ansehen:
http://www.ip-symcon.de/forum/f56/toggle-button-extern-aktualisieren-14674/ und die Skripte für Deine Zwecke anpassen (Variablenprofil mit mehr als zwei Werten einfärben).
Das sollte eigentlich prinzipiell funktionieren, macht aber die meiste Arbeit.

Alternativ könntest Du natürlich auch A) mit dem direkten Beispiel aus dem Thread C) kombinieren (Toogle dann untereinander).

Viele Grüße, Benjamin

Hi Bengie,

danke für die Tips.

Also Variante A ist klar, aber vom Design halt nicht schön.

Varante B versteh ich nicht, Du meinst das Script von Paresy, oder? Da fehlt mir der Ansatz wie ich das auf meinen Fall abwandeln soll.

Variante C muß ich mir jetzt erstmal langsam reinziehen, irgendwie im Actionscript mit den Assoziationen was machen ist wahrscheinlich die einzige Lösung die irgenwie Zielführend ist, wird wahrscheinlich ziemlich komplex.

Edit:
Hab gerade gesehen Du meints bei B was anderes, mußß ich mir auch nochmal ansehen.

Ich habe oben unter B) noch mal einen Link eingefügt zum Timer/ Wecker (das meinte ich im wesentlichen).
Abhängig davon was Du vorhast, wird das ggf. die Beste Lösung sein.

Was willst Du denn genau machen mit der Wochentagsauswahl?

ich will einfach im Wintergarten, wenn da abends keiner mehr sitzt an bestimmten Tagen, die ich aber flexibel auswählen will, die Heizung ab 19:00 auf Nachtabsenkung schalten.
Da finde ich halt meine Auswahlvariante vom Design her optimal.

Hi ransi,
dafür ist doch die IPS eigene Funktion aus B) optimal.

Ich muss nur ein Event unterhalb meines Skripts erzeugen und schon kann ich im Webfront auf die Uhr bei „Wach“ klicken und bekome das Popup im Bild. Dort kann ich dann tooglen oder auch den gesamten Timer inaktiv/ aktiv setzten. Ich kann mir dort sogar verschiedene Timer für Wochentags oder das Wochenende bauen und diese werden automatisch angezeigt (ohne Basteleien).

Probiers mal aus, ich denke das wird dir gefallen. :slight_smile:

Grüße, Benjamin

P.S. Wenn Du dann gefallen an den Timern gefunden hast, schaue Dir das Skript von Loerdy an Link zum Wiki

Hi Bengie,

erstmal danke für die Tips, das muß ich mir dann alles mal in Ruhe durchsehen.
Jetzt sind erstmal andere Themen dran: Falling Skies.

Wenn ich trotz aller Hilfe nicht klarkomme melde ich mich dann nochmal.

Hallo,

ich habe es jetzt in Abwandlung von Bengies Vorschlag C hingebastelt.

  1. Integervariable angelegt und eine Assoziation mit den Werten 1 -7 für die Wochentage verpasst. Als Wert 0 gesetzt, damit kein Wochentag gehighlightet wird (blödes Wort). Damit sieht man die Tage schonmal im WebFront.

  2. Integervariable für einen Binärvergleich angelegt.

In der Wochentagsvariable folgendes Script als Actionscript eingetragen:

<?
function SetAssociation($tagnr,$tagname,$fbin,$bit)
{
		$fbit = $fbin & $bit;
		if ($fbit != 0)
		{
			IPS_SetVariableProfileAssociation("Wochentage", $tagnr, $tagname, "", -1);
			$bin = $fbin & (255 - $bit);
		}
		else
		{
			IPS_SetVariableProfileAssociation("Wochentage", $tagnr, $tagname, "", 0xFF0033);
         $bin = $fbin ^ $bit;
		}
return ($bin);
}


if($IPS_SENDER == "WebFront")
{
	$bin = GetValue(10031 /*[WochentageBin]*/);

	switch($IPS_VALUE)
	{
		case 1:
		$bin = SetAssociation(1, "Mo", $bin, 1);
		break;

		case 2:
		$bin = SetAssociation(2, "Di", $bin, 2);
		break;

		case 3:
		$bin = SetAssociation(3, "Mi", $bin, 4);
		break;

		case 4:
		$bin = SetAssociation(4, "Do", $bin, 8);
		break;

		case 5:
		$bin = SetAssociation(5, "Fr", $bin, 16);
		break;

		case 6:
		$bin = SetAssociation(6, "Sa", $bin, 32);
		break;

		case 7:
		$bin = SetAssociation(7, "So", $bin, 64);
		break;

	}
}
SetValue(10031 /*[WochentageBin]*/, $bin);
?>

Die WochentageBin Variable kann man dann zur Auswertung hernehmen, welche Tage aktiviert sind.
Sieht bei mir dann so aus:

Leider funktioniert es nicht mit dem iFront :frowning: