NEWS
[Vorlage] Script und VIS: Druckerpatronen Zustand
-
aaah, ich glaube ich verstehe.
du hast eine schwarze patrone und eine Farbpatrone mit drei Farben ?
so würde ich das aus der XML interpretieren.
Daher funktioniert schwarz aber nicht Farbe.
vG Looxer
-
Hi
ja genau.
Wenn ich auf der HP Seite mit der IP Adresse gehe, dann zeigt er mir ja auch den Tintenstand für die eine Farbpatrone mit den 3 Farben an und für die schwarze Patrone.
Kann man das nicht auch übernehmen?
-
Hi,
ich habe das Programm mal angepasst, kann aber leider nicht testen. Vielleicht hilft das aber schon ?
vG Looxer
Progamm hier:
! ````
/* bringt den Druckertintenstand von WEB enabled HP Tintenstrahler in ioBroker
Drucker HP Tintenstand für iobroker ermitteln
Basierend auf CCU2 Script fuer HP Drucker http://homematic-forum.de/forum/viewtopic.php?f=31&t=25140
und dem angepassten Script von PiX aus iobroker http://forum.iobroker.de/viewtopic.php?f=21&t=910&p=6931&hilit=drucker&sid=6780c0b33361e199846dcb584c8dc289&sid=6780c0b33361e199846dcb584c8dc289#p6931
Author : looxer01 - 22.12.2015
Version 0.2 29.01.2015 Druckerparameter jetzt einstellbar im Bereich der Einstellungen
*/
! // hier Drucker parameter einstellen - vor dem ersten Speichern des Scripts
! var druckerIP = '192.168.0.56'; // Drucker IP
var druckermod = "8900Pro"; // Drucker Modell - Strukturelement in den Variablen
var TinteID = "950XL"; // Tinte - Tintenbezeichnung
var TinteCyanBez = "CN046AE"; // Bezeichnung fuer Cyan
var TinteYellowBez = "CN048AE"; // Bezeichnung fuer Yellow
var TinteBlackBez = "CN045AE"; // Bezeichnung fuer Black
var TinteMagentaBez = "CN047AE"; // Bezeichnung fuer Magenta
var TinteMCYBez = "MCY____"; // Bezeichnung fuer Magenta, Yellow, Cyan
! // ende Einstellungen
! var druckerURL = "http://" + druckerIP + "/DevMgmt/ConsumableConfigDyn.xml"; // URL nicht ändern
var request = require('request'); // Enabling for URL Request
var cut1 = "dd:ConsumableLabelCode"; // Marker für color
var cut2 = "dd:ConsumablePercentageLevelRemaining"; // Marker für Level
! var level_M = 0; // Tintenlevel
var level_C = 0; // Tintenlevel
var level_Y = 0; // Tintenlevel
var level_K = 0;
var level_MCY = 0;
! // Tintenlevelvar DruckIP = "Drucker.HP." + druckermod + ".IP"; // Variable für create states
var DruckerName = "Drucker.HP." + druckermod + ".Name"; // Variable für create states
var Modell = "Drucker.HP." + druckermod + ".Modell"; // Variable für create states
var Tinte = "Drucker.HP." + druckermod + ".Tinte"; // Variable für create states
var CyanInk = "Drucker.HP." + druckermod + ".Cyan.Ink"; // Variable für create states
var YellowInk = "Drucker.HP." + druckermod + ".Yellow.Ink"; // Variable für create states
var BlackInk = "Drucker.HP." + druckermod + ".Black.Ink"; // Variable für create states
var MagentaInk = "Drucker.HP." + druckermod + ".Magenta.Ink"; // Variable für create states
var MCYInk = "Drucker.HP." + druckermod + ".MCY.Ink"; // Variable für create states! var CyanLevel = "Drucker.HP." + druckermod + ".Cyan.Level"; // Variable für create states
var YellowLevel = "Drucker.HP." + druckermod + ".Yellow.Level"; // Variable für create states
var BlackLevel = "Drucker.HP." + druckermod + ".Black.Level"; // Variable für create states
var MagentaLevel= "Drucker.HP." + druckermod + ".Magenta.Level"; // Variable für create states
var MCYLevel = "Drucker.HP." + druckermod + ".Magenta.Level"; // Variable für create states
! // Anlegen der Variablen
createState(DruckIP,druckerIP);
createState(DruckerName,druckermod);
createState(Tinte,TinteID);
! createState(CyanInk,TinteCyanBez);
createState(YellowInk,TinteYellowBez);
createState(BlackInk,TinteBlackBez);
createState(MagentaInk,TinteMagentaBez);
createState(MCYInk,TinteMCYBez);
! createState(CyanLevel,0);
createState(YellowLevel,0);
createState(BlackLevel),0;
createState(MagentaLevel,0);
createState(MCYLevel,0);
! // Schedule für die Updates
schedule("*/20 * * * *", function () { // alle 20 Minutenrequest(druckerURL, function (error, response, body) { // Einlesen der XML Information
if (!error && response.statusCode == 200) { // error check// Farbe nummer 1
var eins_position = body.indexOf(cut1) + cut1.length + 1; // erste Position finden
var color = body.substring(eins_position, eins_position+1) ; // erste Position ist die Farbe
var zwei_position = body.indexOf(cut2)+ cut2.length + 1; // zweite Position finden
var level_string = body.substring(zwei_position, zwei_position+2) ; // zweite Position ist der level
var eins_lastpos = eins_position +10; // merken position eins
var zwei_lastpos = zwei_position + 10; // merken position zweiif("M" == color){ level_M = level_string; } if("X" == color){ level_C = level_string; } if("Y" == color){ level_Y = level_string; } if("K" == color){ level_K = level_string; } if("MCY" === body.substring(eins_position, eins_position+3)) level_MCY = level_string; }
! // Farbe nummer 2
eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ;
color = body.substring(eins_position, eins_position+1) ;
zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length + 1;
level_string = body.substring(zwei_position, zwei_position+2) ;if("M" == color){ level_M = level_string; } if("C" == color){ level_C = level_string; } if("Y" == color){ level_Y = level_string; } if("K" == color){ level_K = level_string; } if("MCY" === body.substring(eins_position, eins_position+3)) level_MCY = level_string; } eins_lastpos = eins_position + 10; zwei_lastpos = zwei_position + 10;
! // Farbe nummer 3
eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1;
color = body.substring(eins_position, eins_position+1) ;
zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length + 1;
level_string = body.substring(zwei_position, zwei_position+2) ;if("M" == color){ level_M = level_string; } if("C" == color){ level_C = level_string; } if("Y" == color){ level_Y = level_string; } if("K" == color){ level_K = level_string; } if("MCY" === body.substring(eins_position, eins_position+3)) level_MCY = level_string; } eins_lastpos = eins_position + 10; zwei_lastpos = zwei_position + 10;
!
// Farbe nummer 4
eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1;
color = body.substring(eins_position, eins_position+1) ;
zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length + 1;
level_string = body.substring(zwei_position, zwei_position+2) ;if("M" == color){ level_M = level_string; } if("C" == color){ level_C = level_string; } if("Y" == color){ level_Y = level_string; } if("K" == color){ level_K = level_string; } if("MCY" === body.substring(eins_position, eins_position+3)) level_MCY = level_string; } eins_lastpos = eins_position + 10; zwei_lastpos = zwei_position + 10;
!
log('Drucker Level M ' + level_M , "info");
log('Drucker Level C ' + level_C , "info");
log('Drucker Level Y ' + level_Y , "info");
log('Drucker Level K ' + level_K , "info");
log('Drucker Level MCY ' + level_K , "info");// der folgende Bereich muss für ggf abweichenden Druckertyp angepasst werden
setState(CyanLevel, level_C);
setState(YellowLevel, level_Y);
setState(BlackLevel, level_K);
setState(MagentaLevel, level_M);
setState(MCYLevel, level_M);
setState(DruckIP, druckerIP);!
} else { // if (!error && response.statusCode == 200) {
log(error);
log('Kein Drucker gefunden');}
! }); // end of request
! }); // end of schedule
! ```` -
Hi Looxer01
soll ich mein Script mit den von dir geposteten ersetzen?
-
ja , genau, und du solltest noch die Einstellungen anpassen.
vG Looxer
-
Hi
hab das Script überschrieben und dann bei Variable noch "Drucker_MCY" angelegt. War das richtig? Was muss ich noch ändern? Wie ging das noch mal , das ich im VIS die neue ID auswählen kann?
Die Variablen heissen bei mir
Drucker_Black
Drucker_Cyan
Drucker_MCY
Drucker_Yellow
Drucker_Magenta
Bin leider schon länger nicht mehr in der Materie drin.
-
oh je, jetzt habe ich das ganze Dingen umgeschrieben und kann nicht wirklich testen.
Das muesstest du jetzt uebernehmen und mir das log schicken. Ich gehe nicht davon aus, dass es auf Anhieb laeuft aber wir kriegen das hin.
zum Testen brauchst du nichts machen, wenn die IP stimmt.
Dann schaust du einfach nur in die hoffentlich angelegten Objekte.
vG Looxer
! ````
/* bringt den Druckertintenstand von WEB enabled HP Tintenstrahler in ioBroker
Drucker HP Tintenstand für iobroker ermitteln
Basierend auf CCU2 Script fuer HP Drucker http://homematic-forum.de/forum/viewtopic.php?f=31&t=25140
und dem angepassten Script von PiX aus iobroker http://forum.iobroker.de/viewtopic.php?f=21&t=910&p=6931&hilit=drucker&sid=6780c0b33361e199846dcb584c8dc289&sid=6780c0b33361e199846dcb584c8dc289#p6931
Author : looxer01 - 22.12.2015
Version 0.2 29.01.2015 Druckerparameter jetzt einstellbar im Bereich der Einstellungen
/
! // hier Drucker parameter einstellen - vor dem ersten Speichern des Scripts
! var druckerIP = '192.168.0.11'; // Drucker IP
var druckermod = "HP2540"; // Drucker Modell - Strukturelement in den Variablen
var TinteID = "950XL"; // Tinte - Tintenbezeichnung
var TinteMCYBez = "MCY____"; // Bezeichnung fuer Magenta, Yellow, Cyan
var TinteKBez = "K______"; // Bezeichnung fuer Black
! // ende Einstellungen
! var druckerURL = "http://" + druckerIP + "/DevMgmt/ConsumableConfigDyn.xml"; // URL nicht ändern
var request = require('request'); // Enabling for URL Request
var cut1 = "dd:ConsumableLabelCode"; // Marker für color
var cut2 = "dd:ConsumablePercentageLevelRemaining"; // Marker für Level
! var level_K = 0;
var level_MCY = 0;
! // Tintenlevel
! var DruckIP = "Drucker.HP." + druckermod + ".IP"; // Variable für create states
var Modell = "Drucker.HP." + druckermod + ".Modell"; // Variable für create states
var Tinte = "Drucker.HP." + druckermod + ".Tinte"; // Variable für create states
var MCYInk = "Drucker.HP." + druckermod + ".MCY.Ink"; // Variable für create states
var MCYLevel = "Drucker.HP." + druckermod + ".MCY.Level"; // Variable für create states
var BlackInk = "Drucker.HP." + druckermod + ".Black.Ink"; // Variable für create states
var BlackLevel = "Drucker.HP." + druckermod + ".BlackK.Level"; // Variable für create states
! // Anlegen der Variablen
createState(DruckIP,druckerIP);
createState(DruckerName,druckermod);
createState(Tinte,TinteID);
! createState(MCYInk,TinteMCYBez);
createState(MCYLevel,0);
! createState(BlackInk,TinteKBez);
createState(BlackLevel,0);
! // Schedule für die Updates
schedule("/20 * * * *", function () { // alle 20 Minutenrequest(druckerURL, function (error, response, body) { // Einlesen der XML Information if (!error && response.statusCode == 200) { // error check // Farbe nummer 1 var eins_position = body.indexOf(cut1) + cut1.length + 1; // erste Position finden var zwei_position = body.indexOf(cut2)+ cut2.length + 1; // zweite Position finden var level_string = body.substring(zwei_position, zwei_position+2) ; // zweite Position ist der level var eins_lastpos = eins_position +10; // merken position eins var zwei_lastpos = zwei_position + 10; // merken position zwei if("K" == body.substring(eins_position, eins_position+1)) { level_K = level_string; } if("MCY" === body.substring(eins_position, eins_position+3)) { level_MCY = level_string; } // Farbe nummer 2 eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ; zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length + 1; level_string = body.substring(zwei_position, zwei_position+2) ; eins_lastpos = eins_position + 10; zwei_lastpos = zwei_position + 10; if("K" == body.substring(eins_position, eins_position+1)) { level_K = level_string; } if("MCY" == body.substring(eins_position, eins_position+3)) { level_MCY = level_string; } log('Drucker Level K ' + level_K , "info"); log('Drucker Level MCY ' + level_MCY , "info"); // der folgende Bereich muss für ggf abweichenden Druckertyp angepasst werden setState(BlackLevel, level_K); setState(MCYLevel, level_MCY); setState(DruckIP, druckerIP); } else { // if (!error && response.statusCode == 200) { log(error); log('Kein Drucker gefunden'); } // endif error }); // end of request
! }); // end of schedule
! ```` -
Hi
ja die IP ist richtig.
Im IOBROKER ADMIN unter Objekte habe ich nur die alten drin stehen, nicht das neue "Drucker_MCY".
Wie war das nochmal?
-
jap, erster Fehler gefunden - bin dran
-
versuch es mal damit.
Schwarz sollte auf jeden Fall gehen.
! ````
/* bringt den Druckertintenstand von WEB enabled HP Tintenstrahler in ioBroker
Drucker HP Tintenstand für iobroker ermitteln
Basierend auf CCU2 Script fuer HP Drucker http://homematic-forum.de/forum/viewtopic.php?f=31&t=25140
und dem angepassten Script von PiX aus iobroker http://forum.iobroker.de/viewtopic.php?f=21&t=910&p=6931&hilit=drucker&sid=6780c0b33361e199846dcb584c8dc289&sid=6780c0b33361e199846dcb584c8dc289#p6931
Author : looxer01 - 22.12.2015
Version 0.2 29.01.2015 Druckerparameter jetzt einstellbar im Bereich der Einstellungen
/
! // hier Drucker parameter einstellen - vor dem ersten Speichern des Scripts
! var druckerIP = '192.168.0.11'; // Drucker IP
var druckermod = "HP2540"; // Drucker Modell - Strukturelement in den Variablen
var TinteID = "950XL"; // Tinte - Tintenbezeichnung
var TinteCMYBez = "CMY____"; // Bezeichnung fuer Magenta, Yellow, Cyan
var TinteKBez = "K______"; // Bezeichnung fuer Black
! // ende Einstellungen
! var druckerURL = "http://" + druckerIP + "/DevMgmt/ConsumableConfigDyn.xml"; // URL nicht ändern
var DruckerName = "Drucker.HP." + druckermod + ".Name"; // Variable für create states=
var request = require('request'); // Enabling for URL Request
var cut1 = "dd:ConsumableLabelCode"; // Marker für color
var cut2 = "dd:ConsumablePercentageLevelRemaining"; // Marker für Level
! var level_K = 0;
var level_CMY = 0;
! // Tintenlevel
! var DruckIP = "Drucker.HP." + druckermod + ".IP"; // Variable für create states
var Modell = "Drucker.HP." + druckermod + ".Modell"; // Variable für create states
var Tinte = "Drucker.HP." + druckermod + ".Tinte"; // Variable für create states
var CMYInk = "Drucker.HP." + druckermod + ".CMY.Ink"; // Variable für create states
var CMYLevel = "Drucker.HP." + druckermod + ".CMY.Level"; // Variable für create states
var BlackInk = "Drucker.HP." + druckermod + ".Black.Ink"; // Variable für create states
var BlackLevel = "Drucker.HP." + druckermod + ".BlackK.Level"; // Variable für create states
! // Anlegen der Variablen
createState(DruckIP,druckerIP);
createState(DruckerName,druckermod);
createState(Tinte,TinteID);
! createState(CMYInk,TinteCMYBez);
createState(CMYLevel,0);
! createState(BlackInk,TinteKBez);
createState(BlackLevel,0);
! var eins_position = 0;
var zwei_position = 0;
level_string = " ";
var eins_lastpos = 0;
var zwei_lastpos = 0
! // Schedule für die Updates
schedule("/1 * * * *", function () { // alle 20 Minutenrequest(druckerURL, function (error, response, body) { // Einlesen der XML Information if (!error && response.statusCode == 200) { // error check // Farbe nummer 1 eins_position = body.indexOf(cut1) + cut1.length + 1; // erste Position finden zwei_position = body.indexOf(cut2)+ cut2.length + 1; // zweite Position finden level_string = body.substring(zwei_position, zwei_position+2) ; // zweite Position ist der level eins_lastpos = eins_position +10; // merken position eins zwei_lastpos = zwei_position + 10; // merken position zwei log('eins_position ' + eins_position , "info"); log('zwei_position ' + zwei_position , "info"); log('level_string ' + level_string , "info"); if("K" == eins_position) { level_K = level_string; } if("CMY" === body.substring(eins_position, eins_position+3)) { level_CMY = level_string; } // Farbe nummer 2 eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ; zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length + 1; level_string = body.substring(zwei_position, zwei_position+2) ; eins_lastpos = eins_position + 10; zwei_lastpos = zwei_position + 10; if("K" == body.substring(eins_position, eins_position+1)) { level_K = level_string; } if("CMY" == body.substring(eins_position, eins_position+3)) { level_CMY = level_string; }
!
// der folgende Bereich muss für ggf abweichenden Druckertyp angepasst werden
setState(BlackLevel, level_K);
setState(CMYLevel, level_CMY);
setState(DruckIP, druckerIP);} else { // if (!error && response.statusCode == 200) { log(error); log('Kein Drucker gefunden'); } // endif error }); // end of request
! }); // end of schedule
! ```` -
hat noch einen update eingestellt in den letzten pose.
Bitte nimm den Code von dort.
Geaendert habe ich den Color Code von MCY auf CMY -
-
Hi schwarz geht. Ging auch mit dem alten Script noch, aber die Farpatrone noch nicht.
-
Hi,
habe das Script nochmal angepasst. Funktioniert jetzt hoffentlich, ist aber noch nicht final.
Der schedule steht auf 1 Minute. Bitte schaue auf das log. Er sollte dort zeigen, dass er die Farbe gefunden hat.
vG Looxer
! ````
/* bringt den Druckertintenstand von WEB enabled HP Tintenstrahler in ioBroker
Drucker HP Tintenstand für iobroker ermitteln
Basierend auf CCU2 Script fuer HP Drucker http://homematic-forum.de/forum/viewtopic.php?f=31&t=25140
und dem angepassten Script von PiX aus iobroker http://forum.iobroker.de/viewtopic.php?f=21&t=910&p=6931&hilit=drucker&sid=6780c0b33361e199846dcb584c8dc289&sid=6780c0b33361e199846dcb584c8dc289#p6931
Author : looxer01 - 22.12.2015
Version 0.2 29.01.2015 Druckerparameter jetzt einstellbar im Bereich der Einstellungen
/
! // hier Drucker parameter einstellen - vor dem ersten Speichern des Scripts
! var druckerIP = '192.168.0.11'; // Drucker IP
var druckermod = "HP2540"; // Drucker Modell - Strukturelement in den Variablen
var TinteID = "950XL"; // Tinte - Tintenbezeichnung
var TinteCMYBez = "CMY____"; // Bezeichnung fuer Magenta, Yellow, Cyan
var TinteKBez = "K______"; // Bezeichnung fuer Black
! // ende Einstellungen
! var druckerURL = "http://" + druckerIP + "/DevMgmt/ConsumableConfigDyn.xml"; // URL nicht ändern
var DruckerName = "Drucker.HP." + druckermod + ".Name"; // Variable für create states=
var request = require('request'); // Enabling for URL Request
var cut1 = "dd:ConsumableLabelCode"; // Marker für color
var cut2 = "dd:ConsumablePercentageLevelRemaining"; // Marker für Level
! var level_K = 0;
var level_CMY = 0;
! // Tintenlevel
! var DruckIP = "Drucker.HP." + druckermod + ".IP"; // Variable für create states
var Modell = "Drucker.HP." + druckermod + ".Modell"; // Variable für create states
var Tinte = "Drucker.HP." + druckermod + ".Tinte"; // Variable für create states
var CMYInk = "Drucker.HP." + druckermod + ".CMY.Ink"; // Variable für create states
var CMYLevel = "Drucker.HP." + druckermod + ".CMY.Level"; // Variable für create states
var BlackInk = "Drucker.HP." + druckermod + ".Black.Ink"; // Variable für create states
var BlackLevel = "Drucker.HP." + druckermod + ".BlackK.Level"; // Variable für create states
! // Anlegen der Variablen
createState(DruckIP,druckerIP);
createState(DruckerName,druckermod);
createState(Tinte,TinteID);
! createState(CMYInk,TinteCMYBez);
createState(CMYLevel,0);
! createState(BlackInk,TinteKBez);
createState(BlackLevel,0);
! var eins_position = 0;
var zwei_position = 0;
var level_string = " ";
var eins_lastpos = 0;
var zwei_lastpos = 0;
! // Schedule für die Updates
schedule("/1 * * * *", function () { // alle 20 Minuten
log('schedule gestartet' ,"info");request(druckerURL, function (error, response, body) { // Einlesen der XML Information if (!error && response.statusCode == 200) { // error check // Farbe nummer 1 eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ; color = body.substring(eins_position, eins_position+1) ; zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length + 1; level_string = body.substring(zwei_position, zwei_position+2) ; eins_lastpos = eins_position +10; // merken position eins zwei_lastpos = zwei_position + 10; // merken position zwei if("K" == color) { level_K = level_string; log('1Level K gefunden Level ist ' + level_K ,"info"); } if("C" == color) { level_CMY = level_string; log('1Level CMY gefunden Level ist ' + level_CMY ,"info"); }
! // Farbe nummer 2
eins_position = body.indexOf(cut1, eins_lastpos) + cut1.length + 1 ;
color = body.substring(eins_position, eins_position+1) ;
zwei_position = body.indexOf(cut2,zwei_lastpos)+ cut2.length + 1;
level_string = body.substring(zwei_position, zwei_position+2) ;
eins_lastpos = eins_position + 10;
zwei_lastpos = zwei_position + 10;
if("K" == color) {
level_K = level_string;
log('2Level K gefunden Level ist ' + level_K ,"info");
}
if("C" == color) {
level_CMY = level_string;
log('2Level CMY gefunden Level ist ' + level_CMY ,"info");
}! // Speichern der Werte
setState(BlackLevel, level_K);
setState(CMYLevel, level_CMY);
setState(DruckIP, druckerIP);} else { // if (!error && response.statusCode == 200) { log(error); log('Kein Drucker gefunden'); } // endif error }); // end of request
! }); // end of schedule
! ```` -
Hallo zusammen,
gibts da auch eine Lösung für Canon-Drucker?
-
Hallo,
hat der Canon Drucker einen Webserver oder gibt es eine XML/JSON Datei, die man aufrufen kann? Dann poste die mal.
Gruß
Pix
-
Hi,
ich habe das HP-Script auf 2 Cartridge Drucker von HP angepasst.
Script ist im post vom 22.12.2015, 16:49
vG Looxer
-
Läuft super mit dem HP 2540 Drucker.
Danke Looxer
-
@pix:Hallo,
hat der Canon Drucker einen Webserver oder gibt es eine XML/JSON Datei, die man aufrufen kann? Dann poste die mal.
Gruß
Pix `
Hallo Pix,
da gibt es einen Webserver, aber es werden keine Tintenstände angezeigt. Nur Netzwerk-Sachen
Damit war's das
-
Hallo Ihr,
ginge das auch für einen Laser Drucker.
Ich habe einen Samsumg 2160, bei dem ich die Füllstand über eine Webseite abrufen kann
Wenn ich mir den Quelltext der Seite anschaue, dann sehe ich aber den Füllstand leider nicht direkt:
! <title>SyncThru Web Service</title>
vielleicht kann mir einer einen Tipp geben, wie ich hier weiterkomme ?
Gruss
thomassch
-
Da sind viele Skripte eingebunden. Du müsstest schon die Inhalte Skripte hier posten. Bitte spoiler-Tag, aber mindestens Code-Tags für Code-Postings im Forum nutzen.