Upload
peter-bosmans
View
121
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Een presentatie over hoe Drupal ook gebruikt kan worden om het controlleren van een home automation system die gebruik maakt van VSCP
Citation preview
Drupal Home automation met VSCP
Peter Bosmans
Concept
• Centraal schakelpunt (teleruptors, relais)• Gedistribueerde controllers gekoppeld via een
eenvoudig netwerk (Bijv. één per kamer)• Geen Master-slave netwerk (SPOF), met een
bestaand protocol• Open source – Open hardware– Firmware , protocol– Control software
Home automation control software
• Home remote (java – tomcat)• Linux MCE (gebaseerd op Ubuntu)• Misterhouse (Perl – ook met VSCP)• Drupal– Webgebaseerd, toegangsrechten, taxonomie, …– Connectie met database (logging, views, …)– Uitbreidbaar -> VSCP module
VSCP• Very Simple Control Protocol
http://sourceforge.net/projects/m2m/files/VSCP%20Specification/http://en.wikipedia.org/wiki/Very_Simple_Control_Protocol
• Open source multiplatform : windows, linux – multicontroller : PIC, AVR, ARM, …
• Bruikbaar over verschillende fysieke lagen–Level I : RS232, RS485, RF, CAN–Level II : Ethernet
• Event gebaseerd• Configureerbare Modules
–Registers : I/O gedrag, I/O zones-subzones –DM (Decision matrix) : Filter - Action
VSCP events
• Class : Collectie van event types– INFORMATION(20) , ALARM(1), MEASUREMENT(10), ….
• Type : Type van event– CLASS INFORMATION : BUTTON(1), ON(3), OFF(4), BELOW LIMIT(10), …– CLASS MEASUREMENT : COUNT(1), TEMPERATUUR(6), GEWICHT(3), …
• Zone : bron van event class-type– Kelder(1), Gelijkvloers(2), …
• Subzone : sub-bron van event class-type– Keuken(1), Salon(2), Berging(3), Terras(4), …
Communicatie Drupal <-> VSCP
VSCPD– Gateway daemon tussen het CAN-netwerk en IP-netwerk.– DM voor filter – action
•Inkomende VSCP eventsCANbus -> USB2CAN convertor -> USB -> VSCPD -> DM -> PHPscript ->
XMLPRC• DM start PHPscript bij een INFORMATION ON/OFF VSCP event• PHPscript maakt een XMLRPC call naar drupal
•Uitgaande VSCP eventsDrupal VSCP module -> VSCPD -> USB -> USB2CAN convertor -> CANbus
VSCP module• Taxonomie
– Level I Events : Reeds geconfigureerd in xml-file (Taxonomy import/export) – Zones-Subzones : Te configureren door de gebruiker
• Hiërarchisch opgebouwd• Synoniem bevat de zone- of subzonenummer
• Contenttypes– VSCPevent : Elk VSCPevent heeft een corresponderende Drupal node
• Taxonomy : Bepaalt het VSCP-event (class, type, zone, subzone)• Byte0 : Nodig voor bepaalde events• Data : Nodig voor bepaalde events• Node referenties (sended, received) : Connectie tussen verzonden en ontvangen events• Logtype : Type van logging ; via revisions of via nodes van het contenttype VSCPlog• Log referentie : Referentie naar de logging-node als er met revisies gewerkt wordt.• Button : Het event wordt verstuurd door ofwel een ‘view’ node of via de ‘button’ field
– VSCPlog• Class, Type, Byte0, Zone, Subzone, Data : Velden voor de corresponderende waardes.
VSCP module• Zelflerend bij elk ontvangen event
– Node niveau• check op VSCP class, type, zone en subzone• Indien de node nog niet bestaat : maak node aan• Indien de node wel bestaat :
– update node timestamp – Indien referentie naar een send event node : update de receive referentie in de send event
node – Taxonomie niveau (Zone-Subzone)
• Indien de zone en of subzone nog niet bestaat : maak deze taxonomie term aan
• ReferentiesOm de laatst ontvangen VSCP event te koppelen aan z’n corresponderend verzonden VSCP event Bijv.: - on/off events koppelen aan button events.- het koppelen van het event met de werkelijk gemeten waarde, aan het event, om een temperatuur te zetten.
VSCP module• Rules integratie– Rule trigger :
• After a VSCP event is received
– Rule condities : • VSCP event has zone• VSCP event has subzone• VSCP event has class• VSCP event had type• VSCP event had byte0• VSCP event had databytes
– Rule actie : • Send a VSCP event
– Rule sets• Bruikbaar voor oa. tijdsgebonden VSCPevents
Demo : Technische opbouw
• Elektrische installatie
• Nodes : CAN based modulesConfiguratie : IN1, OUT1 => Zone = 1 = ‘Kelder’ ; Subzone = 1 = ‘Voorraad’IN2, OUT2 => Zone = 2 = ‘Gelijkvloers’ ; Subzone = 1 = ‘Keuken’IN3, OUT3 => Zone = 2 = ‘Gelijkvloers’ ; Subzone = 2 = ‘Woonkamer’
Demo : Drupal - VSCP• Configuratie :
– Manuele instelling• Taxonomie ‘Zone-Subzone’• Content VSCPevent ‘Information – Button’
– Semi-Automatisch via de zelflerende mogelijkheid• Taxonomie ‘Zone-Subzone’• Content VSCPevent ‘Information – On/Off’
– Koppel het ontvangen VSCPevent aan het corresponderend verzonden VSCPevent.
• Views : – Buttons view : Overzicht van de ‘Information - button’ VSCP events met de
relatie van de laatst ontvangen ‘Information – On/Off’ event • Voorbeelden van enkele rules :
– ButtonSendEvent : Deze zorgt voor het verzenden van het VSCPevent en de refresh van de pagina, na een korte vertraging.
– Kelder Voorraad ON – Email : Verzend een mail wanneer het licht aangedaan wordt in de voorraadkelder.
• Rulessets : – Voor oa. het scheduleren van VSCPevents. Bijv. Elke 2 minuten het licht aan/uit doen.– …
Toekomstige ontwikkelingen• Meer sensor integratie (temperatuur, licht, …)
• Meer widgets voor drupal • Ajax integratie• Migratie naar Drupal 7• Integratie van MQTT in de VSCP daemon
MQTT (MQ Telemetry Transport) : eenvoudige overdracht van berichten via een ‘broker’ met ‘publish/subscribe’ procedures
• Integratie van WS in de VSCP daemon (HTML5)
• https://www.thingspeak.com/, https://pachube.com/, …
Vragen ??
Nuttige Links
VSCP : http://www.vscp.org/
VSCP source : http://sourceforge.net/projects/m2m/?source=directory
VSCP drupal module : http://drupal.org/sandbox/pbosmans/1429844
VSCP kiewit hardware module : https://sourceforge.net/p/vscpmodules/kiewit
Feedback & follow-up: http://drupalcampgent.be/feedback