Eine Webabfrage muss IMMER explizit gestartet werden.
Ankündigung
Einklappen
Keine Ankündigung bisher.
- √ - Webabfrage: regulrärer Ausdruck
Einklappen
X
-
Die kannst du nur über die Logik starten. IM QC legst du eine Schaltfunktion an, und das zugehörige iKO triggert dann per Logik (Binärauslöser) die Webabfrage.Gruß MatthiasEIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
- PN nur für PERSÖNLICHES!
Kommentar
-
Hallo zusammen,
ich habe folgendes Problem, beim lesen des IPWE1 bekomme ich eine Reihe Zeilen die wie folgt aufgebaut sind:
<td style="text-align: center;">Sensortyp</td> <td style="text-align: center;">Adresse</td> <td style="text-align: center;">Beschreibung</td> <td style="text-align: center;">Temperatur</td> <td style="text-align: center;">Luftfeuchtigkeit</td> <td style="text-align: center;">Windgeschwindigkeit</td> <td style="text-align: center;">Regenmenge</td> </tr> <tr>
<td style="text-align: center;">T/F<br></td> <td style="text-align: center;">0<br></td> <td style="text-align: center;">Technik EIB<br></td> <td style="text-align: center;">33.1 °C<br></td> <td style="text-align: center;">30 %<br></td> <td style="text-align: center;"> <br></td> <td style="text-align: center;"> <br></td>
</tr> <tr>
(...nächster Sensor)
Mit dem Skript unten (nur der Anfang, die Sensorliste ist wesentlich länger, bekomme ich die Felder gelesen:
1. und 2. Datenblock beliebig, 3. Datenblock 14byte Text, 4. und 5. Datenblock 4-byte Gleitkomma funktioniert das:.
.+?Regenmenge.+?;">(.+?)<br>.+?;">(.+?)<br>.+?;">( .+?)<br>.+?;">(.+?)<br>.+?;">(.+?)<br>.+?;">(.+?)< br>.+?;">(.+?)<br>.+?;">(.+?)<br>.+?;">(.+?)<br>.+ ?;">(.+?)<br>.+?;">(.+?)<br>.+?;">(.+?)<br>.+
Leider passiert es manchmal dass die Funkübertragung zu einem Sensor gestört ist, dann sieht das wie folgt aus:
<td style="text-align: center;"> <br></td> <td style="text-align: center;"> <br></td> <td style="text-align: center;"> <br></td> <td style="text-align: center;"> <br></td> <td style="text-align: center;"> <br></td> <td style="text-align: center;"> <br></td> <td style="text-align: center;"> <br></td>
Hier bricht der HS aber die Auswertung des Skriptes beim ersten als 4-byte Gleitkomma definierten Datenblock ab (statt einer Zahl kommt nur ein Leerzeichen), und damit werden auch die danach folgenden Sensoren nicht mehr gelesen.
Was kann ich machen, damit HS nicht die Auswertung abbricht, wenn ein Datenblock "" oder " " ist und das Ergebnis an eine 4-byte Gleitkomma Variable weitergeleitet werden soll ?
Stattdessen möchte ich entweder keinen Wert, oder einen vordefinierten Standardwert haben.
Danke
Kai
Kommentar
-
Ich habe das so gelöst, dass ich für jeden Sensor vom IPWE1 eine eigene Webabfrage definiert habe. Jede Minute starte ich eine einzelne Abfrage, bis ich alle Sensoren durchhabe. Das verhindert, dass bei Nichtvorhandensein eines einzelnen Werts die anderen Werte betroffen sind. Den zeitlichen Abstand habe ich gewählt, um Buslast gering zu halten und den IPWE1 nicht zu "überfahren": Der mag es nämlich nicht, wenn man schnell hintereinander die Webseite abruft.
Marcus
Kommentar
Kommentar