Adding a specific "device" on my dashboard... fails

Hello,

I have a Netatmo weather station (base unit and outdoor module), integrated with SM and authorized thought sharptools.
When i try to add both of my devices on my dashboard, the base unit (marked ticked) is not getting added to the dashboard. Following the same process for the outdoor module, works like a charm.

I Have tried to remove it from sharptools, and re authorise from SM with no luck…

Funny part is that on another dashboard the device/tile shows correctly. If i create a new dashboard and i try to add it again, it fails :frowning:

Any thoughts?

Many thanks;

Thanks for posting and sorry to hear that the device isn’t rendering as expected. Would you mind sending me the Doc ID of the Base Unit that is failing to add properly?

  1. Open your SharpTools.io User Page
  2. Tap the ... next to the location in question
  3. Scroll down and tap the Base Unit to view its details
  4. Flip the ‘Advanced’ toggle in the top-right corner on
  5. Send a PM to support with the details.

Edit: As a temporary workaround, you can copy the working tile from the existing dashboard to your new dashboard. When you are editing the existing dashboard, you can tap the ... in the top-right corner of the tile and choose Copy to copy it to a different dashboard.

My suspicion is the tile that’s working is using a different layout. And the default layout that’s being used for this device isn’t working for some reason (perhaps expecting a value that the device isn’t reporting)

Done! I have shared my Doc ID.
I have also used the temp solution and it worked :slight_smile:

Many thanks for your support. That was quick!

regards,
George

1 Like

Thanks for sharing. Is this using an official SmartThings provided device handler or a community developed device handler? It looks like the weather station base unit is reporting itself as a thermostat (among other things).

Hm… I don’t think it’s a SM official device handler, it’s more like a community based handler, however I have been using this for the past few years with no issues.

I have tried creating a new dashboard and adding the device but failed again.

Your workaround worked, so I am ok for now, but I am worried if for any reason that tile gets deleted, I won’t be able to re-create it again.

Can you share a link to the Device Handler (SmartThings community post)?

It seems really odd that the device handler is reporting itself as a Thermostat even though it doesn’t report any thermostat attributes. That’s what’s causing it not to get added to the dashboard.

Sure here is it [MODIFIED] Netatmo Weather Station - Community Created SmartApps - SmartThings Community

Many thanks for taking a look!

Hi @josh, hope all is good; Did you had a chance to review the device handler? Many thanks;

Thanks for the link. Yes, I took a look at the device handler it appears to be improperly implementing the Thermostat capability. It declares the Thermostat capability, but does not implement the vast majority of the required properties.

In general, our recommendation would be to use an official SmartThings integration if it exists. If I remember correctly, SmartThings does have a Netatmo integration, but I don’t know if it covers the specific device(s) you are using.

Failing that, the recommendation would be to use a community device handler which properly implements the appropriate capabilities.

I took a look through the thread for this particular device handler and it looks like they added the Thermostat capability as a hack/trick to get enable the ability to ask Alexa for the current temperature from the device.

We’ll look at the Thermostat tile to see if we can make some tweaks to make it more resilient against improperly implemented capabilities. In the meantime, you can use the trick from above or you can remove the line capability "Thermostat" from the top of the device handler so it follow the spec.

Oh ok, thank you.
Right… ok, so if i delete “oic.d.thermostat” from the below line, that will work?

metadata {
definition (name: “Netatmo Basestation”, namespace: “cscheiene”, author: “cscheiene”, cstHandler: true, ocfDeviceType: “oic.d.thermostat”) {
capability “Temperature Measurement”

The Official Device handler looks outdated (2014) - Netatmo Joins SmartThings Labs | SmartThings thats why i have used the newer modded version.

EDIT. Now that i am taking another look, it seems that the “Netatmo Basestation” does not have the line capability "Thermostat"on the device handler - only the “outdoor module” do, which works fine with sharptools.
I am now confused :slight_smile:

If the device handler doesn’t have the capability "Thermostat" anymore, that’s a step in the right direction. Try reauthorizing your list of SmartThings devices as it should pull in the newest set of capabilities based on the latest device handler that is being used.

  1. Open your SharpTools.io User Page
  2. Tap Manage Connections
  3. Select SmartThings and follow the authorization prompts

From what I can tell looking at the GitHub repository for this device handler, it looks like both the base station and outdoor module previously did have the Thermostat capability, but they took it out in one of the newer releases.

Hi, i am using the latest device handler, with no capability “Thermostat” option from the top of the device handler.
I have re-authorized SmartThings but i have the same issue :frowning:

see below;

/**
 *  Netatmo Basestation
 *
 *  Copyright 2019 cscheiene
 *
 *  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 *  in compliance with the License. You may obtain a copy of the License at:
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
 *  on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
 *  for the specific language governing permissions and limitations under the License.
 */
metadata {
	definition (name: "Netatmo Basestation", namespace: "cscheiene", author: "cscheiene", cstHandler: true, ocfDeviceType: "oic.d.thermostat") {
		capability "Temperature Measurement"
        capability "Sensor"
        capability "Carbon Dioxide Measurement"
		capability "Relative Humidity Measurement"
		capability "Sound Pressure Level"
		capability "Sound Sensor"		
        capability "Refresh"
        capability "Health Check"

		attribute "pressure", "number"
        attribute "min_temp", "number"
        attribute "max_temp", "number"
        attribute "temp_trend", "string"
        attribute "pressure_trend", "string"
        attribute "lastupdate", "string"
	}

Are we still talking about the same original device you sent over via PM? If not, can you PM me the Doc IDs for the other devices in question?

Good Day, Thanks for following up.
It seems now i am able to add the device/tile on my Dashboard… I havent changed any configuration or edited any device handlers from ST…

What i realised is that one of my Netatmo device “Netatmo Rain” (active on ST) is not showing on sharptools at all. Its been authorized through managed connections on ST, but it doesnt show on y device list.

Device handler is the below;

/**

  • netatmo-rain module Date: 01.02.2019
  • Copyright 2014 Brian Steere
  • Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except
  • in compliance with the License. You may obtain a copy of the License at:
  •  http://www.apache.org/licenses/LICENSE-2.0
    
  • Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
  • on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
  • for the specific language governing permissions and limitations under the License.
  • Based on Brian Steere’s netatmo-rain DTH

*/
metadata {
definition (name: “Netatmo Rain”, namespace: “cscheiene”, author: “Brian Steere,cscheiene”) {
capability “Sensor”
capability “Battery”
capability “Refresh”
capability “Health Check”

    attribute "rain", "number"
    attribute "rainSumHour", "number"
    attribute "rainSumDay", "number"
    attribute "units", "string"
    attribute "lastupdate", "string"
    
    command "poll"
}

simulator {
	// TODO: define status and reply messages here
}

preferences {
    input title: "Settings", description: "To change units and time format, go to the Netatmo Connect App", displayDuringSetup: false, type: "paragraph", element: "paragraph"
    input title: "Information", description: "Your Netatmo station updates the Netatmo servers approximately every 10 minutes. The Netatmo Connect app polls these servers every 5 minutes. If the time of last update is equal to or less than 10 minutes, pressing the refresh button will have no effect", displayDuringSetup: false, type: "paragraph", element: "paragraph"
}

tiles (scale: 2) {
	multiAttributeTile(name:"main", type:"generic", width:6, height:4) {
		tileAttribute("rainUnits", key: "PRIMARY_CONTROL") {
        	attributeState "default",label:'${currentValue}', icon:"st.Weather.weather12", backgroundColor:"#00a0dc"
        }
        tileAttribute ("rainSumHourUnits", key: "SECONDARY_CONTROL") {
			attributeState "default", label:'Last Hour: ${currentValue}'
		}
	} 
	valueTile("rainSumDay", "device.rainSumDayUnits", width: 4, height: 1, inactiveLabel: false) {
		state "default", label:'Total Day: ${currentValue}'
	}
    valueTile("units", "units", width: 2, height: 1, inactiveLabel: false) {
		state "default", label:'Units: ${currentValue}'            
	}
	valueTile("battery", "device.battery", inactiveLabel: false, width: 2, height: 2) {
		state "battery_percent", label:'Battery: ${currentValue}%', backgroundColors:[
            [value: 20, color: "#ff0000"],
            [value: 35, color: "#fd4e3a"],
            [value: 50, color: "#fda63a"],
            [value: 60, color: "#fdeb3a"],
            [value: 75, color: "#d4fd3a"],
            [value: 90, color: "#7cfd3a"],
            [value: 99, color: "#55fd3a"]
        ]
	}        
	valueTile("rain", "device.rain") {
		state "rain",label:'${currentValue}', icon:"st.Weather.weather12", backgroundColor:"#00a0dc"
	}
	
    valueTile("lastupdate", "lastupdate", width: 4, height: 1, inactiveLabel: false) {
        state "default", label:"Last updated: " + '${currentValue}'
    }        
    standardTile("refresh", "device.refresh", width: 2, height: 2, inactiveLabel: false, decoration: "flat") {
		state "default", action:"refresh.refresh", icon:"st.secondary.refresh"
	}        
    main (["main"])
	details(["main", "rainSumDay", "battery", "lastupdate" ,"refresh"])
}

}

// parse events into attributes
def parse(String description) {
log.debug “Parsing ‘${description}’”
}

def poll() {
log.debug “Polling”
parent.poll()
}

def refresh() {
log.debug “Refreshing”
parent.poll()
}

def installed() {
sendEvent(name: “checkInterval”, value: 4 * 60 * 60 + 2 * 60, displayed: false, data: [protocol: “cloud”])
}

def updated() {
sendEvent(name: “checkInterval”, value: 4 * 60 * 60 + 2 * 60, displayed: false, data: [protocol: “cloud”])

Many thanks for your support;