Aller au contenu

drboss

Membres confirmés
  • Compteur de contenus

    78
  • Inscription

  • Dernière visite

Réputation sur la communauté

27 Excellent

À propos de drboss

  • Rang
    Membre interessé
  • Date de naissance 01/01/1970

Profile Information

  • Sexe :
    Homme
  • Ville :
    Varsovie
  • Box
    Home Center 2
    Home Center Lite
    Autre
  • Version
    4.140

Visiteurs récents du profil

518 visualisations du profil
  1. drboss

    Support Gea

    Oui @Steven bien sûr, c'est un honneur pour moi . C'est juste une modification de votre travail.
  2. drboss

    IFTTT & Sonos

    Qu'il n'y a pas d'interaction directe entre Google Assistant (Home) et Sonos, Oui pour "Google Assistant et Sonos : l'intégration repoussée à 2019", mais plus tôt il était 2018. Et alexa est déjà...
  3. drboss

    IFTTT & Sonos

    Bonne route pour l’intégration sonon et google, juste pourquoi pas directement Quand ça fonctionnera si bien avec HC2.........
  4. For me yes, resolve stop 30sec after start play new playlist. I didn't never problem this problem with play / stop / pause list played before. When I have pure connection with one of my sonos and process inicialized by spotify_list take long time and no return state I added sseek()
  5. @pepite vous devez ajouter une commande fibaro:sleep(). J'ai eu le même problème, "PLAY" est effectué avant d'ajouter "PLAYLIST" --stop(); --fibaro:sleep(1000); sdel(); fibaro:sleep(2000) spotify_list('xxxxxx'); --playFile(FileVol); fibaro:sleep(3000); play(); --play(NN) - play NN seconds
  6. Yes @Lazer the api still exist, but without easy fast way to check many parameters by web interface (without xml and authorisation like in VD or via node) When I wrote "Web" I things about http://x.x.x.x:1400/status/tracks etc.
  7. J'utilise principalement des listes créées dans Spotify ( spotify_list() ). Ceci est plus universel pour moi. Les lists Sonos que j'utilise pour la musique enregistrée sur le NAS domestique (mais de moins en moins) ;-)
  8. Le numéro de l'album se trouve dans le client Spotify (PC). Sur client Spotify tu sélectionné l'album intéressant, appuyez sur le bouton droit de la souris, puis "partager" et "copier le lien". Le numéro de l'album est le code après "album/" et devant les signes "? Si =" , emblable avec playlist. https://open.spotify.com/album/22j1vb0GvgRdJ1AdbHtKXT?si=cOqvhLqtT4S53GdPIVq0pg Pour list - "sonos playlists" ( mémorisés dans le Sonos) tu deve découvrir les numéros des listes en vérifiant à partir de 1. (sonos_list(1), sonos_list(2) ...) Malheureusement, sonos a désactivé interface www des produits sonos.
  9. Si @Alexpelli , le problème était lors de la copie du code source dans le forum. Les caractères >, <, etc ont été remplacés par &gt, &lt. Il y a des fragments HTML dans le code LUA, ce qui explique pourquoi c'était un problème. J'ajoute un exemple de VD qui fonctionne sonos_example.vfib
  10. -- SONOS Play playlist, v.0.1 ------------------------------------------------------------------------------------------- ---made on source of:----------------------------------------------------------------------- -- SONOS Play stream... -- Copyright © 2014 Jean-Christophe Vermandé ------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------- ---------------------------------- -- User Settings ---------------------------------- ip = "192.168.1.232" port = 1400 FileVol = 10 PlayUnlimited = "Yes" -- si <> Yes, arrêt après 30s environ --duration = ---------------------------------- -- DO not change bellow this line ---------------------------------- --selfId = fibaro:getSelfId(); --album = fibaro:get(selfId, 'IPAddress'); --port = fibaro:get(selfId, 'TCPPort') or 1400; currentTransportState = ""; lastTransportState = ""; currentVolume = 0; lastVolume = 0; ttsVolumeIsDifferent = false; list_name = "Sonos Playlist n1" --not implemented list_nbr = 1 -- playlist number on jffs system of SONOS, You need test it for find interesting list uid = "RINCON_B8E937B01D4E01400" -- find by http://SONOS_IP:1400/status/upnp --album = "1kFVHozcxeXY3MfKB3F0yw" --album = "22j1vb0GvgRdJ1AdbHtKXT" spotify = "6he9MFK1bEvcA4dOByFJT3" urlencode = function(str) if (str) then str = string.gsub (str, "\n", "\r\n"); str = string.gsub (str, "([^%w ])", function (c) return string.format ("%%%02X", string.byte(c)) end); str = string.gsub (str, " ", "+"); end return str; end createRequestBody = function(action, schema, data) return string.format("<u:%s xmlns:u=\"%s\">%s</u:%s>", action, schema, data, action); end reponseCallback = function(fnc, args) if (fnc == nil) then return nil; end return fnc(args); end createSocket = function() -- Check IP and PORT before if (ip == nil or port == nil) then fibaro:debug("You must configure IPAddress and TCPPort first"); return; end local socket; local status, err = pcall(function() socket = net.FTcpSocket(ip, port); socket:setReadTimeout(1000); end); if (status ~= nil and status ~= true) then fibaro:debug("socket status: " .. tostring(status or '')); end if (err ~= nil) then fibaro:debug("socket err: " .. tostring(err or '')); return; end return socket; end disposeSocket = function(socket) if (socket ~= nil) then socket:disconnect(); socket = nil; return true; end return false; end sendSoapMessage = function(url, service, action, args, callback, retry) local socket = createSocket(); if (socket == nil) then return; end retry = retry or 0 -- prepare data --local url = "POST " .. url .. " HTTP/1.1"; local url = "POST " .. url .. " HTTP/1.1\r\nHOST: ".. ip ..":1400"; fibaro:debug(url) --local udn = "X-SONOS-TARGET-UDN: uuid:RINCON_B8E937B01D4E01400" -- udn of my SONOS (not need) local soapaction = "SOAPACTION: \"" .. service .. "#" .. action.name .. "\""; local body = createRequestBody(action.name, action.service, tostring(args or "")); local envelope = "<?xml version=\"1.0\" encoding=\"utf-8\"?><s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\" s:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\"><s:Body>" .. body .. "</s:Body></s:Envelope>"; local ctl = "Content-Length: " .. string.len(envelope); --local payload = url .. "\r\n" .. ctl .. "\r\n" .. udn .. "\r\n" .. soapaction .. "\r\n" .. "\r\n" .. envelope; -- with UDN local payload = url .. "\r\n" .. ctl .. "\r\n" .. soapaction .. "\r\n" .. "\r\n" .. envelope; -- write data local bytes, errorcode = socket:write(payload); if (errorcode == 0) then local state, errorcode = socket:read(); if (errorcode == 0) then if (string.len(state or "") > 0) then -- callback if (callback ~= nil) then reponseCallback(callback, state); end -- dispose ... disposeSocket(socket); return true; else fibaro:debug("Error: Invalid response. response length: " .. string.len(state or "")); end else if (retry < 5) then fibaro:debug("retry #"..retry.." action: " .. action.name); return sendSoapMessage(url, service, action, args, callback, (retry + 1)); else fibaro:debug("Error: Code returned "..tostring(errorcode or "")); end end elseif (errorcode == 2) then fibaro:debug("Error: You must check your IP and PORT settings."); else if (retry < 5) then fibaro:debug("retry #"..retry.." action: " .. action.name); return sendSoapMessage(url, service, action, args, callback, (retry + 1)); else fibaro:debug("Error: Code returned "..tostring(errorcode or "")); end end -- dispose ... disposeSocket(socket); -- default response return false; end stop = function() return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "Stop", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Speed>1</Speed>", -- callback (options) function(response) fibaro:debug("stop sent"); end); end pause = function() return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "Pause", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Speed>1</Speed>", -- callback (options) function(response) fibaro:debug("stop sent"); end); end pnext = function() return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "Next", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID>", -- callback (options) function(response) fibaro:debug("next sent"); end); end pprev = function() return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "Previous", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID>", -- callback (options) function(response) fibaro:debug("previous sent"); end); end unMute = function() return sendSoapMessage( -- control url "/MediaRenderer/RenderingControl/Control", -- service type "urn:schemas-upnp-org:service:RenderingControl:1", -- action { name = "SetMute", service = "urn:schemas-upnp-org:service:RenderingControl:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Channel>Master</Channel><DesiredMute>0</DesiredMute>", -- callback (options) function(response) fibaro:debug("unMute sent"); end); end play = function(duration) return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "Play", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Speed>1</Speed>", -- callback (options) function(response) fibaro:debug("play sent"); end); end sseek = function() return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "Seek", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID>,<Unit>TRACK_NR</Unit>,<Target>1</Target>", -- callback (options) function(response) fibaro:debug("Seek"); end); end sdel = function() return sendSoapMessage( -- control url "/MediaRenderer/Queue/Control", -- service type "urn:schemas-sonos-com:service:Queue:1", -- action { name = "RemoveAllTracks", service = "urn:schemas-sonos-com:service:Queue:1" }, -- soap body data (options) "<QueueID>0</QueueID>,<UpdateID>0</UpdateID>", -- callback (options) function(response) fibaro:debug("Remove"); end); end sonos_list = function(list_nbr) return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "AddURIToQueue", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID>,<EnqueuedURI>file:///jffs/settings/savedqueues.rsq#".. list_nbr.."</EnqueuedURI>,<EnqueuedURIMetaData><DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:r="urn:schemas-rinconnetworks-com:metadata-1-0/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"><item id="SQ:1" parentID="SQ:" restricted="true"><dc:title>".. list_name .."</dc:title><upnp:class>object.container.playlistContainer</upnp:class><desc id="cdudn" nameSpace="urn:schemas-rinconnetworks-com:metadata-1-0/">RINCON_AssociatedZPUDN</desc></item></DIDL-Lite></EnqueuedURIMetaData>,<DesiredFirstTrackNumberEnqueued>1</DesiredFirstTrackNumberEnqueued>,<EnqueueAsNext>1</EnqueueAsNext>", -- callback (options) function(response) fibaro:debug("set sonos playlist"); end); end spotify_list = function(spotify) --playlist from Spotify return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "AddURIToQueue", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID>,<EnqueuedURI>x-rincon-cpcontainer:10062a6cspotify%3auser%3apdurbajlo%3aplaylist%3a"..spotify.."</EnqueuedURI>,<EnqueuedURIMetaData><DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:r="urn:schemas-rinconnetworks-com:metadata-1-0/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"><item id="10062a6cspotify%3auser%3apdurbajlo%3aplaylist%3a"..spotify.."" parentID="10082664playlists" restricted="true"><dc:title>Fibaro from Spotify</dc:title><upnp:class>object.container.playlistContainer</upnp:class><desc id="cdudn" nameSpace="urn:schemas-rinconnetworks-com:metadata-1-0/">SA_RINCON2311_X_#Svc2311-0-Token</desc></item></DIDL-Lite></EnqueuedURIMetaData>,<DesiredFirstTrackNumberEnqueued>2</DesiredFirstTrackNumberEnqueued>,<EnqueueAsNext>1</EnqueueAsNext>", -- callback (options) function(response) fibaro:debug("set spotify playlist"); end); end spotify_album = function(album) --album from Spotify return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "AddURIToQueue", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID>,<EnqueuedURI>x-rincon-cpcontainer:1004206cspotify%3aalbum%3a"..album.."</EnqueuedURI>,<EnqueuedURIMetaData><DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:r="urn:schemas-rinconnetworks-com:metadata-1-0/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"><item id="1004206cspotify%3aalbum%3a"..album.."" parentID="100d2064your_albums" restricted="true"><dc:title>Remote</dc:title><upnp:class>object.container.album.musicAlbum</upnp:class><desc id="cdudn" nameSpace="urn:schemas-rinconnetworks-com:metadata-1-0/">SA_RINCON2311_X_#Svc2311-0-Token</desc></item></DIDL-Lite></EnqueuedURIMetaData>,<DesiredFirstTrackNumberEnqueued>2</DesiredFirstTrackNumberEnqueued>,<EnqueueAsNext>1</EnqueueAsNext>", -- callback (options) function(response) fibaro:debug("set spotify album"); end); end setVolume = function(value) return sendSoapMessage( -- control url "/MediaRenderer/RenderingControl/Control", -- service type "urn:schemas-upnp-org:service:RenderingControl:1", -- action { name = "SetVolume", service = "urn:schemas-upnp-org:service:RenderingControl:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Channel>Master</Channel><DesiredVolume>" .. tostring(value) .. "</DesiredVolume>", -- callback (options) function(response) fibaro:debug("Volume set: " .. value); end); end getVolume = function() fibaro:log("Get volume, please wait..."); return sendSoapMessage( -- control url "/MediaRenderer/RenderingControl/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "GetVolume", service = "urn:schemas-upnp-org:service:RenderingControl:1" }, -- soap body data (options) "<InstanceID>0</InstanceID><Channel>Master</Channel>", -- callback (options) function(response) currentVolume = tonumber(response:match("<CurrentVolume>(.+)</CurrentVolume>") or 0); end); end getTransportState = function() return sendSoapMessage( -- control url "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "GetTransportInfo", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID>", -- callback (options) function(response) currentTransportState = response:match("<CurrentTransportState>(.+)</CurrentTransportState>") or ""; end); end pause_play = function() getTransportState() fibaro:debug('wstrzymanie'..currentTransportState) if currentTransportState == "PLAYING" then pause() end if currentTransportState == "PAUSED_PLAYBACK" then play() end end playFile= function(volume) return sendSoapMessage( -- control url SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI" "/MediaRenderer/AVTransport/Control", -- service type "urn:schemas-upnp-org:service:AVTransport:1", -- action { name = "SetAVTransportURI", service = "urn:schemas-upnp-org:service:AVTransport:1" }, -- soap body data (options) "<InstanceID>0</InstanceID>,<CurrentURI>x-rincon-queue:"..uid.."#0</CurrentURI>,<CurrentURIMetaData></CurrentURIMetaData>", -- callback (options) function(response) -- retrieve current transport state getTransportState(); lastTransportState = currentTransportState; -- unmute before unMute(); -- retrieve volume getVolume(); lastVolume = currentVolume; -- set tts volume if <> with current if (volume ~= nil and volume ~= currentVolume) then setVolume(volume); ttsVolumeIsDifferent = true; end sseek(); play(); end); end -- function for call --[[ sdel(); -- remove last query sonos_list(1) --list_nbr = 1 -- playlist number on jffs system of SONOS, You need test it for find interesting list spotify_list("6he9MFK1bEvcA4dOBxxxxxx") -- "6he9MFK1bEvcA4dOByFJT3" playlist from spotify spotify_album('22j1vb0GvgRdJ1Axxxxxx') --22j1vb0GvgRdJ1AdbHtKXT album from spotify playFile(FileVol); -- play file with volume z głośnością pnext(); next track pprev(); previus track pause_play() -- swap play / pause, pause / play stop(); -- stop play(); -- play pause() Mute() unMute() sseek() -- seek getTransportState() --current status of sonos --]] sdel(); -- remove last query sonos_list(1) --list_nbr = 1 -- playlist number on jffs system of SONOS, You need test it for find interesting list spotify_list("6he9MFK1bEvcA4dOByFJT3") -- "6he9MFK1bEvcA4dOByFJT3" playlist from spotify spotify_album('22j1vb0GvgRdJ1AdbHtKXT') --22j1vb0GvgRdJ1AdbHtKXT album from spotify playFile(FileVol); -- play file with volume z głośnością pnext(); next track pprev(); previus track pause_play() -- swap play / pause, pause / play stop(); -- stop play(); -- play pause() Mute() unMute() sseek() -- seek getTransportState() --current status of sonos after last upgrade in all VD based on Jean-Christophe source is important to add port number 1400 in URL of sonos device (in my example is line 104)
  11. drboss

    Support Gea

    Vous @971jmd mais pourquoi ne faites vous pas votre "programmeur" comme un plugin interne? Je pense c'est bon de garder la source GEA standardisée at propre. J'ai modifié un peu différemment, mais j'ai ajouté comme un plugin et vd: GEA.options.multialarm = {name = "multiAlarm", -- optimize = true, control=function(id) return GEA.options.number.control(id) end, getValue=function(id, multi_a) if (os.date("%H:%M", GEA.runAt) == fibaro:getValue(id, "ui."..multi_a.."h.value")) then local days = fibaro:getValue(id, "ui."..multi_a.."j.value") days = days:lower() selected = tools.split(days, " ") for i = 1, #selected do for j = 1, #GEA.trad.week_short do if (GEA.trad.week_short[j] == selected[i]) then if (GEA.traduction.en.week[j]:lower() == os.date("%A"):lower()) then return true end end end end end return false end, } - Alarm : {"multiAlarm", <id_vd>, "<alarme_id>"} - UTILISABLE UNIQUEMENT avec le VirtualDevice GEA.multiAlarm, Alarm_id est "Alarm1" ou "Alarm2" ou "Alarm3" ou "Alarm4" CONDITIONS : GEA.add( {"multiAlarm", id["VD_ALARM"], "<alarme_id>"}, 0, "", {ACTIONS} ) - Va vérifier si la période (jour et heure) précisée correspond à celle indiquée sur GEA.ALARM, si TRANCHE VERIFIEE, ACTIONS executées ACTIONS : Ne peut-etre utilisé en ACTIONS ex. GEA.add( {"Alarm", 530, "Alarm2"}, 0, "", {ACTIONS} ) exécute l'action à 4:01, semaine sans samedi GEA_MultiAlarm.vfib
  12. drboss

    Support Gea

    @pepite je pense que c'est une bonne idée de créer un thème "plugin GEA". Le thème GEA est le plus utilisé. Il peut créer un nouveau niveau groupe pour (même niveau que HC2, HCL) GEA. Par exemple: La HC2 et ses périphériques/Home Center 2 & Lite/GEA6 La HC2 et ses périphériques/Home Center 2 & Lite/GEA6/Support La HC2 et ses périphériques/Home Center 2 & Lite/GEA6/Plugins La HC2 et ses périphériques/Home Center 2 & Lite/GEA6/Showroom Je pense que cela faciliterait la discussion, la recherche solutions qui fonctionne déjà (ex.plugin, showrooms), le support des nouvel problèmes
  13. drboss

    Support Gea

    Mes 2 plugins internes. Y a-t-il un sujet quelque part où nous le plaçons? Pour contrôleur de porte de garage (2 positions [open|close], pas comme les stores ou volet): -- Pour contrôleur de porte de garage (2 positions [open|close], pas comme les stores ou volet) GEA.options.garagegate = {name="garageGate", getValue=function(id_gate) return fibaro:getValue(id_gate, "state") --currentState end, action=function(id_gate, value) if (type(id_gate) ~= "table") then id_gate = {id_gate} end for i=1, #id_gate do fibaro:call(id_gate[i], value) end end, } -- ex. -- GEA.add( {"garageGate", 1299, "Open"}, -1, "Porte ferme #date# à #time#", {"garageGate", "Close"}) -- GEA.add( {"garageGate", 1299, "Closed"}, 10, "Test #value#") -- GEA.add( {"turnOn", 1309}, 10, "Porte ferme #date# à #time#", {"garageGate", 1299, "close"}) -- GEA.add( {"turnOff", 1309}, 10, "Porte ferme #date# à #time#", {"garageGate", 1299, "open"}) Pour changer le mode de thermostat (ex TKB Home TZ10.xx) et vérifier l'état: -- Pour changer le mode de thermostat (ex TKB Home TZ10.xx) -- 0 Off -- 1 Heat -- 2 Cool -- 3 Auto -- 4 Aux Heat -- 5 Resume -- 6 Fan Only -- 7 Furnace -- 8 Dry Air -- 9 Moist Air -- 10 Auto Changeover -- 11 Heat Economy -- 12 Cool Economy -- 13 Away -- 15 Full Power -- 31 Manufacturer Specific -- Value actuel state returne -- 0 Idle -- 1 Heating -- 2 Cooling -- 3 Fan Only -- 4 Pending Heat -- 5 Pending Cool -- 6 Vent / Economiser GEA.options.thermostatmode = {name="thermostatMode", math=true, getValue=function(id) return fibaro:getValue(id, "state") -- Attention! returne l'état actuel du thermostat, pas celui réglé par commande -- getValue=function(id) return fibaro:getValue(id, "mode") -- Attention! returne mode réglé par commande, pas statut actuel end, action=function(id, value) if (type(id) ~= "table") then id = {id} end for i=1, #id do fibaro:call(id[i], "setMode", tostring(value)) end end, } -- ex. -- GEA.add( {"Global", "period_annee", "hiver"}, 30, "thermostat mettre à chauffer #date# à #time#", {"thermostatMode", 1451, 1}) -- GEA.add( {"Value+", 1309, 0}, 10, "fenêtrede toit ouverte plus 30sec, thermostat éteint #date# à #time#", {"thermostatMode", 1451, 0}) -- GEA.add( {"Value", 1309, 0}, 10, "fenêtrede toit ferme plus 30sec, thermostat mettre à chauffer #date# à #time#", {"thermostatMode", 1451, 1}) Il peut être utile a quelqu'un...
  14. drboss

    Hc2 Toolkit Application V1.3.2.0

    version 4.503 Tout fonctionne bien. xml scene a été importé dans la salle TEST, pas à undefined ou comment étaient les "outils" d'origine (mais la nuit je pourrais me tromper ce qui était où dans ces quelques backup). La nuit tout l'équipement a changé en non-configurable, après les 2 dernières sauvegardes ont été endommagées ;-( J'ai finalement récupéré ma configuration de la sauvegarde de la migration vers 4.503. Apres je importe et remplacer quelque VD et scènes. Erreur d'importation VD dans jpg mais importation traité bien.
  15. drboss

    Hc2 Toolkit Application V1.3.2.0

    Bonjour, Savez-vous que l'importation de scènes ne fonctionne pas? Après avoir essayé de charger (importer) le fichier xml, rien ne change dans HC2. Est-ce seulement chez moi?
×