utiliser une chaine de caractere pour envoi de SMS sur la couleur Tempo d'EDF

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
lebsana
Messages : 21
Inscription : 22 mars 2016, 15:58

utiliser une chaine de caractere pour envoi de SMS sur la couleur Tempo d'EDF

Message par lebsana »

Bonjour à tous,

Je suis abonné au tarif Tempo d'EDF.
J'ai réussi à récupérer la couleur du jour et en suivant les explications suivantes : http://easydomoticz.com/recuperer-tarif-edf/
Encore un grand merci pour les nombreuses infos.

Le problème est que j'y connais rien et je n'ai pas de formation informatique donc suis souvent bloqué mais j'arrive souvent à me débrouiller en y passant 'trop' de temps.
Mais là je sèche.
Après récupération l'info de la couleur du jour et du lendemain de Tempo, je veux m'envoyer un SMS que si il y a changement de couleur le lendemain.



Voici le script Lua que j'ai réalisé :

Code : Tout sélectionner

local coul_jour = 'tempo' [color=#008000]-- tempo à l'info de la journée[/color]
local coul_dem = 'tempo demain' [color=#008000]-- tempo demain à l'info de la couleur du lendemain cette info est dispo vers 13h00[/color]
local url = 'https://smsapi.free-mobile.fr/sendmsg?user=XXXXXX&pass=XXXXXXX&msg=' [color=#008000]--api freemobile[/color]


function timedifference(d)
   s = otherdevices_lastupdate[d]
   year = string.sub(s, 1, 4)
   month = string.sub(s, 6, 7)
   day = string.sub(s, 9, 10)
   hour = string.sub(s, 12, 13)
   minutes = string.sub(s, 15, 16)
   seconds = string.sub(s, 18, 19)
   t1 = os.time()
   t2 = os.time{year=year, month=month, day=day, hour=hour, min=minutes, sec=seconds}
   difference = os.difftime (t1, t2)
   return difference
end


commandArray = {}
t1 = os.time{year=os.date("%Y"), month=os.date("%m"), day=os.date("%d"), hour='13', min='15', sec='00'}
   t3=os.time()
   difference = os.difftime (t1, t3)
   if (difference) == 0 then 
      if (coul_jour ~= coul_dem) then
        commandArray['OpenURL']=url..'changement de couleur Tempo'
      end
       
     end
Le problème vient 'je pense' que la valeur stocké dans coul_jour ou coul_dem est une chaines de caractères "BLEU" ou "BLANC" ou"ROUGE".
et la comparaison ne se fait pas.
Je reçois le SMS alors que "tempo=BLEU" et que "tempo demain=BLEU"

Pouvez-vous m'éclairer pour exploiter la chaine contenu dans mes 2 switch virtuel tempo et tempo demain.

Merci d’avance et quelque soit le nombre de réponses que je recevrai, je suis impressionné par le partage de vos scripts.

Si ça intéresse certaines personnes je peux aussi poster un script chauffage simple (hyper) que j'ai réalisé et qui fonctionne pas mal depuis 1 semaine.

Bonne continuation à tous,

Lebsana.
Dernière modification par lebsana le 22 mars 2016, 17:59, modifié 1 fois.
Des débuts en domotique avec une Zipabox "une vraie catastrophe !!!" Depuis début mars 2016 avec Domoticz "du bonheur" Zwave et rfxcom 433 mhz.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: utiliser une chaine de caractere pour envoi de SMS sur la couleur Tempo d'EDF

Message par vil1driver »

salut, et bienvenue à toi.

peux tu s'il te plais surligner ton code et cliquer sur le bouton 'Code' au dessus de la zone de saisie,
c'est plus sympa à lire, merci ;)

pour ton problème, ce n'est pas une histoire de comparaison de chaîne (ta méthode est correcte) mais de récupération de contenu.

tempo c'est quoi ? une variable utilisateur, un capteur texte ?

il te faut regarder dans la doc comment récupérer la valeur contenue. (pour un capteur texte, ne cherches pas, ce n'est pas possible)

tu pourras en suite la comparer

par exemple

Code : Tout sélectionner

local coul_jour = uservariables['tempo'] -- tempo à l'info de la journée
si tu veux passer au sms la couleur du lendemain

Code : Tout sélectionner

commandArray['OpenURL']=url..'changement de couleur Tempo, demain ce ce sera '..coul_dem
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
lebsana
Messages : 21
Inscription : 22 mars 2016, 15:58

Re: utiliser une chaine de caractere pour envoi de SMS sur la couleur Tempo d'EDF

Message par lebsana »

Merci vli1driver,

Comme demandé j'ai mis le code en "code".

L'info est contenue dans un capteur texte qui se rempli grâce à l'API domogeek.entropialux.com

Code : Tout sélectionner

tempo=$(curl -s "http://domogeek.entropialux.com/tempoedf/now")
curl "http://192.168.1.4:8080/json.htm?type=command&param=udevice&idx=42&svalue=$tempo"
Une autre idée pour exploiter cette info ?

J'ai essayé avec ta proposition

Code : Tout sélectionner

local coul_jour = uservariables['tempo'] -- tempo à l'info de la journée
et voici ce que j'ai comme réponse :

2016-03-22 18:11:00.418 Error: EventSystem: in Tempo sms: [string "local coul_jour = uservariables['tempo']..."]:6: attempt to concatenate local 'coul_jour' (a nil value)

Comment faire pour mettre des images dans mes posts (capteur texte et des logs de ces capteurs), cela faciliterait la compréhension de mon problème.

Merci pour ton aide.
Pièces jointes
virtual.PNG
virtual.PNG (5.79 Kio) Consulté 7881 fois
tempo.PNG
tempo.PNG (25.84 Kio) Consulté 7882 fois
tempo_demain.PNG
tempo_demain.PNG (25.16 Kio) Consulté 7882 fois
domo_mesure.PNG
domo_mesure.PNG (95.79 Kio) Consulté 7882 fois
Dernière modification par lebsana le 22 mars 2016, 19:55, modifié 3 fois.
Des débuts en domotique avec une Zipabox "une vraie catastrophe !!!" Depuis début mars 2016 avec Domoticz "du bonheur" Zwave et rfxcom 433 mhz.
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: utiliser une chaine de caractere pour envoi de SMS sur la couleur Tempo d'EDF

Message par patrice »

lebsana a écrit : Comment faire pour mettre des images dans mes posts (capteur texte et des logs de ces capteurs), cela faciliterait la compréhension de mon problème.

Merci pour ton aide.
En bas de la zone décriture tu as un onglet "pieces jointes" qui permettra d'ajouter des fichiers depuis ta machine
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Neutrino
Messages : 2662
Inscription : 10 juil. 2015, 15:42
Localisation : Les Herbiers(85)

Re: utiliser une chaine de caractere pour envoi de SMS sur la couleur Tempo d'EDF

Message par Neutrino »

Bonsoir et bienvenue :)
pour récupérer la valeur d'un capteur text, il faut utiliser :

Code : Tout sélectionner

local coul_jour = otherdevices_svalues['tempo'] -- tempo à l'info de la journée
Je te conseille de faire un petit tour ici : http://www.domoticz.com/wiki/Events
C'est en anglais, mais cela détaille les possibilités de liens entre Domiticz et les scripts LUA.
Un tour ici http://easydomoticz.com/articles-2015/ est obligatoire :D
Patrice s'est démené pour nous faire ce sommaire (et les articles aussi :mrgreen: ) et c'est une vrai mine d'or !
Ma maison à plein d'IP ! :mrgreen:
SAV Bonjour. Vous avez vidé le cache ?
lebsana
Messages : 21
Inscription : 22 mars 2016, 15:58

Re: utiliser une chaine de caractere pour envoi de SMS sur la couleur Tempo d'EDF

Message par lebsana »

Trop fort ça fonctionne impeccable ! :lol:
Un grand merci pour votre support.

Lebsana :D
Des débuts en domotique avec une Zipabox "une vraie catastrophe !!!" Depuis début mars 2016 avec Domoticz "du bonheur" Zwave et rfxcom 433 mhz.
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: utiliser une chaine de caractere pour envoi de SMS sur la couleur Tempo d'EDF

Message par vil1driver »

Neutrino :mrgreen: j'avais même pas vu qu'ils avaient ajouté le svalues pour le capteur texte, c'est cool ça.. merci ;)
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
Répondre