Nodo Project (Arduino mega ethernet solution)

Moderator: leecollings

Post Reply
User avatar
ILoveIOT
Posts: 59
Joined: Sunday 25 March 2018 17:47
Target OS: Linux
Domoticz version: 2020.2
Location: NL
Contact:

Nodo Project (Arduino mega ethernet solution)

Post by ILoveIOT »

Sometimes I see posted from people that wanna have a ethernet solution for Domoticz, and there is..

There is a discontinued project called Nodo http://www.nodo-domotica.nl/ for many years, and you can use it for many sensors to get data in or out off Domoticz. Unfortunately the forum http://www.nodo-domotica.nl/forum/ and webpage is written in Dutch but I guess google translate is you're friend.

I use them as slaves for domoticz with the PCF8574 chip for 8 input / 56 output relais or Dallas DS18B20 for temp, 433Mhz, IR, and many more, info,..http://www.nodo-domotica.nl/index.php/Plugin

If there is interest for the project I can post the full installing & howto in English.

For this you will need;

1. Arduino Mega 2560
2. Wiznet 5100 Arduino Ethernet Shield
3. SD Card is optional
4. Computer for uploading

Here is a basic install,..more info http://www.nodo-domotica.nl/index.php/N ... o_software

1. Download Arduino 1.0.5 http://downloads.arduino.cc/arduino-1.0 ... indows.exe
2. Download http://www.nodo-domotica.nl/Download/St ... V3.7.0.zip and extract under arduino folder, so you have C:\Arduino\Nodo.
3. Select the text Plugin-250 below and save it to for example C:\Arduino\Nodo\Plugins\Plugin_250.c and change IP address (line 82)
4. In the zip file "SWACNC-MEGA-R744 Nodo V3.7.0.zip\SWACNC-MEGA-R744 Nodo V3.7\Nodo\Library\Nodo" there is a folder "Nodo" place that folder in the arduino libraries folder so you have "C:\Arduino\libraries\Nodo" in that folder is Ethernodo.h for example, +17 others.
5. Change the file C:\Arduino\Nodo\Config\Config_01.c and change C:\Arduino\Nodo\Nodo.ino (see below for examples)
6. Choose the right board and port in the Arduino compiler and complile it.
7. After uploading & reboot off the Arduino, u can use telnet to access the Nodo Arduino with Putty for example.
8. Optional the SETUPFILE below,...just one time, for saving permanent info, copy paste in terminal session
9. Optional PROGRAMFILE, creating the eventlist for this example getting the temp and put into Domoticz

I'm just a user off the project, my knowledge off C is very limited, at the end I want to replace this system (no support anymore), but there is nothing better in the world at the moment, maybe the ESP32 with ethernet solution will solve this, mean while.. ;)

Security is not available, so I put them in a separated subnet, away from wifi clients and internet, for sending to Domoticz you will need to be in the same subnet, so you cant send temp info over the internet to a Domoticz server, for receiving, for example a switch command from Domoticz, it can be over the internet, but then the whole world can, if the know the right command (for example http://x.x.x.x:6636/?event=ExtWiredOut%201,On) they can easy find out when they scan 6636, and lookup on the internet,..oh Nodo..commands. So I access them trough Domoticz on the internet.

Plugin-250

Code: Select all

//#######################################################################################################
//############################### Plugin-250: SendHTTP for Domoticz JSON API #######################
//#######################################################################################################

/*********************************************************************************************\
 * This plugin provides direct HTTP communication from a Nodo (arduino mega with ethernetshield) to a Domoticz controller
 *
 * Author             : Martinus van den Broek
 * Updated by		  : The Bunny (31-01-2016)
 * Support            : NONE! 
 * Date               : Feb 2015
 * Version            : 0.4
 * Compatibility      : R744
 * Syntax             : "sendHTTP <command>,<IDX>,<Value/state>,<Value>,<Value>
 * 
 * Changelog 0.4 (31-01-2016)
 * -. Changed support status from : None! demo... to uppercase NONE! 
 * -. Added the baro sensors with SendHTTP 5,92,24,0,23 and baro forecast (/json.htm?type=command&param=udevice&idx=IDX&nvalue=0&svalue=1000;1)
 *
 * Changelog 0.3 (20-01-2016)
 * -. Dont use numbers above 255 for uservariables etc
 * -. Added Domoticz Scenes with SendHTTP 3,2,1,0,0 (/json.htm?type=command&param=switchscene&idx=2&switchcmd=On)
 * -. Added Domoticz UserVariables with SendHTTP 4,3,123,100,0 (/json.htm?type=command&param=updateuservariable&idx=3&vname=100&vtype=0&vvalue=123)
 * 
 * Changelog 0.2 (26-12-2015)
 * -. Possible to have negative value's (-5.04)
 * -. Temp in normal format (12.34)
 * -. Added the Domoticz nvalue with Par 4
 *
 *
 * For Variables with the Svalue
 * Timer 1; SendHTTP 2,6,1,0,0   # send tempsensor command to device idx=6 with value from var1 to Svalue
 * Timer 1; SendHTTP 2,7,2,0,0   # send tempsensor command to device idx=7 with value from var2 to Svalue
 *
 * For Variables with the Nvalue
 * Timer 1; SendHTTP 2,8,0,4,0   # send tempsensor command to device idx=8 with value from var4 to Nvalue
 * Timer 1; SendHTTP 2,9,0,5,0   # send tempsensor command to device idx=9 with value from var5 to Nvalue
 *
 * For Switches
 * SendHTTP 1,6,1,0,0   # send On command to device idx=6 with value 1
 * SendHTTP 1,6,0,0,0   # send Off command to device idx=6 with value 0
 * SendHTTP 1,7,1,0,0   # send On command to device idx=7 with value 1
 * SendHTTP 1,8,0,0,0   # send Off command to device idx=8 with value 0 
 *
 * For Scenes
 * SendHTTP 3,2,1,0,0   # Set scene with idx=2 with value On
 * SendHTTP 3,2,0,0,0   # Set scene with idx=2 with value Off
 *
 * For Uservariables (ONLY NUMBERS AS NAME AND VALUE)
 * SendHTTP 4,3,123,100,0   # Set uservariable with idx=3 with value 123 and name 100
 * SendHTTP 4,3,124,111,0   # Set uservariable with idx=3 with value 124 and name 111
  *
 * For the BMP085 or BMP180 Baro Sensor
 * SendHTTP 5,92,24,0,23   # Set uservariable with idx=92 with Nodo variable 24 (baro value) and Nodo variable 23 (baro forecast 0-1-2-3-4-6)
 * SendHTTP 5,92,20,0,19   # Set uservariable with idx=92 with Nodo variable 20 (baro value) and Nodo variable 19 (baro forecast 0-1-2-3-4-6)
 * 
 * Action on: NewKakuSend 1,On
 * http://192.168.50.198:6636/?event=NewKakuSend%201,On
 * 
 * Action off: NewKakuSend 1,Off
 * http://192.168.50.198:6636/?event=NewKakuSend%201,Off
 *
 * Action on: Userevent 110,1
 * http://192.168.50.198:6636/?event=Userevent%20110,1
 * 
 * Action VariableSet: VariableSet 8,1
 * http://192.168.50.198:6636/?event=VariableSet%208,1
 *
 * Action off: Userevent 110,2
 * http://192.168.50.198:6636/?event=Userevent%20110,2
 *
 * Action off: ExtWiredOut 10,Off
 * http://192.168.50.198:6636/?event=ExtWiredOut%2010,Off
 *
 * Multi Action on: Userevent 126,1;Sound 0,10;TimerSet 22,600
 * http://192.168.50.198:6636/?event=Userevent%20126,1;Sound%200,10;TimerSet%2022,600
 * 
 \*********************************************************************************************/

boolean P250SendCustomHTTPRequest(char* Request, byte ip, unsigned long port);

#define PLUGIN_250_IP 189       // x.x.x.8 = address of Domoticz, enter the last number in the subnet
#define PLUGIN_250_PORT 8080    // Default port of Domoticz

#define PLUGIN_ID 250
#define PLUGIN_NAME "SendHTTP"

boolean Plugin_250(byte function, struct NodoEventStruct *event, char *string)
{
  boolean success=false;

  switch(function)
  {
#ifdef PLUGIN_250_CORE

  #if NODO_MEGA
  case PLUGIN_COMMAND:
    {
										  // Par 1 ='command/type' 1=Switch 2=Variable 3=Scene 4=Uservariables
      byte Par2=event->Par2 & 0xff;       // Par 2 = Domoticz Device IDX
      byte Par3=event->Par2>>8 & 0xff;    // Par 3 = Variable or number for domoticz (svalue or 0=Off, 1=On )
      byte Par4=event->Par2>>16 & 0xff;   // Par 4 = Variable or number for domoticz (nvalue)
      byte Par5=event->Par2>>24 & 0xff;   // Par 5 = Variable for domoticz baro 0-1-2-3-4-5-6
	  
	  
      byte x;
      char *HttpRequest=(char*)malloc(INPUT_LINE_SIZE+1);
 
      if (event->Par1 == 1)         // Switches On/Off
        {
		  strcpy(HttpRequest,"/json.htm?type=command&param=switchlight&idx=");
          strcat(HttpRequest,int2str(Par2));
          strcat(HttpRequest,"&switchcmd=");
          if (Par3==1)
            strcat(HttpRequest,"On");
          else
            strcat(HttpRequest,"Off");
          strcat(HttpRequest,"&level=0");
        }
		
      if (event->Par1 == 2)         // TempSensors & Humidity
        {
          strcpy(HttpRequest,"/json.htm?type=command&param=udevice&idx=");
          strcat(HttpRequest,int2str(Par2));
          strcat(HttpRequest,"&nvalue=");
		  
			// Send the value of nvalue
			float nvalue = UserVar[Par4-1];
			char buffer1[12];
			String tempStr1 = dtostrf(nvalue, 4,2,buffer1);
			strcat(HttpRequest, buffer1);	  
		  
		  strcat(HttpRequest,"&svalue=");
		  	
			// Send the value of svalue
			float svalue = UserVar[Par3-1];
			char buffer2[12];
			String tempStr2 = dtostrf(svalue, 4,2,buffer2);
			strcat(HttpRequest, buffer2);
        }

	  if (event->Par1 == 3)         // Scenes On/Off
        {
		  //strcpy(HttpRequest,"/json.htm?type=command&param=switchlight&idx=");
		  strcpy(HttpRequest,"/json.htm?type=command&param=switchscene&idx=");
		  strcat(HttpRequest,int2str(Par2));
          strcat(HttpRequest,"&switchcmd=");
          if (Par3==1)
            strcat(HttpRequest,"On");
          else
            strcat(HttpRequest,"Off");
          strcat(HttpRequest,"&level=0");
        }
		
      if (event->Par1 == 4)         // User Variables in Domoticz (only numbers as name and value)
        {
          strcpy(HttpRequest,"/json.htm?type=command&param=updateuservariable&idx=");
          strcat(HttpRequest,int2str(Par2));
          strcat(HttpRequest,"&vname=");
		  
			// Send the name of uservariable (only numbers as name and value)
			strcat(HttpRequest,int2str(Par4));
				  
		  strcat(HttpRequest,"&vtype=0&vvalue=");
		  	
			// Send the value of uservariable (only numbers as name and value)
			strcat(HttpRequest,int2str(Par3));  
			
        }

		if (event->Par1 == 5)         // Baro meter value for Domoticz
        {
		  strcpy(HttpRequest,"/json.htm?type=command&param=udevice&idx=");
          strcat(HttpRequest,int2str(Par2));
 		  strcat(HttpRequest,"&nvalue=0&svalue=");
		  	
			// Send the value of the barometer + baro forecast (for example 1000;1)
		  
			// Send the value of the barometer
			float barovalue = UserVar[Par3-1];
			char buffer3[12];
			String tempStr3 = dtostrf(barovalue, 4,2,buffer3);
			strcat(HttpRequest, buffer3);	  
		  
			strcat(HttpRequest,";");
		  	
			// Send the value of the baro forecast
			float forecastvalue = UserVar[Par5-1];
			char buffer4[12];
			String tempStr4 = dtostrf(forecastvalue, 4,2,buffer4);
			strcat(HttpRequest, buffer4);
        }			
		
		
      x=P250SendCustomHTTPRequest(HttpRequest,PLUGIN_250_IP,PLUGIN_250_PORT);
      free(HttpRequest);

      success=true;
      break;
     }
  #endif

#endif // PLUGIN_250_CORE

   #if NODO_MEGA
   case PLUGIN_MMI_IN:
     {
     char *TempStr=(char*)malloc(INPUT_COMMAND_SIZE);
     if(GetArgv(string,TempStr,1))
       {
       if(strcasecmp(TempStr,PLUGIN_NAME)==0)
         {
           if(GetArgv(string,TempStr,3))
               event->Par2=str2int(TempStr);

           if(GetArgv(string,TempStr,4))
               event->Par2|=str2int(TempStr)<<8;

           if(GetArgv(string,TempStr,5))
               event->Par2|=str2int(TempStr)<<16;

           if(GetArgv(string,TempStr,6))
               event->Par2|=str2int(TempStr)<<24;

           event->Type = NODO_TYPE_PLUGIN_COMMAND;
           event->Command = PLUGIN_ID; // Plugin nummer 
           success=true;
         }
       }
     free(TempStr);
     break;
     }

   case PLUGIN_MMI_OUT:
     {
     strcpy(string,PLUGIN_NAME);            // Eerste argument=het commando deel
     strcat(string," ");
     strcat(string,int2str(event->Par1));
     strcat(string,",");
     strcat(string,int2str(event->Par2 & 0xff));
     strcat(string,",");
     strcat(string,int2str(event->Par2>>8 & 0xff));
     strcat(string,",");
     strcat(string,int2str(event->Par2>>16 & 0xff));
     strcat(string,",");
     strcat(string,int2str(event->Par2>>24 & 0xff));
     break;
     }
   #endif //NODO_MEGA

  }

  return success;
}

#define IP_BUFFER_SIZE            256

boolean P250SendCustomHTTPRequest(char* Request, byte ip, unsigned long port)
  {
  byte targetIP[4];
  int InByteCounter,x,y;
  byte InByte;
  unsigned long TimeoutTimer;
  const int TimeOut=5000;
  EthernetClient HTTPClient; // Client class voor HTTP sessie.
  byte State=0;
  char *IPBuffer=(char*)malloc(IP_BUFFER_SIZE+1);

  targetIP[0] = EthernetNodo.localIP()[0];
  targetIP[1] = EthernetNodo.localIP()[1];
  targetIP[2] = EthernetNodo.localIP()[2];
  targetIP[3] = ip;

  strcpy(IPBuffer,"GET ");

  // Alle spaties omzetten naar %20 en toevoegen aan de te verzenden regel.
  y=strlen(IPBuffer);
  for(x=0;x<strlen(Request);x++)
    {           
    if(Request[x]==32)
      {
      IPBuffer[y++]='%';
      IPBuffer[y++]='2';
      IPBuffer[y++]='0';
      }
    else
      {
      IPBuffer[y++]=Request[x];
      }
    }
  IPBuffer[y]=0;

  strcat(IPBuffer," HTTP/1.1");

  Serial.println(IPBuffer);

  if(HTTPClient.connect(targetIP,port))
    {
      HTTPClient.println(IPBuffer);
      HTTPClient.println("Host: 192.168.0.123");
      HTTPClient.println("User-Agent: Mozilla/5.0");
      HTTPClient.println(F("Connection: Close"));
      HTTPClient.println();// Afsluiten met een lege regel is verplicht in http protocol/

      TimeoutTimer=millis()+TimeOut; // Als er te lange tijd geen datatransport is, dan wordt aangenomen dat de verbinding (om wat voor reden dan ook) is afgebroken.
      IPBuffer[0]=0;
      InByteCounter=0;
      while(TimeoutTimer>millis() && HTTPClient.connected())
        {
        if(HTTPClient.available())
          {
            InByte=HTTPClient.read();
         
            if(isprint(InByte) && InByteCounter<IP_BUFFER_SIZE)
              IPBuffer[InByteCounter++]=InByte;

            else if(InByte==0x0A)
              {
                IPBuffer[InByteCounter]=0;
                // De regel is binnen
                InByteCounter=0;         
              }
          }
        }
      delay(500);
      HTTPClient.flush();// Verwijder eventuele rommel in de buffer.
      HTTPClient.stop();
    }
  free(IPBuffer);
  return State;
  }

SETUPFILE

Code: Select all

! No output to IR.
Output IR,Off 

! Enable IR signals
RawSignalReceive On,On

! Output to RF
Output RF,On

! Fixed IP Addresses
IP 192.168.8.198
Subnet 255.255.255.0
Gateway 192.168.8.1
DnsServer 192.168.8.1

! Put the WiredThreshold
WiredThreshold 1,512
WiredThreshold 2,512
WiredThreshold 3,512
WiredThreshold 4,512
WiredThreshold 5,512
WiredThreshold 6,512
WiredThreshold 7,512
WiredThreshold 8,512

! Save all settings
SettingsSave

! Make a noise for recieving all the code
Sound 0,15

PROGRAMFILE, getting info from 4 dallas and 1 dht22 and 1 BMP085

Code: Select all

! Get Temp 
EventlistWrite; Timer 1; TimerSet 1,180
EventlistWrite; Timer 1; DHTRead 1,1
EventlistWrite; Timer 1; BMP085Read 24
EventlistWrite; Timer 1; VariableInc 25,30
EventlistWrite; Timer 1; TempRead 3,3
EventlistWrite; Timer 1; TempRead 6,4
EventlistWrite; Timer 1; Timerset 7,5
EventlistWrite; Timer 7; TempRead 5,5
EventlistWrite; Timer 7; TempRead 7,6
EventlistWrite; Timer 7; TempRead 8,7
EventlistWrite; Timer 7; Timerset 3,5
! Send info to Domoticz
EventlistWrite; Timer 3; SendHTTP 2,134,1,0,0
EventlistWrite; Timer 3; SendHTTP 2,135,0,2,0
EventlistWrite; Timer 3; SendHTTP 2,44,3,0,0
EventlistWrite; Timer 3; Timerset 4,5
EventlistWrite; Timer 4; SendHTTP 2,41,4,0,0
EventlistWrite; Timer 4; SendHTTP 2,46,5,0,0
EventlistWrite; Timer 4; SendHTTP 2,136,6,0,0
EventlistWrite; Timer 4; Timerset 5,5
EventlistWrite; Timer 5; SendHTTP 2,42,7,0,0
EventlistWrite; Timer 5; SendHTTP 2,48,8,0,0
EventlistWrite; Timer 5; SendHTTP 5,94,25,0,23
EventlistWrite; Timer 5; Timerset 6,5
EventlistWrite; Timer 6; SendHTTP 2,93,24,0,0
EventlistWrite; Timer 6; VariableSet 23,0
EventlistWrite; Timer 6; BreakOnVarMore 25,1030
EventlistWrite; Timer 6; VariableSet 23,1
EventlistWrite; Timer 6; BreakOnVarMore 25,1015
EventlistWrite; Timer 6; VariableSet 23,3
EventlistWrite; Timer 6; BreakOnVarMore 25,1000
EventlistWrite; Timer 6; VariableSet 23,5
EventlistWrite; Timer 6; BreakOnVarMore 25,990
EventlistWrite; Timer 6; VariableSet 23,2
EventlistWrite; Timer 6; BreakOnVarMore 25,982
EventlistWrite; Timer 6; VariableSet 23,6
EventlistWrite; Timer 6; BreakOnVarMore 25,970
EventlistWrite; Timer 6; VariableSet 23,4
Extra info

C:\Arduino\Nodo\Nodo.ino so you have a working example, change to you're setup.

Code: Select all

/*********************************************************************************************************************************

NNNNNNNN        NNNNNNNN                             d::::::d                       333333333333333           77777777777777777777
N:::::::N       N::::::N                             d::::::d                      3:::::::::::::::33         7::::::::::::::::::7
N::::::::N      N::::::N                             d::::::d                      3::::::33333::::::3        7::::::::::::::::::7
N:::::::::N     N::::::N                             d:::::d                       3333333     3:::::3        777777777777:::::::7
N::::::::::N    N::::::N   ooooooooooo       ddddddddd:::::d    ooooooooooo                    3:::::3                   7::::::7 
N:::::::::::N   N::::::N oo:::::::::::oo   dd::::::::::::::d  oo:::::::::::oo                  3:::::3                  7::::::7  
N:::::::N::::N  N::::::No:::::::::::::::o d::::::::::::::::d o:::::::::::::::o         33333333:::::3                  7::::::7   
N::::::N N::::N N::::::No:::::ooooo:::::od:::::::ddddd:::::d o:::::ooooo:::::o         3:::::::::::3                  7::::::7    
N::::::N  N::::N:::::::No::::o     o::::od::::::d    d:::::d o::::o     o::::o         33333333:::::3                7::::::7     
N::::::N   N:::::::::::No::::o     o::::od:::::d     d:::::d o::::o     o::::o                 3:::::3              7::::::7      
N::::::N    N::::::::::No::::o     o::::od:::::d     d:::::d o::::o     o::::o                 3:::::3             7::::::7       
N::::::N     N:::::::::No::::o     o::::od:::::d     d:::::d o::::o     o::::o                 3:::::3            7::::::7        
N::::::N      N::::::::No:::::ooooo:::::od::::::ddddd::::::ddo:::::ooooo:::::o     3333333     3:::::3           7::::::7         
N::::::N       N:::::::No:::::::::::::::o d:::::::::::::::::do:::::::::::::::o     3::::::33333::::::3 ......   7::::::7          
N::::::N        N::::::N oo:::::::::::oo   d:::::::::ddd::::d oo:::::::::::oo      3:::::::::::::::33  .::::.  7::::::7           
NNNNNNNN         NNNNNNN   ooooooooooo      ddddddddd   ddddd   ooooooooooo         333333333333333    ...... 77777777      

/********************************************************************************************************************************
*
* 
* Arduino project "Nodo" © Copyright 2014 Paul Tonkes 
* 
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License 
* as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty 
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
* You received a copy of the GNU General Public License along with this program in file 'COPYING.TXT'.
*
* Voor toelichting op de licentievoorwaarden zie    : http://www.gnu.org/licenses
* Uitgebreide documentatie is te vinden op          : http://www.nodo-domotica.nl
* bugs kunnen worden gelogd op                      : https://code.google.com/p/arduino-nodo/
* Compiler voor deze programmacode te downloaden op : http://arduino.cc
* Voor vragen of suggesties, mail naar              : [email protected]
* Compiler                                          : Arduino Compiler met minimaal versie 1.0.5
* Libraties                                         : EthernetNodo library vervangt de standaard Ethernet library!
\*************************************************************************************************************************/



// ============================================================================================================================
// Geef in onderstaande regel op waar de .ino bestanden zich bevinden die je nu geopend hebt. 
// Dit is nodig om device- en configuratiebestanden te kunnen compileren.
// Geef het volledige pad op. Let op: Bij Linux/Unix zijn de namen case-sensitive.
// ============================================================================================================================

#define SKETCH_PATH C:\Arduino\Nodo



// ============================================================================================================================
// We kennen twee type Nodo's:
//
// Nodo-Mega:   Een Nodo op basis van een Arduino Mega met een ATMega1280 of 2560 processor. Deze Nodo heeft o.a. de mogelijkheid
//              tot ethernet communicatie.
//
// Nodo-Small:  Dit is een kleine Nodo die wordt vooral wordt gebruikt als satelliet in combinatie met een centrale Nodo-Mega.
//              Een Nodo-Small maakt gebruik van een Arduino met een ATMega328 processor. (Nano, Pro,Duemillanove, Uno, etc)                                                                                                                
//
// Bij gebruik van meerdere Nodo's kan voor iedere Nodo een eigen configutatie file worden aangemaakt. In deze configuratie files
// kan worden aangegeven welke plugins worden gebruikt en kunnen eventueel speciale instellingen worden opgegeven die mee
// gaan met het compileren van de code.
// Configuratie bestanden bevinden zich in de directory ../Config. In deze configuratiefiles kunnen settings worden opgegeven 
// die worden meegecompileerd of kunnen devices worden opgegeven waar de Nodo mee moet kunnen communiceren.
// Default zijn de volgende configuratie files gemaakt:
//
// Config_01.c => Deze is default bestemd voor een Nodo Mega met unitnummer 1.
// Config_15.c => Deze is default bestemd voor een Nodo Small met unitnummer 15.
//
// Alle regels gemarkeerd met een '//' worden niet meegecompilileerd.
// 
// LET OP:
//  
// -  Het unitnummer van de Nodo zal pas veranderen nadat de Nodo software voor het eerst wordt geinstalleerd of de Nodo het 
//    commando [Reset] uitvoert. Dus niet altijd na een compilatie!
// -  Indien gewenst kunnen de config files ook voor andere unitnummers worden aangemaakt (1..31)
// -  Gebruik altijd de in deze zip meegeleverde libraries voor I2C en Ethernet communicatie!
//
// ============================================================================================================================


// ================================= Unit-1: Configuratie voor de Nodo-Mega ===================================================
// Mega Huiskamer
#define CONFIG_FILE Config_01.c
// Mega Keuken
//#define CONFIG_FILE Config_02.c
// Mega Carport
//#define CONFIG_FILE Config_03.c

#include <SD.h>                                 // Deze include noodzakelijk voor een Nodo-Mega. Niet gebruiken voor een Small!
#include <EthernetNodo.h>                       // Deze include optioneel als Ethernet wordt gebruikt. Niet gebruiken voor een Small!


// ================================= Unit-15: Configuratie voor de Nodo-Small =================================================
//#define CONFIG_FILE Config_12.c
C:\Arduino\Nodo\Config\Config_01.c so you have a working example, change to you're setup.

Code: Select all

// ****************************************************************************************************************************************
// Definities voor Nodo units : CONFIG.C
// ****************************************************************************************************************************************
// Deel 1: geef hier op welke plugins er gebruikt worden.
// Voor een volledige en bijgewerkte lijst van alle beschikbare plugins verwijzen we naar de Wiki:
// http://www.nodo-domotica.nl/index.php
// ****************************************************************************************************************************************


#define UNIT_NODO      10  // Na een [Reset] commando wordt dit het unitnummer van de Nodo
#define CLOCK         true // true=code voor Real Time Clock mee compileren.
#define NODO_MEGA     true // true = Nodo Mega, false=Nodo-Small

// Klik-Aan-Klik-Uit
#define PLUGIN_001
#define PLUGIN_001_CORE

// Klik-Aan-Klik-Uit (nieuwe versie met automatische codering)
#define PLUGIN_002
#define PLUGIN_002_CORE

// Dallas DS18B20 sensor
#define PLUGIN_005
#define PLUGIN_005_CORE 1

// DHT-11 / DHT-22 temperatuur en luchtvochtigheids sensor
#define PLUGIN_006
#define PLUGIN_006_CORE 22

// BMP085 of BMP180 sensor voor temperatuur en luchtdruk
#define PLUGIN_020
#define PLUGIN_020_CORE

// Extra outputs via IO-Expander PCF8574
#define PLUGIN_025
#define PLUGIN_025_CORE

// Extra inputs via IO-Expander PCF8574
#define PLUGIN_026
#define PLUGIN_026_CORE
#define PLUGIN_036
#define PLUGIN_036_CORE

// Servo aansturen
#define PLUGIN_027
#define PLUGIN_027_CORE

// Wiegand-26 RFID Reader
#define PLUGIN_030
#define PLUGIN_030_CORE 1

// Syslog client
#define PLUGIN_031
#define PLUGIN_031_CORE

// NRF24L01 wireless 2.4 ghz
//#define PLUGIN_033
//#define PLUGIN_033_CORE

// SendHTTP demo for Domoticz JSON API
#define PLUGIN_250
#define PLUGIN_250_CORE
Last edited by ILoveIOT on Saturday 22 December 2018 16:37, edited 2 times in total.
1x OPI PC 5.8.16 Debian 10, MiniDNLA,SMD230,EpEver,MPD,800GB,Wiegand,7 temps,DHT,32/64 I/O,2022.1
2x OPI PC 4.19.25 Debian 9, MPD,7 temps,16/32 I/O,BMP,4.10717
1x IntelNUC 5.10 Debian 10, 2TB,DalyBMS,2023.1
3x ESPEasy NodeMCU V3, 16/16 I/O
pascalspits
Posts: 88
Joined: Tuesday 24 February 2015 16:14
Target OS: Raspberry Pi / ODroid
Domoticz version:
Location: Belgium
Contact:

Re: Nodo Project (Arduino mega ethernet solution)

Post by pascalspits »

you have PM ;)
RasPi2 - Aeotec Z-Stick S2 - Fibaro multisensors - Fibaro RGBW dimmers - ETH08 relais boards
manjh
Posts: 748
Joined: Saturday 27 February 2016 12:49
Target OS: Raspberry Pi / ODroid
Domoticz version: 2020.2
Location: NL
Contact:

Re: Nodo Project (Arduino mega ethernet solution)

Post by manjh »

Does anyone still have documentation of the Nodo? Commands, syntax, that sort of thing?
I cannot access any of the old websites!
Hans
User avatar
waltervl
Posts: 5846
Joined: Monday 28 January 2019 18:48
Target OS: Linux
Domoticz version: 2024.7
Location: NL
Contact:

Re: Nodo Project (Arduino mega ethernet solution)

Post by waltervl »

Through web.archive.org you can view the old website
Eg from 2016 https://web.archive.org/web/20160305222 ... oofdpagina
Domoticz running on Udoo X86 (on Ubuntu)
Devices/plugins: ZigbeeforDomoticz (with Xiaomi, Ikea, Tuya devices), Nefit Easy, Midea Airco, Omnik Solar, Goodwe Solar
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest