Merge pull request 'Sauna: Add update timestamp to sauna api' (#2) from add_time_to_sauna_api into main
Reviewed-on: #2
This commit is contained in:
commit
fdd1bd94c1
11
main.go
11
main.go
@ -6,6 +6,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
"sync"
|
"sync"
|
||||||
|
"time"
|
||||||
|
|
||||||
mqtt "github.com/eclipse/paho.mqtt.golang"
|
mqtt "github.com/eclipse/paho.mqtt.golang"
|
||||||
)
|
)
|
||||||
@ -13,6 +14,8 @@ import (
|
|||||||
type temperature struct {
|
type temperature struct {
|
||||||
Value float64 `json:"value"`
|
Value float64 `json:"value"`
|
||||||
Unit string `json:"unit"`
|
Unit string `json:"unit"`
|
||||||
|
Time time.Time `json:"time"`
|
||||||
|
Valid bool `json:"valid"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -33,11 +36,15 @@ var saunaHandler mqtt.MessageHandler = func(client mqtt.Client, msg mqtt.Message
|
|||||||
log.Printf("Received message: %s from topic: %s\n", msg.Payload(), msg.Topic())
|
log.Printf("Received message: %s from topic: %s\n", msg.Payload(), msg.Topic())
|
||||||
sauna_mutex.Lock()
|
sauna_mutex.Lock()
|
||||||
err := json.Unmarshal(msg.Payload(), &sauna_temperature)
|
err := json.Unmarshal(msg.Payload(), &sauna_temperature)
|
||||||
sauna_mutex.Unlock()
|
sauna_temperature.Time = time.Now()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
sauna_temperature.Valid = false
|
||||||
|
sauna_mutex.Unlock()
|
||||||
logger.Print(err)
|
logger.Print(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
sauna_temperature.Valid = true
|
||||||
|
sauna_mutex.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
var connectHandler mqtt.OnConnectHandler = func(client mqtt.Client) {
|
var connectHandler mqtt.OnConnectHandler = func(client mqtt.Client) {
|
||||||
@ -99,7 +106,7 @@ func main() {
|
|||||||
// Serve files from static folder
|
// Serve files from static folder
|
||||||
http.Handle("/", http.FileServer(http.Dir(webui_path)))
|
http.Handle("/", http.FileServer(http.Dir(webui_path)))
|
||||||
|
|
||||||
http.HandleFunc("/sauna/sample", http_endpoint_sauna)
|
http.HandleFunc("/api/sauna", http_endpoint_sauna)
|
||||||
|
|
||||||
port := ":5000"
|
port := ":5000"
|
||||||
logger.Println("Server is running on port" + port)
|
logger.Println("Server is running on port" + port)
|
||||||
|
@ -2,10 +2,12 @@
|
|||||||
import { onMount } from "../../../node_modules/svelte/internal";
|
import { onMount } from "../../../node_modules/svelte/internal";
|
||||||
import icon from "$lib/images/sauna.svg"
|
import icon from "$lib/images/sauna.svg"
|
||||||
|
|
||||||
let backend_url = "https://home.blackfinn.de/sauna/sample";
|
let backend_url = "https://home.blackfinn.de/api/sauna";
|
||||||
|
|
||||||
let temperature_value = 0.0
|
let temperature_value = 0.0
|
||||||
let temperature_unit = "°C"
|
let temperature_unit = "°C"
|
||||||
|
let time = "00:00:00";
|
||||||
|
let updated = false;
|
||||||
|
|
||||||
function get_temperature() {
|
function get_temperature() {
|
||||||
fetch(backend_url)
|
fetch(backend_url)
|
||||||
@ -13,6 +15,8 @@
|
|||||||
.then(data => {
|
.then(data => {
|
||||||
temperature_unit = data.unit
|
temperature_unit = data.unit
|
||||||
temperature_value = data.value
|
temperature_value = data.value
|
||||||
|
time = data.time.slice(11, 19)
|
||||||
|
updated = JSON.parse(data.valid);
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
return [];
|
return [];
|
||||||
@ -38,5 +42,8 @@
|
|||||||
<figure>
|
<figure>
|
||||||
<img src={icon} alt="Sauna" width=150/>
|
<img src={icon} alt="Sauna" width=150/>
|
||||||
</figure>
|
</figure>
|
||||||
|
{#if updated}
|
||||||
|
<div>{time} Uhr:</div>
|
||||||
<h1>{temperature_value} {temperature_unit}</h1>
|
<h1>{temperature_value} {temperature_unit}</h1>
|
||||||
|
{/if}
|
||||||
</section>
|
</section>
|
||||||
|
Loading…
Reference in New Issue
Block a user