Releaseletter Nodo 3.7

Uit Nodo Wiki
Ga naar: navigatie, zoeken

New.gif

Nodo releaseletter 3.7

Auteurs: Paul Tonkes en Hans Man Datum: Maart 2014

De nieuwe release kan hier worden gedownload.

Ga voor migratiehulp naar het forum

Over deze release letter

Deze releaseletter beschrijft in grote lijnen de wijzigingen die zijn opgenomen in de nieuwe Nodo release. Het is niet de bedoeling om dit zeer gedetaiilleerd te doen, maar wel om een overzicht te bieden. Het beschrijft het verschil ten opzichte van release 3.6 Build 596.

De nieuwe release

Deze release kent een aantal funktionele uitbreidingen en bugfixes. De overstap van release 3.6 naar 3.7 is relatief eenvoudig temeer omdat (bijna) alle zaken backwards compatibel zijn. Er zijn reeds aanpassingen verricht die voorbereidend zijn op de nieuwe release van de WebApp die op dit moment in ontwikkeling is. Hierover later meer.

Onder de motorkap

Er zijn vele kleine code optimalisaties doorgevoerd die voor de gebruiker niet zichtbaar zijn. Grote stucturele aanpassingen hebben er niet plaats gevonden.

Functionele aanpassingen

In de vorige release hebben we een aantal commando's gerenamed omdat de opbouw van de naamgeving niet consequent was (Zie Releaseletter Nodo 3.6) Tijdelijk hadden we een voorziening die de oude syntax omzette naar de nieuwe naamgeving. Deze voorziening is verwijderd.

Plugins

  • P1/Slimme meter: We hebben een Plugin 024 gemaakt om energieverbruik te meten vanuit een P1/Slimme meter. Afhankelijk van je leverancier en configuratie kun je gasverbruik, electra verbruik en eventuele teruglevering vanuit zonnepanelen meten en naar de WebApp sturen. Er zijn verschillende typen slimme meters. Krijg je het niet goed aan de praat, neem dan even contact met ons op dan helpen we je verder.
  • DHT-22: Plugin 006 is nu ook geschikt gemaakt voor uitlezen van een DHT-22 temperatuur/luchtvochtigheidssensor. Deze sensor heeft ten opzichte van de DHT-11 een veel beter bereik en resolutie. Kijk vooral even bij de opmerkingen bij Plugin 006.
  • KAKU plugin: Plugin_001 en Plugin_002 zijn samengevoegd tot één nieuwe Plugin_001. Tevens is er een bug opgelost die met name bij oude KAKU ontvangers soms problemen kon opleveren waardoor de ontvangst niet altijd optimaal is.
  • NewKAKU: Plugin_003 en Plugin_003 zijn nu samengevoegd tot één Plugin_002.
  • RGB-Led plugin: Plugin 023 was een beta versie. Hier is een geheel herziene versie voor gemaakt die het eenvoudiger mogelijk maakt om vanuit de ene Nodo een RGB-led aan te sturen die is aangesloten op een andere Nodo.

Let Op: Samen met de Nodo software worden de plugins meegeleverd. De plugins worden steeds verder ontwikkeld en verbeterd. Haal altijd de plugin op vanaf de betreffende wiki pagina van de plugin.

Compilatie & Configuratie

Let op: Zoals elders in deze releaseletter aangegeven maken we gebruik van andere libraries voor I2C en Ethernet. Zorg er voor dat je oude Nodo libraries worden verwijderd en gebruik de nieuwe met deze release meegeleverde libraries. Als deze stap niet correct wordt gedaan zal de code niet door de compiler komen! Kijk voor nadere informatie op de Arduino website [www.arduino.cc].

  • Programmacode voor de klok: Met name voor de Nodo Small software op een Arduino Duemillanove blijft er weinig geheugenruimte over voor plugins. Het is nu mogelijk om alle code die betrekking hebben op het gebruik van de realtime klok niet mee te compileren. Veel Nodo Small's worden vaak alleen gebruikt als sensor, waarbij de klok niet aanwezig is of niet gebruikt wordt. In het configuratiebestand kan dit worden opgegeven met een #define.
  • Programmacode voor Ethernet: Voorheen moest in de config bestanden worden aangegeven of je ethernet funktionaliteit gebruikte of niet (Nodo-Mega). Nu zal de funktionaliteit niet worden meegecompileerd als ook de library niet is opgegeven in Nodo.ino. Dit maakt de instelling wat eenvoudiger en bespaart een aanzienlijke hoeveelheid programmageheugen voor geval de Mega geen gebruik hoeft te maken van Ethernet.

I2C

I2C communicatie is stabieler gemaakt door de standaard Arduino library te vervangen door een aangepaste versie. Tevens ik het nu mogelijk om op hele eenvoudige manier events naar de Nodo te versturen vanuit een ander apparaat zoals een Arduino, PIC-processor, etc. gewoon door een string naar de Nodo-Mega te sturen met commando's/events.

Processing en Evenlist

  • Resetten: Het is mogelijk om de eventlist zo te programmeren dat de Nodo in een loop terecht komt. Er is nu een mogelijkheit om in geval van nood de Nodo een factory reset te geven door de (IR_RX_DATA) tien seconden te verbinden met de LED-RED. (Zowel Mega als Small). De Nodo zal een reset uitvoeren die overeenkomt met het commando Reset;

Aliassen

Als je een uitgebreide script of eventlist hebt, of veel schakelmateriaal, dan kan het wel eens lastig zijn om het overzicht te houden. Daarom is er een aliassen voorziening gemaakt. Hiermee is het mogelijk om een Nodo commando of event een eigen naam te geven. Dit is in het bijzonder handig in combinatie met RawSignals. Je kunt nu aan het commando 'NewKakuSend 3,On' de eigen naam 'Schemerlampje Aan' verbinden. De volgende commando's zijn beschikbaar:

  • AliasWrite: Kent aan een Nodo event of commando een Alias toe;
  • AliasErase: Wist een Alias;
  • AliasList: Laat een overzicht zien van alle ingestelde aliassen;

EventlistShow Nodo-Small

Het is nu mogelijk om via SendTo een eventlist op te vragen van een Nodo-Small. Dit vindt dan plaats via een RF, IR of I2C verbinding.

RawSignal

RawSignal (Zie:) is een voorziening waarme we de Nodo-Mega onbekende RF of IR signalen kunnen leren om deze later weer uit te sturen. Deze funktionaliteit is flink onderhanden genomen omdat de gebruikersvriendelijkheid en toepasbaarheid te wensen over liet. We kunnen nu RawSignals opslaan, laden, weergeven en met elkaar delen in de vorm van een script. Dit maakt het concept veel breder toepasbaar omdat we nu ook een verzameling kunnen aanleggen van signalen van andere apparaten die de gebruiker nu eenvoudig kan gebruiken. Hiermee kunnen we zelfs de noodzaak voor het maken van een plugin voorkomen. De volgende commando's zijn beschikbaar:

  • RawSignalReceive: Instelling waarmee we aangeven of Nodo onbekende signalen moet ontvangen of niet.
  • RawSignalWrite: Instelling voor het automatisch opslaan van RawSignals op SDCard. Dit commando vervangt het oude commando RawSignalSave;;
  • RawSignalList: Geeft een overzicht van alle opgeslagen RawSignals;
  • RawSignalShow: Laat de opbouw van een RawSignal zien;

LET OP: De oude RawSignals die met de vorige releases zijn opgeslagen zijn helaas niet meer te gebruiken. Ook is het mogelijk dat binnenkomende RawSignals nu een andere HEX-code opleveren. Deze stap hebben we moeten maken om het mechanisme eenvoudiger en universeler te maken.

Nodo op batterij

Het kan soms handig zijn om een Nodo (Als sensor) op batterij of zonne-energie te laten funktioneren. Met het commando Sleep wordt de Nodo in een slaapmode gezet waarbij deze zeer weinig energie verbruikt. Een Nodo een jaar lang op drie penlights laten funktioneren moet haalbaar zijn. Deze funktionaliteit is alleen op een Nodo-Small beschikbaar.

Variabelen

Er zijn nieuwe commando's beschikbaar die betrekking hebben op het gebruik van variabelen:

  • VariableGet: Met dit commando kun je een variabele in een andere Nodo ophalen en plaaten in een variabele van de Nodo die het ophaalt.
  • VariableLog: Slaat de inhoud van een variabele op in een logfile op SDCard.

Het is nu overigens NIET meer de bedoeling dat de gebruiker de waarden van variabelen vanuit een centrale nodo ophaalt met het commando Status. We hebben hiervoor VariableSend in het leven geroepen.

  • VariableToggle is een commando waarmee je makkelijk de status van een variabele op waar of niet waar kan omzetten. Dit was uitsluitend wat omslachtig te regelen in de eventlist. Nu is hiervoor een enkel commando gemaakt.

Scriptfiles

Tijdens opstarten van de Nodo is het nu mogelijk om instellingen vanuit een scriptfile te laden of om een taak uit te voeren. Dit zoals in de goede oude MS-DOS tijd ;-)

  • Config: Dit script is bedoeld vaak maken van settings. De settings overrulen de instellingen die zijn opgeslagen met het commando SettingsSave. Dit kan handig zijn om instellingen te maken voordat verwerking plaats vindt, zoals PortInput, PortOutput, IP, [Password]], ID, etc.
  • AutoExec: Script dat direct wordt uitgevoerd nadat de Nodo is opgestart en instellingen zijn geladen.

Ook is het nu mogelijk om de verwerking van een scriptfile te laten beëindigen met een BreakOn... commando.

Overige

Naam E/C/S vervallen gewijzigd nieuw opmerkingen
Commando E X Korte beschrijving. Zie AlarmSet

Opgeloste issues

  • Issue 785: Parameter 2 van VariableSend wordt altijd gevuld met ALL
  • Issue 804: SendTo vreet geen regels na compatibiliteitconversie
  • Issue 805: NewNodo melding komt ondanks wegschrijven eventlist
  • Issue 808: Plugin error message is cryptisch
  • Issue 789: Nesting van file executes afvangen
  • Issue 796: Plugin_006 Genereert 2x Event=Variable voor par2+1
  • Issue 721: DHT11 geeft bij eerste uitlezing een nul waarde terug
  • Issue 799: P1Read bug
  • Issue 755: DHT11Read: unknown device
  • Issue 792: 'Wire' was not declared in this scope voor plugin 20 en 21.
  • Issue 793: "#define CLOCK false" geeft problemen met compileren
  • Issue 815: Plugin 20 komt niet door de compiler
  • Issue 794: P24 werkt niet op Arduino 1.0.1.
  • Bug opgelost in invoer grote HEX getallen.
  • Status opvragen met SendTo levert geen events op maar directe weergave op terminal !!!
  • Plugin_20: (BMP085Read) aangepast. WireNodo library aanpassing.
  • Plugin_02: Aanpassing versturen KAKU signaal (Stopbit lengte correctie).
  • Plugin_06: Dubbel setten van variabele verwijderd. Tevens toevoeging poort="Plugin" en retry bij error.
  • Plugin_06: Geschikt gemaakt voor DHT-22