+ Antworten
Seite 4 von 8 ErsteErste ... 2 3 4 5 6 ... LetzteLetzte
Ergebnis 31 bis 40 von 73
  1. #31
    Registriert seit
    Jun 2020
    Beiträge
    31

    Hallo,

    ich bin auf diesen Thread gestossen da ich ähnliches problem habe und habe mich nach der Anleitung von Fonzo gehalten.
    Denoch habe ich vermutlich noch eine Kleinigkeit übersehen da die Geräte nicht richtig geschlten werden.
    Vor allem beim Script habe ich noch meine Bedenken und würde mich sehr freuen wenn mal ein Profi drüberschauen könnte...

    Script:

    <?
    if(isset($_GET["state"]) && isset($_GET["light"]))
    {
    IPS_LogMessage("hook habridge", print_r($_GET, true));
    $state = $_GET["state"];
    switch ($_GET["light"]) {

    case "WZ-Licht (Couch)":

    if($state == "on")
    {
    HM_WriteValueBoolean(14738, "STATE", true); // Objekt ID ergänzen
    }
    else
    {
    HM_WriteValueBoolean(14738, "STATE", false); // Objekt ID ergänzen
    }
    break;
    case "WZ-Licht (Vitrine)":
    if($state == "on") {
    HM_WriteValueBoolean(20131, "STATE", true); // Objekt ID ergänzen
    }
    else
    {
    HM_WriteValueBoolean(20131, "STATE", false); // Objekt ID ergänzen
    }
    break;
    case "WZ-Rollladen (Terrasse)":

    if($state == "on")
    {
    HM_WriteValueBoolean(15092, "STATE", true); // Objekt ID ergänzen
    }
    else
    {
    HM_WriteValueBoolean(15092, "STATE", false); // Objekt ID ergänzen
    }

    break;


    //folgender Schalter mit Dimmer noch nicht vorhanden!

    case "WZ-Licht (Decke)":
    if($state == "on") {
    HM_WriteValueBoolean(00000, "STATE", true); // Objekt ID ergänzen
    }
    else
    {
    HM_WriteValueBoolean(00000, "STATE", false); // Objekt ID ergänzen
    }
    break;

    }
    }
    elseif(isset($_GET["intensity"]) && isset($_GET["light"]))
    {
    $intensity = $_GET["intensity"];
    switch ($_GET["light"]) {

    case "WZ-Licht (Decke)":
    //SetValue(00000, $intensity);
    $intensity = $intensity/100;

    HM_WriteValueFloat(00000, "LEVEL", $intensity); //Gerät auf x% dimmen
    if($intensity > 0)
    {
    SetValueBoolean(00000, true);
    }
    else
    {
    SetValueBoolean(00000, false);
    }

    break;

    }
    }
    else
    {
    echo "Das Skript kann nur durch einen Webhook aufgerufen werden";
    }
    ?>

  2. #32
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    7,283

    Zitat Zitat von yansoph Beitrag anzeigen
    Dennoch habe ich vermutlich noch eine Kleinigkeit übersehen, da die Geräte nicht richtig geschalten werden.
    Ja da sind noch ein paar Dinge anzupassen, sonst kann das so noch nicht in der Form funktionieren.
    Als erstes ist grundsätzlich zunächst mal zu testen, wenn man den Webfront öffnet, ob sich die angelegten Instanzen aus dem Webfront wie gewünscht schalten lassen, das ist die Grundvoraussetzung dafür, dass es auch aus der HA-Bridge funktioniert.

    Des weiteren willst Du aus der HA-Bridge ja mehrere Geräte schalten und diesen einen Befehl an IP-Symcon übergeben. Zur Zeit hast Du aber unter Target Item stehen
    Code:
    http://192.168.2.31:3777/hook/habridge?state=on
    Da Du aber mehrere Geräte schalten willst, musst Du noch ein weiteres Unterscheidungsmerkmal übergeben, damit dann IP-Symcon den Befehl auch einem Gerät zuordnen kann. Gesetzt den Fall Du nutzt sowohl Licht als auch Rollläden würde ich dann also noch einen Parameter für type übergeben und einen Parameter für den Gerätenamen

    als Beispiel:
    PHP-Code:
    http://192.168.2.31:3777/hook/habridge?state=on&name=coach&type=light 
    Im Unterschied zu dem jetzigen Eintrag bei Dir in der HA-Brigde wird also noch
    ?state=on&name=coach&type=light
    übergeben.

    Zitat Zitat von yansoph Beitrag anzeigen
    Vor allem beim Script habe ich noch meine Bedenken
    Ja das Skript müsstest Du an Deine Werte die Du übergibst anpassen

    PHP-Code:
    <?php

    if(isset($_GET["state"]) && isset($_GET["type"]) && isset($_GET["name"])) // prüft ob alle Parameter übergeben worden sind
    {
    IPS_LogMessage("hook habridge"print_r($_GETtrue));
    $state $_GET["state"];
    switch (
    $_GET["name"]) {

    case 
    "coach":

    if(
    $state == "on")
    {
        
    RequestAction(49451true); // 49451 Objekt ID der Instanz WZ Coach auf den Wert true setzten
    }
    else
    {
        
    RequestAction(49451false); // 49451 Objekt ID der Instanz WZ Coach auf den Wert false setzten
    }
    break;
    case 
    "vitrine":
    if(
    $state == "on") {
        
    RequestAction(39932true); // 39932 Objekt ID der Instanz WZ Coach auf den Wert true setzten
    }
    else
    {
        
    RequestAction(39932false); // 39932 Objekt ID der Instanz WZ Coach auf den Wert false setzten
    }
    break;

    // .. weitere Geräte Namen ergänzen, darauf achten das der Name bei Target Item in der url mit dem Namen im Skript übereinstimmt

    }
    }
    else
    {
    echo 
    "Das Skript kann nur durch einen Webhook aufgerufen werden";
    }
    Wichtig ist das ein RequestAction genutzt wird, da der Gerätetyp ein anderer ist als in dem Skript das Du kopiert hast, somit funktioniert das dann auch bei der Instanz, die Du schalten willst. Ansonsten must Du das Skript dann um die weiteren Gerätenamen und Instanzen noch ergänzen.

    Zunächst würde ich aber mal an Deiner Stelle testen ob sich die beiden Lampen dann so weit schalten lassen. Dazu kannst Du ja vielleicht einen kurze Rückmeldung geben. Wenn das funktioniert kannst Du dann das Skript um die Rollläden bzw. weitere Geräte erweitern.

    Bei den Rollläden hast Du das "Problem" das die HA-Bridge ja Lampen emuliert, es gibt also kein auf und zu nur ein und aus.
    Geändert von Fonzo (28.06.20 um 20:28 Uhr)

  3. #33
    Registriert seit
    Jun 2020
    Beiträge
    31

    Hallo Fonzo,
    vielen Dank für deine Hinweise!

    neues Script:

    PHP-Code:
    <?php

    if(isset($_GET["state"]) && isset($_GET["type"]) && isset($_GET["name"])) // prüft ob alle Parameter übergeben worden sind
    {
    IPS_LogMessage("hook habridge"print_r($_GETtrue));
    $state $_GET["state"];
    switch (
    $_GET["name"]) {

    case 
    "coach":

    if(
    $state == "on")
    {
        
    RequestAction(14738true); // 14738 Objekt ID der Instanz WZ Coach auf den Wert true setzten
    }
    else
    {
        
    RequestAction(14738false); // 14738 Objekt ID der Instanz WZ Coach auf den Wert false setzten
    }
    break;
    case 
    "vitrine":
    if(
    $state == "on") {
        
    RequestAction(20131true); // 20131 Objekt ID der Instanz WZ Coach auf den Wert true setzten
    }
    else
    {
        
    RequestAction(20131false); // 20131 Objekt ID der Instanz WZ Coach auf den Wert false setzten
    }
    break;

    // .. weitere Geräte Namen ergänzen, darauf achten das der Name bei Target Item in der url mit dem Namen im Skript übereinstimmt

    }
    }
    else
    {
    echo 
    "Das Skript kann nur durch einen Webhook aufgerufen werden";
    }
    Die Objekt-ID's habe ich geändert auf die ID des Schalters (s. Anhang), leider noch ohne Funktion.
    Gruß Yansop

  4. #34
    Registriert seit
    Jun 2020
    Beiträge
    31

    Screen für die Objekt-ID's vergessen....

  5. #35
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    7,283

    Zitat Zitat von yansoph Beitrag anzeigen
    Die Objekt-ID's habe ich geändert auf die ID des Schalters (s. Anhang), leider noch ohne Funktion.
    Lassen sich denn die Geräte grundsätzlich schalten, über den Webfront?

    Wenn Du nur ein Skript anlegst mit

    PHP-Code:
    <?php
    RequestAction
    (14738true); // 14738 Objekt ID der Instanz WZ Coach auf den Wert true setzten
    und das ausführst schaltet dann die Lampe an?

    PHP-Code:
    <?php
    RequestAction
    (14738false); // 14738 Objekt ID der Instanz WZ Coach auf den Wert false setzten
    schaltet dann die Lampe aus?

    Kannst Du mal das Skript so anpassen das IPS_Logmessage am Anfang steht

    PHP-Code:
    <?php
    IPS_LogMessage
    ("hook habridge"print_r($_GETtrue));
    if(isset(
    $_GET["state"]) && isset($_GET["type"]) && isset($_GET["name"])) // prüft ob alle Parameter übergeben worden sind
    {
    Wenn Du die URL, die Du in der HA-Bridge eingetragen hast, in einen Browser eingibst, erscheint dann eine Mitteilung im Log wenn Du bei Status auf Prüfen drückst?

    Falls hier was ankommen sollte, funktioniert das Schalten dann nicht wenn Du den Tastendruck in der HA-Bridge testest oder wenn Du auf dem Harmony Hub eine Taste drückst?

  6. #36
    Registriert seit
    Jun 2020
    Beiträge
    31

    Hallo Fonzo,

    ganz lieben dank für dein Auschlussverfahren, Dank deiner Hilfe läuft alles wie gewünscht!
    Noch eine Frage: wie muss das folgende aktuelle Script dann ausschauen, wenn der Lichtschalter mit Dimmer vorhanden ist?
    Und die Einstellungen für den Dimmer in der habridge so wie im Anhang?

    PHP-Code:
    <?php
    if(isset($_GET["type"]) && isset($_GET["name"]) && isset($_GET["state"]))
    {
    IPS_LogMessage("hook habridge"print_r($_GETtrue));
    $state $_GET["state"];
    switch (
    $_GET["name"]) {

    case 
    "rollladenterrasse":

    if(
    $state == "on")
    {
        
    RequestAction(15092false);
    }
    else
    {
        
    RequestAction(15092true);
    }
    break;
    case 
    "lichtvitrine":
    if(
    $state == "on") {
        
    RequestAction(20131true);
    }
    else
    {
        
    RequestAction(20131false);
    }
    break;
    case 
    "lichtcouch":
    if(
    $state == "on") {
        
    RequestAction(14738true);
    }
    else
    {
        
    RequestAction(14738false);
    }
    break;

    // ...Lichtschalter mit Dimmer noch nicht im Einsatz!

    case "lichtzimmer":
    if(
    $state == "on") {
        
    RequestAction(00000true);
    }
    else
    {
        
    RequestAction(00000false);
    }
    break;

    }
    }
    else
    {
    echo 
    "Das Skript kann nur durch einen Webhook aufgerufen werden";
    }

  7. #37
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    7,283

    Zitat Zitat von yansoph Beitrag anzeigen
    Noch eine Frage: wie muss das folgende aktuelle Script dann ausschauen, wenn der Lichtschalter mit Dimmer vorhanden ist?
    Dann liegt in der Regel eine Variable in IP-Symcon vor vom Typ Integer mit dem Variablenprofil ~Intensity.100, kann aber auch in Einzelfällen vom Typ Float sein und ein eigenes Variablenprofil haben.
    In dem Fall ist dann das Skript nochmals zu erweitern. Im Kopf des Skripts folgendes austauschen

    PHP-Code:
    <?php
    IPS_LogMessage
    ("hook habridge"print_r($_GETtrue));

    if((isset(
    $_GET["state"]) || isset($_GET["level"])) && isset($_GET["type"]) && isset($_GET["name"])) // prüft ob alle Parameter übergeben worden sind
    {
    if(isset(
    $_GET["state"]))
    {
        
    $state $_GET["state"];
    }
    else
    {
        
    $state "unkown";
    }
    if(isset(
    $_GET["level"]))
    {
        
    $level $_GET["level"];
    }
    else
    {
        
    $level = -1;
    }

    switch (
    $_GET["name"]) {

    case 
    "coach":

    if(
    $state == "on")
    {
        
    RequestAction(36449true); // Objekt ID der Variable für STATE auf den Wert true setzten
    }
    elseif(
    $level > -1)
    {
        
    RequestAction(36797$level); // Objekt ID der Variable für LEVEL auf den Wert $level setzten
    }
    elseif(
    $state == "off")
    {
        
    RequestAction(36449false); // Objekt ID der Variable für STATE auf den Wert false setzten
    }
    break;
    // .....
    Neu ist in dem Fall das entweder ein state übergeben wird ("on"/"off") oder wenn etwas gedimmt wird statt dessen level als Zahl. Die Zahl wird dann von IP-Symcon an das Gerät als einzustellender Wert übergeben.

    Es ist also bei einem Gerät, das man sowohl ein/aus und dimmen kann dann noch als Bedingung
    PHP-Code:
    elseif($level > -1)
    {
        
    RequestAction(36797$level); // 36797 Objekt ID der Variable für LEVEL auf den Wert $level setzten

    zu ergänzen.

    Zitat Zitat von yansoph Beitrag anzeigen
    Und die Einstellungen für den Dimmer in der habridge so wie im Anhang?
    Beim Dimmen wird ja anders als bei ein/aus kein fester Wert übergeben, also auch nicht "on" oder "off".
    Statt dessen wird von der HA-Bridge selber der Wert weitergegeben, den die HA-Bridge selber von dem Eingabegerät, das der HA-Bridge den Befehl schickt, erhalten hat.

    Passend zu der Erweiterung im Skript in IP-Symcon, bei dem auf level geprüft und ausgelesen wird, müsste der Eintrag bei einem Gerät in der HA-Bridge dann z:B. so aussehen
    PHP-Code:
    http://192.168.2.31:3777/hook/habridge?name=coach&type=light&level=${intensity.percent} 
    hierbei ist ${intensity.percent} ein fester unveränderlicher Platzhalter in der HA-Bridge, für der Wert der Intensität in Prozent (also 0-100).
    Geändert von Fonzo (29.06.20 um 13:16 Uhr)

  8. #38
    Registriert seit
    Jun 2020
    Beiträge
    31

    Vielen Dank für die Erklärungen.
    Den Taster werde ich morgen einbauen und hier berichten.

    Gruß Yansop.

  9. #39
    Registriert seit
    Jun 2020
    Beiträge
    31

    Hallo Fonzo,
    Wie versprochen meine Rückmeldung: der Dimmer von Rademacher ist für mich leider nicht zu gebrauchen, da dieser meine Lampe nicht korrekt regelt.
    Eine Frage: kann mein Rolladen in den Hausteuerungstasten der Logitech auch mit den Dimmertasten bewegt werden?
    Also Pfeil rauf = Rolladen rauf und Pfeil runter = Rolladen runter?
    Wie schaut hierfür das Script aus?

    Gruß Yansop

  10. #40
    Registriert seit
    Oct 2011
    Ort
    Hattersheim (Hessen)
    Beiträge
    7,283

    Zitat Zitat von yansoph Beitrag anzeigen
    Wie versprochen meine Rückmeldung: der Dimmer von Rademacher ist für mich leider nicht zu gebrauchen, da dieser meine Lampe nicht korrekt regelt.
    Was regelt denn da nicht korrekt, der Dimmer selber, also auch die Ansteurung aus dem Webfront direkt oder gibt es Probleme in Kombination mit der HA Bridge?
    Zitat Zitat von yansoph Beitrag anzeigen
    Eine Frage: kann mein Rolladen in den Hausteuerungstasten der Logitech auch mit den Dimmertasten bewegt werden?
    Also Pfeil rauf = Rolladen rauf und Pfeil runter = Rolladen runter?
    Wie schaut hierfür das Script aus?
    Das weis ich ehrlich gesagt nicht das hängt davon ab wie das Gerät die Befehle verarbeitet. Da würde ich mal im Thread zu Rademacher fragen. Das Problem wird ja sein, dass die Harmony eher kontinuierlich Werte sendet, wenn man die Taste gedrückt hält, ob das dann mit dem jeweilgen Rollladen funktioniert hängt vom System ab. In der Regel bekommt so ein System ja gleich den Endwert angegeben also 75 %. Frag doch mal im Rademacher Thread, vielleicht gibt es da ja jemand der auch seine Rollläden über Taster oder auch eine Harmony Remote steuert.

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 05.12.16, 11:33
  2. Antworten: 50
    Letzter Beitrag: 22.05.15, 11:32
  3. Homematic Komponenten mit Akku betreiben
    Von toddy im Forum HomeMatic
    Antworten: 6
    Letzter Beitrag: 29.09.13, 09:37
  4. homematic und FS 20 Geräte gemeinsam betreiben
    Von technikus im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 3
    Letzter Beitrag: 27.09.10, 11:01

Stichworte