Vorlage:Abfrage Steuerung XML: Unterschied zwischen den Versionen

Aus Comtime Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 38: Zeile 38:
===Beispiele zu den Basis-Einträgen===
===Beispiele zu den Basis-Einträgen===


'''a) E/A System'''
{{#ifeq:{{{io|1}}}|1|
==== I/Os ====


<pre>
<pre>
Zeile 66: Zeile 67:


Zu beachten ist, das Ausgänge, welche ferngesteuert werden sollen, als"Remote Controlled" konfiguriert sein müssen.
Zu beachten ist, das Ausgänge, welche ferngesteuert werden sollen, als"Remote Controlled" konfiguriert sein müssen.
}}


'''b) Allgemeine Informationen abfragen'''
==== Allgemeine Informationen abfragen ====


<pre>
<pre>
Zeile 102: Zeile 104:
</pre>
</pre>


'''c) eMail versenden'''
==== eMail versenden====


<pre>
<pre>
Zeile 135: Zeile 137:


{{#ifeq:{{{sms|0}}}|1|
{{#ifeq:{{{sms|0}}}|1|
'''d) SMS versenden'''
==== SMS versenden ====


<pre>
<pre>

Aktuelle Version vom 13. August 2024, 13:46 Uhr

Abfrage und Steuerung über XML Dateien

Format der XML Dateien

Jede Datei beginnt mit dem Header:

<?xml version="1.0"?>

oder

<?xml version="1.0" encoding="UTF-8"?>

Gefolgt von dem Basis-Eintrag. Folgende Basis-Einträge stehen zur Auswahl:

<io> 		</io> # E/A-System

<info> 		</info> # Allgemeine Informationen abfragen

<cmgr ...> 	</cmgr> # SMS versenden (nur Mobilfunkgeräte)

<email ...> 	</email> # eMail versenden

Alle Daten werden in UTF-8 kodiert. Folgende Zeichen müssen als Sequenzen übertragen werden:

&  -  &
<  - <
>  -  >
"  -  "
'  -  '

Beispiele zu den Basis-Einträgen

I/Os

<?xml version="1.0"?>
<io>
  <output no="1"/> 			# Zustand von Ausgang 1 abfragen
  <output no="2" value="on"/> 		# Ausgang 2 einschalten
  <input no="1"/> 			# Zustand von Eingang 1 abfragen
</io>

Hinweis: Als "value" kann sowohl on/off als auch 0/1 angegeben werden. Zurückgegeben wird immer on oder off.

Zurückgeliefert wird etwa folgendes:

<?xml version="1.0" encoding="UTF-8"?>
<result>
  <io>
    <output no="1" value="off"/> # Zustand von Ausgang 1; hier eingeschaltet
    <output no="2" value="on"/> # Zustand von Ausgang 2; wurde eingeschaltet
    <input no="1" value="off"/> # Zustand von Eingang 1; hier ausgeschaltet
  </io>
</result>

Zu beachten ist, das Ausgänge, welche ferngesteuert werden sollen, als"Remote Controlled" konfiguriert sein müssen.

Allgemeine Informationen abfragen

<?xml version="1.0"?>
<info>
  <device /> # Gerätedaten abfragen
  <radio /> # Daten zur Funkverbindung abfragen (nur Mobilfunkgeräte)
</info>

Zurückgeliefert wird etwa folgendes:

<?xml version="1.0" encoding="UTF-8"?>
<result>
  <info>
    <device>
      <serialno>13120004</serialno>
      <hardware>A</hardware>
      <firmware>1.00.4-beta</firmware>
      <wbm>1.34.8</wbm>
      <imei>359628040604790</imei>
    </device>
    <radio>
      <provider>Vodafone.de</provider>
      <rssi>15</rssi>
      <creg>1</creg>
      <lac>0579</lac>
      <ci>26330CD</ci>
      <packet>0</packet>
    </radio>
  </info>
</result>

eMail versenden

<?xml version="1.0"?>
<email to="x.yz@diesunddas.de" cc="info@andere.de">
  <subject>Test Mail</subject>
  <body>
Dies ist ein mehrzeiliger eMail-Text.
mfg.
ihr Router
  </body>
</email>

Zurückgeliefert wird etwa folgendes:

<?xml version="1.0" encoding="UTF-8"?>
<result>
  <email>done</email>
</result>

oder im Fehlerfall:

<?xml version="1.0" encoding="UTF-8"?>
<result>
  <email error="3">transmisson failed</email>
</result>


Hinweis zur Darstellung: die Einrückungen und Zeilenumbrüche dienen nur der Verständlichkeit und müssen so nicht gesendet werden, noch werden sie so gesendet. Alle empfangenen Daten sollten mit einem XML-Parser wie z.B. Expat interpretiert werden.

Daten senden und empfangen

Der Kommunikationsablauf ist folgender:

  • Verbindung zum Socket-Server aufbauen
  • Daten senden
  • Zurückgegebene Daten mit XML-Parser interpretieren Verbindung schließen