Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Anbefalte innlegg

Skrevet
Akkurat nå, hjemmedude skrev:

Ja holdt et sånt i hånda sist jeg var innom elkjøp, angrer på at det ikke ble med hjem. Men er tiltenkt utendørs bruk, jeg kan jo pakke et Tapo i en koblingsboks også.. :)

 

Det finnes utendørs Tapo kamera hos netonnet

Skrevet (endret)

Et klokt hode hadde laget en Windows-app til tibber, så tenkte jeg å sjekke om det var noen som hadde laget en Home Assistant-Widget til Mac(bruker nesten bare Mac, mest pga. Trackpap og slitne hender/nakke). Fant denne, som jeg ikke hadde fått med meg.

En haug med sensorer, bla. kamerastatus, som er ganske instant. Slitt litt med å få MS Graph-tilgang for å sette status fra MS Teams, nå slipper jeg det. Bruker primært kamera når det møter, så da slipper jeg å kjefte på at ungene stormer inn mens jeg sitter i møte. 

Samt kjekt med lett tilgang i widget til noen overstyringer. 

Skjermbilde 2021-03-20 kl. 15.21.08.png

Skjermbilde 2021-03-22 kl. 07.05.05.png

Endret av gullfrode
  • Like 3
Skrevet

Fått "Han port" plugin'en min til HS4 stabil, deilig å slippe unna MQTT og annet og bare koble seg rett på og få data inn(dog bruker jeg en raspi som usb over ethernet extender da, men pytt pytt:P)

  • Like 1
Skrevet
På 20.3.2021 den 13.37, stigvi skrev:

Har etterhvert funnet ut at et TPlink Tapo kamera til 299 kroner er MYE mer for pengene enn selvlagde med esp32. Det finnes en god Tapo integrasjon til HA også.

Har du blokkert skytjenesten til Tapo-kameraet? Fungerer det i så fall greit med RTSP og ONVIF uten? Har ikke så lyst til at det skal snakke med Kina.

Skrevet
52 minutter siden, Venin skrev:

Har du blokkert skytjenesten til Tapo-kameraet? Fungerer det i så fall greit med RTSP og ONVIF uten? Har ikke så lyst til at det skal snakke med Kina.

Nei, jeg har ikke det. Men han som har laget integrasjonen skriver i Home Assistant forumet at det går fint å blokkere for skytjenester og integrasjonen vil fortsatt virke som normalt. Den kommuniserer uanz direkte med kamera.

  • Thanks 1
Skrevet

Monterte leds under senga i helga.

Super enkelt med en Namron løsning med stripe, strømforsyning og zigbee modul inkludert, plug and play 

20210327_153040.jpg

20210327_153109.jpg

20210327_152642.jpg

  • Like 3
Skrevet
På 20.3.2021 den 15.23, gullfrode skrev:

Fant denne, som jeg ikke hadde fått med meg.

Ja, det er en fin ting med Home Assistant. Gode apper til ios og android som gir sensordata tilbake til Home Assistant. Min android telefon har vistnok 66 sensorer jeg kan velge å gi tilbake til min HA i skapet, men jeg har begrenset meg til et fåtall av de. Ved hjelp av såkalte intents kan en styre andre apper på telefonen også.

Skrevet
18 timer siden, stigvi skrev:

Ja, det er en fin ting med Home Assistant. Gode apper til ios og android som gir sensordata tilbake til Home Assistant. Min android telefon har vistnok 66 sensorer jeg kan velge å gi tilbake til min HA i skapet, men jeg har begrenset meg til et fåtall av de. Ved hjelp av såkalte intents kan en styre andre apper på telefonen også.

Tror det er i underkant av 20 sensorer på iOS/iPadOS. 
Det geniale med OSX-appen er at den ikke trenger å ta hensyn til strømsparing, så ingen forsinkelse på sensorene. 

Skrevet
7 minutter siden, harelabb skrev:

Liker ikke slike halvveis-løsninger.  Du får aldri Tibber til å gå ut med asken.

Badekaret mitt tømmer seg ikke selv, men det kan likevel styre lyset. :P

  • 2 uker senere...
Skrevet

Proof of concept på "Panel-gardin automatikk".

Utfordringen ligger i å få nok friksjon mot snora.

Kommer tilbake med mer når produktutviklingen har tatt et nytt skritt :)


 

IMG_6015.jpeg

 

IMG_6016.jpeg

 

Mye artig modellering her 

 

image.png

 

image.png

 

  • Like 9
Skrevet

@stigvi har snakket om Aqara sine magnetsensorer som en "alt-mulig"-sensor. Og, etter å ha ventet i evigheter på en bestilling fra Ali, viser det seg at de er enkle å hacke til. :) 

 

Så nå har jeg oppgradert fra en gammel sensor til Zigbee for tørkestativet.

 

image.png

 

image.png

  • Like 5
Skrevet
18 timer siden, cogliostrio skrev:

Jeg la en runde med vulke tape i trinsa for å få bedre grep på tauet. Fungerte bra.

 

Ah Fortell mer om løsningen din.

  • Har du en stramme mekanisme?
  • Hva gjør du med "ende stopp"?
  • Har du sving på lamellene også?
  • Hva styrer du med?
  • Har du noen SW å dele?
Skrevet

Har gått for en litt annen tilnærming, der alt er integrert i/på skinna. Ulempen er jo at det ikke går ann å åpne/lukke uten strøm. For endestopp inn/ut av lameller brukers reed-switcher. Åpen/lukket (vridning) er en integrert hjemmesnekra løsning. Dette prosjektet har ligget brakk ei stund så den er ikke montert, men skal over et skråvindu. Ved testing så har det ikke vært noe problem å dra lamellene. Styres via mysensors. Har en del forskjellige versjoner av koden, så det er ikke sikkert denne er helt 100...

 

Bruker stepper motorer, og tråden er strammet for hånd og skrudd fast. Vurdere å bygge en versjon med servo motor, for å gjøre det litt enklere. Må bare få tid 😄

image.thumb.png.3713301b645700669c22a61b06ef200e.png

 

Switch for rotasjon.

20210415_093239.thumb.jpg.02344545f1dc6363700cdcd5a4087305.jpg

 

image.thumb.png.c9e2869298f4f2b461ba41bbc433d0ce.png

 

 

Spoiler

/*
**  .:A4988 Poulo Stepper Driver:.
**  MS1 MS2 MS3 Microstep resolution
**  L   L   L   Full step
**  H   L   L   Half step
**  L   H   L   Quarter step
**  H   H   L   Eighth step
**  H   H   H   Sixteenth step
*/

// version: twist motor with end stops

//#define MY_TRANSPORT_WAIT_READY_MS 1

#define MY_DEBUG
#define MY_RADIO_RF24
#define MY_NODE_ID 3
#define MY_REPEATER_FEATURE

#include <MySensors.h>
#include <SPI.h>
#include <Stepper.h>

#define SN "Lameller"
#define SV "1.3"
#define CHILD_CURTAIN 1

boolean pinCurtainOpenState ;
boolean pinCurtainShutState ;
boolean pinTwistOpenState ;
boolean pinTwistShutState ;

// defines pins numbers for sliding
const int dirPin = 14;                  // analog pin 0
const int stepPin = 15;                 // analog pin 1
const int enablePin = 16;               // analog pin 2
const int halfSpeed = 19;               // analog pin 5

// define pin numbers for twisting motor (28BYJ-48)
const int in1Pin = 3;
const int in2Pin = 4;
const int in3Pin = 5;
const int in4Pin = 6;

// curtain open or closed
#define pinCurtainShut 17               // analog pin 3
#define pinCurtainOpen 18               // analog pin 4
#define pinTwistOpen 8                  // D8
#define pinTwistShut 7                  // D7

#define stepsPerRevolution 768          // steps for one revolution. 768
int motorSpeed = 40;                    // RPM. 40
Stepper myStepper(stepsPerRevolution, in1Pin, in2Pin, in3Pin, in4Pin);

MyMessage curtainState(CHILD_CURTAIN, S_COVER);

void setup()
{
  Serial.begin(115200);
  Serial.print("");
  Serial.print("curtainState.type: ");
  Serial.println(curtainState.type);

  //initalize sliding motor (A4988)
  Serial.println("initalize sliding motor (A4988)");
  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
  pinMode(halfSpeed, OUTPUT);
  pinMode(enablePin, OUTPUT);
  digitalWrite(halfSpeed, HIGH);               // set A4988 to run at half speed
  digitalWrite(enablePin, HIGH);               // A4988 disable

  //initalize twisting motor (Stepper.h)
  Serial.println("initalize twisting motor (Stepper.h)");
  pinMode(in1Pin, OUTPUT);
  pinMode(in2Pin, OUTPUT);
  pinMode(in3Pin, OUTPUT);
  pinMode(in4Pin, OUTPUT);
  myStepper.setSpeed(motorSpeed);              // set the stepper speed
  powerOffTwistmotor();                        // power off twisting motor

  //initalize curtain status
  Serial.println("initalize curtain status");
  pinMode(pinCurtainOpen, INPUT_PULLUP);       // curtain not covering window
  pinMode(pinCurtainShut, INPUT_PULLUP);       // curtain covering window
  pinMode(pinTwistOpen, INPUT_PULLUP);         // twist to open position
  pinMode(pinTwistShut, INPUT_PULLUP);         // twist to closed position

  pinCurtainOpenState = digitalRead(pinCurtainOpen);
  pinCurtainShutState = digitalRead(pinCurtainShut);
  pinTwistOpenState = digitalRead(pinTwistOpen);
  pinTwistShutState = digitalRead(pinTwistShut);
  Serial.print("pinCurtainOpenState :");
  Serial.println(pinCurtainOpenState);
  Serial.print("pinCurtainShutState :");
  Serial.println(pinCurtainShutState);
  Serial.print("pinTwistOpenState: ");
  Serial.println(pinTwistOpenState);
  Serial.print("pinTwistShutState: ");
  Serial.println(pinTwistShutState);
  Serial.println("");

  Serial.println("calibrate curtain to open position after power loss");
  Serial.println("Running openSequence(), to set curtain open");
  openSequence();                              // calibrate curtain to open position after power loss

  request(CHILD_CURTAIN, S_COVER);             //request last state
}

void presentation()
{
  sendSketchInfo(SN, SV);                      // Sending sketch name and version
  present(CHILD_CURTAIN, S_COVER);             // Window cover sub-type, commands V_UP, V_DOWN
}

void loop()
{
}

/************************************
   Change state of curtain
   when signal received.
 ***********************************/
void receive(const MyMessage &curtainState)
{
  Serial.print("curtainState.type: ");
  Serial.println(curtainState.type);
  if (curtainState.type == V_DOWN)             // curtain is open, this starts the closing sequence
  {
    Serial.print("V_DOWN: ");
    Serial.println(V_DOWN);
    Serial.print("pinCurtainShut value above: ");
    Serial.println(pinCurtainShutState);
    if ((pinCurtainShutState = (digitalRead(pinCurtainShut)) == true))
    {
      Serial.print("pinCurtainShut value: ");
      Serial.println(pinCurtainShutState);
      Serial.println("---------------");
      Serial.println("");
      shutSequence();
      Serial.print("pinCurtainShutState value after open sequence done: ");
      Serial.print(pinCurtainShutState);
    }
  }

  if (curtainState.type == V_UP)               // curtain is closed, this starts the opening sequence
  {
    Serial.print("V_UP: ");
    Serial.println(V_UP);
    Serial.print("pinCurtainOpen value above: ");
    Serial.println(pinCurtainOpenState);
    if ((pinCurtainOpenState = (digitalRead(pinCurtainOpen)) == true))
    {
      Serial.print("pinCurtainOpenState value: ");
      Serial.println(pinCurtainOpenState);
      Serial.println("---------------");
      Serial.println("");
      openSequence();
      Serial.print("pinCurtainOpenState value after open sequence done: ");
      Serial.println(pinCurtainOpenState);
      Serial.println("");
    }
  }
}

/************************************
   sequence to twist open,
   then slide curtain open.
 ***********************************/
void openSequence()
{
  Serial.println("open sequence started");

  Serial.println("twist open started");
  powerOnTwistmotor();                         //Run twist motor until pinTwistOpen is true, then stop motor.
  Serial.print("pinTwistOpenState: ");
  Serial.println(pinTwistOpenState);
  while (digitalRead(pinTwistOpen))
  {
    myStepper.step(1);
  }
  powerOffTwistmotor();
  Serial.println("twist open completed");

  Serial.println("sliding to open position started");
  digitalWrite(enablePin, LOW);                // A4988 enable
  Serial.println("digitalWrite(enablePin, LOW)");
  delay(1000);
  while (digitalRead(pinCurtainOpen))          // Run until sliding motor until pinCurtainOpen is activated
  {
    digitalWrite(dirPin, LOW);                 // LOW => UP. (HIGH = anti-clockwise / LOW = clockwise)
    digitalWrite(stepPin, HIGH);               // Makes pulses for ratation
    delayMicroseconds(500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(500);
  }
  digitalWrite(enablePin, HIGH);               // A4988 disable
  Serial.println("sliding to open position completed");
  Serial.println("---------------");
  Serial.println("");
  delay(1000);
}

/************************************
   sequence to slide curtain shut,
   then twist shut.
 ***********************************/
void shutSequence()
{
  Serial.println("shut sequence started");
  Serial.println("sliding to shut position started");
  digitalWrite(enablePin, LOW);                // A4988 enable
  delay(100);
  while (digitalRead(pinCurtainShut))          // Run sliding motor until pinCurtainShut is activated
  {
    digitalWrite(dirPin, HIGH);                // HIGH => DOWN. (HIGH = anti-clockwise / LOW = clockwise)
    digitalWrite(stepPin, HIGH);               // Makes pulses for rotation
    delayMicroseconds(500);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(500);
  }
  Serial.println("sliding to shut position completed");

  digitalWrite(enablePin, HIGH);               // A4988 disable
  Serial.println("sliding to shut position completed");
  Serial.println("---------------");
  Serial.println("");
  delay(1000);

  Serial.println("twisting shut started");
  powerOnTwistmotor();                           //Run twist motor until pinTwistOpen is closed, then stop motor.
  while (digitalRead(pinTwistShut))
  {
    myStepper.step(-1);
  }
  powerOffTwistmotor();
  Serial.println("twist shut completed");
}

/************************************
   enable all outputs on twisting motor.
 ***********************************/
void powerOnTwistmotor()
{
  digitalWrite(in1Pin, HIGH);
  digitalWrite(in2Pin, HIGH);
  digitalWrite(in3Pin, HIGH);
  digitalWrite(in4Pin, HIGH);
}

/************************************
   disable all outputs on twisting motor.
 ***********************************/
void powerOffTwistmotor()
{
  digitalWrite(in1Pin, LOW);
  digitalWrite(in2Pin, LOW);
  digitalWrite(in3Pin, LOW);
  digitalWrite(in4Pin, LOW);
}

 

 

  • Like 3
Skrevet (endret)
2 hours ago, cogliostrio said:

Bruker stepper motorer

 

Jeg har en slik motor liggende, ser iallefall helt lik ut. Men jeg opplevde denne som relativt svak.  Har du noe som øker utvekslingen inni der en plass? Hadde vært kult om du laget en egen tråd der du kunne gå mer i detalj på dette :) 

 

Jeg har denne liggende: https://www.kjell.com//no/produkter/elektro-og-verktoy/arduino/arduino-tilbehor/trinnmotor-med-girkasse-og-driver-p87062?gclsrc=ds

Er det den samme?

Endret av Mathias
Skrevet
12 minutter siden, Mathias skrev:

Men jeg opplevde denne som relativt svak.

Step-motorer er veldig avhengig av hvordan de styres, både med strømstyrke og hvordan de forskjellige viklingene brukes i forhold til hverandre. I tillegg har viklingene en induktans som gjør det vanskeligere å få en stor strøm gjennom dess raskere de skal rotere. Konklusjon: Dreiemoment krever en god driver.

Skrevet
33 minutes ago, stigvi said:

Step-motorer er veldig avhengig av hvordan de styres, både med strømstyrke og hvordan de forskjellige viklingene brukes i forhold til hverandre. I tillegg har viklingene en induktans som gjør det vanskeligere å få en stor strøm gjennom dess raskere de skal rotere. Konklusjon: Dreiemoment krever en god driver.

Betyr det at når den støtter 5-12v så er det en fordel å kjøre den på 12v hvis man er avhengig av størst molig dreiemoment?

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.