nodo-domotica.nl

Events worden gemist bij (te) snel versturen

We zitten zoals bekend in de ontwikkelfase. Van diverse gebruikers heb ik al goede suggesties gekregen. Hier discussiëren we over de functionaliteiten van de nieuwe release.

Events worden gemist bij (te) snel versturen

Berichtdoor Petervd » 15 sep 2014, 13:04

Hallo,

Ik maak sinds een paar weken gebruik van de 3.7 release, werkt een stuk prettige dan de vorige, vooral het ontvangst stuk is duidelijk beter!

Ik heb een tweetal nodo's draaien waarvan 1 die de events via HTTP verzend naar de nodo database. Events die vanuit de andere nodo afkomen komen binnen via RF. Als ik het handmatig verzend gaat het altijd goed, ik zie de events vanuit de andere nodo dan netjes in de database komen. Als ik echter de events op basis van een timer event laat verzenden (bij voorbeeld variable 1 t/m 6 waar Alecto informatie ingezet wordt) dan mist hij er heel vaak meedere, als ik echter meedere timers gebruik om de info te verzenden gaat het wel goed.

Is dit standaard gedrag of wil ik gewoon te veel (op zich geen moeite om met meerdere timers te werken).

Code: Selecteer alles
Boot 1; Sound 2,0
Boot 1; RawSignalReceive On,-
Boot 1; AlectoV1 165,1
Boot 1; TimerSet 4,300
Boot 1; BMP085Read 10
Boot 1; TimerSet 1,150
Boot 1; TimerSet 2,160

Timer 1; BMP085Read 10
Timer 1; VariableSend 10,RF
Timer 2; VariableSend 11,RF
Timer 2; TimerSet 1,150
Timer 2; TimerSet 2,160

Timer 3; KakuSend O10,Off

Timer 4; TimerSet 4,300
Timer 4; VariableSend 1,RF
Timer 4; VariableSend 2,RF
Timer 4; VariableSend 3,RF
Timer 4; VariableSend 4,RF
Timer 4; VariableSend 5,RF
Timer 4; VariableSend 6,RF

Timer 5; VariableSend 2,RF  [b]Deze ter test toegevoegd[/b]
Timer 5; TimerSet 5,120

RawSignal 0xE3DF1EF8; TimerSet 3,60
RawSignal 0xE3DF1EF8; KakuSend O10,On


groet Peter
Petervd
 
Berichten: 34
Geregistreerd: 01 dec 2011, 16:25

Re: Events worden gemist bij (te) snel versturen

Berichtdoor manjh » 15 sep 2014, 14:09

Het doorsturen naar de webapp kan relatief langzaam zijn. De centrale nodo is dan bezig met communicatie met de webapp, terwijl de andere nodo al de volgende waardes aan het sturen is. Verbaast me niks dat je er dan een paar mist.

Je kunt dit oplossen door meerdere timers te grbuiken, maar veel eenvoudiger is het om meteen na het verzenden van een variable een statement in te voegen met een delay van bijv. 1 seconde.
De zendende nodo stuurt dan niet alles vlak achter elkaar, maar in een ritme van 1 per sec. Ongeveer.
Hans
manjh
 
Berichten: 1173
Geregistreerd: 29 aug 2011, 14:39

Re: Events worden gemist bij (te) snel versturen

Berichtdoor mvdbro » 15 sep 2014, 16:07

Een delay is inderdaad gewenst. Verder is het verstandig om de centrale nodo het verzoek te laten doen aan de slave om zijn informatie terug te zenden. Dan hou je dus centrale regie over het verzenden van meetwaardes en is de kans dat meerdere slaves door elkaar heen gaan klein.

Voorbeeld van mijn weerstation slave met Alecto, DHT11 en LDR:
Code: Selecteer alles
eventlistwrite; boot 6; alectoV2 94,2;
eventlistwrite; Time 00:00,All; VariableSet 4,0;
eventlistwrite; UserEvent 250,6; delay 1,On;
eventlistwrite; UserEvent 250,6; VariableSend 2,RF;
eventlistwrite; UserEvent 250,6; delay 1,On;
eventlistwrite; UserEvent 250,6; VariableSend 3,RF;
eventlistwrite; UserEvent 250,6; delay 1,On;
eventlistwrite; UserEvent 250,6; VariableSend 4,RF;
eventlistwrite; UserEvent 250,6; delay 1,On;
eventlistwrite; UserEvent 250,6; VariableSend 5,RF;
eventlistwrite; UserEvent 250,6; delay 1,On;
eventlistwrite; UserEvent 250,6; VariableSend 6,RF;
eventlistwrite; UserEvent 250,6; delay 1,On;
eventlistwrite; UserEvent 250,6; VariableSend 7,RF;
eventlistwrite; UserEvent 250,6; BMP085Read 8;
eventlistwrite; UserEvent 250,6; delay 1,On;
eventlistwrite; UserEvent 250,6; VariableSend 9,RF;
eventlistwrite; UserEvent 250,6; delay 1,On;
eventlistwrite; UserEvent 250,6; dht11read 3,10;
eventlistwrite; UserEvent 250,6; VariableWiredAnalog 12,1;
eventlistwrite; UserEvent 250,6; VariableSend 11,RF;
eventlistwrite; UserEvent 250,6; delay 1,On;
eventlistwrite; UserEvent 250,6; VariableSend 12,RF;
eventlistwrite; UserEvent 250,6; delay 1,On;


Voorbeeld van centrale Nodo die van meerdere slaves data opvraagt:
Code: Selecteer alles
EventlistWrite; Boot 2; TimerSet 1,300
EventlistWrite; Timer 1; TimerSet 1,20
EventlistWrite; Timer 1; VariableInc 14,1
EventlistWrite; Variable 14,1; UserEventSend 250,3
EventlistWrite; Variable 14,2; UserEventSend 250,6
EventlistWrite; Variable 14,3; UserEventSend 250,10
EventlistWrite; Variable 14,4; UserEventSend 250,11
EventlistWrite; Variable 14,5; TimerSet 1,300
EventlistWrite; Variable 14,5; VariableSet 14,0


De centrale Nodo vraagt elke 5 minuten data op. Hiervoor gebruik ik UserEventSend 250,<slave unit>. Tussen elke Nodo zit 20 seconde. Werkt perfect in mijn situatie.
mvdbro
 
Berichten: 1092
Geregistreerd: 21 okt 2011, 12:06

Re: Events worden gemist bij (te) snel versturen

Berichtdoor Petervd » 17 sep 2014, 10:49

Heren,

Dank, Dat maakt een hoop duidelijk. Ik zal jullie tips implementeren.

gr Peter
Petervd
 
Berichten: 34
Geregistreerd: 01 dec 2011, 16:25


Keer terug naar De nieuwe release

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers. en 1 gast

cron