DZVents : Phases lunaires sans API

Vous avez crée un script lua dont vous êtes fier, un .sh génial, un programme python hors du commun, un tuto , c'est ici que vous pouvez les partager.
Soyez précis quant aux prérequis, les manips à faire pour que votre bijou fonctionne (des chmod ?, un apt-get à faire ...)
Décrivez précisément son fonctionnement
Placez votre code entre [Quote] et {/Quote]
calouis
Messages : 74
Enregistré le : 08 nov. 2015, 10:34
Localisation : 62

DZVents : Phases lunaires sans API

Message par calouis » 07 août 2019, 10:16

Bonjour Papoo
J'ai suivi la procédure détaillée de ton site : https://pon.fr/dzvents-phases-lunaires- ... more-15928.
mon switch sélecteur intègre bien les icônes quand je le fais manuellement :
Je n'ai pas d'erreur dans le code :

Code : Tout sélectionner

2019-08-07 10:09:00.737 Status: dzVents: Info: moon phase v1.0: ------ Start internal script: moonPhase:, trigger: every minute
2019-08-07 10:09:00.738 Status: dzVents: Debug: moon phase v1.0: 5.7088949999626
2019-08-07 10:09:00.738 Status: dzVents: Debug: moon phase v1.0: 5.7088949999626
2019-08-07 10:09:00.738 Status: dzVents: Debug: moon phase v1.0: Premier croissant
2019-08-07 10:09:00.738 Status: dzVents: Debug: moon phase v1.0: 20
2019-08-07 10:09:00.738 Status: dzVents: Debug: moon phase v1.0: Constructed timed-command: Set Level 20
2019-08-07 10:09:00.738 Status: dzVents: Debug: moon phase v1.0: update selector device
2019-08-07 10:09:00.742 Status: dzVents: Info: moon phase v1.0: ------ Finished moonPhase
mais mon selecteur ne s'actualise pas à la bonne image : premier croissant
Pourtant , j'ai bien le même ID dans moonSelectorIcons.lua et moonPhase.lua.

J'ai loupé qqchose?
Cordialement
Fichiers joints
201908219_1008-00_1.png
201908219_1008-00_1.png (43.85 Kio) Vu 484 fois
201908219_1008-00.png
201908219_1008-00.png (325.8 Kio) Vu 484 fois
_ Raspberry Pi3 Stretch + Domoticz V4.11214
_ dzVents Version: 2.4.28
_ Python 3.5.3
_ usbZwave
_ RFX433XL USB FW1035 + ChaconDIO
_ GW Xiaomi
_ station meteo Oregon & Netatmo
_ LMS
_ Yeelight
_ Tradfri
_ Zigate plugin 4.5.4 + Version : 030f

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


lolo6112
Messages : 26
Enregistré le : 17 juil. 2016, 16:12

Re: DZVents : Phases lunaires sans API

Message par lolo6112 » 07 août 2019, 12:59

calouis a écrit :
07 août 2019, 10:16
Bonjour Papoo
J'ai suivi la procédure détaillée de ton site : https://pon.fr/dzvents-phases-lunaires- ... more-15928.
mon switch sélecteur intègre bien les icônes quand je le fais manuellement :
Je n'ai pas d'erreur dans le code : .../...
mais mon selecteur ne s'actualise pas à la bonne image : premier croissant
Pourtant , j'ai bien le même ID dans moonSelectorIcons.lua et moonPhase.lua.

J'ai loupé qqchose?
Cordialement
Bonjour,

Oui il y a bien un décalage sur les phases de la lune, Papoo l'a remarqué et moi aussi.
Je cherche une solution sur la base de ce que j'avais codé dans la fonction au départ.
Mais c'est le cirque, Darsky renvoie une fraction pour la phase de la lune et aucun détail sur leur API
Va falloir être patient.

Vérifies quand même dans les logs du device, car je n'étais pas en Pleine lune le 6 août, aujourd'hui le mien est en gibbeuse croissante et il était en 1er quartier le 6.
Ce serait intéressant de comparer les données renvoyées par Darsky, tu pourrais mettre ici ton fichier de retour du script (il est dans dzVent/data), merci.

@Papoo tu as reçu ma réponse en mp ???

calouis
Messages : 74
Enregistré le : 08 nov. 2015, 10:34
Localisation : 62

Re: DZVents : Phases lunaires sans API

Message par calouis » 07 août 2019, 13:34

Bonjour lolo6112
mais les 2 scripts de papoo (moonSelectorIcons.lua et moonPhase.luane) font pas appel à l'api de Darsky...
_ Raspberry Pi3 Stretch + Domoticz V4.11214
_ dzVents Version: 2.4.28
_ Python 3.5.3
_ usbZwave
_ RFX433XL USB FW1035 + ChaconDIO
_ GW Xiaomi
_ station meteo Oregon & Netatmo
_ LMS
_ Yeelight
_ Tradfri
_ Zigate plugin 4.5.4 + Version : 030f

lolo6112
Messages : 26
Enregistré le : 17 juil. 2016, 16:12

Re: DZVents : Phases lunaires sans API

Message par lolo6112 » 07 août 2019, 13:46

calouis a écrit :
07 août 2019, 13:34
Bonjour lolo6112
mais les 2 scripts de papoo (moonSelectorIcons.lua et moonPhase.luane) font pas appel à l'api de Darsky...
Désolé, j'échange aussi sur un autre script de Papoo, qui lui fait appel à Darsky pour les phases lunaires.

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


papoo
Messages : 1843
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: DZVents : Phases lunaires sans API

Message par papoo » 07 août 2019, 21:24

@calouis
si je comprend bien, lorsque tu change le level manuellement sur ton switch selector, l'icone est bien mis à jour, mais l'exectution du script moonPhase.lua ne mets pas à jour le selector switch toutes les heures?
As tu fais un

Code : Tout sélectionner

chmod +x /home/pi/domoticz/scripts/dzVents/scripts/moonPhase.lua
pour t'assurer qu'il dispose des droits d'accès nécessaire à son execution?
le script est il bien encodé en utf8 sans BOM?
pourrais tu poster ici ton script presonnalisé?
@ lolo6112
j'ai modifié le script darksky.lua. je te l'ai dis par MP mais cette fonctionnalité semble rencontrer quelque bugs aléatoires, j'ai impression que les mp ne partent jamais de la boite d'envoi
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

vil1driver
Messages : 5090
Enregistré le : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: DZVents : Phases lunaires sans API

Message par vil1driver » 07 août 2019, 21:29

Personnellement pas de pb avec les mp,
Ils quittent la boîte d'envoi une fois lus..
Certains destinataires ne font pas forcément attention à l'icône.. En haut de page..
Je pense que le problème est juste là.
Peut-être voir si Patrice peut nous sortir une popup.

papoo
Messages : 1843
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: DZVents : Phases lunaires sans API

Message par papoo » 07 août 2019, 21:37

merci pour cette précision, il m'est arrivé d’effacer le message bloqué en boite d'envoi. si je comprend bien, il n’était pas encore lu.
je vais tacher d'etre un peu plus patient la prochaine fois :D
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

calouis
Messages : 74
Enregistré le : 08 nov. 2015, 10:34
Localisation : 62

Re: DZVents : Phases lunaires sans API

Message par calouis » 08 août 2019, 13:49

@Papoo
Pas mieux. J'ai appliqué tes consignes, à savoir transférer le moonPhase.lua en FTP au lieu de l'éditeur interne, puis donner les droits
Manuellement :

Code : Tout sélectionner

2019-08-08 13:48:28.909 Status: dzVents: Info: moonSelectorIcons v 1.0: ------ Start internal script: moonSelectorIcons: Device: "Lune (Virtuel)", Index: 194
2019-08-08 13:48:28.910 Status: dzVents: Debug: moonSelectorIcons v 1.0: lastLevel80
2019-08-08 13:48:28.911 Status: dzVents: Debug: moonSelectorIcons v 1.0: level10
2019-08-08 13:48:28.911 Status: dzVents: Debug: moonSelectorIcons v 1.0: http://127.0.0.1:8280/json.htm?type=setused&used=true&name=Lune&description=&idx=194&switchtype=18&customimage=157
2019-08-08 13:48:28.911 Status: dzVents: Debug: moonSelectorIcons v 1.0: OpenURL: url = http://127.0.0.1:8280/json.htm?type=setused&used=true&name=Lune&description=&idx=194&switchtype=18&customimage=157
2019-08-08 13:48:28.911 Status: dzVents: Debug: moonSelectorIcons v 1.0: OpenURL: method = GET
2019-08-08 13:48:28.911 Status: dzVents: Debug: moonSelectorIcons v 1.0: OpenURL: post data = nil
2019-08-08 13:48:28.912 Status: dzVents: Debug: moonSelectorIcons v 1.0: OpenURL: headers = nil
2019-08-08 13:48:28.912 Status: dzVents: Debug: moonSelectorIcons v 1.0: OpenURL: callback = nil
2019-08-08 13:48:28.914 Status: dzVents: Info: moonSelectorIcons v 1.0: ------ Finished moonSelectorIcons
moonPhase.lua :

Code : Tout sélectionner

--[[
author/auteur = papoo
update/mise à jour = 04/08/2019
creation = 04/08/2019
source https://github.com/JamesSherburne/MoonPhasesLua/blob/master/main.lua
--]]
 
local scriptName        = 'moon phase'
local scriptVersion     = '1.0'
local MoonPhaseSelector = 194
 
    --local Waning_Crescent = "Waning Crescent"     -- level 80 MoonPhase Selector switch
    local Waning_Crescent = "Dernier croissant"     -- level 80 MoonPhase Selector switch
    --local Last_Quarter = "Last Quarter"           -- level 70 MoonPhase Selector switch
    local Last_Quarter = "Dernier quartier"         -- level 70 MoonPhase Selector switch
    --local Waning gibbous = "Waning gibbous"       -- level 60 MoonPhase Selector switch
    local Waning gibbous = "gibbeuse décroissante"  -- level 60 MoonPhase Selector switch
    --local Full_Moon = "Full Moon"                 -- level 50 MoonPhase Selector switch
    local Full_Moon = "Pleine une"                  -- level 50 MoonPhase Selector switch
    --local Waxing_gibbous = "Waxing gibbous"       -- level 40 MoonPhase Selector switch
    local Waxing_gibbous = "Gibbeuse croissante"    -- level 40 MoonPhase Selector switch
    --local First_Moon = "First Moon"               -- level 30 MoonPhase Selector switch
    local First_Moon = "Premier quartier"           -- level 30 MoonPhase Selector switch
    --local Waxing_crescent = "Waxing crescent"     -- level 20 MoonPhase Selector switch
    local Waxing_crescent = "Premier croissant"     -- level 20 MoonPhase Selector switch
    --local New_Moon = "New Moon"                   -- level 10 MoonPhase Selector switch
    local New_Moon = "Nouvelle lune"                -- level 10 MoonPhase Selector switch
 
return {
    active = true,
    on = { timer =   {'every 5 minutes'}},
    logging =   {    level    =   domoticz.LOG_DEBUG,
                    -- level    =   domoticz.LOG_INFO,             -- Seulement un niveau peut être actif; commenter les autres
                    -- level    =   domoticz.LOG_ERROR,            -- Only one level can be active; comment others
                    -- level    =   domoticz.LOG_MODULE_EXEC_INFO,
                marker = scriptName..' v'..scriptVersion },
 
    execute = function(domoticz)
            local function logWrite(str,level)             -- Support function for shorthand debug log statements
                domoticz.log(tostring(str),level or domoticz.LOG_DEBUG)
            end
 
    local function julianDate(d, m, y)
        local mm, yy, k1, k2, k3, j
        yy = y - math.floor((12 - m) / 10)
        mm = m + 9
        if (mm >= 12) then
            mm = mm - 12
        end
        k1 = math.floor(365.25 * (yy + 4712))
        k2 = math.floor(30.6001 * mm + 0.5)
        k3 = math.floor(math.floor((yy / 100) + 49) * 0.75) - 38
        j = k1 + k2 + d + 59
        if (j > 2299160) then
            j = j - k3
        end
        return j
    end
 
    local function  moonAge(d, m, y)
        local j, ip, ag
        j = julianDate(d, m, y)
        ip = (j + 4.867) / 29.53059
        ip = ip - math.floor(ip)
        if (ip < 0.5) then
            ag = ip * 29.53059 + 29.53059 / 2
        else
            ag = ip * 29.53059 - 29.53059 / 2
        end
        logWrite(ag)
        return ag
    end
 
    local day = os.date("%d")
    local month = os.date("%m")
    local year = os.date("%Y")
 
    local theMoon = moonAge(day,month,year)
    logWrite(theMoon)
 
    if  theMoon >=  29  then
        moonText    = New_Moon
        level       = 10
    elseif theMoon < 29 and theMoon > 23 then
        moonText    = Waning_Crescent
        level       = 80
    elseif theMoon < 23 and theMoon > 22 then
        moonText    = Last_Quarter
        level       = 70
    elseif theMoon < 22 and theMoon > 15 then
        moonText = Waning_gibbous
        level       = 60
    elseif theMoon < 15 and theMoon > 13 then
        moonText = Full_Moon
        level       = 50
    elseif theMoon < 13 and theMoon > 8 then
        moonText = Waxing_gibbous
        level       = 40
    elseif theMoon < 8 and theMoon > 6 then
        moonText = First_Moon
        level       = 30
    elseif theMoon < 6 and theMoon > 1 then
        moonText = Waxing_crescent
        level       = 20
    else
        moonText = New_Moon
        level       = 10
    end
 
    logWrite(moonText)
    logWrite(level)
 
    if (MoonPhaseSelector) then
        if (domoticz.devices(MoonPhaseSelector).lastLevel ~= level) then
            domoticz.devices(MoonPhaseSelector).switchSelector(level)
            logWrite("update selector device")
        else
            logWrite("no update needed")
        end
    end
 
    end -- execute function
}
Voilà
Merci d'y regarder
_ Raspberry Pi3 Stretch + Domoticz V4.11214
_ dzVents Version: 2.4.28
_ Python 3.5.3
_ usbZwave
_ RFX433XL USB FW1035 + ChaconDIO
_ GW Xiaomi
_ station meteo Oregon & Netatmo
_ LMS
_ Yeelight
_ Tradfri
_ Zigate plugin 4.5.4 + Version : 030f

calouis
Messages : 74
Enregistré le : 08 nov. 2015, 10:34
Localisation : 62

Re: DZVents : Phases lunaires sans API

Message par calouis » 08 août 2019, 13:51

le code résultant :

Code : Tout sélectionner

2019-08-08 13:50:00.213 Status: dzVents: Info: moon phase v1.0: ------ Start external script: moonPhase.lua:, trigger: every 5 minutes
2019-08-08 13:50:00.214 Status: dzVents: Debug: moon phase v1.0: 6.7088949999649
2019-08-08 13:50:00.214 Status: dzVents: Debug: moon phase v1.0: 6.7088949999649
2019-08-08 13:50:00.214 Status: dzVents: Debug: moon phase v1.0: Premier quartier
2019-08-08 13:50:00.214 Status: dzVents: Debug: moon phase v1.0: 30
2019-08-08 13:50:00.235 Status: dzVents: Debug: moon phase v1.0: Processing device-adapter for Lune: Switch device adapter
2019-08-08 13:50:00.235 Status: dzVents: Debug: moon phase v1.0: Constructed timed-command: Set Level 30
2019-08-08 13:50:00.235 Status: dzVents: Debug: moon phase v1.0: update selector device
2019-08-08 13:50:00.236 Status: dzVents: Info: moon phase v1.0: ------ Finished moonPhase.lua
_ Raspberry Pi3 Stretch + Domoticz V4.11214
_ dzVents Version: 2.4.28
_ Python 3.5.3
_ usbZwave
_ RFX433XL USB FW1035 + ChaconDIO
_ GW Xiaomi
_ station meteo Oregon & Netatmo
_ LMS
_ Yeelight
_ Tradfri
_ Zigate plugin 4.5.4 + Version : 030f

papoo
Messages : 1843
Enregistré le : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: DZVents : Phases lunaires sans API

Message par papoo » 08 août 2019, 21:28

que disent les logs du sélecteur?
as tu vérifié que le script été bien encodé en utf8 sans BOM (avec notepad++ par exemple existe en version sans installation)
tu utilises quelle version de domoticz/dzvents?
à voir tes logs cela donne l'impression de fonctionner sans erreur.
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github

Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Répondre