Olinet Posté(e) le 24 novembre Signaler Posté(e) le 24 novembre (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é le 24 novembre par Olinet
Olinet Posté(e) le 26 novembre Auteur Signaler Posté(e) le 26 novembre 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?
Lazer Posté(e) le 26 novembre Signaler Posté(e) le 26 novembre 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 : 2
Olinet Posté(e) le 26 novembre Auteur Signaler Posté(e) le 26 novembre 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 3
jjacques68 Posté(e) le 26 novembre Signaler Posté(e) le 26 novembre 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 1
Messages recommandés