Nodo-Domotica / Nodo-Core

Arduino based Domotica platform
http://www.nodo-domotica.nl
4 stars 8 forks source link

Variabele doorsturen naar HTTP werkt niet voor ongebruikte variabele #924

Closed koningdde closed 8 years ago

koningdde commented 8 years ago

Versie: Nodo Domotica controller V3.8 BETA (Mega) (c) Copyright 2015 P.K.Tonkes. Licensed under GNU General Public License. Product=SWACNC-MEGA-R817

Fout: Bij doorsturen van variabelen naar de webapp kan de fout voor komen. Output=HTTP; Unit=0; Event=Message 18,62: Variable error.

Oorzaak: Variabele is nog niet geschreven, komt ook niet voor in status,all. Na een boot van de unit zijn alle variabelen verdwenen.

Voor mij (tijdelijke) oplossing, bij boot alle mogelijke variabelen op 0 zetten.

VariableSet 1,0

EDIT: Hetzelfde gebeurt bij versturen naar I2C of RF. Het verzenden werkt geheel niet. Dit geldt voor de MEGA en de niet MEGA modellen.

Niet een heel groot probleem, maar het kan vragen oproepen.

Nodo-Domotica commented 8 years ago

Dank voor het melden. Je doet mij een plezier als je even de eventlist en een logging stuurt.

Thanks en groeten Paul.

Op vr 4 sep. 2015 12:11 schreef koningdde notifications@github.com:

Fout: Bij doorsturen van variabelen naar de webapp kan de fout voor komen. Output=HTTP; Unit=0; Event=Message 18,62: Variable error.

Oorzaak: Variabele is nog niet geschreven, komt ook niet voor in status,all. Na een boot van de unit zijn alle variabelen verdwenen.

Voor mij (tijdelijke) oplossing, bij boot alle mogelijke variabelen op 0 zetten.

VariableSet 1,0

Niet een heel groot probleem, maar het kan vragen oproepen.

— Reply to this email directly or view it on GitHub https://github.com/Nodo-Domotica/Nodo-Core/issues/924.

koningdde commented 8 years ago

Hierbij de eventwist;

!***** !Settings !Variable 1 = Temp buiten !Variable 2 = Luchtvochtigheid buiten !Variable 3 = Regen sensor !Variable 4 = Wind snelheid !Variable 5 = Wind richting !Variable 6 = Windstoten !Variable 7 = Woonkamer temparatuur !Variable 8 = Woonkamer luchtvochtigheid !Variable 9 = Dauwpunt wind (Berekend) !Variable 10 = Dauwpunt kamer (Berekend) !Variable 11 = Temp Tuinkamer !Variable 12 = Luchtdruk !Variable 13 = Zon op / Zon onder tijd !Variable 14 = Teller tbv notificatie buiten temperatuur !Variable 15 = Teller tbv notificatie windsnelheid

!Timer 1 = Timer tbv wegschrijven data weerstation naar WEBAPP !Timer 2 = Timer tbv notificatie temperatuur !Timer 3 = Timer tbv notificatie wind !Timer 4 = Timer tbv 0,5 uur voor zonsondergang !Timer 5 = Timer tbv 30 min na zon ondergang events !Timer 6 = Timer tbv Herhaling brandalarm !Timer 7 = Timer tbv Herhaling brandalarm 2 !Timer 8 = Timer tbv Display !Timer 9 = Timer tbv Display !Timer 10 = Timer tbv Display

!Userevent 1,1 = tbv notificatie temperatuur !Userevent 1,2 = tbv notificatie wind !Userevent 1,3 = tbv notificatie deurbel !Userevent 3,1 = tbv input rpi PULL foto !Userevent 99,1 = Settingssave opdracht uitvoeren

!Alarm 1 = Uitschakeltijd woonkamer verlichting !Alarm 2 = Inschakeltijd kweekkast verlichting !Alarm 3 = Uitschakeltijd kweekkast verlichting !Alarm 4 = Uitschakeltijd sierverlichting

! File 30 = Zon onder events ! File 31 = Zon op events ! File 32 = 30 Minuten voor zon onder events ! File 33 = 2 uur voor zon onder, start timer tbv 30 minuten voor zon onder ! File 34 = Alarmpunt 1 events ! File 35 = 30 min na zonsondergang events ! File 11 = config file nodo 11 ! File 3 = config file nodo 3 ! File 14 = config file nodo 14 ! File 15 = config file nodo 15 ! Nodo 1 = config file nodo 1 ! 70 = LCD write 1 ! 71 = LCD write 2 ! 72 = LCD write 3 ! 73 = LCD write 4

!*** !Units in gebruik ! 1 Hoofdunit ! 3 RPI Nodo zolder 2.4ghz ! 11 UV Scanner tuin en water meting 2.4 ghz ! 14 Nodo schuur, kippenhok en verlichting 433 mhz ! 15 Nodo zolder, cv temp en kast licht 433 mhz

!*** !Rookmelders ! 1 0,3217431

!***** !Wildcards EventlistErase !EventlistWrite; WildCard All,UserEvent,0; EventSend ALL !EventlistWrite; WildCard ALL,All,0; EventSend HTTP EventlistWrite; WildCard ALL,All,3; EventSend HTTP EventlistWrite; WildCard ALL,All,11; EventSend HTTP EventlistWrite; WildCard ALL,All,12; EventSend HTTP EventlistWrite; WildCard RF,All,14; EventSend HTTP EventlistWrite; WildCard RF,All,15; EventSend HTTP

!***** !Boot items EventlistWrite; Boot 1; AlectoV1 171,1 EventlistWrite; Boot 1; AlectoV1 202,1 EventlistWrite; Boot 1; AlectoV1 31,7 EventlistWrite; Boot 1; TimerSet 1,300 EventlistWrite; Boot 1; TimerSet 2,1750 EventlistWrite; Boot 1; TimerSet 3,1700 EventlistWrite; Boot 1; AlarmSet 1,On,23:00, EventlistWrite; Boot 1; AlarmSet 2,On,08:00, EventlistWrite; Boot 1; AlarmSet 3,On,21:00, EventlistWrite; Boot 1; AlarmSet 4,On,23:30, EventlistWrite; Boot 1; WiredThreshold 1,512 EventlistWrite; Boot 1; WiredThreshold 2,512 EventlistWrite; Boot 1; WiredThreshold 3,512 EventlistWrite; Boot 1; WiredThreshold 4,512

!!!!! Dit stukje is erbij gekomen om de fout te maskeren EventlistWrite; Boot 1; VariableSet 1,0 EventlistWrite; Boot 1; VariableSet 2,0 EventlistWrite; Boot 1; VariableSet 3,0 EventlistWrite; Boot 1; VariableSet 4,0 EventlistWrite; Boot 1; VariableSet 5,0 EventlistWrite; Boot 1; VariableSet 6,0 EventlistWrite; Boot 1; VariableSet 7,0 EventlistWrite; Boot 1; VariableSet 8,0 EventlistWrite; Boot 1; VariableSet 9,0 EventlistWrite; Boot 1; VariableSet 10,0 EventlistWrite; Boot 1; VariableSet 11,0 EventlistWrite; Boot 1; VariableSet 12,0 EventlistWrite; Boot 1; VariableSet 13,0 EventlistWrite; Boot 1; VariableSet 14,0 EventlistWrite; Boot 1; VariableSet 15,0 /!!!!! Dit stukje is erbij gekomen om de fout te maskeren

!***** !Display EventlistWrite; WiredIn 2,Off; FileExecute 70,On !Start display door druktoets nodo1 EventlistWrite; Timer 8; FileExecute 71,On !Volgende info EventlistWrite; Timer 9; FileExecute 72,On !Volgende info EventlistWrite; Timer 10; FileExecute 73,On !Volgende info

!***** !Deurbel EventlistWrite; NewKAKU 0xEADA980,On; UserEventsend 1,3 !Send email EventlistWrite; NewKAKU 0xEADA980,On; Delay 2 EventlistWrite; NewKAKU 0xEADA980,On; UserEventsend 3,5 !Send email foto camera

!***** !Hardwired EventlistWrite; WiredIn 4,Off; WiredOut 1,On !Lantaarn tuin aan mbv schakelaar nodo kast EventlistWrite; WiredIn 4,Off; WiredOut 2,On !Sierverlichting terras aan mbv schakelaar nodo kast EventlistWrite; WiredIn 3,Off; WiredOut 1,Off !Lantaarn tuin uit mbv schakelaar nodo kast EventlistWrite; WiredIn 3,Off; WiredOut 2,Off !Sierverlichting terras uit mbv schakelaar nodo kast EventlistWrite; Kaku C2,On; KakuSend H7,On !Stuur kippenhok open mbv afstand bediening EventlistWrite; Kaku C2,Off; KakuSend H7,Off !Stuur kippenhok dicht mbv afstand bediening EventlistWrite; Kaku C3,On; WiredOut 2,On !Sierverlichting tuin aan EventlistWrite; Kaku C3,Off; WiredOut 2,Off !Sierverlichting tuin uit EventlistWrite; Kaku C1,On; Kakusend A1, On !Verlichting voortuin aan EventlistWrite; Kaku C1,Off; Kakusend A1, Off !Verlichting voortuin uit

!***** !Weer station EventlistWrite; Time 00:00,*; VariableSet 3,0 EventlistWrite; Timer 1; TimerSet 1,300 EventlistWrite; Timer 1; BMP085Read 11 EventlistWrite; Timer 1; VariableSend 1,HTTP EventlistWrite; Timer 1; VariableSend 2,HTTP EventlistWrite; Timer 1; VariableSend 3,HTTP EventlistWrite; Timer 1; VariableSend 4,HTTP EventlistWrite; Timer 1; VariableSend 5,HTTP EventlistWrite; Timer 1; VariableSend 6,HTTP EventlistWrite; Timer 1; VariableSend 7,HTTP EventlistWrite; Timer 1; VariableSend 8,HTTP EventlistWrite; Timer 1; VariableSend 9,HTTP EventlistWrite; Timer 1; VariableSend 10,HTTP EventlistWrite; Timer 1; VariableSend 11,HTTP EventlistWrite; Timer 1; VariableSend 12,HTTP EventlistWrite; Timer 1; VariableSend 13,HTTP EventlistWrite; Timer 1; LCDWrite 1,8,Variable,11 EventlistWrite; Timer 1; LCDWrite 2,8,Variable,12 EventlistWrite; Timer 1; LCDWrite 3,1,Clock,0 EventlistWrite; Timer 1; WiredOut 6,Off

!***** ! Klok gelijk zetten EventlistWrite; Time 00:00, Sun; ClockSync HTTP !Nodo 1 sync met server EventlistWrite; Time 00:01, Sun; ClockSync !Slave nodo's gelijk zetten

!***** ! Zon op events EventlistWrite; ClockDaylight 2; FileExecute 31,ON !Draai script 31

!***** ! Zon onder events EventlistWrite; ClockDaylight 3; FileExecute 33,ON !Draai script 33 EventlistWrite; ClockDaylight 4; FileExecute 30,ON !Draai script 30 EventlistWrite; Timer 4; FileExecute 32,ON !Draai script 32 EventlistWrite; Timer 5; FileExecute 35,On

!***** ! Opslag zon op/zon onder EventlistWrite; ClockDaylight 0; Variableset 13,0 !Schrijf zonop in variable 13 EventlistWrite; ClockDaylight 1; Variableset 13,1 !Schrijf zonop in variable 13 EventlistWrite; ClockDaylight 2; Variableset 13,2 !Schrijf zonop in variable 13 EventlistWrite; ClockDaylight 3; Variableset 13,3 !Schrijf zonop in variable 13 EventlistWrite; ClockDaylight 4; Variableset 13,4 !Schrijf zonop in variable 13

!***** !Timer events EventlistWrite; Alarm 1; FileExecute 34,On EventlistWrite; Alarm 2; KakuSend D3,On !Kweektafel aan EventlistWrite; Alarm 3; KakuSend D3,Off !Kweektafel uit EventlistWrite; Alarm 4; KakuSend H6,Off !Sierverlichting tuin uit EventlistWrite; Alarm 4; WiredOut 2,Off !Sierverlichting tuin uit EventlistWrite; Time, 21:00; KakuSend H6, ON !Sierverlichting tuin aan bij late zonsondergang EventlistWrite; Time, 21:00; WiredOut 2,On !Sierverlichting terras aan bij late zonsondergang

!***** !Waarschuwing temp onder drie graden gezakt EventlistWrite; Timer 2; Timerset 2,1800 !Timer tbv iedere 30 minuten controle op temperatuur EventlistWrite; Timer 2; BreakOnVarmore 1,3 !Stop als de temperatuur boven 3 graden is EventlistWrite; Timer 2; VariableInc 14,1 !Verhoog de variabele als de temperatuur onder 3 graden is EventlistWrite; Variable 14,1; UserEventsend 1,1 !Userevent 1,1 zend email bericht EventlistWrite; Time, 06:00; VariableSet 14,0 !Reset de variabele, iedere dag slechts 2 email sturen EventlistWrite; Time, 12:00; VariableSet 14,0 !Reset de variabele, iedere dag slechts 2 email sturen

!***** !Waarschuwing harde wind > 50 KM/hr EventlistWrite; Timer 3; Timerset 2,1800 !Timer tbv iedere 30 minuten controle op temperatuur EventlistWrite; Timer 3; BreakOnVarless 4,50 !Stop als de temperatuur boven 3 graden is EventlistWrite; Timer 3; VariableInc 15,1 !Verhoog de variabele als de temperatuur onder 3 graden is EventlistWrite; Variable 15,1; UserEventsend 1,2 !Userevent 1,2 Send email bericht EventlistWrite; Time, 06:00; VariableSet 15,0 !Reset de variabele, iedere dag slechts 2 email sturen EventlistWrite; Time, 12:00; VariableSet 15,0 !Reset de variabele, iedere dag slechts 2 email sturen

!***** !New kaku remote list EventlistWrite; NewKAKU 0xFB84780,On; NewKAKUSend 1,On !Staande lamp voor EventlistWrite; NewKAKU 0xFB84780,Off; NewKAKUSend 1,Off EventlistWrite; NewKAKU 0xFB84781,On; NewKAKUSend 2,On !Staande lamp achter EventlistWrite; NewKAKU 0xFB84781,Off; NewKAKUSend 2,Off EventlistWrite; NewKAKU 0xFB84782,On; NewKAKUSend 3,On !TV Kastje EventlistWrite; NewKAKU 0xFB84782,Off; NewKAKUSend 3,Off EventlistWrite; NewKAKU 0x115D02,On; WiredOut 2,On !Sierverliching terras aan met zender aan de muur EventlistWrite; NewKAKU 0x115D02,Off; WiredOut 2,Off !Sierverliching terras uit met zender aan de muur

!***** !Diverse EventlistWrite; UserEvent 99,1; FileExecute 99,ON !Draai script 99

!***** !Rookmelders EventlistWrite; Userevent 81,2; SmokeAlertSend 0,3217431 !Test rookmelders EventlistWrite; Userevent 81,2; FileExecute 81,On EventlistWrite; Userevent 81,2; Timerset 6,15 EventlistWrite; Userevent 81,2; Timerset 7,30 EventlistWrite; SmokeAlert 0,3217431; FileExecute 81,On EventlistWrite; SmokeAlert 0,3217431; Timerset 6,15 EventlistWrite; SmokeAlert 0,3217431; Timerset 7,30 EventlistWrite; Timer 6; FileExecute 81,On EventlistWrite; Timer 7; FileExecute 81,On EventlistWrite; Time 10:00, SUN; Usereventsend 81,3

Stukje logfile; hieruit blijkt de fout niet verder gespecificeerd op variabele niveau.

Unit Message Timestamp 1 Message 16,15: Timeout on busy Nodo. 2015-09-04 20:34:46 15 Message 13,5: Unknown plugin. 2015-09-04 18:49:42 15 Message 13,5: Unknown plugin. 2015-09-04 18:44:40 15 Message 13,5: Unknown plugin. 2015-09-04 18:34:36 15 Message 13,5: Unknown plugin. 2015-09-04 18:29:35 15 Message 13,5: Unknown plugin. 2015-09-04 18:24:34 15 Message 13,5: Unknown plugin. 2015-09-04 18:19:33 15 Message 13,5: Unknown plugin. 2015-09-04 18:14:31 15 Message 13,5: Unknown plugin. 2015-09-04 18:09:30 15 Message 13,5: Unknown plugin. 2015-09-04 18:04:28 1 Message 16,15: Timeout on busy Nodo. 2015-09-04 17:46:29 1 Message 16,14: Timeout on busy Nodo. 2015-09-04 16:45:27 1 Message 3,0: Unable to open. 2015-09-04 16:41:54 1 Message 17,0: Nodo not found. 2015-09-04 16:39:16 1 Message 17,0: Nodo not found. 2015-09-04 16:36:33 1 Message 17,0: Nodo not found. 2015-09-04 16:29:33 1 Message 17,0: Nodo not found. 2015-09-04 16:29:30 1 Message 17,0: Nodo not found. 2015-09-04 16:29:01 1 Message 16,14: Timeout on busy Nodo. 2015-09-04 16:14:04 1 Message 9,0: Communication error. 2015-09-04 16:08:59 1 Message 9,0: Communication error. 2015-09-04 14:35:25 1 Message 18,62: Variable error. 2015-09-04 14:12:02 1 Message 17,0: Nodo not found. 2015-09-04 12:28:14 1 Message 17,0: Nodo not found. 2015-09-04 12:26:44 1 Message 16,14: Timeout on busy Nodo. 2015-09-04 12:25:17 14 Message 18,18: Variable error. 2015-09-04 12:22:05 14 Message 18,18: Variable error. 2015-09-04 12:22:05 14 Message 18,18: Variable error. 2015-09-04 12:17:04 14 Message 18,18: Variable error. 2015-09-04 12:17:04 1 Message 18,62: Variable error. 2015-09-04 12:12:19 14 Message 18,18: Variable error. 2015-09-04 12:12:05 14 Message 18,18: Variable error. 2015-09-04 12:12:05 1 Message 18,62: Variable error. 2015-09-04 12:07:13 14 Message 18,18: Variable error. 2015-09-04 12:07:03 14 Message 18,18: Variable error. 2015-09-04 12:07:03 1 Message 18,62: Variable error. 2015-09-04 12:02:07 14 Message 18,18: Variable error. 2015-09-04 12:02:02 14 Message 18,18: Variable error. 2015-09-04 12:02:02 1 Message 18,62: Variable error. 2015-09-04 11:57:01 1 Message 18,62: Variable error. 2015-09-04 11:55:21 1 Message 18,62: Variable error. 2015-09-04 11:54:02 1 Message 18,62: Variable error. 2015-09-04 11:52:51 1 Message 18,62: Variable error. 2015-09-04 11:52:15 1 Message 17,11: Nodo not found. 2015-09-04 11:52:15

Nodo-Domotica commented 8 years ago

Allereerst zie ik dat je veel regels in je eventlist hebt staan met 'boot 1'. Natuurlijk mag dit, maar dit slokt een behoorlijk aantal regels op. Als je een script aan maakt met de naam 'autoexec', dan wordt de inhoud van de file uitgevoerd na een reboot.

Dan het volgende, vanaf de (beta) 3.8 release worden variabelen pas bruikbaar als ze daadwerkelijk zijn gebruikt. De weerstation plugin is (nog) niet compatibel met de laatste release. Hierop is het wachten op een forumgebruiker omdat deze niet door het Nodo team is gemaakt. Dus even geduld.

Het vullen van de variabelen voordat ze worden gebruikt is een optie. Wordt het weerstation signaal wel goed opgepikt? Als de plugin nl. verder wel goed werkt kan ik anders deze aanpassing ook wel even maken.

koningdde commented 8 years ago

Bedankt voor de tip; deze wist ik nog niet. Nu had ik ook wel een file kunnen aanmaken die gestart werd met BOOT1;Fileexecute xx waarschijnlijk, maar mijn lijst is nog niet vol :)

Ik merk dat deze fout op treedt bij alle variabelen, niet specifiek voor de weer plugin. Nu "weet" het systeem toch ook niet welke variabele waar bij hoort totdat de plugin de eerste keer aangeroepen wordt?

Het weerstation werkt verder prima, op het vullen van de regen waarde (in standaard var-3) na. Deze is al gemeld in een andere issue, maar ik denk dat het te maken heeft met het gebruik van USERVAR en de tussenstap die er gemaakt is. De Alecto plugin op zich werkt prima.

Het probleem waar ik in deze dus tegen aan loop is het daadwerkelijk versturen van de variabele voordat deze voor de eerste keer is ingeschreven. Ik ben er niet zeker van waarom er voor gekozen is de variabele "uit" te laten als deze niet gebruikt wordt, het staat natuurlijk netjes maar als er gevolg problemen van komen kan deze optie wellicht beter terug gedraaid worden.

Nodo-Domotica commented 8 years ago

Ik zie dat je alle waarden in variabelen verzameld en periodiek (op tijd) alle variabelen wilt verzenden. Dat er dan een foutmelding komt voor een variabele die nog niet is gebruikt is eigen logische en ook consequent. Ik het niet een beter idee om een variabelen te versturen zodra een variabele verandert?

eventlistwrite; WildCard All, Variablel; EventSend HTTP

koningdde commented 8 years ago

Deze ga ik proberen, bedankt!

koningdde commented 8 years ago

Deze oplossing werkt deels, er vind geen event plaats als de Alecto waarden gevuld worden, deze worden dan ook niet verstuurd.

Nodo-Domotica commented 8 years ago

Dat kan gefixed worden.

Op wo 16 sep. 2015 18:58 schreef koningdde notifications@github.com:

Deze oplossing werkt deels, er vind geen event plaats als de Alecto waarden gevuld worden, deze worden dan ook niet verstuurd.

— Reply to this email directly or view it on GitHub https://github.com/Nodo-Domotica/Nodo-Core/issues/924#issuecomment-140803508 .