Aller au contenu

Messages recommandés

Posté(e) (modifié)

Une des seules choses que je n'ai pas pu refaire sur ma HC3, c'est d'envoyer des messages à un serveur Syslog. Quelqu'un a-t-il réalisé ceci? Sur HC2 c'était parfait. Merci d'avance

Modifié par Olinet
Posté(e)

Il est apparement pas possibile de créer une liaion UDP depuis la HC3 contrairement à la HC2. Quelqu'un a-t-il pu créer une liasion UDP d'une autre manière?

Posté(e)

Ah si c'est possible, je l'utilise dans plusieurs de mes QuickApps, il faut utiliser la librairie net.UDPSocket()

Voir la doc : https://manuals.fibaro.com/home-center-3-quick-apps/

 

Il faudra tout de même coder à la main le protocole Syslog en LUA pour envoyer les bonnes trames sur le réseau.

 

Pour récupérer tous les événements, tu peux t'inspirer du travail de @jjacques68 qui fait déjà un travail similaire dans une de ses bases de données perso.

Je ne retrouve pas de topic, mais s'il passe par là il pourra te renseigner.
Mais je pense qu'il faut partir de l'API refreshStates pour récupérer tous les événements de la HC3 :

 

  • Like 2
Posté(e)

Un grand merci, ça fonctionne parfaitement. Pour les intéressés, voici le code:

 

local syslogServer = "192.168.6.100"    -- adresse serveur Syslog
local syslogPort = 514                           -- port du serveur Syslog
local hostname = "HC3-Home"             -- Nom de l'émetteur
local appName = "LUA"                      
 
function QuickApp:sendSyslogMessage(message, severity, facility)
-- severity: 0= emergency, 1= alert, 2=critical, 3= error, 4= warning , 5= notice , 6= info, 7= debug,  
-- facility: 1= user, 2 =mail, 3 =daemon, 4= auth, 5= syslogd, 6= lpr
  local pri = (facility * 8) + severity
  local timestamp = os.date("%b %d %H:%M:%S") -- Format RFC 3164 (ex. "Nov 26 15:12:43")
  local syslogMessage = string.format("<%d>%s %s %s: %s", pri, timestamp, hostname, appName, message)
  self.udp = net.UDPSocket({
        broadcast = true,
        timeout = 1000
    })
   self.udp:sendTo(syslogMessage, syslogServer, syslogPort, {
        success = function()
            print('Envoi OK')
        end,
        error = function(error)
            print('Error:', error)
        end    
    })
end
  • Like 3
Posté(e)
Il y a 8 heures, Lazer a dit :

Mais je pense qu'il faut partir de l'API refreshStates

 

yes je confirme.

 

cela permet de récupérer les événements de type (entre autres) :

  • DevicePropertyUpdatedEvent
  • NotificationCreatedEvent
  • CentralSceneEvent

 

  • Like 1
×
×
  • Créer...