Пример #1
0
 /**
  * @inheritdoc
  */
 public function handle($arguments)
 {
     $update = $this->getUpdate();
     $from = $update->getMessage()->getFrom()->getId();
     $user = User::where('chat_id', '=', $from)->first();
     echo $user;
     if (!$user) {
         $response = "Hi, " . $update->getMessage()->getFrom()->getFirstName() . "!" . PHP_EOL . "Ich würde dir gerne helfen, aber leider kennen wir uns noch gar nicht. Damit wir uns kennen lernen können, besuche bitte humiditybot.com (noch nicht verfügbar).";
     } else {
         $devices = $user->devices;
         if (count($devices) == 0) {
             $response = "Hi, " . $update->getMessage()->getFrom()->getFirstName() . "!" . PHP_EOL . "Ich würde dir gerne helfen, aber du hast leider keine Sensoren registriert. Ich kann dir einen Particle Photon und einen DHT-22 Sensor empfehlen.";
         } else {
             $response = "Aktuelle Messwerte:" . PHP_EOL;
             foreach ($devices as $device) {
                 $values = Values::where('device_id', '=', $device->id)->orderBy('id', 'DESC')->take(2)->get();
                 if (!$values) {
                     $response = "Es tut mir furchtbar leid, aber ich kann in meinem Durcheinander leider keine Werte für dich finden.";
                 } else {
                     if ($values[0]->humidity > $values[1]->humidty) {
                         $trendHumidityCode = "⬆";
                         //going up
                     }
                     if ($values[0]->humidity == $values[1]->humidity) {
                         $trendHumidityCode = "➡";
                         //staying the same
                     }
                     if ($values[0]->humidity < $values[1]->humidity) {
                         $trendHumidityCode = "⬇";
                         //going down
                     }
                     if ($values[0]->temparature > $values[1]->temparature) {
                         $trendTemparatureCode = "⬆";
                         //going up
                     }
                     if ($values[0]->temparature == $values[1]->temparature) {
                         $trendTemparatureCode = "➡";
                         //staying the same
                     }
                     if ($values[0]->temparature < $values[1]->temparature) {
                         $trendTemparatureCode = "⬇";
                         //going down
                     }
                     $response .= "Für " . $device->description . " wurden folgende Messwerte gefunden:" . PHP_EOL;
                     $response .= "Luftfeuchtigkeit: " . $values[0]->humidity . "% " . $trendHumidityCode . PHP_EOL;
                     $response .= "Temparatur: " . $values[0]->temparature . "°C " . $trendTemparatureCode . PHP_EOL;
                     date_default_timezone_set('Europe/Berlin');
                     $time = strtotime($values[0]->time . ' UTC');
                     $response .= "Gemessen am " . date('d.m.Y', $time) . ", um " . date('H:i:s', $time) . PHP_EOL;
                 }
             }
         }
     }
     $this->replyWithMessage(['text' => $response]);
 }
Пример #2
0
 /**
  * stores Values that are sent using a partile webhook
  * @return Response - A Laravel Response Object
  */
 public function createValues()
 {
     // $time = time(Input::get('published_at'));
     $time = strtotime(Input::get('published_at'));
     $time = date('Y-m-d H:i:s', $time);
     $receivedValues = json_decode(Input::get('data'));
     $values = new Values();
     $values->temparature = $receivedValues->temparature;
     $values->humidity = $receivedValues->humidity;
     $device = Device::where('name', '=', Input::get('coreid'))->first();
     if (!$device) {
         \App::abort(500, 'The device is not registered');
     }
     $values->device_id = $device->id;
     $values->time = $time;
     if (!$values->save()) {
         \App::abort(500, 'An error occured');
     }
     return Response::json(array('message' => 'Values stored successfully'));
 }