Zoekresultaten : mqtt

jan 092017
 

De vakantie is al weer voorbij, dus dit project zal waarschijnlijk even moeten wachten. Maar ik wilde e.e.a. toch al even “noteren”. Ik kwam er namelijk achter dat mijn CV-ketel ondersteuning heeft voor OpenTherm. En dat biedt mogelijkheden. Want eigenlijk vind ik het wel jammer dat mijn ATAG WiZe gewoon een “domme” thermostaat is. Maar zo’n flitsend kastje dat ook info naar de leverancier stuurt of waar ik maandelijks een abonnement voor betaal, dat hoef ik ook niet.

In plaats daarvan kan ik een OpenTherm Gateway tussen mijn CV-ketel en (bijvoorbeeld) een Raspberry Pi plaatsen. Met een script kan ik dan het geheel aan mijn reeds aanwezige MQTT-server koppelen en daarmee ook aan mijn OpenHab server. Daarmee kan ik dan de activiteiten van de CV-ketel uitlezen en aanpassen, voor zover de thermostaat dat al niet doet.

Heel erge haast heeft het niet. Ik heb de WiZe nu ook al zo ingesteld dat hij ’s nachts en overdag de thermostaat lager zet met uitzondering van het weekend en de dagen dat een van ons thuis werkt/studeert. De OpenTherm gateway maakt het mogelijk om ook vanaf afstand de thermostaat te beïnvloeden, door hem bijvoorbeeld tijdens de vakantie uit te schakelen, tijdelijk warmer te zetten etc.

De kant en klare versies van de Opentherm Gateway kit zijn uitverkocht. De kit die je zelf moet solderen is wel nog te bestellen en ja, zelf samenstellen is natuurlijk veel leuker, maar dan moet het dus nog even wachten.

Twee links om bij de hand te houden:
* Topic op Tweakers hierover
* De bronpagina van alle info

jan 052017
 

Ik moet even wat code parkeren naar aanleiding van wat “vakantie-uitzoekwerk”. Ik heb mijn DIY ontvanger en zender voor 433.92Mhz, voor het schakelen van mijn lampen, de kerstboom etc. vervangen door een RFXcom RFXtrx433E USB 433.92MHz Transceiver. Natuurlijk is zelfgebouwd heel leuk en leerzaam, maar de RFXcom heeft al meteen laten zien dat hij een stuk betere ontvangst heeft dan mijn eigen creatie. Net als de andere systemen, communiceert de RFXcom niet rechtstreeks met mijn OpenHab systeem, maar via een MQTT-server.

De RFXcom adapter hangt aan een Raspberry Pi machine. Niet die waar de MQTT-server en OpenHab zelf op staan, dat bleek net wat veel van het goede. Onhandig is dat RFXcom zelf geen Debian software beschikbaar stelt. Maar gelukkig zijn er anderen die daar  voor gezorgd hebben.  Zoals Anton, die deze code in Python beschikbaar gemaakt heeft.

Welke protocollen in RFXcom?
Stap #1 is om te bepalen welke protocollen de RFXcom moet ondersteunen bij het ontvangen. Hoe minder hoe beter, dan raakt hij minder in de war. Welke protocollen de verschillende apparaten gebruiken kun je opzoeken, maar je kunt ook de rfxcom applicatie opstarten en luisteren naar wat er binnen komt. Alleen, die draait niet op Debian. Een optie is om de adapter “door te verbinden” naar een poort op de Raspberry Pi en dan vanaf een andere computer verbinding te maken. Dit kan met de tool “socat”, die je even moet installeren op de Raspberry Pi en dan moet je het volgende commando runnen:
sudo socat tcp-listen:10001,fork,reuseaddr file:/dev/ttyUSB0,raw &
Het is wel belangrijk om daarna het proces weer te killen, want het Python-script en socat kunnen niet tegelijkertijd gebruik maken van de USB-poort.
Lees verder….

sep 112016
 

micropythonHet was hier weer even een paar dagen stil. En ook nu nog geen kant en klare “zo moet je nadoen wat ik gedaan heb” blogpost, meer een “dit heb ik zover voor elkaar”.
Het logo hiernaast is van MicroPython, zie het maar als het kleinere broertje of zusje van Python. Waarom kleiner (“micro”)? Kleiner, omdat het daarom mogelijk geworden is om Python zo goed als volledig/volwaardig te draaien op devices waarvan dat voorheen niet mogelijk was. Een voorbeeld daarvan is de micro:bit, maar die zal voorlopig nog erg zeldzaam zijn in Nederland. Met dank aan een succesvolle Kickstarter die onlangs plaats gevonden heeft, is er nu ook een versie voor de ESP8266. En daar heb ik er wel een paar van in huis. Daarnaast zal ook de LoPy, die als het goed is eind deze maand verstuurd wordt, direct ondersteuning hebben voor MicroPython. Tijd dus om er alvast eens in te duiken.

Je kunt best veel lezen over MicroPython, maar ik kan je zeker de videoserie aanraden die Tony DiCola op het moment maakt voor Adafruit. Ze zijn wat langer, soms 45 minuten of iets langer, Maar Tony gaat heel uitgebreid en geduldig op de verschillende aspecten van MicroPython in. De video’s worden als livestream gemaakt, maar daarna toegevoegd aan hun eigen pagina met veel tekstuele toelichting, code-snippets en verwijzingen. Je kunt die op de Adafruit Learn website vinden.

Voor wat betreft “lezen” is deze eerste pagina sowieso een heel goede om te beginnen. Daar kun je o.a. verwijzingen vinden naar:

Lees verder….

jan 162016
 

20160116_153712_NormalAls zaterdagmiddagproject vandaag weer eens iets waarvan de titel vast geen duizenden views gaat trekken. Ik had afgelopen week een klein LCD-schermpje binnen gekregen. Het is 1.44 inch groot en heeft een resolutie van 128×128 pixel. Een resolutie van 2x niks zou je zeggen, maar ja het schermpje kost dan ook €2,98 incl. verzendkosten. En als je een ESP8266 gebruikt en alleen maar even wat statusinformatie wilt laten tonen, dan heb je helemaal niet veel nodig.

De uitdaging bij dit soort schermpjes is altijd het vinden van de juiste aansluitingen voor de vaak vele pins die zo’n scherm heeft, deze heeft er 8 én het vinden van de juiste library voor Arduino / ESP8266. Ik noem die laatste twee overigens wel in één adem, maar ook hier is het zo dat er nét een beetje verschil zat tussen hoe je e.e.a. zou moeten doen op een “echte” Arduino versus een ESP8266.

Op de foto hier bij het bericht zie je het eindresultaat met naast het LC scherm en de ESP8266 aan de rechterkant een DHT11 die luchtvochtigheid en temperatuur meet.

Als library heb ik gebruik gemaakt van deze library van “sumotoy” (Max MC Costa uit Milaan, Italië) . Belangrijk daarbij is dat het hier dan gaat om de “Pre-Release-1.0r4” (mogelijk werkt 1.0r5 ook, maar die heb ik niet getest). De “master” branch heeft namelijk nog geen ondersteuning voor de ESP8266.

De 8 aansluitingen stonden daar ook netjes aangegeven:

TFT kant   -------- ESP8266  
- Vcc       -->     +3V3V(!!!!)
- Gnd       -->     Gnd
- CS        -->     D0
- RST       -->     D2
- A0        -->     D1
- SDA       -->     Mosi (D7)
- SCK       -->     Sclk (D5)
- LED       -->     +3V3V

Ik heb voor mijn scherm geen weerstand aangesloten al zou een regelbare weerstand hier helemaal niet verkeerd zijn geweest omdat het scherm nu nog ernstig last heeft van licht “bleed” om de randen heen. You get what you pay for zullen we maar zeggen al ga ik er even vanuit dat dat weg valt als je het schermpje in een enclosure opneemt.
De library heeft een groot aantal voorbeelden aan boord, daarbij moet je even opletten dat bij de ESP8266 de 3 #define statements voor de poorten in de scripts moet zijn:

#define __CS 16
#define __DC 5
#define __RST 4

Dat is niet in alle voorbeelden meteen zo, dus dat moet je dan even aanpassen.
Daarnaast kreeg ik eerst boven in het venstertje een balk met ruis te zien. Ik gok dat het ongeveer 32 pixels hoog was. De library is namelijk geschikt voor verschillende schermpjes en Sumotoy heeft zelf blijkbaar een aantal schermpjes die 128×160 pixels zijn. De oplossing was eenvoudig. In de library map zit ook een map genaamd “_settings” met daarin een bestand genaamd “TFT_ILI9163C_settings.h”. In dat bestand staan bovenin een aantal #define statements. Je moet hier de voor jou juiste kiezen. Standaard is “#define __144_RED_PCB__//128×128” gekozen en omdat ik een rode PCB had zou dat moeten kloppen. Maar het bleek dat in mijn geval “#define __144_BLACK_PCB__//128×128” het gewenste effect gaf.

Lees verder….

dec 292015
 

Het is hier al een paar dagen stil. Niet alleen omdat ik met de feestdagen wat meer offline ben dan anders. Maar ook omdat ik nog niet helemaal aan het documenteren van wat ik wel al werkend heb gekregen voor wat betreft mijn domotica activiteiten deze vakantie ben toegekomen. Als je me via Twitter volgt, dan heb je gezien dat de kerstboom inmiddels aan de MQTT-backbone hangt:

WhitePiDatzelfde is het geval voor de zonnepanelen, die hun status nu ook netjes op die manier doorgeven. En ik ben bezig met het opzetten van een Openhab-server om alles aan elkaar te knopen. Maar de quickpost van vandaag gaat over een vervelend probleem dat ik met de MQTT-server had: hij hield bij een reboot zijn, ingestelde, vaste IP-adres niet vast en kreeg heel eigenwijs toch weer een dynamisch IP-adres. Dat blijkt een bekend en recent probleem te zijn. Er worden hier op het forum een aantal opties genoemd. Voor mij werkte alleen het de-installeren van dhcpcd5:

sudo su
cp /etc/network/interfaces /etc/network/interfacesbackup
apt-get purge dhcpcd5
[accept with yes]
cp /etc/network/interfacesbackup /etc/network/interfaces
reboot

Het maken van een kopie van het interfaces bestand is wel even handig om te weten. Ook bleek ik de DNS zelf in te moeten stellen. Dit zijn de DNS-servers van Ziggo, waarschijnlijk heb je zelf andere nodig:

nano /etc/resolv.conf

[add]
nameserver 213.46.228.196
nameserver 62.179.104.196

 Reacties uitgeschakeld voor Quickpost: Hardnekkige DHCP in Raspbian Jessie  Tags: , ,
dec 232015
 

20151223_150453Ik schreef gisteren al dat ik een tweetal ESP8266 boardjes had laten komen. Een soort Arduino maar dan veel goedkoper dan wat ik daar ooit voor betaalde én voorzien van Wifi op het toch al niet grote bordje. Een van de dingen waar ik de Arduino’s de afgelopen jaren voor gebruikt heb is als grondvochtigheidsmeter voor de jonge aanplant in het voorjaar (voordat ze de volle grond in gaan). Dan is het handig om op afstand in de gaten te kunnen houden of ze water nodig hebben.
Voor dat doel kun je tamelijk betaalbare grondvochtigheidsmeters kopen (zo’n €1,60 – voor dat bedrag ga ik ze niet zelf maken met spijker/draden etc). Eerste projectje deze week was daarom om zo’n meter aan te sluiten op een ESP8266 en dan de data, via Wifi, zowel via een webpagina als via MQTT toegankelijk te maken. Dat was op zichzelf niet zo heel moeilijk. Maar ja, zo’n bordje kan natuurlijk niet zomaar bij zo’n plantenbak liggen (vocht en zo).

Ik vind de “standaard” firmware die op de ESP8266 meegeleverd wordt prettiger als de Espruino firmware waar ik gisteren mee gespeeld heb. Daarmee kun je op dezelfde manier als bij de Arduino, zelfs mét de Arduino IDE, scripts maken voor de verschillende taken die je de ESP8266 wil laten uitvoeren (uitlezen vochtigheidsmeting, verbinding maken met de wifi, versturen van die data via wifi, tonen van een webpagina etc). Dat deel van het project was dus eenvoudig.

Wel moest er natuurlijk een behuizing komen voor de combinatie van ESP8266 en het kleine stukje logica dat aan de vochtigheidsmeter vast zat (klein printplaatje met o.a. potmeter waarmee je de schakelwaarde voor de digitale uitgang kunt aanpassen en 2 ledjes die laten zien dat het geheel werkt), want dat kon zo niet bij een vochtige plant blijven liggen. Nou zijn er al heel veel mensen geweest die een pepermuntdoosje als behuizing gebruikt hebben voor de meest uiteenlopende zaken. Dus waarom geen SMINT-doosje als omhulsel voor mijn project? 🙂 Lees verder….

 Reacties uitgeschakeld voor Woensdagproject: draadloze grondvochtigheidsmeter met frisse smaak  Tags: , ,

Raspberry Pi B+

 Gepubliceerd door om 06:23  Raspberry Pi
jul 172014
 

Raspberry Pi B+ Ik kon het niet laten. Zondag verscheen er een gerucht online van een nieuwe Raspberry Pi B+. Dat gerucht bleek waar te zijn, maar eigenlijk zou er pas maandag over gecommuniceerd mogen worden. En inderdaad, maandag vond de officiële aankondiging plaats, inclusief de filmpjes van de bloggers die een exemplaar hadden gekregen om te testen.

Daarvoor hoefde ik het dus niet te doen, ik kon gewoon verwijzen naar die video’s voor de belangrijkste verschillen. Maar ik wist uit het verleden bij de oorspronkelijke Raspberry Pi en ook de Camera-kit dat kort na release het wel eens vaker een tijdje kon duren voordat het apparaat weer gewoon op voorraad was. En dat wilde ik deze keer voor zijn.

Voor de volledigheid toch de belangrijkste verschillen op een rijtje:

  • Geen SD-kaart van plastic meer, maar micro-SD van metaal. Daarom compacter, geen uitstekende kaart en minder kans op schade aan de SD-kaart lezer.
  • Maar liefs 4 USB-poorten zodat je niet alleen een toetsenbord + muis kon aansluiten maar ook een wifi-dongle of andere randapparatuur, iets waar je nu een powered USB-hub voor nodig had.
  • Beter power-management, de Pi slaat niet op hol als je bv een wifi-dongle insteekt als het apparaat aan staat. En de Pi gebruikt een stuk minder stroom.
  • Verschuiven van de aansluitingen naar 2 kanten van de Pi in plaats van 4 bij de ‘oude’.
  • Meer GPIO-pinnen
  • Gecombineerde digitale audio + component video plug (compacter)

Processor en geheugen zijn hetzelfde gebleven. Dus hij is niet sneller dan een huidig model B. Én omdat de aansluitingen gewijzigd zijn, passen de bestaande cases niet meer. De ‘oude’ camera past wel nog gewoon. Veel van de uitbreidingskaarten ook, tenzij ze zo groot zijn dat ze niet meer passen met de USB-poorten. Wat foto’s van deze 2014-Pi naast een 2011 versie (nog met 256MB!)
Raspberry Pi B+ Raspberry Pi B+ Raspberry Pi B+ Raspberry Pi B+ Raspberry Pi B+ en Raspberry Pi 2011 Raspberry Pi B+ en Raspberry Pi 2011 Raspberry Pi B+ Raspberry Pi B+Raspberry Pi B+
Lees verder….

 Reacties uitgeschakeld voor Raspberry Pi B+  Tags:

sockjs/sockjs-client · GitHub

 Gepubliceerd door om 08:21  Programmeren
jul 082014
 

SockJS is a browser JavaScript library that provides a WebSocket-like object. SockJS gives you a coherent, cross-browser, Javascript API which creates a low latency, full duplex, cross-domain communication channel between the browser and the web server.

Under the hood SockJS tries to use native WebSockets first. If that fails it can use a variety of browser-specific transport protocols and presents them through WebSocket-like abstractions.

SockJS is intended to work for all modern browsers and in environments which don’t support WebSocket protocol, for example behind restrictive corporate proxies.

via sockjs/sockjs-client · GitHub.

Een van de problemen met socket.io (zoals ik o.a hier gebruik) is dat het nóg een extra poort is die je in je firewall open moet zetten. Op mijn Raspberry Pi thuis is dat natuurlijk niet direct een probleem, maar ik weet niet 100% zeker of die verbinding ook overal onderweg door alle proxies en zo heen komt (iets om nog testen). Sockjs zou daar een alternatief voor moeten zijn.

 Reacties uitgeschakeld voor sockjs/sockjs-client · GitHub
jun 222014
 

Arduino FC-28-D Een van de “thuis-projecten” die al weer even in de wacht stonden, was het gebruik van de Arduino’s die we in huis hebben in combinatie met de verschillende planten die mijn jongste zoon aan het kweken is. Ik had een aantal sensoren besteld die de vochtigheid van de grond kunnen meten. Het idee was om er daar een aantal van op een Arduino aan te sluiten, die Arduino aan het netwerk te hangen en dan via MQTT de grondvochtigheid door te geven aan een Raspberry Pi en online te zetten of om automatisch een waarschuwing te genereren op het moment dat ze beneden een grens zouden komen (en het tijd was om water te geven). Het automatisch water geven was iets voor een volgende fase.

Ik had een viertal sensoren besteld via MiniInTheBox en kwam er vandaag helaas achter dat afbeelding en omschrijving bij het product niet met elkaar overeen komen. In de beschrijving staat namelijk dat de FC-28 sensor die ze leveren zowel een digitale als een analoge uitgang heeft. Het product dat ze leveren heeft alleen een digitale uitgang. De foto op de site klopt:
FC-28-D
Als je goed kijkt, dan zie je dat het printplaatje 3 pinnen heeft: 1 voor de 5V voeding, 1 voor Ground en 1 voor een digitale uitgang. De analoge uitgang ontbreekt.

En dat is jammer, want de digitale uitgang kan maar 2 waarden aan: 0 en 1. Je kunt met de potmeter op het plaatje de drempelwaarde (qua vochtigheid) instellen, maar was het een kaartje met ook een analoge uitgang geweest, dan hadden we ook de exacte vochtigheid kunnen aflezen. Veel leuker natuurlijk, want daar kun je dan weer grafiekjes van maken, je kunt zien hoe snel de vochtigheid omlaag gaat etc.
Lees verder….