Aller au contenu

JossAlf

Membres confirmés
  • Compteur de contenus

    1 078
  • Inscription

  • Dernière visite

  • Jours gagnés

    14

Tout ce qui a été posté par JossAlf

  1. Non change plus rien et attends de voir comment ça tourne !
  2. Une fois que tu as installé tout ça, tu crées des répertoires pour y placer tes php, scripts unix et compagnie. Pour les lancer, tu as au moins 2 possibilités : 1/ En les appelant par des commandes http depuis le HC2. Exemple d'un bouton pour lancer une annonce sur un karotz : HC2 = Net.FHttp("192.168.0.46"); response = HC2:GET("/volume1/script/annonce.karotz.php?nomannonce=portebleueresteeouverte"); 2/ Par programmation avec le "planificateur de tâches" qui se trouve dans le "panneau de configuration". Tu configures ton événement (fréquence de déclenchement) et tu tapes un script : php -f /volume1/MesPhp/testinternet.php > /volume1/MesPhp/LogsTestinternet.txt Voilà pour les grandes lignes.
  3. Le coup des message push, c'est pour prouver que la fiabilité ne permettra pas de gérer finement les volets. Je reste sur ma position de départ : Capteur de luminosité voir températute pour géré vraiment finement. On en est arrivé à testé temps découvert ou non. Mais ca t'aura fait un put... d'exercice
  4. C'est ce je que je lui disais en tchat. Mais il pourra faire evoluer son truc plus tard.
  5. Voici le code qui met àjour la variable METEO dans le quel j'ai ajouté un push envoyé àchaque changement d'état de la météo : Ca te permettra de voir la véracité de la prévision météo et de la vraie vie chez toi et le temps de latence entre une pluie annoncée et une pluie réelle. -[[ %% properties 3 WeatherConditionConverted %% globals --]] -- Récupération de l'heure pour horodater le push local dt = os.date("%H:%M"); if ( fibaro:getValue(3, "WeatherConditionConverted") == "clear" ) then -- DECOUVERT -- fibaro:setGlobal("METEO", "DECOUVERT"); -- envoi du push vers ton iphone (id 22) fibaro:call(22, "sendPush", "Temps découvert : Plein soleil "..tostring(dt)) elseif ( fibaro:getValue(3, "WeatherConditionConverted") == "cloudy" ) then -- NUAGEUX -- fibaro:setGlobal("METEO", "COUVERT"); fibaro:call(22, "sendPush", "Temps couvert : Nuageux "..tostring(dt)) elseif ( fibaro:getValue(3, "WeatherConditionConverted") == "fog" ) then -- BROUILLARD -- fibaro:setGlobal("METEO", "BROUILLARD"); fibaro:call(22, "sendPush", "Temps couvert : Brouillard "..tostring(dt)) elseif ( fibaro:getValue(3, "WeatherConditionConverted") == "rain" ) then -- PLUIE -- fibaro:setGlobal("METEO", "PLUIE"); fibaro:call(22, "sendPush", "Temps couvert : Pluie "..tostring(dt)) elseif ( fibaro:getValue(3, "WeatherConditionConverted") == "snow" ) then -- NEIGE -- fibaro:setGlobal("METEO", "NEIGE"); fibaro:call(22, "sendPush", "Temps couvert : Neige "..tostring(dt)) elseif ( fibaro:getValue(3, "WeatherConditionConverted") == "storm" ) then -- ORAGE -- fibaro:setGlobal("METEO", "ORAGE"); fibaro:call(22, "sendPush", "Temps couvert : Orage "..tostring(dt)) end fibaro:sleep(60*1000);
  6. Heu c'est le commentaire (//Si le test est négatif 3 fois de suite je relance la freebox.) qui est faut dans mon code. Je test bien 6 fois par une boucle et j'incrémente le compteur par $echec++; Si j'ai 6 échecs je reboote.
  7. Salut Rem's Je suis pas un pro du NAS mais il te faut au moins 2 choses de base pour débuter : PhpMyAdmin et MySQL (je crois que c'est MariaDB maintenant)
  8. oups attends passe sur le tchat !
  9. Voilàcomment je modifierais ton code : --[[ %% properties %% globals METEO --]] if (( fibaro:getGlobalValue("METEO") == "DECOUVERT" )) then fibaro:call(25, "setValue", "40"); fibaro:call(20, "setValue", "50"); fibaro:call(22, "sendDefinedPushNotification", "5"); else --donc si c'est couvert (pluie brouillard neige ...) fibaro:call(25, "open"); fibaro:call(20, "open"); -- je sais pas ce que tu mets dans cette notification mais elle sera envoyée maintenant qd pluie brouillard neige fibaro:call(22, "sendDefinedPushNotification", "6"); end fibaro:sleep(60*1000);
  10. D'après ce que je vois dans le code du message 181 : Si le temps est découvert -> tu baisses si le temps est couvert -> tu baisses Si il pleut -> tu lèves les volets Mais tu ne dis pas ce que tu dois faire si il y a du brouillard...
  11. Attends, dans le code elseif ( ( fibaro:getValue(3, "WeatherConditionConverted") == "rain" ) then -- PLUIE -- On voit que tu changes la valeur de ta variable METEO en PLUIE Vas dans le panneau variable et dis moi si METEO est sur PLUIE ou autre chose. MAJ Oups j'avais pas vu ta copie. Ben METEO est sur brouillard !?
  12. En passant comme ça, elle est àquelle valeur ta variable Météo ? Pluie ? Il se peut que le site de météo ait du retard sur la vraie vie (chez toi) ?
  13. JossAlf

    Nouveau

    Pour faire suite à notre conversation sur le mini clavier de la HC2 et votre choix entre HCL et HC2, je vous conseille d'aller lire ce tutoriel de l'excellent TOM alias Tomthebest ! Lien en haut dans le bandeau noir API FIbaro.fr http://www.domotique-fibaro.fr/index.php/cp/2-api-fibarofr/ à‡a vous donnera une idée de ce qu'est la programmation. Bienvenue et bonne route
  14. C'est une expression ...
  15. Non ça ne fonctionnera pas avec le HCL : la prochaine version du logiciel permettra peut être d'utiliser les Modules virtuels des autres mais les MD nécessitent souvent de changer quelques lignes du code pour l'adapter àvotre installation. Si vous voulez utiliser le code lua il vous faudra la HC2... Point de salut
  16. Oui bien sur le forum est fait pour ça
  17. Le problème n'est pas de le mettre sur le forum, mais de le récupère de ma HC2 alors que je ne suis pas chez moi...
  18. JossAlf

    Effacer Le Dernier Caractère

    Voilà c'était pour ça : Mini clavier pour HC2 ... Mais gros potentiel
  19. Salut bill01 et bienvenu. Tu as choisi une HC2 ou HCL ?
  20. On crée une variable globale "Messager" pour y enregistrer le texte tapé et une autre "NivSonore" pour la puissance de diffusion sur les squeezebox. En suite il faut créer tous les boutons (je vous fournirai le VD ça ira plus vite) Voici ce que ça donne pour le bouton "A" local Vmessager = fibaro:getGlobalValue('Messager') .. "a" fibaro:setGlobal('Messager' , Vmessager) fibaro:call(118, "setProperty", "ui.Label1.value", Vmessager); le bouton "J'arrive d" ce sera : local Vmessager = fibaro:getGlobalValue('Messager') .. "J'arrive dans " fibaro:setGlobal('Messager' , Vmessager) fibaro:call(118, "setProperty", "ui.Label1.value", Vmessager); La variable se nourrit mais il faut la préparer pour google translate qui n'aime pas les espaces ! Le bouton "â–º Squeeze" va donc modifier le contenu de la variable et envoyé le message sur la squeeze : -- Adresse IP du Logitech Media Server local ipadd = "192.168.0.46" -- le port du serveur local portno = 9090 -- L'adresse MAC de la squeeze local player = "00:xx:xx:xx:xx:xx " local playername = "SqueezeBox " -- réglage du niveau sonore local NiveauSo = fibaro:getGlobalValue('NivSonore') local notification = "" -- Allumage de la squeezebox local cmnd = "Power 1 " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- On règle le volume sonore ici local cmnd = "mixer volume " .. NiveauSo .. " " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) -- On envoie le message local notification = fibaro:getGlobalValue('Messager') -- On remplace les espaces par des %20 local notification = string.gsub((notification)," ", "%%20"); fibaro:debug(notification) local cmnd = "playlist play http://translate.google.com/translate_tts?tl=FR&ie=UTF-8&q=" .. notification; local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) fibaro:call(118, "setProperty", "ui.Label1.value", "Message diffusé"); fibaro:sleep(3*1000) fibaro:call(118, "setProperty", "ui.Label1.value", fibaro:getGlobalValue('Messager')); -- OFF des squeezeBoxs après 10 secondes fibaro:sleep(10*1000) local cmnd = "power 0 " local stringtosend = player .. cmnd .. string.char(10) tcpSocket = Net.FTcpSocket(ipadd, portno) tcpSocket:setReadTimeout(2*1000) bytes, errorCode = tcpSocket:write(stringtosend) Pour les propriétaires de Karotz : local notification = fibaro:getGlobalValue('Messager') -- On remplace les espaces par des %20 local notification = string.gsub((notification)," ", "%%20"); fibaro:debug(notification) -- message Karotz HC2 = Net.FHttp("192.168.0.55") response = HC2:GET("/cgi-bin/tts?voice=claire&text="..notification.."!&nocache=1") fibaro:call(118, "setProperty", "ui.Label1.value", "Message diffusé"); fibaro:sleep(3*1000) fibaro:call(118, "setProperty", "ui.Label1.value", fibaro:getGlobalValue('Messager')); Voilà pour les grandes lignes. Petites précisions sur les 3 boutons situés sous la valeur du volume et au dessus du message : Le bouton "Effacer" : efface tout le contenu de la variable Le bouton "Txt/Vol?" : affiche le message et le réglage du volume sonore mais devient presque inutile avec le main loop : local Vmessager = fibaro:getGlobalValue('Messager') fibaro:call(118, "setProperty", "ui.Label1.value", Vmessager); fibaro:debug(fibaro:getGlobalValue('Messager')) fibaro:call(118, "setProperty", "ui.Label2.value", fibaro:getGlobalValue('NivSonore')); Le bouton "â†" Efface le dernier caractère du message (merci Steven) Les autres boutons parlent d'eux mêmes je pense...
  21. Pour fêter ma nomination à l'élection du "Membre du mois de mai" je vous propose mon nouveau jouet... Il y a 2 jours, j'ai rêvé d'envoyer un message à la HC2 par sms pour qu'il soit diffusé sur squeeze, Karotz, sonos ou tout autre système du même type. La HC2 ne peut pas recevoir de sms (pour le moment du moins), je me suis donc dit qu'il fallait utiliser un autre moyen. L'idée est donc de modifier le contenu d'une variable qui sera ensuite utilisée avec google Translate pour être prononcée : http://translate.google.com/translate_tts?tl=FR&ie=UTF-8&q=j'arrive%20dans%205%20minutes Il me fallait donc un moyen pour modifier le texte "j'arrive dans 5 minutes" de cette variable -> Donc créer un clavier ! Comme ce clavier sera utilisé sur téléphone ou tablette pour écrire des petits messages : Premièrement, je ne me suis pas embêté avec : • la ponctuation qui se résume à un "point" et un "Espace" (placés 2 fois en haut et bas du clavier pour plus de souplesse). • les caractères spéciaux puisque l'on peut s'en passer et se débrouiller ("français" s'écrira "fransser" ; "Porte d'entrée" s'écrira "porte d'entrer" ou porte dantrer"). Deuxièmement, je me suis créé des petits boutons raccourcis qui écrivent directement dans la variable : • "J'arrive d" -> "J'arrive dans " • "minutes" -> " minutes " • "Merci" -> " merci " • "Devoirs" -> "C'est l'heure de faire les devoirs" • "C'est l'heure" -> "C'est l'heure d'y aller" Du coup en utilisant 4 boutons je peux dire "J'arrive dans 15 minutes". Passons au visuel du clavier : Je ne suis pas chez moi, alors je ne peux pas exporter le module virtuel. Mais je le poste dès demain (à moins que quelqu'un sache comment faire de l'extérieur - même pas réussi avec un VPN...). MAJ : Voici le Module à télécharger : N'oubliez pas de renseigner l'adresse MAC de votre/vos Squezebox dans le bouton lecture. Messager.vfib L'utilisation du clavier pour modifier le contenu d'une variable pourra être décliné pour d'autres utilisations que celle-ci. Je pensais à afficher un message sur les squeezerbox ou un autre support (en guise de Post It)... à envoyer un message en push sur la tablette des gamins, ou le téléphone de madame qui ne capte pas le réseau 3G/GSM mais qui est connecté au wifi... Si vous avez d'autres idées n'hésitez pas !
  22. JossAlf

    Effacer Le Dernier Caractère

    T'es trop fort Steven. Merci pour ton aide efficace Désolé pour le MP...
  23. JossAlf

    Effacer Le Dernier Caractère

    Personne ne sait ? Je vais pas pouvoir dormir moi
  24. Encore besoin d'aide pour effacer le dernier caractère d'un string Je pensais à ça mais ça ne fonctionne pas : local Vmessager = substr(Vmessager, -1)
×
×
  • Créer...