Nodo-Domotica / Nodo-Core

Arduino based Domotica platform
http://www.nodo-domotica.nl
4 stars 8 forks source link

Script via Webapp naar Slave werkt niet (r538) #746

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Ik krijg via de webapp geen script in de Slave.
Als ik naar de serial monitor kijk van de Slave zie ik wel "waiting" staan op 
het moment dat ik het script verstuur.
De tekst waiting komt meerdere keren onder elkaar te staan.

Ook een bijna kaal script werkt niet. 

Script dat naar de meterkast slave moet:

    ! Nodo 2 meterkast versie 100

    ! wiredanalog 1 is een CNY70 op de gasmeter
    ! wiredanalog 2 is een CNY70 op de watermeter
    ! poort 18 mega2560 BPW40
    ! WiredThreshold (standaard 512)

    SendTo 2, All;

    EventlistErase;
    EventlistWrite; WildCard RF,All; SendEvent HTTP;
    EventlistWrite; WildCard Variables,All; SendEvent HTTP;
    EventlistWrite; WildCard Variables,All; SendEvent RF;

    ! BPW40 Stroom meter 480/kwh
    EventlistWrite; Boot 2; TimerSet 1,30;
    EventlistWrite; Timer 1; TimerSet 1,30;
    EventlistWrite; Timer 1; status VariablePulseTime;
    EventlistWrite; Timer 1; status VariablePulseCount;
    EventlistWrite; Timer 1; VariablePulseCount 0 ;

    ! CNY70 analoge ingang 1, Gas meter

    EventlistWrite; Boot 2; TimerSet 2,60;
    EventlistWrite; Timer 2; TimerSet 2,60;
    EventlistWrite; Boot 2; WiredThreshold 1,725;
    EventlistWrite; WiredSmittTrigger 1,5;
    EventlistWrite; Timer 2; Status WiredAnalog 1;
    EventlistWrite; Timer 2; Status WiredIn 1;
    EventlistWrite; WiredIn 1,Off; VariableSet 1,0.00;
    EventlistWrite; WiredIn 1,On; VariableSet 1,1.00;
    EventlistWrite; WiredIn 1,on; VariableInc 2,1;
    EventListWrite; Variable 2,100.0; VariableSet 2,0.00;

    ! CNY70 analoge ingang 2, Water meter
    EventlistWrite; Boot 2; WiredThreshold 2,700;
    EventlistWrite; WiredSmittTrigger 2,5;
    EventlistWrite; Timer 2; Status WiredAnalog 2;
    EventlistWrite; Timer 2; Status WiredIn 2;
    EventlistWrite; WiredIn 2,Off; VariableSet 3,0.00;
    EventlistWrite; WiredIn 2,On; VariableSet 3,1.00;
    EventlistWrite; WiredIn 2,on; VariableInc 4,1;
    EventListWrite; Variable 4,100.0; VariableSet 4,0.00;

    SendTo Off;

Nodo tabblad:

   /****************************************************************************************************************************\
    * Arduino project "Nodo" © Copyright 2013 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              : p.k.tonkes@gmail.com
    * Compiler                                          : Arduino Compiler met minimaal versie 1.0.1
    * Libraties                                         : EthernetNodo library vervangt de standaard Ethernet library!
    \*************************************************************************************************************************/

    //****************************** Door gebruiker in te stellen - voor elke keer dat u compileert ***************************************************************

    // Stap 1.
    // De code kan worden gecompileerd als een Nodo-Small voor de Arduino met een ATMega328 processor of een Nodo-Mega met een ATMega1280/2560.
    // stel allereerst het juiste board-type en COM-poort in op de Arduino compiler.

    // Stap 2.
    // Dit volgende blokje moet u handmatig instellen afhankelijk van het Arduino type!
    // Vanwege een bug in de Arduino linker moeten enkele '#include' regels handmatig worden aangepast.
    // Voor een arduino anders dan een Mega1280 of Mega2560 de onderstaande vier regels vooraf laten gaan door twee slashes //
    // Anders worden de niet gebruikte libraries toch meegecompileerd en zal deze niet in een ATMega328 passen.
    // en pas eventueel de vier include statements aan (zie onder):

    #include <EthernetNodo.h>
    #include <SPI.h>
    #include <Arduino.h>
    #include <SD.h>

    // Stap 3.
    // Stel hieronder in welk Nodo unit nummer u gaat compileren. Uitgangspunt is dat elke fysieke Nodo een uniek unit nummer krijgt toegekend.
    // Default heeft een Nodo Mega unit nummer 1. Een Nodo Small heeft defaut unit nummer 15. Geef bij onderstaande definitie het unitnummer op.
    // Deze kan naar behoefte naderhand met het commando [UnitSet <nummer>] worden gewijgigd.
    #define UNIT_NODO          3

    // Stap-4: Definitie welke devices worden gebruikt.
    // Maak een keuze welke devices u wilt gebruiken. Geef onderstaand op welke devices u gaat gebruiken in uw Nodo omgeving
    // Voor een beschrijving van de beschikbare devices: zie de Wiki pagina's.

      #define DEVICE_01       // Kaku            : Klik-Aan-Klik-Uit ontvangen
      #define DEVICE_02       // SendKaku        : Klik-Aan-Klik-Uit verzenden
      #define DEVICE_03       // NewKAKU         : Klik-Aan-Klik-Uit ontvangen, automatische codering.
      #define DEVICE_04       // SendNewKAKU     : Klik-Aan-Klik-Uit zenden, automatische codering.
      #define DEVICE_05       // TempRead        : Temperatuursensor Dallas DS18B20. (Let op; -B- variant, dus niet DS1820)

    // Stap-5
    // hieronder kunt u de instellingen per unit nummer vastleggen. Bij compileren wordt a.d.h.v. het UNIT_NODO nummer de juiste set gekozen.
    // het is handig om per gebruikte Nodo eenmalig een blokje met definities te maken.
    // dit blokje hoeft daarna alleen gewijzigd te worden als er een wijziging in die Nodo nodig is.
    // Als startpunt hebben we een aantal Nodo's als voorbeeld gedefinieerd.

    // ----------------------------------------------------------------------------------------------------------------------------------------
    // Definities voor Nodo unit nummer 1
    // Hardware    : Arduino Mega 2560
    // Toepassing  :
    #if (UNIT_NODO == 1)
      // Specificatie van deze Nodo:
      #define NODO_MEGA                    true
      #define ETHERNET                     true
      // Devices in gebruik op deze Nodo:
      #define DEVICE_01       // Kaku            : Klik-Aan-Klik-Uit ontvangen
      #define DEVICE_CORE_01  // Kaku            : Klik-Aan-Klik-Uit ontvangen 
      #define DEVICE_02       // SendKaku        : Klik-Aan-Klik-Uit verzenden
      #define DEVICE_CORE_02  // SendKaku        : Klik-Aan-Klik-Uit verzenden
      #define DEVICE_03       // NewKAKU         : Klik-Aan-Klik-Uit ontvangen, automatische codering.
      #define DEVICE_CORE_03  // NewKAKU         : Klik-Aan-Klik-Uit ontvangen, automatische codering.
      #define DEVICE_04       // SendNewKAKU     : Klik-Aan-Klik-Uit zenden, automatische codering.
      #define DEVICE_CORE_04  // SendNewKAKU     : Klik-Aan-Klik-Uit zenden, automatische codering.
      #define DEVICE_05       // TempRead        : Temperatuursensor Dallas DS18B20. (Let op; -B- variant, dus niet DS1820)
      #define DEVICE_CORE_05  // TempRead        : Temperatuursensor Dallas DS18B20. (Let op; -B- variant, dus niet DS1820)
      #define DEVICE_06       // DHT11Read       : Uitlezen temperatuur & vochtigheidsgraad sensor DHT-11
      #define DEVICE_CORE_06  // DHT11Read       : Uitlezen temperatuur & vochtigheidsgraad sensor DHT-11
      #define DEVICE_08       // AlectoV1        : Dit protocol zorgt voor ontvangst van Alecto weerstation buitensensoren met protocol V1
      #define DEVICE_CORE_08  // AlectoV1        : Dit protocol zorgt voor ontvangst van Alecto weerstation buitensensoren met protocol V1

    #endif
    // ----------------------------------------------------------------------------------------------------------------------------------------

    // ----------------------------------------------------------------------------------------------------------------------------------------
    // Definities voor Nodo unit nummer 2
    // Hardware    : Arduino Mega 2560, Geen Ethernetkaart, Dallas sensoren op poort 1 en 2
    // Toepassing  : Meterkast
    #if (UNIT_NODO == 2)
      // Specificatie van deze Nodo:
      #define NODO_MEGA                    true
      #define ETHERNET                     false
      // Devices in gebruik op deze Nodo:
      #define DEVICE_01       // Kaku            : Klik-Aan-Klik-Uit ontvangen
      #define DEVICE_CORE_01  // Kaku            : Klik-Aan-Klik-Uit ontvangen 
      #define DEVICE_02       // SendKaku        : Klik-Aan-Klik-Uit verzenden
      #define DEVICE_CORE_02  // SendKaku        : Klik-Aan-Klik-Uit verzenden
      #define DEVICE_03       // NewKAKU         : Klik-Aan-Klik-Uit ontvangen, automatische codering.
      #define DEVICE_CORE_03  // NewKAKU         : Klik-Aan-Klik-Uit ontvangen, automatische codering.
      #define DEVICE_04       // SendNewKAKU     : Klik-Aan-Klik-Uit zenden, automatische codering.
      #define DEVICE_CORE_04  // SendNewKAKU     : Klik-Aan-Klik-Uit zenden, automatische codering.
      #define DEVICE_05       // TempRead        : Temperatuursensor Dallas DS18B20. (Let op; -B- variant, dus niet DS1820)
      #define DEVICE_CORE_05  // TempRead        : Temperatuursensor Dallas DS18B20. (Let op; -B- variant, dus niet DS1820)
    #endif
    // ----------------------------------------------------------------------------------------------------------------------------------------

    // ----------------------------------------------------------------------------------------------------------------------------------------
    // Definities voor Nodo unit nummer 3
    // Hardware    : Arduino Mega 2560, Geen Ethernetkaart, Dallas sensoren op poort 1 en 2
    // Toepassing  : Ketelhok
    #if (UNIT_NODO == 3)
      // Specificatie van deze Nodo:
      #define NODO_MEGA                    true
      #define ETHERNET                     false
      // Devices in gebruik op deze Nodo:
      #define DEVICE_01       // Kaku            : Klik-Aan-Klik-Uit ontvangen
      #define DEVICE_CORE_01  // Kaku            : Klik-Aan-Klik-Uit ontvangen 
      #define DEVICE_02       // SendKaku        : Klik-Aan-Klik-Uit verzenden
      #define DEVICE_CORE_02  // SendKaku        : Klik-Aan-Klik-Uit verzenden
      #define DEVICE_03       // NewKAKU         : Klik-Aan-Klik-Uit ontvangen, automatische codering.
      #define DEVICE_CORE_03  // NewKAKU         : Klik-Aan-Klik-Uit ontvangen, automatische codering.
      #define DEVICE_04       // SendNewKAKU     : Klik-Aan-Klik-Uit zenden, automatische codering.
      #define DEVICE_CORE_04  // SendNewKAKU     : Klik-Aan-Klik-Uit zenden, automatische codering.
      #define DEVICE_05       // TempRead        : Temperatuursensor Dallas DS18B20. (Let op; -B- variant, dus niet DS1820)
      #define DEVICE_CORE_05  // TempRead        : Temperatuursensor Dallas DS18B20. (Let op; -B- variant, dus niet DS1820)
    #endif
    // ------------------------------------------------------------------------------

    // ----------------------------------------------------------------------------------------------------------------------------------------
    // Hieronder vindt u een complete lijst van alle device selectie statements.
    // Kopieer de gewenste statements naar:
    // * ofwel het blokje waarin u aangeeft dat een device in alle Nodo's moet worden gebruikt;
    // * ofwel naar het definitie blokje van de specifieke Nodo die het device nodig heeft.
    //
    // toelichting:
    // De regel die de toevoeging "CORE" in de naam heeft, zorgt ervoor dat de kern van de code wordt meegecompileerd.
    // Beschouw dit als een driver voor het device. Compileer hem alleen mee in de Nodo die het device fysiek aan boord heeft.
    //
    // de regel die "MMI" in de naam heeft, is het front end. Dit is nodig in alle Nodo's die op een of andere manier met het device gaan werken.
    // Het heeft geen zin om dit mee te compileren in een small, want die kent geen MMI.
    // Wel is het nodig in een Mega, als die het device ofwel zelf aan boord heeft, ofwel het device in een andere Nodo gebruikt (of moet begrijpen).
    // Met dat laatste bedoelen we het tonen van events als die binnenkomen op een Mega vanuit een andere Nodo.
    //
    // Tip: laat de lijst hieronder compleet voor toekomstig gebruik.
    // Dus met copy/paste overnemen, niet met cut/paste!
    //
    // Repository:
    //
    /*
      #define DEVICE_01       // Kaku            : Klik-Aan-Klik-Uit ontvangen
      #define DEVICE_CORE_01  // Kaku            : Klik-Aan-Klik-Uit ontvangen 
      #define DEVICE_02       // SendKaku        : Klik-Aan-Klik-Uit verzenden
      #define DEVICE_CORE_02  // SendKaku        : Klik-Aan-Klik-Uit verzenden
      #define DEVICE_03       // NewKAKU         : Klik-Aan-Klik-Uit ontvangen, automatische codering.
      #define DEVICE_CORE_03  // NewKAKU         : Klik-Aan-Klik-Uit ontvangen, automatische codering.
      #define DEVICE_04       // SendNewKAKU     : Klik-Aan-Klik-Uit zenden, automatische codering.
      #define DEVICE_CORE_04  // SendNewKAKU     : Klik-Aan-Klik-Uit zenden, automatische codering.
      #define DEVICE_05       // TempRead        : Temperatuursensor Dallas DS18B20. (Let op; -B- variant, dus niet DS1820)
      #define DEVICE_CORE_05  // TempRead        : Temperatuursensor Dallas DS18B20. (Let op; -B- variant, dus niet DS1820)

    */
    // ----------------------------------------------------------------------------------------------------------------------------------------

    // hieronder volgen nog enkele instellingen voor alle Nodo unit nummers
    #define HOME_NODO                    1     // Home adres van Nodo's die tot één groep behoren (1..7)
    #define PULSE_DEBOUNCE_TIME         10     // pulsen kleiner dan deze waarde worden niet geteld. Bedoeld on verstoringen a.g.v. ruis of dender te voorkomen
    #define PULSE_TRANSITION       FALLING     // FALLING of RISING: Geeft aan op welke flank de PulseCounter start start met tellen. Default FALLING
    #define I2C_START_ADDRESS            1     // Alle Nodo's op de I2C bus hebben een uniek adres dat start vanaf dit nummer. Er zijn max. 32 Nodo's. Let op verlap met andere devices. RTC zit op adres 104.
    #define NODO_30_COMPATIBLE        true     // t.b.v. compatibiliteit met vorige Nodo versie: NewKAKU HEX waarden en UserEvents
    #define BAUD                     19200     // Baudrate voor seriële communicatie.
    #define SMALL_DEBUG_INFO         false     // Laat op serial van een Small debug info zien als er events worden verzonden of ontvangen.
    #define WAIT_FREE_RX             false     // true: wacht default op verzenden van een event tot de IR/RF lijn onbezet is. Wordt overruled door commando [WaitFree]
    //****************************** Einde gedeelte door gebruiker in te stellen ************************************************

Original issue reported on code.google.com by markteni...@gmail.com on 16 Jun 2013 at 8:29

GoogleCodeExporter commented 9 years ago
Even twee checkvragen:

1. Weet je zeker dat beide Nodo's dezelfde build hebben?
2. SendTo vereist een volledig betrouwbare RF verbinding. Heb je de Nodo's 
dicht bij elkaar in de buurt liggen als je via RF verzendt?

Original comment by P.K.Ton...@gmail.com on 17 Jun 2013 at 5:52

GoogleCodeExporter commented 9 years ago
De hoofd Nodo (unit 1) geeft no connection tijdens het verzenden van het script 
naar Unit 3, wellicht normaal.
Na een paar minuten is unit 1 weer online, en zit er geen script in Unit 3
Voor de zekerheid heb ik mijn andere slave nu geprobeerd, om er zeker van te 
zijn dat er niet wat anders mis is met Unit 2.
Om er zeker van te zijn dat de afstand geen probleem is, staat Unit 3 naast 
Unit 1.
Ook hier de melding Waiting….

De antwoorden op je vragen, 
1 Ja ze hebben dezelfde build
2.Ongeveer 20cm van elkaar af. De test met Unit 2 was ongeveer 3 meter.

Serieel:
!******************************************************************************!
Nodo Domotica controller (c) Copyright 2013 P.K.Tonkes.
Licensed under GNU General Public License.
Nodo Beta V3.5.1 Mega, Product=SWACNC-MEGA-R538, Home=1, ThisUnit=3
!******************************************************************************!

Waiting...
Waiting...
Waiting...
eventlistshow
!******************************************************************************!
!******************************************************************************!

Het script van Unit 3:
! NODO Slave 3 ketel

SendTo 3, All;

EventlistErase;
EventlistWrite; WildCard RF,All; SendEvent HTTP;
EventlistWrite; WildCard Variables,All; SendEvent HTTP;
EventlistWrite; WildCard Variables,All; SendEvent RF;

EventlistErase
EventlistWrite; WildCard RF,All; SendEvent HTTP
EventlistWrite; WildCard Variables,All; SendEvent HTTP
EventlistWrite; WildCard Wired,All; SendEvent HTTP
EventlistWrite; WildCard All,UserEvent; SendEvent HTTP

!LDR

EventlistWrite; Boot 3; TimerSet 1,120
EventlistWrite; Timer 1,0; Status WiredAnalog,1;
EventlistWrite; Timer 1,0; TimerSet 1,120

!DS18B20

EventlistWrite; Boot 3; TimerSet 2,120
EventlistWrite; Timer 2,0; Tempread 1,9
EventlistWrite; Timer 2,0; VariableSetVariable 9,9
EventlistWrite; Timer 2,0; TimerSet 2,60

SendTo Off;

Original comment by markteni...@gmail.com on 17 Jun 2013 at 7:18

GoogleCodeExporter commented 9 years ago
Probleem reproduceerbaar. Als workaround kun je tijdelijk je slave programmeren 
door deze met I2C te verbinden. Gewoon de SDA aan SDA en SCL aan SCL van de 
Arduino's. Kun je ook even aan de beta-testers melden dat dit issue open staat?

Original comment by P.K.Ton...@gmail.com on 17 Jun 2013 at 9:15

GoogleCodeExporter commented 9 years ago
Zal ik doen. Is dit op te lossen in een volgende release?

Original comment by markteni...@gmail.com on 18 Jun 2013 at 5:07

GoogleCodeExporter commented 9 years ago
Checksum probleem. Opgelost

Original comment by P.K.Ton...@gmail.com on 19 Jun 2013 at 8:38

GoogleCodeExporter commented 9 years ago

Original comment by P.K.Ton...@gmail.com on 2 Sep 2013 at 8:02

GoogleCodeExporter commented 9 years ago
Released 3.6

Original comment by P.K.Ton...@gmail.com on 25 Sep 2013 at 6:51

GoogleCodeExporter commented 9 years ago
Released 3.6

Original comment by P.K.Ton...@gmail.com on 25 Sep 2013 at 6:51

GoogleCodeExporter commented 9 years ago
Released 3.6

Original comment by P.K.Ton...@gmail.com on 25 Sep 2013 at 6:51

GoogleCodeExporter commented 9 years ago
Released 3.6

Original comment by P.K.Ton...@gmail.com on 25 Sep 2013 at 6:51