Antwort
Feb 20, 2016 - 22:07
Hallo Peter.
Ich weiss jetzt nicht wirklich, welche Webseite Du genau meinst, die ich Dir gemacht haben soll...
Das funktioniert aber tatsächlich als .php (im Creator zumindest, für NEO hatte ich noch keine Zeit), hab grad nochmal nachgesehen. Momentan hab ich gar kein Homematic bei mir, bin grad erst umgezogen. Aber bei der Mediola Fernbedienung in dre alten Wohnung hatte ich das Wetter als .php Seite direkt in Creator eingebunden als Webseiten Element. Das .php Dokument liegt dabei auf meinem Webserver und wird dann von der Mediola App am iPhone/iPad direkt mit angezeigt.
Hier mal der Link für das Wetter zum testen, das funktioniert wunderbar im Creator und den dazugehörigen Apps:
http://nicolas-eric.de/aiowetter/wett...
So schaut es dann in der App aus (nicht wundern, die Temperaur Sensoren rechts unten zeigen nur "?" an, habe wie gesagt momentan kein Homematic):
http://up.picr.de/24653147sa.jpg
Gruss Nico
Von
hallo Nicolas
das war die Seite:
/**
* Author: Nicolas
*
* TaskList Class
* @param options
* @constructor
*/
var TaskList = function(options){
/**
* Default Settings
* @type {{listWidth: string, listPadding: string, listMargin: string, listBorderRadius: string, listBorder: string, listElementPadding: string, listElementBorder: string, listElementNameWidth: string, buttonStyle: string, buttonWidth: number, buttonHeight: number, buttonTextOn: string, buttonTextOff: string, buttonRight: string, fontWeight: string, fontSize: string, fontColor: string, backgroundColor: string, borderColor: string}}
*/
this.options = {
listWidth : "350px",
listPadding : "0 15px",
listMargin : "5px",
listBorderRadius : "5px",
listBorder : "1px solid #555",
listElementPadding : "20px 0",
listElementBorder : "1px solid #555",
listElementNameWidth: "250px",
buttonStyle : "toggle-soft",
buttonWidth: 80,
buttonHeight: 20,
buttonTextOn : "Aktiv",
buttonTextOff : "Inaktiv",
buttonRight : "15px",
fontWeight : 'bold',
fontSize: '20px',
fontColor : '#fff',
backgroundColor : '#202020',
borderColor : '#555'
};
//set custom options
$.extend(this.options, options);
this.$el = $(this.options.id);
this._init();
};
/**
* Init TaskList
* Retrieves tasks and addes thme to the list
* @private
*/
TaskList.prototype._init = function(){
var self = this;
this._formatList();
//retrieve tasks
this._getTasks(function(tasks){
if(!tasks) {
return;
}
//add list elements to DOM
for(var i=0; i<tasks.length; i++) {
var lastElement = false;
if(i == tasks.length -1) {
lastElement = true;
}
self._addListElement(tasks[i], lastElement);
}
});
};
/**
* Add single list elements to the task list
* @param task
* @param lastElement
* @private
*/
TaskList.prototype._addListElement = function(task, lastElement){
var self = this;
var toggleActive = false;
if(task.active == "1") {
toggleActive = true;
}
var $element = $('<li></li>').appendTo(this.$el),
$name = $('<span>' + task.name + '</span>').appendTo($element),
$toggleEl = $('<div class="'+this.options.buttonStyle+'"></div>').appendTo($element).toggles({
text: {
on: this.options.buttonTextOn,
off: this.options.buttonTextOff
},
on: toggleActive,
width: this.options.buttonWidth,
height: this.options.buttonHeight
});
$name.css({
width : this.options.listElementNameWidth,
display : "inline-block",
});
$toggleEl.css({
display: "inline-block",
position: "absolute",
right: this.buttonRight,
"margin-top" : 0,
"padding-top" : 0
});
$toggleEl.data('id', task.id);
$toggleEl.on('toggle', function(e, active) {
var state = "0",
id = $(this).data('id');
if(active) {
state = "1";
}
if(id) {
self._saveTask(id, state);
}
});
$element.css({
color : this.options.fontColor,
"list-style" : "none",
padding: this.options.listElementPadding,
position : "relative"
});
//add border bottom unless its the last element in the list
if(!lastElement) {
$element.css({
"border-bottom" : this.options.listElementBorder
});
}
};
/**
* Default list formatting
* @private
*/
TaskList.prototype._formatList = function(){
//set body background
$('body').css('background', this.options.backgroundColor);
this.$el.css({
padding : this.options.listPadding,
margin : this.options.listMargin,
background : this.options.backgroundColor,
width : this.options.listWidth,
"border-radius" : this.options.listBorderRadius,
border : this.options.listBorder,
"font-size" : this.options.fontSize
});
};
/**
* Activates or deactivates a task
* @param id
* @param state
* @private
*/
TaskList.prototype._saveTask = function(id, state){
$.ajax({
url : "http://" + this.options.ip + "/command?XC_FNC=saveGroup&id="+id+"&active=" + state,
type : 'GET',
error : function(err){},
success : function(res){
}
});
};
/**
* Retrieves all the tasks from the Gateway
* @param callback
* @private
*/
TaskList.prototype._getTasks = function(callback){
var self = this;
$.ajax({
url : "http://" + this.options.ip + "/command?XC_FNC=GetAll",
type : 'GET',
error : function(err){},
success : function(res){
if(res && res.substring(0,8) === "{XC_SUC}") {
var tasks = null;
//try to parse JSON string. Could be corrupted in some cases...
try{
tasks = JSON.parse(res.substring(8));
} catch(e){}
if(!tasks) {
if(callback){
callback();
}
return;
}
//weed out tasks that we dont wanna have in our list
var list = self._filterTasks(tasks);
//call callback function
if(callback) {
callback(list);
}
}
}
})
};
/**
* Weeds out all the task that shouldn't be shown
* @param tasks
* @returns {Array}
* @private
*/
TaskList.prototype._filterTasks = function(tasks){
var list = [];
for(var i=0; i<tasks.length; i++) {
var task = tasks[i];
if(task.sys == "GROUP") {
var index = this.options.taskIds.indexOf(task.id);
if(index != -1) {
//add name
task.name = this.options.taskNames[index];
list.push(task);
}
}
}
return list;
};
$('document').ready(function(){
/**
* Create new Task list instance with options
* @type {TaskList}
*/
var tasks = new TaskList({
ip : '192.168.1.150', //gateway ip
id : '#tasks', //id of the DOM container
taskIds : ["01", "02", "03", "04", "05", "06", "07"], //array of task id that should appear in the list
taskNames : ['01 Cinema Ende', '02 Task 04 deaktivieren', '03 TV Start', '04 Rollladen Ab', '05 DVD Start', '06 Task 04 aktivieren', '07 Film Start'] //array of task names
});
});
hast Du eventuell eine Ahnung, wie ich in Apple Script einen bestimmten EVENT auslesen kann und in eine Variable schreiben kann. Mit GetStates erhalte ich alle Status, weiss aber nicht wie einen einzelnen separieren.
Also den Status von z.B. EVENT mit der adr 03
Ich möchte in einem Applescript abhängig von einem Status einen anderen Task starten.
Da ja das im Tankmanager nicht geht, könnte ich es im Mac machen.
Danke vielmals für eventuelle Hilfe
Gruss und gute Nacht
Peter
Von
Ich denke mal, das war der Nicolas hier: http://answers.mediola.com/Profile/Nicolas-/
Mit AppleScript kenne ich mich ist gar nicht aus.
Habe hier im Forum auch schon seit ca. Oktober fast gar nichts mehr geschrieben.
Von
sorry
dann wars der andere Nicolas
trotzdem gute Nacht
Neuen Kommentar hinzufügen