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?
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.
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
#2 RE: Auslesen von Werten über TCP
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.
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.
-
- 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
[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"
Die ich dann im Base Anzeige, und auch per Fritzbox wieder abhole, mit "echo "VAR.LUXWERT=?" | nc 192.168.1.60 4224
gruss thomas
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 - Fleißiges Mitglied
- Beiträge: 478
- Registriert: Do 29. Dez 2011, 21:47
- Danksagung erhalten: 4 Mal
#4 RE: Auslesen von Werten über TCP
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?
-
- (†)
- 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
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
Diese und andere Fragen versuchen wir auch mit unseren Schulungen abzudecken. An euren Fragen 'lernen' wir auch noch den Bedarf
![Zwinkern ;)](./images/smilies/icon_e_wink.gif)
Grüße, Uwe
----------------o00o----'(_)'----o00o---------------------
-
- 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
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
Die ich dann im Base anzeigen kann, wie auch "extern" abfischen...
gruss thomas
lg Thomas
-
Themenersteller - Fleißiges Mitglied
- Beiträge: 478
- Registriert: Do 29. Dez 2011, 21:47
- Danksagung erhalten: 4 Mal
#7 RE: Auslesen von Werten über TCP
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?
-
- 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
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
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 - Fleißiges Mitglied
- Beiträge: 478
- Registriert: Do 29. Dez 2011, 21:47
- Danksagung erhalten: 4 Mal
#9 RE: Auslesen von Werten über TCP
Elegant fände ich eine Lösung bei der man über LUA entsprechend Hilfsfunktionen baut, z.B.
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.
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 - Fleißiges Mitglied
- Beiträge: 478
- Registriert: Do 29. Dez 2011, 21:47
- Danksagung erhalten: 4 Mal
#10 RE: Auslesen von Werten über TCP
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 11 Gäste