Schreibfehler oder absicht?
<action type="copy-value" from="WS_auto_Tag_NachtC12" to="Stroren-Tag-Nacht"/>
Ankündigung
Einklappen
Keine Ankündigung bisher.
LinKNX: Diskussionen zu Tipps, Tricks und Beispiele
Einklappen
X
-
Anfänger Fraga
Hallo zusammen
Kann mir evtl. jemand etwas Entwicklungshilfe Leiste. Ich möchte eine ganz einfache Anwesenheit mit dem Storen freigeben oder sperren.
Die Wetterstation sendet mir ein Signal wo die Storen am Morgen hoch und am Abend wieder herunter gefahren werden. Ich möchte nun alles nur aktiv schalten wenn ich nicht Zuhause bin und habe dafür einen Taster Anwesend abwesend.
Ich wollte das ganze mit dem copy-value lösen, aber ich bekomme das einfach nicht hin.
Kann mir jemand weiter helfen?
Besten Dank für die Hilfe.
Gruss
Reto
Code:<object type="1.001" id="T_Freigabe_Beschattung" init="persist" gad="2/3/6">T_Freigabe_Beschattung</object> <object type="1.001" id="WS_auto_Tag_NachtC12" init="persist" gad="2/3/9">WS_auto_Tag_NachtC12</object> <object type="1.001" id="Storen_Tag_Nacht" init="persist" gad="2/3/1">Storen_Tag_Nacht</object>
Code:<rule id="Storen-Tag-Nacht"> <condition type="true" > <condition type="object" id="T_Freigabe_Beschattung" value="1" trigger="true" /> </condition> <actionlist type="if-true"> <action type="copy-value" from="WS_auto_Tag_NachtC12" to="Stroren-Tag-Nacht"/> </actionlist> </rule>
Einen Kommentar schreiben:
-
gelöst!
Hallo waldemar,
du hast zwar schon 2012 die .xsd hier (https://knx-user-forum.de/266058-post12.html) eingestellt, aber irgenwie komme ich nicht zur schönen Autokorrektur.
Jetzt habe ich visual studio 2013 installiert, das .xml und die .xsd (hoffentlich richtig) eingetragen. Und unten im fenster sehe ich auch eine fehlerkorrektur des xml, die wohl gegen die xsd ausgeführt sein müsste.
aber intellisense (=auto-complete) beim tippen, so wie von MS beschrieben und in deinem video (bei der .xsd) zu sehen, scheint nicht zu klappen. Da war ich mit Eclipse schon weiter .. ;-)
Da es 2012 wohl ging, hast du vielleicht einen kleinen Tip? Was könnte Fehlen? Oder geht das mit der XSD gar nicht ...?
Danke und Gruß,
ozett
-------
nachtrag: beim prüfen des beitrags sehe ich selbst, das die schönen Funktionen nicht für ein XML, sondern für die XSD selbst beschrieben sind. Für XML-Dateien gibts nur autokorrektur im editor. Und das nur begrenzt auf std-xml tags. kann das sein?
-------
nachtrag2:
nochmal geprüft. es geht doch: schematag im config.xml gelöscht (weil über die eigenschaften des xml-dokumentes mit der .xsd verknüft. Und des geht in visual studio. juhuuu. genau wie im video zu sehen. wunderbar. screenshot 2...
Einen Kommentar schreiben:
-
eclipse
hallo zusammen, hallo waldemar,
da ich waldemars vorarbeit mit dem xsd so super finde, habe ich jetzt versucht einen kleinen (freien) editor zu finden, der syntaxvervollständigung und -korrektur kann.
ich glaube eclipse ist am ende doch ganz gut (hatte ich wegen android experiment drauf, und fand das für die rules in openhab eigentlich auch gut).
Leider gelingt mir die übernahme der attribut-optionen nicht. nur die anzeige mit F2, oder CTRL-Space for den content-assistent.
ich hab' mal einen screenshot gemacht. vielleicht geht die attributübernahme aus dem f2-focus-fenster doch besser als per copy-and-paste und ein versierter fachmann kann einen guten tip dazu geben. ist bestimmt nur ne kleinigkeit... das wäre es dann ;-)
danke und gruss,
ozettAngehängte Dateien
Einen Kommentar schreiben:
-
Tja, xml editor fuer linknx, der die optionen in den attributen aus der xsd anzeigt (=?syntax-check) wäre duch super: wer kennt einen?
In der validate.xsd von Waldemar steckt sicher ein bisschen arbeit, wenn man einen (leichten) editor finden würde, der nur die richtigen attribut-optionen aus der xsd anzeigen würde, dann wäre das doch toll, oder?
der weg scheint nicht so einfach, oder ich habe auch zu wenig ahnung. hat keiner einen tip?
habe jetzt notepad++ mit xlm-plugin und qxmledit ausprobiert. Auch gut, validiert gegen die xsd, aber beim editieren der attribute leider keine vorschläge... (oder ich mache wieder was falsch?).
zudem prüfe ich mit waldemars grundgerüst config.xml von hier https://knx-user-forum.de/281953-post18.html
das aber (natuerlich als muster) schon die validierung nicht besteht.. zuviele demo-eintraege ... aber vermutlich eben gut als test für die validierung .
----nachtrag:
im augenblick glaube ich, dass feature heisst: tag-completition (bei http://en.wikipedia.org/wiki/Oxygen_XML_Editor) oder intellisense bei visual studio (https://msdn.microsoft.com/de-de/library/ms255811.aspx)
und das es das auch nur bei diesen beiden gibt ...(vielleicht noch beim platzhirsch xml-spy?)Angehängte Dateien
Einen Kommentar schreiben:
-
XML editor für linknx.xml config:
der foxe für windows ist nur 400k, kommt als .zip und sieht einfach, aber ganz praktisch aus. leider irgendwie kein .xsd... ich guck mal weiter ...Angehängte Dateien
Einen Kommentar schreiben:
-
XSD Schema
-> Ich würde gerne die linKNX-config datei editieren, aber komfortabel mit syntax-korrektur-option wie im video von waldemar.
bislang habe ich das mit einem texteditor in linux gemacht, alles trocken von hand. puhhh. bin zwar kein richtig geübter programmierer, aber hatte gerade mal eclipse zum testen von android-projekten auf dem rechner. Da ist das aber nicht so schön (oder ich mache was falsch?) wie im video. Nur Optionen auf F2, keine interaktive korrektur..?
Hat jemand einen Tip für mich: Welches ist der beste (freie?) Editor um eine LinKNX schön mit Syntaxkontrolle zu bearbeiten? Das kann doch richtig Spaß machen, im Video sieht das zumindest super aus ....
Danke und Gruß,
ozettAngehängte Dateien
Einen Kommentar schreiben:
-
Zitat von fox007 Beitrag anzeigen<condition type="object" id="Sollwert-Wohnen" > then 24 trigger="true" />
</condition>
Nur ganz schnell schonmal, da's hier gerade noch brennt...
Die Condition muss so aussehen:
Code:<condition type="object" id="Sollwert-Wohnen" op="gt" value="24" trigger="true" />
Einen Kommentar schreiben:
-
Sollwert in Rule einbinden
Hallo zusammen
Ich habe das Thema mal durchsucht und bin leider nicht ganz fündig worden. Aber evtl. kann mir ja jemand ein Tipp geben. Ich möchte die Beschattungsfreigabe die via Wetterstation kommt über folgende Bedingung abhängig machen:
Beschattung ein (Wetterstation) -> Zeitverzögerung ->
Taster Freigabe ein AND Sollwert Wohnzimmer grösser 24.0 Grad ->
Beschattung Süd freigeben -> Zeitverzögerung -> Beschattung West Freigeben
Meine ersten Versuche sehen wie folgt aus, vermute aber dass ich nicht einfach so einen Sollwert einbinden kann. Aber evtl. hat mir jemand einen Tipp.
Besten Dank und Gruss
Reto
<rule id="Beschattung">
<condition type="and">
<condition type="time-counter" threshold="120">
<condition type="object" id="Taster-Freigabe" value="1" trigger="true" />
<condition type="object" id="Sollwert-Wohnen" > then 24 trigger="true" />
</condition>
<actionlist>
<action type="Beschattung-on" id="Beschattung-Süd-on" value="1"/>
<condition type="time-counter" threshold="120">
<action type="Beschattung-on" id="Beschattung-West-on" value="1"/>
</actionlist>
Einen Kommentar schreiben:
-
Naja, ebend genau deswegen - eine dieser conditions triggert die Rule:
Nur weiß eben die Actionlist nicht, welches Objekt es war.Code:<condition type="or"> <condition type="object" id="MD0" trigger="true"/> <condition type="object" id="MD1" trigger="true"/> <!-- hier kommen noch weitere Conditions rein --> </condition>
Keine Ahnung, was Du mit den Daten in Deinem Script machst. Ich mache sowas ähnliches, und schicke immer alle Werte an mein Script. Dieses greift dann intern auf 'ne Datenbank zu und weiß daher, welche Werte sich seit dem letzten Mal verändert haben.
Einen Kommentar schreiben:
-
Hallo
Ist schade.Okay, das klappt dann nicht - generell schon deswegen nicht, da Du innerhalb der actionlist nicht weißt, welche Wertänderung per Trigger die Rule aufgerufen hat.
Ich hätte erwartet das man die id in etwa so auskesen könnte:
obj.id()
und Value so:
obj(obj.id)
Ich werde es mal mit einigen Rules versuchen.
Gruß NetFritz
Einen Kommentar schreiben:
-
Zitat von NetFritz Beitrag anzeigenHallo
Hier mal meine linknx.xml.
Die Action wird ausgeführt wenn sich Value von MD0 oder MD1 ändert.Code:<objects> <object type="9.xxx" id="MD0" gad="5/3/8">aussentemp</object> <object type="9.xxx" id="MD1" gad="5/3/5">feuchte</object> <!-- hier kommen noch weitere Objecte rein --> </objects> <rules> <rule id="MD"> <condition type="or"> <condition type="object" id="MD0" trigger="true"/> <condition type="object" id="MD1" trigger="true"/> <!-- hier kommen noch weitere Conditions rein --> </condition> <actionlist type= "if-true"> <action type="script">os.execute("/var/www/test.pl '"..obj("MD1").."' add");</action> </actionlist> </rule> </rules>
In Action soll aber dynamisch bei obj() MD0 oder MD1 (später noch mehre) eingetragen werden.
Dem Perl-Sript sol dan dynamisch Value und Id übergeben werden.
Ich hoffe das ich mich jetzt klarer ausgedrückt habe.
Gruß NetFritz
Okay, das klappt dann nicht - generell schon deswegen nicht, da Du innerhalb der actionlist nicht weißt, welche Wertänderung per Trigger die Rule aufgerufen hat.
Es bleibt Dir also nix weiter übrig, als für jede Wertänderung (oder wie Du es nennst, ID) eine eigene Rule zu machen und dort dann die ID statisch dem Script zu übergeben. Ist zwar etwas mehr schreibarbeit, aber Performance-Mäßig wirkt sich das nicht aus...
Gruß, Netsrac
Einen Kommentar schreiben:
-
Hallo
Hier mal meine linknx.xml.
Die Action wird ausgeführt wenn sich Value von MD0 oder MD1 ändert.Code:<objects> <object type="9.xxx" id="MD0" gad="5/3/8">aussentemp</object> <object type="9.xxx" id="MD1" gad="5/3/5">feuchte</object> <!-- hier kommen noch weitere Objecte rein --> </objects> <rules> <rule id="MD"> <condition type="or"> <condition type="object" id="MD0" trigger="true"/> <condition type="object" id="MD1" trigger="true"/> <!-- hier kommen noch weitere Conditions rein --> </condition> <actionlist type= "if-true"> <action type="script">os.execute("/var/www/test.pl '"..obj("MD1").."' add");</action> </actionlist> </rule> </rules>
In Action soll aber dynamisch bei obj() MD0 oder MD1 (später noch mehre) eingetragen werden.
Dem Perl-Sript sol dan dynamisch Value und Id übergeben werden.
Ich hoffe das ich mich jetzt klarer ausgedrückt habe.
Gruß NetFritz
Einen Kommentar schreiben:
-
Hmm....verstehe Deine Frage nicht so richtig,.Zitat von NetFritz Beitrag anzeigenDa ich aber mehre objecte habe, die bei value änderung die action aufrufen, muß ich beim Aufruf vom Perl-Scribt die id vom geänderten Object mit angeben.
Ich möchte auch den Scribt auch die id mit übergeben.
Wie kann man das machen?
Also, Du kannst doch einfach verschiedene Rules in linKNX machen und die entsprechende ID dann dem Script statisch als Parameter übergeben - also statt der Variablen einfach eine statische ID.
Einen Kommentar schreiben:


Einen Kommentar schreiben: