Hilfe für Script Eltalko Windsensor

Hallo,
ich habe mir einen Eltalko Windsensor WS besorgt und Installiert!
Möchte den Windsensor mit Homematic Wired ( HomeMatic Wired RS485 I/O-Modul 12 Eingänge, 14 Ausgänge ) betreiben. Folgendes hab ich bereits erledigt:

-Habe nun den Windsensor auf den Kanal I12 angeschlossen und die andere Ader auf GND angeschlossen.
-Den Kanal I12 hab ich auf Analog gestellt.
-In IPS hab ich nun die Systemvariable Frequenz

Nun aber steh ich vor dem Rätsel ( Script ), wie ich von Frequenz die m/s bekomme bzw. kmh??

Ich habe weder den Sensor noch das die I/O Schnittstelle im Einsatz.

Aber

Der Windsensor WS erzeugt eine von der Drehzahl des Windrades abhängige Impulsfolge.

sollte sich sogar für Dich nicht sonderlich nach Analogeingang anhören.

Du bist echt der Knaller.

LG

such mal bei Amazon nach dem Sensor und schau dir die Bewertungen an, da gibt es einige Infos wie du aus den Impulswerten die Windgeschwindigkeit berechnen kannst.

Viele Grüße
Stephan

Nun das mit den MHz hab ich im Internet erfahren, da dies in Verbindung mit dem IO Modul die bessere Lösung ist.

Es gab auch ein Script für die CCU die das dann umrechnen in m/s.
Nur dies wollte ich das ich dies in IPS errechnen kann.

Formel von mhz auf m/s ( darf ich hier einen Link zum Script Posten ) ?



! Wind von Hz auf m/s umrechnen ;
var objPower= dom.GetObject("Windgeschwindigkeit");
var mhz = dom.GetObject("BidCos-Wired.LEQ0975602:20.FREQUENCY").Value();
var ms2 = (mhz/1000 + 2) /3;
var wert = ms2.ToString(1);
objPower.State(wert);



Könnt ich das oben angeführte Script so umgebauen, daß ich dies in IPS errechnen kann?

Klar, das ist kein Problem. Du musst „nur“ das Skript auf PHP und IPS anpassen.

Bei allen Variablen müsstest du für PHP ein $ hinzufügen, also $mhz statt mhz und das „var“ davor musst du weglassen. Dann musst du noch die Ein- und Ausgabe via dom an GetValue und SetValue aus IPS anpassen. Und je nachdem was du damit vorhast kann man die Umwandlung in den String auch weglassen.

Das Endergebnis könnte dann so aussehen:


$mhz = GetValue(<Variable mit Frequenz>);
$ms2 = ($mhz/1000 + 2) /3; 
SetValue(<Variable mit m/s>, $ms2);  

Vielen Dank.
Werde ich heute Abend noch testen :slight_smile:

Auch könnte ich wenn ich die m/s in eine Variable geschrieben habe, diese dann verwenden um von m/s auf kmh zu kommen?

Klar, das könntest du entweder analog wie oben machen und die Formel zur Umrechnung halt anpassen oder du erweiterst das Skript oben entsprechend und berechnest hinterher noch die km/h und schreibst die in eine andere Variable.

So hab das Script nun umgeänder-Danke!
Nun werden die Hz in m/s umgerechnet.

Jedoch hab ich den Fehler, oder auch nicht, das wenn ich 0 Hz habe ich immer 0,66 m/s habe? ( das ergibt sich ja aus der Formel).

Kann ich dies ändern das, das Script unter 500 Hz eine 0 in die Variable schreibt.
Erst ab 501 Hz das Script umrechnen?

Oder geht es noch einfacher als ich denke?

PHP-NET Vergleichsoperatoren

Ok,

in diesem Fall müsste das Script Starten, bzw. errechnen wenn:

$a > $b Größer Als Gibt TRUE zurück, wenn $a größer als $b ist.

Dann müsst ich sagen wenn FALSE dann eine „0“ in die Variable m/s?
Muss ich im Script dann den Wert $a mit 500 angeben?

wenn wert größer als vergleichswert dann setzte die variable mit errechneten wert sonst schreibe 0 >> if/else

Kannst du mir helfen wie ich dies jetzt ins bestehende Script einfügen kann?

Ich wollte dich anregen, das selbst zu verstehen.

Nach fast 5 Jahren IPS dachte ich, dass du „dein Brot selbst schmieren“ kannst;)
Zumindest bei solchen Aufgaben…

Ich hab schon etwas rumprobiert :slight_smile:

Frequenz ist Variable 51822 ( dieser Wert ist der Ausgangswert ).
Windgeschwindigkeit m/s ist 42832

Dann möchte ich auch noch die M/s in Kmh umrechnen :slight_smile: diese möchte ich in eine andere Variable 35243 Schreiben
Die Formel dafür ist ja 1 m/s = 3,6 Km/h ( ist das so richtig )


<?
$mhz = GetValue(51822 /*[Hardware Homematic\Wired\Windsensor\DIGITAL_INPUT\FREQUENCY]*/); 
$ms2 = ($mhz/1000 + 2) /3; 
$kmh = ($ms2*3,6);

 
SetValue(35243 /*[Hardware Homematic\Wired\Windsensor\DIGITAL_INPUT\Windgeschwinigkeit]*/, $kmh);
SetValue(42832 /*[Hardware Homematic\Wired\Windsensor\DIGITAL_INPUT\Windgeschwinigkeit]*/, $ms2);  
?>



Beim Urechnen bekomm ich die Fehlermeldung:

Parse error: syntax error, unexpected ‚,‘ in /mnt/data/symcon/scripts/21163.ips.php on line 4

Mit dem If/else hab ich noch nicht Probiert…

In PHP Punkte statt Komma, also nicht 3,6 ;).

Danke, das war der Fehler :slight_smile:

Jetzt wird in M/s und in Km/h umgerechnet!

Was jetzt noch Fehlt ist das mit dem If/else.
Muss ich das vor dem Eigentlichen Umrechnen einbringen?
Sprich:

zuerst GetValue, dann if/else und dann umrechnen?

$Wert ist der Wert ab dem das Script Rechnen soll. „if“ ist ja die Bedingung?



§Wert 1000
if($Wert > "1000") 

$mhz = GetValue(51822 /*[Hardware Homematic\Wired\Windsensor\DIGITAL_INPUT\FREQUENCY]*/); 
$ms2 = ($mhz/1000 + 2) /3;
$kmh = ($ms2*3.6);

SetValue(35243 /*[Hardware Homematic\Wired\Windsensor\DIGITAL_INPUT\FREQUENCY\Windgeschwindigkeit km/h]*/, $kmh);  
SetValue(42832 /*[Hardware Homematic\Wired\Windsensor\DIGITAL_INPUT\Windgeschwinigkeit m/s und km/h]*/, $ms2); 


Bekommst du das wirklich nicht hin?

Dein Messwert mit deinem selbst angegebenen Wert

zu vergleichen und danach Aktionen folgen zu lassen?
Alles weitere schrieb ich schon oben.

if (vergleich)
{Aktion}
else
{Aktion}

Hallo,

da ich die gleichen Komponenten habe, aber im Moment noch mit dem Original Eltako Relais arbeite, wäre es sehr nett, wenn Du hier eine Anleitung Posten könntest.

Also Anschluss und Einstellungen in HM wired. Frequenzauswertung und das fertige Script.

Nicht, dass ich zu faul wäre, mir das alles selbst zu suchen, aber dann schimpft meine Frau weniger…

Danke Sebastian

Das Fertige Script ist hier im Thema also, wenn ich das mit dem If/Else noch hinbekomme bin ich zufrieden :slight_smile:

Ich hab eine Ader des Windsensors an GND Angeschlossen und die andere an den Eingang I12 des Wired IO Moduls.
Danach hab ich den Eingang des I12 auf Analog gestellt. ( in der Web Oberfläche der CCU2 ).
Variable in IPS für m/s und km/h angelegt ( Float ).
Lasse das Script bei Änderung der Frequenz starten-weis aber noch nicht ob das nicht zu oft ist, da ist am Wired BUS ganz schön was los. Am Überlegen bin ich ob ich es nicht alle 5 Sekunden Starten soll?