+ Antworten
Seite 1 von 4 1 2 3 ... LetzteLetzte
Ergebnis 1 bis 10 von 36

Thema: IPswitch-SG

  1. #1
    Registriert seit
    Feb 2005
    Ort
    Sarkwitz
    Beiträge
    3,672

    Standard IPswitch-SG

    Das folgende Skript ermöglicht das Lesen der Eingänge des IPswitch-SG Gerät.
    Infos / Hersteller: SMS-GUARD, Überwachen und Schalten mit dem Handy per SMS - europaweit, SMS Alarm, GSM Alarm, m2m, Warnsystem für Privathandys, Warnsystem für Notfälle

    PHP-Code:
    //Hier die IP-Adresse des Geräts eintragen und per Excute das Skript ausführen //um die Installation zu vollziehen. Es wird automatisch ein Timer angelegt, //der alle 5 Minuten das Gerät abfragt.
    $ip "192.168.2.82";

    //Ab hier nichts mehr ändern
    $object IPS_GetObject($IPS_SELF);
    $parentID $object['ParentID'];

    //Installer
    if ($IPS_SENDER == "Execute") {
       
    IPS_SetHidden($IPS_SELFtrue);
       
    IPS_SetName($IPS_SELF"Auslese-Skript");
       
    $parentObject IPS_GetObject($parentID);
       if (
    $parentObject['ObjectType'] !== 1)
       {
           
    $instanceID IPS_CreateInstance("{485D0419-BE97-4548-AA9C-C083EB82E61E}");
           
    IPS_SetParent($instanceID$parentID);
           
    $parentID $instanceID;
           
    IPS_SetParent($IPS_SELF$parentID);
           
    IPS_SetName($instanceID"IPSwitchSG");
       }
       
    IPS_SetScriptTimer($IPS_SELF300);
    }

    $data file_get_contents("http://$ip/csv.html");
    $lines explode(","strip_tags($data));

    SetValue(CreateVariableByName($parentID"iC1"0), $lines[1] > 0);
    SetValue(CreateVariableByName($parentID"iC2"0), $lines[2] > 0);
    SetValue(CreateVariableByName($parentID"iC3"0), $lines[3] > 0);
    SetValue(CreateVariableByName($parentID"iE1"0), $lines[4] > 0);
    SetValue(CreateVariableByName($parentID"iE2"0), $lines[5] > 0);
    SetValue(CreateVariableByName($parentID"iTi Exceed"0), $lines[6] > 0);
    SetValue(CreateVariableByName($parentID"iTe Exceed"0), $lines[7] > 0);
    SetValue(CreateVariableByName($parentID"i10V Exceed"0), $lines[8] > 0);
    SetValue(CreateVariableByName($parentID"iTi"2"~Temperature"), str_replace("."","$lines[9]));
    SetValue(CreateVariableByName($parentID"iTe"2"~Temperature"), str_replace("."","$lines[10]));
    SetValue(CreateVariableByName($parentID"i10V"2), str_replace("."","$lines[11]));
    SetValue(CreateVariableByName($parentID"oC1"0), $lines[12] > 0);
    SetValue(CreateVariableByName($parentID"oC2"0), $lines[13] > 0);
    SetValue(CreateVariableByName($parentID"oE1"0), $lines[14] > 0);
    SetValue(CreateVariableByName($parentID"oE2"0), $lines[15] > 0);

    $data file_get_contents("http://$ip/cnt.html");
    $pos strpos($data"iC1= ");
    SetValue(CreateVariableByName($parentID"iCnt1"1), substr($data$pos+5strpos($data","$pos)-$pos-5));
    $pos strpos($data"iC2= ");
    SetValue(CreateVariableByName($parentID"iCnt2"1), substr($data$pos+5strpos($data" <"$pos)-$pos-5));
    $pos strpos($data"iC3= ");
    SetValue(CreateVariableByName($parentID"iCnt3"1), substr($data$pos+5strpos($data" <"$pos)-$pos-5));

     function 
    CreateVariableByName($id$name$type$profile "") {
      global 
    $IPS_SELF;
      
    $vid = @IPS_GetVariableIDByName($name$id);
      if(
    $vid === false) {
       
    $vid IPS_CreateVariable($type);
       
    IPS_SetParent($vid$id);
       
    IPS_SetName($vid$name);
       
    IPS_SetInfo($vid"this variable was created by script #$IPS_SELF");
       if(
    $profile !== "") { IPS_SetVariableCustomProfile($vid$profile); }
      }
      return 
    $vid;
     } 
    Zum Schalten können folgende Befehle verwendet werden:
    (bitte die IP-Adresse anpassen)

    PHP-Code:
    //Zum Schalten können diese Befehle kopiert werden
    file_get_contents("http://192.168.2.82/?oCA=1"); //oC1 AN
    file_get_contents("http://192.168.2.82/?oCA=0"); //oC1 AUS

    file_get_contents("http://192.168.2.82/?oC1=1"); //oC2 AN
    file_get_contents("http://192.168.2.82/?oC1=0"); //oC2 AUS

    file_get_contents("http://192.168.2.82/?oE1=1"); //oE1 AN
    file_get_contents("http://192.168.2.82/?oE1=0"); //oE1 AUS

    file_get_contents("http://192.168.2.82/?oE2=1"); //oE1 AN
    file_get_contents("http://192.168.2.82/?oE2=0"); //oE1 AUS

    file_get_contents("http://192.168.2.82/?res1"); //Reset CNT1
    file_get_contents("http://192.168.2.82/?res2"); //Reset CNT2
    file_get_contents("http://192.168.2.82/?res3"); //Reset CNT3 
    MST
    Geändert von paresy (09.08.10 um 15:01 Uhr)

  2. #2
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    19,400

    oC1 wird jetzt korrekt eingelesen.

    paresy

  3. #3
    Registriert seit
    Jun 2005
    Ort
    Lichtenau / Baden
    Beiträge
    53

    Lightbulb Script-Update / Erweiterung

    Falls jemand den SG-1 hat/einsetzt hier eine kleine erweiterung des abfragescripts von MST.

    im abfragescript anstelle der zeilen:

    PHP-Code:
    SetValue(CreateVariableByName($parentID"iTi Intern"2"~Temperature"), str_replace("."","$lines[9]));
    SetValue(CreateVariableByName($parentID"iTe Panel"2"~Temperature"), str_replace("."","$lines[10])); 
    diese einsetzen:

    PHP-Code:
    SetValue(CreateVariableByName($parentID"iT 0"2"~Temperature"), str_replace("."","$lines[16]));
    SetValue(CreateVariableByName($parentID"iT 1"2"~Temperature"), str_replace("."","$lines[17]));
    SetValue(CreateVariableByName($parentID"iT 2"2"~Temperature"), str_replace("."","$lines[18]));
    SetValue(CreateVariableByName($parentID"iT 3"2"~Temperature"), str_replace("."","$lines[19]));
    SetValue(CreateVariableByName($parentID"iT 4"2"~Temperature"), str_replace("."","$lines[20]));
    SetValue(CreateVariableByName($parentID"iT 5"2"~Temperature"), str_replace("."","$lines[21]));
    SetValue(CreateVariableByName($parentID"iT 6"2"~Temperature"), str_replace("."","$lines[22]));
    SetValue(CreateVariableByName($parentID"iT 7"2"~Temperature"), str_replace("."","$lines[23])); 
    damit werden alle 8 1-Wire Sensoren abgefragt und angelegt.

    Soweit ich es bis jetzt getestet habe gehen nur Sensoren mit dem Family-code 10.xx.xx....
    Sensoren aus der 28er familie werden zwar erkannt, aber nicht ausgelesen.

    flyship

  4. #4
    Registriert seit
    Apr 2007
    Ort
    Kaufbeuren/Allgäu
    Beiträge
    1,124

    Hallo flyship,

    an das IPswitch-SG1 kannst du jeden 1-Wire DS18S20 Temperatursensor in parasitär Modus betrieben werden.

    Grüße
    Andrge
    Geändert von paresy (19.10.10 um 08:33 Uhr)
    Hardware: 1-Wire Module für Temp-Feuchte, LCD-Displays, Rollladenaktor, Schaltmodule, Ernergieerfassung usw., Server Core I3, 10"Displays für IPS/Dashboard, Online Shop für 1-Wire Produkte
    Software: IPS, Dashboard, MySQL

  5. #5
    Registriert seit
    Jun 2005
    Ort
    Lichtenau / Baden
    Beiträge
    53

    hi andrge,

    Stimmt, das hab ich unterschlagen.

    geht im Parasitären Modus aber nur bis ~90°C.

    Da ich aber den SG-1 als Solar-Backup für den IPS-Rechner (wegen Windows, nicht wegen IPS!) nutze hab ich das erst gar nicht getestet.

    In den Kollektoren hab ich im Sommer so zwischen 100°C - 115°C.
    Ich weiß, ist sehr knapp für die 1wire-sensoren.
    Mal sehen wie lange die das noch mitmachen.
    Zwei Jahre halten sie jetzt schon.


    Flyship

  6. #6
    Registriert seit
    Apr 2007
    Ort
    Kaufbeuren/Allgäu
    Beiträge
    1,124

    Hallo Flyship,

    hier ist ein PT1000 Temperatursensor sicherlich die bessere Wahl, die gehen ohne Probleme bis 200°C, wird aber nicht direkt von der SG1 unterstützt.

    Grüße
    andrge
    Hardware: 1-Wire Module für Temp-Feuchte, LCD-Displays, Rollladenaktor, Schaltmodule, Ernergieerfassung usw., Server Core I3, 10"Displays für IPS/Dashboard, Online Shop für 1-Wire Produkte
    Software: IPS, Dashboard, MySQL

  7. #7
    Registriert seit
    Dec 2010
    Beiträge
    919

    Standard IPswitch-add-Eingänge

    Hallo zusammen,
    hat schon mal jemand ein Script für den IPswitch-add-Eingänge geschrieben?
    Hab mir so ein Teil zugelegt. Ist eine gute Alternative um 8 Stromzähler via S0 auszuwerten, zu loggen und zu visualisieren.
    Leider habe ich bisher kein Script oder Modul für die Einbindung in IPS gefunden. Habe als Newbie versucht das Script für den IPswitch-SG anzupassen und bin leider gescheitert. Einzelne html-Seiten auf die verwiesen wird gibt es beim "IPswitch-add-Eingänge" wohl nicht.
    Kann mir bitte jemand helfen? Oder muss ich das über einen wwwReader lösen?
    Danke für Euere Antworten,
    Grüsse, Wolfgang
    IPS 3.4 #3775 auf Windows7 x64. Hardware: FB 7490 06.51, Synology NAS DS 109+ DSM 4.2-3252 (Apache 2.2.22, MySQL 5.1.49), Gigaset S685IP, S0-Stomzähler, IPSwitchAddE, PlugWise USB 30 Circles, EnOcean, Sonos Play3.

  8. #8
    Registriert seit
    Dec 2010
    Beiträge
    919

    Hallo zusammen,
    hab jetzt mal selber angefangen. Es geht noch immer um den IPSwitchAddE.
    PHP-Code aus dem Forum zum auslesen von Webseiten. Werte Wh->KWh durch Berechnung an IPS-Standard-Variablen-Profile angepasst. Leider hab ich noch nicht verstanden wie ich auf der Webseite des Teils unter ./Set8.html den Wert z (Zählerstand) so eingebe dass er mir dann auch den eingegebenen Wert anzeigt. Eingegeben: 5407200 (als Wh), Anzeige 38490 (als Wh). Imp = 800/KWh. Daher hab ich den Zählerstand auf 0 gelassen und im Script den aktuellen Zählerstand addiert.
    PHP-Code:
    <?

    $ip 
    "192.168.178.100";
    $data file_get_contents("http://$ip/csv.html");
    $lines explode(","strip_tags($data));

    $ZaehlerStand = ($lines[16]+5411200)/1000;
    $AktVerbr $lines[25]/1000;

    SetValue(16528 /*[Test\Test_IP-Switch\IPSwitchAddE01\IPSwitchAddE01_iC16_AVerbr]*/ $AktVerbr);
    SetValue(47331 /*[Test\Test_IP-Switch\IPSwitchAddE01\IPSwitchAddE01_iC16_ZS]*/$ZaehlerStand);

    ?>
    Bin ich denn der erste der diese Hardware nutzt?
    Wenn nein wäre ich dankbar wenn ihr Eure Erfahrungen und Lösungen mit mir teilen würdet.
    Danke und
    Grüsse, Wolfgang
    IPS 3.4 #3775 auf Windows7 x64. Hardware: FB 7490 06.51, Synology NAS DS 109+ DSM 4.2-3252 (Apache 2.2.22, MySQL 5.1.49), Gigaset S685IP, S0-Stomzähler, IPSwitchAddE, PlugWise USB 30 Circles, EnOcean, Sonos Play3.

  9. #9
    Registriert seit
    Mar 2012
    Beiträge
    54

    Hallo Wolfgang,

    ich bin auch gerade auf das IPswitch-addE gestoßen und finde es sehr interessant, überlege mir ob ich es mir kaufe. Bist du denn schon weiter gekommen um eine sinvolle Auswertung hinzubekommen?

    Interessieren würde mich vorallem ob ich mir damit in IPSymcon den aktuellen verbrauch anzeigen lassen kann und mit dem Datenlogging sinvolle Langzeitdaten speichern kann?

    Vielen herzlichen Dank für Deine Antwort

    Gruß Robert

  10. #10
    Registriert seit
    Dec 2010
    Beiträge
    919

    Standard IPswitch-add-Eingänge erste Erfahrungen

    Hallo Robert,
    funktioniert eigentlich fast alles wie erwartet. Das mit dem Zählerstand hat folgendes auf sich: Hier kann man (sollte man können) den aktuellen Zählerstand eines Bestandszählers eingeben, so dass der IP-Switch von dort aus weiter zählt. Das funktioniert aber leider nur bis zu einem Wert von 5300000. Danach liefert das Ding irgend welche Werte. Nach einigen Mails mit dem Hersteller (war echt bemüht) räumte dieser ein, dass dies wohl noch ein Bug sei. Hab das ganze dann mit IPS umgerechnet um einen Vergleichswert zu erhalten.
    !! Hab eben noch mal die Zählerstandwerte angeschaut (mach ich eher selten). Auch im laufenden Betrieb fällt der Zählerstand bei 5500 KWh zurück auf 0. Bin mit dem Hersteller bereits wieder in Kontakt.
    Habe derzeit nur 3 Stromzähler angeschlossen, da ich Tests mit teueren geeichten und billigst ungeeichten fahre und mit der Beschaffung weiterer Zähler das Ergebnis abwarten will. Werden aber wohl die Billigen werden. Bisher sieht es so aus, dass der aktuelle Verbrauch beider Zähler meist identisch ist. Eine eingebaute Fehlerquelle ist, dass ich den Billigen hinter den Geeichten gehängt habe, so dass beim Geeichten der Eigenstomverbrauch des Billigen dazu kommt. Hab das jetzt seit 22. Jan am laufen und eine Zählerstandsdifferenz von 130 Watt (der Geeichte hat mehr) bei einem Gesamtvolumen von knapp 114 KWh.

    Hab mit der Installation von hinten angefangen, also Anschluss 16 abwärts.
    so sieht die ./csv.html aus:
    IPswitch csv m2-21c,0,0,0,0,0,0,0,0,0,0,0,0,0,103547,113878,53579, ,0,0,0,0,0,73,73,114,
    Hier das komplette Script:
    PHP-Code:
    $ip "192.168.178.100";
    $data file_get_contents("http://$ip/csv.html");
    //$data = file_get_contents("http://$ip/csv.html/?Password=Pass&sb.html");

    $lines explode(","strip_tags($data));
    //print_r($lines); //zeigt in welchen Zeilen was steht.

    $iC16_ZaehlerStand = ($lines[16]+153600)/1000;//SwissNox DSZ ungeeicht
    $iC16_AktVerbr $lines[25]/1000;

    $iC15_ZaehlerStand = ($lines[15])/1000;//Eltako WSZ geeicht
    $iC15_AktVerbr $lines[24]/1000;

    $iC14_ZaehlerStand = ($lines[14]+10200)/1000;//B + G WSZ ungeeicht
    $iC14_AktVerbr $lines[23]/1000;

    //Heizungsteuerung incl. Pumpen und Durchlauferhitzer
    SetValue(16528 /*[Verbrauche\Strom\IP-Switch_AddE_01\IPSwitchAddE01\IPSwitchAddE01_iC16_AVerbr]*/ $iC16_AktVerbr);
    SetValue(47331 /*[Verbrauche\Strom\IP-Switch_AddE_01\IPSwitchAddE01\IPSwitchAddE01_iC16_ZS]*/$iC16_ZaehlerStand);

    //IT-Verteiler mit geeichtem Eltako Stromzähler
    SetValue(51934 /*[Verbrauche\Strom\IP-Switch_AddE_01\IPSwitchAddE01\IPSwitchAddE01_iC15_AVerbr]*/ $iC15_AktVerbr);
    SetValue(51657 /*[Verbrauche\Strom\IP-Switch_AddE_01\IPSwitchAddE01\IPSwitchAddE01_iC15_Zs]*/ $iC15_ZaehlerStand);

    //IT-Verteiler mit ungeeichtem B+G Stromzähler
    SetValue(19625 /*[Verbrauche\Strom\IP-Switch_AddE_01\IPSwitchAddE01\IPSwitchAddE01_iC14_AVerbr]*/ $iC14_AktVerbr);
    SetValue(43992 /*[Verbrauche\Strom\IP-Switch_AddE_01\IPSwitchAddE01\IPSwitch_AddE01_iC14_ZS]*/ $iC14_ZaehlerStand); 
    Die Zeile mit dem Passwort ist irrelevant, da die csv.html auch ohne pw ausgelesen werden kann. Leider. ssl ist auch nicht möglich.
    Habe kein Online-Logging.

    Fazit: Das Teil ist für den Preis und die 8 S0-Zähler die es auswerten kann ok. Einziges Mango ist die Sache mit dem max. Zählerstand.
    !!Hab eben eine Antwort vom Hersteller bekommen. Bei neuen soll das Problem anscheinend behoben sein.!!
    ja, da gibt es inzwischen eine Lösung als Firmware-Update. Da die Neu-Programmierung hier Arbeitszeit verursacht, kostet das Update 20.-- pauschal zzgl. Mwst. + Versand.
    Oder halt einen neuen bestellen...
    Die Integration in IPS scheint mir (als PHP-Laie) einfach.

    Weitere Fragen? Gerne.
    Grüsse, Wolfgang
    IPS 3.4 #3775 auf Windows7 x64. Hardware: FB 7490 06.51, Synology NAS DS 109+ DSM 4.2-3252 (Apache 2.2.22, MySQL 5.1.49), Gigaset S685IP, S0-Stomzähler, IPSwitchAddE, PlugWise USB 30 Circles, EnOcean, Sonos Play3.

Ähnliche Themen

  1. Aufwand Modul-Erstellung IPSwitch | Eure Erfahrungen
    Von DanB im Forum Entwicklung mit PHP-SDK/Delphi-SDK
    Antworten: 3
    Letzter Beitrag: 19.03.08, 09:30