AskSin++ Library

Begonnen von papa, 08 September 2016, 11:11:25

Vorheriges Thema - Nächstes Thema

papa

Der Code soll Strom sparen, wenn der Sensor den Eingang dauerhaft auf LOW zieht. Du kannst doch einfach die Klasse im Sketch ableiten und die Methode überschreiben. Dann kannst Du das Umachalten einfach rausnehmen.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Tom Major

Wäre es nicht geschickter, den Pin auf Input/no-pullup zu konfigurieren statt auf Low?
Das wäre High-Z, also stromneutral, ist aber nicht ganz so hart wie das Low was je nach input Pegel/Device ja auch einen hohen Strom verursachen kann, bis hin zum Kurzschluss wenn es z.B. eine Push-Pull Endstufe ist die da dranhängt.
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

papa

Müsste mal jemand ausprobieren und durchmessen.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

pwlr

#1578
Moin,
erst einmal vielen Dank für Eure Informationen !

ZitatDu kannst doch einfach die Klasse im Sketch ableiten und die Methode überschreiben.

Meine Antwort hat etwas länger gedauert, weil ich als IT-Oldtimer und C++Neuling erst einmal lernen mußte, was eigentlich das Ableiten einer Klasse ist und was da wie funktionieren soll. Habe viel gelesen und viel mit einem Testprogramm ausprobiert. Soweit erst mal verstanden, jedenfalls den Anfangslevel.

Bei der Testimplementation in die AskSinPP.h habe ich dann gesehen, dass die Methoden der AskSinBase alle static sind und ich habe auch nirgends das Bilden eines Objekts für AskSinBase finden können. Insofern kenne ich auch keinen Objektnamen für den Aufruf der Routinen.

Die Methode "readPin" wird von "measure" der Klassen "OnePinPosition" bzw. "TwoPinPosition" aus der Datei PinPosition.h heraus aufgerufen und zwar per direct adressing (oder wie nennt man das?) auf die Base-Class.      Beispiel: AskSinBase::readPin(sens1);

Damit ist nach meinem bisherigen Wissen  :( nix mehr mit Funktionsänderung ohne Source-Änderungen in der Lib via Ableitung. Falls ich falsch liege oder es noch ein paar Tricks gibt, wäre ich für Hilfestellung wirklich dankbar !!

ZitatDer Code soll Strom sparen, wenn der Sensor den Eingang dauerhaft auf LOW zieht.

Ok, danke für die Info. Diese Stromreduzierung spielt sich ja in geringen Größenordnungen ab und wäre wohl auch nur im Batteriebetrieb interessant. Dann wäre mein Vorschlag, den Code über die Definition USE_BATTERY_MODE zu aktivieren und deaktivieren.
Damit würde beim BATTERY_MODE dann alles durchgängig entsprechend definiert werden und im "Normal-Mode" hätte man reinrassige Input-Pins.
#ifdef USE_BATTERY_MODE
    pinMode(pinnr,OUTPUT);
    digitalWrite(pinnr,LOW);
#endif


Den Vorschlag von Tom Major finde ich gut, da vermutlich auch noch andere Anwender auf die Idee kommen könnten, statt eines einfachen Tasters einen aktiven Sensor anzuschließen.
Ich kann leider mangels vernünftiger Meßgeräte nix messen, sorry !

Edit:
oder vielleicht noch besser, da kompatibel
#ifndef USE_HIGH_IMPEDANCE_INPUT
    pinMode(pinnr,OUTPUT);
    digitalWrite(pinnr,LOW);
#endif



papa

Die statische Methode in AskSinBase kann nicht überladen werden, aber die measure() in OnePinPosition bzw. TwoPinPosition.

Eine generelle Lösung wäre natürlich am besten. Allerdings würde ich nur ungern weitere #defines einbauen. Man ,üsste mal Toms Vorschlag ausprobieren.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

Tom Major

#1580
Ein #define wäre auch aus meiner Sicht eine schlechte Lösung, das müsste auch gut dokumentiert werden sonst übersieht man es.

Außerdem stimme ich papa zu, natürlich sollte man das am RHS testen bevor man da was ändert, ich habe keine RHS im Einsatz.

Aber nochmal zum Grund warum dieser Code überhaupt so drin ist:
Zitat von: papa am 28 Dezember 2021, 00:09:56
Der Code soll Strom sparen, wenn der Sensor den Eingang dauerhaft auf LOW zieht.

habe mir gerade noch mal den RHS3 Schaltplan und das TLE4913 datasheet angeschaut. Der TLE4913 ist ein Open-Drain Device und es werden 1M Widerstände als pull-up eingesetzt.

Was genau soll es bringen, den AVR Eingang während der gesamten Zeit auf aktiv Low zu legen (außer den kurzen Augenblick der Messung)?
- falls der TLE Low am Ausgang hat ist das aktive AVR Low irrelevant da das Low bereits da ist
- falls der TLE High(open-drain) hat fließt ein extra Strom durch den 1M R, nur wegen dem aktiven AVR Low, das ist doch unerwünscht, oder?
- falls kein Open-Drain Sensor dran ist sondern einer mit einer Push-Pull Stufe knallt es wenn dieser seinen Ausgang auf High legt
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

papa

Das ist/war doch für den RHS mit den Reed-Kontakten. Und natürlich auch für alle anderen Geräte, die mittels Schalten auf GND den Zustand signalisieren.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

pwlr

Edit:
Ich wünsche allen ein frohes und erfolgreiches neues Jahr !!!!


ich habe gerade mal mit einen absolut minimalisten Versuchsaufbau gemessen. Zur Güte des Meßgerätes sag ich lieber nix.... Aber in Größenordnungen wird es wohl stimmen.

Hardware: Pro MINI 3.3V
Sketch: HB-UNI-SenAct 4-4-SC von Jerome
Gemessen habe ich den input current an einem pin ohne Kontakt oder so. Also Input-Kurzschluß.
Modifiziert wurde in der AskSinPP.h die Methode readpin

Ergebnisse für einen passiven Sensor der gegen GND schaltet (Reedkontakt, Taster etc) :
INPUT_PULLUP         98 uA
INPUT                       0 uA
OUTPUT   (LOW)        0 uA
0 uA ist wohl nicht Null, sondern mein Meßgerät kriegt das nicht mehr zu fassen...

Bei einem aktiven Sensor (in meinem Fall also die Lichtschranke) wird bei einem High-Pegel und Definition des Ports als OUTPUT (LOW) ein Strom vom externen Sensor VCC gegen GND fließen. Das ist natürlich ungewollt, wie schon beschrieben.

ZitatWäre es nicht geschickter, den Pin auf Input/no-pullup zu konfigurieren statt auf Low?
Das wäre High-Z, also stromneutral, ist aber nicht ganz so hart wie das Low was je nach input Pegel/Device ja auch einen hohen Strom verursachen kann, bis hin zum Kurzschluss wenn es z.B. eine Push-Pull Endstufe ist die da dranhängt.

Das wäre mit diesen Messwerten genau die richtige Lösung für beide Fälle, oder ?

Sany

Moin zusammen und ein frohes neues Jahr 2022,

(ist etwas OT, aber passt doch zu Asksin++)
obwohl schon eine ganze in fhem mit homematic und mit Arduino unterwegs, ist AskSin und der Selbstbau von Homematic-Komponenten irgendwie an mir vorbeigegangen. Kurzes schlaumachen zum Thema hat ergeben: ja, das passt und will ich haben.
Frage an die Wissenden: wo gibts z.Zt. die CC1101 (am liebsten zusammen mit den Arduinos pro mini 3,3V 8MHz) am einfachsten zu bestellen? Habe bisher oft in China bestellt, aber mit der neuen Steuerregelung ist das nicht mehr interessant, da das nächste Postzollamt ~30km weg ist. Würde nur bei einer richtig großen Bestellung lohnen.

Danke schon mal.

Sany
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....

kadettilac89

Zitat von: Sany am 02 Januar 2022, 11:31:32
Habe bisher oft in China bestellt, aber mit der neuen Steuerregelung ist das nicht mehr interessant, da das nächste Postzollamt ~30km weg ist. Würde nur bei einer richtig großen Bestellung lohnen.


etwas ungenau oder ggf. falsch. Steuerbeträge unter 1 Euro werden nicht eingefordert. In dem FAll bleibt alles beim Alten. D. h. Bestellungen unter 5 Euro werden weiterhin zugestellt wie gehabt. Bei Bestellungen darüber bietet DHL die Abfertigung für einen Betrag von 6 Euro an und liefert dann zu dir nach Hause. Du zahlst dann Zoll zzgl. die Gebühr an die DHL.

Wenn der Zoll den Inahlt explizit begutachten will, oder die Wertdeklaration unglaubwürdig ist musst du weiterhin hinfahren.

Unabhängig davon, Kleinmengen CC1101 / Arduino  gehen auch über Ebay mit deutschen Händler, wenn du mehr als ein Stück bestellen willst kannst vorab auch um Rabatt bitten. Außerdem bieten einige Händler bei Aliexpress den VErsand aus europäischen Ländern an.


Gernott

#1585
Zitat von: Sany am 02 Januar 2022, 11:31:32
da das nächste Postzollamt ~30km weg ist. Würde nur bei einer richtig großen Bestellung lohnen.

Beim Ali wird  die Steuer seit Monaten direkt  abgezogen. Ich habe in den letzten Wochen Zeugs bis über 100 € bestellt und keinerlei Aufwand mit dem Zoll gehabt. Man kann sich aus dem Ordermanager sogar die Rechnung mit ausgewiesener MWst. herunterladen.

ext23

Zitat von: Gernott am 02 Januar 2022, 12:11:11
Beim Ali wird  die Steuer seit Monaten direkt  abgezogen. Ich habe in den letzten Wochen Zeugs bis über 100 € bestellt und keinerlei Aufwand mit dem Zoll gehabt. Man kann sich aus dem Ordermanager sogar die Rechnung mit ausgewiesener MWst. herunterladen.

Richtig! Nur kommt vieles nicht mehr an, weil die Post alles verschlampt, ich habe da nur noch Ärger seit der Umstellung. Und zurück gehen die Lieferungen auch nicht...
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Gernott

Zitat von: ext23 am 02 Januar 2022, 12:35:09
Richtig! Nur kommt vieles nicht mehr an, weil die Post alles verschlampt, ich habe da nur noch Ärger seit der Umstellung. Und zurück gehen die Lieferungen auch nicht...
Ich vermute mal, das liegt dann eher bei Deiner Post. Ich hatte in den letzten zehn Jahren nur eine (1) verlorene Sendung aus China, bei ~30 Bestellungen pro Jahr.

P.S. Ich kann Dir Bescheid geben, wenn in der Nachbarschaft ein Haus frei wird.

Tom Major

Zitat von: papa am 31 Dezember 2021, 15:00:22
Das ist/war doch für den RHS mit den Reed-Kontakten. Und natürlich auch für alle anderen Geräte, die mittels Schalten auf GND den Zustand signalisieren.

ok verstehe. Auch für Reed-Kontakte "sollte" das High-Z Konzept funktionieren, aber muss natürlich getestet werden, da sind wir uns alle einig.  :)

p.s. China/Zoll/Post Diskussionen sind hier im AskSin++ Lib thread wirklich eine schlechte Stelle. Evtl. dem thread "Fehlerhafte CC1101 Module" benutzen?
Früher: FHEM 5.x
Jetzt: RaspberryMatic / ioBroker

Sany

Zitatp.s. China/Zoll/Post Diskussionen sind hier im AskSin++ Lib thread wirklich eine schlechte Stelle. Evtl. dem thread "Fehlerhafte CC1101 Module" benutzen?
sorry fürs Kapern, mit den Infos der letzten 4 Post komme ich zurecht. Danke dafür!

...weiter mit AskSin++
fhem auf Zotac ZBox nano als LXC auf Proxmox, weitere LXC mit ZigBee2MQTT, MariaDB und Grafana. Homematic, FS20, mySensors, MQTT2, Tasmota, Shelly, Z-Wave  ....