Nachdem mein Problem mit der Konfiguration des 1-Wire to Ethernet Controllers gelöst wurde, bin ich heute dabei weiterzumachen und habe aktuelle einen HUB angebunden, auch von eService Online + einen Temperatursensor.
Ich bin noch ziemlich neu in dem Gebiet und weis aktuell nicht wie ich über IP-Symcon auf die Daten des Angeschlossenen Hubs bzw. des Temperaturfühlers zugreifen kann.
Meine aktuelle Konfiugration sieht so aus: (alles von sService Online)
Controller 1-Wire to Ethernet
1-Wire Hub RJ45
Temperaturssensor Pro Wasserdicht Kabel (mit RJ12)
Das ganze habe ich wie auf diesem Beispiel verkabelt: E-Service Onlineshop
Der Controller ist so mit dem Hub verbunden und angschlossen.
Den Temperatursensor habe ich jetzt direkt an den 1-Wire Bus-Ausgang 1, Klemme 6 - 9 angschlossen. E-Service Onlineshop
Hier haben, was ich gesehen habe, schon viele mit den 1-Wire-Geräten von eService Online gearbeitet,
vielleicht kann mir jemand helfen.
kann es sein, dass du nicht den richtigen Adapter für den Temperatursensor hast?
Der Sensor hat wohl die Artikelnummer 11106, oder? Wenn ja, dann wäre der passende Adapter die richtige Wahl. Sollte der Adapter mit der Nummer 11118 sein. Was steht auf deinem drauf?
Du hast recht, ich habe den falschen Adapter im Einsatz…
Ich habe den Temperatur-Sensor mit RJ12-Anschluss an einen Adapter mit RJ45-Anschluss angesteckt,
hier ist die PIN-Belegung ganz anders und daher funktioniert das nicht.
Ich bin leider noch nicht dazugekommen das am Samstag hier zu schreiben, aber ich habe mir darauf hin gleich den richtigen Adapter bei euch im Onlineshop geordert.
Dieses „Problem“ können wir in die Kategorie Anwenderfehler einordnen…
Aktueller Status:
Warte auf Lieferung der Bestellung.
Dann sollte alles funktionieren.
Vielen Dank für eure Mithilfe!
Ich berichte dann wieder wenn ich das ganze mit dem richtigen Adapter zusammengebaut habe.
So, durch den sehr schnellen Versand von eService sind heut auch schon die Bestellung angekommen mit dem richtigen Adapter.
Es scheint zu funktionieren, ich habe jetzt wieder eine Variable mehr im Objektbaum:
(Rot markiert, diese war vorher noch nicht da.)
Jetzt müste ich nur noch wissen wie ich den Wert, der ausgelesen wird umrechnen kann?
Bzw. es ist glaub ich ganz einfach bzw. ich meine gelesen zu haben in einer Doku,
das nach den ersten beiden Zahlen einfach ein Komma kommt
… ich habe das so gelöst.
Ich habe unter jeder Variablen die vom Skript angelegt wurde eine weitere angelegt vom Typ Float. Dazu das entsprechende Temperatur Profil.
Dann das Skript erstellen. Ort ist egal. Dann legst Du auf das Skript Ereignisse und zwar von allen Variablen unter den Du die neue Variable gelegt hast, also die, die Du als Float haben willst. Es ist wichtig, das die neue Float Variable unter der OWD-Variable liegt!!!
Das Ereignis machst Du auf ‚Änderung der Variablen‘.
Fertig.
<?
$parent_id = $_IPS['SENDER'];
switch ($parent_id)
{
case "Variable":
$var_id = $_IPS['VARIABLE'];
$owd_temp = GetValue($var_id);
$odw_temp = $owd_temp/100;
$child_id = IPS_GetChildrenIDs($var_id);
SetValue($child_id['0'], $odw_temp);
break;
case "Execute":
echo "Der Skripaufruf darf nur durch ein Variable erfolgen";
break;
}
?>
Sehr komisch, ich habe gerade einen Screenshot erzeugt, darauf passte es wieder.
Wenn ich jetzt aber draufschaue, dann passt es schon wieder nicht mehr, da die aktuellen Werte nicht in die erstellte Float-Variable geschrieben werden.
Es macht mir den Eindruck, das es gerade nur sehr sehr sporadisch funktioniert, gute Frage woran das liegen kann.
Also, die Variablen, deine Neuen, werden nur bei einer Änderung des Originalwertes verändert! Zumindest ist es bei mir so.
Und die Werte werden gerundet… also 19,07 wird 19,1°C. Das bedeutet also, wenn der Wert sich nicht ändert, wird die neue Variable auch nicht verändert. Somit ist das bei Dir korrekt!
Willst Du die neue Variable auch immer aktualisert bekommen, musst den Ereignis-Typ auf Aktualisierung ändern!
Das eigentliche Skript, welches von der Registervariablen getriggert wird schmeisst bei mir öfters mal einen Fehler, das eine original-Variable nicht gefunden wurde. Diese wird dann aber beim nächsten mal wieder geschrieben.
Das stört mich persönlich aber nicht, da ich keine kritischen Werte abfrage.
Okay, das mit dem runden verstehe ich, aber selbst wenn ich das Skript manuell ausführe dann schreibt es die Werte nicht.
Auf dem 1sten Screenshot im Anhang habe ich in der OWD_Variable von 1-Wire 4925 stehen,
hier müsste sich, die zusätzlich angelegt Float-Variable aber aktualisieren, da es ganze 2° Unterschied sind, also nichts was mit der Rundung hinter dem Komma zu tun hat.