Help with ST_Anything scripts anyone, please?

Hi, I try running the following script to create the multiplexer for ST_Anything and it keeps giving me this error. I’m new at programming using groovy but I’m hoping this is a simple resolution that one of you can tell me. I’ve gone over all my Ucase and Lcase letters and they all match up with the other ST_Anything scripts. Anyways, here’s my multiplexer script log:

groovy> /**
groovy> * ST_Anything_Doors Device Type - ST_Anything_Doors.device.groovy
groovy> *
groovy> * Copyright 2015 Daniel Ogorchock
groovy> *
groovy> * Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except
groovy> * in compliance with the License. You may obtain a copy of the License at:
groovy> *
groovy> * http://www.apache.org/licenses/LICENSE-2.0
groovy> *
groovy> * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
groovy> * on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
groovy> * for the specific language governing permissions and limitations under the License.
groovy> *
groovy> * Change History:
groovy> *
groovy> * Date Who What
groovy> * ---- — ----
groovy> * 2015-01-10 Dan Ogorchock Original Creation
groovy> *
groovy> *
groovy> */
groovy> metadata {
groovy> definition (name: “ST_Anything_Doors”, namespace: “ogiewon”, author: “Daniel Ogorchock”) {
groovy> capability “Configuration"
groovy> capability “Contact Sensor"
groovy> capability “Motion Sensor"
groovy> capability “Temperature Measurement"
groovy> capability “Relative Humidity Measurement"
groovy> capability “Sensor"
groovy> capability “Polling"
groovy> attribute “frontDoor”, “string"
groovy> attribute “slidingRearDoor”, “string"
groovy> attribute “garageOutsideDoor”, “string"
groovy> attribute “garageInsideDoor”, “string"
groovy> attribute “mstrbedWindow1”, “string"
groovy> attribute “mstrbedWindow2”, “string"
groovy> attribute “mstrbathWindow”, “string"
groovy> attribute “diningrmWindow”, “string"
groovy> attribute “bkfstnookWindow”, “string"
groovy>
groovy>
groovy> // command “pushLeft"
groovy> // command “pushRight"
groovy> }
groovy> simulator {
groovy> status “on”: “catchall: 0104 0000 01 01 0040 00 0A21 00 00 0000 0A 00 0A6F6E"
groovy> status “off”: “catchall: 0104 0000 01 01 0040 00 0A21 00 00 0000 0A 00 0A6F6666"
groovy> // reply messages
groovy> reply “raw 0x0 { 00 00 0a 0a 6f 6e }”: “catchall: 0104 0000 01 01 0040 00 0A21 00 00 0000 0A 00 0A6F6E"
groovy> reply “raw 0x0 { 00 00 0a 0a 6f 66 66 }”: “catchall: 0104 0000 01 01 0040 00 0A21 00 00 0000 0A 00 0A6F6666"
groovy> }
groovy>
groovy> // Preferences
groovy> preferences {
groovy> input “temphumidSampleRate”, “number”, title: “Temperature/Humidity Sensor Sampling Interval (seconds)”, description: “Sampling Interval (seconds)”, defaultValue: 30, required: true, displayDuringSetup: true
groovy> }
groovy> // tile definitions
groovy> tiles {
groovy> standardTile(“frontDoor”, “device.frontDoor”, width: 1, height: 1, canChangeIcon: true, canChangeBackground: true) {
groovy> state(“open”, label:’${name}’, icon:“st.contact.contact.open”, backgroundColor:”#ffa81e”)
groovy> state(“closed”, label:’${name}’, icon:“st.contact.contact.closed”, backgroundColor:”#79b821”)
groovy> }
groovy> standardTile(“slidingRearDoor”, “device.slidingRearDoor”, width: 1, height: 1, canChangeIcon: true, canChangeBackground: true) {
groovy> state(“open”, label:’${name}’, icon:“st.contact.contact.open”, backgroundColor:”#ffa81e”)
groovy> state(“closed”, label:’${name}’, icon:“st.contact.contact.closed”, backgroundColor:”#79b821”)
groovy> }
groovy> // standardTile(“garageOutsideDoor”, “device.garageOutsideDoor”, width: 1, height: 1, canChangeIcon: true, canChangeBackground: true) {
groovy> // state “closed”, label: ‘Closed’, action: “pushRight”, icon: “st.doors.garage.garage-closed”, backgroundColor: “#79b821”, nextState: “closed"
groovy> // state “open”, label: ‘Open’, action: “pushRight”, icon: “st.doors.garage.garage-open”, backgroundColor: “#ffa81e”, nextState: “open"
groovy> // state “opening”, label: ‘Opening’, action: “pushRight”, icon: “st.doors.garage.garage-opening”, backgroundColor: “89C2E8”, nextState: “opening"
groovy> // state “closing”, label: ‘Closing’, action: “pushRight”, icon: “st.doors.garage.garage-closing”, backgroundColor: “89C2E8”, nextState: “closing"
groovy> // }
groovy> standardTile(“garageOutsideDoor”, “device.garageOutsideDoor”, width: 1, height: 1, canChangeIcon: true, canChangeBackground: true) {
groovy> state(“open”, label:’${name}’, icon:“st.contact.contact.open”, backgroundColor:”#ffa81e”)
groovy> state(“closed”, label:’${name}’, icon:“st.contact.contact.closed”, backgroundColor:”#79b821”)
groovy> }
groovy> standardTile(“garageInsideDoor”, “device.garageInsideDoor”, width: 1, height: 1, canChangeIcon: true, canChangeBackground: true) {
groovy> state(“open”, label:’${name}’, icon:“st.contact.contact.open”, backgroundColor:”#ffa81e”)
groovy> state(“closed”, label:’${name}’, icon:“st.contact.contact.closed”, backgroundColor:”#79b821”)
groovy> }
groovy> standardTile(“mstrbedWindow1”, “device.mstrbedWindow1”, width: 1, height: 1, canChangeIcon: true, canChangeBackground: true) {
groovy> state(“open”, label:’${name}’, icon:“st.contact.contact.open”, backgroundColor:”#ffa81e”)
groovy> state(“closed”, label:’${name}’, icon:“st.contact.contact.closed”, backgroundColor:”#79b821”)
groovy> }
groovy> standardTile(“mstrbedWindow2”, “device.mstrbedWindow2”, width: 1, height: 1, canChangeIcon: true, canChangeBackground: true) {
groovy> state(“open”, label:’${name}’, icon:“st.contact.contact.open”, backgroundColor:”#ffa81e”)
groovy> state(“closed”, label:’${name}’, icon:“st.contact.contact.closed”, backgroundColor:”#79b821”)
groovy> }
groovy> standardTile(“mstrbathWindow”, “device.mstrbathWindow”, width: 1, height: 1, canChangeIcon: true, canChangeBackground: true) {
groovy> state(“open”, label:’${name}’, icon:“st.contact.contact.open”, backgroundColor:”#ffa81e”)
groovy> state(“closed”, label:’${name}’, icon:“st.contact.contact.closed”, backgroundColor:"#79b821")
groovy> }
groovy> standardTile(“DiningrmWindow”, “device.diningrmWindow”, width: 1, height: 1, canChangeIcon: true, canChangeBackground: true) {
groovy> state(“open”, label:’${name}’, icon:“st.contact.contact.open”, backgroundColor:"#ffa81e")
groovy> state(“closed”, label:’${name}’, icon:“st.contact.contact.closed”, backgroundColor:"#79b821")
groovy> }
groovy> standardTile(“bkfstnookWindow”, “device.bkfstnookWindow”, width: 1, height: 1, canChangeIcon: true, canChangeBackground: true) {
groovy> state(“open”, label:’${name}’, icon:“st.contact.contact.open”, backgroundColor:"#ffa81e")
groovy> state(“closed”, label:’${name}’, icon:“st.contact.contact.closed”, backgroundColor:"#79b821")
groovy> }
groovy> valueTile(“temperature”, “device.temperature”, width: 1, height: 1) {
groovy> state(“temperature”, label:’${currentValue}°’,
groovy> backgroundColors:[
groovy> [value: 31, color: “#153591”],
groovy> [value: 44, color: “#1e9cbb”],
groovy> [value: 59, color: “#90d2a7”],
groovy> [value: 74, color: “#44b621”],
groovy> [value: 84, color: “#f1d801”],
groovy> [value: 95, color: “#d04e00”],
groovy> [value: 96, color: “#bc2323”]
groovy> ]
groovy> )
groovy> }
groovy> valueTile(“humidity”, “device.humidity”, inactiveLabel: false) {
groovy> state “humidity”, label:’${currentValue}% humidity’, unit:"“
groovy> }
groovy> standardTile(“motion”, “device.motion”, width: 1, height: 1) {
groovy> state(“active”, label:‘motion’, icon:“st.motion.motion.active”, backgroundColor:”#53a7c0")
groovy> state(“inactive”, label:‘no motion’, icon:“st.motion.motion.inactive”, backgroundColor:"#ffffff")
groovy> }
groovy> standardTile(“configure”, “device.configure”, inactiveLabel: false, decoration: “flat”) {
groovy> state “configure”, label:’’, action:“configuration.configure”, icon:"st.secondary.configure"
groovy> }
groovy>
groovy> main ([“temperature”,“humidity”,“motion”])
groovy> details([“temperature”,“humidity”,“motion”,“frontDoor”,“slidingRearDoor”,“garageOutsideDoor”,“garageInsideDoor”,“mstrbedWindow1”,“mstrbedWindow2”,“mstrbathWindow”,“diningrmWindow”,“bkfstnookWindow”,“configure”])
groovy> }
groovy> }
groovy> //Map parse(String description) {
groovy> def parse(String description) {
groovy> def msg = zigbee.parse(description)?.text
groovy> log.debug "Parse got ‘${msg}’“
groovy> def parts = msg.split(” ")
groovy> def name = parts.length>0?parts[0].trim():null
groovy> def value = parts.length>1?parts[1].trim():null
groovy> name = value != “ping” ? name : null
groovy> def result = createEvent(name: name, value: value)
groovy> log.debug result
groovy> return result
groovy> }
groovy> //def pushLeft() {
groovy> // log.debug "Executing ‘pushLeft’ = ‘leftDoor on’"
groovy> // zigbee.smartShield(text: “leftDoor on”).format()
groovy> //}
groovy> //def pushRight() {
groovy> // log.debug "Executing ‘pushRight’ = ‘rightDoor on’"
groovy> // zigbee.smartShield(text: “rightDoor on”).format()
groovy> //}
groovy> def poll() {
groovy> //temporarily implement poll() to issue a configure() command to send the polling interval settings to the arduino
groovy> configure()
groovy> }
groovy> def configure() {
groovy> log.debug "Executing ‘configure’"
groovy> log.debug "temphumid " + temphumidSampleRate
groovy> // [
groovy> // zigbee.smartShield(text: "temphumid " + temphumidSampleRate).format()
groovy> // ]
groovy> }

Exception thrown

groovy.lang.MissingMethodException: No signature of method: ST_Anything_Doors_Windows.metadata() is applicable for argument types: (ST_Anything_Doors_Windows$_run_closure1) values: [ST_Anything_Doors_Windows$_run_closure1@1fe8bcd]
Possible solutions: metaClass(groovy.lang.Closure)

at ST_Anything_Doors_Windows.run(ST_Anything_Doors_Windows.groovy:24)

You will get the best help and the quickest answers if you ask in the ST anything thread. :sunglasses:

Not sure how you’re trying to do this… I have released a new version of software this past week for LAN connected devices that eliminates the need for the Mutliplexer SmartApp ( BTW, it is not a script that you run interactively.)

If you’re using an old ThingShield, I plan to release that code tonight.

The new version is much, much simpler to use, especially on the SmartThings side.

Check out the newest code and instructions at

Oh, thank you very much!!! I redid it using your directions and I was able to get it all working. Thanks again, ogiewon!