+ Antworten
Seite 2 von 59 ErsteErste 1 2 3 4 12 52 ... LetzteLetzte
Ergebnis 11 bis 20 von 581
  1. #11
    Registriert seit
    Dec 2008
    Beiträge
    262

    Standard Wandthermostat Setup per WebFront

    Hallo...

    meine HM-Wandthermostate (...leider habe ich damit erst drei Zimmer bestückt ... ) arbeiten autark. Ich verwende IPS eigentlich "nur" zur Visualisierung der Werte und zum Programmieren der Zeitprogramme. So funktioniert das ganze auch dann, wenn der Server mal down ist.
    Dank vieler Hinweise und Tipps in diesem Forum habe ich hierzu ein paar Scripte "zusammengetragen" bzw. auch etwas selbst gebastelt (siehe Bilder). Bei Interesse kann ich die Scripe gerne hier zur Verfügung stellen.

    Gruß

    Swifty
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	01.jpg 
Hits:	1843 
Größe:	150.4 KB 
ID:	20504   Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	02.jpg 
Hits:	1365 
Größe:	140.2 KB 
ID:	20505  

  2. #12
    Registriert seit
    Feb 2012
    Ort
    Wasserliesch
    Beiträge
    53

    Thumbs up Scripte

    Hallo,
    sieht ja super aus. Hätte Interesse an den Scripten.
    Gruß
    Jan
    Zentrale: Raspberry Pi3 B+ & RPI-RF-MOD & StromPi2 - RaspberryMatic
    IPS-Server: Raspberry Pi3 B+ & StromPi2 - IPSymcon, IPSView, Homematic -
    Sonstiges: KNX, 2x DMX4ALL ArtNet LED Dimmer 6, div. Kameras, Doorbird, Sonos

  3. #13
    Registriert seit
    Dec 2008
    Beiträge
    262

    Standard Scripte

    Hallo...

    anbei findet ihr meine Skripte und ein paar Bilder, die Euch bei der Einrichtung helfen sollten.
    Die Einrichtung geht nur per Hand, d.h. alle Variablen, Profile und Assoziationen müssen manuell angelegt und zusammen mit den Aktionsskripten den Variablen zuweisen werden...

    1. Die Skripte "HM_Heizung_Funktionen.ips" und "hmxml.inc" in den Skriptordner von IPS kopieren,
    2. in der Datei "hmxml.inc.php" die IP und den Port der HM-Zentrale angepasst und
    3. alle Variablen und Scripte gemäß Bild 1 anlegen.
      Dabei bekommen alle Variablen, in der Kategorie "Zeitplan - Editieren" mit Ausnahme von "HM_Edit_Tagesprofil_Anzeige_html", "HM_Edit_WochenProfil_Anzeige_html" und HM_Edit_Profil_temporär" das nachfolgende Aktionsscript "HM_Edit" zugewiesen. Die Profile und Assoziationen der Variablen könnt Ihr den beigefügten Bildern entnehmen.

      Skript "HM_Edit"

      In diesem Skript müsst Ihr noch die IDs der von Euch angelegten Variablen (siehe 2.), die HM_DeviceIDs und die IDs der HM_Wochenprofile der WTe eintragen. Die Kommentare im Script sowie das Bild 1 sollten da weiterhelfen.


      PHP-Code:
      <?
      include "HM_Heizung_Funktionen.ips.php";
      include 
      "hmxml.inc.php";

      $dayArray = array("MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY");

      $HM_Zimmer_Auswahl_id=33994 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_Zimmer_Auswahl]*/ ;
      $Profil_Wochentage_id34509 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_Wochentag_Auswahl]*/;
      $Profil_Slot_Auswahl_id=17709 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_TagesProfil_Slot_Auswahl]*/;

      $TagesProfil_edit_Anzeige_id 21003 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_Tagesprofil_Anzeige_html]*/;
      $WochenProfil_edit_Anzeige_id=42364 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_WochenProfil_Anzeige_html]*/ ;

      $Profil_temp_id=25362 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_Profil_temporär]*/;

      $Temp_edit_id=36633 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_+1°C_-1°C]*/ ;
      $Zeit_edit_id=17552 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_+10min_-10min]*/ ;
      $Slot_add_del_id=53093 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_Slot_add_del]*/ ;

      $Wochenprofil_speichern_id=41049 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_Profil_speichern]*/ ;

      $Profil_uebertragen_show_id32176 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_Profil_übertragen]*/ ;
      $Tagesprofil_kopieren_id=26219 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_Tragesprofil_kopieren]*/ ;
      $Wochenprofil_uebernehmen_von_id 13687 /*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_Wochenprofil_übernehmen_von]*/ ;

      //***************************************************************************************************************************************
      //***************************************************************************************************************************************

      /****************************************
      // $IPS_HM_DeviceIDs der Wandthermostate
      *******************************/
      //$IPS_HM_DeviceID[Assoziation von Variable $HM_Zimmer_Auswahl] = [id von CLIMATECONTROL_REGULATOR des jeweiligen WT]
      $IPS_HM_DeviceID[1]=28913 /*[Hardware\Haus\Erdgeschoss\Küche\Heizung\HM-CC-TC - Küche\CLIMATECONTROL_REGULATOR]*/ ;
      $IPS_HM_DeviceID[2]=32495 /*[Hardware\Haus\1. Etage\Arbeitszimmer\Heizung\HM-CC-TC - Arbeitszimmer\CLIMATECONTROL_REGULATOR]*/;
      $IPS_HM_DeviceID[3]=52055 /*[Hardware\Haus\1. Etage\Bad\Heizung\HM-CC-TC - Bad\CLIMATECONTROL_REGULATOR]*/ ;


      //$IPS_HM_Wochenprofil[Assoziation von Variable $HM_Zimmer_Auswahl] = [id des abgespeicherten Wochenprofils des WT]
      $IPS_HM_Wochenprofil[1]=20249 /*[Gewerke\Heizung\Küche\Steuerung\HM_Heizung_WochenProfil]*/ ;
      $IPS_HM_Wochenprofil[2]=26666 /*[Gewerke\Heizung\Arbeitszimmer\Steuerung\HM_Heizung_WochenProfil]*/;
      $IPS_HM_Wochenprofil[3]=22164 /*[Gewerke\Heizung\Bad\Steuerung\HM_Heizung_Wochenprofil]*/ ;
      //*********************************




      if ($_IPS['SENDER']=='WebFront')
          {

          

          If (
      $_IPS['VARIABLE']==$Wochenprofil_speichern_id)
              {
              If (
      GetValue($Wochenprofil_speichern_id)==1// Es liegen Änderungen zum speichern vor
                 
      {
                 
      // Teste Integrität der Tagesprofile
                 
      If (HM_WochenTempProfil_prüfen($Profil_temp_id) == "OK")
                    {
                    
      // echo "Alles OK !!";
                   
      $tmp=HMXML_setTempProfile($IPS_HM_DeviceID[GetValue($HM_Zimmer_Auswahl_id)], unserialize(GetValue($Profil_temp_id)));
                      if (
      $tmp==1)
                         {
                         echo 
      "Speichern Erfolgreich";
                     
      $tmp HMXML_getTempProfile($IPS_HM_DeviceID[GetValue($HM_Zimmer_Auswahl_id)],falsefalse);
                          
      Setvalue($IPS_HM_Wochenprofil[GetValue($HM_Zimmer_Auswahl_id)], serialize($tmp));

                          
      SetValue($Profil_temp_idGetValue($IPS_HM_Wochenprofil[GetValue($HM_Zimmer_Auswahl_id)]));
      //                    SetValue($WochenProfil_aktuell_Anzeige_id, HM_WochenTempProfil_html($Profil_temp_id));
                       
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_id));

                          
      $tmp=(unserialize(Getvalue($Profil_temp_id)));
                          
      $day=GetValue($Profil_Wochentage_id);
                          
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                          
      SetValue($Wochenprofil_speichern_id,0);  // Speicher Button zurücksetzen
                         
      }
                      }
                   else
                      {
                      echo 
      HM_WochenTempProfil_prüfen($Profil_temp_id);
                      }
                   }
                 }
              else
               {
               
      SetValue($_IPS['VARIABLE'],$_IPS['VALUE']);
               }


          Switch (
      $_IPS['VARIABLE'])
             {
              Case 
      $HM_Zimmer_Auswahl_id ;
                    
      //33994*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_Zimmer_Auswahl]*/
                    
                  
      If (GetValue($HM_Zimmer_Auswahl_id)== 0// Zurücksetzen
                     
      {
                     
      SetValue($Profil_Slot_Auswahl_id,1);
                     
      SetValue($Profil_Wochentage_id,0);
                     
      SetValue($Profil_temp_id"");
                     
      $str =     $str "<table align='center' border=0 cellpadding=3 cellspacing=3 width=90%>
                                      <tr height=30 ><th> Slot </th><th> Start </th><th> Ende </th><th> SollWert</th></tr>"
      ;
                  
      $str .= "<tr  align='center' height=25> <td width=25%>  </td><td width=25%> </td><td width=25%> </td><td width=25%> </td></tr></table>";
                  
      SetValue($TagesProfil_edit_Anzeige_id$str);
      //                SetValue($WochenProfil_aktuell_Anzeige_id,"");
                      
      SetValue($WochenProfil_edit_Anzeige_id,"");
                      
      SetValue($Wochenprofil_speichern_id,0);  // Speicher Button zurücksetzen
                      
      }
                      
                  If (
      GetValue($HM_Zimmer_Auswahl_id)> 0)
                      {

                      
      SetValue($Profil_temp_idGetValue($IPS_HM_Wochenprofil[GetValue($HM_Zimmer_Auswahl_id)]));
      //                SetValue($WochenProfil_aktuell_Anzeige_id, HM_WochenTempProfil_html($Profil_temp_id));
                  
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));

                      
      $tmp=(unserialize(Getvalue($Profil_temp_id)));
                      
      $day=GetValue($Profil_Wochentage_id);
                      
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                            
                      
      SetValue($Wochenprofil_speichern_id,0);  // Speicher Button zurücksetzen
                      
      }

               break;

               Case 
      $Profil_Slot_Auswahl_id;
               If (
      GetValue($HM_Zimmer_Auswahl_id)!=0)
                      {
                  
      $tmp=(unserialize(Getvalue($Profil_temp_id)));
                      
      $day=GetValue($Profil_Wochentage_id);
                    
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                    }
               break;
               
               
                Case 
      $Profil_Wochentage_id//34509;

                  
      If (GetValue($HM_Zimmer_Auswahl_id)!=0)
                     {
                     
      $tmp=(unserialize(Getvalue($Profil_temp_id)));
                      
      $day=GetValue($Profil_Wochentage_id);
                        
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                  
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));

                        
                        If (
      IPS_GetVariableProfile("HM_Heizung_Slot")['MaxValue']<GetValue($Profil_Slot_Auswahl_id))
                           {
                          
      SetValue($Profil_Slot_Auswahl_id,IPS_GetVariableProfile("HM_Heizung_Slot")['MaxValue']);
                           }
                   }
                break;


               Case 
      $Zeit_edit_id//17552 *[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_+10min_-10min]*/
                    
                  
      If (GetValue($HM_Zimmer_Auswahl_id)!=0)
                     {
                   
      $tmp=(unserialize(Getvalue($Profil_temp_id)));
                      
      $day=GetValue($Profil_Wochentage_id);
                      
      $Slot=GetValue($Profil_Slot_Auswahl_id);

                  
      SetValue($Wochenprofil_speichern_id,1);  // Speicher Button freigeben

                      
      If ($Slotcount($tmp[$dayArray[$day]]['EndTimes'])) // Verhindert dass die Zeit des letzten Slots geändert wird (ist immer 24:00)
                          
      {
                          If (
      $Slot==1)
                             {
                              
      $Start "00:00";
                              }
                            else
                              {
                              
      $Start $tmp[$dayArray[$day]]['EndTimes'][$Slot-2];
                              }
                      
                          
      $Ende $tmp[$dayArray[$day]]['EndTimes'][$Slot-1];
                          
      $Ende_next $tmp[$dayArray[$day]]['EndTimes'][$Slot];

                          Switch (
      GetValue($Zeit_edit_id))
                             {
                              Case 
      1// -1h
                                  
      If ((strtotime($Ende)-(60*60))> strtotime($Start))
                                     {
                                     
      $Ende date("H:i", (strtotime($Ende)-(60*60)));
                                     }
                                
      $tmp[$dayArray[$day]]['EndTimes'][$Slot-1]=$Ende;
                                
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                                
      SetValue($Profil_temp_id,serialize($tmp));
                                
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_id,GetValue($Profil_Wochentage_id)));
                             break;




                              Case 
      2// -10 min
                                  
      If ((strtotime($Ende)-(10*60))> strtotime($Start))
                                     {
                                     
      $Ende date("H:i", (strtotime($Ende)-(10*60)));
                                     }
                                
      $tmp[$dayArray[$day]]['EndTimes'][$Slot-1]=$Ende;
                                
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                                
      SetValue($Profil_temp_id,serialize($tmp));
                                
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));
                             break;

                              Case 
      3// +10min
                                  
      If ((strtotime($Ende)+(10*60))< strtotime($Ende_next))
                                     {
                                     
      $Ende date("H:i", (strtotime($Ende)+(10*60)));
                                     }
                                
      $tmp[$dayArray[$day]]['EndTimes'][$Slot-1]=$Ende;
                                
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                                
      SetValue($Profil_temp_id,serialize($tmp));
                                
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));
                               break;
                               
                              Case 
      4// +1h
                                  
      If ((strtotime($Ende)+(60*60))< strtotime($Ende_next))
                                     {
                                     
      $Ende date("H:i", (strtotime($Ende)+(60*60)));
                                     }
                                
      $tmp[$dayArray[$day]]['EndTimes'][$Slot-1]=$Ende;
                                
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                                
      SetValue($Profil_temp_id,serialize($tmp));
                                
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));
                               break;

                            }
                         }
                       
      SetValue($Zeit_edit_id,0);
                       }
               break;

               Case 
      $Temp_edit_id;    //36633*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_+1°C_-1°C]*/

                  
      If (GetValue($HM_Zimmer_Auswahl_id)!=0)
                     {
                      
      $tmp=(unserialize(Getvalue($Profil_temp_id)));
                      
      $day=GetValue($Profil_Wochentage_id);
                      
      $Slot=GetValue($Profil_Slot_Auswahl_id);
                   
      $Temperatur $tmp[$dayArray[$day]]['Values'][$Slot-1];

                      
      SetValue($Wochenprofil_speichern_id,1);  // Speicher Button freigeben
               
                   
      Switch (GetValue($Temp_edit_id))
                         {
                         Case 
      1// -1°C min
               
                            
      If (($Temperatur-1)>=4.99)
                                  {
                                  
      $Temperatur=$Temperatur-1;
                                  
      $tmp[$dayArray[$day]]['Values'][$Slot-1]=$Temperatur;
                             
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                             
      SetValue($Profil_temp_id,serialize($tmp));
                             
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));
                                  }
                        break;
                    
                         Case 
      2// -0.1°C min
                              
      If (($Temperatur-0.1)>4.9)
                                  {
                                  
      $Temperatur=$Temperatur-0.1;
                                  
      $tmp[$dayArray[$day]]['Values'][$Slot-1]=$Temperatur;
                             
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                             
      SetValue($Profil_temp_id,serialize($tmp));
                             
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));
                                  }
                        break;

                         Case 
      3// +0.1°C min
                            
      If (($Temperatur+0.1)<30.1)
                                  {
                                  
      $Temperatur=$Temperatur+0.1;
                                  
      $tmp[$dayArray[$day]]['Values'][$Slot-1]=$Temperatur;
                             
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                             
      SetValue($Profil_temp_id,serialize($tmp));
                             
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));
                                  }
                        break;

                         Case 
      4// +1°C min
                            
      If (($Temperatur+1)<=30.01)
                                  {
                                  
      $Temperatur=$Temperatur+1;
                                  
      $tmp[$dayArray[$day]]['Values'][$Slot-1]=$Temperatur;
                             
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                             
      SetValue($Profil_temp_id,serialize($tmp));
                             
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));
                                  }
                        break;
                          }
                          
      SetValue($Temp_edit_id,0);
                     }
                 break;
                  
                  Case 
      $Slot_add_del_id;//*[Gewerke\Heizung\Zeitplan - Editieren\HM_Edit_Slot_add_del]*/
                     
      If (GetValue($HM_Zimmer_Auswahl_id)!=0)
                         {
                       
      $tmp=(unserialize(Getvalue($Profil_temp_id)));
                           
      $day=GetValue($Profil_Wochentage_id);
                           
      $Slot=GetValue($Profil_Slot_Auswahl_id);
                           
      $Slots count($tmp[$dayArray[$day]]['EndTimes']);

                           
      SetValue($Wochenprofil_speichern_id,1);  // Speicher Button freigeben
                           
                             
      Switch (GetValue($Slot_add_del_id))
                            {

                              Case 
      1;   // ZeitSlot löschen

                                  
      If ($Slots >1)  // letzter TimeSlot darf nicht gelöscht werden
                                     
      {
                                      
      array_splice($tmp[$dayArray[$day]]['EndTimes'], $Slot-11);
                                
      array_splice($tmp[$dayArray[$day]]['Values'], $Slot-11);
                              
      $tmp[$dayArray[$day]]['EndTimes'][$Slots-2]="24:00"// letzten TimeSlot Ende immer 24:00
                                
                                
                                
                               
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                                  
      SetValue($Profil_temp_id,serialize($tmp));
                                  
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));

                                      If (
      IPS_GetVariableProfile("HM_Heizung_Slot")['MaxValue']<GetValue($Profil_Slot_Auswahl_id))
                                           {
                                          
      SetValue($Profil_Slot_Auswahl_id,IPS_GetVariableProfile("HM_Heizung_Slot")['MaxValue']);
                                           }
                                      }
                              break;


                              Case 
      2;   // ZeitSlot anfügen

                                  
      If ($Slots <24)  // max 24 TimeSlots zulässig
                                     
      {
                                      
      array_splice($tmp[$dayArray[$day]]['EndTimes'], $Slots0"24:00");
                                
      array_splice($tmp[$dayArray[$day]]['Values'], $Slots0"17");

                               
      SetValue($TagesProfil_edit_Anzeige_idHM_TagesTempProfil_html($tmp[$dayArray[$day]], GetValue($Profil_Slot_Auswahl_id)));
                                  
      SetValue($Profil_temp_id,serialize($tmp));
                                  
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));

                                      If (
      IPS_GetVariableProfile("HM_Heizung_Slot")['MaxValue']<GetValue($Profil_Slot_Auswahl_id))
                                           {
                                          
      SetValue($Profil_Slot_Auswahl_id,IPS_GetVariableProfile("HM_Heizung_Slot")['MaxValue']);
                                         }
                                      }
                                break;
                        
                            }
                          
      SetValue($Slot_add_del_id,0);
                          }
                       
                       
                  break;

                  Case 
      $Profil_uebertragen_show_id;

                     
      //Ein- und Ausschalten der erweiterten Anzeige
                 
      IPS_SetHidden(32006 /*[Visualization\WebFront\Haus / Garten\Heizung\Zeitplan - Editieren\Zeitplan - Editieren - Anzeige recht\Profil übertragen / Prüfil übernehmen]*/, !IPS_GetObject 32006 /*[Visualization\WebFront\Haus / Garten\Heizung\Zeitplan - Editieren\Zeitplan - Editieren - Anzeige recht\Profil übertragen / Prüfil übernehmen]*/  )['ObjectIsHidden']);

                  break;


                  Case 
      $Tagesprofil_kopieren_id;
                    If (
      GetValue($HM_Zimmer_Auswahl_id)!=0)
                         {
                          
      $tmp=(unserialize(Getvalue($Profil_temp_id)));
                          
      $day_ziel=$dayArray[GetValue($Tagesprofil_kopieren_id)];
                          
      $day_quelle=$dayArray[GetValue($Profil_Wochentage_id)];
                          
      array_splice($tmp[$day_ziel]['EndTimes'], 0count($tmp[$day_ziel]['EndTimes']), $tmp[$day_quelle]['EndTimes']);
                          
      array_splice($tmp[$day_ziel]['Values'], 0count($tmp[$day_ziel]['Values']), $tmp[$day_quelle]['Values']);
                          
                          
      SetValue($Profil_temp_id,serialize($tmp));
                      
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));
                      
                         
      SetValue($Wochenprofil_speichern_id,1);  // Speicher Button freigeben
                          
      }
                  
                  
                  break;
                  
                  case 
      $Wochenprofil_uebernehmen_von_id:
                    If (
      GetValue($HM_Zimmer_Auswahl_id)!=0)
                         {
                      If (
      GetValue($Wochenprofil_uebernehmen_von_id)!=0)
                             {
                         
      $tmp=(unserialize(Getvalue($IPS_HM_Wochenprofil[GetValue($Wochenprofil_uebernehmen_von_id)]))); // Wochenprofil holen
                              
      SetValue($Profil_temp_id,serialize($tmp));
                          
      SetValue($WochenProfil_edit_Anzeige_idHM_WochenTempProfil_html($Profil_temp_idGetValue($Profil_Wochentage_id)));
                             
      SetValue($Wochenprofil_speichern_id,1);  // Speicher Button freigeben
                              
      }
                          }
                  break;

              break;
              }
          }

      if (
      $_IPS['SENDER']=='Variable')
          {

          }


      //****************************************************************************************************

      ?>
    4. Je nach Anzahl der Zimmer ist das Variablenprofil "HM_Heizung_Auswahl" entsprechend anpassen.
    5. Als nächstes müsst Ihr für jedes WT (also für jeden Raum) die Variablen anlegen und nachfolgende Aktionsskripte zuweisen. Als Beispiel findet Ihr im Bild 1 die Struktur des Raums "Küche". In den Aktionsskripten müssen auch die IDs angepasst werden

      Skript "HM_Heizung_Modus"

      PHP-Code:
      <?
      include "hmxml.inc.php";
      $IPS_DeviceID=28913 /*[Hardware\Haus\Erdgeschoss\Küche\Heizung\HM-CC-TC - Küche\CLIMATECONTROL_REGULATOR]*/  ;

      if (
      $_IPS['SENDER']=='WebFront')
          {
          
      HMXML_setTCMode($IPS_DeviceID$_IPS['VALUE']);
          
      // $IPS_DeviceID: IPS Instance ID
          // $nMode: INTEGER - Mode 0 = MANUAL, 1 = AUTO, 2=CENTRAL, 3 = PARTY

         
      if (HMXML_getTCMode($IPS_DeviceID)==$_IPS['VALUE'])
              {
              
      SetValue($_IPS['VARIABLE'],$_IPS['VALUE']);
              }
          }

      ?>
      Skript HM_Heizung_WochenProfil_auslesen

      PHP-Code:
      <?

      include "hmxml.inc.php";
      $IPS_DeviceID=28913 /*[Hardware\Haus\Erdgeschoss\Küche\Heizung\HM-CC-TC - Küche\CLIMATECONTROL_REGULATOR]*/  ;
      $ID_tempProfile=20249 /*[Gewerke\Heizung\Küche\Steuerung\HM_Heizung_WochenProfil]*/  ;

      $tempProfile HMXML_getTempProfile($IPS_DeviceID,falsefalse);
      // $IPS_DeviceID: IPS Instance ID
      // $day: STRING - Name of day in english (not case-sensitive) or false for all days
      // $echo: BOOL - if true, the Temperature profiles is output in readable format with time values

      // print_r($tempProfile);
      //echo HMXML_getTCMode($IPS_DeviceID);
      Setvalue($ID_tempProfileserialize($tempProfile));

      ?>
      Skript HM_WochenProfil_Zeitplan_Anzeige

      PHP-Code:
      <?
      include "HM_Heizung_Funktionen.ips.php";

      $ID_tempProfile=20249 /*[Gewerke\Heizung\Küche\Steuerung\HM_Heizung_WochenProfil]*/  ;
      $ID_html=58886 /*[Gewerke\Heizung\Küche\Steuerung\HM_Heizung_WichenProfil_Anzeige_html]*/  ;

      SetValue($ID_htmlHM_WochenTempProfil_html($ID_tempProfile));

      ?>
      Achtet darauf in den Aktionsskripten die Variablen IDs anzupassen.


    6. Jetzt noch das Script "HM_WochenProfil_Zeitplan_Anzeige" auf eine Aktualisierung der Variable "HM_Heizung_WochenProfil" tiggern,
    7. die Struktur für das Webfront anlegen (siehe Bilder WF_01 und WF_02) und
    8. das Webfront nach eigenem Belieben gestalten ... .


    Ich hoffe, ich habe nichts vergessen.

    Gruß

    Swifty

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bild01.jpg 
Hits:	1028 
Größe:	102.5 KB 
ID:	20512Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bild02 - Profil Slot.jpg 
Hits:	910 
Größe:	108.7 KB 
ID:	20513Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bild03 - Profil Wochentag.jpg 
Hits:	819 
Größe:	151.7 KB 
ID:	20514Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bild04 - Profil Zimmer.jpg 
Hits:	757 
Größe:	119.5 KB 
ID:	20515Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bild05 - Profil Temp.jpg 
Hits:	799 
Größe:	110.6 KB 
ID:	20516Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bild06 - Profil Zeit.jpg 
Hits:	758 
Größe:	138.1 KB 
ID:	20517Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bild07 - Profil Slot add del.jpg 
Hits:	741 
Größe:	148.5 KB 
ID:	20518Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bild08 - Profil Profil speichern.jpg 
Hits:	688 
Größe:	139.3 KB 
ID:	20519Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bild09 - Profil Profil übertragen.jpg 
Hits:	690 
Größe:	135.1 KB 
ID:	20520
    Angehängte Dateien Angehängte Dateien
    Geändert von Swifty (16.03.13 um 00:10 Uhr)

  4. #14
    Registriert seit
    Dec 2008
    Beiträge
    262

    Standard noch mehr Bilder

    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bild10 - Profil Heizung Steuerung.jpg 
Hits:	639 
Größe:	151.3 KB 
ID:	20521Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bild_WF_01.jpg 
Hits:	680 
Größe:	108.8 KB 
ID:	20522Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	Bild_WF_02.jpg 
Hits:	594 
Größe:	87.0 KB 
ID:	20523

  5. #15
    Registriert seit
    Oct 2007
    Ort
    Villach,Kärnten,Österreich
    Beiträge
    2,951

    Servus swifty

    also zur grafischen Darstellung des Heizplanes muß ich dir gratulieren.
    Hab mir schon lange überlegt wie man die zugrundeliegende Zahlenkolonne gut leserlich darstellen kann.

    Deine grafische Lösung find ich echt gut. Denke die bringt dir viele viele WAF Punkte.

    gruß
    bb

  6. #16
    Registriert seit
    Jul 2010
    Ort
    Südwestpfalz
    Beiträge
    6,764

    Da freu ich mich auch schon auf den Test am WE. Damke
    Gruß Boui . . . IPS-unlim. auf Tinker Board S und pivccu

    Die gefährlichste Form der Zensur ist die Schere im eigenen Kopf.(Curzio Malaparte)

  7. #17
    Registriert seit
    Dec 2008
    Beiträge
    262

    Hallo...

    mit Hilfe des Project-Exporters von raketenschnecke (http://www.raketenschnecke.net/2012/...ject-exporter/ ) habe ich das ganze Projekt in ein Export-Script verpacken können, mit dessen Hilfe die Installation bei Euch recht fix gehen sollte:

    1. die Dateien "hmxml.inc.php" und "HM_Heizung_Funktionen.ips.php" ins Skripverzeichnis von IPS kopieren,
    2. in der Datei "hmxml.inc.php" die IP und der Port der HM-Zentrale anpassen,
    3. das Exportskript im Zielsystem importiert (Script anlegen, Export-Script-Inhalt reinkopieren),
    4. das Export-Script ggf. konfigurieren (Angabe der WFC-ID, optionale Kopier-Parameter),
    5. das Export-Scripts im Zielsystem ausführen -> Quellprojekt wird im Zielsystem angelegt,
    6. das Installationsprotokoll kontrollieren (befindet im Script-Meldefenster und im Instalationsprotokoll), ggf. manuell nacharbeiten,
    7. im neu angelegten Skript "HMEdit" Eure HM_DeviceIDs und die IDs der HM_Wochenprofile der WTe eintragen/ändern/löschen,
    8. je nach Anzahl der Zimmer ist das Variablenprofil "HM_Heizung_Auswahl" entsprechend anpassen,
    9. für jeden Raum die IDs in den Skripten "HM_Heizung_WochenProfil_auslesen", "HM_Heizung_Modus" und "HM_WochenProfil_Zeitplan_Anzeige" anpassen und
    10. im WF die Struktur an die von Euch gewünschte Stelle verschieben.


    ... theoretisch fertig ...

    Ich konnte die Installation mittels des Exportskripes bisher noch nicht testen ... daher no risk no fun ... ... ne mal Spaß beiseite. Wenn jemand ein Testsystem hat, wo er das ganze mal ausprobieren könnte, wäre das echt super.


    Gruß

    Swifty
    Angehängte Dateien Angehängte Dateien
    Geändert von Swifty (16.03.13 um 00:14 Uhr)

  8. #18
    Registriert seit
    Feb 2013
    Beiträge
    15

    Hallo Zusammen,
    ich habe gerade das Script ausprobiert, nachdem ich natürlich schon zu 90% mit dem geklimper fertig war.

    Egal.. gleich das Script getestet und geschaut ob es Probleme gibt.

    Die Nachbessrungen in den Einzelnen Scripten waren etwas nervig, gingen aber recht gut von der Hand. Hier wäre vielleicht noch etwas Doku notwendig aber soweit so gut. Da ich mich seit Tagen selbst damit beschäftige war das für mich kein Thema.

    Mit den 3 Räumen funktioniert es nach den Anpassungen gut. Wo ich etwas ausprobieren musste war bei der Erweiterung auf 4 Räume. Das geht gerade mit dem Web Konfigurator nicht so leicht von der Hand. Inzwischen läuft aber auch das.

    Die Arbeit von dir Swifty finde ich klasse. Du hast mir gerade einiges an Arbeit abgenommen.

    Wünsche/Verbesserungen:
    Die IP Adresse der CCU solltest du ins Konfig File mit aufnehmen. Ich habe das etwas länger gesucht bis ich auf die Idee mit dem Script gekommen bin.

    Die beiden include Skripte in den Exporter mit aufnehmen.

    Ist es möglich, für verschiedene Anwesenheitsprofile auch verschiedene Wochenprofile zu speichern? Habe mir noch nicht alle deine Scripts durchgeschaut. Wäre das eine Idee? Ich habe gesehen, dass du in deiner Oberfläche das auch integiert hast. Wie überträgst du dies auf die Heizungssteuerung?

    Gruß
    Steffen

    P.S. RS freut sich immer wenn sein Exporter verwendet wird.
    Geändert von TheEldar (15.03.13 um 22:55 Uhr)

  9. #19
    Registriert seit
    Dec 2008
    Beiträge
    262

    Hallo...

    ich entnehme Deinen Worten, dass das Skript bei Dir funktioniert ... ist ja super ...

    Wünsche/Verbesserungen:
    Die IP Adresse der CCU solltest du ins Konfig File mit aufnehmen. Ich habe das etwas länger gesucht bis ich auf die Idee mit dem Script gekommen bin.

    Ist es möglich, für verschiedene Anwesenheitsprofile auch verschiedene Wochenprofile zu speichern? Habe mir noch nicht alle deine Scripts durchgeschaut. Wäre das eine Idee? Ich habe gesehen, dass du in deiner Oberfläche das auch integiert hast. Wie überträgst du dies auf die Heizungssteuerung?
    IP Adresse:
    Da ich die Datei "hmxml.inc.php" auch in anderen Skripten verwende, möchte ich die IP und den Port der HM-Zentrale nicht in das Heizungsscript übernehmen. Ich werde dennoch gleich Hinweis in die Beschreibung aufnehmen... danke

    Anwesenheitsprofile:
    Da triffst du genau ins Schwarze. Mit dem Gedanken, in Abhängigkeit vom jeweiligen Anwesenheitsprofil unterschiedliche Wochen bzw. Tagesprofile für die einzelnen Räumen zu aktivieren ringe ich bereits seit langem. Jedoch fehlte mir bisher immer die Zeit dieses Ansinnen umzusetzen. ... Ich hab mir jedoch fest vorgenommen, dies noch vor der nächsten Heizperiode zu integrieren...

  10. #20
    Registriert seit
    Jul 2010
    Ort
    Südwestpfalz
    Beiträge
    6,764

    Klasse Arbeit und Dank auch an Schneckchen.

    Der Run war erfolgreich. Momentan such ich mir noch die IDs zusammen.

    Später:
    So, passt.
    Wird eigentlich der Modus auch ausgelesen? Bei mir steht in jedem Raum Manuell, obwohl die in der WT auf Auto stehen.
    Geändert von Boui (15.03.13 um 23:55 Uhr) Grund: Nachtrag
    Gruß Boui . . . IPS-unlim. auf Tinker Board S und pivccu

    Die gefährlichste Form der Zensur ist die Schere im eigenen Kopf.(Curzio Malaparte)

Ähnliche Themen

  1. Neuer HomeMatic Funk-Heizkörperthermostat
    Von drapple im Forum HomeMatic
    Antworten: 49
    Letzter Beitrag: 14.12.13, 18:50
  2. Einstellen von Datum und Ereignissen wie im Demo-Webfront
    Von Silberstreifen im Forum WebFront
    Antworten: 6
    Letzter Beitrag: 02.11.13, 08:10
  3. Temperatur im Webfront einstellen
    Von dirk32 im Forum WebFront
    Antworten: 11
    Letzter Beitrag: 29.09.13, 12:47
  4. Heizkörperthermostat CHVZ-01/03
    Von mpcc im Forum Eaton Xcomfort
    Antworten: 25
    Letzter Beitrag: 29.02.12, 12:33
  5. Mode der Beschattung über Webfront einstellen
    Von woytkem im Forum WebFront
    Antworten: 4
    Letzter Beitrag: 30.08.11, 13:08

Stichworte