Aha nett.
Der Rechner löst die Aufgabe aber nicht wirklich ![]()
Beiträge von nuts
-
-
Hey,
folgende Aufgabe zu einem Leasingvertrag:
Anschaffungswert: 47.900 €
Sonderanzahlung: 24.908€
Leasinglaufzeit: 54 Monate
Restwert: 13.000€
Monatliche Leasingrate: 293€Gesucht ist der Zinssatz und zwar gibt es eine näherungsweise Methode über das durchschnittlich gebundene Kapital.
Das braucht man um schnell mit dem Taschenrechner eine Antwort geben zu können.
Ein Autoitskript mit der genauen Berechnung wäre aber auch interessant
Meine Lösung:
Bezahlten Leasingraten über 54 Monate = L = 293€ * 54 = 15882€
Tilgunsanteil der Leasingraten= T = Anschaffunswert - Sondervorauszahlung - Restwert = 47900€ - 24908€ - 13000€ = 9992€
Zinsanteil der Leasingraten= Z = L - T = 15882€ - 9992€ = 5830€
Durchschnittlich gebundenes Kapital= D = T/ 2 + Restwert = 9992€/2 + 13000€ = 17996€
Zinsatz p.a = X
==> D * X * 4,5 = 5830€
==> 17996€ * X * 4,5 = 5830€
X = 0,08 = 8%Stimmt das so oder ist da ein Denkfehler drin?
Gruß nuts
-
Oder so:
[autoit]
[/autoit][autoit][/autoit][autoit]
$bak='http://www.autoit.com/index.php?form=ThreadAdd&boardID=2'$result =StringRegExpReplace($bak,"(.de|.com)(.*)",'$1')
[/autoit]
MsgBox(4096, "Fertig:", $result) -
Etwas ausgebaut (inkl. Header und Colwidth):
Spoiler anzeigen
[autoit]
[/autoit]
Func _Listviewtoarray($hWnd, $dim = Default)
; Nuts (http://www.autoit.de)
; hwnd: Handle to the Listview
; Dim: default = all Columns
; else = only user defined Column
;Error: 0 = Incorrect handle
; 1 = $dim > Columcount
If Not IsHWnd($hWnd) Then SetError(0,0,0)
Local $col, $getcol, $getwidth, $lcount, $atext, $counter = 2
$col = _GUICtrlListView_GetColumnCount($hWnd)
$lcount = _GUICtrlListView_GetItemCount($hWnd)
Switch $dim
Case Default
Local $alistview[$lcount + 2][$col]
For $y = 0 To $col - 1
$getcol = _GUICtrlListView_GetColumn($hWnd, $y)
$getwidth = _GUICtrlListView_GetColumnWidth($hWnd, $y)
$alistview[0][$y] = $getwidth
$alistview[1][$y] = $getcol[5]
Next
For $i = 0 To $lcount - 1
$atext = _GUICtrlListView_GetItemTextArray($hWnd, $i)
For $x = 0 To $atext[0] - 1
$alistview[$counter][$x] = $atext[$x + 1]
Next
$counter += 1
Next
Return $alistview
Case Else
If $dim > $col Then SetError(1,0,0)
Local $alistview[$lcount + 2]
$getcol = _GUICtrlListView_GetColumn($hWnd, $dim)
$alistview[0] = _GUICtrlListView_GetColumnWidth($hWnd, $dim)
$alistview[1] = $getcol[5]
For $i = 0 To $lcount - 1
$alistview[$i + 2] = _GUICtrlListView_GetItemText($hWnd, $i, $dim)
Next
Return $alistview
EndSwitch
EndFunc ;==>_Listviewtoarray -
Und das ist ein Argument weil (wofür) ... ?
Ein Zwischending zwischen C/C++ und vereinfachtem Programmieraufwand wie in autoit wäre C#.
Ich kann einem 2MB Tool, dass 70MB Laufzeitumgebungen braucht aber nichts abgewinnen. -
-
Das sind nur die cmdline Parameter für Eventghost selbst.
Die Steuerung des Senders ist dieses Plugin (Python):
Spoiler anzeigen
Python
Alles anzeigeneg.RegisterPlugin( name = "ELV FS20 PCE", author = "Bartman", version = "0.1." + "$LastChangedRevision: 614 $".split()[1], kind = "remote", canMultiLoad = False, description = ( 'Allows to receive events from FS20 remote controls.<br/>' '<a href="http://www.elv.de/"><img src=\"picture.jpg\"/></a>' ), url = "http://www.eventghost.org/forum/viewtopic.php?t=571", ) import binascii from eg.WinApi.HID import HIDThread from eg.WinApi.HID import GetDevicePath class Text: errorFind = "Error finding ELV FS20 PCE" Commands = { 0x00 : "Power.Off", 0x01 : "Power.Dim.1", 0x02 : "Power.Dim.2", 0x03 : "Power.Dim.3", 0x04 : "Power.Dim.4", 0x05 : "Power.Dim.5", 0x06 : "Power.Dim.6", 0x07 : "Power.Dim.7", 0x08 : "Power.Dim.8", 0x09 : "Power.Dim.9", 0x10 : "Power.Dim.10", 0x11 : "Power.Dim.11", 0x12 : "Power.Dim.12", 0x13 : "Power.Dim.13", 0x14 : "Power.Dim.14", 0x15 : "Power.Dim.15", 0x16 : "Power.On", 0x17 : "Power.Previous", 0x18 : "Power.Toggle", 0x19 : "Power.Dim.LevelUp", 0x20 : "Power.Dim.LevelDown", 0x21 : "Power.Dim.UpAndDown", 0x22 : "Program.Time", 0x23 : "SendStatus", 0x24 : "Power.OffPreviousValue", 0x25 : "Power.OnOff", 0x26 : "Power.PreviousValueOff", 0x27 : "Program.Reset", 0x28 : "Program.DimUpTime", 0x29 : "Program.DimDownTime", 0x30 : "Power.OnPreviousState", 0x31 : "Power.PreviousValuePreviousState", } class FS20PCE(eg.PluginClass): def __init__(self): self.version = None self.thread = None self.PendingEvents = {} def RawCallback(self, data): if not data or len(data) != 13 or ord(data[0]) != 2 or ord(data[1]) != 11: self.PrintError("invalid data") return self.version = ord(data[12]) houseCode = binascii.hexlify(data[2:6]) deviceAddress = binascii.hexlify(data[6:8]) combinedAddress = houseCode + "." + deviceAddress command = ord(data[8]) if command in Commands: commandStr = Commands[command] else: commandStr = binascii.hexlify(data[8]).upper() if combinedAddress in self.PendingEvents: #cancel pending events for this device try: timerEntry = self.PendingEvents[combinedAddress] startTime, func, args, kwargs = timerEntry eg.scheduler.CancelTask(timerEntry) self.TriggerEvent(combinedAddress + "." + args[1] + ".Timer.Cancel") del self.PendingEvents[combinedAddress] except KeyError: #may happen due to multithreaded access to self.PendingEvents dict pass except ValueError: #may happen due to multithreaded access to eg.scheduler's internal list pass validTime = ord(data[9]) > 15 if validTime: timeStr = binascii.hexlify(data[9:12]) timeStr = timeStr[1:]#cut the one eventTime = float(timeStr) * 0.25 if (commandStr.startswith("Power.")): #parsing time if (eventTime > 0): timerEntry = eg.scheduler.AddTask(eventTime, self.SchedulerCallback, combinedAddress, commandStr) self.PendingEvents[combinedAddress] = timerEntry self.TriggerEvent(combinedAddress + "." + commandStr + ".Timer.Start", payload = eventTime) else: self.TriggerEvent(combinedAddress + "." + commandStr) else: #put the time in the payload self.TriggerEvent(combinedAddress + "." + commandStr, payload = eventTime) else: self.TriggerEvent(combinedAddress + "." + commandStr) def SchedulerCallback(self, combinedAddress, commandStr): if combinedAddress in self.PendingEvents: #cancel pending events for this device try: timerEntry = self.PendingEvents[combinedAddress] startTime, func, args, kwargs = timerEntry if (args[1] == commandStr): #maybe an old entry if commandStr does not match self.TriggerEvent(combinedAddress + "." + commandStr + ".Timer.Finish") del self.PendingEvents[combinedAddress] except KeyError: #may happen due to multithreaded access to self.PendingEvents dict pass def PrintVersion(self): #create the following python command to show version number #eg.plugins.FS20PCE.plugin.PrintVersion() if self.version == None: print "Need to receive data first. Please press a button and try again." else: versionMajor = self.version / 16 versionMinor = self.version % 16 print "Firmware version %d.%d" % (versionMajor, versionMinor) def StopCallback(self): self.TriggerEvent("Stopped") self.thread = None def GetMyDevicePath(self): path = GetDevicePath( None, 6383, 57364, None, 0, True, 0) return path; def SetupHidThread(self, newDevicePath): #create thread self.thread = HIDThread(self.name, newDevicePath) self.thread.start() self.thread.SetStopCallback(self.StopCallback) self.thread.SetRawCallback(self.RawCallback) def ReconnectDevice(self, event): """method to reconnect a disconnect device""" if self.thread == None: #updating device list #check if the right device was connected #getting devicePath newDevicePath = self.GetMyDevicePath() if not newDevicePath: #wrong device return self.SetupHidThread(newDevicePath) def __start__(self): #Bind plug in to RegisterDeviceNotification message eg.Bind("System.DeviceAttached", self.ReconnectDevice) newDevicePath = self.GetMyDevicePath() if not newDevicePath: #device not found self.PrintError(Text.errorFind) else: self.SetupHidThread(newDevicePath) def __stop__(self): if self.thread: self.thread.AbortThread() #unbind from RegisterDeviceNotification message eg.Unbind("System.DeviceAttached", self.ReconnectDevice)
Ganz so einfach ists also nicht.
-
Dieses zeitaufwendige Problem schreit doch gerade nach Automatisierung

-
Ich werd nu doch lieber etwas fertiges nehmen:
http://www.elv.de/FS20-PC-Sender…0/detail2_27743Läuft schon mti Eventghost, vielleicht mach ich auch noch eine UDF für Autoit dazu.
-
Soll das eine Regexp Übung werden?
Weil das lässt sich doch einfach und schnell(er) mit Stringbetween und stringsplit lösen.
So aus dem Kopf heraus.
[autoit]
[/autoit]
$sbetween=_Stringbetween($stext, "(", ")")
$asplit=Stringsplit($sbetween, ",")
$ret=Stringreplace($asplit[2], "word", "") -
Könnte bitte jemand für einen Endverbraucher den Stromkreis skizzieren (bzw. beschreiben)?
Was ein Relais ist weiss ich schon, nur ich kriegs nicht zuende gedacht. -
Und wie gehe ich dann weiter vor?
PC -> USB -> den Conrad-Bausatz -> .?.?.?.?. -> normale Steckerleiste -> Heimkinogeräte
Subwoofer, externe Endstufe, die Beleuchtung (1 normaler Steckdosenanschluss) solle per PC gesteuert werden.
D.h. mind. 3 verschiedene Quellen. -
Hey,
für mein Heimkino bräuchte ich Steckerleisten, die vom PC aus steuerbar sind (an/aus).
Die Schnittstelle wäre eigentlich egal, USB ist wohl am einfachsten.
z.B. sowas: http://www.pearl.de/a-NC5153-5452.…2NqrBCgdlnp-RRsAllerdings ist mir nicht klar wie man an die die Steuerung genau aussieht.
Ich bräuchte eben was mit DLL/API um das in meine Skripte einzubauen und keine fertige Software, die per Mausklicks bedient werden muss.Hat damit schon jemand Erfahrungen sammeln können und kann mir ein entsprechendes Produkt empfehlen?
So bis max. 70€Gruß nuts
-
Glückwunsch
Was fürn Schnitt haste erreicht? -
Funktioniert und zwar auch im Systemkonto!
Danke anno2008
-
Muss man sich nicht erst einloggen und dann den GET Request hinterherschicken?
Irgendwie hakts da bei mir. -
Inetget schafft es leider auch nicht (nur im Systemkonto) ...
Kann mir vielleicht mal jemand ein Beispiel zu diesem Aufruf mit WinHTTP machen?
[autoit]InetRead('httP://'&$username&':'&$pw&'@'&$IP&':'&$port&"/api/status.html",1)
[/autoit]
/api/status.html ist ein GET Request -
Werds mal versuchen.
Gibts ne einfache Möglichkeit mein Skript im Systemkonto laufen zu lassen?
Das debuggen über den Webserver geht mir langsam auf die Nerven
-
PrimA - der Primzahlengenerator
Letztes mal hat progandy gewonnen? -
Nee muss nicht umbedingt sein.
Allerdings kann ich mit dem HTTP Kram nicht so viel anfangen und hab mich meistens dann doch drum gedrückt.Scheint hier aber wohl unausweichlich, wobei dieses Problem mehr als seltsam ist.

-
Hm Inetread auf https://autoit.de/www.google.de funtkioniert innerhalb des Systemkontos, nur die Abfrage auf den Webserver nicht

Ich fasse nochmal zusammen:
InetRead('httP://'&$username&':'&$pw&'@'&$IP&':'&$port&"/api/status.html",1) als Admin funktioniert
Inetread(http://www.google.de,1) als Admin funktioniert
Inetread(http://www.google.de,1) im Systemkonto funktioniertInetRead('httP://'&$username&':'&$pw&'@'&$IP&':'&$port&"/api/status.html",1) im Systemkonto funktioniert nicht
Fällt dazu jemand was ein?

Edit\ Vom Webserver her spricht lt. Entwickler nichts gegen den Aufruf innerhalb des Systemkontos. Verstehe das echt nicht
