Willkommen auf unserer neuen Forenplattform für das Bus-Profi Forum

Neue Felder für die persönlichen Daten
Man kann jetzt seine öffentlich einsehbare Daten genau bestimmen. Details findet ihr in in diesem Beitrag.

Durch die neue Forensoftware und die Portierung der Daten konnten die Passwörter aus dem alten Forum nicht übernommen werden, bitte lassen Sie sich ein neues Passwort über die Passwort vergessen Funktion zusenden. Sollte es zu Problemen kommen kontaktieren Sie das Bus-Profi Team per E-Mail.

Auslesen von Werten über TCP

Hard- und Softwarefragen rund Domiq-Module fürs LCN-System

Themenersteller
mr_claus
Fleißiges Mitglied
Fleißiges Mitglied
Beiträge: 478
Registriert: Do 29. Dez 2011, 21:47
Danksagung erhalten: 4 Mal

#1 Auslesen von Werten über TCP

Beitragvon mr_claus » Fr 31. Aug 2012, 11:34

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?


DOMIQ
Fleißiges Mitglied
Fleißiges Mitglied
Beiträge: 252
Registriert: Sa 25. Apr 2009, 11:16
Kontaktdaten:

#2 RE: Auslesen von Werten über TCP

Beitragvon DOMIQ » Fr 31. Aug 2012, 15:42

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.

Benutzeravatar

Thomas
Alleswisser
Alleswisser
Beiträge: 5742
Registriert: Mo 21. Apr 2008, 20:03
Hat sich bedankt: 20 Mal
Danksagung erhalten: 13 Mal

#3 RE: Auslesen von Werten über TCP

Beitragvon Thomas » Fr 31. Aug 2012, 19:00

[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
lg Thomas


Themenersteller
mr_claus
Fleißiges Mitglied
Fleißiges Mitglied
Beiträge: 478
Registriert: Do 29. Dez 2011, 21:47
Danksagung erhalten: 4 Mal

#4 RE: Auslesen von Werten über TCP

Beitragvon mr_claus » Fr 31. Aug 2012, 20:02

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?

Benutzeravatar

Uwe
(†)
Beiträge: 14250
Registriert: So 26. Mai 2002, 23:10
Hat sich bedankt: 13 Mal
Danksagung erhalten: 56 Mal

#5 RE: Auslesen von Werten über TCP

Beitragvon Uwe » Sa 1. Sep 2012, 11:49

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
----------------o00o----'(_)'----o00o---------------------

Benutzeravatar

Thomas
Alleswisser
Alleswisser
Beiträge: 5742
Registriert: Mo 21. Apr 2008, 20:03
Hat sich bedankt: 20 Mal
Danksagung erhalten: 13 Mal

#6 RE: Auslesen von Werten über TCP

Beitragvon Thomas » Sa 1. Sep 2012, 20:01

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
lg Thomas


Themenersteller
mr_claus
Fleißiges Mitglied
Fleißiges Mitglied
Beiträge: 478
Registriert: Do 29. Dez 2011, 21:47
Danksagung erhalten: 4 Mal

#7 RE: Auslesen von Werten über TCP

Beitragvon mr_claus » Mo 3. Sep 2012, 15:49

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?

Benutzeravatar

Beleuchtfix
Administrator
Administrator
Beiträge: 5294
Registriert: Mi 10. Jan 2007, 18:49
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

#8 RE: Auslesen von Werten über TCP

Beitragvon Beleuchtfix » Mo 3. Sep 2012, 22:36

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


Themenersteller
mr_claus
Fleißiges Mitglied
Fleißiges Mitglied
Beiträge: 478
Registriert: Do 29. Dez 2011, 21:47
Danksagung erhalten: 4 Mal

#9 RE: Auslesen von Werten über TCP

Beitragvon mr_claus » Mo 3. Sep 2012, 23:38

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.


Themenersteller
mr_claus
Fleißiges Mitglied
Fleißiges Mitglied
Beiträge: 478
Registriert: Do 29. Dez 2011, 21:47
Danksagung erhalten: 4 Mal

#10 RE: Auslesen von Werten über TCP

Beitragvon mr_claus » Mo 3. Sep 2012, 23:42

Diese Demo Installation habe ich noch nicht gefunden, wo ist die genau?


Zurück zu „Domiq-Module - DOMIQ Sp. z o.o.“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste