Seite 1 von 2
#1 Auslesen von Werten über TCP
Verfasst: Fr 31. Aug 2012, 11:34
von mr_claus
Gibt es eine Möglichkeit entsprechende Werte fertig umgerechnet per TCP abzurufen, Problemstellung:
echo "LCN.value.0.5.r1=status" | nc -w 1 192.168.11.100 4224 | cut -f2 -d=
liefert 1176, sprich 17,6 °C, kann man im Domiq Base eine entsprechende Variable hinterlegen, z.b. C.Temperatur.EG.Wohnzimmer die ihren Wert aus LCN.value.0.5.r1 bezieht und 1100 abzieht, sprich die den fertigen Wert liefert?
#2 RE: Auslesen von Werten über TCP
Verfasst: Fr 31. Aug 2012, 15:42
von DOMIQ
Better would be to do it like below, with question mark:
echo "LCN.value.0.5.r1=?" | nc -w 1 192.168.11.100 4224 | cut -f2 -d=
If you send ? all state values will be shown.
#3 RE: Auslesen von Werten über TCP
Verfasst: Fr 31. Aug 2012, 19:00
von Thomas
[zitat]C.Temperatur.EG.Wohnzimmer die ihren Wert aus LCN.value.0.5.r1 bezieht und 1100 abzieht, sprich die den fertigen Wert liefert? [/zitat]
Ich mache das mit Logic(Rechnung bei onchange), in eine "VAR.LUXWERT"
Code: Alles auswählen
------------------------------------------------------------------------
--
-- Luxberechnung
--
lux1 = use 'LCN.value.0.155.t'
lux_var = use 'VAR.LUXWERT'
function lux1:onchange(new)
local lux2 = 0
-- alter LS
new = 0.01153*new+1.153
--
-- neuer LSA
-- new=new/100
--
new= math.exp(new)
new = math.ceil(new)
lux2=new
lux_var:set(lux2)
end
------------------------------------------------------------------------
Die ich dann im Base Anzeige, und auch per Fritzbox wieder abhole, mit "echo "VAR.LUXWERT=?" | nc 192.168.1.60 4224
gruss thomas
#4 RE: Auslesen von Werten über TCP
Verfasst: Fr 31. Aug 2012, 20:02
von mr_claus
Danke, das sieht schonmal recht interessant aus, auch wenn da noch Fragen bleiben, ich bastle da mal weiter. Kann man dafür ein generisches Script verwenden in welches der Identifier als Parameter übergeben wird und welches dann den entsprechenden Wert umgerechnet rückliefert? Gibt es Doku oder Howtos über Domiq Base in Verbindung mit LUA? Gibt es eine Art API?
#5 RE: Auslesen von Werten über TCP
Verfasst: Sa 1. Sep 2012, 11:49
von Uwe
Nein, das Skript musst du schon 'von Hand' in das Base tippern (von copy&paste mal abgesehen) ...
Diese und andere Fragen versuchen wir auch mit unseren Schulungen abzudecken. An euren Fragen 'lernen' wir auch noch den Bedarf
Grüße, Uwe
#6 RE: Auslesen von Werten über TCP
Verfasst: Sa 1. Sep 2012, 20:01
von Thomas
Das Beispiel oben, holt sich den LCN Wert bei Änderung des Wertes, rechnet um, und gibt den Wert in eine VAR aus.
Die ich dann im Base anzeigen kann, wie auch "extern" abfischen...
gruss thomas
#7 RE: Auslesen von Werten über TCP
Verfasst: Mo 3. Sep 2012, 15:49
von mr_claus
Danke Thomas, ich muss das jetzt nur noch zerlegen in "LUA" und "Domiq", die größten Probleme habe ich noch weil eine Beschreibung des Environments fehlt, ich weiss nicht welche Variablen in den Scripten vorhanden sind (global), ich weiss nicht mit welchen Parametern die aufgerufen werden, ob es eine API gibt oder nicht. Wo hast Du da zum Suchen angefangen?
#8 RE: Auslesen von Werten über TCP
Verfasst: Mo 3. Sep 2012, 22:36
von Beleuchtfix
Inzwischen gibt es eine Englische Doku, auf der du die meisten Channels findest und auch sonst etliche Details. Dann einmal im Base unter Zustand schauen, da sieht man alle Variablen (wenn sie nicht 0 sind!), die zur Verfügung stehen.
Schau mal auf die Demo Installation, du kannst dich im Backend einloggen und dort einiges austesten bzw. erkennen.
Außerdem ist die Domiq Hotline recht hilfreich!
Aber es stimmt, Domiq und Lua sind gewöhnungsbedürftig.
Gruß
Florian
#9 RE: Auslesen von Werten über TCP
Verfasst: Mo 3. Sep 2012, 23:38
von mr_claus
Elegant fände ich eine Lösung bei der man über LUA entsprechend Hilfsfunktionen baut, z.B.
Code: Alles auswählen
function calctemp(temp)
return ( temp - 1000 ) / 10
end
und diese dann über das Eventstab einbindet, quasi für jeden Sensor ein Event baut und dann eine neue Variable füllt mit Hilfe dieser Funktion. Leider scheint es zwar eine Möglichkeit zu geben neuen Variable Werte statisch zuzuweisen und es gibt auch die Möglichkeit Kommandos zu einem Identifier zu senden, aber ich habe keine Möglichkeit gefunden einer Variable mit Hilfe einer Funktion einen Wert zuzuweisen, z.B. Variable erstellen und beim Feld Value dann "calctemp(LCN.value.0.5.r1)" einzugeben.
#10 RE: Auslesen von Werten über TCP
Verfasst: Mo 3. Sep 2012, 23:42
von mr_claus
Diese Demo Installation habe ich noch nicht gefunden, wo ist die genau?