IP Symcon in ein µ-Controller system integrieren?

Hallo zusammen.

Ich möchte mich ersteinmal kurz vorstellen:

Ich bin Elektrotechniker und „bastele“ in meiner Freizeit sehr viel mit µ-Controllern. Überwiegend verwende ich in meinen Projekten Atmel RISC Prozessoren z.B. ATMEGA 8 oder den ATMEGA 128 . Mit der Zeit sind so natürlich auch einige Projekte entstanden wie z.B.: Zentrale Licht (LED) Steuerung auf Basis des RS 485 bus mit kleinen 2 zeiligen Displays und 2 Tastern in jeden Raum.
Allerdings ist diese Art von Aufbau nicht gerade einfach zu ändern,da bei jeder „Programm“-Änderung der jeweilige Sensor,Aktor demontiert werden muss, um diesen am PC zu programmieren.

Also entschloss ich mich letztes Jahr, mir Symcon zuzulegen, um die Inteligenz auf den Rechner auszulagern. Leider kam ich mit meiner Denkweise
zu keinem Erfolg, da ich leider 0 PHP Kentnisse hatte bzw. habe.
Also verschwand Symcon in den Tiefen meiner Festplatte:confused:

Beim „Rechner aufräumen“ stieß ich dann wieder auf Symcon. Also installiert-und wieder ein dummes Gesicht!

Nach mehreren Foren Besuchen wurde ich noch hilfloser, da die meisten Beispiele schon sehr komplex sind bzw. für mich nicht nachvollziehbar waren.
Selbst die Einrichtung der Instances verstehe ich nicht . Comport ok - nachvollziehbar , Variablen ok . Aber muß ich die Scripte jetzt den Instancen zuweisen bzw. werden die Variablen durch die Scripte getriggert??

Es wäre schön wenn mir jmd. eine einfache Grundkonfiguration geben konnte .
z.B: Comport wird überwacht und wartet auf eine String, Aktion :Ausgabe im Hyperterminal oder ein Piep.

Ich möchte halt nur einmal den Grundsatz verstehen wie Symcon konfiguriert wird. Dass ich mir alles weitere selber erarbeiten muss (möchte) - ist mir auch klar.

Deshalb eine Bitte an die Profis: Nur ein paar kleine Tips für einen Symcon Noob

Gruß Michél

Hallo Michél!
Naja, grundsätzlich must du bischen in der Hilfe schauen, ein Beispiel mit dem Comport, rot ist mein Kommentar:
<? „Ein Script fängt so an“
/*


IP-SYMCON Event Scripting


File : Funksteckdose_Kanal1_Geraet1.ips.php
Trigger : Funksteckdose_Ka_1_Geraet_1
Interval :
*/
//Kanal 1 Geraet 1 ein oder aus
$Funksteckdose_Ka_1_Geraet_1(IPS-Variable vom Typ Boolean)= GetValueBoolean"IPS_PHP-Befehl"((„Funksteckdose_Ka_1_Geraet_1“);
if ($Funksteckdose_Ka_1_Geraet_1==true) „bisgen Schleife, kennst du sicher“
{
ComPort_SendText"IPS_PHP-Befehl"(14770(die von dir eingerichtete Com-Port-Instance, bzw dessen Nummer),chr(0).chr(35).chr(145).chr(17).chr(2).chr(158).chr(0));„und die Übergabeparameter“
}

if ($Funksteckdose_Ka_1_Geraet_1==False) „bisgen Schleife, kennst du sicher“

{
ComPort_SendText"IPS_PHP-Befehl"((14770(die von dir eingerichtete Com-Port-Instance, bzw dessen Nummer),chr(0).chr(35).chr(145).chr(17).chr(1).chr(157).chr(0));„und die Übergabeparameter“

}
?> „Ein Script endet so“
Ich denke du programmierst RS485-Protokolle, in ASM oder in eine anderen Sprache, dann checkst du das auch. :slight_smile:

Hallo Helmut.

Ersteinmal besten Dank für deine schnelle Antwort.

Mein Problem ist nicht unbedingt das Script - ich programmiere zwar mit Basic und Asm aber bei „meinen“ Programmen definiere ich die Variablen,Konstanten,Frequenz, Ports im Quelltext.
Gut dafür hat Symcon ein Seperates Fenster.
Im Symcon gibt es Instancen – ich sage mal Definitionen
Nur wie müssen die Instancen verbunden werden oder gibt es eine Möglichkeit das ebenfalls über die Scripte zu erledigen.
Die Scripte sind zwar von der Schreibweise anders- aber dass bekomme ich in den Griff.

Mein Problem sind eigentlich die Instances und deren ID´s! Könntest du mir das Risc maßig erklären??:rolleyes:

… IDs sind „Platzhalter“ z.B. 12345 für Geräte, Variablen, Skripte usw.
IP-Symcon vergibt sie automatisch beim Anlegen und können nicht geändert werden.
Beispiel: „67891“ steht für einen bestimmten ComPort.

mit: COMPort_SendText(67891, „Hallo Welt“); wird - richtig - „Hallo Welt“ ausgegeben.

MST

Jupp, geht hier auch. Die Variablen die du dir extra anlegen kannst haben einen anderen Hintergrund.

Wenn du deinen Atmel programmierst legst du dir alle Variablen, bzw zweicherzugriffe, selbst zurecht. Das kannst du in PHP auch. Eine Variable zeichnet sich dadurch aus, dass sie mit einem $ beginnt. Dann weiss PHP, dass „$Value“ eine Variable ist. Und mit „$Value = 12“ automatisch noch den Typ und den Wert, den sie annehmen soll.

Was sollen nun also die IPS-Variablen?
Die PHP-Variablen sind ganz wie in deinem Atmel nur innerhalb deines Scriptes verfügbar. Nehmen wir an, einer deiner µCs soll einen Wert von einem anderen bekommen. Du verwendest RS485 und eine Routine zum senden und eine zum lesen. Wir IPSler schreiben den Wert nur in eine globale IPS Variable und haben von überall darauf zugriff. Andere Scripte, Webinterface, externe Programme. Thats it.

Das ist so eine Sache. Wie kommt man heil über die Straße. Auf der Landstraße reicht es nach links und nach rechts zu schauen, in der Stadt solltest du nach einer Fußgängerampel ausschau halten und bei einer Autobahn tunlichst eine Brücke suchen.

Was ich damit sagen will ist, es gibt kein Patentrezept. Du musst dir anlesen wofür die einzelnen Module gut sind und sie dann dementsprechend einsetzen.

Ein Beispiel mit dem FS20 System.
Eine TX Instanz für FS20 möchte gern etwas senden. Senden kann sie aber nur über eine an den PC angeschlossene FS20 Hardware. Das wäre typischerweise die FHZ1300PC. Du verbindest also die TX Instanz mit der FHZ Instanz, die die eigentliche Hardware symbolisiert, in Senderichtung. Ansich logisch, oder?

Warum so kompliziert?
Ist es ansich garnicht. Es ist das logische Abbild deines Aufbaus zuhause. An die FHZ Instanz sind alle deine TX Instanzen verbunden. Jede TX Instanz hat eine ID und symbolisiert einen Hardware-FS20 Empfänger. Sendest du nun einen Einschaltbefehl an die ID 1234, so wird deine FHZ-Instanz deiner FHZ, also der USB-Sendeeinheit, den Befehl geben dein FS20 Gerät mit dieser ID einzuschalten. Zum Empfangen gibts dann eben RX instanzen.

Und warum die Verbindungen?
Es besteht, ob sinnvoll oder nicht, die Möglichkeit mehrer FHZs an deinem USB-Bus zu betreiben. Du musst also festlegen welche TX Instanz über welche FHZ senden soll.

Ansich simpel, oder?

Toni

Erstmal besten Dank für eure Erklärungen!! - echt ein geiles Forum

(Ich hoffe , dass Steiner nicht ein PHP Script geschrieben hat, in dem solche Ausdrücke gefiltert werden):smiley:

Nach einigen Erklärungen und zahlreichen „Versuchen“ am wochenende ist es mir mit Hilfe des WWW Moduls und des Text Parsers gelungen das Wetter auf meinen Displays im Haus darzustellen.

Nachdem das funktioniert hat, habe ich mir bei 3 Flaschen Veltins mein Werk angeguckt :smiley: ( Meine Frau kam in dieser Zeit mehrmals rein und hat gefragt warum ich so blöd grinse) -->kennt Ihr das?

Wenn man(n) einmal die Grundzüge verstanden hat , geht es wesentlich leichter. Jetzt werde ich erstmal sämtliche Scripte im Forum durch-rattern.

Nochmals besten Dank an alle!!!

Vorsicht:
Symcon kann süchtig machen
und R**chelt freut sich über diverse Bestellungen :smiley:

Gruß Michél

Hallo,

dann will ich Dich mal noch weiter kitzeln: Schau Dir bspw. mal WIIPS an und auch das 1-Wire.de System, viele verwenden ja wie bereits geschrieben unterschiedlichste Hardware…