Aller au contenu

Recommended Posts

Alors je suis entrain de me casser la tête pour faire le WakeOnLan que l'on connaissait déjà sur la HC2...

 

Un grand merci au(x) personne(s) ayant développée(s) cela sur la HC2... j'ai fait un copié coller un adaptant.

 

Mais je suis confronté au problème de l'adresse de BoradCast...

 

Il semblerait que l'instruction setBroadcast(true) n'existe pas !!

 

Voici le code  du QA : (il n'y a pas tout ! juste la fonction principale qui pose problème)

 

----------------------------------------------------------------------------
function QuickApp:TurnOnPc(MacAdresse)
----------------------------------------------------------------------------
    local macAddress = self:convertMacAddress(MacAdresse)
    -- Create Magic Packet 6 x FF
    local magicPacket = string.char(0xff, 0xff, 0xff, 0xff, 0xff, 0xff)
    -- Broadcast Address
    local broadcastAddress = "255.255.255.255"
    -- Default port used
    local wakeOnLanPort = 9

    for i = 1, 16 do
        magicPacket = magicPacket..macAddress
    end
    
    --self.sockOn:setBroadcast(true)
    self:debug(broadcastAddress)
    self.sockOn:connect(tostring(broadcastAddress), tonumber(wakeOnLanPort),{

        success = function()
            self:debug("Socket ON - opened")            
            fibaro.sleep(100)
            
            self.sockOn:write(magicPacket, {
                success = function() self:debug("Socket On - Data sended") end,
                error = function(err)
                            self:debug("Socket On - error sending data : "..err)
                            self:Close_SocketOn()
                            fibaro.setTimeout(3000, function() self:TurnOnPc(MacAdresse) end)
                        end
            })
        end,

        error = function(err)
            self:debug("Socket On - error opening : ",err)
            self:Close_SocketOn()
            fibaro.setTimeout(3000, function() self:TurnOnPc(MacAdresse) end)          
        end
    })
end

 

et j'ai l'erreur suivante :

Socket On - error opening : Network is unreachable

 

Si quelqu'un à des idées !! :) 

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as repris le code d'ici ? :)

 

https://www.domotique-fibaro.fr/topic/107-wake-on-lan-wol-dã©marrer-son-ordinateur-ã -distance/

 

Net.FUdpSocket() n'est tout juste pas supporté ;)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

oui exacte, mais je le suis dis que je le passais sur une socket TCP...

 

Ben visiblement non...

 

Le broadcast passe pas

Partager ce message


Lien à poster
Partager sur d’autres sites

Ce n’est pas envisageable de faire de l’UDP sur une connexion TCP. Il faut attendre que Fibaro réintroduise dans une prochaine mise à jour.

Partager ce message


Lien à poster
Partager sur d’autres sites

mais attend, le broadcast (en général) peut pas se faire sur une socket TCP ? c'est que pour l'UDP ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans le cas qui nous concerne Braodcast = UDP

Ils sont fort chez Fibaro: un HC2 pour allumer / un HC3 pour éteindre... Très fort

Faut pas qu’ils lisent le sujet ils ne vont jamais réintégrer UDPSocket

  • Like 1
  • Haha 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Ça risque pas ils sont confirmé aux boulot pour résoudre le "Fibaro migration module"

Envoyé de mon BLA-L29 en utilisant Tapatalk

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Nous sommes d’accord

Partager ce message


Lien à poster
Partager sur d’autres sites

nan mais j’espère qu’ils vont quand même sortir une MAJ prochainement !

Partager ce message


Lien à poster
Partager sur d’autres sites

Moi je ne pense pas toute l'économie va tourner au ralenti pendant 1 ou 2 mois est fibaro à je pense pas mal de monde qui ont des debug suites aux migrations foirés

 

Envoyé de mon BLA-L29 en utilisant Tapatalk

 

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

pourtant j’ai pas l’impression que beaucoup de personnes possèdent une HC3...

 

c’est plutôt calme les sujets...

Partager ce message


Lien à poster
Partager sur d’autres sites

en même temps, vu l’actualité, les gens ont peut être autre chose à faire :unsure:

Modifié par jjacques68

Partager ce message


Lien à poster
Partager sur d’autres sites

Ils faudrait que la HC3 soit disponible

Après je pense que quelques uns attendent les premiers retours de gens comme toi qu'ont eu le courage de faire le saut. Ce qui bloque aussi c'est le fait de devoir tout ré inclure sur la HC3 c'est je pense la meilleure solution pour avoir une installation propre.

 

Envoyé de mon BLA-L29 en utilisant Tapatalk

 

 

 

 

 

 

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

@jjacques68, tu as vérifié si il n'y avait un plugin WanOnLan au fait ?

Partager ce message


Lien à poster
Partager sur d’autres sites

ah haaaa ! :) 

 

il y a bien qqch oui, Wake On Lan...

 

un QA, avec un champs MacAdresse, et un bouton search...

ainsi un bouton d’action où on sait pas trop ce que sait, mais si tu cliques dessus le PC s’allume... ;) 

 

Dans l’API, on peut voir le champs MacAdresse et l’action turnOn...

 

J’en déduis que l’on peut paramétrer l’@Mac à souhait et l’activer quand on le souhaite du coup !

 

OK j’essaye dans la journée et dépose le code de la fonction pour faire le WOL.

En espérant que ce champs @Mac soit dispo en écriture...

 

dommage de ne pas avoir accès au code source du QA...

Partager ce message


Lien à poster
Partager sur d’autres sites

alors : 

 

print(json.encode(api.put("/devices/456", {macAddress='90:2b:34:9d:e6:d6'})))
fibaro.call(456, "turnOn")

 

donne : 

 

[DEBUG] 31.03.2020 08:03:58: /usr/share/lua/5.3/json/util.lua:55: bad argument #1 to 'for iterator' (table expected, got number)

 

?????

Partager ce message


Lien à poster
Partager sur d’autres sites

je me suis dit que peutêtre avec ça, mais non...

 

 fibaro.call(456, "turnOn", "90:2b:34:9d:e6:d6")

 

Partager ce message


Lien à poster
Partager sur d’autres sites

je comprends pas, d'après le debug du navigateur, je fais ce qu'il faut non : 

 

ça c'est quand j’utilise le QA Wake On Lan

 

image.png.a6b22e08bb4eb57cb65a33a648957636.png

Partager ce message


Lien à poster
Partager sur d’autres sites

Et bien, il manque le "properties".

Quelque chose dans ce genre là :

 

api.put("/devices/456",  {properties={macAddress='90:2b:34:9d:e6:d6'}})

 

Aux erreurs de syntaxe près, je ne peux pas tester.

Partager ce message


Lien à poster
Partager sur d’autres sites

pourtant !!!

 

{
  "id": 456,
  "name": "Wake on LAN",
  "roomID": 248,
  "type": "com.fibaro.wakeOnLan",
  "baseType": "com.fibaro.multimedia",
  "enabled": true,
  "visible": true,
  "isPlugin": true,
  "parentId": 0,
  "viewXml": true,
  "configXml": true,
  "interfaces": [],
  "properties": {
    "categories": [
      "multimedia"
    ],
    "dead": false,
    "deadReason": "",
    "deviceControlType": 0,
    "deviceIcon": 28,
    "emailNotificationID": 0,
    "emailNotificationType": 0,
    "icon": {
      "path": "plugins/com.fibaro.wakeOnLan/img/icon.png",
      "source": "HC"
    },
    "log": "",
    "logTemp": "",
    "macAddress": "90:2b:34:9d:e6:d6",
    "manufacturer": "",
    "model": "",
    "mute": false,
    "power": false,
    "pushNotificationID": 0,
    "pushNotificationType": 0,
    "saveLogs": true,
    "smsNotificationID": 0,
    "smsNotificationType": 0,
    "state": "",
    "ui.config.macAddress.caption": "MAC address",
    "ui.config.macAddress.enabled": true,
    "ui.config.section1.caption": "Configuration",
    "ui.config.section1.enabled": true,
    "userDescription": "",
    "volume": 0
  },
  "actions": {
    "setMute": 1,
    "setVolume": 1,
    "turnOff": 0,
    "turnOn": 0
  },
  "created": 1585632130,
  "modified": 1585632130,
  "sortOrder": 382
}

donc même avec ça : 

ça passe pas...

 

print(json.encode(api.put("/devices/456", {properties={macAddress="90:2b:34:9d:e6:d6"}})))
fibaro.call(456, "turnOn")
[DEBUG] 31.03.2020 18:03:35: /usr/share/lua/5.3/json/util.lua:55: bad argument #1 to 'for iterator' (table expected, got number)

 

Modifié par jjacques68

Partager ce message


Lien à poster
Partager sur d’autres sites

Mais euh... tu essayes de faire quoi ?

api.put il faut l'exécuter tout seul, pas dans un json.encode lui même dans un print, ça n'a aucun sens. Ou alors je n'ai pas compris ce que tu cherches à faire.

Partager ce message


Lien à poster
Partager sur d’autres sites

le print et le json.encode c'est pour récupérer le résultat du PUT dans le debug...

Si ça se passait bien, il me retournerait toutes les propriété du device...

Partager ce message


Lien à poster
Partager sur d’autres sites

Euh, mais ça fonctionne ça ???

 

Faudrait encore que api.put renvoie un json, et j'ai vraiment des doutes, il a plus de chance de renvoyer un booléen voire un entier

Tu devrais récupérer son retour dans une variable, et tester son type avec la fonction type() justement, avant de faire ce genre de suppositions.

 

Mais peut être que sur HC3 la fonction api.put a changé par rapport à la HC2

 

 

Euh en fait avant de valider mon message j'ai relu l'erreur, et il te le dit texto : "table expected, got number)"

C'est clair pourtant, donc je suis dans le vrai

Partager ce message


Lien à poster
Partager sur d’autres sites

×