• Categories
  • Recent
  • Tags
  • Popular
  • Register
  • Login
  • Categories
  • Recent
  • Tags
  • Popular
  • Register
  • Login

MyController 1.0.0.Final version released

Scheduled Pinned Locked Moved Announcements
1.0.0.finalreleasemycontroller
7 Posts 4 Posters 2.0k Views 1 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    jkandasa
    last edited by 25 Sept 2017, 05:41

    Build download location

    RELEASE NOTES AND USER DOCUMENT NEEDS TO BE UPDATED. STAY TUNED!

    1 Reply Last reply Reply Quote 1
    • T Offline
      Tag MOD
      last edited by 1 Oct 2017, 10:54

      👍 great!!! congratulations!! switching to the final release now!!
      Really great work!!
      😃

      1 Reply Last reply Reply Quote 1
      • S Offline
        skywatch
        last edited by 1 Oct 2017, 12:58

        Amazing progress = well done!!!!

        So, version 2 beta, when will we see that then ? 😉

        J 1 Reply Last reply 2 Oct 2017, 06:37 Reply Quote 1
        • J Offline
          jkandasa @skywatch
          last edited by 2 Oct 2017, 06:37

          @skywatch You can see version 2 beta soon 😉

          1 Reply Last reply Reply Quote 1
          • G Offline
            gouds
            last edited by 5 Nov 2017, 22:19

            Hi Guys,
            Good work on the new release. I have updated to the new Build and i am now experiencing issues my timers/scripts not executing. This was based off this topic (https://forum.mycontroller.org/topic/45/timers-and-scripts/15)

            Im now getting the below error:

            2017-11-06 09:05:00,430 ERROR [Quartz_Scheduler_Worker-6] [org.mycontroller.standalone.operation.model.OperationExecuteScript:133] Exception on McScript(engineName=null, mimeType=null, extension=js, name=/opt/mycontroller/conf/resources/scripts/operations/Timer-Garden-Schedule-Front.js, canonicalPath=null, type=OPERATION, size=0, lastModified=0, bindings={})
            javax.script.ScriptException: TypeError: (mcApi.uidTag().getByUid("GardenFront-Maser")).getSensorVariable is not a function in <eval> at line number 14
            	at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:467)
            	at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:451)
            	at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:403)
            	at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:399)
            	at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:150)
            	at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249)
            	at org.mycontroller.standalone.scripts.McScriptEngine.executeScript(McScriptEngine.java:86)
            	at org.mycontroller.standalone.operation.model.OperationExecuteScript.executeScript(OperationExecuteScript.java:130)
            	at org.mycontroller.standalone.operation.model.OperationExecuteScript.execute(OperationExecuteScript.java:112)
            	at org.mycontroller.standalone.timer.jobs.TimerJob.executeTimer(TimerJob.java:58)
            	at org.mycontroller.standalone.timer.jobs.TimerJob.doRun(TimerJob.java:94)
            	at org.knowm.sundial.Job.execute(Job.java:57)
            	at org.quartz.core.JobRunShell.run(JobRunShell.java:178)
            	at org.quartz.core.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:515)
            Caused by: jdk.nashorn.internal.runtime.ECMAException: TypeError: (mcApi.uidTag().getByUid("GardenFront-Maser")).getSensorVariable is not a function
            	at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57)
            	at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:213)
            	at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:185)
            	at jdk.nashorn.internal.runtime.ECMAErrors.typeError(ECMAErrors.java:172)
            	at jdk.nashorn.internal.runtime.Undefined.lookup(Undefined.java:102)
            	at jdk.nashorn.internal.runtime.linker.NashornLinker.getGuardedInvocation(NashornLinker.java:106)
            	at jdk.nashorn.internal.runtime.linker.NashornLinker.getGuardedInvocation(NashornLinker.java:98)
            	at jdk.internal.dynalink.support.CompositeTypeBasedGuardingDynamicLinker.getGuardedInvocation(CompositeTypeBasedGuardingDynamicLinker.java:176)
            	at jdk.internal.dynalink.support.CompositeGuardingDynamicLinker.getGuardedInvocation(CompositeGuardingDynamicLinker.java:124)
            	at jdk.internal.dynalink.support.LinkerServicesImpl.getGuardedInvocation(LinkerServicesImpl.java:154)
            	at jdk.internal.dynalink.DynamicLinker.relink(DynamicLinker.java:253)
            	at jdk.nashorn.internal.scripts.Script$132$\^eval\_.:program(<eval>:14)
            	at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:637)
            	at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:494)
            	at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393)
            	at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:446)
            

            My script is as follows:

            var myImports = new JavaImporter(java.io, java.lang, java.util);
            
            with(myImports) {
              
              var valveStatus = mcApi.variable().get("Timer-Garden-Schedule-Front-Status");
            
              //Check already running?
              if(valveStatus.value !== 'running'){
                //Update as running
                valveStatus.value = "running";
                mcApi.variable().update(valveStatus);
                mcApi.logger().debug("valve-control script triggered...");
                
                var masterValve = mcApi.uidTag().getByUid("GardenFront-Maser").getSensorVariable();
                var valve01 = mcApi.uidTag().getByUid("GardenFront-Driveway-Bottom-Front").getSensorVariable();
                var valve02 = mcApi.uidTag().getByUid("GardenFront-Driveway-Bottom-Back").getSensorVariable();
                var valve03 = mcApi.uidTag().getByUid("GardenFront-Driveway-Top-Front").getSensorVariable();
                var valve04 = mcApi.uidTag().getByUid("GardenFront-Driveway-Top-Back").getSensorVariable();
                var valve05 = mcApi.uidTag().getByUid("GardenFront-FrontHouse").getSensorVariable();
                var valve06 = mcApi.uidTag().getByUid("GardenFront-Side").getSensorVariable();
                var valve07 = mcApi.uidTag().getByUid("GardenFront-Driveway-Trees").getSensorVariable();
                var valve08 = mcApi.uidTag().getByUid("GardenFront-NatureStrip-Trees").getSensorVariable();
            
                  
                var delayTime = 1000 * 60 * 15; //15 minutes
              
                //Turn ON master valve and Valve01
                masterValve.value = "1"; //Update master valve ON state
                mcApi.sensor().sendPayload(masterValve); //send state
                valve01.value = "1"; //Update valve01 ON state
                mcApi.sensor().sendPayload(valve01); //send state
                  
                //Update valve01 is running
                valveStatus.value2 = "valve01";
                mcApi.variable().update(valveStatus);
              
              
                //Wait time
                Thread.sleep(delayTime);
              
                //Turn OFF valve01 and turn ON valve02
                valve01.value = "0"; //Update valve01 OFF state
                mcApi.sensor().sendPayload(valve01); //send state
                valve02.value = "1"; //Update valve02 ON state
                mcApi.sensor().sendPayload(valve02); //send state
                
                //Update valve02 is running
                valveStatus.value2 = "valve02";
                mcApi.variable().update(valveStatus);
                
                //Wait time
                Thread.sleep(delayTime);
              
                //Turn OFF valve02 and turn ON valve03
                valve02.value = "0"; //Update valve02 OFF state
                mcApi.sensor().sendPayload(valve02); //send state
                valve03.value = "1"; //Update valve03 ON state
                mcApi.sensor().sendPayload(valve03); //send state
              
                //Update valve03 is running
                valveStatus.value2 = "valve03";
                mcApi.variable().update(valveStatus);
              
                //Wait time
                Thread.sleep(delayTime);
            
                //Turn OFF valve03 and turn ON valve04
                valve03.value = "0"; //Update valve03 OFF state
                mcApi.sensor().sendPayload(valve03); //send state
                valve04.value = "1"; //Update valve04 ON state
                mcApi.sensor().sendPayload(valve04); //send state
              
                //Update valve04 is running
                valveStatus.value2 = "valve04";
                mcApi.variable().update(valveStatus);
              
                //Wait time
                Thread.sleep(delayTime);
            
            
                //Turn OFF valve04 and turn ON valve05
                valve04.value = "0"; //Update valve04 OFF state
                mcApi.sensor().sendPayload(valve04); //send state
                valve05.value = "1"; //Update valve05 ON state
                mcApi.sensor().sendPayload(valve05); //send state
              
                //Update valve05 is running
                valveStatus.value2 = "valve05";
                mcApi.variable().update(valveStatus);
              
                //Wait time
                Thread.sleep(delayTime);
            
            
                //Turn OFF valve05 and turn ON valve06
                valve05.value = "0"; //Update valve05 OFF state
                mcApi.sensor().sendPayload(valve05); //send state
                valve06.value = "1"; //Update valve06 ON state
                mcApi.sensor().sendPayload(valve06); //send state
              
                //Update valve06 is running
                valveStatus.value2 = "valve06";
                mcApi.variable().update(valveStatus);
              
                //Wait time
                Thread.sleep(delayTime);
            
            
                //Turn OFF valve06 and turn ON valve07
                valve06.value = "0"; //Update valve06 OFF state
                mcApi.sensor().sendPayload(valve06); //send state
                valve07.value = "1"; //Update valve07 ON state
                mcApi.sensor().sendPayload(valve07); //send state
              
                //Update valve07 is running
                valveStatus.value2 = "valve07";
                mcApi.variable().update(valveStatus);
              
                //Wait time
                Thread.sleep(delayTime);
            
            
                //Turn OFF valve07 and turn ON valve08
                valve07.value = "0"; //Update valve07 OFF state
                mcApi.sensor().sendPayload(valve07); //send state
                valve08.value = "1"; //Update valve08 ON state
                mcApi.sensor().sendPayload(valve08); //send state
              
                //Update valve08 is running
                valveStatus.value2 = "valve08";
                mcApi.variable().update(valveStatus);
              
                //Wait time
                Thread.sleep(delayTime);
            
                //Turn OFF valve08 and turn OFF master valve
                valve08.value = "0"; //Update valve08 OFF state
                mcApi.sensor().sendPayload(valve08); //send state
                masterValve.value = "0"; //Update master valve OFF state
                mcApi.sensor().sendPayload(masterValve); //send state
                
                //Update not running
                valveStatus.value = "stopped";
                valveStatus.value2 = "-";
                mcApi.variable().update(valveStatus);
                mcApi.logger().debug("valve-control script completted...");
              }else{
                mcApi.logger().warn("valve-control script is already running...");
              }
            }
            

            Any pointers on getting this to function again? (This has been working ok for the past year or so with no problems)

            All the best and thank in advance.

            Gouds

            J 1 Reply Last reply 5 Nov 2017, 23:20 Reply Quote 0
            • J Offline
              jkandasa @gouds
              last edited by 5 Nov 2017, 23:20

              @gouds The function getSensorVariable() is deprecated and removed.

              mcApi.uidTag().getByUid("GardenFront-Maser").getSensorVariable();
              

              You have to change this function as getResource().

              Your script should be looking as follows,

              var myImports = new JavaImporter(java.io, java.lang, java.util);
              
              with(myImports) {
                
                var valveStatus = mcApi.variable().get("Timer-Garden-Schedule-Front-Status");
              
                //Check already running?
                if(valveStatus.value !== 'running'){
                  //Update as running
                  valveStatus.value = "running";
                  mcApi.variable().update(valveStatus);
                  mcApi.logger().debug("valve-control script triggered...");
                  
                  var masterValve = mcApi.uidTag().getByUid("GardenFront-Maser").getResource();
                  var valve01 = mcApi.uidTag().getByUid("GardenFront-Driveway-Bottom-Front").getResource();
                  var valve02 = mcApi.uidTag().getByUid("GardenFront-Driveway-Bottom-Back").getResource();
                  var valve03 = mcApi.uidTag().getByUid("GardenFront-Driveway-Top-Front").getResource();
                  var valve04 = mcApi.uidTag().getByUid("GardenFront-Driveway-Top-Back").getResource();
                  var valve05 = mcApi.uidTag().getByUid("GardenFront-FrontHouse").getResource();
                  var valve06 = mcApi.uidTag().getByUid("GardenFront-Side").getResource();
                  var valve07 = mcApi.uidTag().getByUid("GardenFront-Driveway-Trees").getResource();
                  var valve08 = mcApi.uidTag().getByUid("GardenFront-NatureStrip-Trees").getResource();
              
                    
                  var delayTime = 1000 * 60 * 15; //15 minutes
                
                  //Turn ON master valve and Valve01
                  masterValve.value = "1"; //Update master valve ON state
                  mcApi.sensor().sendPayload(masterValve); //send state
                  valve01.value = "1"; //Update valve01 ON state
                  mcApi.sensor().sendPayload(valve01); //send state
                    
                  //Update valve01 is running
                  valveStatus.value2 = "valve01";
                  mcApi.variable().update(valveStatus);
                
                
                  //Wait time
                  Thread.sleep(delayTime);
                
                  //Turn OFF valve01 and turn ON valve02
                  valve01.value = "0"; //Update valve01 OFF state
                  mcApi.sensor().sendPayload(valve01); //send state
                  valve02.value = "1"; //Update valve02 ON state
                  mcApi.sensor().sendPayload(valve02); //send state
                  
                  //Update valve02 is running
                  valveStatus.value2 = "valve02";
                  mcApi.variable().update(valveStatus);
                  
                  //Wait time
                  Thread.sleep(delayTime);
                
                  //Turn OFF valve02 and turn ON valve03
                  valve02.value = "0"; //Update valve02 OFF state
                  mcApi.sensor().sendPayload(valve02); //send state
                  valve03.value = "1"; //Update valve03 ON state
                  mcApi.sensor().sendPayload(valve03); //send state
                
                  //Update valve03 is running
                  valveStatus.value2 = "valve03";
                  mcApi.variable().update(valveStatus);
                
                  //Wait time
                  Thread.sleep(delayTime);
              
                  //Turn OFF valve03 and turn ON valve04
                  valve03.value = "0"; //Update valve03 OFF state
                  mcApi.sensor().sendPayload(valve03); //send state
                  valve04.value = "1"; //Update valve04 ON state
                  mcApi.sensor().sendPayload(valve04); //send state
                
                  //Update valve04 is running
                  valveStatus.value2 = "valve04";
                  mcApi.variable().update(valveStatus);
                
                  //Wait time
                  Thread.sleep(delayTime);
              
              
                  //Turn OFF valve04 and turn ON valve05
                  valve04.value = "0"; //Update valve04 OFF state
                  mcApi.sensor().sendPayload(valve04); //send state
                  valve05.value = "1"; //Update valve05 ON state
                  mcApi.sensor().sendPayload(valve05); //send state
                
                  //Update valve05 is running
                  valveStatus.value2 = "valve05";
                  mcApi.variable().update(valveStatus);
                
                  //Wait time
                  Thread.sleep(delayTime);
              
              
                  //Turn OFF valve05 and turn ON valve06
                  valve05.value = "0"; //Update valve05 OFF state
                  mcApi.sensor().sendPayload(valve05); //send state
                  valve06.value = "1"; //Update valve06 ON state
                  mcApi.sensor().sendPayload(valve06); //send state
                
                  //Update valve06 is running
                  valveStatus.value2 = "valve06";
                  mcApi.variable().update(valveStatus);
                
                  //Wait time
                  Thread.sleep(delayTime);
              
              
                  //Turn OFF valve06 and turn ON valve07
                  valve06.value = "0"; //Update valve06 OFF state
                  mcApi.sensor().sendPayload(valve06); //send state
                  valve07.value = "1"; //Update valve07 ON state
                  mcApi.sensor().sendPayload(valve07); //send state
                
                  //Update valve07 is running
                  valveStatus.value2 = "valve07";
                  mcApi.variable().update(valveStatus);
                
                  //Wait time
                  Thread.sleep(delayTime);
              
              
                  //Turn OFF valve07 and turn ON valve08
                  valve07.value = "0"; //Update valve07 OFF state
                  mcApi.sensor().sendPayload(valve07); //send state
                  valve08.value = "1"; //Update valve08 ON state
                  mcApi.sensor().sendPayload(valve08); //send state
                
                  //Update valve08 is running
                  valveStatus.value2 = "valve08";
                  mcApi.variable().update(valveStatus);
                
                  //Wait time
                  Thread.sleep(delayTime);
              
                  //Turn OFF valve08 and turn OFF master valve
                  valve08.value = "0"; //Update valve08 OFF state
                  mcApi.sensor().sendPayload(valve08); //send state
                  masterValve.value = "0"; //Update master valve OFF state
                  mcApi.sensor().sendPayload(masterValve); //send state
                  
                  //Update not running
                  valveStatus.value = "stopped";
                  valveStatus.value2 = "-";
                  mcApi.variable().update(valveStatus);
                  mcApi.logger().debug("valve-control script completted...");
                }else{
                  mcApi.logger().warn("valve-control script is already running...");
                }
              }
              
              G 1 Reply Last reply 6 Nov 2017, 00:27 Reply Quote 0
              • G Offline
                gouds @jkandasa
                last edited by 6 Nov 2017, 00:27

                @jkandasa Thanks for your prompt reply. This seems to have corrected the issue that i was experiencing.

                Thanks once again.

                Cheers

                Gouds

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                1

                Online

                620

                Users

                531

                Topics

                3.4k

                Posts
                Copyright © 2015-2025 MyController.org | Contributors | Localization