NEWS
Adapter der Http Binding wie Openhab erledigt?
-
@Jey-Cee du, es geht
hab die erste änderung wieder rückgängig gemacht
jetzt fehlt mir nur noch der status wo der rollo steht wie am anfang im thema
-
@Jey-Cee ah ok

jetzt fehlt nur noch der status. hättest du da was für mich?
Vielen Dank für deine Hilfe. Ohne würds nicht gehen

-
Leg dir Objekte an sowie für down, nur muss der type "number" sein und def kann weg.
Code um den Status zu schreiben:
setState('javascript.0.status_rollo1', info[0]; setState('javascript.0.status_rollo2', info[1];und so weiter.
Soweit klar?
-
ah, ich glaub ich hab mich falsch ausgedrückt, sorry
Es geht um die Öffnungsprozente die auf diese Adresse auflaufen
http://192.168.1.117:3000/heytech/oeffnungsprozent
am Anfang im Beitrag, da war die Frage nach dem Quelltext -
hier ist mein Code
//Erzeugt beim start des Skripts ein objekt down in javascript.x, x gibt die Instanz nummer an createState('prozent_galerie', { read: true, write: true, desc: "Galerie_Prozent", type: "number" }); setState('javascript.0.prozent_galerie', info[1], function(){ var request = require('request'); var options = {url: 'http://192.168.1.117:3000/heytech/oeffnungsprozent', method: 'GET', headers: { 'User-Agent': 'request' }}; request(options, function(error, response, body) { //hier kann die Antwort ausgewertet werden wenn nötig if (!error && response.statusCode == 200) { var info = JSON.parse(JSON.stringify(body)); // info ist ein Objekt var x = info[0]; log(x); } })});und hier der Fehler
10:28:26.270 [info] javascript.0 Stop script script.js.common.prozent 10:28:26.416 [info] javascript.0 Start javascript script.js.common.prozent 10:28:26.416 [error] javascript.0 script.js.common.prozent: script.js.common.prozent:9 10:28:26.416 [error] javascript.0 at script.js.common.prozent:9:42Der Galerie Rollo ist die 2. Prozentzahl
-
//Erzeugt beim start des Skripts ein objekt down in javascript.x, x gibt die Instanz nummer an createState('prozent_galerie', { read: true, write: true, desc: "Galerie_Prozent", type: "number" }); function(){ var request = require('request'); var options = {url: 'http://192.168.1.117:3000/heytech/oeffnungsprozent', method: 'GET', headers: { 'User-Agent': 'request' }}; request(options, function(error, response, body) { //hier kann die Antwort ausgewertet werden wenn nötig if (!error && response.statusCode == 200) { var info = JSON.parse(JSON.stringify(body)); // info ist ein Objekt var x = info[0]; setState('javascript.0.prozent_galerie', info[1]) } })}; -
@Jey-Cee
fast funktioniert es
bei jeder Änderung sollen die Prozente aktualisiert werden. Es wird aber nur bei "Down" aktualisiert
"Zeile 9"//Erzeugt beim start des Skripts ein objekt down in javascript.x, x gibt die Instanz nummer an createState('prozent_galerie', { read: true, write: true, desc: "Galerie_Prozent", type: "number" }); on({id: 'javascript.0.down_galerie', val: true}, on({id: 'javascript.0.up_galerie', val: true}, on({id: 'javascript.0.stop_galerie', val: true}, function(){ var request = require('request'); var options = {url: 'http://192.168.1.117:3000/heytech/oeffnungsprozent', method: 'GET', headers: { 'User-Agent': 'request' }}; request(options, function(error, response, body) { //hier kann die Antwort ausgewertet werden wenn nötig if (!error && response.statusCode == 200) { var info = JSON.parse(JSON.stringify(body)); // info ist ein Objekt var x = info[0]; setState('javascript.0.prozent_galerie', info[1]); } })})));Unter Objekte wird ein Wert Zurückgegeben, aber nur ein Anführungszeichen "
Die Werte stehen auch so in der URL
http://192.168.1.117:3000/heytech/oeffnungsprozent
0 "100"
1 "82"
2 "3"
3 "3"
4 "100"
5 "7"
6 "100"
7 "100"
8 "" -
Wenn dann muss das so aussehen, ist aber ungetestet:
//Erzeugt beim start des Skripts ein objekt down in javascript.x, x gibt die Instanz nummer an createState('prozent_galerie', { read: true, write: true, desc: "Galerie_Prozent", type: "number" }); on({id: 'javascript.0.down_galerie', val: true}, {id: 'javascript.0.up_galerie', val: true}, {id: 'javascript.0.stop_galerie', val: true}, function(){ var request = require('request'); var options = {url: 'http://192.168.1.117:3000/heytech/oeffnungsprozent', method: 'GET', headers: { 'User-Agent': 'request' }}; request(options, function(error, response, body) { //hier kann die Antwort ausgewertet werden wenn nötig if (!error && response.statusCode == 200) { var info = JSON.parse(JSON.stringify(body)); // info ist ein Objekt var x = info[0]; setState('javascript.0.prozent_galerie', info[1]); } })}))); -
@Jey-Cee
jetzt gibt er unter objekte garnix mehr zurück//Erzeugt beim start des Skripts ein objekt down in javascript.x, x gibt die Instanz nummer an createState('prozent_galerie', { read: true, write: true, desc: "Galerie_Prozent", type: "number" }); on({id: 'javascript.0.down_galerie', val: true}, {id: 'javascript.0.up_galerie', val: true}, {id: 'javascript.0.stop_galerie', val: true}, function(){ var request = require('request'); var options = {url: 'http://192.168.1.117:3000/heytech/oeffnungsprozent', method: 'GET', headers: { 'User-Agent': 'request' }}; request(options, function(error, response, body) { //hier kann die Antwort ausgewertet werden wenn nötig if (!error && response.statusCode == 200) { var info = JSON.parse(JSON.stringify(body)); // info ist ein Objekt var x = info[0]; setState('javascript.0.prozent_galerie', info[1]); } })}); -
Sagte ja ungetestet.
//Erzeugt beim start des Skripts ein objekt down in javascript.x, x gibt die Instanz nummer an createState('prozent_galerie', { read: true, write: true, desc: "Galerie_Prozent", type: "number" }); on('javascript.0.down_galerie', 'javascript.0.up_galerie', 'javascript.0.stop_galerie', function(obj){ if(obj.state.val === true){ var request = require('request'); var options = {url: 'http://192.168.1.117:3000/heytech/oeffnungsprozent', method: 'GET', headers: { 'User-Agent': 'request' }}; request(options, function(error, response, body) { //hier kann die Antwort ausgewertet werden wenn nötig if (!error && response.statusCode == 200) { var info = JSON.parse(JSON.stringify(body)); // info ist ein Objekt var x = info[0]; setState('javascript.0.prozent_galerie', info[1]); } })}}); -
@Jey-Cee
leider immer noch nicht, gibt keinen Wert zurück -
@Jey-Cee
ich hab noch eine ganze Zeit probiert, aber ich bekomme es selbst nicht hin
Haben wir da evtl noch einen Denkfehler.... für den Fall das man manuell die Rollos betätigt, also mit dem Taster direkt am Fenster, dann würde im IOBroker die Prozente wo der Rollo steht nicht aktualisiert werden.
Da bräuchte man eine Zeitschleife... alle paar Sek abfragen wo die Rollos stehen.
Wäre grundsätzlich eine eine Zeitschleife nicht die bessere Lösung? Dann wäre man nicht abhängig von den Zuständen ob im IOBroker ob geschalten worden istjavascript.0.down_galerie',
'javascript.0.up_galerie',
'javascript.0.stop_galerie', -
https://rolladensteuerung.de/index_ml.htm
die L-Serie für Taster, 8Kanäle, Sensormodul und Serieller Schnittstelle. Da einen RS232/Lan umsetzer. Die App funktioniert gut
-
https://rolladensteuerung.de/index_ml.htm
die L-Serie für Taster, 8Kanäle, Sensormodul und Serieller Schnittstelle. Da einen RS232/Lan umsetzer. Die App funktioniert gut
-
Ja bekomme ich, sekundenweise!
-
@stefantaust ich habe jetzt mal bei HEYtech angefragt ob es noch eine andere Schnittstelle gibt. Finde es einfach nicht gut wenn man im Sekunden Takt den Status abfragen muss.
Wenn ich eine Antwort hab werde ich einen Adapter dafür schreiben.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden