+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 18
  1. #1
    Registriert seit
    Jun 2011
    Beiträge
    535

    Question Seneye API in IPS nutzen

    Hallo zusammen,

    ich weis nicht ob ihr mir da helfen könnt. Ich habe mir ein Seneye Reef Aquarium Monitor gekauft. Dieser misst die Temperatur und verschiedene Wasserwerte von meinem Aquarium ... Problem er legt diese jedoch nicht lokal ab, sondern lädt diese auf eine "Cloud" des Herstellers. Ein direkter Zugriff ist seitens des Herstellers ausgeschlossen. Jetzt meinten die, ich könnte mir die Werte per API holen. Leider kenne ich mich damit nicht aus ... kann mir da wer weiterhelfen ?! Die Seite lautet https://api.seneye.com/

    Danke schonmal

    Andreas
    Professional

  2. #2
    Registriert seit
    Sep 2008
    Ort
    Staufenberg nr KS
    Beiträge
    2,071

    die antwort findest du in deinem link: klick mal da dann auf get device. da ist alles erklärt:
    mit https://api.seneye.com/v1/devices?user=***&pwd=***
    greifst du quasi direkt auf die datenbank zu und bekommst als antwort ein xml mit deinen daten
    die du dann beliebig auswerten/speichern.. kannst.
    habe selber div anwendungen mit apis laufen, ich suche mal was passendes raus
    IP-Symcon Version: 5.5 ninja - unlim auf WIN7pro
    server:Shuttle XS35V4,HPSlate21,IPS-868,HM,HMip,FS20,piVCCU3,IPcams, FB 7590, TM-D710GE(GPS), Raspi3, Pioneer VSX, Libratone, MieleWCR870WPS, SamsungNZ64N7777

  3. #3
    Registriert seit
    Jun 2011
    Beiträge
    535

    Danke !

    Gruss

    Andreas
    Professional

  4. #4
    Registriert seit
    Sep 2008
    Ort
    Staufenberg nr KS
    Beiträge
    2,071

    nimm doch mal als beispiel die wunderground-api
    wenn du den programmablauf ansiehst, kannst du deine anwendung davon ableiten (über string xml anfordern dann ergebnis auseinanderpflücken und verarbeiten)
    IP-Symcon Version: 5.5 ninja - unlim auf WIN7pro
    server:Shuttle XS35V4,HPSlate21,IPS-868,HM,HMip,FS20,piVCCU3,IPcams, FB 7590, TM-D710GE(GPS), Raspi3, Pioneer VSX, Libratone, MieleWCR870WPS, SamsungNZ64N7777

  5. #5
    Registriert seit
    Feb 2009
    Ort
    Hamburg
    Beiträge
    2,109

    Moin....

    ... viel Spaß damit!
    Gruß,
    Peter

    PHP-Code:
    <?
     



     
    /* Abfrage der Seneye-API zum auslesen von Aquariumdaten. IP-SYMCON-FORUM THEMA " API in IPS nutzen "
     Link http://www.ip-symcon.de/forum/threads/20704-API-in-IPS-nutzen?p=187473#post187473
     Abfrage abgewandelt aus Thema " Wetterdaten - Wunderground API " von User "jbu"
     Link http://www.ip-symcon.de/forum/threads/19268-Wetterdaten-Wunderground-API?highlight=wunderground

     Ersteller : peterchrisben
     Datum: 10.04.2013
     Version: 2.0
     */
     
       
    $user 'BENUTZERNAME'// Eigenen Benutzername eintragen
       
    $password 'PASSWORT'// Eigenes PW eintragen
       
    $device_id 'ID DES SENSORS'// ID des Sensors eintragen

       
    $debug false;  // BEI TRUE WERDEN DIE ALLE WERTE ALS ARRAY UNTEN AUSGEGEBEN !
       
              // ID-ABFRAGE
              //$json_string = file_get_contents("http://api.seneye.com/v1/devices?user=$user&pwd=$password");
            //$parsed_json = json_decode($json_string);
          //$id = ($parsed_json[0]->id);
          // echo $id;
        
          
          
    $json_string file_get_contents("http://api.seneye.com/v1/devices/$device_id?IncludeState=1&user=$user&pwd=$password");
          
    $parsed_json json_decode($json_string);

            if (
    $debug == true)
          {
              
    print_r ($parsed_json);   //
       
    }


       
    //  DEVICE INFORMATIONEN
      
    $id $parsed_json->{'id'};
      
    $description $parsed_json->{'description'};
      
    $type $parsed_json->{'type'};
      
    $time_diff $parsed_json->{'time_diff'};
    //  $status_disconnect = $parsed_json->{'status'}->{'disconnected'}; // <------- ALT -> GIBT ES NICHT MEHR IN DER API UND KANN GELÖSCHT WERDEN
      
    $status_slide_serial $parsed_json->{'status'}->{'slide_serial'}; // <------ NEU
      
    $status_slide_expires $parsed_json->{'status'}->{'slide_expires'}; // <------ NEU
    //  $status_DeviceConsumURN = $parsed_json->{'status'}->{'DeviceConsumURN'}; // <------- ALT -> GIBT ES NICHT MEHR IN DER API UND KANN GELÖSCHT WERDEN
      
    $status_out_of_water $parsed_json->{'status'}->{'out_of_water'};
      
    $status_wrong_slide $parsed_json->{'status'}->{'wrong_slide'};
      
    $status_last_experiment $parsed_json->{'status'}->{'last_experiment'};

      
    // TEMPERAR INFORMATIONEN
      
    $temp_trend $parsed_json->{'exps'}->{'temperature'}->{'trend'};
      
    $temp_critical $parsed_json->{'exps'}->{'temperature'}->{'critical_in'};
      
    $temp_avg $parsed_json->{'exps'}->{'temperature'}->{'avg'};
      
    $temp_status $parsed_json->{'exps'}->{'temperature'}->{'status'};
      
    $temp_curr $parsed_json->{'exps'}->{'temperature'}->{'curr'};
      
    $temp_advises $parsed_json->{'exps'}->{'temperature'}->{'advises'};
      
      

      
    // PH INFORMATIONEN
      
    $ph_trend $parsed_json->{'exps'}->{'ph'}->{'trend'};
      
    $ph_critical_in $parsed_json->{'exps'}->{'ph'}->{'critical_in'};
      
    $ph_avg $parsed_json->{'exps'}->{'ph'}->{'avg'};
      
    $ph_status $parsed_json->{'exps'}->{'ph'}->{'status'};
      
    $ph_curr $parsed_json->{'exps'}->{'ph'}->{'curr'};
      
    $ph_advises $parsed_json->{'exps'}->{'ph'}->{'advises'};

      
    // NH3 INFORMATIONEN
      
    $nh3_trend $parsed_json->{'exps'}->{'nh3'}->{'trend'};
      
    $nh3_critical_in $parsed_json->{'exps'}->{'nh3'}->{'critical_in'};
      
    $nh3_avg $parsed_json->{'exps'}->{'nh3'}->{'avg'};
      
    $nh3_status $parsed_json->{'exps'}->{'nh3'}->{'status'};
      
    $nh3_curr $parsed_json->{'exps'}->{'nh3'}->{'curr'};
      
    $nh3_advises $parsed_json->{'exps'}->{'nh3'}->{'advises'};
      
      
    // NH4 INFORMATIONEN <------ NEU !!!
      
    $nh4_trend $parsed_json->{'exps'}->{'nh4'}->{'trend'};
      
    $nh4_critical_in $parsed_json->{'exps'}->{'nh4'}->{'critical_in'};
      
    $nh4_avg $parsed_json->{'exps'}->{'nh4'}->{'avg'};
      
    $nh4_status $parsed_json->{'exps'}->{'nh4'}->{'status'};
      
    $nh4_curr $parsed_json->{'exps'}->{'nh4'}->{'curr'};
      
    $nh4_advises $parsed_json->{'exps'}->{'nh4'}->{'advises'};
      
      
    // o2 INFORMATION   <---- NEU !!!
      
    $o2_trend $parsed_json->{'exps'}->{'o2'}->{'trend'};
      
    $o2_critical_in $parsed_json->{'exps'}->{'o2'}->{'critical_in'};
      
    $o2_avg $parsed_json->{'exps'}->{'o2'}->{'avg'};
      
    $o2_status $parsed_json->{'exps'}->{'o2'}->{'status'};
      
    $o2_curr $parsed_json->{'exps'}->{'o2'}->{'curr'};
      
    $o2_advises $parsed_json->{'exps'}->{'o2'}->{'advises'};
      
      
    // LICHT INFORMATIONEN  <---- ALT !! WURDE UMBENANNT IN LUX UND EIN PAAR WERTE ENTFERNT. LICHT KANN GELÖSCHT WERDEN
    //  $light_max_value = $parsed_json->{'exps'}->{'light'}->{'max_value'};
    //  $light_status = $parsed_json->{'exps'}->{'light'}->{'status'};
    //  $light_curr = $parsed_json->{'exps'}->{'light'}->{'curr'};
    //  $light_advises = $parsed_json->{'exps'}->{'light'}->{'advises'};

      // LUX INFORMATIONEN   <---- NEU ->NAME LUX STATT LIGHT
      
    $lux_status $parsed_json->{'exps'}->{'lux'}->{'status'};
      
    $lux_curr $parsed_json->{'exps'}->{'lux'}->{'curr'};
      
    $lux_advises $parsed_json->{'exps'}->{'lux'}->{'advises'};
      
      
    // PAR INFORMATIONEN ??? <------ NEU
      
    $par_curr $parsed_json->{'exps'}->{'par'}->{'curr'};
      
    $par_advises $parsed_json->{'exps'}->{'par'}->{'advises'};
      
      
    // KELVIN INFORMATIONEN <------- NEU
      
    $kelvin_curr $parsed_json->{'exps'}->{'kelvin'}->{'curr'};
      
    $kelvin_advises $parsed_json->{'exps'}->{'kelvin'}->{'advises'};



        
    // UMRECHNEN UNIX-TIME ----> ZEIT / DATUM
      
    $datum_last_experiment date("H:i:s - d.m.Y",$status_last_experiment);




        if (
    $debug == true)
          {
          echo 
    "Ein kleines Beispiel an Werten die ausgegeben werden können:";
        echo 
    "ID: $id\n";
        echo 
    "Bezeichnun: $description\n";
        echo 
    "Letzte Messung: $datum_last_experiment\n";
        echo 
    "Lichtwert LUX AKTUELL: $lux_curr\n";
        echo 
    "Temp AVG: $temp_avg";
        
    // echo usw.
        
    }



    ?>
    UPDATE:

    Die API hat sich geändert. Das Skript ist angepasst. Version 2.0 vom 10.04.13 ist aktuell.
    Geändert von PeterChrisben (10.04.13 um 18:33 Uhr) Grund: SKRIPT AKTUALISIERT. DIE API WURDE VERÄNDERT.
    -MacMini(2011) =>Parallels 11=>Win7, FB7390, EIB-KNX, DMX-ArtNet, 2x EM24 DIN, SONOS ZP100/120/Play:1/Play:5/Sub, 1Wire=>Wiregate, xbee=>ROOMBA, Dreambox, DENON 2313, 8x Philips HUE -

  6. #6
    Registriert seit
    May 2007
    Ort
    Köln
    Beiträge
    252

    Standard API hat sich wohl schon wieder geändert

    Code:
    <?
     /* Abfrage der Seneye-API zum auslesen von Aquariumdaten. IP-SYMCON-FORUM THEMA " API in IPS nutzen "
     Link http://www.ip-symcon.de/forum/threads/20704-API-in-IPS-nutzen?p=187473#post187473
     Abfrage abgewandelt aus Thema " Wetterdaten - Wunderground API " von User "jbu"
     Link http://www.ip-symcon.de/forum/threads/19268-Wetterdaten-Wunderground-API?highlight=wunderground
    
     Ersteller : peterchrisben und von Udo ein bisserl angepasst
     Datum: 02.10.2013
     Version: 2.1
     */
    
       $user = 'User'; // Eigenen Benutzername eintragen
       $password = 'password'; // Eigenes PW eintragen
       $device_id = 'ID'; // ID des Sensors eintragen
    
       $debug = false;  // BEI TRUE WERDEN DIE ALLE WERTE ALS ARRAY UNTEN AUSGEGEBEN !
    
       // ID-ABFRAGE
       //$parsed_json = json_decode($json_string);
       //$id = ($parsed_json[0]->id);
       //echo $id;
    
    
       $json_string = file_get_contents("http://api.seneye.com/v1/devices/$device_id?IncludeState=1&user=$user&pwd=$password");
       //echo $json_string;
    	$parsed_json = json_decode($json_string);
    
       if ($debug == true)
        {
         print_r ($parsed_json);   //
        }
    
    
      // DEVICE INFORMATIONEN
      $id = $parsed_json->{'id'};
      $description = $parsed_json->{'description'};
      $type = $parsed_json->{'type'};
      $time_diff = $parsed_json->{'time_diff'};
      $status_disconnected = $parsed_json->{'status'}->{'disconnected'};
      $status_out_of_water = $parsed_json->{'status'}->{'out_of_water'};
      $status_wrong_slide = $parsed_json->{'status'}->{'wrong_slide'};
      $status_last_experiment = $parsed_json->{'status'}->{'last_experiment'};
    
      // TEMPERAR INFORMATIONEN
      $temp_trend = $parsed_json->{'exps'}->{'temperature'}->{'trend'};
      $temp_critical = $parsed_json->{'exps'}->{'temperature'}->{'critical_in'};
      $temp_avg = $parsed_json->{'exps'}->{'temperature'}->{'avg'};
      $temp_status = $parsed_json->{'exps'}->{'temperature'}->{'status'};
      $temp_curr = $parsed_json->{'exps'}->{'temperature'}->{'curr'};
      $temp_advises = $parsed_json->{'exps'}->{'temperature'}->{'advises'};
    
      // PH INFORMATIONEN
      $ph_trend = $parsed_json->{'exps'}->{'ph'}->{'trend'};
      $ph_critical_in = $parsed_json->{'exps'}->{'ph'}->{'critical_in'};
      $ph_avg = $parsed_json->{'exps'}->{'ph'}->{'avg'};
      $ph_status = $parsed_json->{'exps'}->{'ph'}->{'status'};
      $ph_curr = $parsed_json->{'exps'}->{'ph'}->{'curr'};
      $ph_advises = $parsed_json->{'exps'}->{'ph'}->{'advises'};
    
      // NH3 INFORMATIONEN
      $nh3_trend = $parsed_json->{'exps'}->{'nh3'}->{'trend'};
      $nh3_critical_in = $parsed_json->{'exps'}->{'nh3'}->{'critical_in'};
      $nh3_avg = $parsed_json->{'exps'}->{'nh3'}->{'avg'};
      $nh3_status = $parsed_json->{'exps'}->{'nh3'}->{'status'};
      $nh3_curr = $parsed_json->{'exps'}->{'nh3'}->{'curr'};
      $nh3_advises = $parsed_json->{'exps'}->{'nh3'}->{'advises'};
    
      // o2 INFORMATION
      $o2_trend = $parsed_json->{'exps'}->{'o2'}->{'trend'};
      $o2_critical_in = $parsed_json->{'exps'}->{'o2'}->{'critical_in'};
      $o2_avg = $parsed_json->{'exps'}->{'o2'}->{'avg'};
      $o2_status = $parsed_json->{'exps'}->{'o2'}->{'status'};
      $o2_curr = $parsed_json->{'exps'}->{'o2'}->{'curr'};
      $o2_advises = $parsed_json->{'exps'}->{'o2'}->{'advises'};
    
      // LIGHT INFORMATIONEN
      $light_curr = $parsed_json->{'exps'}->{'light'}->{'curr'};
      $light_advises = $parsed_json->{'exps'}->{'light'}->{'advises'};
    
      // UMRECHNEN UNIX-TIME ----> ZEIT / DATUM
      $datum_last_experiment = date("H:i:s - d.m.Y",$status_last_experiment);
    
      if ($debug == true)
       {
        echo "Ein kleines Beispiel an Werten die ausgegeben werden können:";
        echo "ID: $id\n";
        echo "Bezeichnung: $description\n";
        echo "Letzte Messung: $datum_last_experiment\n";
        echo "Lichtwert LUX AKTUELL: $light_curr\n";
        echo "Temp AVG: $temp_avg";
        // echo usw.
        }
    
    ?>
    Geändert von U.d.o (02.10.13 um 18:36 Uhr) Grund: Version 2.1
    Gruß,
    Udo

    CCU2 (2007 - 2016 -> Phase out) KNX, EnOcean (Phase in), Z-Wave, HomeKit, Philips HUE

  7. #7
    Registriert seit
    Apr 2010
    Ort
    Oberbayern
    Beiträge
    5,047

    [OT]

    Wie oft tauscht Ihr denn die Slides aus?

    [/OT]
    Grüsse, Kronos.
    Wenn am Anfang alles schief geht, nenne es Version 1.0
    IPS 5.5 auf Server 2016 / HM und HM-IP mit CCU2 (RaspberryMatic) + LAN-Adapter + LAN- & Wired Gateway, 252 Geräte / XBee Pro (Roomba) / RoboRock S50 / RGB-W 868 / MiLight / EKM 868 / AKM / ein Rudel Squeezeboxen+Pi / EM24DIN+VS102 / AM 220 AC / Shelly / VU+ / ALL4x00 / LevelJet / IRTRans / Echos diverse / Harmony / Sainlogic / viel zu wenig Zeit


    Einfach mal rein schauen: IPS-Chat

  8. #8
    Registriert seit
    Oct 2007
    Ort
    Villach,Kärnten,Österreich
    Beiträge
    3,187

    Servus

    Wie seid ihr denn zufrieden mit den seneye ?
    Mein Uralt-Selbstbau PH Meter hat endgültig das zeitliche gesegnet und zur x-ten Reparatur hab ich keine rechte Lust.

    Im speziellen interessiert mich die Genauigkeit der PH Messung. Leitwert kann das Teil ja nicht ?
    Habt ihr Vergleiche mit sauber kalibrierten PH Sonden ?
    Diese Kalibrieretiketten muß man echt alle Monate tauschen ? Das wären ja 120€ Betriebskosten im Jahr. Schon viel.


    Alternativ suche ich eine an den PC anbindbare PH,Leitwert,O2 Messung.
    Temperatur/Licht/Pegel oder irgendwelche Steuerscenarien wie sie die diversen Aquacomputer bieten brauch ich nicht.

    thx
    bb

  9. #9
    Registriert seit
    Jun 2011
    Beiträge
    535

    Moin bb,

    Also ich bin damit recht zufrieden. Am Anfang hab ich noch nachgemessen. Passt ziemlich genau. Die Chips reichen auch für 60 Tage locker. Merkst dann schon wenn sie am Ende sind. Kh soll z.b. Noch kommen.
    Professional

  10. #10
    Registriert seit
    May 2007
    Ort
    Köln
    Beiträge
    252

    Standard Abfrage der API im Browser funktioniert, aber mit PHP nicht mehr ...

    Hallo Zusammen,

    zumindest bei mir lief das alte script nicht mehr.
    Folgende Änderungen und es geht wieder:


    $json_string = file_get_contents("http://api.seneye.com/v1/devices/$device_id?IncludeState=1&user=$user&pwd=$password ");
    $json_string = Sys_GetURLContentEx("https://api.seneye.com/v1/devices/$device_id?IncludeState=1&user=$user&pwd=$password ");

    [$parsed_json = json_decode($json_string);
    $parsed_json = simplexml_load_string($json_string);
    Geändert von U.d.o (19.02.15 um 00:43 Uhr)
    Gruß,
    Udo

    CCU2 (2007 - 2016 -> Phase out) KNX, EnOcean (Phase in), Z-Wave, HomeKit, Philips HUE

Ähnliche Themen

  1. Interface NEST zu IPS über neue API
    Von BestEx im Forum Schaufenster
    Antworten: 20
    Letzter Beitrag: 16.12.18, 21:05
  2. IPS nutzen zur Auswertung von Rechnerlaufzeiten
    Von AEAlexander im Forum Alles rund um den PC
    Antworten: 2
    Letzter Beitrag: 29.03.12, 18:25
  3. Windows DLL (api) in IPS
    Von h.theunissen im Forum Entwicklung mit PHP-SDK/Delphi-SDK
    Antworten: 1
    Letzter Beitrag: 12.08.09, 14:20
  4. Designer in IPS-Demo nutzen?
    Von Thunder im Forum Dashboard
    Antworten: 16
    Letzter Beitrag: 23.03.06, 22:30