-
Innlegg
28 -
Ble med
-
Besøkte siden sist
Innholdstype
Profiler
Forum
Blogger
Nedlastninger
Artikler
Regler
Hendelser
Galleri
Store
Innlegg skrevet av Julius
-
-
Med litt triksing/hacking fikk jeg kjørt c# script i tenScripting.
- Lag et c# prosjekt ved siden av.
- Legg scriptet ditt inn der, jeg kalte mitt InfluxDBScript
- Hack triggingen...... i tenScript.vb RunScript metoden....
anObj = Activator.CreateInstance(t) Dim instance = New InfluxDBScript instance.hs = hs anObj = instance t = instance.GetType '' Log we are now running a script MyLog("Running " & sd.ClassName & "." & sd.MethodName) hs.WriteLog("tenScripting", "****************************** Debug Started for " & sd.ClassName & "." & sd.MethodName) '' Run the Script Try instance.Test(pParms) t.InvokeMember("Test", BindingFlags.InvokeMethod Or BindingFlags.Instance Or BindingFlags.Public Or BindingFlags.IgnoreCase, Nothing, anObj, pParms, Nothing, Nothing, Nothing)
- Med en god dose tålmodighet og tid (noe jeg har alt for lite av) kan man fikse tenScript til å gjøre c# scripts.
Mitt problem (som totalt newbee på Homeseer) er at c# scriptet som kjører fint i tenScript ikke er i nærheten av å kjøre i Homeseer.... Jeg prøvde å konvertere dette scriptet til c#, uten hell så langt. Er det virkelig slik at man må skrive full navn for alle typer? Får ikke using til å fungere? Er det noe godt starting point for c# scripting i Homeseer?
-
On 02/05/2018 at 21:48, Actibus said:
Jeg prøvde denne ikveld, den logget 1 device, også kom det bare feilmeldinger for hver eneste device change etterpå
Error: System.Net.WebException: The operation has timed out at Microsoft.VisualBasic.CompilerServices.Symbols.Container.Inv okeMethod(Method TargetProcedure, Object[] Arguments, Boolean[] CopyBack, BindingFlags Flags) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.Object LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGe t(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack) at scriptcode9.VBWrapper.Main(Object Parms)
Du kan øke timeouten:
Dim data As Byte() = encoding.GetBytes(postdata) httpWebRequest.ContentLength = data.Length httpWebRequest.Timeout = 5000 Dim myStream As Stream = httpWebRequest.GetRequestStream()
Det måtte jeg gjøre når influx kjørte på en annen maskin.
C# scripting med intellisense
i Scripts
Skrevet
Var litt uoversiktlig feilmelding; det var ikke using som import som ikke fungerete:
using (var stream = request.GetRequestStream()) { stream.Write(data, 0, data.Length); }
Det var denne using..... Og det virker fortsatt som om using (som import) ikke unngår at man må skrive fully qualified name:
var data = System.Text.Encoding.ASCII.GetBytes(query);
I stedet for:
using System.Text; ... var data = Encoding.ASCII.GetBytes(query);