Nodo WebApp op een Synology server

slimmedingen

De ontwikkelaars van de Nodo hebben een webserver applicatie gemaakt waarmee je Nodo’s kunt besturen. De NoDoWeb applicatie is als open-source vrijgegeven en kan iedereen die dat wil, het dus thuis op zijn eigen server ‘draaien’.

De Wiki van Nodo is sterk in ontwikkeling, maar ik kwam geen kant-en-klare handleiding tegen voor de Synology. Dus werd het tijd om mijn gevolgde stappen, maar eens in een artikel te plaatsen. Als hulpmiddel heb ik een andere handleiding gevolgd; die van Willem.

Ik ga er van uit dat je inmiddels een webserver hebt draaien op je Synology. Zo niet dan is er genoeg informatie te vinden op internet hoe je dat moet doen.

Allereerst downloaden we TortoiseSVN. TortoiseSVN is een programma dat de verschillende bestanden van Google code kan downloaden. Het programma is beschikbaar via het menu bij een rechter muisklik in de Windows verkenner.

Na installatie maken we in Windows verkenner een map in de web directory van de Synology, ik heb de map webapp genoemd. Vervolgens klik je met de rechtermuis knop en selecteer je [SVN Checkout]. Je voert de volgende informatie in en klikt op [OK]:

  • URL: http://arduino-nodo.googlecode.com/svn/Webserver/NoDoWeb
  • Checkout directory: \\Diskstation\web\webapp\

Alle bestanden voor de WebApp staan nu na een tijdje in de gewenste directory.

De NoDoWeb applicatie maakt uitvoerig gebruik van de MySQL database dus deze moet worden aangemaakt. Gelukkig hebben de ontwikkelaars van de NoDoWeb applicatie hier een script voor gemaakt dat (na een kleine aanpassing) eenvoudig kan worden uitgevoerd. Het bestand nodo_db.txt bevat alle instructies om een standaard, lege, database voor de Nodo WebApp aan te maken. Helaas staan er ook een hoop instructies in die niet nodig zijn (en veelal ook foutmeldingen veroorzaken). Verwijder vervolgens de onnodige instructies. Open het gekopieerde bestand met je favoriete editor en verwijder alle regels vanaf het begin tot:

CREATE DATABASE "nododom_webappdb" 

(de CREATE DATABASE regel moet dus de eerste regel van het aangepaste bestand worden!).

Log vervolgens in op phpMyAdmin (installeer dit pakket eerst indien je het nog niet hebt) en importeer het zo juist gewijzigde nodo_db.txt bestand. Vervolgens ga je naar het tabblad gebruikers en klik je [Gebruiker toevoegen] aan. Je vult gebruikersnaam, machine; localhost en wachtwoord in. Databank; Geen selecteren en klikken we op Gebruiker toevoegen. Als laatste gaan we de rechten van de net aangemaakte gebruiker wijzigen ([klik op rechten wijzigen[). Bij [Databank-specifieke rechten] selecteren we nododom\_webappdb en klikken we op [Start], vervolgens bij [Databank-specifieke rechten] klikken we op [Selecteer alles] en klikken we nogmaals op [Start]. De rechten voor onze database zijn nu aangepast op de gebruiker.

Nu moet in alle programma files van NoDoWeb de “harde verwijzingen” naar www.nodo-domotica.nl worden veranderd in het IPadres van de webserver (bijvoorbeeld ’192.168.1.101′ of de hostnaam van je server en op sommige plaatsten ‘${WEBAPP_HOST}’). Onderstaande files moeten worden aangepast maar let op!! Als je met TortoiseSVN opnieuw de laatste versie ophaalt, dan moet je deze aanpassingen opnieuw aanbrengen!!! Bij een nieuwe release van NoDoWeb zullen de regelnummers waarschijnlijk ook anders zijn.

signup.php:

regel  moet worden:
150    .. http://${WEBAPP_HOST}/webapp ..enz..
164    $from = "Nodo@<MyDomain>";

nodo.php:

regel  moet worden:
149    $from = "Nodo@<MyDomain>";

lost_password.php:

regel  moet worden:
 71    $from = "Nodo@<MyDomain>";

webservice/admin/json_setup_connection.php:

Hieronder heb ik zelf https://www.fam-oldenburger.nl i.p.v. het <IPadress> ingevuld

regel  moet worden:
185    if ($HTTPHost == "<IPadress>/webapp/nodo.php"
238    if ($HTTPHost == "<IPadress>/webapp/nodo.php"
                                       .. enz ..

.. en tenslotte moet de volgende variabele correct worden gevuld in
include/webapp_settings.php:

regel  moet worden:
 25    $WEBAPP_HOST = "<IPadres>/webapp";

Nu moet je nog aan NoDoWeb aangeven hoe je database heet en welke gebruiker met welk wachtwoord de database mag benaderen (dit hebben we eerder al aangemaakt in phpMyAdmin. Deze gegevens staan in webapp/connections/db_connection.php. Open dit bestand met je favoriete editor:

<?php
$db_hostname = "localhost";
$database = "nododom_webappdb";
$db_username = "NodoUser";
$db_password = "NodoWachtwoord";
$db = mysql_pconnect($db_hostname, $db_username, $db_password) or
trigger_error(mysql_error(),E_USER_ERROR);
?>

Omdat ik op mijn webserver ook gebruik maak van WordPress plaats ik een .htaccess bestand met de volgende inhoud:

Options +FollowSymlinks

# SymLinks
RewriteRule ^(.*)$ $1 [NC]

Ga nu verder met het koppelen van de Nodo aan de WebApp.

Er bleek ook nog een fout in het webservice/forward_http.php bestand te zitten voor de nieuwe Nodo Software versie 3.6:

regel  moet worden:
67    $kaku = "KakuSend%20$homecode$address,"; 
71    $newkaku = "NewkakuSend%20$address,";
80    $send_user_event = "UserEventSend%20";

Bijgewerkt op 25 november 2013

Heeft dit artikel je geholpen?

Bedankt voor je feedback!

8 antwoorden naar “Nodo WebApp op een Synology server”

  1. Dank voor de nuttige info, Met behulp van dit stappenplan heb ik de Nodo software op mijn Syno DS 710+ kunnen plaatsen. De connectie methet NODO boardje is succesvol opgezet.

    Nogmaals dank

    Met vriendelijke groeten,

    “Team Kleijn”
    Rob

  2. Hallo Huize Oldenburger,

    ik had mijn Nodo via mijn Synootje draaien. De webapp heb ik volledig geinstalleerd conform deze pagina. Echter ben ik nu toch over op de Hosted versie van de webapp. Eigenlijk zou ik wel weer terug willen op mijn syno. Alles lijkt het te doen maar bij het verder configureren van mijn Nodo met Scripts en devices kwam ik toch rare problemen tegen, na wat sparren als test de hosted omgeving ingericht. De problemen die ik met de webapp local heb, heb ik niet remote. Ik verwacht ook dat mijn synootje nog wat extra aandacht behoeft, immers als het bij jou draait, moet dat hier ook kunnen. Misschien dat het in de PHP config in de syno zit, zou je misschien jouw PHP config eens kunnen sturen of mailen naar [email protected] ? Alvast dank en je WordPress site groeit leuk met al die mooie Nodoartikelen erop…

    Met vriendelijke groeten,”Team Kleijn”
    Rob

    • Hallo Rob,

      Ik heb eergisteren nog aanpassingen gedaan aan het artikel, omdat het bij mij ook niet lukte. Loop alle regels van de te veranderen bestanden nog even na. Ik kwam er ook achter dat een vast IP adres instellen ook niet ging werken. ID en wachtwoord wat al is ingesteld in de database van de WebApp kun je ook handmatig in de Nodo zetten, dat is ook het proberen waard.

      Hierna werkte het bij mij. Ben nu bezig om de verlichting te laten schakelen, daarover in een komend artikel meer.

  3. Leuke site !

    Ga me binnenkort eens in dat Nodo verhaal storten, heb een NES en een Small liggen, en een zelfbouw RGB led dimmer.

    Evenals “Team Klein” en Gertjan een schitterdende Synology 710+ (en een 106e voor de backup 😉 ).

    Site staat in de bookmarks ….. need to say more ?

    Thijs

  4. Ik heb de webapp op mijn QNAP aan de praat gekregen. De fout in webservice/forward_http.php wordt overigens nu netjes afgevangen met een if-else constructie. Ik had nog wel de nodige moeite om verbinding te leggen tussen de webapp en de Nodo. Na een poosjes speuren en een hint elders in een forum blijkt het probleem in php.ini te zitten. De boel is ingesteld op een exotische tijdzone. Dit omgezet naar Europa/Amsterdam en voila. Simpel lampjes aan/uit heb ik inmiddels ook voor elkaar. Probeer nu de temperatuur in kaart te brengen. 😉

  5. Hallo,

    Ik kwam op deze site door te zoeken naar synology en klikaanklikuit.

    ik heb nu (nog) een windows homeserver draaien met de JBL Lightmanager, waarmee ik al mijn apparaten schakel.

    nu ben ik niet zo’n klusser (qau solderen en alles), maar is zo’n Nodo dan wat voor mij of zou dit ook kunnen via bv een rapberry (aansluiting is maar 3 draadjes aan een zender koppelen zag ik.

    Of zijn die Nodo’s ook kant en klaar te koop?

    Site staat in iedergeval in mijn bookmarks

    • Je hoeft niet perse te solderen. Alles is ook kant-en-klaar te koop:

      De volgende extra onderdelen heb je nodig om een NES compleet te maken:

      – Arduino Mega
      – Micro SD kaart
      – Voeding
      – Antenne ( kan dus ook een draad antenne zijn)

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

*