/** * @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]); }
/** * 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')); }