@@ -25,8 +25,9 @@ import (
2525)
2626
2727const (
28- ContextTimeout = 60 // seconds
29- ReconnectTimeout = 5 // seconds
28+ ContextTimeout = 60 // seconds
29+ ConnectionTimeout = 30 // seconds
30+ ReconnectTimeout = 5 // seconds
3031
3132 EventTypeHello = "hello"
3233 EventTypeAuthRequired = "authRequired"
@@ -401,7 +402,7 @@ func (w *Wattpilot) Connect() error {
401402 go w .connectionManager ()
402403 })
403404
404- if w .connectAndWait (30 * time .Second ) {
405+ if w .connectAndWait (ConnectionTimeout * time .Second ) {
405406 return nil
406407 }
407408
@@ -429,7 +430,7 @@ func (w *Wattpilot) connectImpl() error {
429430 return nil
430431 }
431432
432- ctx , cancel := context .WithTimeout (context .Background (), ContextTimeout * time .Second )
433+ ctx , cancel := context .WithTimeout (context .Background (), ConnectionTimeout * time .Second )
433434 defer cancel ()
434435
435436 conn , _ , err := websocket .Dial (ctx , fmt .Sprintf ("ws://%s/ws" , w .host ), nil )
@@ -444,21 +445,28 @@ func (w *Wattpilot) connectImpl() error {
444445 select {
445446 case w .isConnected = <- w .connected :
446447 if ! w .isConnected {
448+ w .logger .WithFields (logrus.Fields {"wattpilot" : w .host }).Info ("Authentication timeout" )
447449 w .disconnectImpl ()
448450 return errors .New ("authentication failed" )
449451 }
450452 case <- ctx .Done ():
453+ w .logger .WithFields (logrus.Fields {"wattpilot" : w .host }).Info ("Connection handshake timeout" )
451454 w .disconnectImpl ()
452455 return errors .New ("connection handshake timeout" )
453456 }
454457
455458 // Wait for initialization
456459 select {
457460 case <- w .initialized :
458- // isInitialized is set by onEventFullStatus
461+ // isInitialized is set by onEventFullStatus
462+ w .logger .WithFields (logrus.Fields {"wattpilot" : w .host , "initialized" : w .isInitialized , "auhtenticated" : w .isConnected }).Info ("Initialization done" )
463+
459464 case <- ctx .Done ():
460- w .disconnectImpl ()
461- return errors .New ("initialization timeout" )
465+ if ! w .isInitialized {
466+ w .logger .WithFields (logrus.Fields {"wattpilot" : w .host , "initialized" : w .isInitialized , "auhtenticated" : w .isConnected }).Info ("Initialization timeout" )
467+ w .disconnectImpl ()
468+ return errors .New ("initialization timeout" )
469+ }
462470 }
463471
464472 return nil
@@ -492,7 +500,8 @@ func (w *Wattpilot) Disconnect() {
492500}
493501
494502func (w * Wattpilot ) disconnectImpl () {
495- w .logger .WithFields (logrus.Fields {"wattpilot" : w .host }).Info ("Closing connection..." )
503+
504+ w .logger .WithFields (logrus.Fields {"wattpilot" : w .host , "caller" : getCallerFunctionName ()}).Info ("Closing connection..." )
496505
497506 if w .conn == nil {
498507 return // Already disconnected
@@ -711,14 +720,16 @@ func (w *Wattpilot) onEventFullStatus(message map[string]interface{}) {
711720 if isPartial {
712721 return
713722 }
723+
724+ w .logger .WithFields (logrus.Fields {"wattpilot" : w .host }).Trace ("Initialization done" )
725+
714726 if w .IsInitialized () {
715727 return
716728 }
717729
718- w .logger .WithFields (logrus.Fields {"wattpilot" : w .host }).Trace ("Initialization done" )
719-
720730 w .initialized <- true
721731 w .isInitialized = true
732+
722733}
723734
724735func (w * Wattpilot ) onEventDeltaStatus (message map [string ]interface {}) {
0 commit comments