gasleak alert spaceapi
[svn42.git] / go / r3-netstatus / webstatus.go
index 489d770..3da6e7d 100644 (file)
@@ -8,9 +8,9 @@ import (
     "regexp"
        "net/http"
        "net/url"
-    "log"
     "time"
-    r3events "svn.spreadspace.org/realraum/go.svn/r3-eventbroker_zmq/r3events"
+    "fmt"
+    r3events "svn.spreadspace.org/realraum/go.svn/r3events"
     )
 
 
@@ -52,7 +52,7 @@ func publishStateToWeb() {
        updateStatusString()
        jsondata_b, err := spaceapidata.MakeJSON()
        if err != nil {
-               log.Println("Error:", err)
+               Syslog_.Println("Error:", err)
                return
        }
        //jsondata_b := re_querystresc_.ReplaceAllFunc(jsondata_b, func(in []byte) []byte {
@@ -64,7 +64,7 @@ func publishStateToWeb() {
        jsondata := url.QueryEscape(string(jsondata_b))
        resp, err := http.Get("http://www.realraum.at/cgi/status.cgi?pass=jako16&set=" + jsondata)
        if err != nil {
-               log.Println("Error publishing realraum info", err)
+               Syslog_.Println("Error publishing realraum info", err)
                return
        }
        resp.Body.Close()
@@ -74,27 +74,42 @@ func EventToWeb(ps *pubsub.PubSub) {
     events := ps.Sub("presence","door","sensors","buttons","updateinterval")
 
     for eventinterface := range(events) {
-        //log.Printf("EventToWeb: %s" , eventinterface)
+        //Debug_.Printf("EventToWeb: %s" , eventinterface)
         switch event := eventinterface.(type) {
             case r3events.TimeTick:
                 publishStateToWeb()
             case r3events.PresenceUpdate:
                 statusstate.present = event.Present
                 publishStateToWeb()
+            case r3events.BackdoorAjarUpdate:
+                spaceapidata.MergeInSensor(spaceapi.MakeDoorLockSensor("HintertorwaechterAjarSensor", "Hintertürkontakt", event.Shut))
+                publishStateToWeb()
             case r3events.DoorAjarUpdate:
                 spaceapidata.MergeInSensor(spaceapi.MakeDoorLockSensor("TorwaechterAjarSensor", "Türkontakt", event.Shut))
                 publishStateToWeb()
             case r3events.DoorLockUpdate:
                 spaceapidata.MergeInSensor(spaceapi.MakeDoorLockSensor("TorwaechterLock", "Türschloß", event.Locked))
                 publishStateToWeb()
-            case r3events.ButtonPressUpdate:
+            case r3events.BoreDoomButtonPressEvent:
                 statusstate.buttonpress_until = event.Ts + 3600
-                spaceapidata.AddSpaceEvent("PanicButton", "check-in", "The button has been pressed")
+                spaceapidata.AddSpaceEvent("BoreDOOMButton", "check-in", "The button has been pressed")
                 publishStateToWeb()
             case r3events.TempSensorUpdate:
-                spaceapidata.MergeInSensor(spaceapi.MakeTempCSensor("Temp0","Decke", event.Value))
+                var tempsensorlocation string
+                switch event.Sensorindex {
+                    case 0:
+                        tempsensorlocation = "LoTHR"
+                    case 1:
+                        tempsensorlocation = "CX"
+                    default:
+                        tempsensorlocation = "Sonstwo"
+                }
+               spaceapidata.MergeInSensor(spaceapi.MakeTempCSensor(fmt.Sprintf("Temp%d",event.Sensorindex),tempsensorlocation, event.Value))
             case r3events.IlluminationSensorUpdate:
-                spaceapidata.MergeInSensor(spaceapi.MakeIlluminationSensor("Photodiode","Decke","1024V/5V", event.Value))
+                spaceapidata.MergeInSensor(spaceapi.MakeIlluminationSensor("Photodiode","LoTHR","1024V/5V", event.Value))
+            case r3events.GasLeakAlert:
+                spaceapidata.AddSpaceEvent("GasLeak", "alert", "GasLeak Alert has been triggered")
+                publishStateToWeb()                
         }
        }
 }