• English (UK)
  • Francais
  • Deutsch
  • Italiano
  • Espanol

Account

Please wait, authorizing ...
Not a member? Sign up now
×
donderdag, 02 november 2017 02:04

RFGateWay en rfreceiver_mqtt

Geschreven door RPi Man
Beoordeel dit item
(0 stemmen)

RFGateWay een van de hoofdprogramma's van mijn domotica systeem draaiende op mijn RPI's. Om 433Mhz signalen te ontvangen en te decoderen maak ik gebruik van RPI's met DIY zend ontvangst modules, voornamelijk goedkope electronica uit China. In een ander blog meer over de Hardware. Om signalen van bijvoorbeeld KAKU setjes van de bouwmarkt of supermarkt te ontvangen zijn er veel programmatjes te vinden op interNet.

Dus met een beetje knutselen en programmeren heb je al snel een RPi die deze signalen kan verwerken en naar bv Domoticz kan versturen met een Json opdracht, met een App op je telefoon kan je deze lampen dan bv in en uitschakelen. Natuurlijk gaat de opensource software Domoticz veel verder. Maar goed een werken setje heb je al snel. Het eerste waar je dan al snel tegenaanloopt in mijn geval dan dat zijn de sensoren van Kaku die je aan de muur kunt plakken daar heb ik er dus tien van met 10 bijbehorende gemodificeerde kaku ontvangers deze zenden een nieuw kaku type signaal uit wat je niet zomaar even kunt ontvangen, althands het is mij niet echt gelukt, niet direkt dan.

De oude sensoren voor bijvoorbeeld wel. Deze sensoren werken allemaal met wieltjes voor de code. als je de keuze hebt gemaakt een Raspberry te gebruiken dan is de RCSwitch library de meest bekende. Ik heb dan ook nog de voorkeur om in C++ te programmeren om alles universeel te maken, voor de RPi is er bijna geen code te vinden voor deze krengen.

Als je 433Utils gebruikt kun je deze signalen wel versturen vreemd genoeg. De voorbeelden voor de nieuwe code van ontvangst zit wel bij de Arduina Sketches.. wat dat dan ook moge zijn verder.Zo heb ik ook heel lang moeten zoeken naar c++ code oom met de PLC te communiceren. Ik gebruikte daar dan Libnodave voor in C#. Nu heb ik dan wel code voor c++ van de maker van libnodave en dat is Snap7. Daarover later in mijn blog plcgateway. enfin, met een hoop tweaken heb ik dan uiteindelijk een stukje code geschren wat niet te veel CPU verbruikt maar wel goed genoeg ontvang, standaard vreten deze samples wel 80% CPU en dan wordt de CPU te warm zonder extra koeling. Dus met veel proberen is dat gelukt, Nu heb ik eindelijk ook code voor de nieuwe KAKU Type maar lukt het me niet om het CPU verbruik te verlagen. Nu gebruik ik daar een RPI voor met koeling, zeg maar het Hoodsysteem waar de Domoticz  Master op draait. Het is de bedoeling dat deze functionaliteit op alle RPI's komt die als Host worden ingezet. De test met de laatste software verbruikt 15% CPU en de temperatuur wordt ca 47 graden wat ik te hoog vind.

Maar goed ik weet nog niet welke services er standaard op moeten, nu draait op alle RPi's zo'n beetje het zelfde, Domoticz, Node-Red, Motion, MQTT, en mijn drie Domotica Applicaties.

update:

Afgelopen week de pilot met de DomoPi. Nu moet ik dan gaan bepalen hoe de RPI's met elkaar gaan communiceren. Ik heb voor het gemak een aantal opties bijgemaakt in de code zodat deze flexibel word en modulair, Zou kan ik nu switchen tussen MQTT en Json call naar de Domoticz Server. Ik heb het idee dat de MQTT methode veel resources verbruikt binnen Domoticz, Ik heb begrepen dat Json / Domoticz dat een ven hen direkt in de database schrijft ik moet me daar nog in verdiepen. Opties als logging naar MQTt en of SQL. is ook een optie.

Wat ik eigenlijk wil is een of twee parameters waarvan de hoofd parameter Master / Slave of PLC is.

Master:

Als het programma in de Master mode staat worden alle ontvangen signalen verwerkt en zo nodig via MQTT, Json of SQL Logging verwerkt. Signalen worden rechtstreeks naar de PLC verstuurd.

Slave:

Als het programma in de Slave mode staat wordt enkel berichten verstuurd die een schakeling oid aansturen, logging en SQL opslag van 'Onbekende Data' wordt niet uitgevoerd.

PLC:

Als het programma in de PLC mode staat worden alleen bekende ontvangen signalen naar de PLC verstuurd. Verder wordt er niets verzorgd.

De instellingen kunnen via de rf_signaal tabel in de database aangepast worden. Zo kunnen signalen via MQTT, Json of Snap7 verstuurd worden, afzonderlijk van elkaar. Deze vereenvoudiging via een database creëert gelijk weer de behoeft van een grafische interface. Zo blijf je lekker bezig.

 

 

Lees 209 keer Laatst aangepast op donderdag, 09 november 2017 05:00
Log in om reacties te plaatsen

Het weer

47°
°F | °C
Clear
Humidity: 90%
Thu
Mostly Sunny
39 | 53
3 | 11
Fri
Sunny
36 | 47
2 | 8

Reacties Blog

Buurtberichten

Blogberichten