Scrape - eigentlich sehr simpel

chattie

New member
Hallo, nachdem mir gestern schon sehr gut weitergeholfen wurde mit der File Integration (oder der Export in Datei - Möglichkeit, wie ich es sehe) habe ich noch eine Frage, wie ich mit meinem Import weiterkomme.
Ich hole aus einem anderen System (KNX, das über ein sehr altes VisualBasic läuft) von jedes Zimmer 3 Werte: Soll-Temperatur, Ist-Temperatur und Heizungs-Zustand, dazu ggf. noch andere Zustände wie z.B. Zustand Licht - also ist das Licht an oder aus.
Somit habe ich nun bei 9 Zimmer (keine Angst, ich lebe nicht im Palast, doch mit Keller kommen halt ein paar Zimmer zusammen :)) 42 Werte.
Im Moment erzeuge ich alle 15 Sekunden jeweils eine eigene Datei. Also z.B. für das Bad: BadHeizungSoll.xml BadHeizungIst.xml BadHeizungStatus.xml und BadLichtStatus.xml

Die Dateien sehen dann ganz einfach so aus, sagen wir mal eine BadHeizungIst.xml:
Code:
19.11
Eine HeizungSoll.xml sieht genauso aus. In einer Status.xml ist einfach eine 0 oder 1 drinnen.

Ich habe sowieso für was anderes einen Webserver, dort lade ich Dateien hin und mit Homeassistant hole ich die dort ab.

Die Einstellungen sind immer:
Code:
Methode: GET
Bereich: Body

Also ganz einfach! Das Ganze funktioniert auch, doch ist durch die vielen Dateien unübersichtlich.

Ich könnte aber auch von VisualBasic auch alle Werte in eine Bad.xml schreiben lassen, wo dann alle Werte drinnen sind, also sagen wir mal HeizungSoll, HeizungIst, HeizungStatus, LichtStatus. Hier als Beispiel:
Code:
19.11 19.5 1 0
Ich kann zwischen den Werten beliebige Trennzeichen machen, entweder Leerzeichen oder Semikolon bietet sich an.
Im Moment
Nun die Frage: Wie könnte ich die Werte in Scape einlesen? CSS klappt ja da nicht, weil meine XML-Datei ja genaugenommen nur eine txt-Datei ist. Hat jemand eine Idee?

Und noch eine zweite Sache: Der Status 0 und 1 für Licht und Heizung ist zwar verarbeitbar wie z.B. in der Automation wenn ich sage wenn Licht größer 0 dann mach dies und jenes. Aber schöner wäre schon, wenn ich es hinbekomme, daß es ein schöner Schalter wäre.
Ich habe dazu beim Sensor im Feld Template folgendes rein:
Code:
{% if value == 0 %}off{% else %}on{% endif %}
doch das ist wohl falsch. Hat auch hier jemand eine Idee?

Dankeschön für eure Hilfe
chattie
 
Ich kann zwischen den Werten beliebige Trennzeichen machen, entweder Leerzeichen oder Semikolon bietet sich an.
Im Moment
Nun die Frage: Wie könnte ich die Werte in Scape einlesen? CSS klappt ja da nicht, weil meine XML-Datei ja genaugenommen nur eine txt-Datei ist. Hat jemand eine Idee?
Was Du hier suchst dürfte split sein. Beispielhaft, das kannst Du so unter Entwicklerwerkzeuge => Template eintragen und ausprobieren:
YAML:
{% set vars = "19.11 19.5 1 0" %}
{% set HeizungSoll = vars.split(" ")[0] %}
{% set HeizungIst = vars.split(" ")[1] %}
{{  HeizungSoll }} {{ HeizungIst }}
Die Variable vars hier eben ersatzweise, um Deine Wertvorgabe zu haben, das wäre dann der reine Text den Du über scrape bekommst. Mit den eckigen Klammern werden die Werte nacheinander angesprochen, Du musst nur beachten, dass die Zählung mit 0 anfängt und nicht mit 1.

Ich habe dazu beim Sensor im Feld Template folgendes rein
Sofern value tatsächlich "0" oder "1" enthält müsstest Du wahlweise nach int konvertieren oder auf String prüfen (aktuell prüfst Du auf Number). Also eine dieser beiden Varianten:
YAML:
{% if value | int == 0 %}off{% else %}on{% endif %}
{% if value == "0" %}off{% else %}on{% endif %}
Das meiste wird als "String" geliefert, aber eine 0 oder eine 1 ohne Anführungszeichen drumherum sind Number, und der Vergleich von String und Number schlägt immer fehl, da muss man erst den Typ angleichen.
 
@Nival danke dir schon wiedermal, das hilft weiter. Den Umbau der XML-Datein mit split verstehe ich. Das ist ja jetzt Arbeit - ich hätte gedacht ich bekomme das recht einfach in die GUI-Konfiguration. Aber hilft mir erstmal weiter, so dass ich weiterkomme. Zu dem value 0 und 1 - das funktioniert auch, allerdings ist und bleibt das natürlich ein sensor und wird dadurch kein switch. Verstehe ich schon, da man da ja nicht wirklich was umstellen kann. Somit muß ich in der Automation dann auf "An" und "Aus" verweisen, besser geht das nicht, oder?
@u5zzug Ja, das weiß ich, danke dir aber für den Hinweis. Aber ich habe da keine IP-Schnittstelle, das ganze läuft noch auf RS232 an einen alten PC dem ich jetzt zumindest mal eine Netzwerkkarte verpasst habe und er dadurch ins lokale Netz (nicht ins Internet, das habe ich bei dem XP-Rechner natürlich gekappt) darf.
Gruß
Thomas
 
Zu dem value 0 und 1 - das funktioniert auch, allerdings ist und bleibt das natürlich ein sensor und wird dadurch kein switch. Verstehe ich schon, da man da ja nicht wirklich was umstellen kann. Somit muß ich in der Automation dann auf "An" und "Aus" verweisen, besser geht das nicht, oder?
Was genau wäre denn da Dein Ziel bzw. Wunsch?
 
Zurück
Oben