eService: Controller 1-Wire to Ethernet, Anbindung an 1-Wire-Hub + Sensoranschluss

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.

Hier hab ich noch zwei Screenshots: (Ist aktuell nru eine Testverkabelung)

Soviel ich weiß, gibt es da auch ein Skript für IPS. Ich sage jetzt mal einfach installieren und schon sollte es funktionieren.

@ UVoigi: Guter Hiweis, stimmt. Ich habe vergessen zu erwähnen, das ich das Install-Skript ausgeführt habe. :slight_smile:

Dann sollten Variablen für die Sensoren automatisch angelegt werden und im 60 Sekunden Takt aktualisiert werden.

Die Variablen heißen z.B. OWD1.exchange.

Grüße,
Christoph

Link zum verwendeten Sensor:
http://www.eservice-online.de/produkte/1-wire-bus/1-wire-temperatursensor/75/temperaturssensor-pro-wasserdicht-kabel

@ DerStandart: Siehst du auf meinem Screenshot zufällig etwas bzw. eine Variable die der Temperatussensor sein könnte?

Ich habe den IP-Symcon dienst gerade einmal neu gestartet, jetzt erhalte ich die Variablen wie von DerStandart geschrieben:

Warum sind es den gleich vier Stück? Ich hätte jetzt mit einer gerechnet.
Das ganze muss ich jettz noch umrechnen, oder?

Die gute Nachricht ist: der 1 Wire Controller funktioniert. Die 4 Werte sind die Ausgaben vom DS2450 aus dem 1 Wire Hub.

Die schlechte Nachricht ist: der Temperatursensor ist nirgends zu sehen. Evtl irgendwo ein Dreher im Kabel?

Gesendet von meinem iPad mit Tapatalk HD

Hallo Daste,

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?

Grüße
Andreas

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! :slight_smile:

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. :slight_smile:

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

z.B. 2162 entsprich 21,62° korrekt?

Moin…

… 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;
}

?>

Gruß,
Peter

Servus Peter,
danke dir für die Info das ist super, funktioniert einwandfrei.

Cool, danke fürs Feedback!!!
Peter

Glaub ich habe mich zufrüh gefreut, er hats nur einmal aktualisiert.

Ich habe alles noch einmal durchgecheckt und keinen Fehler entdeckt, vielleicht siehst du was.

Aktuell ist sieht das ganze so bei mir aus, Skriptinhalt:


 <?

$parent_id = $_IPS['SENDER'];

switch ($parent_id)
{
    case 43129:
                      $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;
}

?>

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.

Ich habe mal zwei Beispiele angehängt.

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.

Das Script tut auch nichts, wenn Du es manuell ausführst. Lies Dir mal die Doku in Bezug auf $_IPS[‚SENDER‘] durch.

Gruß,
Christoph

Manuell ist auch nicht! Das geht nicht!

Okay.

Trotzdem muss sich die Variable aber aktualisieren, wenn ich 2° unterschied habe,
oder bin ich komplett auf dem Holzpfad?