OC3 Kombisensor Regenmenge
Moderator: Co-Administratoren
- Sammy
- Beiträge: 9172
- Registriert: 09.09.2008, 20:47
- Hat sich bedankt: 15 Mal
- Danksagung erhalten: 174 Mal
Re: OC3 Kombisensor Regenmenge
Entweder bis morgen warten, oder Programm deaktivieren und dann wieder aktivieren.
Links: CCU-Logik, Tipps für Anfänger, WebUI-Doku, Expertenparameter, virtuelle Aktorkanäle
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!
Re: OC3 Kombisensor Regenmenge
Moin!
Ich habe von das Script ebenso eingebunden wie die Variablen.
Funktioniert auch alles soweit, vielen Dank dafür!
Gibt es die Möglichkeit, diese neuen Variablen ebenso auszuwerten wie die Datenpunkte von den Aktoren? Es wäre fein, sowas auch in CUxD-Highcharts angezeigt zu bekommen.
Hier interessiert mich insbesondere die gefilterte Helligkeit. Mit welchem Zusatz im Script kann man das verwirklichen? Ich stelle mir einen Datenpunkt bei jeder Änderung der jeweiligen Variable vor?
Jemand eine Idee?
Danke!
Ich habe von das Script ebenso eingebunden wie die Variablen.
Funktioniert auch alles soweit, vielen Dank dafür!
Gibt es die Möglichkeit, diese neuen Variablen ebenso auszuwerten wie die Datenpunkte von den Aktoren? Es wäre fein, sowas auch in CUxD-Highcharts angezeigt zu bekommen.
Hier interessiert mich insbesondere die gefilterte Helligkeit. Mit welchem Zusatz im Script kann man das verwirklichen? Ich stelle mir einen Datenpunkt bei jeder Änderung der jeweiligen Variable vor?
Jemand eine Idee?
Danke!
Re: OC3 Kombisensor Regenmenge
Moin,
musste das Wetterscript ändern und jetzt geht es nicht mehr.
Geändert habe ich Gross in Kleinschreibung und Lehrzeichen durch Unterstrich ersetzt bei den Systemvariable.
Jetzt ändern sich die Werte nicht mehr.
Hier das Script
Bind jetzt schon über einen Tag am suchen nach den Fehler
Vielleicht sieht einer von Euch was falsch ist.
Danke für Eure Hilfe!
musste das Wetterscript ändern und jetzt geht es nicht mehr.
Geändert habe ich Gross in Kleinschreibung und Lehrzeichen durch Unterstrich ersetzt bei den Systemvariable.
Jetzt ändern sich die Werte nicht mehr.
Hier das Script
Code: Alles auswählen
string wds_name=dom.GetObject("$src$").Name();
object prg=dom.GetObject($this$);
object dp_tmp=dom.GetObject(prg.Rule().RuleCondition(1).CndSingleCondition(0).LeftVal());
object dp_wds_channel=dom.GetObject(dp_tmp.Channel());
object dp_temp_max_today=dom.GetObject('temp_max_heute');
object dp_temp_min_today=dom.GetObject('temp_min_heute');
object dp_hum_max_today=dom.GetObject('luftfeuchte_max_heute');
object dp_hum_min_today=dom.GetObject('luftfeuchte_min_heute');
object dp_wind_max_today=dom.GetObject('wind_max_heute');
object dp_rain_today=dom.GetObject('regen_heute');
object dp_sun_today_temp=dom.GetObject('sonnenminuten_heute');
object dp_sun_today=dom.GetObject('sonnenstunden_heute');
object dp_bright_avg=dom.GetObject('Helligkeit gefiltert');
var pos1=wds_name.Find("TEMPERATURE");
real temp=dp_wds_channel.DPByHssDP("TEMPERATURE").Value();
real wind=dp_wds_channel.DPByHssDP("WIND_SPEED").Value();
real bright=dp_wds_channel.DPByHssDP("BRIGHTNESS").Value();
integer humidity=dp_wds_channel.DPByHssDP("HUMIDITY").Value();
if(pos1!=-1)
{
var diff=dp_wds_channel.DPByHssDP("RAIN_COUNTER").Value()-dp_wds_channel.DPByHssDP("RAIN_COUNTER").LastValue();
if((1.0*diff)<0.0)
{
diff=(1.0*diff)+dp_wds_channel.DPByHssDP("RAIN_COUNTER").ValueMax();
}
dp_rain_today.State(1.0*(dp_rain_today.Value())+diff);
var diff=dp_wds_channel.DPByHssDP("SUNSHINEDURATION").Value()-dp_wds_channel.DPByHssDP("SUNSHINEDURATION").LastValue();
if((1.0*diff)<0.0)
{
diff=(1.0*diff)+dp_wds_channel.DPByHssDP("SUNSHINEDURATION").ValueMax();
}
dp_sun_today_temp.State((60.0*(dp_sun_today_temp.Value())+diff)/60.0);
dp_sun_today.State(dp_sun_today_temp.Value())/60;
if(temp>dp_temp_max_today.Value())
{
dp_temp_max_today.State(temp);
}
if(temp<dp_temp_min_today.Value())
{
dp_temp_min_today.State(temp);
}
if(wind>dp_wind_max_today.Value())
{
dp_wind_max_today.State(wind);
}
dp_bright_avg.State(((7.0*dp_bright_avg.Value())+(1.0*bright))/8);
if(humidity>dp_hum_max_today.Value())
{
dp_hum_max_today.State(humidity);
}
if(humidity<dp_hum_min_today.Value())
{
dp_hum_min_today.State(humidity);
}
}
else
{
var x=dom.GetObject('temp_max_gestern').State(dp_temp_max_today.Value());
x=dom.GetObject('temp_min_gestern').State(dp_temp_min_today.Value());
x=dom.GetObject('luftfeuchte_max_gestern').State(dp_hum_max_today.Value());
x=dom.GetObject('luftfeuchte_min_gestern').State(dp_hum_min_today.Value());
x=dom.GetObject('wind_max gestern').State(dp_wind_max_today.Value());
x=dom.GetObject('regen_gestern').State(dp_rain_today.Value());
x=dom.GetObject('sonnenstunden_gestern').State(dp_sun_today.Value());
dp_temp_max_today.State(temp);
dp_temp_min_today.State(temp);
dp_hum_max_today.State(humidity);
dp_hum_min_today.State(humidity);
dp_wind_max_today.State(wind);
dp_rain_today.State(0);
dp_sun_today_temp.State(0);
}
Vielleicht sieht einer von Euch was falsch ist.
Danke für Eure Hilfe!
Re: OC3 Kombisensor Regenmenge
kann keiner helfen?
also die werte heute max und min ändern sich wenn wert mehr oder weniger ist.
aber die daten von heute werden nicht auf gerstern übertragen.
finden den fehler einfach nicht
also die werte heute max und min ändern sich wenn wert mehr oder weniger ist.
aber die daten von heute werden nicht auf gerstern übertragen.
finden den fehler einfach nicht
-
- Beiträge: 23
- Registriert: 30.07.2015, 20:07
- System: CCU
- Hat sich bedankt: 1 Mal
Re: OC3 Kombisensor Regenmenge
Versuch mal statt dem Unterstrich die Wörter zusammen zuschreiben. Z.b statt regen_heute schreibst du regenheute. Ich weiss zwar nicht warum aber ich glaub einen Versuch ist es wert.fini hat geschrieben:kann keiner helfen?
also die werte heute max und min ändern sich wenn wert mehr oder weniger ist.
aber die daten von heute werden nicht auf gerstern übertragen.
finden den fehler einfach nicht
Gesendet von meinem SM-G935F mit Tapatalk
Re: OC3 Kombisensor Regenmenge
Hi,
bin nun auch ein stolzer Besitzer des OC3 in der 2.Version.
Will nun das Wetterskript nutzen und komme einfach nicht weiter.
Alle SysVar angelegt, Skript kopiert, Programm erstellt und nix .
Habe auf der Fehlersuche die Anleitungen von anli aus diesem Beitrag durchgearbeitet:
Auch hier:
Ich komm einfach nicht weiter.
Ich hoffe ihr könnt mir helfen.
Sobald ich das Skript durch den Parser jage bekomme ich diese Anzeige unter "JSON"
Hier das aktuell verwendete Script.
Die angelegten SysVar.
Die ersten zwei sind die Originalen die der OC3 mitbringt.
Das Programm.
Wo wird den die ID oder der Sensorname/Kanalname eingetragen, oder holt es sich das Script selbst?
Wie Ihr merkt habe ich keine Ahnung von Skripten.
Besten Dank schon mal im Voraus.
Rico
bin nun auch ein stolzer Besitzer des OC3 in der 2.Version.
Will nun das Wetterskript nutzen und komme einfach nicht weiter.
Alle SysVar angelegt, Skript kopiert, Programm erstellt und nix .
Habe auf der Fehlersuche die Anleitungen von anli aus diesem Beitrag durchgearbeitet:
passt bei mir, es kommen die richtigen Werte.Hallo.
Kannst Du Dir bitte mal den erweiterten Script-Parser installieren und dann dort folgendes Skript ausführen:
Code: Alles auswählen
string dp_wds_channel = dom.GetObject("Außensensor:1");
object dp_temp_max_today=dom.GetObject('Heute Temp Max');
object dp_temp_min_today=dom.GetObject('Heute Temp Min');
object dp_hum_max_today=dom.GetObject('Heute Luftfeuchte Max');
object dp_hum_min_today=dom.GetObject('Heute Luftfeuchte Min');
object dp_wind_max_today=dom.GetObject('Heute Wind Max');
object dp_rain_today=dom.GetObject('Heute Regen');
real temp = dp_wds_channel.DPByHssDP("TEMPERATURE").Value();
real wind = dp_wds_channel.DPByHssDP("WIND_SPEED").Value();
real bright = dp_wds_channel.DPByHssDP("BRIGHTNESS").Value();
integer humidity = dp_wds_channel.DPByHssDP("HUMIDITY").Value();
dp_temp_min_today.State(temp);
dp_hum_min_today.State(humidity);
WriteLine("Temp: " # temp.ToString());
WriteLine("Wind: " # wind.ToString());
WriteLine("Bright: " # bright.ToString());
WriteLine("Feuchtigkeit: " # humidity.ToString());
Du müsstest eine Ausgabe (wenn Du auf STDOUT klickst) wie folgt erhalten:
Code: Alles auswählen
Temp: 7.000000
Wind: 17.600000
Bright: 111
Feuchtigkeit: 92
Auch hier:
bekomme ich nach dem eintragen der eigenen ID und dem Kanalnamen die richtigen Werte.Hallo.
Na das ist doch ein Fortschritt
Bennene den ersten Kanal des Außensensors doch bitte noch einmal um auf "aussensensor:1". Dann probiere das ganze noch einmal mit folgendem Skript:
Code: Alles auswählen
string dp_wds_channel = dom.GetObject(5312);
WriteLine("'" # dp_wds_channel.Name() # "'");
WriteLine(dp_wds_channel.DPByHssDP("TEMPERATURE").Value());
string dp_wds_channelx = dom.GetObject("aussensensor:1");
WriteLine(dp_wds_channelx.DPByHssDP("TEMPERATURE").Value());
Das muss dann auch gehen. Wenn das dann geht, sind wir nah am Ziel
Ich komm einfach nicht weiter.
Ich hoffe ihr könnt mir helfen.
Sobald ich das Skript durch den Parser jage bekomme ich diese Anzeige unter "JSON"
und "STDOUT" bleibt leer.{
"prg": "null",
"sessionId": "",
"wds_name": "",
"httpUserAgent": "",
"STDOUT": ""
}
Hier das aktuell verwendete Script.
Code: Alles auswählen
string wds_name = dom.GetObject("$src$").Name();
object prg=dom.GetObject($this$);
object dp_tmp=dom.GetObject(prg.Rule().RuleCondition(1).CndSingleCondition(0).LeftVal());
object dp_wds_channel=dom.GetObject(dp_tmp.Channel());
object dp_temp_max_today=dom.GetObject('Heute Temp Max');
object dp_temp_min_today=dom.GetObject('Heute Temp Min');
object dp_hum_max_today=dom.GetObject('Heute Luftfeuchte Max');
object dp_hum_min_today=dom.GetObject('Heute Luftfeuchte Min');
object dp_wind_max_today=dom.GetObject('Heute Wind Max');
object dp_rain_today=dom.GetObject('Heute Regen');
object dp_bright_avg=dom.GetObject('Helligkeit gefiltert');
var pos1 = wds_name.Find("TEMPERATURE");
real temp = dp_wds_channel.DPByHssDP("TEMPERATURE").Value();
real wind = dp_wds_channel.DPByHssDP("WIND_SPEED").Value();
real bright = dp_wds_channel.DPByHssDP("BRIGHTNESS").Value();
integer humidity = dp_wds_channel.DPByHssDP("HUMIDITY").Value();
if(pos1 != -1)
{
var diff = dp_wds_channel.DPByHssDP("RAIN_COUNTER").Value()-dp_wds_channel.DPByHssDP("RAIN_COUNTER").LastValue();
if ( (1.0*diff) < 0.0 )
{
diff = (1.0*diff) + dp_wds_channel.DPByHssDP("RAIN_COUNTER").ValueMax();
}
dp_rain_today.State(1.0*(dp_rain_today.Value()) + diff);
if(temp > dp_temp_max_today.Value())
{
dp_temp_max_today.State(temp);
}
if(temp < dp_temp_min_today.Value())
{
dp_temp_min_today.State(temp);
}
if(wind > dp_wind_max_today.Value())
{
dp_wind_max_today.State(wind);
}
dp_bright_avg.State(((7.0*dp_bright_avg.Value())+(1.0*bright))/8);
if(humidity > dp_hum_max_today.Value())
{
dp_hum_max_today.State(humidity);
}
if(humidity < dp_hum_min_today.Value())
{
dp_hum_min_today.State(humidity);
}
}
else
{
var x = dom.GetObject('Gestern Temp Max').State(dp_temp_max_today.Value());
x = dom.GetObject('Gestern Temp Min').State(dp_temp_min_today.Value());
x = dom.GetObject('Gestern Luftfeuchte Max').State(dp_hum_max_today.Value());
x = dom.GetObject('Gestern Luftfeuchte Min').State(dp_hum_min_today.Value());
x = dom.GetObject('Gestern Wind Max').State(dp_wind_max_today.Value());
x = dom.GetObject('Gestern Regen').State(dp_rain_today.Value());
dp_temp_max_today.State(temp);
dp_temp_min_today.State(temp);
dp_hum_max_today.State(humidity);
dp_hum_min_today.State(humidity);
dp_wind_max_today.State(wind);
dp_rain_today.State(0);
}
object last_change = dom.GetObject("letzte Aktualisierung");
time ts = dp_temp_max_today.Timestamp();
var vts = last_change.State(ts.Format("%d.%m.%Y %T"));
Das Programm.
Wo wird den die ID oder der Sensorname/Kanalname eingetragen, oder holt es sich das Script selbst?
Wie Ihr merkt habe ich keine Ahnung von Skripten.
Besten Dank schon mal im Voraus.
Rico
-
- Beiträge: 23
- Registriert: 30.07.2015, 20:07
- System: CCU
- Hat sich bedankt: 1 Mal
Re: OC3 Kombisensor Regenmenge
Hallo Rico
Du hast die Sys Variablen nicht dem Wettersensor zugeordnet. Vielleicht liegt es daran. Oder das Script startet mit 0:09 zu spät. Ich würd 0:00 Oder 0:01 verwenden.
MfG Südtschech
Gesendet von meinem SM-G935F mit Tapatalk
Du hast die Sys Variablen nicht dem Wettersensor zugeordnet. Vielleicht liegt es daran. Oder das Script startet mit 0:09 zu spät. Ich würd 0:00 Oder 0:01 verwenden.
MfG Südtschech
Gesendet von meinem SM-G935F mit Tapatalk
-
- Beiträge: 252
- Registriert: 17.12.2014, 18:56
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 3 Mal
Re: OC3 Kombisensor Regenmenge
Bei mir ist "Sonnenstunden Gestern" immer identisch mit "Sonnenminuten Heute".
Weiß jemand woran das liegen könnte?
Weiß jemand woran das liegen könnte?
Code: Alles auswählen
string wds_name=dom.GetObject("$src$").Name();
object prg=dom.GetObject($this$);
object dp_tmp=dom.GetObject(prg.Rule().RuleCondition(1).CndSingleCondition(0).LeftVal());
object dp_wds_channel=dom.GetObject(dp_tmp.Channel());
object dp_temp_max_today=dom.GetObject('Temp Max Heute');
object dp_temp_min_today=dom.GetObject('Temp Min Heute');
object dp_hum_max_today=dom.GetObject('Luftfeuchte Max Heute');
object dp_hum_min_today=dom.GetObject('Luftfeuchte Min Heute');
object dp_wind_max_today=dom.GetObject('Wind Max Heute');
object dp_rain_today=dom.GetObject('Regen Heute');
object dp_sun_today_temp=dom.GetObject('Sonnenminuten Heute');
object dp_sun_today=dom.GetObject('Sonnenstunden Gestern');
object dp_bright_avg=dom.GetObject('Helligkeit gefiltert');
var pos1=wds_name.Find("TEMPERATURE");
real temp=dp_wds_channel.DPByHssDP("TEMPERATURE").Value();
real wind=dp_wds_channel.DPByHssDP("WIND_SPEED").Value();
real bright=dp_wds_channel.DPByHssDP("BRIGHTNESS").Value();
integer humidity=dp_wds_channel.DPByHssDP("HUMIDITY").Value();
if(pos1!=-1)
{
var diff=dp_wds_channel.DPByHssDP("RAIN_COUNTER").Value()-dp_wds_channel.DPByHssDP("RAIN_COUNTER").LastValue();
if((1.0*diff)<0.0)
{
diff=(1.0*diff)+dp_wds_channel.DPByHssDP("RAIN_COUNTER").ValueMax();
}
dp_rain_today.State(1.0*(dp_rain_today.Value())+diff);
var diff=dp_wds_channel.DPByHssDP("SUNSHINEDURATION").Value()-dp_wds_channel.DPByHssDP("SUNSHINEDURATION").LastValue();
if((1.0*diff)<0.0)
{
diff=(1.0*diff)+dp_wds_channel.DPByHssDP("SUNSHINEDURATION").ValueMax();
}
dp_sun_today_temp.State((60.0*(dp_sun_today_temp.Value())+diff)/60.0);
dp_sun_today.State(dp_sun_today_temp.Value())/60;
if(temp>dp_temp_max_today.Value())
{
dp_temp_max_today.State(temp);
}
if(temp<dp_temp_min_today.Value())
{
dp_temp_min_today.State(temp);
}
if(wind>dp_wind_max_today.Value())
{
dp_wind_max_today.State(wind);
}
dp_bright_avg.State(((7.0*dp_bright_avg.Value())+(1.0*bright))/8);
if(humidity>dp_hum_max_today.Value())
{
dp_hum_max_today.State(humidity);
}
if(humidity<dp_hum_min_today.Value())
{
dp_hum_min_today.State(humidity);
}
}
else
{
var x=dom.GetObject('Temp Max Gestern').State(dp_temp_max_today.Value());
x=dom.GetObject('Temp Min Gestern').State(dp_temp_min_today.Value());
x=dom.GetObject('Luftfeuchte Max Gestern').State(dp_hum_max_today.Value());
x=dom.GetObject('Luftfeuchte Min Gestern').State(dp_hum_min_today.Value());
x=dom.GetObject('Wind Max Gestern').State(dp_wind_max_today.Value());
x=dom.GetObject('Regen Gestern').State(dp_rain_today.Value());
x=dom.GetObject('Sonnenstunden Gestern').State(dp_sun_today.Value());
dp_temp_max_today.State(temp);
dp_temp_min_today.State(temp);
dp_hum_max_today.State(humidity);
dp_hum_min_today.State(humidity);
dp_wind_max_today.State(wind);
dp_rain_today.State(0);
dp_sun_today_temp.State(0);
}
Re: OC3 Kombisensor Regenmenge
Hallo zusammen,
die hier verwendete Beschreibung bezieht sich ja auf die "alte" Wetterstation". Hat schon jemand die gleichen Systemvariablen und das Skript auf der neuen IP Wetterstation ausprobiert?
die hier verwendete Beschreibung bezieht sich ja auf die "alte" Wetterstation". Hat schon jemand die gleichen Systemvariablen und das Skript auf der neuen IP Wetterstation ausprobiert?