IP-Symcon - Wie kann ich... 2.0 (Ideen & Wünsche)

IPS - Wie kann ich… 2.0

>> Ihr habt Ideen oder Wünsche, was man noch für Beispiel-Skripte veröffentlichen könnte/sollte, weil diese oft gebraucht werden? Dann könnt ihr hier eure Ideen/Wünsche posten :slight_smile: Wenn jemand Zeit und Lust hat, oder das Skript-Beispiel zufällig im Bestand hat, dann kann er es im anderen Thread posten (mit einem Vermerk hier, damit die „suchende“ Person Bescheid weiß) :slight_smile:

ABER bitte keine großen Projekt-Wünsche :smiley: Es geht nur um kleinere Beispiele/Funktionen!

Grüße,
Chris

Moin,
erstmal vielen Dank für Deine Mühe - das ist großartig :slight_smile:

Meine Frage: wie lasse ich ein Script automatisch zu Sonnenaufgang und Untergang ablaufen? Sonnenaufgang und -untergang sollen sich täglich aktualisieren.
Irgendwo gibt es ja glaube ich schon so einen Astro-Clock Thread der ist aber für mich völlig undurchsichtig.

Das „neue“ IPS (aktuell noch nur für Unix verfügbar) bringt diese Möglichkeit schon selbst mit.

Alternativ gibt es dieses schöne Script:
Automatischer Skriptstart nach astronomischen Ereignissen (Sonnenaufgang, Dämmerung)
…funktioniert bei mir schon seit Monaten wunderbar :slight_smile:

Edit: Und weil ich grad so im „Flow“ bin :smiley: Hier nochmal eine ganz kurze und vereinfachte Version:
IPS - Wie kann ich… 2.0 - Seite 4

Grüße,
Chris

That´s what i´m talking about. :smiley:
Vielen herzlichen Dank - hab mich lange drumrumgedrückt weil mich so ewig lange Threads immer abschrecken.
Nu löppt es. :slight_smile:

Cool! Hab es mal oben angepinnt :slight_smile:

paresy

Danke dir :slight_smile:

Du darfst dich auch gerne da beteiligen :slight_smile: Aber bitte erst, wenn IPS 4 für mich startklar ist :smiley: :wink: :stuck_out_tongue:

Grüße,
Chris

Ich habe keine Wünsche. Ich wollte einfach mal ein Lob ansprechen.

Super Bayaro!

Danke und sehr gerne :slight_smile:

Mich würde es aber noch mehr freuen, wenn sich noch andere daran beteiligen würden. Denn so ziemlich jeder wird eine Kategorie „Beispiele/Tests/Vorlagen/Funktionen/…“ haben, wo es mal das ein oder andere hier veröffentlichen kann :slight_smile:

Ich will meine Skripte nicht mit ins Grab nehmen, da kann keiner was mit anfangen :smiley: Wenn es nach mir ginge, dann würde ich auch noch viel mehr Skripte veröffentlichen, aber ich hab halt auch einige Beispiel-Skripte die 1:1 von anderen aus dem Forum sind. Und bevor sich einer beschwert - poste ich die lieber nicht :smiley:

Deshalb nochmal die Bitte >> Postet eure kleinen Beispiele und Funktionen! Danke! :loveips:

Grüße,
Chris

Hallo. Super,dass ihr diesen Thread eröffnet habt.
Für mich als blutiger Anfänger wäre es mal schön, wenn ihr ein paar ganz einfache, grundsätzliche Tipps geben könntet. Zum Beispiel ; wie implementiere ich einen einfachen dimmerslider im webfront. Wie kriege ich zwei oder mehr values (zB Temperaturen) direkt in einen Rahmen, ohne jedesmal darüber noch eine Instanz angezeigt zu bekommen. (Jetzt sieht es immer so aus: Zeile mit Instanz, Zeile mit value, Zeile mit Instanz, Zeile mit value. Ich hätte aber gern folgendes; Instanz 'Temperaturen ’ und darunter die einzelnen values für die Räume.)

Hallo,

bzgl. mehrer Variablen in einem „Rahmen“ kannst Du das mit dem Dummy-Modul (siehe hier) realisieren. Sprich: Neues Objekt hinzufügen, Dummy-Modul auswählen und alle zuzuordnenden Objekte (hier Variablen) darunter anlegen (am besten als Link).

bzgl. Silder:
(1) im Objektbaum eine Kategorie, einen Integervariable und ein Script wie hier demonstriert anlegen (Namen hier egal)

(2) Das Script kann im einfachsten Fall folgendes beinhalten:

<?
switch($_IPS['SENDER'])
 {
   case "WebFront":
      SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
      // hier noch die eigentliche Aktion einbauen wie beispielhaft in nächster Zeile die Steuerung eines zWave-Dimmers
      // ZW_DimSet(12345, $_IPS['VALUE']);
   break;
 }
?>

(3) Der Integervariable z.B. das Profil ~intensity.100 zuordnen
intensity.JPG

(4) Der Integervariable als Assoziation das unter (2) angelegte Script zuordenen
AS.JPG

Müßte so gehen. Bitte Rückmeldung wenn ich mich irgendwo vertippt habe.

Gruß
hardlog

Moin!

An sich geht es in diesem Thread ja um „Code-Schnipsel“…

Deine Frage bzgl. Dimmer-Slider im WebFront wird in der Doku erklärt. Einfach eine Integer Variable anlegen, Variablenprofil entweder ein vorhandenes nehmen oder einen eigenen Bereich mit dem Zahlen-Bereich angeben und wichtig > beim Suffix muss „%“ angegeben werden. Zusätzlich muss in der Variable ein Action-Skript (Eigene Aktion) definiert werden, welches den folgenden magischen Inhalt hat:

<?
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
?>

Mit den Instanzen und Temperaturen…wenn ich dich richtige verstehe, dann musst es einfach nur wie folgt machen:
> DummyInstanz mit Namen „Temperaturen“
>> Darunter dann mehrere Links zu den Temperatur-Variablen
…durch das „Unterordnen“ der Links unter das DummyModule werden diese optischen zusammengefasst und bilden im WebFront dann einen Block.

Edit: hardlog war schneller und hat es noch mit schönen Bildchen gemacht :slight_smile: Aber ich lass meinen Text trotzdem mal stehen :slight_smile:

Grüße,
Chris

Danke für die schnellen Antworten!
Werde es nachher gleich ausprobieren!
Die Dokumentation ist ja echt super, aber wenn man die verschiedenen Begriffe nur allgemein kennt und nicht im Bezug auf ips, ist es schwer, heraus zu bekommen, was man denn nun braucht… Wie hier auch schon öfter gelesen hab ;ein angepinnter Thread mit ganz elementaren Vorgehensweisen in Form von Beispielen wäre als 'Kickstart ’ für Anfänger wirklich hilfreich! Dummy? Da wäre ich so nicht drauf gekommen, dass man damit was produktives machen kann…

ich möchte gerne den Code Schnipsel HomeMatic - Mehrere Aktoren (Lampen, Geräte, …) ein-/ausschalten (z.B. bei ALL OFF) anpassen um meine Rolläden zu fahren.

Der obere Teil ist mir gelungen, aber der Teil das ich nur die Runterfahre welche nicht geschlossen ( bzw. andersrum) sind will mir nicht gelingen. Kann mir dabei bitte jemand helfen?

:confused:

Danke, Loerdy

Hi!

Meinst du sowas hier?
IP-Symcon - Wie kann ich… 2.0 - Seite 4

Der untere Part mit „Nur Aktoren ausschalten, die gerade eingeschaltet sind“ und „Wenn eingeschaltete Aktoren gefunden wurden, dann werden diese jetzt ausgeschaltet“…

Grüße,
Chris

Ja, das meine ich, aber ich erhalte immer die Meldung das es das EingeschalteteAktoren_Array nicht gibt.

Für die Rollos gibt es den Status True oder False nicht sondern 0 oder 1 ( oder dazwischen ) als Integer Wert.
Nun möchte ich gerne erreichen das alle Rollos deren Level nicht auf 1 steht bzw kleiner als 1 ist auf 1 gesetzt werden.

Loerdy

Das sind doch nun wirklich minimale Anpassungen die du selbst schaffen solltest :rolleyes: Die Beispiele hier dienen als Vorlage und nicht als „Komplettlösung“ :rolleyes:

Aber na gut, habe einen guten Tag :smiley:

<? 
// Hier die Instanz-IDs der HM-Rollladen-Aktoren eintragen, welche gesteuert werden sollen:
$Aktoren_Array = array(11111,22222,33333,44444,55555); 

// Nur Rollladen herunterfahren, die nicht bereits komplett unten sind
foreach($Aktoren_Array as $HM_InstanzID) { 
    $LEVEL_ID = IPS_GetVariableIDByName("LEVEL", $HM_InstanzID); 
    if(GetValue($LEVEL_ID) != 1) { 
       $HochgefahreneRolllaeden_Array[] = $Var_ID; 
    } 
} 

// Wenn nicht runtergefahrende Rollläden gefunden wurden, dann werden diese jetzt heruntergefahren 
if ($HochgefahreneRolllaeden_Array) { 
    foreach ($HochgefahreneRolllaeden_Array as $HM_InstanzID) { 
        HM_WriteValueInteger($HM_InstanzID, "LEVEL", 1); 
        IPS_Sleep(300); // zwischen den Schaltvorgängen einen kleinen Moment warten 
    } 
}
?>

…nur aus dem Kopf, sollte aber so stimmen…

Es werden also alle eingetragenen LEVEL Variablen geprüft, ob diese ungleich 1 sind. Wenn eine (oder mehr) ungleich 1 ist, dann wird die zugehörige InstanzID im Array zwischengespeichert und dann im letzten Abschnitt mit „HM_WriteValueInteger($HM_InstanzID, „LEVEL“, 1)“ auf 1 gesetzt und damit runtergefahren. Stimmt der Befehl so nicht, dann einfach anpassen und hier mitteilen.

-Chris-

genau so habe ich es versucht.
Ist aber eine Float Variable, das war jetzt mein Fehler :frowning:

Dieser Code

$Aktoren_Array = array(14615,38652);

// Nur Rollladen herunterfahren, die nicht bereits komplett unten sind

foreach($Aktoren_Array as $HM_InstanzID) {
    $LEVEL_ID = IPS_GetVariableIDByName("Level", $HM_InstanzID);
    if(GetValue($LEVEL_ID) != 1) {
       $HochgefahreneRolllaeden_Array[] = $Var_ID;
    }
}

// Wenn nicht runtergefahrende Rollläden gefunden wurden, dann werden diese jetzt heruntergefahren
if ($HochgefahreneRolllaeden_Array) {
    foreach ($HochgefahreneRolllaeden_Array as $HM_InstanzID) {
        HM_WriteValueFloat($HM_InstanzID, "LEVEL", 1);
        IPS_Sleep(300); // zwischen den Schaltvorgängen einen kleinen Moment warten
    }
}

bringt das Ergebnis:

Notice: Undefined variable: HochgefahreneRolllaeden_Array in /mnt/data/symcon/scripts/47049.ips.php on line 15

:eek:

Danke,
Loerdy

Bitte hier weiter im Text :slight_smile:
HomeMatic Rollläden nur runterfahren, wenn noch nicht runtergefahren

Sauber ! Gute Idee !!!

Hallo!
Super Sache.:):slight_smile:
Wie kann ich hab ich auch schon oft genutzt…:D:D

Schönen Gruß
Egon