Last working route, funktionen som Fibaro saknar

Post Reply
RH_Dreambox
Proffsmedlem
Posts: 952
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

19 Sep 2018, 11:18

För er som är intresserade av att se vilka underliga vägar enheterna tar för att prata med HC2 så kanske det här är något.
Filerna (php och html) finns ätt hämta på Fibaros forum.
https://forum.fibaro.com/topic/31376-ye ... isualiser/

Har ni en webserver med php så funkar allt direkt när ni konfigurerat IP och inloggning.
Har ni ingen webserver så finns det en lösning för datorn (windows) i slutet av inlägget.
Attachments
HC2-Inne.PNG
HC2-Garaget.PNG
2 st HC2 4.550
riro
Medlem
Posts: 52
Joined: 27 Mar 2017, 11:02
Location: Falun
Contact:

20 Sep 2018, 10:36

Äntligen!

Har letat efter en liknande funktion länge... tacka!
Texan
Medlem
Posts: 106
Joined: 25 Dec 2015, 15:07

20 Sep 2018, 20:08

:D Riktigt nice - tack för tipset
Henrikel
Proffsmedlem
Posts: 686
Joined: 12 Dec 2013, 00:24
Location: Växjö
Contact:

22 Sep 2018, 09:31

Kanon. Hoppas fibaro någon gång får med detta i någon uppdatering så man slipper omvägar.
Installations Elektriker
https://www.facebook.com/ramnasael
Installerar och säljer Z-wave lösningar
DrPepper
Medlem
Posts: 82
Joined: 05 Jul 2014, 02:04

22 Jan 2019, 18:24

Hej,

Har precis försökt meka med det här. Dvs, lägga in filerna på en webb-server. Som vanligt på Fibaro's forum så är det duktigt folk vad gäller de tekniska bitarna men, det där med att skriva en step-by-step instruktion - tja - det är det ju så där med.

Jag får kort sagt inte sakerna att fungera.

följande är gjort.

1. jag har skapat ett directory på min web-server, där jag lagt in både index.html och load.php.
2. jag har lagt in ett konto som jag har på min HC2 (begränsad access naturligtvis).
3. jag har pekat mot det nya kontot och den korrekta IP-addressen för HC2 i load.php.
4. kör jag load.php, så får jag 3 olika tabbar - JSON, rådata och Rubriker.
5. JSON tab'en visar INGET.
6.Rådata visar [ ]
7. Rubriker ger mig lite statistik - se bild php.jpg.
8. Väljer jag index.html istället, får jag upp enl. bild index.jpg - vilket är väldigt lite...

Några tips?

Ber om ursäkt att jag inte visar mer än de redigerade screen-shots'en.

mvh:
DrPepper
Attachments
index.jpg
HC2 - uppdaterat till 4.160.
RH_Dreambox
Proffsmedlem
Posts: 952
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

22 Jan 2019, 18:56

Jag antar att du också har en PHP-server vilket krävs.
Det som inte framgår tydligt är att man själv skall skapa filen load.settings. Filen Load.php hämtar användaruppgifterna från load.settings.
Filen load.settings skall innehålla dessa rader.

Code: Select all

{
	"hc2Url" : "192.168.XXX.XXX",
	"username": "XXXX@XXXX.com",
	"password": "YYYYYYY"
}
Men funkar det inte så testa nedanstående. Jag fick igång det genom att skriva inloggningsdata direkt i filen load.php. Men rör inget i filens första del ($settings = ... mm)
<?php

$settings = file_get_contents("load.settings");
$settings = json_decode($settings, true);
$username = $settings['username'];
$password = $settings['password'];
$url = $settings['hc2Url'];

//------------------------------------------------------------------------------------
$context = stream_context_create(array(
'http'=>array(
'method'=>"GET",
'header' => "Authorization: Basic " . base64_encode(XXXX@XXXX.com:YYYYYYY") (Här)
)
));

$remote_url = 'http://192.168.XXX.YYY/api/devices?interface=zwave&isPlugin=false'; (Här)
$file = file_get_contents($remote_url, false, $context);
$devices = json_decode($file, true);
file_put_contents(__DIR__.'/devices.json', $file);

$remote_url = 'http://192.168.XXX.YYY/api/rooms'; (Här)
$file = file_get_contents($remote_url, false, $context);
$rooms = json_decode($file, true);
file_put_contents(__DIR__.'/rooms.json', $file);

header('Content-Type: text/html; charset=utf-8');
header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');

echo json_encode(array());

?>
2 st HC2 4.550
DrPepper
Medlem
Posts: 82
Joined: 05 Jul 2014, 02:04

22 Jan 2019, 20:38

Hej!

Nej, load.settings var inte helt tydlig.
Var ska load.settings ligga placerad?
I samma directory på PHP-web-servern som load.php och index.html ligger?

Sitter och djävlas med den där SMS-servern som shad beskrivit på fibaro-forumet. Samma där - hälften är utelämnat, och vissa saker stämmer inte alls. Tur att startpage.com finns.
Dock har jag inte kommit förbi det sista hindret på den beskrivningen.

mvh:
DrPepper
HC2 - uppdaterat till 4.160.
DrPepper
Medlem
Posts: 82
Joined: 05 Jul 2014, 02:04

22 Jan 2019, 20:58

Hej,

Provade lite labb och slabb...load.settings försökte jag lägga i samma directory på php-webb-servern som load.php och index.html men, det hjälpte inte.
försökte sen med att modda load.php enl. Din instruks men, inte heller det fungerar. Måste man ge accessen till admin-kontot för den här funktionen för det har jag iNTE gjort. och vill inte heller egentligen....

mvh: DrPepper
HC2 - uppdaterat till 4.160.
RH_Dreambox
Proffsmedlem
Posts: 952
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

23 Jan 2019, 09:37

User och Password måste vara det som du loggar in med lokalt på din HC2 eftersom scriptet också loggar in för att hämta uppgifterna.
Och ja, load.settings skall ligga i PHP-mappen.
Radera också de båda json-filerna utifall de ligger och spärrar.

Så här ser svaret från PHP ut. (Jag har ingen web-server utan kör lokalt från min dator.)

Code: Select all

PHP 7.2.10 Development Server started at Wed Jan 23 08:42:48 2019
Listening on http://localhost:8000
Document root is C:\php
Press Ctrl-C to quit.
[Wed Jan 23 08:42:57 2019] ::1:59145 [200]: /index.html
[Wed Jan 23 08:43:06 2019] ::1:59146 [200]: /load.php
[Wed Jan 23 08:43:06 2019] ::1:59166 [404]: /favicon.ico - No such file or directory
[Wed Jan 23 08:43:06 2019] ::1:59213 [200]: /devices.json
[Wed Jan 23 08:43:06 2019] ::1:59215 [200]: /rooms.json
2 st HC2 4.550
DrPepper
Medlem
Posts: 82
Joined: 05 Jul 2014, 02:04

23 Jan 2019, 18:24

Jaha - ja, då är något lurt, för jag får samma resultat som tidigare. dvs inget relevant. skumt som sjutton. tack iaf för engagemanget. :)

mvh:DrPepper
HC2 - uppdaterat till 4.160.
DrPepper
Medlem
Posts: 82
Joined: 05 Jul 2014, 02:04

28 Jan 2019, 20:27

Hej,

Ok. Nu börjar det hända saker - nästan....

Efter många om och men, har jag insett att iaf del av problemet var rättigheterna på min servers directories. Det är nu åtgärdat. Jag får iaf rooms.json och devices.json filer skapade.

Men, det är fortfarande inget som visas på vare sig load.php eller index.html.

Någon tanke/idé?

mvh:
DrPepper
HC2 - uppdaterat till 4.160.
RH_Dreambox
Proffsmedlem
Posts: 952
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

31 Jan 2019, 15:16

Filen load.php har ju gjort sitt jobb om filerna rooms.json och devices.json har skapats och du ser att de innehåller data.
Då måste ju problemet ligga i den del av HTML-filen som skall presentera dessa data.

Ligger alla filer i samma mapp (i mitt fall mappen PHP).
Eftersom jag inte har någon webb-server så ligger min mapp på C-disken, och jag måste först starta php.exe (C:\PHP\php.exe -S localhost:8000). Sedan kan jag köra HTML-filen (index.html).
2 st HC2 4.550
DrPepper
Medlem
Posts: 82
Joined: 05 Jul 2014, 02:04

31 Jan 2019, 18:25

Hej,

Jo, något är lurt, då filerna rooms och devices .json skapas. De är dock exakt 0 bytes stora. :/
Märkligt att något sånt här trivialt och som borde finnas inbyggt i HC2'an INTE gör det. :/

Tack iaf för all hjälp hittils. :)

mvh:
DrPepper
HC2 - uppdaterat till 4.160.
RH_Dreambox
Proffsmedlem
Posts: 952
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

31 Jan 2019, 19:10

OK, jag missförstod dig gällande filerna. Om filerna skapas men är 0 byte så har load.php inte lyckats logga in och hämta uppgifterna.
Du kanske måste göra som jag beskrev tidigare, att fylla i inloggningsuppgifterna direkt i load.php.
Men rör inte något i den här biten, då sabbar du förmodligen inloggningen.

Code: Select all

<?php

$settings = file_get_contents("load.settings");
$settings = json_decode($settings, true);
$username = $settings['username']; 
$password = $settings['password'];
$url = $settings['hc2Url']; 

//------------------------------------------------------------------------------------

2 st HC2 4.550
MastrUsr
Medlem
Posts: 94
Joined: 25 Apr 2017, 07:24

21 Mar 2019, 18:28

Tack för tipset, funkade enkelt och klockrent första gången.

Gjorde en "Mesh network reconfiguration" i HC2 och fick detta resultatet.

Före:
Anteckning 2019-03-21 171109.jpg
Efter:
Anteckning 2019-03-21 171812.jpg
Attachments
Anteckning 2019-03-21 171812.jpg
RH_Dreambox
Proffsmedlem
Posts: 952
Joined: 03 Jan 2015, 16:49
Location: Vegby
Contact:

22 Mar 2019, 09:42

Ja, man kan se att din kaffebryggare har det "svettigt" :lol:
2 st HC2 4.550
MastrUsr
Medlem
Posts: 94
Joined: 25 Apr 2017, 07:24

22 Mar 2019, 09:53

:lol: Verkligen!
RH_Dreambox wrote:
22 Mar 2019, 09:42
Ja, man kan se att din kaffebryggare har det "svettigt" :lol:

Vissa av dessa "vägar" förstår jag mig inte på alls... Jag antar att det är mindre "skit" i vägen om man går via "den" noden.
Post Reply