Aller au contenu

Messages recommandés

Posté(e) (modifié)

Bonjour à tous,

 

Je ne sais pas si je suis dans la bonne section. Je vous expose mon problème.

J'ai une télé Samsung que j'aimerais éteindre automatiquement si elle est restée allumée la nuit (et oui ça m'arrive de m'endormir devant !). J'ai bien installé le plugin me permettant de remplacer la télécommande mais j'aimerais connaitre l'état du téléviseur (savoir s'il est allumé) afin d'envoyer une commande pour l'éteindre dans un intervalle de temps donné. J'ai donc 2 questions :

- Comment peut-on récupérer l'état de la TV ?

- Comment intégrer le plugin dans un scenario (je l'ai pas la télécommande dispo dans la liste des modules) ?

 

Désolé si mes questions vous paraissent idiotes mais je débute :)

Merci par avance

Modifié par macpowered
Invité chris6783
Posté(e)

Bonjour.

Pour savoir si elle est allumee un wall plug sur la prise est une solution. J utilise ce systeme basé sur la mesure de la consommation pour arreter la freebox et autres equipements lorsque je coupe la tv.

Envoyé de mon SM-G930F en utilisant Tapatalk

Posté(e)

Bonjour,

 

Cela dépend aussi du plugin, que te permet-il de faire celui ci ? allumer ? éteindre ?

 

Pour avoir les infos au niveau de l'API du plugin pour savoir tu peux faire ceci


 

local id_plugin = xxxx

local plugin = api.get("/devices/"..id_plugin)

fibaro:debug(json.encode(plugin))

 

Posté(e)

Le wall plug me semble un peu trop violent. Couper le courant d'un coup comme ça, ça gène un peu. Et puis vu le prix de wall plug, ça fait riche comme solution, juste pour éteindre la tv. Le plugin me permet d’éteindre la tv et bien plus. Je te mets une capture en dessous. Par contre, désolé de mon inexpérience mais pour avoir les infos de l'API, où dois-je coller ce bout de code ? Je débute avec la HC2 et je ne suis pas encore au fait de toutes les petites astuces et les manières de faire.

(J'ai un peu honte, à la base je suis développeur !).

Merci pour l'aide

 

1879391914_Capturedecran2019-06-15a18_16_17.thumb.png.a70a7c258a7caa5e81e170e4d5dd3487.png

Posté(e)

Bonjour,

Quelque soit le boulot, fait bien commencer un jour :-)
D apres la photo du plugin, tu peux tout faire :-)
.

Tu peux eteindre et allumer, changer de chaines..la totale :-)

Tvas essaye ?

Concernant les wall plugs, j en ai sur la tv et le decodeur depuis plusieurs annees et aucun souci.

Envoyé de mon BND-L21 en utilisant Tapatalk

Posté(e)

A priori, on ne peut pas l'allumer. Samsung ayant bloqué cette fonctionnalité sur ses téléviseurs. Je pensais passer par un rasberry pi derrière et me servir du HDMI qui lui peut réveiller la TV. Faut que je fouille un peu pour faire ça (je reste campé sur mon idée qu'un wall plug juste pour allumer la tv ça fait riche quand même). Par contre tu ne m'as pas dit pour les lignes de code qui tu m'as mis plus haut comment m'en servir.

 

Posté(e)

Le Wall Plug ne te servira pas à allumer la TV, mais juste à remonter le statut de la TV (allumé/éteint) en se basant sur sa consommation.

Car le plugin de Fibaro, me semble t'il, n'offre pas de retour d'état.

Donc le plugin pour piloter la TV, et le Wall Plug pour le retour d'état.

 

Par contre, si Samsung ne permet pas d'éteindre/allumer, il faut acheter une vraie marque, alors ton idée de passer par HDMI est bonne.

Ce point a déjà été traité :

 

 

 

Posté(e)

Bonjour @Lazer , le plugin permet d'éteindre la TV. Seule l'option d'allumage n'est pas implémentée. A priori, pour éviter que la TV soit constamment à l'écoute d'une commande lui demandant de se rallumer alors qu'elle est en veille, un truc du genre.

Par contre, je ne sais toujours pas comment mettre en œuvre les quelques lignes fournies par @pepite. Quelqu'un pourrait m'expliquer simplement ?

Posté(e)

OK tu as surement raison.
 

Sinon en alternative à la prise HDMI (qui obligé à laisser tourner un RPI qui va consommer 5 watts en permanence), tu peux regarder du coté des télécommandes infrarouge.

 

Je pense que les lignes fournies par Pepite ne te seront pas trop utile, il te proposait juste cela pour obtenir la liste des actions que permettent ce plugin.

Tu peux le faire plus simplement en tapant l'URL dans ton navigateur avec l'ID de ton plugin.

 

http://IP_de_ta_box/devices/ID_de_ton_plugin

 

Posté(e) (modifié)

Ok merci pour l'info.

Mon but premier étant surtout d'éteindre la tv si elle reste allumée la nuit, j'ai trouvé du code pour créer soi-même un VD.

Il suffit d'attribuer ce bout de code LUA à chaque bouton en modifiant à chaque fois le keycodestring

-- <configuration> -- 
tvIpAddress = "192.168.1.62" 
tvPort = 55000 
keycodestring = "KEY_VOLUP" 
tvAuthString = string.char(0x00,0x14,0x00,0x69,0x70,0x68,0x6f,0x6e,0x65,0x2e,0x2e,0x69,0x61,0x70,0x70,0x2e,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67,0x38,0x00,0x64,0x00,0x14,0x00,0x4d,0x54,0x6b,0x79,0x4c,0x6a,0x45,0x32,0x4f,0x43,0x34,0x77,0x4c,0x6a,0x45,0x78,0x4d,0x41,0x3d,0x3d,0x18,0x00,0x4e,0x45,0x4d,0x74,0x4e,0x7a,0x49,0x74,0x51,0x6a,0x6b,0x74,0x4e,0x44,0x4d,0x74,0x4d,0x6a,0x51,0x74,0x4f,0x45,0x49,0x3d,0x04,0x00,0x54,0x51,0x3d,0x3d)
-- </configuration> -- 
-- character table string 
local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' 
-- encoding to base64 
function enc(data) 
    return ((data:gsub('.', function(x) 
        local r,b='',x:byte() 
        for i=8,1,-1 do r=r..(b%2^i-b%2^(i-1)>0 and '1' or '0') end 
        return r; 
    end)..'0000'):gsub('%d%d%d?%d?%d?%d?', function(x) 
        if (#x < 6) then return '' end 
        local c=0 
        for i=1,6 do c=c+(x:sub(i,i)=='1' and 2^(6-i) or 0) end 
        return b:sub(c+1,c+1) 
    end)..({ '', '==', '=' })[#data%3+1]) 
end 
-- helper function 
function num2bytes(num)    
    local retStr="" 
    for i=1,2 do 
        retStr = retStr .. string.char(num%256) 
        num = math.floor(num/256) 
    end 
      return retStr 
end 

tcpSocket = Net.FTcpSocket(tvIpAddress, tvPort) 

-- say hello to the TV ;) 
bytes, errorCode = tcpSocket:write(tvAuthString) 
keycodebase = string.char(0x00,0x13,0x00,0x69,0x70,0x68,0x6f,0x6e,0x65,0x2e,0x69,0x61,0x70,0x70,0x2e,0x73,0x61,0x6d,0x73,0x75,0x6e,0x67) 
-- payload 
payloadinit = string.char(0x00,0x00,0x00) 
keycode = enc(keycodestring) 
keycodesize = num2bytes(string.len(keycode)) 
payloadsize = num2bytes(string.len(payloadinit .. keycode ..keycodesize)) 
-- combining the message 
message = keycodebase .. payloadsize .. payloadinit .. keycodesize .. keycode 
-- sending keycode 
bytes, errorCode2 = tcpSocket:write(message) 
if errorCode == 0 and errorCode2 == 0 
then 
  -- printing log under virtual device 
  fibaro:log("transfer OK: " .. keycodestring) 
else 
  fibaro:log("transfer failed") 
end

Et là, pour chaque bouton finalement il y a un retour d'état

 

if errorCode == 0 and errorCode2 == 0 
then 
  -- printing log under virtual device 
  fibaro:log("transfer OK: " .. keycodestring) 
else 
  fibaro:log("transfer failed") 
end

Il suffirait de faire un scenario qui monte le son (si il fait ça toutes les heures la nuit c'est pas gênant puisque la tv est sensée être éteinte). Si la télé est allumée, la commande ne remontra pas d'erreur, donc on a plus qu'à envoyer la commande pour l'éteindre juste derrière. Du coup, on a moyen de savoir si elle est allumée ou pas.

(J'ai pas pu tester, mon fils est accroché à ses dessins animés comme une moule sur son rocher !!)

Qu'en penses-tu ?

 

Modifié par macpowered
Posté(e)

Non tu n'auras pas de retour d'état de la TV avec ce code, ce que tu auras c'est juste un retour de la commande que tu as passé... en gros est-ce que la TV a bien reçu l'ordre que tu lui as donné.

Mais tu ne sauras pas si elle s'est réellement éteinte, et encore moins si quelqu'un l'a rallumé juste après (avec la télécommande, etc)

 

A toi de voir si ça te convient ainsi ou pas.

 

Perso tous mes équipements multimedias sont sur Wall Plug ou Powernode. Mais scénarios sont basés sur leur consommation pour savoir si chaque appareil est réellement allumé ou non. C'est le retour d'état le plus fiable possible.

Posté(e)

Pourquoi ne pas faire simple ? Quel est ton scénario ? Éteindre la TV à 02h00. Et bien tu genres un appuis sur le bouton off du plugin, que la TV soit allumee ou éteinte. C'est mieux que de la laisser allumée toute la nuit, et ça ne coûte rien à mettre en œuvre. 

  • Like 1
Posté(e)

Bonjour à tous les deux (et aux autres bien sûr),

 

@jojo C'est tellement simple, que je n'y avais même pas pensé !! Pourquoi faire simple, quand on peut faire compliqué !!

 

@Lazer Malheureusement, j'ai eu beau chercher un Powernode, ça reste introuvable...dommage (pas assez rentable mon ami !!).

 

Par contre, car il y a toujours un "mais" sinon ce serait trop facile, est-il normal de ne pas voir le module de ma TV lorsque je fais une scène en bloc graphique ? C'est un plugin de Samsung, il apparait bien comme module dans "Salon", il est fonctionnel mais lorsque je le recherche dans les modules du salon à partir de la création de scène en bloc graphique, il n'apparait pas :15:

En tout cas merci pour vos réponses !!!

  • 1 an après...
Posté(e) (modifié)

Hello,

comment faites vous pour appuyer sur ce POWEROFF  :1:

en GEA ou en LUA, je souhaite appuyer sur le power off du plugin, ça parait simple,

je viens d’écumer les sujets depuis 2013, c'est fou, il y a du VD dans tt les coins, on parle de KKEYPOWER OFF...... mais ce petit "appui sur le bouton du plugin" pas moyen :22:

alors que la barack, le jardin, limite le repassage, la cuisinière sont domotisés  je vais être obligé d'appuyer manuellement sur la télécommande lorsque je dis "bonne nuit alexa" afin qu'elle ferme volets, lumières, portes, portails ......!! non mais lol :93:

Help me pls

 

 

Modifié par flamalex
Posté(e)

Regarde via l'api tu auras tout ce que tu as besoin pour utiliser
Exemple si ton plugin a id 54
192.168.1.8/api/devices/54



Envoyé de mon BLA-L29 en utilisant Tapatalk

Posté(e)

chez moi cela fonctionne

http://192.168.1.8/api/devices/649

 

	
id	649
name	"Samsung TV"
roomID	0
type	"com.fibaro.samsungTv"
baseType	"com.fibaro.television"
enabled	true
visible	true
isPlugin	true
parentId	0
remoteGatewayId	0
interfaces	
0	"externalView"
view	
0	
name	"POWER_Button"
type	"button"
properties	
categories	"[\"multimedia\"]"
dead	"false"
deadReason	""
deviceControlType	"0"
deviceIcon	"28"
emailNotificationID	"0"
emailNotificationType	"0"
ip	""
log	""
logTemp	""
manufacturer	""
model	""
mute	"false"
power	"false"
pushNotificationID	"0"
pushNotificationType	"0"
remoteGatewayId	"0"
saveLogs	"true"
smsNotificationID	"0"
smsNotificationType	"0"
state	""
ui.A_Button.caption	"A"
ui.B_Button.caption	"B"
ui.CHANNEL_DOWN_Button.caption	""
ui.CHANNEL_UP_Button.caption	""
ui.CH_LIST_Button.caption	"CH LIST"
ui.C_Button.caption	"C"
ui.DOWN_Button.caption	""
ui.D_Button.caption	"D"
ui.EXIT_Button.caption	""
ui.FAST_FORWARD_Button.caption	""
ui.FAST_REWIND_Button.caption	""
ui.GUIDE_Button.caption	"GUIDE"
ui.HDMI_Button.caption	"HDMI"
ui.INFO_Button.caption	"INFO"
ui.LEFT_Button.caption	""
ui.MENU_Button.caption	"MENU"
ui.NUM_0_Button.caption	"0"
ui.NUM_1_Button.caption	"1"
ui.NUM_2_Button.caption	"2"
ui.NUM_3_Button.caption	"3"
ui.NUM_4_Button.caption	"4"
ui.NUM_5_Button.caption	"5"
ui.NUM_6_Button.caption	"6"
ui.NUM_7_Button.caption	"7"
ui.NUM_8_Button.caption	"8"
ui.NUM_9_Button.caption	"9"
ui.OK_Button.caption	"OK"
ui.PAUSE_Button.caption	""
ui.PLAY_Button.caption	""
ui.PRE_CH_Button.caption	"PRE-CH"
ui.RECORD_Button.caption	""
ui.RETURN_Button.caption	"RETURN"
ui.RIGHT_Button.caption	""
ui.SMART_Button.caption	"SMART HUB"
ui.SOURCE_Button.caption	""
ui.STOP_Button.caption	""
ui.TOOLS_Button.caption	"TOOLS"
ui.TTX_MIX_Button.caption	"TTX/MIX"
ui.UP_Button.caption	""
ui.VOLUME_DOWN_Button.caption	""
ui.VOLUME_UP_Button.caption	""
ui._label3.caption	"VOL"
ui._label4.caption	"CH"
ui.config.ip.caption	"IP address"
ui.config.ip.enabled	true
ui.config.section1.caption	"Network configuration"
ui.config.section1.enabled	true
userDescription	""
volume	"0"
actions	
runMedia	0
setMute	1
setVolume	1
turnOff	0
turnOn	0
created	1594468092
modified	1594468092
sortOrder	297

 

Posté(e) (modifié)

c'est good, ok pour l'api

par contre pour le LUA, c'est pas gagné ;)

 

un truc dans ce genre?

http://192.168.1.24/api/callAction?deviceID=148&name=pressButton&arg1=1 

comment inserer 

{"name":"POWER_Button","type":"button"}

 EDIT:

ca doit etre ça:

http://192.168.1.24/api/plugins/callUIEvent?deviceID=148&elementName=POWER_Button&eventType=button

Modifié par flamalex
Posté(e) (modifié)

justement, je n'y arrive pas

 

SAMSUNG=Net.FHttp("192.168.1.24",80);
SAMSUNG:GET("/api/plugins/callUIEvent?deviceID=148&elementName=POWER_Button&eventType=button")

ça ne fonctionne pas

 

EDIT: un fibaro:call, ça m’intéresse

 

Modifié par flamalex
Posté(e)

Ben tu regardes les commandes via l'api
Pour pouvoir faire ensuite de fibaro:call

Plus simple encore
Tu ouvres une scène ensuite sur la gauche tu as tes modules tu sélectionnes le plugin Samsung sur tu clic pas juste le pointeur dessus la tu auras les commandes tu clic sur la commande que tu veux est par magie le code lua apparaît dans la scène

Envoyé de mon BLA-L29 en utilisant Tapatalk

Posté(e)

à par ça

fibaro:getValue(148, "power")

et ça ne fonctionne pas

rien d'autre

 

le seul fibaro:call

fibaro:call(148, "turnOff")

qui ne donne rien

l'as tu essayé?

Posté(e)

ok, en "mode scene" la liste est la suivante (presque identique à la tienne sans les valeurs) et c'est tt ce que j'ai

categories	
dead	
deadReason	
deviceControlType	
deviceIcon	
emailNotificationID	
emailNotificationType	
ip	
log	
logTemp	
manufacturer	
model	
mute	
power	
pushNotificationID	
pushNotificationType	
remoteGatewayId	
saveLogs	
smsNotificationID	
smsNotificationType	
state	
ui.A_Button.caption	
ui.B_Button.caption	
ui.CHANNEL_DOWN_Button.caption	
ui.CHANNEL_UP_Button.caption	
ui.CH_LIST_Button.caption	
ui.C_Button.caption	
ui.DOWN_Button.caption	
ui.D_Button.caption	
ui.EXIT_Button.caption	
ui.FAST_FORWARD_Button.caption	
ui.FAST_REWIND_Button.caption	
ui.GUIDE_Button.caption	
ui.HDMI_Button.caption	
ui.INFO_Button.caption	
ui.LEFT_Button.caption	
ui.MENU_Button.caption	
ui.NUM_0_Button.caption	
ui.NUM_1_Button.caption	
ui.NUM_2_Button.caption	
ui.NUM_3_Button.caption	
ui.NUM_4_Button.caption	
ui.NUM_5_Button.caption	
ui.NUM_6_Button.caption	
ui.NUM_7_Button.caption	
ui.NUM_8_Button.caption	
ui.NUM_9_Button.caption	
ui.OK_Button.caption	
ui.PAUSE_Button.caption	
ui.PLAY_Button.caption	
ui.PRE_CH_Button.caption	
ui.RECORD_Button.caption	
ui.RETURN_Button.caption	
ui.RIGHT_Button.caption	
ui.SMART_Button.caption	
ui.SOURCE_Button.caption	
ui.STOP_Button.caption	
ui.TOOLS_Button.caption	
ui.TTX_MIX_Button.caption	
ui.UP_Button.caption	
ui.VOLUME_DOWN_Button.caption	
ui.VOLUME_UP_Button.caption	
ui._label3.caption	
ui._label4.caption	
ui.config.ip.caption	
ui.config.ip.enabled	
ui.config.section1.caption	
ui.config.section1.enabled	
userDescription	
volume	
actions	
runMedia	
setMute	
setVolume	
turnOff	
turnOn	
Posté(e)

c’est good en http.

bon maintenant il faut que je fasse pareil, meme si c’est un autre sujet, avec le decoder tv livebox, mais je n’ai pas le retour d’état si allumé ou en veille donc impossible de l’utiliser dans ma config.

×
×
  • Créer...