Ankündigung

Einklappen
Keine Ankündigung bisher.

Rauchmelder für KNX gesucht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    EugenDo :

    Hallo Eugen,

    könntest Du bitte hier im Forum beschreiben, wie Du die Abfrage der Nest-Brandmelder über den Gira Homeserver geschafft hast. Eventuell könntest Du ja auch das Skript posten. Ich bin mit den Nest Protect sehr zufrieden, mehr fehlt nur die KNX-Anbindung.

    Vielen Dank,

    Jan

    Kommentar


      #17
      JanStr37


      die Anbindung erfolgt über einen recht "provisorischen" PHP-Script, der das Problem des möglichen Redirects seitents Nest löst ...

      PHP-Code:


      //Mal Quick & Dirty .... wenn mal Zeit da ist, dann mal sauber machen

      $url'https://developer-api.nest.com';
      $bearer "GEHEIM";

      $arrContextOptions=array(
            
      "ssl"=>array(
                  
      "verify_peer"=>false,
                  
      "verify_peer_name"=>false
              
      ),
          
            
      'http'=>array(
              
      'header'=> "Content-type: application/json"."\r\n"."Authorization: Bearer ".$bearer  ,
              
      'method'=>'GET'
            
      )
          );  

      $response file_get_contents($urlfalsestream_context_create($arrContextOptions));

      $response json_decode($response);

      $devices $response->devices;

      $rauchmelder $devices->smoke_co_alarms;

      $antwort = new stdClass();
      $antwort->melder = array();

      $antwort->melder[0] = new stdClass();
      $antwort->melder[1] = new stdClass();
      $antwort->melder[2] = new stdClass();

      $antwort->melder[0]->name "Flur";
      $antwort->melder[1]->name "Kaminzimmer";
      $antwort->melder[2]->name "Schlafzimmer";


      foreach (
      $rauchmelder as $protect) {
          
          if (
      $protect->name_long === "Hallway Nest Protect"//Flur
          
      {
              
      $i 0;
              
      $antwort->melder[$i]->rauch = ($protect->smoke_alarm_state === "ok")? 1;
              
      $antwort->melder[$i]->co = ($protect->co_alarm_state === "ok")? 1;
              
      $antwort->melder[$i]->batterie = ($protect->battery_health === "ok")? 0;
              
          }
          
          if (
      $protect->name_long === "Kaminzimmer Nest Protect"//Kaminzimmer
          
      {
              
      $i 1;
              
      $antwort->melder[$i]->rauch = ($protect->smoke_alarm_state === "ok")? 1;
              
      $antwort->melder[$i]->co = ($protect->co_alarm_state === "ok")? 1;
              
      $antwort->melder[$i]->batterie = ($protect->battery_health === "ok")? 0;
              
          }

          if (
      $protect->name_long === "Bedroom Nest Protect"//Schlafzimmer
          
      {
              
      $i 2;
              
      $antwort->melder[$i]->rauch = ($protect->smoke_alarm_state === "ok")? 1;
              
      $antwort->melder[$i]->co = ($protect->co_alarm_state === "ok")? 1;
              
      $antwort->melder[$i]->batterie = ($protect->battery_health === "ok")? 0;
              
          }
          
      }

      echo 
      json_encode($antwort); 

      Antwort:

      Code:
      {"melder":[{"name":"Flur","rauch":0,"co":0,"batterie":1},{"name":"Kaminzimmer","rauch":0,"co":0,"batterie":1},{"name":"Schlafzimmer","rauch":0,"co":0,"batterie":1}]}
      Der HS ruft dann den JSON regelmäßig ab und verarbeitet die Werte weiter ... (Webseiten-Abruf)

      Kommentar


        #18
        Okay, vielen Dank dafür. Ich bin nicht so fit mit dem Homeserver, könntest Du eventuell noch die Webseiten-Abfrage posten? Wie verarbeitest Du dann die Ergebnisse weiter, um die Anzeige im Quadclient zu erhalten? Vielen Dank, das hilft mir alles sehr!

        Kommentar


          #19
          Zitat von JanStr37 Beitrag anzeigen
          Okay, vielen Dank dafür. Ich bin nicht so fit mit dem Homeserver, könntest Du eventuell noch die Webseiten-Abfrage posten? Wie verarbeitest Du dann die Ergebnisse weiter, um die Anzeige im Quadclient zu erhalten? Vielen Dank, das hilft mir alles sehr!
          Ohh ... das war an mich ... ohne Zitat oder Erwähnung bekomme ich nur per Zufall mit, dass man mich anspricht ....


          Hier meine Abfrage im Experte (es ist eine komplexe Abfrage mit RegEx) ....


          Code:
          .+"Flur".*"rauch":([0-1]).*"co":([0-1]).*"batterie":([0-1]).*"Kaminzimmer".*"rauch":([0-1]).*"co":([0-1]).*"batterie":([0-1]).*"Schlafzimmer".*"rauch":([0-1]).*"co":([0-1]).*"batterie":([0-1])



          nest-komplexe-web-seite-abfrage-experte.PNG

          Kommentar

          Lädt...
          X