Netatmo Wetterstation (incl. CO2 Messung) einbinden
Moderator: Co-Administratoren
Re: Netatmo Wetterstation (incl. CO2 Messung) einbinden
So, jetzt läuft wieder alles. Habe die CuxD Geräte gelöscht, neu angelegt und konfiguriert. Warum dies geschah weiß ich nicht, aber hab ja sonst nichts zu tun [emoji6].
Danke Euch allen für die Hilfe...
Harald
Gesendet von iPad mit Tapatalk Pro
Danke Euch allen für die Hilfe...
Harald
Gesendet von iPad mit Tapatalk Pro
-
- Beiträge: 2
- Registriert: 14.01.2017, 18:58
Re: Netatmo Wetterstation (incl. CO2 Messung) einbinden
Hallo,
ich habe nach einem Werksreset und einer Neuinstallation in SynTime nur ??? stehen.
Habe ich etwas vergessen oder übersehen?
Grüße
michacolonia
ich habe nach einem Werksreset und einer Neuinstallation in SynTime nur ??? stehen.
Habe ich etwas vergessen oder übersehen?
Grüße
michacolonia
Re: Netatmo Wetterstation (incl. CO2 Messung) einbinden
Wenn der Rest passt ist wahrscheinlich ein Tippfehler in der Systenvariablen oder ganz am Ende im Tcl Script.
Gesendet von iPhone mit Tapatalk
Gesendet von iPhone mit Tapatalk
Re: Netatmo Wetterstation (incl. CO2 Messung) einbinden
Hallo zusammen,
ich hab mich an der Anleitung auf Seite 4 dieses Threads orientiert.
Ich besitze ein Innenmodul, ein Aussenmodul, einen Regen- und einen Windmesser.
ich habe alles soweit installiert, bekomme aber im Terminal immer folgendes:
# tclsh /usr/local/addons/netatmo/netatmo.tcl
info: found stored credentials
info: token is still valid
can't read "otemp": no such variable
while executing
"log info "Outside temperature is $otemp""
(file "/usr/local/addons/netatmo/netatmo.tcl" line 174)
Ich denke es liegt an den Device-ID´s - vielleicht kann mir jemand sagen, wie auf der aktuellen Netatmo-Seite an diese Informationen für alle genannten Module dran komme - der Link von Seite 4 funktioniert so jedenfalls nicht mehr:
Hier noch mein Skript - bei dem ich mir allerdings auch nicht sicher bin, ob dies aktuell ist - Regen und Windmesser denke ich sind noch gar nicht drin. Ich weiß auch nicht, wie ich die im CUXD anlegen muss.
Wäre nett, wenn mir jemand den entscheidenden Fingerzeig geben könnte
Franzens
ich hab mich an der Anleitung auf Seite 4 dieses Threads orientiert.
Ich besitze ein Innenmodul, ein Aussenmodul, einen Regen- und einen Windmesser.
ich habe alles soweit installiert, bekomme aber im Terminal immer folgendes:
# tclsh /usr/local/addons/netatmo/netatmo.tcl
info: found stored credentials
info: token is still valid
can't read "otemp": no such variable
while executing
"log info "Outside temperature is $otemp""
(file "/usr/local/addons/netatmo/netatmo.tcl" line 174)
Ich denke es liegt an den Device-ID´s - vielleicht kann mir jemand sagen, wie auf der aktuellen Netatmo-Seite an diese Informationen für alle genannten Module dran komme - der Link von Seite 4 funktioniert so jedenfalls nicht mehr:
Hier noch mein Skript - bei dem ich mir allerdings auch nicht sicher bin, ob dies aktuell ist - Regen und Windmesser denke ich sind noch gar nicht drin. Ich weiß auch nicht, wie ich die im CUXD anlegen muss.
Wäre nett, wenn mir jemand den entscheidenden Fingerzeig geben könnte
Franzens
Code: Alles auswählen
#!/bin/tclsh
load tclrega.so
#---------------------------------------------------------------------------------------------------------------#
# CONFIG #
#---------------------------------------------------------------------------------------------------------------#
# to obtain your own client ID and API key please register a new app here: http://dev.netatmo.com/dev/listapps
set clientId "xxxxxxxxxxb11e8828b5908"
set clientSecret "xxxxxxxxxxxxxxxxxxxxxxxxxxxxwGo2vomQFvX"
# the following are your normal netatmo credentials (the ones you used to setup your netatmo weather station)
set username "xxxxxxxxxxxx@mail.com"
set password "xxxxxxxxx"
# the following are MAC addresses of your indoor station and the outside module
set deviceid "xx:xx:50:03:xx:08"
set moduleid "xx:xx:50:01:xx:3a"
set ::env(LD_LIBRARY_PATH) "/usr/local/addons/cuxd"
set cfgfile "/tmp/netatmo.dat"
set logtag "netatmo.tcl"
set logfacility "local1"
# 0=panic, 1=alert 2=crit 3=err 4=warn 5=notice 6=info 7=debug
set loglevel 6
#---------------------------------------------------------------------------------------------------------------#
#---------------------------------------------------------------------------------------------------------------#
# GLOBAL VARIABLES #
#---------------------------------------------------------------------------------------------------------------#
set accesstoken ""
set refreshtoken ""
set tokenexpires 0
#---------------------------------------------------------------------------------------------------------------#
set loglevels {panic alert crit err warn notice info debug}
proc log {lvl msg} {
global logtag
global logfacility
global loglevel
global loglevels
set lvlnum [lsearch $loglevels $lvl]
if {$lvlnum <= $loglevel} {
if {$lvlnum <= 3} {
catch {exec logger -s -t $logtag -p $logfacility.$lvl $msg}
} else {
puts "$lvl: $msg"
catch {exec logger -t $logtag -p $logfacility.$lvl $msg}
}
}
}
proc refreshToken {rt ci cs} {
log debug "refreshing token"
set url "https://api.netatmo.net/oauth2/token"
set header "Content-Type: application/x-www-form-urlencoded;charset=UTF-8"
set parameter "grant_type=refresh_token&refresh_token=$rt&client_id=$ci&client_secret=$cs"
catch {exec /usr/local/addons/cuxd/curl -k -i -H $header -X POST -d $parameter $url} response
log debug "response was $response"
return $response
}
proc requestToken {ci cs un pw} {
log "debug" "requesting new token"
set url "https://api.netatmo.net/oauth2/token"
set header "Content-Type: application/x-www-form-urlencoded;charset=UTF-8"
set parameter "grant_type=password&client_id=$ci&client_secret=$cs&username=$un&password=$pw"
catch {exec /usr/local/addons/cuxd/curl -k -i -H $header -X POST -d $parameter $url} response
log debug "response was $response"
return $response
}
proc parseOAuthResponse {input} {
log debug "parsing authentication result"
global accesstoken
global refreshtoken
regexp {HTTP/1.1\s(\d*)} $input dummy returncode
regexp {\"access_token\":\"(.*?)\"} $input dummy accesstoken
regexp {\"refresh_token\":\"(.*?)\"} $input dummy refreshtoken
regexp {\"expires_in\":(.*?)\,} $input dummy expiresin
log debug "returncode is $returncode"
log debug "access token is $accesstoken"
log debug "refresh token is $refreshtoken"
log debug "expires in $expiresin"
if {[expr $returncode]!=200} {
log error "Authentication failed with code $returncode and response $input"
exit 1
}
return $expiresin
}
proc saveAccessToken {expin} {
global accesstoken
global refreshtoken
global tokenexpires
global cfgfile
log debug "saving new access token to $cfgfile"
set fileId [open $cfgfile "w"]
set now [clock seconds]
set tokenexpires [expr $now + $expin]
puts $fileId $accesstoken
puts $fileId $refreshtoken
puts $fileId $tokenexpires
close $fileId
}
proc loadAccessToken {} {
global accesstoken
global refreshtoken
global tokenexpires
global cfgfile
log debug "loading stored credentials from $cfgfile"
set fp [open $cfgfile r]
set file_data [read $fp]
close $fp
log debug "file data is: $file_data"
set data [split $file_data "\n"]
set accesstoken [lindex $data 0]
set refreshtoken [lindex $data 1]
set tokenexpires [lindex $data 2]
}
log debug "script has started"
if { [file exists $cfgfile] == 1} {
log info "found stored credentials"
loadAccessToken
set now [clock seconds]
log debug "current time is [clock format $now -format "%Y-%m-%dT%H:%M:%S"], token is valid until [clock format $tokenexpires -format "%Y-%m-%dT%H:%M:%S"]"
if {[expr $now >= $tokenexpires] == 1} {
log notice "token has already expired"
saveAccessToken [parseOAuthResponse [refreshToken $refreshtoken $clientId $clientSecret]]
log notice "oauth token successfully refreshed"
} else {
log info "token is still valid"
}
} else {
log warn "no stored credentials found"
saveAccessToken [parseOAuthResponse [requestToken $clientId $clientSecret $username $password]]
log notice "oauth token successfully initialized"
}
log debug "polling outdoor module..."
set url "https://api.netatmo.net/api/getmeasure?access_token=$accesstoken&device_id=$deviceid&module_id=$moduleid&scale=max&type=Temperature,Humidity&date_end=last"
log debug "querying $url"
catch {exec /usr/local/addons/cuxd/curl -k -# $url} response
log debug "response is: $response"
regexp {\"value\":\[\[(.*?),(.*?)\]} $response dummy otemp ohum
log info "Outside temperature is $otemp"
log info "Outside humidity is $ohum"
log debug "polling main module..."
set url "https://api.netatmo.net/api/getmeasure?access_token=$accesstoken&device_id=$deviceid&scale=max&type=Temperature,Humidity,CO2,Pressure,Noise&date_end=last"
log debug "querying $url"
catch {exec /usr/local/addons/cuxd/curl -k -# $url} response
log debug "response is: $response"
regexp {\"value\":\[\[(.*?),(.*?),(.*?),(.*?),(.*?)\]} $response dummy itemp ihum ico2 ipressure inoise
log info "Inside temperature is $itemp"
log info "Inside humidity is $ihum"
log info "Inside CO2 level $ico2"
log info "Inside pressure is $ipressure"
log info "Inside noise level is $inoise"
#
# set ReGaHss variables
#
set rega_cmd ""
append rega_cmd "var ITemp = dom.GetObject('CUxD.CUX9002001:1.SET_TEMPERATURE');"
append rega_cmd "var IHumi = dom.GetObject('CUxD.CUX9002001:1.SET_HUMIDITY');"
append rega_cmd "var OTemp = dom.GetObject('CUxD.CUX9002002:1.SET_TEMPERATURE');"
append rega_cmd "var OHumi = dom.GetObject('CUxD.CUX9002002:1.SET_HUMIDITY');"
append rega_cmd "var IPress = dom.GetObject('Luftdruck');"
append rega_cmd "var ICO2 = dom.GetObject('CO2');"
append rega_cmd "var INoise = dom.GetObject('Sonometer');"
append rega_cmd "OTemp.State('$otemp');"
append rega_cmd "OHumi.State('$ohum');"
append rega_cmd "ITemp.State('$itemp');"
append rega_cmd "IHumi.State('$ihum');"
append rega_cmd "IPress.State('$ipressure');"
append rega_cmd "ICO2.State('$ico2');"
append rega_cmd "INoise.State('$inoise');"
append rega_cmd "var sdatetime = system.Date('%d.%m.%Y %H:%M:%S');"
append rega_cmd "var netatmosynctime = dom.GetObject('SyncTime');"
append rega_cmd "netatmosynctime.Variable(sdatetime.ToString());"
rega_script $rega_cmd
RasberryMatic auf Synology-VM - Sonos - pocket Control HM - CuL V2 868mHz & Somfy RTS Anbindung - Pushover - hm-pdetect - homebridge - homeassistant - Alexa - Netatmo - Shelly - hue...; 373 Kanäle in 100 Geräten und 209 CUxD-Kanäle in 18 CUxD-Geräten
Re: Netatmo Wetterstation (incl. CO2 Messung) einbinden
Hallo.
Kennst du dieses HowTo hier?
http://homematic-forum.de/forum/viewtop ... 31&t=28188
Wenn nicht schau dir das mal an und wenn du dann immernoch nicht weiterkommst helfe ich gerne weiter.
Grüße
Kennst du dieses HowTo hier?
http://homematic-forum.de/forum/viewtop ... 31&t=28188
Wenn nicht schau dir das mal an und wenn du dann immernoch nicht weiterkommst helfe ich gerne weiter.
Grüße
Re: Netatmo Wetterstation (incl. CO2 Messung) einbinden
Nicht mehr nötig.
Ganz großes Kompliment.
Alles läuft!
Vielen Dank
Franzens
Ganz großes Kompliment.
Alles läuft!
Vielen Dank
Franzens
RasberryMatic auf Synology-VM - Sonos - pocket Control HM - CuL V2 868mHz & Somfy RTS Anbindung - Pushover - hm-pdetect - homebridge - homeassistant - Alexa - Netatmo - Shelly - hue...; 373 Kanäle in 100 Geräten und 209 CUxD-Kanäle in 18 CUxD-Geräten
Re: Netatmo Wetterstation (incl. CO2 Messung) einbinden
Erstmal ein großes Lob für das tolle How-to. Es hat gleich beim ersten Versuch alles funktioniert, obwohl ich bestenfalls ansatzweise verstehe, was eigentlich passiert ...
Da ich zwei zusätzliche Innenmodule besitze, wollte ich diese ebenfalls einbeziehen. Das hat leider gleich beim ersten Modul nicht funktioniert. Ich habe eine zusätzliche Systemvariable "CO2-2" angelegt und ein weiteres CUxD-Gerät analog zum How-To.
Im Code habe ich folgendes eingefügt:
1. "Roter Bereich"
2. Hinter dem "Grünen Bereich"
3. Am Ende (die eingerückten Zeilen)
Nach Ausführung bekam ich folgende Rückmeldung (Nur das Ende, den Anfang habe ich weggelassen):
Ein reboot über die SSH-Verbindung hat immerhin geholfen.
Für einen Tipp wäre ich sehr dankbar!
AB
Da ich zwei zusätzliche Innenmodule besitze, wollte ich diese ebenfalls einbeziehen. Das hat leider gleich beim ersten Modul nicht funktioniert. Ich habe eine zusätzliche Systemvariable "CO2-2" angelegt und ein weiteres CUxD-Gerät analog zum How-To.
Im Code habe ich folgendes eingefügt:
1. "Roter Bereich"
Code: Alles auswählen
set module2id "03:00:00:xx:xx:xx"
Code: Alles auswählen
log debug "polling zusatzmodule2..."
set url "https://api.netatmo.net/api/getmeasure?access_token=$accesstoken&device_id=$deviceid&module_id=$module2id&scale=max&type=Temperature,Humidity,CO2&date_end=last"
log debug "querying $url"
catch {exec /usr/local/addons/cuxd/curl -k -# $url} response
log debug "response is: $response"
regexp {\"value\":\[\[(.*?),(.*?),(.*?)\]} $response dummy ztemp zhum zco2
log info "LogI is $response"
log info "Inside temperature is $ztemp"
log info "Inside humidity is $zhum"
log info "Inside CO2 level $zco2"
Code: Alles auswählen
append rega_cmd "var ZTemp = dom.GetObject('CUxD.CUX9002003:1.SET_TEMPERATURE');"
append rega_cmd "var ZHumi = dom.GetObject('CUxD.CUX9002003:1.SET_HUMIDITY');"
append rega_cmd "var ZCO2-2 = dom.GetObject('CO2-2');"
append rega_cmd "ZTemp.State('$ztemp');"
append rega_cmd "ZHumi.State('$zhum');"
append rega_cmd "ZCO2-2.State('$zco2');"
append rega_cmd "var sdatetime = system.Date('%d.%m.%Y %H:%M:%S');"
append rega_cmd "var netatmosynctime = dom.GetObject('SyncTime');"
append rega_cmd "netatmosynctime.Variable(sdatetime.ToString());"
rega_script $rega_cmd
Danach war die CCU2 über die Web-Oberfläche nicht mehr ansprechbar. Angeblich "beschäftigt" ...info: Inside temperature is 22.7
info: Inside humidity is 34
info: Inside CO2 level 581
Content size mismatch
header:
body:
while executing
"rega_script $rega_cmd
"
(file "/usr/local/addons/netatmo/netatmo.tcl" line 265)
Ein reboot über die SSH-Verbindung hat immerhin geholfen.
Für einen Tipp wäre ich sehr dankbar!
AB
Re: Netatmo Wetterstation (incl. CO2 Messung) einbinden
Hallo,
Poste mal dein ganzes Skript bitte.
Sollte nur eine Kleinigkeit sein.
Grüße
Poste mal dein ganzes Skript bitte.
Sollte nur eine Kleinigkeit sein.
Grüße
Re: Netatmo Wetterstation (incl. CO2 Messung) einbinden
Hallo,
hier das ganze Skript:
Viele Grüße
hier das ganze Skript:
Code: Alles auswählen
#!/bin/tclsh
load tclrega.so
#---------------------------------------------------------------------------------------------------------------#
# CONFIG #
#---------------------------------------------------------------------------------------------------------------#
# to obtain your own client ID and API key please register a new app here: http://dev.netatmo.com/dev/listapps
set clientId "xxx"
set clientSecret "xxx"
# the following are your normal netatmo credentials (the ones you used to setup your netatmo weather station)
set username "xxx"
set password "xxx"
# the following are MAC addresses of your indoor station and the outside module and rain module
set deviceid "xxx"
set moduleid "xxx"
set rainid "xxx"
set module2id "xxx"
set module3id "xxx"
set ::env(LD_LIBRARY_PATH) "/usr/local/addons/cuxd"
set cfgfile "/tmp/netatmo.dat"
set logtag "netatmo.tcl"
set logfacility "local1"
# 0=panic, 1=alert 2=crit 3=err 4=warn 5=notice 6=info 7=debug
set loglevel 6
#---------------------------------------------------------------------------------------------------------------#
#---------------------------------------------------------------------------------------------------------------#
# GLOBAL VARIABLES #
#---------------------------------------------------------------------------------------------------------------#
set accesstoken ""
set refreshtoken ""
set tokenexpires 0
#---------------------------------------------------------------------------------------------------------------#
set loglevels {panic alert crit err warn notice info debug}
proc log {lvl msg} {
global logtag
global logfacility
global loglevel
global loglevels
set lvlnum [lsearch $loglevels $lvl]
if {$lvlnum <= $loglevel} {
if {$lvlnum <= 3} {
catch {exec logger -s -t $logtag -p $logfacility.$lvl $msg}
} else {
puts "$lvl: $msg"
catch {exec logger -t $logtag -p $logfacility.$lvl $msg}
}
}
}
proc refreshToken {rt ci cs} {
log debug "refreshing token"
set url "https://api.netatmo.net/oauth2/token"
set header "Content-Type: application/x-www-form-urlencoded;charset=UTF-8"
set parameter "grant_type=refresh_token&refresh_token=$rt&client_id=$ci&client_secret=$cs"
catch {exec /usr/local/addons/cuxd/curl -k -i -H $header -X POST -d $parameter $url} response
log debug "response was $response"
return $response
}
proc requestToken {ci cs un pw} {
log "debug" "requesting new token"
set url "https://api.netatmo.net/oauth2/token"
set header "Content-Type: application/x-www-form-urlencoded;charset=UTF-8"
set parameter "grant_type=password&client_id=$ci&client_secret=$cs&username=$un&password=$pw"
catch {exec /usr/local/addons/cuxd/curl -k -i -H $header -X POST -d $parameter $url} response
log debug "response was $response"
return $response
}
proc parseOAuthResponse {input} {
log debug "parsing authentication result"
global accesstoken
global refreshtoken
regexp {HTTP/1.1\s(\d*)} $input dummy returncode
regexp {\"access_token\":\"(.*?)\"} $input dummy accesstoken
regexp {\"refresh_token\":\"(.*?)\"} $input dummy refreshtoken
regexp {\"expires_in\":(.*?)\,} $input dummy expiresin
log debug "returncode is $returncode"
log debug "access token is $accesstoken"
log debug "refresh token is $refreshtoken"
log debug "expires in $expiresin"
if {[expr $returncode]!=200} {
log error "Authentication failed with code $returncode and response $input"
exit 1
}
return $expiresin
}
proc saveAccessToken {expin} {
global accesstoken
global refreshtoken
global tokenexpires
global cfgfile
log debug "saving new access token to $cfgfile"
set fileId [open $cfgfile "w"]
set now [clock seconds]
set tokenexpires [expr $now + $expin]
puts $fileId $accesstoken
puts $fileId $refreshtoken
puts $fileId $tokenexpires
close $fileId
}
proc loadAccessToken {} {
global accesstoken
global refreshtoken
global tokenexpires
global cfgfile
log debug "loading stored credentials from $cfgfile"
set fp [open $cfgfile r]
set file_data [read $fp]
close $fp
log debug "file data is: $file_data"
set data [split $file_data "\n"]
set accesstoken [lindex $data 0]
set refreshtoken [lindex $data 1]
set tokenexpires [lindex $data 2]
}
log debug "script has started"
if { [file exists $cfgfile] == 1} {
log info "found stored credentials"
loadAccessToken
set now [clock seconds]
log debug "current time is [clock format $now -format "%Y-%m-%dT%H:%M:%S"], token is valid until [clock format $tokenexpires -format "%Y-%m-%dT%H:%M:%S"]"
if {[expr $now >= $tokenexpires] == 1} {
log notice "token has already expired"
saveAccessToken [parseOAuthResponse [refreshToken $refreshtoken $clientId $clientSecret]]
log notice "oauth token successfully refreshed"
} else {
log info "token is still valid"
}
} else {
log warn "no stored credentials found"
saveAccessToken [parseOAuthResponse [requestToken $clientId $clientSecret $username $password]]
log notice "oauth token successfully initialized"
}
log debug "polling outdoor module..."
set url "https://api.netatmo.net/api/getmeasure?access_token=$accesstoken&device_id=$deviceid&module_id=$moduleid&scale=max&type=Temperature,Humidity&date_end=last"
log debug "querying $url"
catch {exec /usr/local/addons/cuxd/curl -k -# $url} response
log debug "response is: $response"
regexp {\"value\":\[\[(.*?),(.*?)\]} $response dummy otemp ohum
log info "Outside temperature is $otemp"
log info "Outside humidity is $ohum"
log debug "polling main module..."
set url "https://api.netatmo.net/api/getmeasure?access_token=$accesstoken&device_id=$deviceid&scale=max&type=Temperature,Humidity,CO2,Pressure,Noise&date_end=last"
log debug "querying $url"
catch {exec /usr/local/addons/cuxd/curl -k -# $url} response
log debug "response is: $response"
regexp {\"value\":\[\[(.*?),(.*?),(.*?),(.*?),(.*?)\]} $response dummy itemp ihum ico2 ipressure inoise
log info "LogI is $response"
log info "Inside temperature is $itemp"
log info "Inside humidity is $ihum"
log info "Inside CO2 level $ico2"
log info "Inside pressure is $ipressure"
log info "Inside noise level is $inoise"
log debug "polling regensensor module...1d"
set url "https://api.netatmo.net/api/getmeasure?access_token=$accesstoken&device_id=$deviceid&module_id=$rainid&scale=1day&type=sum_rain&date_end=last"
log debug "querying $url"
catch {exec /usr/local/addons/cuxd/curl -k -# $url} response
log debug "response is: $response"
regexp {\"value\":\[\[(.*?)\]} $response dummy rain1d
log info "LogR is $response"
log info "Outside Regen1d is $rain1d"
log debug "polling regensensor module...30min"
set url "https://api.netatmo.net/api/getmeasure?access_token=$accesstoken&device_id=$deviceid&module_id=$rainid&scale=30min&type=Rain,sum_rain&date_end=last"
log debug "querying $url"
catch {exec /usr/local/addons/cuxd/curl -k -# $url} response
log debug "response is: $response"
regexp {\"value\":\[\[(.*?),(.*?)\]} $response dummy rain2 rain30min
log info "LogR is $response"
log info "Outside rain2 is $rain2"
log info "Outside Regen30min is $rain30min"
log debug "polling zusatzmodule2..."
set url "https://api.netatmo.net/api/getmeasure?access_token=$accesstoken&device_id=$deviceid&module_id=$module2id&scale=max&type=Temperature,Humidity,CO2&date_end=last"
log debug "querying $url"
catch {exec /usr/local/addons/cuxd/curl -k -# $url} response
log debug "response is: $response"
regexp {\"value\":\[\[(.*?),(.*?),(.*?)\]} $response dummy ztemp zhum zco2
log info "LogI is $response"
log info "Inside temperature is $ztemp"
log info "Inside humidity is $zhum"
log info "Inside CO2 level $zco2"
#
# set ReGaHss variables
#
set rega_cmd ""
append rega_cmd "var ITemp = dom.GetObject('CUxD.CUX9002001:1.SET_TEMPERATURE');"
append rega_cmd "var IHumi = dom.GetObject('CUxD.CUX9002001:1.SET_HUMIDITY');"
append rega_cmd "var OTemp = dom.GetObject('CUxD.CUX9002002:1.SET_TEMPERATURE');"
append rega_cmd "var OHumi = dom.GetObject('CUxD.CUX9002002:1.SET_HUMIDITY');"
append rega_cmd "var Rain1 = dom.GetObject('Regenmenge_30min');"
append rega_cmd "var Rain2 = dom.GetObject('Regenmenge_1d');"
append rega_cmd "var Rain3 = dom.GetObject('Regen_aktuell');"
append rega_cmd "var IPress = dom.GetObject('Luftdruck');"
append rega_cmd "var ICO2 = dom.GetObject('CO2-1');"
append rega_cmd "var INoise = dom.GetObject('Sonometer');"
append rega_cmd "OTemp.State('$otemp');"
append rega_cmd "OHumi.State('$ohum');"
append rega_cmd "ITemp.State('$itemp');"
append rega_cmd "IHumi.State('$ihum');"
append rega_cmd "IPress.State('$ipressure');"
append rega_cmd "ICO2.State('$ico2');"
append rega_cmd "INoise.State('$inoise');"
append rega_cmd "Rain1.State('$rain30min');"
append rega_cmd "Rain2.State('$rain1d');"
append rega_cmd "Rain3.State('$rain2');"
append rega_cmd "var ZTemp = dom.GetObject('CUxD.CUX9002003:1.SET_TEMPERATURE');"
append rega_cmd "var ZHumi = dom.GetObject('CUxD.CUX9002003:1.SET_HUMIDITY');"
append rega_cmd "var ZCO2-2 = dom.GetObject('CO2-2');"
append rega_cmd "ZTemp.State('$ztemp');"
append rega_cmd "ZHumi.State('$zhum');"
append rega_cmd "ZCO2-2.State('$zco2');"
append rega_cmd "var sdatetime = system.Date('%d.%m.%Y %H:%M:%S');"
append rega_cmd "var netatmosynctime = dom.GetObject('SyncTime');"
append rega_cmd "netatmosynctime.Variable(sdatetime.ToString());"
rega_script $rega_cmd
Re: Netatmo Wetterstation (incl. CO2 Messung) einbinden
Hi,
ok. Nicht so einfach.
Ein offensichtlicher Fehler fällt mir nicht auf. Aber das Script stolpert im letzten Teil über irgendetwas.
Es könnte sein dass das Script deinen Variablennamen ZCO2-2 als Rechenaufgabe interpretiert.
Ist ziemlich ins Blaue geraten aber nenne diese Variable doch mal einfach ZCO2 analog zu ZTemp und ZHumi.
Kommt zweimal in den letzten zeilen vor.
Ich hoffe es bringt etwas. Ansonsten forschen wir weiter.
ok. Nicht so einfach.
Ein offensichtlicher Fehler fällt mir nicht auf. Aber das Script stolpert im letzten Teil über irgendetwas.
Es könnte sein dass das Script deinen Variablennamen ZCO2-2 als Rechenaufgabe interpretiert.
Ist ziemlich ins Blaue geraten aber nenne diese Variable doch mal einfach ZCO2 analog zu ZTemp und ZHumi.
Kommt zweimal in den letzten zeilen vor.
Ich hoffe es bringt etwas. Ansonsten forschen wir weiter.