ich habe endlich die IPS-Lizenz bekommen und hab mich schon gefreut endlich loszulegen… Doch ich bin am verzweifeln… In der Contronics-Studio-Software war alles so leicht, im IPS schaff ich garnix
Mein Ziel: Ich will per Rechnersteuerung 5 Nachtspeicher-Heizungen und etwas Licht steuern. Angeschlossen wird alles per Velleman-Board. Die Verdrahtung ist klar. Ein Ausgang wird den Ladestromkreis für alle Speicher steuern, über die anderen soll die Nachtspeicher-Entladung gesteuert werden. Dazu soll es a) einen Automatik-Betrieb über FHZ1300 mit Temperatur-Sensoren und b) einen manuellen Betrieb geben (Heizung an/aus). In Studio hab ich da einfach alles zusammengeklickt, ein paar Scripte geschrieben und gut war… Doch in IPS weiss ich nicht mal, wo ich anfangen soll??? PHP-Grundkenntnisse sind vorhanden, alles andere hab ich gute Quellen… Doch ich weiss nicht, wie ich da wo mit welchen Scripten anfangen soll… Ich habe keine Bedenken, das später alles zu programmieren. Doch wie beginne ich? IPS scheint mir zu hoch zu sein^^ Doch ich will nicht wieder einen Rückschritt zu Contronics machen g
Okay… Die Flashs habe ich schon mal gesehen… Haben mir aber nicht wirklich geholfen… Was ich dort z.B. nicht verstehe: Wenn ich an meinem Velleman-Board eine Variable mit einem ditialen Input verknüfe, kann ich einstellen, ob „toggle true“ oder „toggle false“. Muss ich den Wert immer wieder durch Programmierung zurücksetzen? Wenn ich jetzt also über einen Eingang einen Ausgang ein- und ausschalten will… Wie würde ich das machen?
Gruss Daniel
PS: Dass ich das mit dem Forum hier hinbekomme, bin ich überzeugt von
Dies mal probiert obs dir hilft? Unten ist ein Scriptbeispiel wie man damit arbeitet. Und hier eine übersicht der Velleman-Befehle. Wenn du nicht weiter kommst immer fragen. Hier wird keiner hängen gelassen
Du hast da eine andere Software erwähnt - kann Du mal bitte ein Skript-Beisiel hier posten, damit ich mir ein Bild machen kann …
Das Problem sind sehr kleine Schaltimpulse mit steigender oder fallender Flanke.
Um diese zu erfassen, muss man „zu Fuß“ die zugehörige Status-Variable wieder zurück setzen (siehe Bild).
Damit man keine Endlosschleifen (immer wiederkehrende Trigger) bekommt,
darf man nur mit OnValue triggern oder muss andernfalls folgenden Code voranstellen:
if (GetValueBoolean("Vell_Digi_In_1") == False) {
return;
}
// hier geht es dann weiter ...
SetValueBoolean("Vell_Digi_In_1", False);
Danke Euch allen! Ihr seid klasse! Ich habe die ersten Schritte geschafft
Ich habe jetzt zwei Scripte geschrieben (Heizung Büro an und aus). Soweit kein Problem, da diese an Ausgang 1 liegt. Ich mach also
VELLEUSB_WriteDigital($iid, 1);
zum einschalten und
VELLEUSB_WriteDigital($iid, 0);
zum ausschalten.
Heizung im Aufenthaltsraum (Ausgang 2), schalte ich über
VELLEUSB_WriteDigital($iid, 2);
ein. Nur wie aus? Wenn ich das richtig verstanden habe ist die Wertigkeit der Ausgabe eine Addition aller geschalteten Eingänge. Also 1 für den ersten, 2 für den zweiten, 4 für den vierten, … Welchen Codeschnipsel nehm ich da, um Heizung 2, 3, 4 ein- und auszuschalten. Weil mein Code für Heizung 1 ist damit ja auch Müll, weil er Heizung 1 ein- und alle anderen ausschalten würde… Wenn ich das richtig verstanden habe
ich glaub ich habs^^
ich mach mir ne variable, in der die werte addiert werden. in jedem script wird das dann passend addiert oder subtrahiert und am ende der neue wert an das board übergeben
richtig oder falsch gedacht?
Problem an der Sache: Wird das Script nun sehr oft gestartet, schalten nach und nach alle Heizungen ab… Das ist nicht Sinn der Sache… Es muss also irgendwie noch eine Abfrage rein, ob es von den Werten her passt, sie überhaupt abzuschalten, also den Wert um 1 herabzusetzen…
Das bedeutet du musst in Binär umrechnen. Gezählt wird von Rechts.
00000000 ist in Dezimal „0“ und bedeutet: alle aus
00000001 -> „1“ -> Kanal eins ein, Rest ausschalten
00000010 -> „2“ -> Kanal zwei ein und 1 aus (und der Rest auch)
00000011 -> „3“ -> Kanal eins und zwei ein, Rest aus
10000101 -> „133“ -> Kanal 8, 3 und 1 ein, Rest aus…
Okay… So langsam wird es… g Habe jetzt die Scripte für die Heizung fertig zum ein- und ausschalten… Dazu habe ich je einen Ein- und Ausbutton im Designer angelegt. Läuft auch. Jedoch will ich auch eine Status-Variable für die Anzeige haben. Die läßt sich jedoch irgendwie nicht setzen… In IPS ist die Variable angelegt, diese läßt sich jedoch nicht im Script ändern…
Ich nehme an du verwechselst interne PHP-Variablen mit den IPS-Variablen. Der Unterschied wird in Tonis kleinem Programmierhandbuch erklährt. Es ist als fortlaufende Geschichte geschrieben. Das heisst du solltest Vorne anfangen und dich bis zum Ende durcharbeiten, dann ist scripten ein Kinderspiel
Okay… Ich glaube, ich habe das Grundprinzip kapiert… Mal sehen, wie weit ich komme… Vielen Dank an alle, die mir bis jetzt geholfen haben, besonders Toni und steiner…
Ich dreh hier noch durch g Super Links auf super Anleitungen… Aber irgendwie hab ich mich festgefahren… Variablennamen stimmen alle, die Automatik ist auf True, trotzdem bekomm ich beim ausführen immer nen Fehler…
Regelnummer 1:
Verheimliche denen die dir Helfen sollen nicht wo dein Problem liegt
Der Fehler kommt nicht weil er dich ärgern will sondern weil er dir sagt was du falsch gemacht hast. Wenn du die Fehlermeldung nicht selbst interpretieren kannst, dann lass uns das für dich tun.
Wie lautet denn die Fehlermeldung?
Ich rate mal ins Blaue: Das Semikolon in der ersten Zeile ist zuviel… Steht auch in dem Programmierhandbuch wann und wo er Semikolos mag und wann nicht