Hämta värde med API till VD i HC2

Generell info kring Z-Wave
Post Reply
diStefano
Medlem
Posts: 105
Joined: 31 Aug 2013, 21:39
10

Har en RPi med Domoticz som bl.a. hämtar värden från tempsensorer via RFXTrx.

Nu skulle jag vilja få värdet från ena tempsensorn till en VD i HC2 men får inte till det.
Har skapat VD och angett ip.adress och port till Domoticz under Allmänt.
Under Main loop har jag skrivit

Code: Select all

GET /json.htm?type=command&param=udevice&idx=7&nvalue=0&svalue=TEMP
Där 7 är Id för aktuell sensor.

När jag kör debug får jag

Code: Select all

[ERROR] 11:30:34: line 2: '=' expected near '/'
Någon som kan guida mig rätt?
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
10

Du kan använda Fibarolink i Domoticz.
Den hittar du under Setup -> More options -> Data push -> Fibarolink.

I din HC2:a skapar du en VD med en eller flera labels, som Domoticz uppdaterar.
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1192
Joined: 03 Jan 2015, 16:49
9
Location: Vegby
Contact:

Eller så här:

Code: Select all

--[[ 
%% properties 
%% autostart
%% globals 
--]] 
-- debug function
Debug = function ( color, message ) 
  fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span")); 
end
--Debug("red","Test message")
--Debug("green","Test message")
--Debug("orange","Test message")

local temp = 0;
HC2 = Net.FHttp("192.168.XXX.XXX",8080) -- IP till Domoticz
response ,status, errorCode = HC2:GET("/json.htm?type=devices&rid=7") --Min Device ID = 7
jsonTable = json.decode(response)
local data = jsonTable.result[1].Data
local temp = jsonTable.result[1].Temp
local fukt = jsonTable.result[1].Humidity
local dewpoint = jsonTable.result[1].DewPoint
local status = jsonTable.result[1].HumidityStatus
fibaro:call(86,"setProperty","ui.Label1.value",data)

fibaro:log( "Temp: "..temp.." °C / Fukt: "..fukt.." %".." / Daggpunkt: "..dewpoint.." °C".." / "..status)

fibaro:sleep(60*1000);
Min gamla ombyggda HC2 har fått ett nytt liv och min HC3 är nu nedkopplad.
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
diStefano
Medlem
Posts: 105
Joined: 31 Aug 2013, 21:39
10

SirMaggot wrote:Du kan använda Fibarolink i Domoticz.
Den hittar du under Setup -> More options -> Data push -> Fibarolink.

I din HC2:a skapar du en VD med en eller flera labels, som Domoticz uppdaterar.
Har brottats med det en tid men kan bara få status på brytare skickat vid FibaroLink, inget från temp.givare.
diStefano
Medlem
Posts: 105
Joined: 31 Aug 2013, 21:39
10

RH_Dreambox wrote:Eller så här:

Code: Select all

--[[ 
%% properties 
%% autostart
%% globals 
--]] 
-- debug function
Debug = function ( color, message ) 
  fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span")); 
end
--Debug("red","Test message")
--Debug("green","Test message")
--Debug("orange","Test message")

local temp = 0;
HC2 = Net.FHttp("192.168.XXX.XXX",8080) -- IP till Domoticz
response ,status, errorCode = HC2:GET("/json.htm?type=devices&rid=7") --Min Device ID = 7
jsonTable = json.decode(response)
local data = jsonTable.result[1].Data
local temp = jsonTable.result[1].Temp
local fukt = jsonTable.result[1].Humidity
local dewpoint = jsonTable.result[1].DewPoint
local status = jsonTable.result[1].HumidityStatus
fibaro:call(86,"setProperty","ui.Label1.value",data)

fibaro:log( "Temp: "..temp.." °C / Fukt: "..fukt.." %".." / Daggpunkt: "..dewpoint.." °C".." / "..status)

fibaro:sleep(60*1000);
Tack, ska prova det! Lägger jag det i Main loop?
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
10

Skickar temp och fukt till två "labels" i en VD (id 10) på HC2:an

Image
diStefano
Medlem
Posts: 105
Joined: 31 Aug 2013, 21:39
10

SirMaggot wrote:Skickar temp och fukt till två "labels" i en VD (id 10) på HC2:an

Image
Hade varit önskvärt men jag får inte ens med FibaroLInk med sänt värde i loggen...
seriksson
Medlem
Posts: 25
Joined: 15 Apr 2015, 14:11
8
Location: Eskilstuna

RH_Dreambox wrote:Eller så här:

Code: Select all

--[[ 
%% properties 
%% autostart
%% globals 
--]] 
-- debug function
Debug = function ( color, message ) 
  fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span")); 
end
--Debug("red","Test message")
--Debug("green","Test message")
--Debug("orange","Test message")

local temp = 0;
HC2 = Net.FHttp("192.168.XXX.XXX",8080) -- IP till Domoticz
response ,status, errorCode = HC2:GET("/json.htm?type=devices&rid=7") --Min Device ID = 7
jsonTable = json.decode(response)
local data = jsonTable.result[1].Data
local temp = jsonTable.result[1].Temp
local fukt = jsonTable.result[1].Humidity
local dewpoint = jsonTable.result[1].DewPoint
local status = jsonTable.result[1].HumidityStatus
fibaro:call(86,"setProperty","ui.Label1.value",data)

fibaro:log( "Temp: "..temp.." °C / Fukt: "..fukt.." %".." / Daggpunkt: "..dewpoint.." °C".." / "..status)

fibaro:sleep(60*1000);
Denna tyckte jag var trevlig!

Skulle man kunna sätta en global variabel för temp respektive fukt samtidigt?
User avatar
sonnyboy
Proffsmedlem
Posts: 669
Joined: 26 Sep 2013, 08:05
10
Location: Västerås

Jag kör med detta när jag hämtar värden från mina 433mhz som loggas med BeyondMeasure
den kan du också modda efter ditt behov,
Detta ligger under main loop

Code: Select all

selfId = fibaro:getSelfId()
sleeptimer = 5 -- Antal minuter mellan pollning
local WEB = Net.FHttp("192.168.88.243",6002)
local response ,status, err = WEB:GET("/api/tag/string/Vardagsrum::Temp?format=json")
	  if (tonumber(status) == 200 and tonumber(err)==0) then
      	local jsonTable = json.decode(response)
        name = jsonTable.Name
        value = jsonTable.Value
  		
  
    	--fibaro:debug(value)
    	fibaro:log(value)
  
        fibaro:call(selfId, "setProperty", "ui.lblName.value", name)
        fibaro:call(selfId, "setProperty", "ui.lblTemp.value", value.." °C")
  		fibaro:setGlobal("VardagsRumTMP", value)
end
fibaro:sleep(sleeptimer*1000*57)
Fibaro HomeCenter 2
Fw 4.600
BeyondMeasure 1.10
EventRunner
seriksson
Medlem
Posts: 25
Joined: 15 Apr 2015, 14:11
8
Location: Eskilstuna

sonnyboy wrote:Jag kör med detta när jag hämtar värden från mina 433mhz som loggas med BeyondMeasure
den kan du också modda efter ditt behov,
Detta ligger under main loop

Code: Select all

selfId = fibaro:getSelfId()
sleeptimer = 5 -- Antal minuter mellan pollning
local WEB = Net.FHttp("192.168.88.243",6002)
local response ,status, err = WEB:GET("/api/tag/string/Vardagsrum::Temp?format=json")
	  if (tonumber(status) == 200 and tonumber(err)==0) then
      	local jsonTable = json.decode(response)
        name = jsonTable.Name
        value = jsonTable.Value
  		
  
    	--fibaro:debug(value)
    	fibaro:log(value)
  
        fibaro:call(selfId, "setProperty", "ui.lblName.value", name)
        fibaro:call(selfId, "setProperty", "ui.lblTemp.value", value.." °C")
  		fibaro:setGlobal("VardagsRumTMP", value)
end
fibaro:sleep(sleeptimer*1000*57)
Tack för tipset, ska undersökas :-)
seriksson
Medlem
Posts: 25
Joined: 15 Apr 2015, 14:11
8
Location: Eskilstuna

seriksson wrote:
RH_Dreambox wrote:Eller så här:

Code: Select all

--[[ 
%% properties 
%% autostart
%% globals 
--]] 
-- debug function
Debug = function ( color, message ) 
  fibaro:debug(string.format('<%s style="color:%s;">%s</%s>', "span", color, message, "span")); 
end
--Debug("red","Test message")
--Debug("green","Test message")
--Debug("orange","Test message")

local temp = 0;
HC2 = Net.FHttp("192.168.XXX.XXX",8080) -- IP till Domoticz
response ,status, errorCode = HC2:GET("/json.htm?type=devices&rid=7") --Min Device ID = 7
jsonTable = json.decode(response)
local data = jsonTable.result[1].Data
local temp = jsonTable.result[1].Temp
local fukt = jsonTable.result[1].Humidity
local dewpoint = jsonTable.result[1].DewPoint
local status = jsonTable.result[1].HumidityStatus
fibaro:call(86,"setProperty","ui.Label1.value",data)

fibaro:log( "Temp: "..temp.." °C / Fukt: "..fukt.." %".." / Daggpunkt: "..dewpoint.." °C".." / "..status)

fibaro:sleep(60*1000);
Denna tyckte jag var trevlig!

Skulle man kunna sätta en global variabel för temp respektive fukt samtidigt?
Löste det så här:

Code: Select all

--Set Virtual Labels
fibaro:call(200,"setProperty","ui.Label1.value",""..temp.." °C")
fibaro:call(129,"setProperty","ui.Label1.value",""..fukt.." %")

--Set Globals
fibaro:setGlobal("KrypTemp", ""..temp.." °C")
fibaro:setGlobal("KrypFukt", ""..fukt.." %")
Status.PNG
Vari.PNG
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1192
Joined: 03 Jan 2015, 16:49
9
Location: Vegby
Contact:

Är ni helt säkra på att FibaroLink i Domoticz fungerar????
Jag har försökt men inte lyckats. Domoticz logg säger att data skickas, men VD'n i HC2 uppdateras inte.
Lika illa är det att skicka data till en Global variabel. Domoticz säger att data skickas, men ingen variabel uppdateras.

Läser man på Domoticz forum så skrivs det att man lika gärna kan ta bort funktionen eftersom den inte fungerar.
Så ni som använder FibaroLinks, är ni 100% säkra på att värdena uppdateras?
Min gamla ombyggda HC2 har fått ett nytt liv och min HC3 är nu nedkopplad.
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
SirMaggot
Medlem
Posts: 441
Joined: 18 Aug 2013, 10:36
10

RH_Dreambox wrote:Är ni helt säkra på att FibaroLink i Domoticz fungerar????
Jag har försökt men inte lyckats. Domoticz logg säger att data skickas, men VD'n i HC2 uppdateras inte.
Lika illa är det att skicka data till en Global variabel. Domoticz säger att data skickas, men ingen variabel uppdateras.

Läser man på Domoticz forum så skrivs det att man lika gärna kan ta bort funktionen eftersom den inte fungerar.
Så ni som använder FibaroLinks, är ni 100% säkra på att värdena uppdateras?
Ja, jag vet att det fungerar att uppdatera en label i en vd, det funkar inte att uppdatera globala värden dock.
Om det inte funkar för dig så kan du testa att uppdatera Domoticz till senaste betan
seriksson
Medlem
Posts: 25
Joined: 15 Apr 2015, 14:11
8
Location: Eskilstuna

Funkade inget bra med koden i main loop. Det blev tvärnit efter ett tag. La koden på en knapp i stället. Nu får GEA sköta hämtningen av värdena i stället ;)

Code: Select all

GEA.add(true, 15*60, "", {{"Repeat"}, {"VirtualDevice", id["TEMP_FUKT_GARAGE"], "2"}, {"VirtualDevice", id["TEMP_FEORRE_D"], "2"}, {"VirtualDevice", id["TEMP_FUKT_KRYPGRUND"], "2"}, {"VirtualDevice", id["TEMP_FUKT_SOVRUM"], "2"}})
User avatar
RH_Dreambox
Z-Wave Kung
Posts: 1192
Joined: 03 Jan 2015, 16:49
9
Location: Vegby
Contact:

Ja, jag vet att det fungerar att uppdatera en label i en vd, det funkar inte att uppdatera globala värden dock.
Om det inte funkar för dig så kan du testa att uppdatera Domoticz till senaste betan
Tack SirMaggot!
Den senaste betan 3.6616 gjorde susen.
Nu funkar det att hämta till både VD och Global variabel.
Min gamla ombyggda HC2 har fått ett nytt liv och min HC3 är nu nedkopplad.
HC2 med Home Assistant har blivit en riktig Game Changer och nu har jag hemautomatik på riktigt.
https://www.zwaveforum.se/viewtopic.php?t=7087
Post Reply