+ Antworten
Seite 9 von 9 ErsteErste ... 7 8 9
Ergebnis 81 bis 82 von 82
  1. #81
    Registriert seit
    May 2009
    Beiträge
    4

    Hallo,

    ich versuche gerade meine Vallox KWL in IPS einzubinden.
    Habe erst mit der Konfiguration und Einarbeitung in IPS gestartet und meine Heizungsaktoren konfiguriert.
    Somit bin ich eigentlich noch blutiger Anfänger und scheitere gerade anscheinend gerade etwas an den Basics und hoffe Ihr könnt mir kurz auf die Sprünge helfen.

    Was ich bisher gemacht / ausprobiert habe.
    USB - RS485 Konverter installiert, mit der KWL verkabelt, I/O und Splitter Instanz in IPS konfiguriert.
    Soweit so gut. Ich bekomme schon einmal Daten vom Adapter und Splitter (siehe Cutter_Debug.jpg).
    Zudem habe ich die Dummy Variablen und das Skript angelegt und angepasst (siehe Bilder).
    Aktueller Code:
    PHP-Code:
    <?

    $ID_Betrieb 
    29006 /*[KWL\KWL Betrieb]*/;
    //$CO2_Status = 49064; 
    //$Luftfeuchte_Status = 26466; 
    $Heizung_Status 59659 /*[KWL\KWL Heizung Status]*/
    //$Filter_Status = 54659; 
    //$Heizung_Indikator = 24032; 
    //$Fehler_Indikator = 15439; 
    //$Service = 26131; 

    $ID_Luefterstufe 29800 /*[KWL\KWL Lüfterstufe]*/
    $ID_Aussenluft 49487 /*[KWL\KWL Temp Aussenluft\Aussenluft]*/
    $ID_Fortluft 49457 /*[KWL\KWL Temp Fortluft\Fortluft aussen]*/
    $ID_Abluft 46630 /*[KWL\KWL Temp Abluft\Abluft innen]*/
    $ID_Zuluft 52439 /*[KWL\KWL Temp Zuluft\Temp Zuluft innen]*/

    $ID_Temp 27841 /*[KWL\Speicher]*/

    // Tabelle zur Temperatur Umrechnung 
    $Temperatur = array( 
    "-74""-70""-66""-62""-59""-56""-54""-52""-50""-48""-47"
    "-46""-44""-43""-42""-41""-40""-39""-38""-37""-36""-35"
    "-34""-33""-33""-32""-31""-30""-30""-29""-28""-28""-27"
    "-27""-26""-25""-25""-24""-24""-23""-23""-22""-22""-21"
    "-21""-20""-20""-19""-19""-19""-18""-18""-17""-17""-16"
    "-16""-16""-15""-15""-14""-14""-14""-13""-13""-12""-12"
    "-12""-11""-11""-11""-10""-10""-9""-9""-9""-8""-8""-8"
    "-7""-7""-7""-6""-6""-6""-5""-5""-5""-4""-4""-4""-3"
    "-3""-3""-2""-2""-2""-1""-1""-1""-1""0""0""0""1""1"
    "1""2""2""2""3""3""3""4""4""4""5""5""5""5""6""6"
    "6""7""7""7""8""8""8""9""9""9""10""10.3""10.6""11""11.3"
    "11.6""12.0""12.3""12.6""13.0""13.3""13.6""14.0""14.3""14.6""15.0""15.3""15.6"
    "16.0""16.3""16.6""17.3""17.6""18.0""18.3""18.6""19.0""19.3""19.6""20.0""20.5"
    "21.0""21.3""21.6""22.0""22.3""22.6""23.0""23.5""24.0""24.3""24.6""25.0""25.5"
    "26.0""26.5""27.0""27.3""27.6""28.0""28.5""29.0""29.5""30.0""30.5""31.0""31.5"
    "32.0""32.5""33.0""33.5""34.0""34.5""35.0""35.5""36.0""36.5""37.0""37.5""38.0"
    "38.5""39""40.0""40.5""41.0""41.5""42""43.0""43.5""44""45""45""46"
    "47""48""48""49""50""51""52""53""53""54""55""56""57"
    "59""60""61""62""63""65""66""68""69""71""73""75""77"
    "79""81""82""86""90""93""97""100""100""100""100""100"
    "100""100""100""100"); 

    // wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden ist 
    if ($_IPS['SENDER'] == "RegisterVariable"

        
    // bereits im Puffer der Instanz vorhandene Daten in $data kopieren 
        
    $data  RegVar_GetBuffer($_IPS['INSTANCE']); 
        
    // neu empfangene Daten an $data anhängen 
        
    $data .= $_IPS['VALUE']; 

    // Befehle zum Regeln der Lüfterstufe 
    #Stufe1 | "\01\x11\x10\x29\x01\x4C" 
    #Stufe2 | "\01\x11\x10\x29\x03\x4E" 
    #Stufe3 | "\01\x11\x10\x29\x07\x52" 
    #Stufe4 | "\01\x11\x10\x29\x0F\x5A" 
    #Stufe5 | "\01\x11\x10\x29\x1F\x6A" 
    #Stufe6 | "\01\x11\x10\x29\x3F\x8A" 
    #Stufe7 | "\01\x11\x10\x29\x7F\xCA" 
    #Stufe8 | "\01\x11\x10\x29\xFF\x4A" 

    // Lüfterstufe Status auslesen 

    $Funktion=substr($data,0,5);// Funktion ausfiltern 

    switch($Funktion

    case 
    "\x01\x11\x21\x29\x01"// Lüfterstufe 1 
     
    SetValue($ID_Luefterstufe1); 
    break; 
    case 
    "\x01\x11\x21\x29\x03"// Lüfterstufe 2 
      
    SetValue($ID_Luefterstufe2); 
    break; 
    case 
    "\x01\x11\x21\x29\x07"// Lüfterstufe 3 
      
    SetValue($ID_Luefterstufe3); 
    break; 
    case 
    "\x01\x11\x21\x29\x0F"// Lüfterstufe 4 
      
    SetValue($ID_Luefterstufe4); 
    break; 
    case 
    "\x01\x11\x21\x29\x1F"// Lüfterstufe 5 
      
    SetValue($ID_Luefterstufe5); 
    break; 
    case 
    "\x01\x11\x21\x29\x3F"// Lüfterstufe 6 
      
    SetValue($ID_Luefterstufe6); 
    break; 
    case 
    "\x01\x11\x21\x29\x7F"// Lüfterstufe 7 
      
    SetValue($ID_Luefterstufe7); 
    break; 
    case 
    "\x01\x11\x21\x29\xFF"// Lüfterstufe 8 
      
    SetValue($ID_Luefterstufe8); 
    break; 


    ############## 
    #KWL schreibt zu allen Zuluft Temperatur 35 
    #01 11 20 35 9E 05 

    #KWL schreibt zu allen Abluft Temperatur 34 
    #01 11 20 34 A0 06 

    #KWL schreibt zu allen Fortluft Temperatur 33 
    #01 11 20 33 8E F3 

    #KWL schreibt zu allen Außenluft Temperatur 32 
    #01 11 20 32 87 EB 

    #return; 
    // Temperaturen auslesen 

    $Funktion1=substr($data,0,4);// Funktion ausfiltern 
    switch($Funktion1

    case 
    "\x01\x11\x20\x35"// Zuluft Temperatur in die Wohnung 

        
    $Zuluft=substr($data,4,1);// Temperatur ausfiltern 
        
    $ZuluftTemp ord($Zuluft); // Chr in Dezimal umwandeln 
        
    SetValue($ID_Temp $Temperatur[$ZuluftTemp]); 
        
    $Status GetValue($ID_Temp); // 
        
    $Status1 GetValue(23488 /*[KWL\KWL Temp Zuluft]*/); // aktuelle Temperatur auslesen 
        
    if ($Status <> $Status1// Temperatur nur bei änderung schreiben 
        
    SetValue(52439 /*[KWL\KWL Temp Zuluft\Temp Zuluft innen]*/$Status); 
    break; 

    case 
    "\x01\x11\x20\x34"// Abluft Temperatur aus der Wohnung 
        
    $Abluft=substr($data,4,1);// Temperatur ausfiltern 
        
    $AbluftTemp ord($Abluft); // Chr in Dezimal umwandeln 
        
    SetValue($ID_Temp $Temperatur[$AbluftTemp]); 
        
    $Status GetValue($ID_Temp); // 
        
    $Status1 GetValue(32992 /*[KWL\KWL Temp Abluft]*/); // 
        
    if ($Status <> $Status1
        
    SetValue(46630 /*[KWL\KWL Temp Abluft\Abluft innen]*/$Status); 
    break; 

    /*case "\x01\x11\x20\x33": // Fortluft Temperatur nach draussen 
        $Fortluft=substr($data,4,1);// Temperatur ausfiltern 
        $FortluftTemp = ord($Fortluft); // Chr in Dezimal umwandeln 
        SetValue($ID_Temp , $Temperatur[$FortluftTemp]); 
        $Status = GetValue($ID_Temp); // 
        $Status1 = GetValue(45564); // 
        if ($Status <> $Status1) 
        SetValue(45899, $Status); 
    break; 

    case "\x01\x11\x20\x32": // Außenluft Temperatur zum Gerät 
        $Aussenluft=substr($data,4,1);// Temperatur ausfiltern 
        $AussenluftTemp = ord($Aussenluft); // Chr in Dezimal umwandeln 
        SetValue($ID_Temp , $Temperatur[$AussenluftTemp]); 
        $Status = GetValue($ID_Temp); // 
        $Status1 = GetValue(30834); // 
        if ($Status <> $Status1) 
        SetValue(21161, $Status); 
    break; 

    case "\x01\x11\x21\xA3": // Anlagen Status 
        $Status=substr($data,4,1);// Status ausfiltern 
        $StatusDez = ord($Status); 

    if (getBitState($StatusDez, 0))  // KWL Betriebsstatus an Bit0 auslesen 
        SetValueBoolean($ID_Betrieb , true); 
      else 
        SetValueBoolean($ID_Betrieb , false); 

    if (getBitState($StatusDez, 1))  // KWL CO2 adjust state an Bit1 auslesen 
        SetValueBoolean($CO2_Status , true); 
      else 
        SetValueBoolean($CO2_Status , false); 

    if (getBitState($StatusDez, 2))  // KWL %RH adjust state an Bit2 auslesen 
        SetValueBoolean($Luftfeuchte_Status , true); 
      else 
        SetValueBoolean($Luftfeuchte_Status , false); 

    if (getBitState($StatusDez, 3))  // KWL Heating state an Bit3 auslesen 
        SetValueBoolean($Heizung_Status , true); 
      else 
        SetValueBoolean($Heizung_Status , false); 

    if (getBitState($StatusDez, 4))  // KWL Filterguard indicator an Bit4 auslesen 
        SetValueBoolean($Filter_Status , true); 
      else 
        SetValueBoolean($Filter_Status , false); 

    if (getBitState($StatusDez, 5))  // KWL Heating indicator an Bit5 auslesen 
        SetValueBoolean($Heizung_Indikator , true); 
      else 
        SetValueBoolean($Heizung_Indikator , false); 

    if (getBitState($StatusDez, 6))  // KWL Fault indicator an Bit6 auslesen 
        SetValueBoolean($Fehler_Indikator , true); 
      else 
        SetValueBoolean($Fehler_Indikator , false); 

    if (getBitState($StatusDez, 7))  // KWL Service reminder an Bit7 auslesen 
        SetValueBoolean($Service , true); 
      else 
        SetValueBoolean($Service , false); 
         
    break; 
    */





      function 
    getBitState($Value$BitNo
      { 
        return ((
    $Value pow(2$BitNo)) != 0); 
      } 

    ?>
    Jetzt scheitere ich gerade etwas daran, die Variablen über das Skript zu aktualisieren.
    Eigentlich habe ich es so verstanden, dass mit den angelegten Instanzen, Variablen und Skripten die Variablen aus dem Datenstream automatisch ausgelesen und geschrieben werden.
    Jedoch passiert bei mir nichts.
    Kann ich das Sript irgendwie testen?
    Wenn ich auf Ausführen drücke passiert auch nichts...nicht einmal eine Fehlermeldung.
    Anscheinend habe ich noch nicht das Grundverständnis für IPS und scheitere an den Basics.

    Wäre spitze, wenn mir hier jemand auf die Sprünge helfen könnte.

    Danke und Gruß
    Stettler
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Cutter.JPG 
Hits:	21 
Größe:	75.5 KB 
ID:	48643   Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Cutter_Debug.JPG 
Hits:	24 
Größe:	189.1 KB 
ID:	48644   Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	SerialPort.JPG 
Hits:	23 
Größe:	58.7 KB 
ID:	48645   Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Register Variable.JPG 
Hits:	20 
Größe:	58.2 KB 
ID:	48646   Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Objektbaum.JPG 
Hits:	21 
Größe:	96.3 KB 
ID:	48647  


  2. #82
    Registriert seit
    Sep 2014
    Ort
    Limeshain (Hessen)
    Beiträge
    5,302

    Das Helios Modul steht ab sofort zur Verfügung

    [Modul] Helios (KWL mit easyControls Steuerung)

    Viele Grüße,
    Chris
    Geändert von Bayaro (28.05.19 um 11:26 Uhr)
    IP-Symcon Module >> www.bayaro.net << Verfügbare Module: BatterieMonitor, BundesligaTabelle, Enigma2BY, HeizölPreise, Helios, Horoskop, HostMonitor, IPSInformations, MELCloud, Müllabfuhr, PJLink, RSS, TankerkönigSpritpreise, xREL
    IPS Unlimited, ~1200 Scripte, ~7000 Variablen

Ähnliche Themen

  1. Helios KWL EC 300 PRO
    Von PhilippS im Forum Haustechnik
    Antworten: 72
    Letzter Beitrag: 28.05.19, 11:28
  2. KWL Helios Easycontrols über Http Auslesen
    Von PhilippS im Forum Haustechnik
    Antworten: 41
    Letzter Beitrag: 28.05.19, 11:26
  3. ebus LWZ 370 plus
    Von meike0_0 im Forum Haustechnik
    Antworten: 0
    Letzter Beitrag: 06.01.14, 07:57
  4. Berechnung von Wert pro Jahr ... Ablegen in verschiedene Vars
    Von honk0504 im Forum Skripte, PHP, SQL
    Antworten: 3
    Letzter Beitrag: 13.01.13, 18:15