Aio Creator und HmIP-SWO-PR

Haussteuerung mittels mediola

Moderator: Co-Administratoren

Antworten
Benutzeravatar
onkeltommy
Beiträge: 1383
Registriert: 07.05.2016, 08:03
Wohnort: Wien
Hat sich bedankt: 28 Mal
Danksagung erhalten: 26 Mal

Aio Creator und HmIP-SWO-PR

Beitrag von onkeltommy » 17.08.2018, 16:22

Hallo Leute

ich habe seit heute die Wetterstation HmIP-SWO-PR und in der CCU2 eingebunden, fuinktioniert. Allerdings....grml....Der Aio Creator zeigt nach Geräteimport von der CCU2 die Station NICHT an, wird die nicht von Mediola unterstützt ? Wenn nicht, gibt es einen Workaround ?
Ich brauche die Daten auf dem Tablet der Haussteuerung, da logischerweise die Wetterdaten im Haus verarbeitet werden.

Danke für Tips und Grüße

Thomas
lG
Thomas
--------------------------
RaspberryMatic 3.73.9.20240130 @ TinkerS (Produktivsystem) & Historian @ SynologyVM & 2x RB3+ @ Nachwuchs

anderl1969
Beiträge: 167
Registriert: 15.10.2013, 20:15
Hat sich bedankt: 6 Mal
Danksagung erhalten: 5 Mal

Re: Aio Creator und HmIP-SWO-PR

Beitrag von anderl1969 » 17.08.2018, 17:51

Als Workaround könntest Du die Daten/Informationen, die die Wetterstation bereitstellt von der CCU in SysVars kopieren lassen. Diese solltest Du dann problemlos in AIO Creator importieren können.
CCU - RaspberryMatic 3.73.9.20231130 (OVA) / Proxmox VM + HB-RF-ETH + RPI-RF-MOD
LAN GW 1 - CCU2GW (CCU2)
LAN GW 2 - CCU2GW (CCU2)

LAN GW 3 - HmIP-HAP
LAN GW 4 - HmIP-HAP


Benutzeravatar
onkeltommy
Beiträge: 1383
Registriert: 07.05.2016, 08:03
Wohnort: Wien
Hat sich bedankt: 28 Mal
Danksagung erhalten: 26 Mal

Re: Aio Creator und HmIP-SWO-PR

Beitrag von onkeltommy » 17.08.2018, 20:29

Hi
auf diese Möglichkeit bin ich nun auch draufgekommen..... da ich aber in Sachen HM Scripting n Anfänger bin, habe ich mir "das" mal zusammengebastelt, ja, es funktioniert, aber ob das so "richtig" ist, keine Ahnung....nur weils läuft, heissts ja nicht, dass es so korrekt ist :-)

Übers Zeitmodul stosse ich das alle 5min an, Variablen werden befüllt.

Code: Alles auswählen

! Temp
var source = dom.GetObject("HmIP-RF.00**********:1.ACTUAL_TEMPERATURE");
var TempCurr = dom.GetObject("WDS-TMP");
TempCurr.Variable(source.Value());

! RF
var source = dom.GetObject("HmIP-RF.00**********:1.HUMIDITY");
var RFCurr = dom.GetObject("WDS-RF");
RFCurr.Variable(source.Value());

! WindSpeed
var source = dom.GetObject("HmIP-RF.00**********:1.WIND_SPEED");
var WindSCurr = dom.GetObject("WDS-WINDSPEED");
WindSCurr.Variable(source.Value());

! Regen
var source = dom.GetObject("HmIP-RF.00**********:1.RAIN_COUNTER");
var RainSCurr = dom.GetObject("WDS-RAIN");
RainSCurr.Variable(source.Value());


...oder soll man das anders lösen ?
lG
Thomas
--------------------------
RaspberryMatic 3.73.9.20240130 @ TinkerS (Produktivsystem) & Historian @ SynologyVM & 2x RB3+ @ Nachwuchs

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Aio Creator und HmIP-SWO-PR

Beitrag von alchy » 18.08.2018, 12:21

Das Script macht das was du willst, sofern die Namen der Datenpunkte und Systemvariablen richtig sind.

Trotzdem Anmerkungen dazu:

Du benutzt .Variable() um die Systemvariable zu beschreiben - benutze bitte .State()
  • Mit .Variable() werden Zeitstempel der SV nicht aktualisisert, ein Triggern ist also schwer möglich usw.
  • ....
Wieso benutzt du das Zeitmodul als Trigger alle 5min?
Ich habe zwar keine Wetterstation, aber ich gehe davon aus, das die Wetterstation sich zyklisch bei der CCU meldet und die Daten schickt.
genau dieses Melden solltest du als Trigger nehmen (und nicht nur in dem Fall) und nicht das Zeitmodul.
Benutzt Hardwaretrigger, schon zig mal als Tipp geschrieben. Warum?
  • Ist aktueller
    Der Sensor ermittelt intern, und schickt dann z.B. alle 6min seine aktuelle Daten zur CCU - du fragst ihn aber alle 5min ab. Was denkst du was wird ein aktuelleres, besseres Ergebnis bringen?
  • schont Ressourcen
    und das Zeitmodul gehört immer wenn es geht geschont, schon vergessen das EQ-3 nichts geringer als 15min empfiehlt
    Zeitmodul_nichtunter15.jpg
  • ....
Wieso benutzt du nicht die eingebaute Klickibuntifunktion, mit der Datenpunkte mittels eines zusammengeklicktem Programms mit Systemvariablen synchronisiert werden?
  • das im dem Fall nur der Vollständigkeit halber:
    Werte von Datenpunkten kann man eben auch ohne ein Script zu benutzen mit Systemvariablen synchronisieren
Und der schlimmste Fehler am Schluss.
Du bastest dir ein "Workaround" nochmal wofür? (Ich besitze auch Aio Creator nicht)
  • Aio Creator ist *IMHO* eine Visualisierungssoftware von Homematicgeräten,
  • du bezahlst für die Visualsierungssoftware
  • Der Anbieter bietet nicht an die Datenpunkte der Wetterstation direkt zu verwenden?
  • du bezahlst ihm Geld dafür
  • die Wetterstation ist mindestens seit März 2018 auf dem Markt
  • du bezahlst ihm Geld dafür
  • verstehst du jetzt schon, auf was ich raus will oder muss ich deutlicher werden? :roll:
Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
onkeltommy
Beiträge: 1383
Registriert: 07.05.2016, 08:03
Wohnort: Wien
Hat sich bedankt: 28 Mal
Danksagung erhalten: 26 Mal

Re: Aio Creator und HmIP-SWO-PR

Beitrag von onkeltommy » 18.08.2018, 12:40

Hi
jup, ich habe bei Mediola eh schon angeklopft.....

DIese übertragenen Werte in die SVs benutze ich nicht als Trigger, werden nur vom AIO abgefragt und angezeigt. Da ist der Timestamp wurscht.
In Programmen kommt dann (Wenn das Teil endlich mal funktioniert) eh nur die Funktionen der Station zur Anwendung.
Der Workaround war ja die Idee, die benötigten Datenpunkte zyklisch in SVs zu übertragen bis sich Mediola bequemt die IP Station einzubinden.

Ok, das mit den 15min hab ich vergessen....uups.... für die reine TempAnzeige am Tablet ist das wurscht ob 5min oder 15min die Werte angepasst werden.

Wie Triggern über die Station ?
Wenn Temp > -20° bei Aktualisierung dann Script ?
Werte von Datenpunkten kann man eben auch ohne ein Script zu benutzen mit Systemvariablen synchronisieren
muss ich mir anschauen wie , klar, klingt sinnvoller

Du hast gesagt mit .State() - wie müsste das Scriptchen dann ausschauen ?

lG
lG
Thomas
--------------------------
RaspberryMatic 3.73.9.20240130 @ TinkerS (Produktivsystem) & Historian @ SynologyVM & 2x RB3+ @ Nachwuchs

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Aio Creator und HmIP-SWO-PR

Beitrag von alchy » 18.08.2018, 13:13

onkeltommy hat geschrieben:
18.08.2018, 12:40
jup, ich habe bei Mediola eh schon angeklopft.....
Da gehört *IMHO* nicht nur angeklopft.
onkeltommy hat geschrieben:
18.08.2018, 12:40
DIese übertragenen Werte in die SVs benutze ich nicht als Trigger, werden nur vom AIO abgefragt und angezeigt. Da ist der Timestamp wurscht.
Natürlich, wie du meinst, alles wurscht.
Und in 4 Wochen weißt du das auch noch, wenn dir mal einfällt die SV doch zum Triggern zu benutzen usw.
onkeltommy hat geschrieben:
18.08.2018, 12:40
Ok, das mit den 15min hab ich vergessen....uups.... für die reine TempAnzeige am Tablet ist das wurscht ob 5min oder 15min die Werte angepasst werden.
Klar doch: alles wurscht, aber einen 5 min Trigger einstellen. Das passt dann schon alles zusammen. :roll:
Kann man ja froh sein, das die nicht alle 5 Sekunden die Station abfragst und dich hier in noch mehr Threads zum selben Thema beschwerst.

onkeltommy hat geschrieben:
18.08.2018, 12:40
Wie Triggern über die Station ?
Wenn Temp > -20° bei Aktualisierung dann Script ?
Nö, wenn Temperatur > -85 Grad (oder was auch immer der Minimumwert ist) auf Aktualisierung, oder irgrnd einen anderen Datenpunkt der Station. Sonst würde ja bei einer strengen Frostnacht, das Programm nicht getriggert.
onkeltommy hat geschrieben:
18.08.2018, 12:40
Du hast gesagt mit .State() - wie müsste das Scriptchen dann ausschauen ?
Ich denke, das ist wurscht? Was ist denn daran nicht zu verstehen?
statt
TempCurr.Variable(source.Value());
besser:
TempCurr.State(source.Value());

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
onkeltommy
Beiträge: 1383
Registriert: 07.05.2016, 08:03
Wohnort: Wien
Hat sich bedankt: 28 Mal
Danksagung erhalten: 26 Mal

Re: Aio Creator und HmIP-SWO-PR

Beitrag von onkeltommy » 18.08.2018, 16:34

Hi Alchy, danke für Deine Zeit !

Bei Mediola habe ich jetzt als Nachricht #1 nachgefragt, was das soll. Wenn die Antwort nicht sinnvoll ist, dann muss es eh schärfer werden, so es was bringt.

Folgendes, ich möchte nicht die ganzen Probleme nicht mehr auf zig Threads verteilen, ich bleibe in diesem hier, wenns ok ist.
Natürlich, wie du meinst, alles wurscht.
Und in 4 Wochen weißt du das auch noch, wenn dir mal einfällt die SV doch zum Triggern zu benutzen usw.
Ja, das würde ich wissen, aber Du hast schon recht, wenn die Station wieder in der aktiven CCU ist, dann stelle ich das auf State um.
Klar doch: alles wurscht, aber einen 5 min Trigger einstellen. Das passt dann schon alles zusammen. :roll:
Kann man ja froh sein, das die nicht alle 5 Sekunden die Station abfragst und dich hier in noch mehr Threads zum selben Thema beschwerst.
Ich hatte auch Scripte mit 10min Intervall laufen, welche von allen Temperatursensoren, Bad, Pool, Dachboden usw - also nicht von der Wetterstat. MIN/MAX Werte in SVs schreibt. Derzeit hängt vorm Haus noch ein IP Aussenfühler (soll ja dann durch den Wettermast ersetzt werden), aber diesen habe ich jetzt für die MinMax Werte als Hardware-Trigger eingetragen und das Zeitmodul entfernt.

Bild kann ich DIr erst wieder posten, wenn die Station wieder dort ist wo sie sein soll, auf der Reserve-CCU sind alle Zähler auf 0.

Fakt ist, dass (fast) die ganzen Rega Errors seit entfernen der Station und CCU Neustart weg sind.

Nur diese Meldung taucht dann und wann mal auf, 1x oder 4x hintereinander, im Moment suche ich gerade von was das wieder kommt

Code: Alles auswählen

Error: IseESP::ExecForEach: WARNING - invalid expression used in foreach(): system.SetSessionVar("sessionCTV", "true"); [iseESPexec.cpp:494]
Zur Wetterstation, ja die legt 3 systeminterne Programme an

#1 getriggert über Zeitmodul 7h täglich

Code: Alles auswählen

object chn = dom.GetObject('1266');
object oSysVarSunshineCounterToday = dom.GetObject('svHmIPSunshineCounterToday_1266');
object oSysVarSunshineCounterYesterday = dom.GetObject('svHmIPSunshineCounterYesterday_1266');
object oSysVarRainCounterToday = dom.GetObject('svHmIPRainCounterToday_1266');
object oSysVarRainCounterYesterday = dom.GetObject('svHmIPRainCounterYesterday_1266');
if (oSysVarSunshineCounterYesterday && oSysVarSunshineCounterToday) {oSysVarSunshineCounterYesterday.State(oSysVarSunshineCounterToday.Value());}if (oSysVarSunshineCounterToday) {oSysVarSunshineCounterToday.State(0);}if (oSysVarRainCounterYesterday && oSysVarRainCounterToday) {oSysVarRainCounterYesterday.State(oSysVarRainCounterToday.Value());}if (oSysVarRainCounterToday) {oSysVarRainCounterToday.State(0);}
#2 bei Regenmenge >0.0mm bei Aktualisierung

Code: Alles auswählen

object chn = dom.GetObject('1266');
object oOverflow = chn.DPByControl('WEATHER_TRANSMIT.RAIN_COUNTER_OVERFLOW');
object oRainCounter = chn.DPByControl('WEATHER_TRANSMIT.RAIN_COUNTER');
object oSysVarRain = dom.GetObject('svHmIPRainCounter_1266_001858A98C18F0:1');
object oSysVarRainOldVal = dom.GetObject('svHmIPRainCounterOldVal_1266');
object oSysVarCounterToday =  dom.GetObject('svHmIPRainCounterToday_1266');
object oSysVarCounterYesterday =  dom.GetObject('svHmIPRainCounterYesterday_1266');
boolean overFlowFlag = oOverflow.Value();
real devVal = oRainCounter.Value();
real devValMax = oRainCounter.ValueMax();
real oldDevVal = oSysVarRainOldVal.Value();
real diffVal = 0.0;
real sysVarVal = oSysVarRain.Value();
real sysVarTodayVal = oSysVarCounterToday.Value();
real todayTotal = 0.0;
integer tmp_devVal = (devVal.ToString().ToFloat() * 1000).ToInteger();
integer tmp_oldDevVal = (oldDevVal.ToString().ToFloat() * 1000).ToInteger();
if (overFlowFlag == false) {
! Normal conditions
if (tmp_oldDevVal <= tmp_devVal) {
diffVal = devVal - oldDevVal;
}
! Device has rebooted
if (tmp_oldDevVal > tmp_devVal) {
diffVal = devVal;
}
} else {
!overFlow is true
if (tmp_oldDevVal > tmp_devVal) {
! An device overflow has occured
diffVal = (devVal + devValMax) - oldDevVal;
} else {
! Once the overflow flag has been set it will only be false when the device reboots
! Therefore this is the normal condition after an device overflow
diffVal = devVal - oldDevVal;
}
}
oSysVarRainOldVal.State(devVal);
oSysVarRain.State(sysVarVal + diffVal);
todayTotal = sysVarTodayVal + diffVal;
if (todayTotal >= 1440.0) {todayTotal = 0.0;}
oSysVarCounterToday.State(todayTotal);
und #3 bei Helligkeit >0 bei Aktualisierung

Code: Alles auswählen

object chn = dom.GetObject('1266');
object oOverflow = chn.DPByControl('WEATHER_TRANSMIT.SUNSHINEDURATION_OVERFLOW');
object oSunshineCounter = chn.DPByControl('WEATHER_TRANSMIT.SUNSHINEDURATION');
object oSysVarSunshine = dom.GetObject('svHmIPSunshineCounter_1266_001858A98C18F0:1');
object oSysVarSunshineOldVal = dom.GetObject('svHmIPSunshineCounterOldVal_1266');
object oSysVarCounterToday =  dom.GetObject('svHmIPSunshineCounterToday_1266');
object oSysVarCounterYesterday =  dom.GetObject('svHmIPSunshineCounterYesterday_1266');
boolean overFlowFlag = oOverflow.Value();
real devVal = oSunshineCounter.Value();
real devValMax = oSunshineCounter.ValueMax();
real oldDevVal = oSysVarSunshineOldVal.Value();
real diffVal = 0.0;
real sysVarVal = oSysVarSunshine.Value();
real sysVarTodayVal = oSysVarCounterToday.Value();
real todayTotal = 0.0;
integer tmp_devVal = (devVal.ToString().ToFloat() * 1000).ToInteger();
integer tmp_oldDevVal = (oldDevVal.ToString().ToFloat() * 1000).ToInteger();
if (overFlowFlag == false) {
! Normal conditions
if (tmp_oldDevVal <= tmp_devVal) {
diffVal = devVal - oldDevVal;
}
! Device has rebooted
if (tmp_oldDevVal > tmp_devVal) {
diffVal = devVal;
}
} else {
!overFlow is true
if (tmp_oldDevVal > tmp_devVal) {
! An device overflow has occured
diffVal = (devVal + devValMax) - oldDevVal;
} else {
! Once the overflow flag has been set it will only be false when the device reboots
! Therefore this is the normal condition after an device overflow
diffVal = devVal - oldDevVal;
}
}
oSysVarSunshineOldVal.State(devVal);
oSysVarSunshine.State(sysVarVal + diffVal);
todayTotal = sysVarTodayVal + diffVal;
if (todayTotal >= 1440.0) {todayTotal = 0.0;}
oSysVarCounterToday.State(todayTotal);
lG
Thomas
--------------------------
RaspberryMatic 3.73.9.20240130 @ TinkerS (Produktivsystem) & Historian @ SynologyVM & 2x RB3+ @ Nachwuchs

Benutzeravatar
onkeltommy
Beiträge: 1383
Registriert: 07.05.2016, 08:03
Wohnort: Wien
Hat sich bedankt: 28 Mal
Danksagung erhalten: 26 Mal

Re: Aio Creator und HmIP-SWO-PR

Beitrag von onkeltommy » 21.08.2018, 10:17

wegen AIO Anzeigeproblem....hat sich erledigt....Mediola liest eh aus, wenn man "Geräte ohne Raum" ausblenden deaktiviert...weil die Station noch in keinem Raum war.....ok, slber gestrickter Fehler - sry
lG
Thomas
--------------------------
RaspberryMatic 3.73.9.20240130 @ TinkerS (Produktivsystem) & Historian @ SynologyVM & 2x RB3+ @ Nachwuchs

Antworten

Zurück zu „mediola“