Browse Source

update go/l17.go added check for env value

root 3 weeks ago
parent
commit
74ee16f775
2 changed files with 26 additions and 8 deletions
  1. 26 8
      go/l17.go
  2. BIN
      go/output/l17

+ 26 - 8
go/l17.go

@@ -23,10 +23,16 @@ type OpenWeather struct{
 func WeatherReq() (string, float64) {
 	err := godotenv.Load()
 	if err != nil {
-		log.Fatalf("%v\n", err)
+		log.Fatalf("upload your .env file %v\n", err)
 	}
 	api := os.Getenv("openweathermap")
+	if api == "" {
+		log.Fatalf("add your openweathermap api in .env file\n")
+	}
 	city := os.Getenv("city_openweather")
+	if city == "" {
+		log.Fatalf("add your city for openweathermap in .env file\n")
+	}
 	client := &http.Client{
 		Timeout: 20 * time.Second,
 	}
@@ -40,6 +46,9 @@ func WeatherReq() (string, float64) {
 	if err != nil {
 		log.Fatalf("%v\n", err)
 	}
+	if resp.StatusCode != 200 {
+		log.Fatalf("openweathermap return %d\n", resp.StatusCode)
+	}
 	defer resp.Body.Close()
 	var WeatherData OpenWeather
 	err = json.NewDecoder(resp.Body).Decode(&WeatherData)
@@ -56,37 +65,46 @@ func Send(client mqtt.Client, topic string) {
 	token := client.Publish(topic, 1, false, payload)
 	token.Wait()
 	if err := token.Error(); err != nil {
-		log.Fatalf("%v\n", token.Error)
+		log.Fatalf("%v\n", token.Error())
 	} else {
 		fmt.Println("Sent in", topic)
 	}
 }
 
 func main() {
+	opts := mqtt.NewClientOptions()
+
 	err := godotenv.Load()
 	if err != nil { log.Fatalf("%v\n", err) }
 	broker := os.Getenv("broker_mqtt")
+	if broker == "" { log.Fatalf("add yout broker in .env file\n") }
 	ClientID := os.Getenv("clientid_mqtt")
+	if ClientID == "" { log.Fatalf("add your client id in .env file") }
 	topic := os.Getenv("topic_mqtt")
+	if topic == "" { log.Fatalf("add your topic in .env file") }
 	username := os.Getenv("login_mqtt")
+	if username != "" { opts.SetUsername(username) }
 	password := os.Getenv("password_mqtt")
+	if password != "" { opts.SetPassword(password) }
 	TimeHour := os.Getenv("TimeHourSendMQTT")
 
-	ReallyTimeHour, err := strconv.Atoi(TimeHour)
-
-	opts := mqtt.NewClientOptions()
 	opts.AddBroker(broker)
 	opts.SetClientID(ClientID)
 	opts.SetConnectTimeout(5 * time.Second)
-	opts.SetUsername(username)
-        opts.SetPassword(password)
 
 	client := mqtt.NewClient(opts)
 	if token := client.Connect(); token.Wait() && token.Error() != nil { log.Fatalf("%v\n", token.Error()) }
 	defer client.Disconnect(250)
 
 	fmt.Println("Connect to a broker")
-	ticker := time.NewTicker(time.Duration(ReallyTimeHour) * time.Hour)
+	var ticker *time.Ticker
+	if TimeHour != "" {
+		ReallyTimeHour, err := strconv.Atoi(TimeHour)
+		if err != nil { log.Fatalf("%s\n", err) }
+		ticker = time.NewTicker(time.Duration(ReallyTimeHour) * time.Hour)
+	} else {
+		ticker = time.NewTicker(2 * time.Hour)
+	}
 	defer ticker.Stop()
 	Send(client, topic)
 

BIN
go/output/l17